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

相关文章

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin