%% 基于ADMM算法的多微网电能交互分布式运行策略
clc
clear
close all
tic
%% ADMM算法参数设置
lambda_12=zeros(1,24);lambda_13=zeros(1,24);lambda_21=zeros(1,24);
lambda_23=zeros(1,24);lambda_31=zeros(1,24);lambda_32=zeros(1,24);%拉格朗日乘子初始化
max_k=100; %最大迭代次数
tolerant=1e-3;%收敛精度
rho=1e-4;%惩罚因子
k=1;%迭代次数初始化
tao=[]; %残差
P_12=zeros(max_k+1,24);P_21=zeros(max_k+1,24);P_13=zeros(max_k+1,24);
P_31=zeros(max_k+1,24);P_23=zeros(max_k+1,24);P_32=zeros(max_k+1,24);%交互量
%% 迭代
while 1
if k==max_k
break;
end
[P_wt_1,P_buy_1,P_batd_1,P_batc_1,P_sell_1,P_grid_1,P_bat_1,L_e_1,L_e0_1,E_co2_1,P_12(k+1,:),P_13(k+1,:),Obj_MG1(k)]=xin1(P_21(k+1,:),P_31(k+1,:),lambda_12,lambda_13,rho);
[P_pv_2,P_buy_2,P_batd_2,P_batc_2,P_sell_2,P_grid_2,P_bat_2,L_e_2,L_e0_2,E_co2_2,P_21(k+1,:),P_23(k+1,:),Obj_MG2(k)]=xin2(P_12(k+1,:),P_32(k+1,:),lambda_21,lambda_23,rho);
[P_pv_3,P_buy_3,P_batd_3,P_batc_3,P_sell_3,P_grid_3,P_bat_3,L_e_3,L_e0_3,E_co2_3,P_31(k+1,:),P_32(k+1,:),Obj_MG3(k)]=xin3(P_13(k+1,:),P_23(k+1,:),lambda_31,lambda_32,rho);
lambda_12=lambda_12+rho*(P_12(k+1,:)+P_21(k+1,:));
lambda_13=lambda_13+rho*(P_13(k+1,:)+P_31(k+1,:));
lambda_21=lambda_21+rho*(P_21(k+1,:)+P_12(k+1,:));
lambda_23=lambda_23+rho*(P_23(k+1,:)+P_32(k+1,:));
lambda_31=lambda_31+rho*(P_31(k+1,:)+P_13(k+1,:));
lambda_32=lambda_32+rho*(P_32(k+1,:)+P_23(k+1,:));
tao=[tao,norm(P_12(k+1,:)-P_12(k,:))+norm(P_13(k+1,:)-P_13(k,:))+norm(P_23(k+1,:)-P_23(k,:))]; %残差计算
if tao(k)<=tolerant
break; %判断收敛条件
end
k=k+1;
end
toc
disp(['微网1的二氧化碳排放量 : ', num2str(E_co2_1),' kg']);
disp(['微网2的二氧化碳排放量 : ', num2str(E_co2_2),' kg']);
disp(['微网3的二氧化碳排放量 : ', num2str(E_co2_3),' kg']);
%% 画图
figure(1)
plot(tao,'g','LineWidth',1.5);
hold on
xlabel('迭代次数');
ylabel('残差');
figure(2)
plot(Obj_MG1,'m','LineWidth',1.5);
hold on
plot(Obj_MG2,'r','LineWidth',1.5);
hold on
plot(Obj_MG3,'b','LineWidth',1.5);
hold on
legend('微网1','微网2','微网3');
xlabel('迭代次数/k');
ylabel('成本/元');
legend('boxoff');
grid on
box off
e_1=-(P_12(k+1,:)+P_13(k+1,:));
e_2=-(P_21(k+1,:)+P_23(k+1,:));
e_3=-(P_31(k+1,:)+P_32(k+1,:)); %馈入为正,流出为负
%% 微网1
figure (3)
Ele_1=[P_wt_1;e_1;P_buy_1;-P_sell_1;P_batd_1;-P_batc_1];%买入为正,售出为负
e=bar(Ele_1','stacked');
color=[0.262482234698333,0.546805718738968,0.885168008202475;0.0855157970900440,0.963088539286913,0.0377388662395521;0.801014622769739,0.521135830804002,0.913286827639239;0.0292202775621463,0.231594386708524,0.796183873585212;0.928854139478045,0.488897743920167,0.0987122786555743;0.730330862855453,0.624060088173690,0.261871183870716];
for i=1:6
set(e(i),'FaceColor',color(i,:));
end
hold on
plot(L_e_1,'b-o','LineWidth',1.5);
hold on
plot(L_e0_1,'g-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
legend('风力发电','与其他微网交换功率','向电网购电功率','向电网售电功率','放电功率','充电功率','优化后电负荷','初始电负荷');
legend('boxoff');
title('微网1调度结果');
box off
%% 微网2
Ele_2=[P_pv_2;e_2;P_buy_2;-P_sell_2;P_batd_2;-P_batc_2];
figure (4)
e=bar(Ele_2','stacked');
for i=1:6
set(e(i),'FaceColor',color(i,:));
end
hold on
plot(L_e_2,'b-o','LineWidth',1.5);
hold on
plot(L_e0_2,'g-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
legend('光伏发电','与其他微网交换功率','向电网购电功率','向电网售电功率','放电功率','充电功率','优化后电负荷','初始电负荷');
legend('boxoff');
title('微网2调度结果');
box off
%% 微网3
Ele_3=[P_pv_3;e_3;P_buy_3;-P_sell_3;P_batd_3;-P_batc_3];
figure (5)
e=bar(Ele_3','stacked');
for i=1:6
set(e(i),'FaceColor',color(i,:));
end
hold on
plot(L_e_3,'b-o','LineWidth',1.5);
hold on
plot(L_e0_3,'g-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
legend('光伏发电','与其他微网交换功率','向电网购电功率','向电网售电功率','放电功率','充电功率','优化后电负荷','初始电负荷');
legend('boxoff');
title('微网3调度结果');
box off
%% 新能源
figure (6)
plot(P_wt_1,'b-o','LineWidth',1.5);
hold on
plot(P_pv_2,'g-o','LineWidth',1.5);
hold on
plot(P_pv_3,'r-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
legend('微网1风力','微网2光伏','微网3光伏');
legend('boxoff');
title('新能源发电功率');
box off
%% 微网间电能交易
figure (7)
plot(e_1,'b-o','LineWidth',1.5);
hold on
plot(e_2,'g-o','LineWidth',1.5);
hold on
plot(e_3,'r-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
legend('微网1','微网2','微网3');
legend('boxoff');
title('微网间电能交易功率');
box off
电网论文源程序
- 粉丝: 1w+
- 资源: 384
最新资源
- WebSocket详解-TCP全双工通信协议的工作原理与应用
- 信捷xdm plc三轴可编程运动控制程序,支持信捷XDM系列PLC ?信捷TG765触摸屏 支持直线插补 ,圆弧插补,延时,等待输入ON,等待输入OFF,执行输出ON,执行输出O
- Qt+OpenCV图像视觉框架全套源码上位机 工具可扩展 除了opencv和相机sdk的dll,其它所有算法均无封装,可以根据自己需要补充自己的工具 基于 Qt5.12.12 + VS2019 +
- 自动驾驶控制器,自动驾驶多传感器联合标定系列之毫米波雷达到车体坐标系的标定工程 , 本对毫米波雷达的偏航角yaw进行标定,分为粗略标定、静态目标识别和曲线拟合三个步骤 这个工程带有代码注释,帮助您
- 模块化多电平流器MMC,最近电平逼近调制+电压均衡控制
- 基于STM32开发的智能光控窗帘项目 主控芯片STM32F103. 其他控制:光敏电阻,1602显示屏,电机驱动控制模块 工作原理:ADC采集光敏电阻电压 判断电压值,对光照强度判断,光照太强关闭
- simulink二次调频风机储能水轮机水电火电汽轮机二次调频,有随机扰动负荷,可连续波动,可对频率分频调频,分低频,中频,高频,也可对不同死区的风储同步机进行二次调频,系统示意图和波形如图所示,新品
- 磁链观测器 vesc中使用的方法 已经移植到了自己的工程中,实现0速闭环启动 代码、文档、仿真是一一对应的,方便学习 送仿真模型
- uvw对位平台,XXY,XYθ对位平台源码,halcon定位算法,C#联合halcon,含C#和halcon源码,开发平台,vs2015,halcon17
- 考虑源荷不确定性的热电联供微网优化 复现《含可再生能源的热电联供型微网经济运行优化》,采用粒子群算法,采用机会约束规划理论出力源荷不确定性,采用概率方法来表达,目标函数代码完美复刻了文献中的目标函数和
- Python 实现的 TCN(时间卷积网络)进行多特征分类预测的详细实例(含完整的程序,GUI设计和代码详解)
- 基于EKF扩展卡尔曼滤波算法的永磁同步电机PMSM无传感器矢量控制Simulink仿真模型 1.依据PMSM的数学模型搭建电机模型 2.双闭环dq解耦控制,转速外环,转矩内环 3. EKF算法对电机
- Python 实现的 CNN-LSTM(卷积长短期记忆网络)用于时间序列预测的详细实例(含完整的程序,GUI设计和代码详解)
- 下垂控制三相LCL并网 离网matlab仿真模型(户用型储能逆变器)孤网运行联网运行 多机 单机运行 参数计算 仿真模型 ,逆变器,微电网
- Python 实现遗传算法(GA)和(PSO)粒子群优化算法来优化反向传播(BP)神经网络的多输入单输出预测的实例(含完整的程序,GUI设计和代码详解)
- 电子竞技信息交流平台+ssm-微信小程序毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈