m基于GA遗传算法的高载能负荷响应优化控制模型matlab仿真

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: m基于GA遗传算法的高载能负荷响应优化控制模型matlab仿真

1.算法描述

   高载能企业执行子站接收负荷调整指令后,需将有功功率、无功功率调整总量合理分配给各用能设备/系统。研究高载能负荷响应优化控制模型,建立以高载能企业响应效益最优为目标,以各用能设备/系统在不同时间尺度下有功、无功响应容量为变量,以各用能设备/系统在不同时间尺度下响应潜力、无功补偿容量、用电重要等级、生产工艺环节协调配合、有功功率及无功功率调整总量等为约束,提出寻优求解方法。

   对于铝电解厂来说,风电引入到铝电解厂,但是铝电解厂有自备电厂,正常情况下是自备电厂恒定地供给铝电解厂,铝电解厂的功率主要可分为两种设备,一个是主要设备铝电解槽(占总功率的95%),其余是辅助设备消耗的功率(约占总功率的5%)。正常工作条件下,铝电解槽和辅助系统24小时的功率如下面两图所示,基本上处于稳定状态,此时P铝电解槽+P辅助= P自备电厂。

1.png
2.png

    现在如果把风电引入到铝电解厂了,则原来的自备电厂供电的功率会发生变化,同时铝电解厂消耗的总功率也会发生变化。现在:

P铝电解槽+P辅助=P风电+P自备电厂

   如果现在预先给定了引入铝电解厂风电24小时的曲线,如下图所示,现在在这24小时期间,如何调整自备电厂的发电、以及如何将自备电厂和风电的总功率分配给主要设备铝电解槽和辅助系统。才能使在引入风电的情况下电解厂获得的效益(赚的钱)最高,这时,最好使电解槽的功率得以调高,多增加铝的产量,会多带来效益。假设风电的价格是0.2元/kWh,自备电厂的价格是0.3元/kWh,铝的价格是13000元/吨。

3.png

一些约束条件可以设置如下:

主要设备电解槽电解槽的额定功率是700MW,调整时不能低于730MW,不能高于770MW;

辅助设备的额定功率是 50MW,调整时不能低于45 MW,不能高于55MW;

自备电厂的额定输出功率为750MW,每次调整不能低于600MW,不能高于780MW。

根据上面这幅图给出的风电出力曲线,经过对铝电解厂和发电厂负荷的调整,使得这24小时中盈利最大。并求出发电厂、每种负荷(铝电解槽和辅助设备)24小时的调整曲线。

2.仿真效果预览
matlab2022a仿真如下:

4.png
5.png
6.png
7.png

3.MATLAB核心程序

Times = [0.25:0.25:24];
Pfd0  = [3*ones(1,20),5*ones(1,12),10*ones(1,20),12*ones(1,8),8*ones(1,24),4*ones(1,12)]*1e6;
figure;
plot(Times,Pfd0/1e6,'r','linewidth',2);
xlabel('Time(h)');
ylabel('MW');
axis([0,24,0,15]);
 
Timesdelay = 2*4;%2小时后参与调解
 
Pdc21  = [];
Pfl21  = [];
Pdzl21 = [];
Pdc22  = [];
Pfl22  = [];
Pdzl22 = [];
 
 
for t = 1:length(Times)
 
%定义初始值,初始值
Pdc   = 40e6;%电厂调节功率
Pfl   = 15e6;%辅助设备调节功率
Pdzl  = 25e6;%电炉调节功率
Pfd   = Pfd0(t);
 
%风电价格波动
Pricefd = BD(t); 
 
%%
%下面开始使用遗传优化算法
%根据遗传算法进行参数的拟合
MAXGEN = 80;
NIND   = 200;
Nums   = 2;
 
Chrom  = crtbp(NIND,Nums*10);
%各个变量的约束条件,这几个参数稍微改了下,否则加入众多约束后,收敛非常慢
A1     = 20e6;
B1     = 60e6;
 
A2     = 12e6;
B2     = 20e6;
 
A3     = 30e6;
B3     = 35e6;
Areas  = [A2, A3;
          B2, B3];
 
FieldD = [rep([10],[1,Nums]);Areas;rep([0;0;0;0],[1,Nums])];
 
gen    = 0;
for a=1:1:NIND 
    %计算对应的目标值
    Moneys  = func_obj(Pdc,Pfl,Pdzl,Pfd,t,Pricefd);
    Js(a,1) = Moneys;
end
 
Objv  = (Js+eps);
gen   = 0; 
Pdc2  = [];
Pfl2  = [];
Pdzl2 = [];
%%
while gen < MAXGEN;   
      gen
      t
      
      flag=0;
      while flag == 0
      Pe0 = 0.8;
      pe1 = 0.001; 
      FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,Pe0);   
      Selch=mut( Selch,pe1);   
      phen1=bs2rv(Selch,FieldD);   
      NS=0;
          for aa=1:NIND
              if phen1(a,1) +  phen1(a,2) - Pfd <= B1 & phen1(a,1) +  phen1(a,2) - Pfd >= A1
                 NS=NS+1;
              end
          end
          if NS > NIND/2
             flag = 1;
          else
             flag = 0; 
          end
      end
      Pdc   = [];
      Pfl   = [];
      Pdzl  = [];
      for a=1:1:NIND  
          Pfl(a)   = phen1(a,1);
          %满足分配功率等式约束
          Pdzl(a)  = phen1(a,2);
          Pdc(a)   = phen1(a,1) +  phen1(a,2) - Pfd;
          
          
          %约束条件,重复约束条件
          if Pdc(a) <= A1;Pdc(a)=A1;end;
          if Pdc(a) >= B1;Pdc(a)=B1;end;
          
          if Pfl(a) <= A2;Pfl(a)=A2;end;
          if Pfl(a) >= B2;Pfl(a)=B2;end;   
          
          if Pdzl(a) <= A3;Pdzl(a)=A3;end;
          if Pdzl(a) >= B3;Pdzl(a)=B3;end; 
          
          
          
          %计算对应的目标值
          Moneys   = func_obj(Pdc(a),Pfl(a),Pdzl(a),Pfd,t,Pricefd);
          JJ(a,1)  = Moneys;
      end 
      Objvsel     = JJ ;    
      [Chrom,Objv]= reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen         = gen+1; 
      [VS,IS]     = min(Objv);
      Best(gen)   = 1/min(Objv);
      fit(gen)    = min(Objv);
      Pdc2(gen)   = Pdc(IS);
      Pfl2(gen)   = Pfl(IS);
      Pdzl2(gen)  = Pdzl(IS);
end 
     if t == 1
        figure;
        plot(Best,'b','linewidth',2);
        xlabel('迭代次数');
        ylabel('优化后的收益');
        grid on
        figure;
        plot(fit,'b','linewidth',2);
        xlabel('迭代次数');
        ylabel('适应度函数收敛情况');
        grid on
     end
     
     Timesdelay
     
    Pdc21  = [Pdc21,Pdc2(end)];
    Pfl21  = [Pfl21,Pfl2(end)];
    Pdzl21 = [Pdzl21,Pdzl2(end)];   
 
    if t <= Timesdelay
        Pdc22  = [Pdc22,mean(Pdc21(1:t))];
        Pfl22  = [Pfl22,mean(Pfl21(1:t))];
        Pdzl22 = [Pdzl22,mean(Pdzl21(1:t))]; 
    else
        Pdc22  = [Pdc22,mean(Pdc21(t-Timesdelay:t))];
        Pfl22  = [Pfl22,mean(Pfl21(t-Timesdelay:t))];
        Pdzl22 = [Pdzl22,mean(Pdzl21(t-Timesdelay:t))]; 
    end
end
02_043m
相关文章
|
1天前
|
算法 数据可视化 数据安全/隐私保护
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
28 15
|
20小时前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
20小时前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
6月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
162 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
138 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
9月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
9月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
9月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)

热门文章

最新文章