主要内容

采用极值寻优控制的自适应巡航控制

此示例显示了如何使用极值寻求控制(ESC)方法来实现自适应巡航控制。在该示例中,目标是使自助式汽车在设定的速度下行进,同时通过控制纵向加速和制动来保持与铅轿厢的安全距离。

自适应巡航控制系统

自适应巡航控制(ACC)是一种系统,旨在帮助车辆保持一个安全的跟随距离和停留在限速内。装有自动控制系统(ego car)的车辆使用雷达测量相对距离(<年代pan class="inlineequation"> D r e l )和相对速度(<年代pan class="inlineequation"> V r e l )关于领先的车辆。ACC系统旨在保持所需的巡航速度(<年代pan class="inlineequation"> V 年代 e t )或保持相对安全的距离(<年代pan class="inlineequation"> D 年代 一个 f e )从前面的车。控制目标中的开关根据以下条件确定。

  • 如果<年代pan class="inlineequation"> D r e l > D 年代 一个 f e , ACC系统遵循驾驶员所要求的参考巡航速度。

  • 如果<年代pan class="inlineequation"> D r e l < D 年代 一个 f e ,ACC系统控制自助式汽车相对于铅轿车的相对位置。

这个例子使用了相同的自我和引线车型<一个href="//www.tatmou.com/help/mpc/ug/adaptive-cruise-control-using-model-predictive-controller.html" class="a">采用模型预测控制的自适应巡航控制系统(模型预测控制工具箱)

实现纵向车辆动态作为简单的二阶线性模型。

特遣部队(G = 1, [0.5, 1,0]);

此处以配置ACC参数为例进行说明。

d_default = 10;<年代pan style="color:#228B22">%默认间距(m)t_gap = 1.4;<年代pan style="color:#228B22">%时间差距v_set = 30;<年代pan style="color:#228B22">驾驶员设定速度(m/s)amin_ego = 3;<年代pan style="color:#228B22">驾驶员舒适的%最小加速(M / S ^ 2)amax_ego = 2;<年代pan style="color:#228B22">驾驶员舒适度的最大加速度(m/s^2)t = 0.1;<年代pan style="color:#228B22">%采样时间Tf = 150;<年代pan style="color:#228B22">% (s)持续时间

指定领先车和自我车的初始位置和速度。

x0_lead = 50;<年代pan style="color:#228B22">%初始铅轿厢位置(m)v0_lead = 25;<年代pan style="color:#228B22">初始铅速度(m / s)x0_ego = 10;<年代pan style="color:#228B22">%初始自助式汽车位置(M)v0_ego = 20;<年代pan style="color:#228B22">自我车初始速度(m/s)

ACC使用极值寻求控制

极值寻优控制器通过实时调整控制参数使目标函数最大化来获得满意的控制性能。对于本例,使用以下目标函数,它取决于相对距离、安全距离、相对速度和设定速度。

J - d D r e l - D 年代 一个 f e 2 + v v r e l - v 年代 e t 2

在这里,<年代pan class="inlineequation"> d 和<年代pan class="inlineequation"> v 对于距离误差和速度误差术语分别是目标函数权重。

Qd = 0.5;Qv = 1;

寻极值控制器自适应下列控制器增益。

  • K x e r r -位置误差增益

  • K v e r r - 速度错误增益

  • K v r e l - 相对速度增益

指定增益值的初始猜测值。

Kverr = 1;<年代pan style="color:#228B22">%ACC速度错误增益Kxerr = 1;<年代pan style="color:#228B22">%ACC间距错误增益kvrel = 0.5;<年代pan style="color:#228B22">相对速度增益% ACC

指定极值寻求控制参数

金宝app利用Simulink控制设计软件实现了ESC算法<一个href="//www.tatmou.com/help/slcontrol/ug/extremumseekingcontrol.html" class="a">极值寻求控制块。配置此块的参数。

指定要调整的参数数(三个控制器增益)。控制器使用每个参数的单独调谐环路。

n = 3;

通过对每个参数的学习速率缩放初始增益值来指定参数更新集成器的初始条件LR.

Lr = 0.02*[2 3 1];IC = [Kverr、Kxerr Kvrel];

通过指定解调和调制信号的频率(欧米茄),阶段(phi_1phi_2)及振幅(一个b).每个参数必须使用不同的强迫频率。对于本例,对所有参数使用相同的调制和解调相位和振幅。

omega = 0.8 * [5,7,8];<年代pan style="color:#228B22">强制频率(rad/s)a = 0.01;<年代pan style="color:#228B22">%解调幅度b = 0.5 * lr;<年代pan style="color:#228B22">%调制振幅phi_1 = 0;<年代pan style="color:#228B22">解调相位(rad)phi_2 =π/ 4;<年代pan style="color:#228B22">调制相位(rad)

用低通滤波器去除解调信号中的高频噪声,用高通滤波器去除扰动目标函数信号中的偏置。指定这些滤波器的截止频率。

omega_lpf = 0.04;omega_hpf = 0.01;

模拟自适应巡航控制系统

要模拟ESC自适应巡航控制器,请打开ExtremumSeekingControlACC模型。

mdl =<年代pan style="color:#A020F0">“ExtremumSeekingControlACC”;Open_System(MDL)

植物动力学和目标子系统包含ACC模型和计算ESC算法的目标函数。

Open_System([MDL<年代pan style="color:#A020F0">" /植物动态与目标"])

模拟模型。在仿真过程中,前车速度呈正弦变化。因此,自我车必须调整其速度进行补偿。

sim (mdl);

以下绘图显示了引线和自助车之间的相对距离和安全距离。

  • 当自我汽车速度变化时,安全距离变化。

  • 自我和铅轿厢之间的相对距离偶尔略低于安全距离。此结果是因为ACC系统使用软约束执行相对距离。

Open_System([MDL<年代pan style="color:#A020F0">“/植物动态和目标/模拟结果/距离”])

查看自我和铅轿车的速度以及自我车辆套装速度。为了保持安全距离,ACC系统随着铅轿厢速度的变化而调节自我汽车速度。当铅轿厢速度大于设定的速度时,EGO车辆停止跟踪铅速度和巡航的速度。

Open_System([MDL<年代pan style="color:#A020F0">'/植物动力学和客观/仿真结果/速度'])

下一个图显示了ESC在寻找最优控制收益时寻求最优的成本函数。

Open_System([MDL<年代pan style="color:#A020F0">'/植物动力学和客观/仿真结果/成本'])

查看产生的控制器增益,它在仿真过程中适应。上面的图是<年代pan class="inlineequation"> K v e r r ,中间的情节是<年代pan class="inlineequation"> K x e r r ,下面的图是<年代pan class="inlineequation"> K v r e l .增益值的波动是由于来自极值寻求控制块的调制信号。

Open_System([MDL<年代pan style="color:#A020F0">“/植物动态和目标/收获”])

bdclose (<年代pan style="color:#A020F0">“ExtremumSeekingControlACC”)

另请参阅

相关话题