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

本文主要是介绍Matlab|【EI复现】电动汽车集群并网的分布式鲁棒优化调度模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 内容简介

2 关键知识点

2.1 三类电动汽车模型

3 程序结果

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 下载链接

这篇关于Matlab|【EI复现】电动汽车集群并网的分布式鲁棒优化调度模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/793432

相关文章

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整