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

相关文章

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

MySQL索引踩坑合集从入门到精通

《MySQL索引踩坑合集从入门到精通》本文详细介绍了MySQL索引的使用,包括索引的类型、创建、使用、优化技巧及最佳实践,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录mysql索引完整教程:从入门到入土(附实战踩坑指南)一、索引是什么?为什么需要它?1.1 什么

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c