这个例子展示了如何使用自适应巡航控制系统模块,并演示了该模金宝app块的控制目标和约束。
将示例文件夹添加到MATLAB®路径中。
目录(fullfile (matlabroot,“例子”,“货币政策委员会”,“主要”));
装有自适应巡航控制(ACC)的汽车(ego car)有一个传感器,如雷达,可以测量与同一车道上的前车(lead car)的距离,.传感器还可以测量领头车的相对速度,.ACC系统有以下两种运行模式:
速度控制:自我汽车以驾驶者设定的速度行驶。
间距控制:自我车与引导车保持安全距离。
ACC系统根据实时雷达测量来决定使用哪种模式。例如,如果引导车太近,ACC系统从速度控制切换到间距控制。同样,如果前车距离较远,ACC系统将从间距控制切换到速度控制。换句话说,ACC系统使ego汽车以驾驶员设定的速度行驶,只要它保持安全距离。
ACC系统运行模式的判断原则如下:
如果,则速度控制模式是主动的。控制目标是跟踪驾驶者设定的速度,.
如果,则间距控制模式激活。控制目标是保持安全距离,.
在Simulink中建立了铅车和自我车的动力学模型。金宝app打开Simulin金宝appk模型。
mdl =“mpcACCsystem”;open_system (mdl)
为了接近真实的驾驶环境,在模拟过程中,先导车的加速度根据正弦波而变化。自适应巡航控制系统模块为自我汽车输出加速度控制信号。
定义采样时间,Ts
,和模拟持续时间,T
,在几秒钟内。
t = 0.1;T = 80;
对于ego车辆和lead车辆,加速度和速度之间的动力学模型为:
它近似于油门体的动力学和车辆的惯性。
为ego car指定线性模型。
G_ego =特遣部队(1,[0.5,1,0]);
指定两辆车的初始位置和速度。
x0_lead = 50;%导车起始位置(m)v0_lead = 25;导车初速度% (m/s)x0_ego = 10;自我车初始位置(m)v0_ego = 20;自我车初始速度% (m/s)
在Simulink中采用自适应巡航控制系统模块对ACC系统进行建模。金宝appACC系统块的输入如下:
司机让速度
时间差距
自我汽车的速度
与前车的相对距离(雷达)
相对于前车的速度(雷达)
ACC系统的输出是自我汽车的加速度。
引导车和自我车之间的安全距离是自我车速度的函数,:
在哪里停顿是否是默认的间距和就是车辆之间的时间间隔。指定的值,单位为米,在几秒钟内。
t_gap = 1.4;D_default = 10;
指定驱动器设置的速度,单位为米/秒。
v_set = 30;
考虑到车辆动力学的物理限制,加速度受距离限制(3 2)
(米/秒^ 2)。
amin_ego = 3;amax_ego = 2;
对于这个例子,自适应巡航控制系统块的默认参数与仿真参数匹配。如果模拟参数与默认值不同,则相应地更新块参数。
运行仿真。
sim (mdl)
——>模型转换为离散时间。——>假设添加到测量输出通道2上的输出扰动为集成白噪声。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。
绘制仿真结果。
mpcACCplot (logsout D_default、t_gap v_set)
在最初的3秒内,为了达到驾驶者设定的速度,“自我”赛车会全速加速。
从3秒到13秒,领先的赛车缓慢加速。因此,为了保持与领先车的安全距离,自我车以较慢的速度加速。
从13秒到25秒,自我汽车保持驾驶者设定的速度,如图所示速度情节。然而,随着前车速度的降低,间隔误差在20秒后开始趋近于0。
从25秒到45秒,领先的车减速,然后再次加速。自我车通过调整速度来保持与领先车的安全距离,如图所示距离情节。
从45秒到56秒,间隔误差在上面0
.因此,自我车再次达到驾驶者设定的速度。
从56秒到76秒,重复从25秒到45秒的减速/加速序列。
在整个仿真过程中,控制器确保两车之间的实际距离大于设定的安全距离。当实际距离足够大时,控制器保证自我车辆遵循驾驶者设定的速度。
从MATLAB路径中删除示例文件夹,关闭Simulink模型。金宝app
rmpath (fullfile (matlabroot,“例子”,“货币政策委员会”,“主要”));bdclose (mdl)