Trans论文复现:基于数据驱动的新能源充电站两阶段规划方法程序代码!

news2025/3/1 8:07:16

适用平台:Matlab+Yalmip+Cplex/Gurobi;

文章提出了一种电动汽车充电站的两阶段规划方法,第一阶段通过蒙特卡洛法模拟充电车辆需求和电池充放电数据来确定充电站位置;第二阶段通过数据驱动的分布鲁棒优化方法优化充电站的新能源和电池容量。程序中算例丰富、注释清晰、干货满满,创新性很高!下面对文章和程序做简要介绍!

文章创新点:

数据驱动; 电动汽车充电站位置及容量规划; 两阶段分布鲁棒优化; 公路交通流量及充电需求; 新能源发电及容量规划

主要工作:

文中提出了一种电动汽车充电站的选址和容量两阶段规划方法。在第一阶段,通过交通需求和电池数据的蒙特卡洛模拟获得车辆需要充电服务的位置;,从潜在的候选充电站中确定充电站的最佳位置,确保每辆车都能在不耗尽电池的情况下访问至少一个充电站;提出了可以模拟充电站充电需求的时-空分布整数规划模型。在第二阶段,建立了基于数据驱动的分布式鲁棒优化模型,以优化充电站中可再生能源发电和储能单元的容量。不确定的发电量和需求由一组基于经验的不精确分布来描述,并且在Kullback–Leibler散度意义上,它们的距离由可调节的标量控制。提出了基于风险理论-稳健模型的两种重构方法。第一种方法依赖于风险值(VaR),并产生了更准确的混合整数线性规划(MILP);第二中方法提供了一个基于条件VaR的保守近似,并归结为一个更易于处理的线性方案。

文章框架:

 

 文章结果:

程序结果:

 

 部分程序:

 %% 优化
% 变量
x_1 = sdpvar(1, 1); % 定义光伏变量
x_2 = sdpvar(1, 1); % 定义充电站变量


% w_0 = sdpvar(1, 1);
p_1 = sdpvar(T, q); % 新能源出力
p_2 = sdpvar(T, q); % 储能充放电
p_3 = sdpvar(T, q); % 电动汽车充放电


f = sdpvar(q, 1);
g = sdpvar(q, 1);
gamma = sdpvar(1, 1);


% 目标函数
Objective = Pr_1 * x_1 + Pr_2 * x_2; % 运行成本


% 约束
Constraint1 = [x_1 >= 0, x_2 >= 0,  w_0 >= 0]; % 新能源、光伏约束


Constraint2 = [];
for i = 1: q
    Constraint2 = [Constraint2, p_1(:, i) >= 0, p_2m * x_2 >= p_2(:, i) >= 0, p_3m * x_2 >= p_3(:, i) >= 0]; %设备出力约束
end

allonestril = tril(ones(T));
Constraint3 = [];
for i = 1: q
    Constraint3 = [Constraint3, w_l * x_2 * ones(T, 1) <= w_0 * x_2 + allonestril * (eta_1 * p_2(:, i) - 1 / eta_2 * p_3(:, i)) * delta_t <= w_h * x_2 * ones(T, 1)]; %文中公式
end


Constraint4 = [];
for i = 1: q
    Constraint4 = [Constraint4, sum(eta_1 * p_2(:, i) - 1 / eta_2 * p_3(:, i)) == 0 ];% 文中公式
end


Constraint5 = [];


Constraint6 = [];
for k = 1: q
    Constraint6 = [Constraint6, p_1(:, k) + p_2(:, k)  - xi_1(:, k) * x_1 <= 0]; %文中公式
end


Constraint7 = [];
for k = 1: q
    Constraint7 = [Constraint7, xi_2(:, k) - p_1(:, k) - p_3(:, k) - f(k) <= 0]; % 文中公式
end
Constraint8 = [g >= f - gamma * ones(q, 1)];


Constraint9 = [g >= 0];


Constraint10 = [gamma + 1 / q / alpha_h * sum(g) <= 0];


Constraints = [Constraint1, Constraint2, Constraint3, Constraint4, Constraint5, Constraint6, Constraint7, Constraint8, Constraint9, Constraint10];

欢迎感兴趣的小伙伴关注,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins配置发邮件

Jenkins配置发邮件 账号设置 首先这个邮箱账号要支持发邮件&#xff0c;QQ邮箱开通SMTP即可之后要认证 企业微信邮箱 开启IMAP/SMTP服务开启POP/SMTP服务 无论是企业微信邮箱还是QQ邮箱都是SSL协议&#xff0c;在下面的配置中我都会勾选上&#xff01;&#xff01;&#xff0…

Nginx配置jks格式证书,升级https

通常在给服务器升级https&#xff0c;需要在nginx上配置域名对应的https证书&#xff0c;nginx通常配置的是crt和key格式的证书。最近遇到有人提供了jks格式的证书&#xff0c;查阅了几个资料都是需要先将jks转为p12格式&#xff0c;然后再将p12转为crt格式。这里记录一下相关过…

【自控实验】3. 带有饱和非线性环节控制系统相平面分析

本科课程实验报告&#xff0c;有太多公式和图片了&#xff0c;干脆直接转成图片了 仅分享和记录&#xff0c;不保证全对 实验内容&#xff1a; 有无非线性环节的相轨迹对比&#xff0c;并求超调量。 在输入单位阶跃信号Xsr时&#xff0c;用示波器观察和记录系统输入饱和非线…

复选框QCheckBox和分组框QGroupBox

1. 复选框&#xff1a;QCheckBox 实例化 //实例化 // QCheckBox* checkBox new QCheckBox("是否同意该条款",this);QCheckBox* checkBox new QCheckBox(this);1.1 代码实现 1.1.1 复选框的基本函数 复选框选中状态的参数 Qt::Unchecked //未选中状态 Qt::Part…

Java字符串拼接常用方法总结

使用场景&#xff1a;用某个分隔符拼接字符串 下边是我使用过的几种方式废话不多说&#xff0c;直接上代码初始数据 1.使用流2.StringBuilder3.[StringJoiner](https://blog.csdn.net/qq_43417581/article/details/126076152?ops_request_misc%257B%2522request%255Fid%2522%2…

win11下载Hbuliderx 安装闪退解决教程+安装包分享

在官网下载 目录 在官网下载 出现闪退 下载失败 2.2. 最终在百度网盘里下载了历史版本 2.3. 然后解压文件 2.4. 双击打开 2.5. 安装成功 出现闪退 下载失败 结果下载失败&#xff0c;一下子弹出的下载框就会闪退 2.2. 最终在百度网盘里下载了历史版本 下载的网盘链接: …

搭建个人智能家居 2 -安装ESPHome

搭建个人智能家居 2 -安装ESPHome 前言ESPHome Linux平台windows平台总结 前言 上一篇文章我们演示了多个平台下面搭建HomeAssistant&#xff0c;可能有一些小伙伴在安装、运行HomeAssistant OS后&#xff0c;打开HomeAssistant的控制台时会出现下面图片显示的问题 这一般是本…

Kibana:使用反向地理编码绘制自定义区域地图

Elastic 地图&#xff08;Maps&#xff09;附带预定义区域&#xff0c;可让你通过指标快速可视化区域。 地图还提供了绘制你自己的区域地图的功能。 你可以使用任何您想要的区域数据&#xff0c;只要你的源数据包含相应区域的标识符即可。 但是&#xff0c;当源数据不包含区域…

pytorch学习笔记(十)

一、损失函数 举个例子 比如说根据Loss提供的信息知道&#xff0c;解答题太弱了&#xff0c;需要多训练训练这个模块。 Loss作用&#xff1a;1.算实际输出和目标之间的差距 2.为我们更新输出提供一定的依据&#xff08;反向传播&#xff09; 看官方文档 每个输入输出相减取…

Springboot + vue 停车管理系统

Springboot vue 停车管理系统 项目描述 系统包含用户和管理员两个角色 用户&#xff1a;登录、注册、个人中心、预定停车位、缴费信息 管理员&#xff1a;登录、用户信息管理、车位信息管理、车位费用管理、停泊车辆管理、车辆进出管理、登录日志查询 运行环境 jdk1.8 idea …

畸变矫正-深度学习相关论文学习

目录 DocTr: Document Image Transformer for Geometric Unwarping and Illumination Correction SimFIR: A Simple Framework for Fisheye Image Rectification with Self-supervised Representation Learning Model-Free Distortion Rectification Framework Bridged by Di…

UCB Data100:数据科学的原理和技巧:第十一章到第十二章

十一、恒定模型、损失和转换 原文&#xff1a;Constant Model, Loss, and Transformations 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 推导出在 MSE 和 MAE 成本函数下恒定模型的最佳模型参数。 评估 MSE 和 MAE 风险之间的差异。 理解变量线性化的必要…

Java中锁的解决方案

前言 在上一篇文章中&#xff0c;介绍了什么是锁&#xff0c;以及锁的使用场景&#xff0c;本文继续给大家继续做深入的介绍&#xff0c;介绍JAVA为我们提供的不同种类的锁。 JAVA为我们提供了种类丰富的锁&#xff0c;每种锁都有不同的特性&#xff0c;锁的使用场景也各不相…

【C】volatile 关键字

目录 volatile1&#xff09;基本概念2&#xff09;用途&#xff1a;禁止编译器优化3&#xff09;总结 volatile 1&#xff09;基本概念 const是C语言的一个关键字。 const用于告诉编译器相应的变量可能会在程序的控制之外被修改&#xff0c;因此编译器不应该对其进行优化。 …

mac 使用brew卸载node

1.查看当前的node版本 node -v 2.查看使用brew 安装的版本&#xff0c;可以看到本机装了14、16、18版本的node brew search node 3.卸载node brew uninstall node版本号 --force 如分别删除14、16、18版本的node命令如下 brew uninstall node14 --force brew uninstall no…

【排序篇1】插入排序、希尔排序

目录 一、插入排序二、希尔排序 一、插入排序 思路&#xff1a; 插入排序就像玩扑克牌&#xff0c;抽出一张牌作为比较的元素&#xff0c;与前面的牌依次进行比较&#xff0c;小于继续往前比较&#xff0c;大于等于停下插入到当前位置。 图示&#xff1a; void InsertSort(…

高效便捷的远程管理利器——Royal TSX for Mac软件介绍

Royal TSX for Mac是一款功能强大、操作便捷的远程管理软件。无论是远程桌面、SSH、VNC、Telnet还是FTP&#xff0c;用户都可以通过Royal TSX轻松地远程连接和管理各种服务器、计算机和网络设备。 Royal TSX for Mac提供了直观的界面和丰富的功能&#xff0c;让用户能够快速便…

RT-Thread I/O设备模型

I/O设备模型 绝大部分的嵌入式系统都包括一些I/O&#xff08;Input/Output&#xff0c;输入/输出&#xff09;设备&#xff0c;例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡&#xff0c;以及网络设备的以太网接口等&#xff0c;都…

openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态

文章目录 openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态195.1 分析查询语句运行状态195.1.1 问题现象195.1.2 处理办法 openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态 195.1 分析查询语句运行状态…

池化、线性、激活函数层

一、池化层 池化运算是深度学习中常用的一种操作&#xff0c;它可以对输入的特征图进行降采样&#xff0c;从而减少特征图的尺寸和参数数量。 池化运算的主要目的是通过“收集”和“总结”输入特征图的信息来提取出主要特征&#xff0c;并且减少对细节的敏感性。在池化运算中…