【微电网优化】基于粒子群算法实现微型燃气轮机冷热电联供系统优化运行附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

1.1 粒子群算法

粒子群算法(Particle Swarm Optimization,PSO)是一种优化算法,其思想源于鸟群觅食的行为。在算法中,将待优化问题看作一个多维空间中的搜索问题,将每个可能的解看作一个粒子,每个粒子通过不断地调整自己的位置和速度,以寻找全局最优解。

具体来说,粒子群算法包括以下步骤:

初始化粒子群,包括每个粒子的位置和速度。

计算每个粒子的适应度函数值,并记录个体最优位置。

记录全局最优位置。

更新每个粒子的速度和位置,以寻找全局最优解。

根据一定的停止准则,判断是否结束算法。

其中,粒子的速度和位置更新公式如下:

v(i,j) = w * v(i,j) + c1 * rand() * (pbest(i,j) - x(i,j)) + c2 * rand() * (gbest(j) - x(i,j))

x(i,j) = x(i,j) + v(i,j)

在公式中,v(i,j)表示第i个粒子在第j个维度上的速度,w是惯性权重,c1和c2是加速常数,rand()是一个0到1之间的随机数,pbest(i,j)表示第i个粒子的个体最优位置,gbest(j)表示全局最优位置,x(i,j)表示第i个粒子在第j个维度上的位置。

通过不断迭代更新,粒子群算法可以找到全局最优解。粒子群算法具有收敛速度快、易于实现、适用于大规模优化问题等优点,被广泛应用于各种领域的优化问题中。​

1.2 思路

基于粒子群算法实现微型燃气轮机冷热电联供系统优化运行,需要以下步骤:

确定冷热电联供系统的目标函数和约束条件,例如最小化总成本、最大化能量利用效率等。

将冷热电联供系统建模为数学模型,包括燃气轮机、热回收器、制冷机、锅炉等组件的数学表达式和相互之间的关系。

使用粒子群算法进行优化,将冷热电联供系统的设计变量作为粒子的位置,目标函数作为适应度函数,将系统的状态向全局最优方向演化。

根据优化结果,对冷热电联供系统进行调整,包括调整设备容量、优化运行策略等。

对优化后的系统进行模拟和实验验证,确保优化结果的可行性和有效性。

本程序只做了电负荷和冷负荷,选取了夏季典型日,只考虑了燃机轮机出力和空调出力,还有从电网购电,目标函数为联供系统一天运行最小费用,求解算法采用粒子群算法,最后得出一天内调度。

⛄ 部分代码

function pop=initpop(popsize,size,scope,PMTmax,PMTmin)

popsize=80;

size=2;

scope=24;

PMTmax=66;

PMTmin=33;

PL=[63 57 44 43 43 40 56 66 78 75 89 105 125 121 116 104 101 103 104 121 116 121 106 89];

QL=[139 136 122 128 128 128 131 142 138 138 150 169 183 187 189 183 171 161 154 165 156 148 141 132];

for j=1:0.5*popsize  

for i=1:scope

    PMT(1,i)=(j-1)/39*(PMTmax-PMTmin)+PMTmin;

   VMT(1,i)=PMT(1,i)/2.91;

   QMTco(1,i)=2*PMT(1,i);

  Qairco(1,i)=QL(1,i)-QMTco(1,i);

  if Qairco(1,i)<0;   

      Qairco(1,i)=0;

     QMTco(1,i)=QL(1,i);

     VMT(1,i)=QMTco(1,i)/(2*2.91);

  end

  PGrid(1,i)=PL(1,i)+Qairco(1,i)/2.3- VMT(1,i)*2.91; 

          pop(1,i,j)=VMT(1,i);

           pop(2,i,j)= PGrid(1,i);

end

end

for j=0.5*popsize+1:popsize    %按照电网出力均分的粒子(假设从40kw到120kw均分)

      for i=1:scope

      PGrid(1,i)=(j-40-1)/39*(150-40)+40;

      VMT(1,i)=(PL(1,i)-PGrid(1,i)+QL(1,i)/2.3)*2300/4947;

      if  VMT(1,i)>PMTmax/2.91   %越上限按上限出力

            VMT(1,i)=PMTmax/2.91;

      end

      if  VMT(1,i)<PMTmin/2.91   %越下限按下限出力

            VMT(1,i)=PMTmin/2.91;

      end

      QMTco(1,i)=2*PMT(1,i);

  Qairco(1,i)=QL(1,i)-QMTco(1,i);%冷功率平衡

         PGrid(1,i)=PL(1,i)+Qairco(1,i)/2.3- VMT(1,i)*2.91; %电功率平衡

          pop(1,i,j)=VMT(1,i);

           pop(2,i,j)= PGrid(1,i);

      end

end

⛄ 运行结果

⛄ 参考文献

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值