等效燃油消耗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消耗分析中,我们还经常遇到下面几个概念. 上下文切换 ...
随机推荐
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:多线程队列操作
import tensorflow as tf #1. 定义队列及其操作. queue = tf.FIFOQueue(100,"float") enqueue_op = queue ...
- jQuery篇
jQuery 1.为什么使用jQuery? js中window onload事件只能出现一次,如果出现多次,后面的事件会覆盖掉前面的事件 js代码容错差 简单的动画效果实现很繁琐,例如简单的动画渐变效 ...
- Java实现生产与消费(完美注释版)
/** * 2019年8月8日17:42:23 * 目的:Java多线程实现生产与消费 * @author 张涛 * * 多态: * 一个父类的引用既可以指向父类对象 * 也可以指向子类对象 * 它会 ...
- 关于前端Dom的总结
简介 DOM (Document Object Model) 文档对象模型 DOM思想使用节点树(node tree)的概念来描述一个HTML页面,页面中的每一个元素.属性.文本都被认为是节点.此外, ...
- 新年在家学java之基础篇--类&方法
面向对象 面向对象OOP,面向过程POP 面向对象三大特征 封装 继承 多态 类 类由属性(对应类中的成员变量)和行为(成员方法)来构成 类的成员变量可以先声明,不用初始化,有默认值 方法名称如果多个 ...
- 4412开发板QtE系统下MT6620-wifi的测试
基于iTOP4412系统烧写并启动之后,使用如下命令.wpa_passphrase XXX "YYY " >> /etc/wpa_supplicant.conf其中 X ...
- 【DSP】TMS320F28335的GPIO
--> 关于TMS320F28335的GPIO的基础操作 TI的c2000系列DSP大多数的外设信号与通用输入/输出 (GPIO) 信号复用. 这使得用户能够在外设信号或者功能不使用时将一个引脚 ...
- vs编译完提示不支持尝试的执行操作
最近公司在用MFC做项目,编译完就弹窗提示,不支持尝试的执行操作,开始没注意,但是点击弹窗提示无反应: 问题原因:dialog里的控件有的已经删除了,但是DoDataExchange函数还存在控件的关 ...
- TZOJ-STL系列题
C++实验:STL之vector #include <bits/stdc++.h> using namespace std; void Input(vector<int>&am ...
- 数据结构与算法 python课后题(未完成)
挖一个坑,先立个flag,后面慢慢填坑. 先放个其它人写的链接