基于动态规划的混合动力汽车能量管理

1、混合动力汽车

  混合动力汽车因发动机尺寸减小、制动能量回收及合理分配能量流等原因使其燃油经济性和排放性优于普通内燃机汽车,而如何在满足整车动力性能指标的前提下合理地分配各系统部件间的能量以获得最佳性能就要依靠合适的能量管理策略实现。本期主要介绍一种基于动态规划的混合动力汽车能量管理方法。

2、动态规划中常见的概念

2.1、原问题和子问题

  原问题就是求解问题的本身,子问题就是和原问题相似但规模较小的问题。例如混合动力汽车的能量管理问题:在满足行驶需求的情况下,获得最低燃油消耗,同时维持SOC在一定范围波动就是原问题。任意时刻的燃油消耗与SOC波动便是子问题。

2.2、状态

  状态就是子问题中会变化的某个量,可以把状态看成要求解问题的自变量。例如针对混合动力汽车能量管理,我们可以将电池SOC,发动机功率,电机功率等看作状态变量。

2.3、状态转移方程

  能够表示状态之间转移关系的方程,通常利用函数关系建立起来。例如混合动力汽车中,车辆在某行驶工况下行驶的最小燃油消耗值,我们可以假定为状态转移方程。

3、优化控制策略

  下面通过Matlab代码编写,基于动态规划的混合动力汽车能量管理。

3.1、初始化

clc;
clear;
load('动态工况.mat')
t = 1;
N = length(t);
P_eng_max = 30;           % 发动机功率最大值
P_motor_max = 15;         % 电机功率最大值
Q_batt = 18000;           % 电池容量
U_oc = 320;               % 开路电压
SOC_min = 0.2;
SOC_max = 0.9;
SOC_grid = linspace(SOC_min,SOC_max,80)';
ns = length(SOC_grid);

3.2、动态规划算法

%% 动态规划算法
V = zeros(ns,N);            % 价值函数
V(:,N) = 0;                 % 边界条件
for i = N-1:-1:1            % 遍历时间向量for j = 1:ns            % 遍历SOC网格lb = max([(((SOC_max-SOC_grid(j))*Q_batt*U_oc)/-ts),-P_motor_max, P_dem(i)-P_eng_max]);         ub = min([(((SOC_min-SOC_grid(j))*Q_batt*U_oc)/-ts),P_motor_max, P_dem(i)]);                P_batt_grid = linspace(lb,ub,250);                                                       P_eng = P_dem(i) - P_batt_grid;                                                          c2g = (ts*fl_wt_en* P_eng)./(eng_eff(P_eng));                                            SOC_next = SOC_grid(j) - (ts .* P_batt_grid ./ (Q_batt*U_oc));V_nxt = interp1(SOC_grid,V(:,i+1),SOC_next);[V(j,i), k] = min([c2g + V_nxt]);u_opt(j,i) = P_batt_grid(k); end
end

3.3、Function函数建立

function [P_batt_act, P_eng_act, FC_act, SOC_act]=RUN_HEV(SOC_init,N,SOC_grid,u_opt,P_dem)SOC_act(1) = SOC_init;ts =1;U_oc = 320;fl_wt_en = 0.001;Q_batt = 18000;for i = 1:N-1P_batt_act(i) = interp1(SOC_grid,u_opt(:,i),SOC_act(i));P_eng_act(i) = P_dem(i) - P_batt_act(i);FC_act(i) = (ts*fl_wt_en*P_eng_act(i))/(eng_eff(P_eng_act(i))); SOC_act(i+1) = SOC_act(i) - ((ts*P_batt_act(i))/(Q_batt*U_oc));       end
end

4、动态规划算法的验证



  通过仿真结果可知,低速、低转矩时驱动电机提供全部转矩,需求转矩进一步增大时发动机开启进入驱动发电模式,高速高转矩情况下进入混合驱动模式,转矩输出曲线以及电池SOC的变化情况符合要求,因此该动态规划算法能够对特定工况下车辆的需求转矩进行最优分配。(备注:需要本期文章试验数据和模型的同学可以联系QQ:2057034985或者关注微信公众号:xinnengyuanqiche666学习更多相关知识)同时,动态规划算法也可以通过遗传算法、粒子群算法进行改进,后面的文章会进行更新。

电动汽车仿真系列-基于动态规划的混合动力汽车能量管理相关推荐

  1. 电动汽车仿真系列-基于Simulink的并联混合动力汽车建模分析

    基于Simulink的并联混合动力汽车建模分析   本期介绍一种基于Simulink的并联混合动力汽车的建模方法.并联混合动力汽车的工作模式可以分为六种.纯电动模式.纯发动机模式.混合驱动模式.充电模 ...

  2. 基于极小值原理的功率分流式混合动力汽车能量管理策略研究

    目录 0 引言 1 功率分流式混合动力汽车系统构型 1.1动力系统构型 1.2 发动机模型 1.3 电机模型 1.4 电池模型 1.5 整车动力学模型 2 基于极小值原理的能量优化策略 2.1 能量管 ...

  3. Python:混合动力汽车能量管理_动态规划简版(2/2)

    目录 1 博客内容 2 更新算例 2.1 车辆动力学模型 2.2 参数输入 2.2.1 车辆滑行阻力 2.2.2 变速箱速比及扭矩损失 2.2.3 发动机万有特性 2.2.4 电机特性 3 基础模型数 ...

  4. ## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***

    ## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)*** ## 1 研究背景 电池的荷电状态(SOC)代表的是电池当前的剩余容量,数值定义是电池剩余电量与电池额 ...

  5. 电动汽车仿真系列-串联式混合动力汽车恒温器/功率跟随控制策略

    串联式混合动力汽车控制策略(恒温器+功率跟随+复合控制) 1.串联式混合动力汽车控制策略   串联式混合动力汽车由发动机.发电机和驱动电机相串联构成车辆的驱动系统,其中发动机与发电机组成辅助动力单元, ...

  6. 电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)

    基于遗忘因子的最小二乘法电池参数辨识   最小二乘法是系统辨识中最常用的一种估算方法.为了克服最小二乘法存在"数据饱和"的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forge ...

  7. 电机仿真系列-基于最小二乘法的永磁同步电机参数辨识

    基于最小二乘法的永磁同步电机参数辨识   永磁同步电机具有体积小.转动惯量低.结构简单等优点,被广泛应用于控制系统中.然而在实际应用过程中,控制系统会受到高温.负载等外界因素的影响,永磁同步电机的电感 ...

  8. 电池SOC仿真系列-基于UKF算法的电池SOC估算研究

    基于UKF算法的电池SOC估算 1.UKF算法   无迹卡尔曼滤波是将数据变化(UT变换)与卡尔曼滤波结合起来的一种算法,通过UT变换将一个状态点转换为多个状态点,依据一定的权重传递给后面观测值,再根 ...

  9. 风力发电仿真系列-基于Simulink搭建的DFIG仿真模型

    基于Simulink搭建的DFIG仿真模型   双馈式感应发电机(DFIG)是在同步电机和异步电机的基础上发展起来的一种新型发电机.DFIG的主要优点是其足够宽的速度范围,能使组合式风力涡轮机以最佳的 ...

  10. 电机仿真系列-基于LabVIEW的电机测试系统研究

    基于LabVIEW的电机测试系统研究   本设计基于LabVIEW设计一个直流有刷电机PID调试及控制助手,实现PID参数调节及电机转速及位置的控制.系统下位机采用STM32F103作为直流有刷电机控 ...

最新文章

  1. ds图—最小生成树_Java: Kruskal算法生成最小生成树(邻接矩阵)
  2. java 线程安全_Java创建线程安全的方法
  3. 每日一个linux 命令-修改linux文件权限命令:chmod
  4. JAVA多线程之CountDownLatch
  5. 深入理解final关键字
  6. Sublime Text 3103 Crack 破解 注册码(亲测有效)
  7. 为什么 OAuth 里除了 Access Token 之外,还需要 Refresh Token?
  8. Java_学生信息管理系统——数组版——尝试将main函数单独放了一个类,并加了文件...
  9. Open-Unmix - A Reference Implementation for Music Source Separation
  10. springboot代码生成器,一款经典版的java代码生成器
  11. FL Studio使用外部音源播放导入的MIDI文件
  12. html怎么添加样式,HTML添加样式三种办法
  13. Linux 安装python 3.8(Linux 的版本为 Centos 7)
  14. uniport ID 转换为 gene symbol(ID转换)
  15. Vue 之 视频流 - Hls.js
  16. Windows 98光盘启动安装过程详细图解
  17. MySQL [1093] You can‘t specify target table ‘titles_test‘ for update in FROM clause
  18. python绘画酷炫图片代码_第二天用python绘画一些简单图片
  19. ROS2机器人实验报告提示01➡入梦⬅
  20. cr2.sh和phpupdate.out挖矿程序处理

热门文章

  1. 分布式系统架构的优缺点
  2. 荣耀安装google谷歌服务框架_荣耀20怎么下载安装谷歌服务框架,GMS框架安装教程...
  3. Python读写LMDB文件
  4. android在adb下刷机教程,adb sideload刷机教程
  5. linux 有道 离线词典,180720_有道词典离线增强版添加词库(小众知识)
  6. 基于Matlab/GUI界面设计的参数在线整定与优化(一)
  7. 坐拥百度/阿里/腾讯,这家车载导航上市公司的营收却一路下挫?
  8. 生命游戏(python版)
  9. 汇编语言跳转指令总结
  10. wms仓库管理系统具有四大功能