【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)

简介: 【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)

主要内容  

该模型为三微网电能交互共享模型,以运行成本和环境成本为目标,考虑负荷需求响应(可削减负荷和可转移负荷)、储能约束、风电约束和功率平衡约束等,利用ADMM算法进行迭代求解,实现联盟群效益的最大化,程序采用matlab+cplex求解,基本做到句句注释,具有较好的参考价值。

 部分代码  

%% 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=1000;  %最大迭代次数
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(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');


 结果一览  

下载链接

相关文章
|
2月前
|
机器学习/深度学习 算法 安全
m基于Q-Learning强化学习的路线规划和避障策略matlab仿真
MATLAB 2022a仿真实现了Q-Learning算法在路线规划与避障中的应用,展示了智能体在动态环境中学习最优路径的过程。Q-Learning通过学习动作价值函数Q(s,a)来最大化长期奖励,状态s和动作a分别代表智能体的位置和移动方向。核心程序包括迭代选择最优动作、更新Q矩阵及奖励机制(正奖励鼓励向目标移动,负奖励避开障碍,探索奖励平衡探索与利用)。最终,智能体能在复杂环境中找到安全高效的路径,体现了强化学习在自主导航的潜力。
46 0
|
20小时前
|
canal 缓存 NoSQL
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;先删除缓存还是先修改数据库,双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
|
16天前
|
缓存 自然语言处理 负载均衡
理解大模型在分布式系统中的应用和优化策略
理解大模型在分布式系统中的应用和优化策略
|
16天前
|
弹性计算 运维 负载均衡
构建高可用性的分布式系统:技术与策略
【7月更文挑战第1天】构建高可用分布式系统涉及负载均衡、容错处理和数据一致性等关键技术,遵循冗余、模块化及异步设计原则,并通过监控告警、自动化运维和弹性伸缩策略确保稳定性。
|
8天前
|
缓存 NoSQL Java
在Spring Boot中实现分布式缓存策略
在Spring Boot中实现分布式缓存策略
|
9天前
|
缓存 NoSQL Java
在Spring Boot中实现分布式缓存策略
在Spring Boot中实现分布式缓存策略
|
15天前
|
存储 Java 开发工具
Spring Cloud中的分布式配置管理策略
Spring Cloud中的分布式配置管理策略
|
19天前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
2月前
|
算法
基于一致性理论的微电网分布式控制策略仿真模型【自适应虚拟阻抗】【simulink仿真】
基于一致性理论的微电网分布式控制策略仿真模型【自适应虚拟阻抗】【simulink仿真】
|
2月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)

热门文章

最新文章