ModelCoder是一款支持多种嵌入式系统建模并可以自动生成高安全可靠的C代码的软件设计和开发工具,支持同步数据流以及状态机等嵌入式模型,其从模型生成代码的过程经过了形式化验证,以保证生成过程的正确无误性,能够用于汽车控制系统、飞行控制系统,航空电子系统,核电的DCS等多个安全关键领域的嵌入式软件的设计和开发。

本文主要介绍ModelCoder的建模仿真功能在汽车控制系统的应用:

在开发人员构思完控制算法后,可以通过拖拽ModelCoder模块库中模块,搭建所需要的仿真模型,调配相应的参数实现仿真,即可得到算法的控制效果。下面将以汽车四轮转向控制系统为例,展示基于ModelCoder的建模仿真过程。

1.数学建模

在四轮转向分析中,通常情况下可以把汽车简化为一个二自由度的两轮车模型,如图1所示。二自由度模型忽略了悬架的作用,将整车简化为两轮,认为轮胎侧偏特性为线性(车辆的侧向加速度限制在0.4g以下),并且忽略纵向的驱动或阻力,即纵向车速不变,车辆只有沿y轴的侧向运动和绕质心的横摆运动。

designmodeler如何修改模型相对于坐标系的位置_控制系统

▲图1 二自由度四轮转向车辆模型

模型的运动微分方程可以表示为:

designmodeler如何修改模型相对于坐标系的位置_传递函数_02

其中,M为整车质量;V为车速;u为沿x方向的前进速度;v为沿y方向的侧向加速度;β为质心处的侧偏角,β=v/u;r为横摆角速度;Iz为绕质心的横摆转动惯量;δf和δr分别为前后轮转角;Lf和Lr分别为质心至前后轴的距离;Fy1和Fy2分别为前后轮侧偏力。

r横摆角速度与前后轮转角、质心处的侧偏角β与前后轮转角关系如下:

转角输入-横摆角速度输出的传递函数关系:

designmodeler如何修改模型相对于坐标系的位置_仿真模拟_03

转角输入-执行侧偏角输出的传递函数关系:

designmodeler如何修改模型相对于坐标系的位置_传递函数_04

 

车辆在给定速度行驶时,前轮角阶跃输入的响应可以用稳态横摆角速度增益来衡量,稳态横摆角速度增益为稳态横摆角速度与前轮转角之比,即:

designmodeler如何修改模型相对于坐标系的位置_传递函数_05

其中,L为车辆轴距,K为车辆稳定因子,i为前后轮转向比。

2.软件仿真计算

ModelCoder仿真的控制算法如图2所示,当给出一个前轮转角阶跃输入后,在忽略后轮转角的情况下,得到相应的横摆角速度响应,然后和稳态横摆角速度相比较,得出一个需要调整的值;该值经过一定的关系后,求出当前需要的后轮横摆角。整个过程动态进行,后轮根据需要不断接近最优值。

designmodeler如何修改模型相对于坐标系的位置_控制系统_06

▲图2 基于横摆角速度反馈的四轮转向控制原理

图中的各传递函数为:

designmodeler如何修改模型相对于坐标系的位置_传递函数_07

其中,Gr/δf为前轮转角对横摆角速度的传递函数;Gr/δr为后轮转角对横摆角速度的传递函数;Gβ/δf为前轮转角对质心侧偏角的传递函数;Gβ/δr为后轮转角对质心侧偏角的传递函数。

该模型涉及的模型参数如表1所示:

designmodeler如何修改模型相对于坐标系的位置_控制系统_08

在车辆低速行驶时,各传递函数如下:

designmodeler如何修改模型相对于坐标系的位置_传递函数_09

稳态横摆角速度增益:

designmodeler如何修改模型相对于坐标系的位置_数学建模_10

前后轮转向比:0.8

考虑V=50km/h以下的系统仿真,建模框图如图3所示

designmodeler如何修改模型相对于坐标系的位置_仿真模拟_11

▲图3 低速时四轮转向系统ModelCoder仿真模型

3.仿真结果分析

使用ModelCoder运行仿真,结果如图4和图5所示:

designmodeler如何修改模型相对于坐标系的位置_控制系统_12

▲图4 低速时横摆角速度响应曲线

(注:蓝线为二轮转向系统横摆角速度响应线;红线为横摆加速度反馈的四轮转向系统响应线,黄线为定前后轮转向比的四轮转向系统响应线)

designmodeler如何修改模型相对于坐标系的位置_仿真模拟_13

▲图5 低速时质心侧偏角响应速度

若仅为二轮转向系统,系统超调量较大,且系统趋于稳态的时间较长;定前后轮转向比的四轮转向系统达到稳态的时间也较长,比较三者,可以发现横摆加速度反馈的四轮转向系统响应较为理想。

4.总结

以上展示了基于ModelCoder软件实现对汽车四轮转向控制系统进行建模仿真的过程。类似地,用户可以对不同的控制算法进行建模仿真,根据仿真结果对比分析这些控制算法的优缺点,以及在不同参数的情况下测试该算法是否能达到预期的控制效果。