AVL-Cruise从入门到秃头-如何建立一个增程式电动汽车模型

2023-10-12 09:50

本文主要是介绍AVL-Cruise从入门到秃头-如何建立一个增程式电动汽车模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学海无涯,回头是岸

目录

0.前言

1.增程器控制策略

恒温器控制策略

多点控制策略

功率跟随控制

2.基于Function模块的恒温器控制策略实现

增程器控制

Function模块代码

发动机负载控制

信号连接

3.仿真结果

4.结语


0.前言

本文转载自公众号:王浮生不怕生。原文链接:

AVL-Cruise仿真教程-如何建立一个增程式电动汽车模型

什么是增程式电动汽车,GB/T 19596-2017是这样描述的:一种在纯电动模式下可以达到其所有的动力性能,而当车载可充电储能系统无法满足续航里程要求时,打开车载辅助供电装置为动力系统提供电能,以延长续航里程的电动汽车,且该车载辅助供电装置与驱动系统没有传动轴(带)等传动连接。

简言之,增程增程式电动汽车就是搭载辅助供电装置的电动汽车,其具有与纯电动汽车完全相同的驱动系统架构。那么,我们可以简单认为:增程式电动汽车与纯电动汽车控制的核心区别在于增程器控制,即发电机和发动机的控制。

1.增程器控制策略

增程式电动汽车的运行模式可以分为两种:纯电模式、增程模式。在纯电动模式靠电池的能量驱动车辆行驶,增程模式下由增程器为驱动电机提供驱动电能,同时多余的电量为电池充电。因此增程模式下能量管理控制策略增程模式下的控制策略主要有以下几种:恒温器(也称为恒功率、单点)控制、多点控制、功率跟随模式控制策略等,工程上常将多个策略结合起来使用,高校相关课题可能会用到模糊控制等优化控制策略和智能控制策略。

恒温器控制策略

恒温器控制策略又称为单点控制策略或恒功率控制策略,通常通过SOC控制其开启与关闭。SOC低于启动设定阈值时增程器启动,发动机在预设的工作点按恒定功率输出;SOC达到停机设定阈值时增程器关闭。增程器的工作点通常设置在发动机高效区域,并根据NVH等性能进行设定。

多点控制策略

控制方式与恒温器控制策略类似,区别在于多点控制策略预先选定多个高效工作区域的发动机功率值,可以根据不同的SOC及驾驶员驾驶意图来确定相应的工作点。

功率跟随控制

发动机的功率跟随控制策略根据对象又可以分为跟随负载或跟随SOC。发动机的运行沿着固定曲线变化,可以连续的改变发动机的功率值,一般选择最佳燃油经济性时候的发动机功率曲线为目标跟随曲线。

本文旨在探讨通过Function模块完成增程器控制策略的建模思路,为简化建模,采用相对较为简单的恒温器控制。

2.基于Function模块的恒温器控制策略实现

前面我们说到增程式电动汽车与纯电动汽车控制的核心区别在于增程器控制,驱动控制可认为与纯电动汽车控制方式一致,这里我们以《AVL-Cruise纯电动汽车仿真建模教程-能量回收策略的实现》中的模型为基础,建立增程式电动汽车仿真模型。

在原EV模型中增加Engine、PID Control、Function及Electic Machine模块,其中Engine和Electic Machine模块组成增程器,PID Control用于控制发动机负载,Function用于建立增程器控制策略。模块具体参数设置不做赘述,这里主要讲解通过Function模块建立增程器控制策略的思路。

增程器控制

根据以上前文描述,恒温器控制策略中主要包括三个控制参数:蓄电池SOC下限(增程器开启阈值)、蓄电池SOC上限(增程器停机阈值)、增程器开启后的恒定输出功率

控制策略主要执行以下任务:通过监测电池荷电状态控制增程器启动与停机,当SOC低于开启阈值时(本模型策略里设定为30%)增程器启动发电,为驱动电机提供能量,多余的电能充入电池储存;当SOC达到停机阈值时(本模型策略里设定为80%)增程器停机。其控制流程如下:

模型中通过Function模块控制发电机扭矩,通过PID Control模块控制发动机转速。根据上述控制思路,可确定Function模块输入输出变量,

输入变量:SOC

输出变量:发动机启动指令,发电机扭矩

Function模块代码

/*double realTime;*//*INTERNAL*/double APUStart;/*INPUT*/double SOC=a[0];/*OUTPUT*/double EngSwitch;double GenTrq;/*C-CODE*//*初始化*/if(realTime<=0.0){APUStart=0 ;}/*增程器启停控制*/if(SOC<30){APUStart=1;}if(SOC>80){APUStart=0;}/*增程器工作点控制*/if(APUStart==1){EngSwitch=1;GenTrq=-80;}if(APUStart==0){EngSwitch=0;GenTrq=0;}y[0]=EngSwitch;y[1]=GenTrq;

发动机负载控制

PID Control是根据给定值和实际输出值构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。这里的定值和实际输出值分别为发动机目标转速和发动机实际转速,被控对象为发动机负载。

本模型中的PID Control设置如下,从参数设置中可以看出,本模型中仅采用了比例控制。

信号连接

参数设置完成后将发动机负载信号、启停信号分别连接至PID Control模块, Function相应端口,发电机Desired Torque信号连接至Function相应端口,如下图所示。

3.仿真结果

建立完成后的车辆模型如下:

如下图所示为发动机工作状态,

【时刻1】:开始时刻电池SOC高于30%,车辆为纯电动模式;

【时刻2】:当电池SOC低于30%时发动机启动为驱动电机提供能量,富裕的能量为电池充电,车辆进入增程模式。

【时刻3】:当SOC高于80%时,增程器关闭,车辆重新进入纯电动模式。

4.结语

本文以增程式电动汽车的恒温器控制策略为例,介绍了通过Function模块建立增程器控制策略的方法,并在前文建立的纯电动汽车模型的基础上建立了增程式电动汽车模型。

需要注意的是,本文旨在探讨通过AVL Cruise软件进行增程式电动汽车的仿真建模思路,在建立模型的过程中忽略了若条件,如发动机启停过程控制、电池功率限制等,对于工程项目而言本文所述模型并不具备所需精度,请慎用。

同时,由于Function模块的限制,对于模式转移、发动机启停过程控制实现较为复杂,特别是面对多点或复合策略时。而simulink的Stateflow正是处理状态转移控制的优秀选手,我们在后续以多点和功率跟随控制策略为例,探讨基于联合仿真方式的增程式电动汽车建模方法,请持续关注。

本文由“王浮生不怕生”原创,拒绝任何形式的抄袭及转载!

关注同名公众号:王浮生不怕生,获取模型。

看完了吧,关注拿来吧你!

这篇关于AVL-Cruise从入门到秃头-如何建立一个增程式电动汽车模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195018

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性