Matlab|【EI复现】电动汽车集群并网的分布式鲁棒优化调度模型

目录

[1 内容简介](#1 内容简介)

[2 关键知识点](#2 关键知识点)

[2.1 三类电动汽车模型](#2.1 三类电动汽车模型)

[3 程序结果](#3 程序结果)

[4 下载链接](#4 下载链接)


1 内容简介

电动汽车的数据模型种类繁多,但是用到比较高阶数学方法的并不多,本次分享的程序是下图所示的文章。

采用分布鲁棒优化模型,用到鲁棒对等转换,并采用ADMM算法进行求解,程序和文章方法一致,具有较好的参考价值。

2 关键知识点

2.1 三类电动汽车模型

根据文章所述,三类电动汽车模型分别如下所示:

对应程序代码如下(第二类电动汽车):

复制代码
con1=[];
​
for i=1:sumA1n2
​
       for t=1:T
​
     k=k+1;
​
    if t==1
​
    con1=[con1,x_socu1(i,t)==u1soc(i)+yita*x_pju1(i,t)/El];%soc约束
​
    con1=[con1,x_pju1(i,t)==pcr*timeu1(i,t)];%充电功率约束
​
    else
​
    con1=[con1,x_socu1(i,t)==x_socu1(i,t-1)+yita*x_pju1(i,t)/El];   %soc约束
​
        con1=[con1,sum(lind(k,:))==1,
​
        implies(lind(k,1),[x_socu1(i,t-1)>=Scr,0<=x_pju1(i,t)<=pcr*timeu1(i,t)]);%soc大于0.4时充电功率约束
​
        implies(lind(k,2),[x_socu1(i,t-1)<=Scr,x_pju1(i,t)==pcr*timeu1(i,t)])];%soc小于0.4时充电功率约束
​
    end
​
 
​
% con1=[con1,0<=x_pju1(i,t)<=pcr*timeu1(i,t)];
​
    end
​
end
​
for i=1:u1sum20
​
    con1=[con1,Slex<=x_socu1(i,24)<=1];%离网soc约束
​
end
​
con1=[con1,0<=x_socu1<=1];
​
2.2 发电机启停约束
​
发电机启停时间约束是编程的一个难点,具体约束表达形式列写在下面,详细与原理可以参见视频讲解部分。
​
Horizon = size(x,2);
​
C = [];
​
for k = 2:size(x,2)
​
    for unit = 1:size(x,1)
​
        % indicator 代表机组启停动作
​
        indicator = x(unit,k)-x(unit,k-1);
​
        range = k:min(Horizon,k+minup(unit)-1);%约束状态,状态维持不变,开关机至少保持时间范围
​
        % Constraints will be redundant unless indicator = 1
​
        affected = x(unit,range);
​
        if strcmp(class(affected),'sdpvar')
​
        % 开关机状态约束,只要开机,必然维持最小运转时间
​
            C = [C, affected >= indicator];
​
        end
​
    end
​
end

2.3 ADMM算法迭代部分

迭代部分是程序运行的灵魂所在,但是对于模块化编程,这部分确实不好展示,就把模块化代码列在此处,详细信息可以下载程序源码了解。

复制代码
for i=1:10%循环次数,次数越多越收敛,但是运算时间就长
​
    [PDN,x_pd1,x_pd2,x_pv1,x_pv2,x_pw1,x_pw2]=mp(PAjr,lamr,P2j1,P3j1,P2j2,P3j2,P2j3,P3j3,P2j4,P3j4);%主问题
​
    [P1j1,P2j1,P3j1,PA1t,x_pjd1,x_pju1,x_pjh1,x_socd1,x_socu1,x_soch1]=eva1(PDN,lamr,A1n1,A1n2,A1n3);%子问题1
​
 
​
   [P1j2,P2j2,P3j2,PA2t,x_pjd2,x_pju2,x_pjh2,x_socd2,x_socu2,x_soch2]=eva2(PDN,lamr,A2n1,A2n2,A2n3);%子问题2
​
%
​
    [P1j3,P2j3,P3j3,PA3t,x_pjd3,x_pju3,x_pjh3,x_socd3,x_socu3,x_soch3]=eva3(PDN,lamr,A3n1,A3n2,A3n3);%子问题3
​
   
​
    [P1j4,P2j4,P3j4,PA4t,x_pjd4,x_pju4,x_pjh4,x_socd4,x_socu4,x_soch4]=eva4(PDN,lamr,A4n1,A4n2,A4n3);%子问题4
​
       
​
    PAjr=[P1j1+P2j1+P3j1;P1j2+P2j2+P3j2;P1j3+P2j3+P3j3;P1j4+P2j4+P3j4];
​
   
​
    lamr=lamr+pho.*(PDN-PAjr);
​
   
​
    slp(i)=(sum(sum((PDN-PAjr).*(PDN-PAjr))))^0.5;
​
end

3 程序结果

4 下载链接

相关推荐
j***576813 小时前
【分布式文件存储系统Minio】2024.12保姆级教程
分布式
敲上瘾14 小时前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
SuperHeroWu71 天前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.1 天前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生
m***l1151 天前
集成RabbitMQ+MQ常用操作
分布式·rabbitmq
拾忆,想起2 天前
Dubbo分组(Group)使用指南:实现服务接口的多版本管理与环境隔离
分布式·微服务·性能优化·架构·dubbo
回家路上绕了弯2 天前
彻底解决超卖问题:从单体到分布式的全场景技术方案
分布式·后端
拾忆,想起2 天前
Dubbo动态配置实时生效全攻略:零停机实现配置热更新
分布式·微服务·性能优化·架构·dubbo
每天进步一点_JL2 天前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端
静若繁花_jingjing2 天前
ZooKeeper & Nacos
分布式·zookeeper·云原生