【SCI一区】【电动车】基于ADMM双层凸优化的燃料电池混合动力汽车研究(Matlab代码实现)

目录

💥1 概述

1.2 电动车动力学方程

1.3 电池模型

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

文献来源:

随着车辆互联性的出现,互联汽车 (CVs) 在增强道路安全、改善乘坐舒适性、提高交通效率和提高能源效率方面提供了巨大的潜力。通过从车对车 (V2V) 和车对基础设施 (V2I) 通信中获取交通信息,CV 能够更准确、更广泛地感知,从而有助于更好地做出决策。因此,CV 的个人或协作生态驾驶获得了更多通过优化车速来降低能源利用率的机会 [3]。燃料电池汽车(FCV)具有高效、节能、零污染等优点,已成为汽车电气化进程中的重要发展方向。 FCV可分为仅使用燃料电池的燃料电池电动汽车(FCEV)和燃料电池混合动力电动汽车(FCHEV)。

混合动力电动汽车 (HEV) 和插电式混合动力电动汽车 (PHEV),FCHEV 具有混合动力系统,包括电池在内的多种能源。混合动力汽车的能源消耗本质上与能源管理策略(EMS)相关,它决定了不同能源之间的能源分配。因此,FCHEV 的生态驾驶涉及能源管理,这比具有单一能源的车辆(例如内燃机汽车(ICEV)和电池电动汽车(BEV))更复杂。

互联燃料电池混合动力汽车的生态驾驶是一个速度规划和能量管理的耦合问题。为了减少计算量,双层优化解耦并分层解决上层子问题和下层子问题。本文提出了一种双水平凸方法,用于连接FCHEV通过多个信号交叉口的生态驾驶。在上层,将非线性交通灯约束转化为时变的线性状态约束,使用平均速度后,代价函数变成二次函数。在下层,对燃料电池系统和电池进行了模型的凸化。然后利用MOSEK求解器和交替方向乘法器(ADMM)算法依次求解上层速度规划和下层能量管理。结果表明,该方法在保持高能效的同时,大大降低了计算成本,计算时间仅为6.59%,与双级动态规划(DP)方法相比,燃油经济性基本相同。

 图 1 所示为所研究的 FCHEV 的动力总成拓扑结构,它由燃料电池系统和电池组组成。燃料电池系统通过 DC/DC 转换器连接到电源总线,并通过 DC/AC 逆变器与电池一起为电动机供电以驱动车辆。车辆和动力总成参数使用 ADVISOR中 FCHEV 的默认值,如表 1 所示。根据本文的主题,建模侧重于动力总成组件(即燃料电池、电池和电机)和其他组件(例如,DC/DC 转换器、DC/AC 逆变器和主减速器)的功率损耗不被考虑,这意味着它们的效率(例如,相应的 \etaDC/DC 、\etaDC/AC 和 \etaFD) 为 100%。

          

                                 图1 FCHEV 的动力总成拓扑结构

1.2 电动车动力学方程

电动车的纵向动力学可以表示为:

               \dot{v}=\frac{F_{d r v}+F_{b r k}}{M}-\left(G \sin \theta+G f_{r} \cos \theta+\frac{\rho A C_{D}}{2 M} v^{2}\right)

其中 v、M、fr 和 A 分别表示车辆的速度、质量、滚动阻力系数和正面面积;车辆加速度a=\dot{v}; Fdrv 和 Fbrk 分别是电动机提供的机械力和车轮摩擦制动器提供的力; G是重力加速度;\theta表示道路坡道,\rho和 CD 分别表示空气密度和阻力系数。

因此,电动车P_{dmd}的功率需求由下式求得:

                  P_{d m d}=\left(F_{d r v}+F_{b r k}\right) v

1.3 电池模型

本文采用包括内阻和电压源的等效电路模型,可表示为 :

                 \left\{\begin{array}{c} V_{b a t}=V_{O C}-I_{b a t} R_{0} \\ P_{b a t}=V_{b a t} I_{b a t} \\ P_{O C}=V_{O C} I_{b a t} \end{array}\right.

其中Vbat、VOC、Ibat、R0、Pbat和POC分别为电池的电压、开路电压、电流、内阻、输出功率和化学功率。 VOC 和 R0 都是电池充电状态 (SOC) 的函数。因此,电池电流 Ibat 由下式给出:

                   I_{b a t}=\frac{V_{O C}-\sqrt{V_{O C}^{2}-4 R_{0} P_{b a t}}}{2 R_{0}}

数学模型详细内容可以参考后文。在本文第四节——Matlab代码实现中有文档。

📚2 运行结果

 

 

 

 

 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码、数据、文章讲解

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

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

相关文章

数学建模-图论 最短路径

作图 %% 注意:以下代码需要较新版本的matlab才能运行(最好是2016版本及以上哦) % 如果运行出错请下载新版的matlab代码再运行%% Matlab作无向图 % (1)无权重(每条边的权重默认为1) % 函数graph(…

SQL进阶(2)——SQL语句类型 增删改查CRUD 事务初步 表关联关系 视图 +索引

目录 引出SQL语句类型1.DML数据操纵语言(重点)2.DQL数据查询语言(重点)3.DDL(Data Definition Language了解)4.DCL(Data Control Language了解)5.TCL 事务控制语言 运算符和其他函数1.运算符2.其它函数增删改查CRUD 视图索引事务1…

如何克服Leetcode做题的困境

文章目录 如何克服Leetcode做题的困境问题背景克服困境的建议实践与理论结合切忌死记硬背分析解题思路不要过早看答案迭代式学习寻求帮助坚持与耐心查漏补缺 结论 如何克服Leetcode做题的困境 问题背景 明明自觉学会了不少知识,可真正开始做Leetcode题目时&#x…

内存参数问题导致内存溢出

问题:内存参数问题导致内存溢出 1、文件过大,进行分块 2、 运行参数,使用最大内存配置2时,导致空指针异常。 3、获取详细报错信息-内存溢出 多线程捕获Throwable异常 修改代码,捕获Throwable,获取异常 异…

vue中预览pdf

情况一 如果后端返回的pdf地址,粘贴到浏览器的url框中,可以在浏览器中直接进行预览的,那么我们就用window.open,或 a标签,或iframe标签通过设置src进行预览即可 法1:可以直接使用window.open(…

leetcode100.相同的树

⭐️ 题目描述 🌟 leetcode链接:相同的树 1️⃣ 代码: bool isSameTree(struct TreeNode* p, struct TreeNode* q){// 判断两棵树当前结点是否为空if (p NULL && q NULL) {// 说明是相同的return true;}// 来到这里有几种情况// …

【实战篇】docker-compose部署go项目

一、场景: 二、需求 三、实操 Stage 1:GoLand 中 build 生成二进制文件 Stage 2:编写 Dockerfile Stage 3:编写 docker-compose.yaml Stage 4:文件上传到 ubuntu 服务器上,并设置文件读写权限 Stage…

前端 | (二)各种各样的常用标签 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 文章目录 📚HTML排版标签📚HTML语义化标签📚块级元素与行内元素📚文本标签🐇常用的文本标签🐇不常用的文本标…

Kubernetes Service的过程

文章目录 Kubernetes Service的实现基础内容1. 命令 ip route show table all2. DNAT3. IPVS和iptables4. Service Service的实现简述 Kubernetes Service的实现 基础内容 在了解Service之前,需要先了解一些额外的知识: 命令: ip route show table allDNATIPVS和iptables基础…

idea不小心push的文件夹怎么处理?

第一种方式,把不小心push上去的人解决掉。 第二种方式,以我自身为例,同事不小心push了.idea文件夹 首先打开git bash git rm --cached .idea/ -r 然后查看一下状态 git status 接着提交修改 git commit -m "cancel track .idea file&q…

【Redis】高可用之三:集群(cluster)

本文是Redis系列第6篇,前5篇欢迎移步 【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确&#xf…

Linux基础(三)端口、进程及主机状态管理、环境变量、文件管理

目录 端口 nmap netstat 进程管理 查看进程 关闭进程 主机状态监控 系统资源top命令 磁盘信息监控 网络状态监控 环境变量 $符号 自己设置环境变量 自定义环境变量PATH Linux的文件和下载 压缩和解压 tar命令 zip和unzip命令 端口 每个电脑有一个ip地址&#xff…

Vue项目实现在线预览pdf,并且可以批量打印pdf

最近遇到一个需求,就是要在页面上呈现pdf内容,并且还能用打印机批量打印pdf,最终效果如下: 当用户在列表页面,勾选中两条数据后,点击“打印表单”按钮之后,会跳到如下的预览页面: 预览页面顶部有个吸顶的效果,然后下方就展示出了2个pdf文件对应的内容,我们接着点击“…

echarts 地图点击常见问题

echats 散点图不支持缩放 echarts 地图点击激活label如何去除 高德loca 1.4版本热力图报错 绘制的颜色区间是 0 --1 高德地图销毁不生效 自己傻逼,每次没有清空数组导致叠加数据,约点数据越多。 为何用高德地图district.search查询不到别的省数据&…

[微信小程序] movable-view 可移动视图容器 - 范围问题

movable-view 可移动视图容器 可移动视图容器&#xff0c;在页面中可以拖拽滑动。movable-view必须在 movable-area 组件中&#xff0c;并且必须是直接子节点 <view><movable-area style"width: 750rpx;height: 200rpx;background-color: gainsboro;">&l…

Java的数据结构-Map集合

文章目录 Map概述Map常用方法Map遍历元素的方法1.方法一&#xff1a;keySet()2.方法二&#xff1a;entrySet() HashMap Map概述 1、Map和collection没有继承关系2、Map集合以key和value的方式存储数据&#xff1a;键值对key和value都是引用数据类型。key和value都是存储对象的…

(栈队列堆) 剑指 Offer 31. 栈的压入、弹出序列 ——【Leetcode每日一题】

❓ 剑指 Offer 31. 栈的压入、弹出序列 难度&#xff1a;中等 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序…

Appium Android ——利用 TestNG 并行执行用例

目录 前言&#xff1a; 一、测试类 二、连接两个 Android 设备或启动两个虚拟机 三、项目路径下新建两个 testng.xml 四、开启两个 appium server 五、导出依赖 六、执行测试 七、查看报告 前言&#xff1a; Appium是一个流行的移动应用自动化测试工具&#xff0c;…

使用semanage管理SELinux安全策略

semanage命令用于管理SELinux的策略&#xff0c;格式为“semanage [选项] [文件]”。 SELinux服务极大地提升了Linux系统的安全性&#xff0c;将用户权限牢牢地锁在笼子里。semanage命令可以设置文件、目录的策略&#xff0c;还可以管理网络端口、消息接口。 常用参数&#xf…