【优化调度】基于粒子群算法实现机组发电调度附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代码问题可私信交流。

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


相关文章
|
5天前
|
算法
基于PSO粒子群优化的配电网可靠性指标matlab仿真
本程序基于PSO粒子群优化算法,对配电网的可靠性指标(SAIFI、SAIDI、CAIDI、ENS)进行MATLAB仿真优化。通过调整电网结构和设备配置,最小化停电频率和时长,提高供电连续性和稳定性。程序在MATLAB 2022A版本上运行,展示了优化前后指标的变化。PSO算法模拟鸟群行为,每个粒子代表一个潜在解决方案,通过迭代搜索全局最优解,实现配电网的高效优化设计。
|
2天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
5天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
9天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
139 80
|
1天前
|
算法
基于梯度流的扩散映射卡尔曼滤波算法的信号预处理matlab仿真
本项目基于梯度流的扩散映射卡尔曼滤波算法(GFDMKF),用于信号预处理的MATLAB仿真。通过设置不同噪声大小,测试滤波效果。核心代码实现数据加载、含噪信号生成、扩散映射构建及DMK滤波器应用,并展示含噪与无噪信号及滤波结果的对比图。GFDMKF结合非线性流形学习与经典卡尔曼滤波,提高对非线性高维信号的滤波和跟踪性能。 **主要步骤:** 1. 加载数据并生成含噪测量值。 2. 使用扩散映射捕捉低维流形结构。 3. 应用DMK滤波器进行状态估计。 4. 绘制不同SNR下的轨迹示例。
|
6天前
|
机器学习/深度学习 算法 索引
单目标问题的烟花优化算法求解matlab仿真,对比PSO和GA
本项目使用FW烟花优化算法求解单目标问题,并在MATLAB2022A中实现仿真,对比PSO和GA的性能。核心代码展示了适应度计算、火花生成及位置约束等关键步骤。最终通过收敛曲线对比三种算法的优化效果。烟花优化算法模拟烟花爆炸过程,探索搜索空间,寻找全局最优解,适用于复杂非线性问题。PSO和GA则分别适合快速收敛和大解空间的问题。参数调整和算法特性分析显示了各自的优势与局限。
|
28天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
2月前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
14天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
21天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。