车 队 简 介
吉林大学吉速车队在全国方程式汽车大赛 2018 赛季获得全国总冠军,吉速电动方程式赛车队在该赛季获得 MATLAB 仿真奖一等奖。小编特邀车队来分享他们的 ABS 模型仿真经验。
在 2017 赛季当中,襄阳雨赛,车轮容易抱死,车辆转向困难,车手不能把握车轮方向,过度打方向盘,待前轮恢复转向能力时候因为过大的车轮转角,导致车辆冲出赛道。ABS 则能够防止车轮抱死,使车辆检具有转向能力。同时考虑到大学生方程式车手多为业余车手,水平有限,无法很好的控制制动踏板,为了提升整车性能,引入ABS系统。ABS 控制策略是一个相对复杂的控制策略,需要经过足够的测试。
而在2017赛季,我们曾自行搭建一个车辆动力学模型来测试算法,但这浪费很多的时间,而且在搭建模型的初期有很多考虑不全的地方,这也会导致后期花费大量的时间去修改仿真模型以达到可以使用的程度,导致验证2017赛季控制策略的时间缩短很多,同时因为模型本身也存在一定的问题,修改模型本身的问题之后,又导致算法仿真验证又要重新进行。针对这种情况,我们在验证 2018 赛季当中,直接采用 Vehicle Dynamic Blockset 与 Powertrain Blockset 进行仿真模型的搭建,这能加速我们模型的搭建过程,同时也能节约很多的时间,减少模型 bug 的存在。
在 Simulink 中我们找到参考模型 Double Lane Change Reference Application。由于采用的是工具箱自带的车辆进行仿真,简化了操作,因此我们只需做少量必要的修改即可,这也大大提高了开发效率。另外,通过采用这种 Simulink Project 也使得我们在 2018 赛季能够顺利实现协同开发。
最终的仿真模型如下面视频所示:
接下来,将对我们的模型搭建和仿真进行逐一介绍:
车道子系统
这部分模块主要生成车手的操作,可以有三种方式来生成:
第一种是通过修改 Lane Subsystem 可以生成特定的驾驶员操作,第二种是利用之前同济电车队介绍过(2018年9月11号的微信推文)的记录下车手的操作导入到Simulink环境中操作,第三种是 MATLAB R2018b 中利用 Speedgoat 与罗技G29联合让车手交互进行特定的操作,这也称之为 Driver-In-the-Loop。第一种方式在初期阶段利用典型工况能够很好地评估算法的准确程度,第二种与第三种方式相对而言车手的操纵可以更加丰富一些,能够测试更多的工况,比如在部分制动以及过弯制动情况下,测试是否ABS制动干预过早等问题,但相对而言第一种方式可以很快地评估算法,后两种稍微复杂一些。
一方面,该子系统可用于生成运动轨迹,借助于 Visualization 子系统进行显示。考虑暂不需要变道路况,我们将原参考模型中的变道轨迹修改为直线轨迹。根据这部分可以生成驾驶员的转向操作。
图1:运动轨迹生成
另一方面,它也生成目标车速,传递给 Predictive Driver 子系统,作为预判,生成车手的特定操纵行为。当车速达到设定车速后,启动目标车速为0的制动预判,这样车手采取的便是紧急制动,在后面的Controller模块中就会触发ABS控制操作。
图2:目标车速生成
环境
该子系统搭建了外部环境。ABS可以使车辆保持一定的操纵稳定性,尤其当轮与路面间的摩擦因子不完全相同时,为了仿真对开路面,在该模块下,增加了 Friction 切换。
图3:Friction配置
Friction1,表示四轮具有相同的摩擦系数。而Friction2,则表示右侧车轮的摩擦系数相同且小于左侧,可以满足对开路面的仿真要求。后来我们在仿真时改为利用回调来改变参数。
在参考模型的控制器制动逻辑中,包含了BangBang ABS(较为简单的ABS逻辑)和Open Loop(开环无ABS控制)两大子系统。我们将18赛季开发的ABS逻辑策略acc_relative_slip_ABS也集成于此,采用变体子系统,使设计更加灵活,且不受I/O接口的限制,方便多种模型方案的相互比较和切换。
图4:制动逻辑
Logic模块是ABS的逻辑策略,采用轮角减速度alpha和滑移率作为控制变量,具体策略在文献[1]中介绍得比较详细,在此不进行赘述。其中前后轮的控制策略相同,不过因为后轮的转动惯量大于前轮,所以相应的控制参数会有些不同。
参数灵敏度分析
由于参数过多,人为地去逐个分析十分困难。为了更好地掌握各个控制参数对制动性能的影响,方便优化模型,于是我们进行了参数灵敏度分析。通过制动距离的长短来表征制动效能的高低,使用Sensitivity Analysis工具提供的方法来计算制动距离对这些参数的敏感度。
图5:参数灵敏度分析
仿真结果分析
在仿真结束后,接下来就是分析结果和优化模型的过程,这也是十分重要的环节,决定了模型是否具有实用性。在前文中也说到:搭建模型时就做好信号记录,这样我们就能尽情使用 Data Inspector 工具进行数据查看。详尽的数据,自由的组合极大地方便了我们观测和分析结果。
图6:纯制动工况下含ABS与不含ABS制动性能的比较
(紫色线含有ABS,红色线不含ABS制动,xdot表示车速)
对于车身稳定性和运动轨迹可以在点击四种工况图标后,随着仿真的进行在左下角的figure窗口中看到。四种工况对比如下:
图7:四种工况对比
在Visualization中,我们利用设置好的Scope观察到制动时参考车速轮速的关系如图:
图8:仿真数据图
图9:路测数据图
因为车辆运行的道路实际运行情况,仿真数据和路测数据存在数值上的差别,当时二者的曲线的走势是相同的。
仿真能够提前验证算法的正确性与合理性,在项目的初始阶段进行仿真,可以帮助我们更好地发现和理解问题,找到问题的实质所在。找出通过比较两图的相似度,我们在仿真阶段验证了搭建的ABS模型的正确性和可行性。车辆动力学仿真的成功给予了我们指导性的意义,给了我们实际操作和应用前的宝贵预判,也为设计和实车应用节约了大量时间。
轮胎数据处理
轮胎,是整个赛车的核心部件,轮胎不同,则整个赛车的设计也就不同。因此,轮胎的数据处理在整个设计过程中也是有着非常重要的地位,很多赛车队都有TTC的轮胎数据,对轮胎数据进行必要的分析,整理几十万的raw data是为以后的设计工作奠定基础。轮胎数据的整理可以参考racing-lounge中介绍过文章。
不过因为数据的原因,导致文章中的脚本文件不能适合每一组的实验数据,对文件做一定的修改是必须的,最后利用 Curve Fitting Toolbox 对实验数据进行拟合,就能够得到比较准确的拟合参数,也可以得到非常漂亮的曲线,最后利用拟合出来的轮胎数据分析整车动态性能,也可以用于车辆动态控制的仿真。
总结
正所谓仿真驱动设计,最初的建模尽管会很耗费时间,但这是非常必须的,因为它能为我们后期我们测试各种算法提供很好并且可控的平台,直接从仿真曲线当中看出各种参数的影响以及曲线逻辑的变化趋势,也能直接在仿真当中调试出自己代码的很多不足之处,查找出初期控制思路不成熟的地方,这能节约大量的时间。
-
控制器
+关注
关注
112文章
16073浏览量
176971 -
效率
+关注
关注
0文章
146浏览量
20022
发布评论请先 登录
相关推荐
评论