【优化调度】基于粒子群算法实现机组发电调度附matlab代码

简介: 【优化调度】基于粒子群算法实现机组发电调度附matlab代码

1 内容介绍

随着国民经济的持续快速发展,全社会对电力的需求显著增加,为了缓和全社会用电紧张局面,电力工业得到了迅速的发展,但是却造成了能源浪费和过量污染物排放,为此国家要求按照发电机组的类型以及能源消耗进行发电排序.我国目前电力结 构以火电为主,并且由于电网安全稳定约束条件的限制,不能仅仅以发电序位表为标准,按照机组煤耗率从小到大依次满发,必须在考虑电网安全稳定运行的基础上,对火电机组进行机组组合,因此,机组组合将成为我国现阶段节能发电调度工作的核心.机组组合问题是一个高维,离散,非线性的优化问题,很难找出理论上的最优解,但由于其所带来的显著效益,人们一直在积极的研究,提出各种方法来解决这个问题. 本文首先按照节能发电调度的要求,以节约能耗,降低排污为目标,建立了节能发电调度机组组合问题的数学模型,并在目标函数中考虑了由于潮流分布变化而引起的网损的变化.对于模型的约束条件考虑了机组出力限制约束,节点电压约束,线路潮流约束,机组爬坡速率约束等条件. 对于机组组合优化问题的求解。

2 仿真代码

%********************************************************************

%主函数,用粒子群算法,求6台机组发电调度成本目标函数最低

%Script file for the initialization and run of the differential

% evolution optimizer.

%********************************************************************

clc;

clear;

close all;


%参数设置:第1行是上网电价,第2行是最小发电量,第3行是最大发电量

SI.gp=[ 415 418 420 422 430 428;

30 30 100 100 250 300;

350 400 600 650 800 1000];

%网损系数(Bij为电厂i和电厂j之间的网损系数)

SI.lc=[0.002022 -0.000286 -0.000534 -0.000565 -0.000454 0.000103;

-0.000286 0.003243 0.000016 -0.000307 -0.000422 -0.000147;

-0.000534 0.000016 0.001085 0.000831 0.000023 -0.000270;

-0.000565 -0.000307 0.000831 0.001129 0.000113 -0.000295;

-0.000454 -0.000422 0.000023 0.000113 0.000460 -0.000153;

0.000103 -0.000147 -0.000270 -0.000295 -0.000153 0.000898;

];

SI.TG=2400;%电量需求(MWh)


for i=1:I_itermax    

   %粒子群算法

   w=ws-(ws-we)*(i/I_itermax)^2;

   

   for j=1:I_NP

       V(j,:) = w*V(j,:) + c1*rand*(Gbest_pop (j,:) - pop(j,:)) + c2*rand*(Zbest_pop - pop(j,:));


       for k=1:I_D %----boundary constraints via bounce back-------

           if (V(j,k) > Vmax(k))

               V(j,k)  = Vmax(k);

           end

           if (V(j,k)  <Vmin(k))

               V(j,k) =Vmin(k);

           end

       end

       

       pop(j,:)=pop(j,:)+V(j,:);        

       %-----Select which vectors are allowed to enter the new population------------

       for k=1:I_D %----boundary constraints via bounce back-------

           if (pop(j,k) > FVr_maxbound(k))

               pop(j,k)  = FVr_maxbound(k)+rand*(Zbest_pop(k) - FVr_maxbound(k));

           end

           if (pop(j,k)  < FVr_minbound(k))

               pop(j,k) = FVr_minbound(k)+rand*(Zbest_pop(k) - FVr_minbound(k));

           end

       end

       

%         pop(j, (pop(j,:)<SI.gp(2,:)))= SI.gp(2, (pop(j,:)<SI.gp(2,:)));

%         pop(j, (pop(j,:)>SI.gp(3,:)))= SI.gp(2, (pop(j,:)>SI.gp(3,:)));

       

        chromosome(j,:)= objfun(pop(j,:),SI);  

       

       if(chromosome(j,I_D+M)<Gbest(j))

           Gbest(j)=chromosome(j,I_D+M);

           Gbest_pop(j,:)=chromosome(j,1:I_D);

       end

       if(chromosome(j,I_D+M)<Zbest)

           Zbest=chromosome(j,I_D+M);

           Zbest_pop=chromosome(j,1:I_D);

       end

   end

  Zbestit(i+1) =Zbest;

  Zbestit_pop(i+1,:)=Zbest_pop;


 if ~mod(i,I_refresh)  %如果i除以S_struct.I_refresh的余数为0,输出i。

      fprintf('%d\n',i);

   end

end

toc


P_Sum=0;P_loss=0;

P_Sum=sum(Zbest_pop);

P_loss=Zbest_pop*SI.lc*Zbest_pop';


disp(['最优解——> 出力 : ',num2str(Zbest_pop),'  成本:',num2str(Zbest)]);

disp(['出力总和(MW):',num2str(P_Sum),'            网损(MW):',num2str(P_loss)])

figure

title('Best cost');

plot( Zbestit);

xlim([0 I_itermax]);

grid on;

hold off




3 运行结果

最优解——> 出力 : 350      322.3344     309.2298     471.2568         800      785.2812 成本:1288833.0546

出力总和(MW):3038.1023           网损(MW):638.1023

4 参考文献

[1]程宇旭. 基于改进粒子群算法的微电网能量优化调度研究及实现[D]. 中南大学, 2014.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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


相关文章
|
1天前
|
机器学习/深度学习 算法
基于BP神经网络的QPSK解调算法matlab性能仿真
该文介绍了使用MATLAB2022a实现的QPSK信号BP神经网络解调算法。QPSK调制信号在复杂信道环境下受到干扰,BP网络能适应性地补偿失真,降低误码率。核心程序涉及数据分割、网络训练及性能评估,最终通过星座图和误码率曲线展示结果。
|
1天前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络模型的鱼眼镜头中人员检测算法matlab仿真
该内容是一个关于基于YOLOv2的鱼眼镜头人员检测算法的介绍。展示了算法运行的三张效果图,使用的是matlab2022a软件。YOLOv2模型结合鱼眼镜头畸变校正技术,对鱼眼图像中的人员进行准确检测。算法流程包括图像预处理、网络前向传播、边界框预测与分类及后处理。核心程序段加载预训练的YOLOv2检测器,遍历并处理图像,检测到的目标用矩形标注显示。
|
2天前
|
数据采集 人工智能 自然语言处理
综述170篇自监督学习推荐算法,港大发布SSL4Rec:代码、资料库全面开源!
【5月更文挑战第20天】港大团队发布SSL4Rec,一个全面开源的自监督学习推荐算法框架,基于170篇相关文献的深入分析。SSL4Rec利用未标记数据提升推荐系统性能,解决了传统方法依赖大量标记数据的问题。开源代码与资料库促进研究复现与交流,为推荐系统领域带来新思路和工具。尽管面临数据需求大和依赖数据质量的挑战,但SSL4Rec展现出巨大的发展潜力和跨领域应用前景。[链接:https://arxiv.org/abs/2404.03354]
16 1
|
3天前
|
存储 算法 搜索推荐
数据结构与算法⑰(第五章_八大排序)(完整代码+动图+详解+对比)(下)
数据结构与算法⑰(第五章_八大排序)(完整代码+动图+详解+对比)
21 1
|
3天前
|
算法 编译器
数据结构与算法⑰(第五章_八大排序)(完整代码+动图+详解+对比)(中)
数据结构与算法⑰(第五章_八大排序)(完整代码+动图+详解+对比)
20 4
|
8天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
8天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
8天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
8天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章