等效燃油消耗ECMS与庞德里亚金最小值原理PMP中协同状态的关系
今儿阅读了一篇文献——《车联网环境下并联混合动力客车控制策略优化研究》,是北理的博士所写的,内容比较翔实。主要是里面的关于ECMS和庞德里亚金最小值原理(PMP)的关系推导很让人印象深刻,故打算把这个过程捋一下。需要说明的是本文同时也参考了文献【2】的第五章主讲PMP的证明过程。
文献【1】首先是将汉密尔顿函数用于能量管理策略,表示的结果就如下式4.49所示,λ(t)是协同状态,而根据PMP(庞德里亚金最小值)原理,协同状态的动态方程可以由公式4.50表示


在文献【2】的第55页,是这样去描述这个过程,公式

和上面文献【1】的公式是表达一样的意思,而公式5.17中的w(SOC)则是类似于惩罚函数一样的东西,主要是判断取值是否超出边界,在文献【2】中w(SOC)的公式如下
。 而公式5.16和5.17之所以要在状态量上加一个*号,就是表达这是最优的取值。
根据电池SOC在文献【1】中的计算公式
,然后作者认为普通混动汽车电池SOC在较小的范围内变动,所以电池开路电压Voc和内阻Rin是常数,与电池SOC无关,所以就推导出公式4.52如下
,然后
,所以协同状态λ就是一个常数。
在文献【2】中是如何推导这个过程的呢?作者把公式5.16和5.17进行变化,利用公式3.4
,公式3.4中的
其实就是dSOC/dt,也就是和文献【1】中的4.51一样。最后得到的结果就如公式5.21所示,
。其中的推导过程其实如下
,紧接着文献【2】里面说开路电压和内阻相对于SOC的变化可以忽略不计,于是
和
都是0,那么公式5.21也变成0了,所以协同状态λ就是一个常数。总的来看,推导过程几乎一致,唯一的区别是文献【2】更准确的说明了Voc和内阻R是相对于SOC的倒数为0,而不是一直是个常数不变。
基于以上的推导过程,文献【1】最终得到的汉密尔顿函数的另一种形式,
,然后再和ECMS的表达式
进行比较,就可以发现等效因子和协同状态λ之间的关系:
要记住上面的推导结论,协同状态λ就是一个常数,但是等效因子s不一定是一个常数,因为开路电压和内阻其实是随时间变化的,电池如果老化了,容量值也会发生变化。
这里必须得说明一下,上面文献【1】中的公式4.59,可以把它稍微变形,因为I=Pm/Voc,而电池SOC的变化 dSOC/dt = I/Qnom,又因为汉密尔顿函数和ECMS等效起来,所以其实可以把ECMS的形式写成
,这样的话可以把电机的功率值替换成电池SOC,实现起来更为直观。
参考文献:
【1】《车联网环境下并联混合动力客车控制策略优化研究》
【2】Hybrid Electric Vehicles Energy Management Strategies,Chapter 5
等效燃油消耗ECMS与庞德里亚金最小值原理PMP中协同状态的关系的更多相关文章
- 机器学习:逻辑回归(scikit-learn 中的逻辑回归)
一.基础理解 使用逻辑回归算法训练模型时,为模型引入多项式项,使模型生成不规则的决策边界,对非线性的数据进行分类: 问题:引入多项式项后,模型变的复杂,可能产生过拟合现象: 方案:对模型正则化处理,损 ...
- 手写线程池,对照学习ThreadPoolExecutor线程池实现原理!
作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...
- 手写一个线程池,带你学习ThreadPoolExecutor线程池实现原理
摘要:从手写线程池开始,逐步的分析这些代码在Java的线程池中是如何实现的. 本文分享自华为云社区<手写线程池,对照学习ThreadPoolExecutor线程池实现原理!>,作者:小傅哥 ...
- WCF初探-17:WCF数据协定之等效性
数据协定等效性特点概述 对于客户端要将某种类型的数据成功发送到服务,或者服务要将数据成功发送到客户端的情况,接收端上并不一定必须存在此发送数据类型. 唯一的要求是两种类型的数据协定应该等效. 要使数据 ...
- 查看JAVA进程中哪个线程CPU消耗最高
一,在centos linux 上查看进程占用cpu过高 top shift+h 查看哪个进程程消耗最高 二,查看JAVA进程中哪个线程消耗最高 2.1 导出java运行的线程信息 ...
- redis内存消耗详解
Redis所有的数据都存在内存中,相对于廉价的硬盘,内存资源还是比较昂贵的,因此如何高效利用redis内存变得非常重要. 内存消耗分析 管理内存的原理和方法 内存优化技巧 一.内存消耗 理解redis ...
- 关于质能等效的两个思想实验 Two Ideological Experiments on Mass-Energy Equivalence
大家知道,物质和能量是等效的,虽然质能方程已暗示了这种等效关系,但并非显而易见.此等效性可以从以下两个思想实验中获知. 实验一:一台电子称上放置一个金属物体,加热它,称的读数将会略微增加.这是因为金属 ...
- golang 如何查看程序执行消耗时间
写代码过程中,有时需要分析代码块的时间消耗. 本文介绍使用time包中的Since函数查看程序执行时间. package main import ( "fmt" "tim ...
- Linux环境下的CPU消耗分析
在Linux系统中, CPU 主要用于中断,内核以及用户进程的任务处理,优先级为 中断 > 内核 > 用户进程.在CPU消耗分析中,我们还经常遇到下面几个概念. 上下文切换 ...
随机推荐
- 53)vptr指针的分布初始化
1)一个父类: 2)一个子类: 3)我的main函数内容 4)通过结果证明 那么产生了问题,这个print是一个虚函数,不应该 在 我的main函数中 通过调用pp->print,在pr ...
- Educational Codeforces Round 80 (Rated for Div. 2)D E
D枚举子集 题:https://codeforces.com/contest/1288/problem/D题意:给定n个序列,每个序列m个数,求第i个和第j个序列组成b序列,b序列=max(a[i][ ...
- tensorflow(二)
使用图来表示计算任务 在被称之为session的上下文中执行图 使用tensor表示数据 通过变量来维护状态 使用feed和fetch可以为任意的操作复制或者从其中获取数据 tensorflow是一个 ...
- vue路由的跳转-路由传参-cookies插件-axios插件-跨域问题-element-ui插件
---恢复内容开始--- 项目初始化 创建一个纯净的vue环境项目,手动书写全局的样式配置,全局的main,js配置 (1)如果vue项目在重构或者出错的时候,手动安装node_modules. 如果 ...
- 使用okhttp连接网络,再把数据储存进Sqlite
这次会把所有之前学过的东西应用在一起,写一个登入的功能. 1. Activity调用CONFIG,获得URL后 2. Activity再调用Okhttp,从服务器返回JSON 3. Activity调 ...
- μC/OS-II中使用软件定时器
在试着将μC/OS-II移植到ARM7芯片(LPC2138)上的过程中,发现使用OSTmrCreate创建的OSTmr始终都不能执行CallbackFunction,OS版本是v2.85,最后是这么解 ...
- RDD(七)——依赖
概述 RDD只支持粗粒度转换,即在大量记录上执行的单个操作.将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区.RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD ...
- 【转】Vim命令合集
Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...
- JAVA单例模式的几种写法
/** * 单例模式懒汉式(双重检锁线程安全.JDK1.5之后) */ public class Singleton { private static volatile Singleton singl ...
- Range Sum Query - Immutable(easy)
1.这道题目与pat中的1046. Shortest Distance (20)相类似: 2.使用一个数组dp[i],记录0到第i个数的和 3.求i到j之间的和时,输出dp[j]-dp[i]+num[ ...