中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 564查看
  • 0回复

[Simulink] 真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝

[复制链接]


该用户从未签到

发表于 2-4-2024 07:48:50 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


截至目前,我们已经建立了车辆模型的所有子模块,现在已经可以让模型正常运行起来了。

模型简单运行调试

将模型各模块按以下顺序放置,并根据信号端口名称将各模块输入、输出信号进行连接。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w3.jpg

有一点需要注意一下:

【1】正常情况下,模块封装建立子系统后,数据接口是左近右出的。在较新的版本(我也忘记是哪个版本了),把鼠标放到子系统端口上,当其变为圆圈后,按住鼠标左键就可以移动端口位置。这里为了模型界面的整洁,我调整了下各模块的端口位置。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w4.jpg

回到matlab界面,运行一下data脚本,将变量写入工作空间。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w5.jpg

在工况模型中选择CLTC工况,将仿真停止时间设置为1800,点击运行。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w6.jpg

拉取一下目标车速及实际车速,由下图可以看出,跟随非常哇塞

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w7.jpg

当然这是因为在建立驾驶员模式时,模型里的Kp及Ki是我调好的。

所以这里简单说一下驾驶员Kp及Ki的调节方法。因为NEDC工况相对比较平滑,相对CLTC工况好观测,这里以NEDC工况为例。

【1】首先要保证模型能跑通,电机能根据需求输出并传递扭矩,制动扭矩输出及传递正常。

【2】将目标车速及实际车速信号、加速踏板及制动踏板开度信号分别合并输入到一张Scope中。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w8.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w9.jpg

【3】调参的时候要先调Kp再调Ki,不能两个同时乱调一气,那就只能靠运气了。

首先将Ki设为0,调节Kp。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w10.jpg

假设我用上图参数跑一下NEDC工况,发现实际车速无法跟随目标车速,且加速踏板开度信号未按全开度输出,那么就要适当增大Kp的值。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w11.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w12.jpg

如果如下图,车速跟随趋势相对正常,但是车速及踏板信号出现剧烈抖动,那基本就可以判断是比例系数过大造成的,那么比例系数就要往小里调。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w13.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w14.jpg

我们回到Kp=0.01的状态,逐渐增大Kp,直至实际曲线基本能跟随目标曲线。如下图,为Kp改为0.5后的仿真曲线。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w15.jpg

我们发现跟随性有了很大的改观,但是目标曲线与实际曲线仍有那么点误差。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w16.jpg

这时候有两种改进方法,一是继续增大Kp,二是加入Ki。如下图分别为将Kp增大至2,以及加入Ki后的曲线。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w17.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w18.jpg

两者均有较好的跟随性,对于简单模型及单一工况而言选哪个都可以,但是从工况适应性及稳定性而言建议加入积分环节。

铁子们调的时候不用纠结参数,只要能合理跟随上曲线的参数就是好参数。

好了,就水这么多吧,有对PID感兴趣的自己去扒拉控制理论吧。


仿真任务该怎么跑?

以常用的加速、最高车速、爬坡及续航任务为例,介绍仿真任务设置及仿真结果提取的注意事项。



加速任务

选择加速仿真工况,仿真时间设为100s,运行模型。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w20.jpg

运行完成后,结果在哪里看呢?

嘿,懵了吧。

我们可以将车速引入一个scope模块,在scope模块中查看加速曲线。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w21.jpg

但是如果想看精确的时间该怎么做呢?

我们向模型中添加一个条件触发子系统,并将触发器类型设为上升沿触发。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w22.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w23.jpg

将触发条件设置为车速V>=100,输入端口连接一个clock模块。这样就可以实现当车速大于100时,输出当前的时长。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w24.jpg

最后将其输入连接至车速,输出连接至display就可以在仿真结束后读取0-100km/h的加速时间了。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w25.jpg



最高车速

最高车速任务也是选择加速工况,我们直接在车速信号上接入一个display就可以看到仿真停止时的车速。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w26.jpg

这样做可不可以?点头的那两个,再思考一下。

这里有两点需要注意:

【1】假设模型里没有做功率管理,例如我们这个模型,电机在加速过程中始终可以保持全功率输出,这样display显示的车速确实是整个加速仿真过程中的最高车速,如果有功率限制,这样就不合适了。

【2】我们建立的电机外特性曲线末端的转速是15000转,我们通过车速计算公式计算下理论最高车速:

Vmax=0.377*15000*0.327/9.7=190.6

诶?出分歧了,为啥?

因为我们模型里没有加入限速,当前计算出来的是功率平衡状态下的最高车速。而实际上最高车速受电机最高转速及系统驱动功率的共同限制。

所以我们需要给模型上个补丁。

在data脚本中添加电机最高转速变量,定义其值为15500转。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w27.jpg

在车速计算模块中添加一个限制模块,注意模块位置,如果添加在箭头所示的display模块前面,虽然显示值变了,但是在模型中未起到限速目的。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w28.jpg

限值模块进行如下设置:

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w29.jpg

这样再运行模型,就会发现车速受限了,最高车速限制在了197km/h。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w30.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w31.jpg



爬坡

你是不是想输出这样的爬坡曲线?不可能,除非你会写脚本。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w32.jpg

有想写脚本的,参考这篇文章《如何绘制爬坡曲线》。

那基于建立的模型我们要怎么算呢?

验证。

将脚本中的道路坡度设置为目标值,模型设置为加速仿真任务。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w33.jpg

运行模型,车辆由车速输出即可认为具备该坡度下的爬坡能力。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w34.jpg



续航仿真

对于电动汽车仿真,一个最最最重要的任务就是要计算续航。

计算续航仿真,我们需要让SOC触发仿真停止。

设置好仿真工况后,将仿真停止时间设为inf,运行仿真。等待仿真运行结束后,在车辆模块中读取续航里程即可。

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w35.jpg

真·simulink车辆仿真基础教程-模型调试:跑起来吧,小宝贝w36.jpg

至此,我们真·simulink车辆仿真基础教程就全部介绍完了,希望对你们仿真入门有所帮助。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 22-12-2024 22:01 , Processed in 0.296978 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.