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

相关文章

从入门到精通详解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

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习