控件的实例自适应巡航控制系统模块,并演示了该模金宝app块的控制目标和约束。
将示例文件文件夹添加到MATLAB®路径。
目录(fullfile (matlabroot,“例子”,“货币政策委员会”,“主要”));
配备自适应巡航控制系统(ACC)的车辆(ego car)具有雷达等传感器,可以测量与同一车道上前面车辆(lead car)的距离。。传感器还能测量领头车的相对速度,。ACC系统有以下两种工作模式:
速度控制:ego汽车以驾驶员设定的速度行驶。
间距控制:小车与前车保持安全距离。
ACC系统根据实时雷达测量来决定使用哪种模式。例如,如果前车靠得太近,ACC系统就会从速度控制切换到间距控制。同样,如果领先的汽车是更远的,ACC系统从间距控制切换到速度控制。换句话说,只要保持安全距离,ACC系统就会使ego汽车以驾驶员设定的速度行驶。
确定ACC系统运行模式的规则如下:
如果,则速度控制模式处于激活状态。控制目标是跟踪驾驶员设定的速度,。
如果,则间距控制模式激活。控制目标是保持安全距离,。
在Simulink中建立了主小车和自小车的动力学模型。金宝app打开Simulin金宝appk模型。
mdl =“mpcACCsystem”;open_system (mdl)
为了近似真实的驾驶环境,在模拟过程中,领头车的加速度根据正弦波变化。自适应巡航控制系统块输出一个加速控制信号的自我汽车。
定义采样时间,Ts
、模拟持续时间;T
,在几秒钟内。
Ts = 0.1;T = 80;
对于自我车辆和领先车辆,加速度和速度之间的动力学建模为:
它近似于节流阀体的动力学和车辆惯性。
为小轿车指定线性模型。
G_ego = tf(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;
指定驱动程序设置的速度,单位为m/s。
V_set = 30;
考虑到车辆动力学的物理限制,加速度被限制在范围内(3 2)
(米/秒^ 2)。
Amin_ego = -3;Amax_ego = 2;
在本例中,自适应巡航控制系统块的默认参数与仿真参数匹配。如果您的模拟参数与默认值不同,则相应地更新块参数。
运行模拟。
sim (mdl)
——>将模型转换为离散时间。—>假设添加到测量输出通道#2的输出干扰是集成白噪声。假设没有干扰添加到测量输出通道#1。——>”模式。“mpc”对象的“噪声”属性为空。假设每个测量输出通道存在白噪声。
绘制仿真结果。
mpcACCplot (logsout D_default、t_gap v_set)
在最初的3秒内,为了达到驾驶员设定的速度,ego汽车会全速加速。
从3秒到13秒,领头车缓慢加速。因此,为了保持与领头车的安全距离,自我车以较慢的速度加速。
从13秒到25秒,自我汽车保持驾驶员设定的速度,如图速度情节。然而,当领头车减速时,间隔误差在20秒后开始接近0。
从25秒到45秒,领头车减速,然后再次加速。自我车通过调整速度来保持与领头车的安全距离,如图所示距离情节。
从45秒到56秒,间距误差在上面0
。因此,自我汽车再次达到驾驶员设定的速度。
从56秒到76秒,重复从25秒到45秒的减速/加速顺序。
在整个仿真过程中,控制器确保两车之间的实际距离大于设定的安全距离。当实际距离足够大时,控制器确保自我车辆遵循驾驶员设定的速度。
从MATLAB路径中删除示例文件文件夹,并关闭Simulink模型。金宝app
rmpath (fullfile (matlabroot,“例子”,“货币政策委员会”,“主要”));bdclose (mdl)