上期的强强对话中来自同济大学 DIAN Racing 车队的周晓同学给我们分享了如何绕过车辆电气系统开发中的一些坑。如果您对如何利用 Simulink 进行车辆建模,仿真和开发还意犹未尽的话,千万不要错过这期的分享。这一期,我们邀请了大学生方程式 2020 赛季中脱颖而出,获得 MATLAB/Simulink 车辆动力学仿真一等奖和控制策略开发及软件实现二等奖的华南农业大学电车队技术负责人黄华腾同学,来给我们分享他们车队在开发车辆动力学模型的过程中所积累的一些经验。
黄华腾同学来自华南农业大学 2017 级车辆工程专业,自 2019 赛季起参与到车队动力总成组的MATLAB/ Simulink 方向的设计任务;在 2020 赛季中担任车队技术负责人,管理整车设计开发进度,同时主导基于Simulink的车辆模型/控制策略方向的设计。
大家好,我是来自华南农业大学电车队的黄华腾。我们在为 FSAE 赛事开发车辆动力学模型的过程中,曾遇到过以下几个比较常见的问题:
1.未能充分开发车辆动力学模型的价值,搭建完模型之后不清楚如何应用2.自行定制车辆动力学模型时效率较低3.对于模型整体的架构设计和各子系统间如何连接等问题无从下手经过几个赛季的摸索,我们在解决这些问题的过程中积累了一些经验。
1. 车辆动力学模型在FSAE整车开发中的应用
就我们车队的经验来说,车辆动力学模型在 FSAE 赛事中最重要的价值是提供了一个以很低的成本来快速地进行迭代优化的工具。具体而言,其可以应用在整车开发中的两个场景:控制策略的迭代优化以及赛车关键设计参数的设计。1.1 加速控制策略的迭代优化通常我们都需要通过一些实车测试的反馈数据来优化控制策略的效果。
但是很多时候,到了实车下地的时间点,紧张的时间、人力、场地资源往往很难充分满足我们的这一需求。另外,为 FSAE 定制的各种控制策略,都或多或少存在一些需要根据本车队赛车设计参数、设计目标,来进行优化的参数。特别是算法中一些参数需要提前设定好处于合理范围内的初始值,并对算法做一些验证工作,避免在实车上测试时发生意外。
而使用车辆动力学模型这样一辆存在于电脑中的赛车,就可以通过仿真快速完成初期的迭代优化和参数设定,大大减少在实车下地测试时所需要占用的资源。我们的具体做法是,将控制策略模型放在控制器子系统中,如下图,和车辆模型一起参与仿真,然后对仿真结果进行分析,以此对控制策略进行迭代优化。
1.2 辅助确定车辆动力学模型为关键设计在赛季初,在根据经验和理论计算确定了一些待定设计参数,如减速器的传动比、轮距、空气动力学参数等的取值范围后,可以使用车辆动力学模型进行多种工况的仿真来从整车的层面考察这些设计参数在相互作用时,对动力性、操纵稳定性等性能的影响,以及进行圈速仿真,为确定一些设计参数的取值提供重要参考。
一种比较常见的做法是直接使用一些车辆动力学仿真软件去做仿真,而这里我们提供另外一种思路,即基于 Simulink 定制车辆模型。这样做好处主要是可以进行做出一个高度定制化的车辆模型,而且作为学生在建模的过程可以学以致用,应用学到的理论知识。
这种做法在建模和仿真方面给予我们很大的施展空间。例如我们在模型当中加入了电机模型和电池模型,其中电池模型是基于放电实验数据,通过参数辨识的方法得到的。下图中展示了我们所使用的的等效电路电池模型。那么这样一来我们的车辆模型就具有了对经济性进行仿真的能力,同时也能够对能量回收策略进行进一步的仿真和验证。
2. 善用 Simulink 相关的工具箱自行定制车辆动力学模型时最重要的问题就是效率问题。如果自己根据理论知识利用基础模块,或者说写自定义模块,来从无到有搭建起整个模型,需要非常大的工作量。况且以我们车队的经验来讲,这种做法往往还会花费大量时间在模型的 Debug 上。这样的话,定制化所带来的优势就被效率问题所掩盖了。
所以,我们都优先使用相关工具箱中已有的模块,这些模块更加可靠。我们只需要在使用前通过帮助文档对模块原理以及输入输出等进行了解,判断是否符合我们需求就行了。对于我们这个赛事而言,比较重要的两个工具箱就是 Vehicle Dynamics Blockset 和 Powertrain Blockset。
这两个工具箱中提供的模块基本足以支持我们完成一个车辆动力学模型的核心部分,包括发动机/电动机、行驶系、传动系、转向系和制动系等。上面介绍的等效电路电池模型,就是 Powertrain Blockset 中的模块。学会利用相关的工具箱,可以大大加速我们定制车辆模型的速度。
3. 在 Simulink 案例模型的基础上进行定制化在搭建模型的过程中,我们应该只选取整车中的一些重要对象来建模,同时也要考虑各个系统之间的连接方式和层次设计。这容易使刚刚上手的同学觉得无从下手。Simulink 自带的很多案例模型,以及线上竞赛提供的车辆模型就是学习的最佳材料。
我们也推介借鉴这些模型来开发和定制的车辆动力学模型。这里我们以案例模型其中的一个来作为例子。打开名为 Constant Radius Reference Application 的案例,可以看到这个模型的架构非常清晰。
我们就是在这些案例模型的基础上进行定制的。例如删去变速箱、差速器等相关的部分,增加上述的等效电路电池模型等。另外保留其整体架构,参考案例模型中大部分子系统之间的相对位置和连接方式。在原有的架构下去进行各种修改。
这个案例模型中簧上质量、簧下质量以及悬架模型之间是如何相互连接的,这种连接方式也被我们的作品所采用。通过参考案例模型的方式可以在保证效率和可靠性的前提下快速地完成一个定制化的车辆动力学模型。当然,这种方式是必须要建立在理解和吸收原案例模型的基础上的。
4. 其他经验下面关于车辆动力学模型,我们还有以下几点经验想分享一下。使用实车数据来对整车模型进行验证和校正我们基于车辆动力学模型做的应用的实际效果,是受模型对实车的拟真程度的影响的。那么将赛车的数采系统记录到的数据,与车辆模型在相同工况下的输出进行比较,可以让我们对模型与实车表现的相似度进行考察,并且通过分析确定需要改进的地方。
我们将 8 字绕环项目中采集到的车手操作输入整车模型,然后将实车数据跟整车模型的仿真结果进行对比,发现二者非常接近。虽然只进行了定性的分析,但这也大大增强了我们基于整车模型所做的工作的信心。
使用虚幻引擎定制仿真场景我们自己定制的 Simulink 车辆动力学模型也是可以实现3D可视化的。我们去年就根据 Help 文档中的描述,使用虚幻 4 引擎实现了这一功能。将车辆动力学模型进行 3D 可视化,其实是将大量的仿真结果,包括车速、姿态角、车辆轨迹等,进行了高度的集成并进行了具象化,使得我们验证车辆动力学模型的时候多了一种高效的手段。下图是虚幻引擎编辑器的操作界面。
下图是我们使用虚幻引擎编辑器搭建的场景,图中的圆形赛道桩桶是按照 8 字绕环的规则摆放的(只摆了左圆)。在仿真过程中我们可以切换不同视角来观察赛车的姿态、方向盘/前轮转角和轨迹。
定制自己车队的 GUI当我们在对车辆设计参数或者控制策略进行迭代优化时会使用不同参数、在不同工况间切换进行大量的仿真,这其中的一些操作可能会重复上几十遍。这时,基于APP Designer开发的GUI就可以简化操作,提高效率,对已有的代码进行集成,增强人机交互性,降低负责其他方向的同学使用这个车辆动力学模型的门槛。下图是我们的一个GUI,我们可以直接在红框中填入数值来设置减速器的的传动比。
此外可以通过旋转旋钮来在各种预设工况间进行切换,并通过右侧按钮直接设置各种控制策略的开/关,如下图。
事实上使用 APP Designer 开发这样的 GUI 是一件学习成本远低于收益的事。主要是这一工具不仅提供了图形化的操作界面,还为代码编写提供了不少的辅助功能。所以通过这一工具自带的参考示例自行摸索就能快速上手制作出实用的 GUI。致谢感谢在过去两个赛季里所有跟我一起工作过的车队成员以及指导老师们。特别是我们车队MATLAB/Simulink 团队里几位低调的成员,尽管时间和人力资源非常有限,但还是默契合作,出色完成了很多的工作。
另外也要特别感谢来自MathWorks的老师们,特别是董淑成老师(小编注:董淑成,MathWorks 公司高级工程师、技术专家,大学生方程式赛事资深裁判,MATLAB 中文论坛超级版主“老胡”,“基于模型的设计”微信公众号创始人)和楚骏楠学姐(小编注:楚骏楠,MathWorks中国高级应用工程师),他们在去年襄阳赛场的答辩现场,以及三电分享的现场给予我们的指导和关切让我印象深刻。
编辑:jq
-
matlab
+关注
关注
181文章
2960浏览量
229988 -
仿真
+关注
关注
50文章
4015浏览量
133317 -
动力学
+关注
关注
0文章
104浏览量
16947
原文标题:强强对话 | 如何高效地定制和完善车辆动力学模型
文章出处:【微信号:Mentor明导,微信公众号:西门子EDA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论