考虑源荷不确定性的微网优化(含matlab程序)

简介: 考虑源荷不确定性的微网优化(含matlab程序)

一、前言

在常规的电热微网优化中,可以得到蓄电池、外网交互、燃料电池、余热锅炉等设备的功率,但是常规模型已经比较基础了,在发文章或者做毕业论文的时候用太初级,工作量和深度难以满足要求,因此可以考虑不确定变量的鲁棒性、考虑机会约束等,本文用王锐的《含可再生能源的热电联供型微网经济运行优化》为例,分析机会约束规划理论建立模型和编程方法,同时给出常规粒子群PSO和基于CCP理论的粒子群算法上面的区别。

二、含可再生能源的CHP型微网系统

对于该方向专业的学生对上面这个图并不陌生,主要是分析热功率和电功率传输和供应负荷的过程,不再赘述。

三、CCP理论

四、具体模型

具体模型不在此赘述了,可以详见文献资料。

五、不含随机变量分析的matlab程序设计

1.粒子群寻优功能代码段

function [ bestPosition, fitValue ] = ...
PSOFUN( CostFun,nVar,VarMin,VarMax,MaxIt,nPop )
%% PSO Parameters 
CostFunction=@(x) CostFun(x);        % Cost Function
w=1;            % Inertia Weight
wdamp=0.99;     % Inertia Weight Damping Ratio
c1=1.5;         % Personal Learning Coefficient
c2=2.0;         % Global Learning Coefficient
VarSize=[1 nVar];   % Size of Decision Variables Matrix
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
 
%% Initialization
 
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
 
particle=repmat(empty_particle,nPop,1);
 
GlobalBest.Cost=inf;
 
for i=1:nPop
    
    % Initialize Position
    particle(i).Position=unifrnd(VarMin,VarMax,VarSize);%随机初始化变量
    
    % Initialize Velocity
    particle(i).Velocity=zeros(VarSize);%速度
    
    % Evaluation
    particle(i).Cost=CostFunction(particle(i).Position);%目标
    
    % Update Personal Best
    particle(i).Best.Position=particle(i).Position;%更新个体最优
    particle(i).Best.Cost=particle(i).Cost;
    
    % Update Global Best%更新全局最优
    if particle(i).Best.Cost<GlobalBest.Cost
        
        GlobalBest=particle(i).Best;
        
    end
    
end
 
BestCost=zeros(MaxIt,1);
 
%% PSO Main Loop
 
for it=1:MaxIt
    
    for i=1:nPop
        
        % Update Velocity更新速度
        particle(i).Velocity = w*particle(i).Velocity ...
            +c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) ...
            +c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);
        
        % Apply Velocity Limits速度约束
        particle(i).Velocity = max(particle(i).Velocity,VelMin);
        particle(i).Velocity = min(particle(i).Velocity,VelMax);
        
        % Update Position更新位置
        particle(i).Position = particle(i).Position + particle(i).Velocity;
        
        % Velocity Mirror Effect变量越限镜像处理
        IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);
        particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);
        
        % Apply Position Limits%变量越限处理
        particle(i).Position = max(particle(i).Position,VarMin);
        particle(i).Position = min(particle(i).Position,VarMax);
        
        % Evaluation新目标
        particle(i).Cost = CostFunction(particle(i).Position);
        
        % Update Personal Best
        if particle(i).Cost<particle(i).Best.Cost
            
            particle(i).Best.Position=particle(i).Position;
            particle(i).Best.Cost=particle(i).Cost;
            
            % Update Global Best更新全局最优
            if particle(i).Best.Cost<GlobalBest.Cost
                
                GlobalBest=particle(i).Best;
                
            end
            
        end
        
    end
    
    BestCost(it)=GlobalBest.Cost;
    
    disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);
    w=w*wdamp;
    
end
 
bestPosition = GlobalBest.Position;%记录最优位置
fitValue = GlobalBest.Cost;%记录最优目标结果
 
 
 
end

粒子群代码部分主要是实现初始粒子设置和迭代寻优功能,采用结构型变量实现简约、利于理解的代码功能,且注释比较清晰,方便学习!

2.目标函数子程序

function fun = fun_objective(x)
%% 准备工作 
parameter; %输入所有的数据 
% 各个决策变量的含义 
Pfl = x(1:24);      % 燃料电池出力 
Pbt = x(25:48);  % 蓄电池出力 
Pex = x(49:72); % 交互功率
Pgb = x(73:96); % 锅炉出力
fun =0; 
 
%% 书写目标函数
for t=1:24
    fun = fun + 1/2*(Cph+Cse)*Pex(t) + 1/2*(Cph-Cse)*abs( Pex(t) ) ...
    + Cgas*(Pfl(t)/eta_fl+ Pgb(t)/eta_gb ) + Pfl(t)*Cfl_om + ...
    Pfl(t)*r_fl*eta_hrbl*Cbl_om + abs(Pbt(t))*Cbt_om+ ...
    Pgb(t)*Cgb_om + Pwt(t)*Cwt_om + Ppv(t)*Cpv_om;
end
 
%% 书写约束
% ******************* 等式约束****************************
h=[];
for t=1:24 % (1) 电能平衡约束
    if Pbt(t)<=0
        h = [h, Pex(t)+Pfl(t)+Pwt(t)+Ppv(t)+Pbt(t)/eta_ch-Pel(t) ]; %=0
    else
        h = [h, Pex(t)+Pfl(t)+Pwt(t)+Ppv(t)+Pbt(t)*eta_dis-Pel(t) ]; %=0
    end
end
 
for t=1:24 % (2) 热能平衡约束
    h = [h, Pgb(t)+Pfl(t)*r_fl*eta_hrbl-Pth(t) ]; %=0
end
 
       % (3) 电池储能初始和最终状态相等约束
 h = [h, sum(Pbt) ]; %=0
 
% ******************* 不等式约束 ***************************
g=[];
for t=2:24 % (1) 燃料电池爬坡约束
    g=[g, Pfl(t)-Pfl(t-1)-deltaP_up] ; % <=0    
    g=[g, -( Pfl(t)-Pfl(t-1)-deltaP_down ) ] ; % <=0    
end
 
for t=1:24 % (2) 余热锅炉约束
    g=[g, Pfl(t)*r_fl*eta_hrbl-Pbl_max ] ; % <=0    
    g=[g, - ( Pfl(t)*r_fl*eta_hrbl-Pbl_min ) ] ; % <=0    
end
 
for t=1:24 % (3) 蓄电池约束
    g=[g, Wbt_init-sum(Pbt(1:t))-Wbt_max  ] ; % <=0    
    g=[g, -( Wbt_init-sum(Pbt(1:t))-Wbt_min )  ] ; % <=0    
end
 
%**********************罚函数处理*************************
 
Big=100000;
small=0.01;
N=length(g);
M=length(h);
G=0;
for n=1:N
    G=G+max(0, g(n))^2;
end
H=0;
for m=1:M
    H=H+max(  0, abs(h(m))-small  )^2;
end
 
%*******************加入罚函数后的目标函数******************
 
fun=fun+Big*(H+G);
 
end
 

目标函数代码完美复刻了文献中的目标函数和约束条件,约束部分采用清晰简明的等式和不等式部分,方便理解,采用罚函数的形式形成最终目标函数值。

3.其他代码段

其他主要就是主函数调用和参数定义代码段,由于功能性单一,在此不再列出,可以通过评论区链接进行购买下载。

六、基于CCP的粒子群优化程序

1.含随机变量的约束条件处理

%等式约束随机变量处理
Pex = Pel - Pfl - max(Pbt,0)*eta_dis - min(Pbt,0)/eta_ch - Pwt - Ppv;
Pgb = Pth - Pfl*r_fl*eta_hrbl;

2.随机变量生成

考虑源荷的随机特征,具体参数如下:

for i=1:24
    %风电、光伏服从预测值为均值,0.1为方差的均匀分布
    Pwtmax(i)=Pwt(i)+1.2^0.5/2;
    Pwtmin(i)=Pwt(i)-1.2^0.5/2;
    Ppvmax(i)=Ppv(i)+1.2^0.5/2;
    Ppvmin(i)=Ppv(i)-1.2^0.5/2;
    %热电负荷服从预测值偏差+-10%的均匀分布
    Pelmax(i)=1.1*Pel(i);
    Pelmin(i)=0.9*Pel(i);
    Pthmax(i)=1.1*Pth(i);
    Pthmin(i)=0.9*Pth(i);
    %形成新的随机变量
    Pwt1(i)=Pwtmin(i)+(Pwtmax(i)-Pwtmin(i))*rand;
    Ppv1(i)=Ppvmin(i)+(Ppvmax(i)-Ppvmin(i))*rand;
    Pel1(i)=Pelmin(i)+(Pelmax(i)-Pelmin(i))*rand;
    Pth1(i)=Pthmin(i)+(Pthmax(i)-Pthmin(i))*rand;
end

3.置信水平检部分

该部分程序可详见评论区程序链接。

七、程序结果

1.不含随机变量的程序结果

2.含随机变量处理的程序结果

通过结果能够看出,该方法实现了所有约束,优化效果均较好。

八、程序链接

程序包括两部分,分别是不含随机变量和包含随机变量处理两个程序代码,可以详细分析两种方法的对比结果,需要的可私信,下面是程序讲解视频!

考虑源荷不确定性的微网经济运行优化matlab

相关文章
|
2天前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。
|
4天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
4天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1
|
4天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
16 1
|
4天前
|
数据安全/隐私保护
matlab程序,地震波压缩、地震波缩尺、地震波压缩时间,调整时长、时间间隔
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
数据安全/隐私保护
matlab程序 批量计算地震波 等延性反应谱,延性反应谱,延性加速度谱
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
算法 数据安全/隐私保护
matlab程序,地震波三联反应谱,标定三联谱,三联反应谱
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
数据安全/隐私保护
matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应,自定义脉冲模型,提取脉冲波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
算法 数据安全/隐私保护
matlab程序,傅里叶变换,频域数据,补零与不补零傅里叶变换
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章