此示例演示如何使用自适应巡航控制系统阻断的Simuli金宝appnk和演示了控制目标和该块的约束。
例如添加文件夹到MATLAB®路径。
让addpath(完整文件(matlabroot,“例子”,“货币政策委员会”,“主要”));
配备自适应巡航控制(ACC)的车辆(ego car)具有传感器,如雷达,可以测量到同一车道上前面车辆的距离(前车),。传感器还可以测量前车的相对速度,。ACC系统工作在以下两种模式:
速度控制:自我汽车行驶在驾驶员设定的速度。
间距控制:自我汽车保养从引导车的安全距离。
ACC系统决定使用基于实时雷达测量的模式。例如,如果引车太近,ACC系统从速度控制切换为间距控制。类似地,如果铅汽车进一步距离,ACC系统从间距控制到速度控制开关。换句话说,ACC系统使得在驾驶员设定的速度自我驾车出行,只要它保持一定的安全距离。
下列规则用于确定ACC系统的操作模式:
如果,然后速度控制模式是有效的。控制目标是跟踪驾驶者设定的速度,。
如果,则间距控制模式是有效的。控制目标是保持安全距离,。
铅汽车和汽车自我的动态建模在Simulink。金宝app打开Simulin金宝appk模型。
MDL ='mpcACCsystem';open_system (mdl)
为了接近真实的驾驶环境,在模拟过程中,前车的加速度会随着正弦波的变化而变化。自适应巡航控制系统块输出一个针对小轿车的加速度控制信号。
定义采样时间,TS
,仿真持续时间,Ť
, 片刻之间。
t = 0.1;T = 80;
对于ego车辆和lead车辆,加速度和速度之间的动力学模型为:
它近似于节流阀体的动力学和车辆的惯性。
指定自我汽车线性模型。
G_ego = TF(1,[0.5,1,0]);
指定两辆车的初始位置和速度。
x0_lead = 50;前车初始位置% (m)v0_lead = 25;%铅汽车的初始速度(米/秒)x0_ego = 10;% ego car初始位置(m)v0_ego = 20;车辆初始速度% (m/s)
ACC系统使用Simulink中的自适应巡航控制系统模块建模。金宝app到ACC系统块中的输入是:
驱动程序设定的速度
时间空隙
自我车的速度
与前车的相对距离(从雷达)
相对速度导致汽车(从雷达)
ACC系统的输出是ego car的加速度。
引车和小我车之间的安全距离是小我车速度的函数,:
哪里是静止默认间距和是车辆之间的时间间隙。指定值,单位是米,单位是, 片刻之间。
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”对象的“Model.Noise”属性是空的。假设在每个测得的输出信道的白噪声。
绘制仿真结果。
mpcACCplot(logsout,D_default,t_gap,v_set)
在第一个3秒,以达到驾驶员设定速度,自我汽车加速在全油门。
从3秒到13秒,前车慢慢加速。结果,为了保持与前车的安全距离,ego车加速的速度变慢了。
从13到25秒,自我维持汽车驾驶员设定的速度,如图中速度情节。然而,当前车减速时,间隔误差在20秒后开始接近0。
从25到45秒,导致汽车速度变慢,然后再加速。自我汽车保养从引导车的安全距离,通过调整其速度,如图所示距离情节。
从45秒到56秒,间隔误差在上面0
。因此,自我汽车再次实现了驾驶员设定的速度。
从56秒到76秒,重复从25秒到45秒的减速/加速序列。
在整个模拟中,控制器保证两台车之间的实际距离超过设定的安全距离。当实际距离足够大,则该控制器确保自主车辆跟随驾驶员设定速度。
从MATLAB路径中删除示例文件夹,关闭Simulink模型。金宝app
rmpath (fullfile (matlabroot,“例子”,“货币政策委员会”,“主要”));bdclose(MDL)