自动驾驶控制概况

news2024/11/25 5:50:10

文章目录

  • 1. 第一章行为决策在自动驾驶系统架构中的位置
  • 2. 路径跟踪控制的种类
    • 2.1 基于自行车模型的路径跟踪控制算法
      • 2.1.1 纯跟踪控制(Pure Pursuit)算法
      • 2.1.2 后轮反馈控制算法(Rear wheel feedback)
      • 2.1.3前轮反馈控制算法(Front wheel position based feedback)
    • 2.2 基于运动学模型的轨迹跟踪控制
      • 2.2.1 基于Lyapunov函数的控制
      • 2.2.2 输出反馈线性化控制
    • 2.3 MPC控制
    • 2.4 PID控制
    • 2.5 LQR控制
    • 2.6 滑模控制
  • 参考文献

1. 第一章行为决策在自动驾驶系统架构中的位置

    Claudine Badue[1]等人以圣西班牙联邦大学(UFES)开发的自动驾驶汽车(Intelligent Autonomous Robotics Automobile,IARA)为例,提出了自动驾驶汽车的自动驾驶系统的典型架构。如图所示,自动驾驶系统主要由感知系统(Perception System)和规划决策系统(Decision Making System)组成。感知系统主要由交通信号检测模块(Traffic Signalization Detector,TSD)、移动目标跟踪模块(Moving Objects Tracker,MOT)、定位与建图模块(Localizer and Mapper)等组成。规划决策系统主要由全局路径规划模块(Route Planner)、局部路径规划模块(Path Planner)、行为决策模块(Behavior Selector)、运动规划模块(Motion Planner)、自主避障模块(Obstacle Avoider)以及控制模块(Controller)组成。
在这里插入图片描述

图1-1 自动驾驶系统架构图

    路径跟踪控制在此架构中主要是由控制模块实现。控制模块接收最终由自主避障模块修改的运动计划轨迹,计算并发送相应的控制指令给方向盘、油门和制动器的执行器,以使汽车在现实世界规则允许的情况下执行修改后的轨迹。

2. 路径跟踪控制的种类

    自动驾驶汽车路径跟踪控制算法,主要是控制车辆按照上层路径规划器规划好的路径进行无偏差横纵向控制。目前自动驾驶汽车横向控制算法主要分为两种,包括有模型和无模型的控制方法[2]。无模型横向控制方法即传统的比例-积分-微分控制(Proportional Integral Derivative,PID),另一种是基于模型的横向控制方法,其中根据控制模型的不同,控制器又可分为有基于运动学模型的控制器和基于动力学模型的控制器。

    车辆运动学模型通常将车辆简化为一个质点,即为质点模型;或将车辆的垂直方向移动忽略、将车辆的同车轴的车轮角速度相同、将车辆的朝向简化为前轮的朝向,即简化为自行车模型,基于该模型的控制方法主要有纯跟踪控制(Pure Pursuit)算法、Stanley 控制算法,后轮反馈控制算法(Rear wheel feedback)。该类型控制器通常是通过控制航向角和横向误差来计算转向角,易于实现,但该模型仅适用于不考虑车辆动力学的低速行驶工况,如自动泊车控制系统。如果考虑复杂城市工况和高速交通环境时,则基于运动学模型的控制器的可靠性和鲁棒性并不高,因此就需要引入车辆动力学模型。

     基于车辆动力学模型的控制算法主要有线性二次型调节器(Linear Quadratic Regulator,LQR)、模型预测控制(Model Predictive Control,MPC)、滑模控制(Sliding Model Control,SMC)等,由于其考虑了车辆高速行驶时车身与外界干扰项等多重因素,如轮胎的非线性变化、车辆横摆与侧倾约束、路面曲率变化等,进一步提高了车辆行驶于复杂工况的安全性和可 靠性。目前的车辆动力学模型通常是简化了的二自由度单车模型,其保留了车辆的横摆和侧向运动,在能够准确描述车辆动力学的基础上尽量简化了车辆模型,以减少算法的计算量,确保控制系统的实时性。

2.1 基于自行车模型的路径跟踪控制算法

2.1.1 纯跟踪控制(Pure Pursuit)算法

     纯追踪控制是最早提出的路径跟踪策略之一。由于其易于实现和令人满意的性能,已被证明是车辆控制不可或缺的工具。在DARPA挑战赛中,有多个团队采用了纯追踪的控制算法[3]

     从自行车模型出发,纯跟踪算法以车后轴为切点, 车辆纵向车身为切线, 通过控制前轮转角,使车辆可以沿着一条经过目标路点(goal point)的圆弧行驶,如图2-1所示。

     通过正弦定理求出曲率、偏转角与车轴之间的关系: k = 2 sin ⁡ α l d k = \frac{{2\sin \alpha }}{{{l_d}}} k=ld2sinα式中 l d l_d ld——车辆当前位置到目标路点的距离;
     A Α A——目前车身姿态和目标路点的夹角。在这里插入图片描述

图2-1 纯追踪控制示意图

    前轮的转向角 δ \delta δ 的表达式为: δ = arctan ⁡ ( k L ) \delta = \arctan (kL) δ=arctan(kL)    纯追踪算法控制量的的最终表达式: δ ( t ) = arctan ⁡ ( 2 L sin ⁡ ( α ( t ) l d ) \delta (t) = \arctan (\frac{{2L\sin (\alpha (t)}}{{{l_d}}}) δ(t)=arctan(ld2Lsin(α(t))    为了更好的理解纯追踪控制器的原理,我们定义一个新的量: e l e_l el—— 车辆当前姿态和目标路点在横向上的误差,由此可得夹角正弦: sin ⁡ ( α ) = e l l d \sin (\alpha ) = \frac{{{e_l}}}{{{l_d}}} sin(α)=ldel    圆弧的弧度就可重写为: k = 2 l d 2 e l k = \frac{2}{{l_d^2}}{e_l} k=ld22el    考虑到本质是横向上的跟踪偏差(Cross Track Error, CTE),由上式可知纯追踪控制器其实是一个横向转角的 P P P控制器,其 P P P系数为 2 / ( l d ) 2 2/(l_d)^2 2/(ld)2;这个P控制器受到参数 l d l_d ld(即前视距离)的影响很大,如何调整前视距离变成纯追踪算法的关键;通常来说, l d l_d ld 被认为是车速的函数,在不同的车速下需要选择不同的前视距离。一种最常见的调整前视距离的方法就是将前视距离表示成车辆纵向速度的线形函数,即 l d = k v x l_d = kv_x ld=kvx,那么前轮的转角公式就变成了: δ ( t ) = arctan ⁡ ( 2 L sin ⁡ ( α ( t ) ) k v x ( t ) ) \delta (t) = \arctan (\frac{{2L\sin (\alpha (t))}}{{k{v_x}(t)}}) δ(t)=arctan(kvx(t)2Lsin(α(t)))    通常来说,会使用最大、最小前视距离来约束前视距离,越大的前视距离意味着轨迹的追踪越平滑,小的前视距离会使得追踪更加精确(当然也会带来控制的震荡),如图2-2 所示。

    驾驶员在实际驾驶过程中会观察车辆前方一定距离范围内的道路信息,以获得一定的预见性,提前对车辆进行调整,从而取得良好的控制效果。在路径跟踪过程中,前视距离与车速的大小有直接的关系。当车速较高时,需要较大的前视距离;当车速较低时,较小的前视距离可以达到很好的跟踪精度。在这里插入图片描述

图2-2 前视距离对控制的影响

2.1.2 后轮反馈控制算法(Rear wheel feedback)

    后轮反馈控制是利用后轮中心的跟踪偏差来进行转向控制量计算的方法,最早由Claude Samson[4]提出。如图2-3所示,先找到车辆后轮距离参考轨迹上最近的点。在这里插入图片描述

图2-3 后轮反馈控制示意图

    该点满足的轨迹曲线方程为: s ( t ) = arg ⁡ min ⁡ ∥ ( x r ( t ) , y r ( t ) ) − ( x r e f ( γ ) , y r e f ( γ ) ) ∥ {\rm{ }}s(t) = \arg \min \left\| {({x_r}(t),{y_r}(t)) - ({x_{ref}}(\gamma ),{y_{ref}}(\gamma ))} \right\|{\rm{ }} s(t)=argmin(xr(t),yr(t))(xref(γ),yref(γ))    对该曲线进行求导,得: t ^ = ( ∂ x r e f ∂ s ∣ s ( t ) , ∂ y r e f ∂ s ∣ s ( t ) ) ∥ ( ∂ x r e f ( s ( t ) ) ∂ s , ∂ y r e f ( s ( t ) ) ∂ s ) ∥ {\rm{ }}\hat t = \frac{{\left( {{{\left. {\frac{{\partial {x_{ref}}}}{{\partial s}}} \right|}_{s(t)}}{\rm{,}}{{\left. {\frac{{\partial {y_{ref}}}}{{\partial s}}} \right|}_{s(t)}}} \right)}}{{\left\| {\left( {\frac{{\partial {x_{ref}}\left( {s(t)} \right)}}{{\partial s}},\frac{{\partial {y_{ref}}\left( {s(t)} \right)}}{{\partial s}}} \right)} \right\|}} t^= (sxref(s(t)),syref(s(t))) (sxref s(t),syref s(t))    车辆和切线之间的角度差为: θ t = θ − arctan ⁡ 2 ( ∂ y r e f ( s ( t ) ) ∂ s , ∂ x r e f ( s ( t ) ) ∂ s ) {\rm{ }}{\theta _t} = \theta - {\arctan _2}\left( {\frac{{\partial {y_{ref}}\left( {s(t)} \right)}}{{\partial s}},\frac{{\partial {x_{ref}}\left( {s(t)} \right)}}{{\partial s}}} \right) θt=θarctan2(syref(s(t)),sxref(s(t)))    在Frenet坐标系下, ( s , e , θ e ) (s,e,θ_e) seθe的变化率,如下式所示: s ˙ = v r cos ⁡ ( θ e ) 1 − k ( s ) e , \dot s = \frac{{{v_r}\cos ({\theta _e})}}{{1 - k(s)e}}, s˙=1k(s)evrcos(θe), e ˙ = v r sin ⁡ ( θ e ) , \dot e = {v_r}\sin ({\theta _e}), e˙=vrsin(θe), θ ˙ e = ω − v r k ( s ) cos ⁡ ( θ e ) 1 − k ( s ) e , {{\dot \theta }_e} = \omega - \frac{{{v_r}k(s)\cos ({\theta _e})}}{{1 - k(s)e}}, θ˙e=ω1k(s)evrk(s)cos(θe),式中 s s s——汽车的纵向距离, m m m;
     e e e——汽车和参考路径的横向偏差, m m m;
     θ e θ_e θe——参考路径与汽车的航向偏差, r a d rad rad;
     k ( s ) k(s) k(s)——汽车距离参考路径最近点的曲率;
     v r v_r vr——车速, m / s m/s m/s;
     ω ω ω——汽车横摆角速度, r a d / s rad/s rad/s
    由汽车行驶时的横向偏差和航向偏差可得到 L y a p u n o v Lyapunov Lyapunov方程,如下式所示[5] V ( e , θ e ) = e 2 + θ e 2 {\rm{ }}V(e,{\theta _e}) = {e^2} + {\theta _e}^2 V(e,θe)=e2+θe2    为使李雅普诺夫方程局部渐进收敛, ω ω ω表示为: ω = v r k ( s ) cos ⁡ ( θ e ) 1 − k ( s ) e − ( k θ ∣ v r ∣ ) θ e − ( k e v r sin ⁡ ( θ e ) θ e ) e \omega = \frac{{{v_r}k(s)\cos ({\theta _e})}}{{1 - k(s)e}} - ({k_\theta }\left| {{v_r}} \right|){\theta _e} - \left( {{k_e}{v_r}\frac{{\sin ({\theta _e})}}{{{\theta _e}}}} \right)e ω=1k(s)evrk(s)cos(θe)(kθvr)θe(kevrθesin(θe))e式中 k θ k_{\theta} kθ——横摆角偏差反馈控制增益;
     k e k_e ke——横向位置偏差反馈控制增益。
    由车辆运动学方程可得到转向角 δ δ δ,如下式所示。 δ = arctan ⁡ ( ω L v r ) \delta = \arctan (\frac{{\omega L}}{{{v_r}}}) δ=arctan(vrωL)
     后轮反馈控制算法对路径平滑性要求较高,通过设计车辆横摆角速度,实现李雅普诺夫方程局部渐进收敛,从而实现路径跟踪。在低、中等速度下该算法的跟踪性能以及鲁棒性较好。然而,有时候该算法会出现转向过度的情形,且转角变化幅度大。

2.1.3前轮反馈控制算法(Front wheel position based feedback)

     前轮位置反馈(图2-4),又称作Stanley控制,斯坦福大学参加2005年DARPA时采用了前轮反馈控制算法。其思想是,通过前轮中心的通路跟踪偏差,来计算控制量。

在这里插入图片描述

图2-4 前轮反馈控制示意图

     如下式所示,横向位置误差的时间微分是: e ˙ = v f sin ⁡ ( θ e + δ ) \dot e = {v_f}\sin ({\theta _e} + \delta ) e˙=vfsin(θe+δ)     可以看出它可以直接通过前轮转角控制,所以设: e ˙ = − k e \dot e = - ke e˙=ke     可以使得其快速收敛至零。即可以推导出: v f sin ⁡ ( θ e + δ ) = − k e {v_f}\sin ({\theta _e} + \delta ) = - ke vfsin(θe+δ)=ke δ = arcsin ⁡ ( − k e v f ) − θ e \delta = \arcsin (\frac{{ - ke}}{{{v_f}}}) - {\theta _e} δ=arcsin(vfke)θe     对于有限域内的指数收敛,可以放宽到局部指数收敛,即变成: δ = arcsin ⁡ ( − k e v f ) − θ e \delta = \arcsin (\frac{{ - ke}}{{{v_f}}}) - {\theta _e} δ=arcsin(vfke)θe    该控制器在路径连续可微的条件下,局部指数收敛到汽车到曲率变化的路径。这种控制律的缺点是在 ∣ k e / v f ∣ > 1 |k_e/v_f | > 1 ke/vf>1时没有定义它,同时倒车比较差,不适合泊车场景。

     Brian Paden[3]对上述三种控制器进行了对比,表2-1是三种控制器的参数设置,图2-5是三种控制器的控制效果。可以看出,三种控制器对于较平滑的路段,控制效果良好,但遇到曲率较大的路径,纯追踪控制会出现较大的偏离,后两种算法控制效果比纯追踪控制好,但是只适用于道路连续可微的条件。

表2-1三种控制器的参数设置

在这里插入图片描述
在这里插入图片描述

图2-5三种控制器的控制效果 (a)纯追踪控制.(b)后轮反馈控制.(c)前轮反馈控制.

2.2 基于运动学模型的轨迹跟踪控制

2.2.1 基于Lyapunov函数的控制

    基于控制 L y a p u n o v Lyapunov Lyapunov函数的控制设计是在固定到汽车的坐标系中定义跟踪误差。配置误差可以通过使用参考轨迹的惯性坐标系的基础变化和速度 ( x r e f , y r e f , θ r e f , v r e f , ω r e f ) (x_{ref},y_{ref},θ_{ref},v_{ref},ω_{ref}) xrefyrefθrefvrefωref来表示: ( x e y e θ e ) = ( cos ⁡ ( θ ) sin ⁡ ( θ ) 0 − sin ⁡ ( θ ) cos ⁡ ( θ ) 0 0 0 1 ) ( x r e f − x r y r e f − y r θ r e f − θ r ) \left( {\begin{array}{ccccccccccccccc}{{x_e}}\\{{y_e}}\\{{\theta _e}}\end{array}} \right) = \left( {\begin{array}{ccccccccccccccc}{\cos (\theta )}&{\sin (\theta )}&0\\{ - \sin (\theta )}&{\cos (\theta )}&0\\0&0&1\end{array}} \right)\left( {\begin{array}{ccccccccccccccc}{{x_{ref}} - {x_r}}\\{{y_{ref}} - {y_r}}\\{{\theta _{ref}} - {\theta _r}}\end{array}} \right) xeyeθe = cos(θ)sin(θ)0sin(θ)cos(θ)0001 xrefxryrefyrθrefθr     配置误差的动态变化,可得: x ˙ e = ω y e − v r + v r e f cos ⁡ ( θ e ) {{\dot x}_e} = \omega {y_e} - {v_r} + {v_{ref}}\cos ({\theta _e}) x˙e=ωyevr+vrefcos(θe) y ˙ e = − ω x e + v r e f sin ⁡ ( θ e ) {{\dot y}_e} = - \omega {x_e} + {v_{ref}}\sin ({\theta _e}) y˙e=ωxe+vrefsin(θe) θ ˙ e = ω r e f − ω {{\dot \theta }_e} = {\omega _{ref}} - \omega θ˙e=ωrefω    其中控制分配为: v r = v r e f cos ⁡ ( θ e ) + k 1 x e {v_r} = {v_{ref}}\cos ({\theta _e}) + {k_1}{x_e} vr=vrefcos(θe)+k1xe ω = ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) ) \omega = {\omega _{ref + }}{v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e})) ω=ωref+vref(k2ye+k3sin(θe))    闭环误差动态变化即为: x ˙ e = ( ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) ) ) y e − k 1 x e {{\dot x}_e} = ({\omega _{ref + }}{v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e}))){y_e} - {k_1}{x_e} x˙e=(ωref+vref(k2ye+k3sin(θe)))yek1xe y ˙ e = − ( ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) x e + v r e f sin ⁡ ( θ e ) {{\dot y}_e} = - ({\omega _{ref}} + {v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e}){x_e} + {v_{ref}}\sin ({\theta _e}) y˙e=(ωref+vref(k2ye+k3sin(θe)xe+vrefsin(θe) θ ˙ e = ω r e f − ω {{\dot \theta }_e} = {\omega _{ref}} - \omega θ˙e=ωrefω    对于 k 1 , 2 , 3 > 0 k_{1,2,3} > 0 k1,2,3>0, ω ˙ r e f {\dot \omega _{ref}} ω˙ref= 0且 v ˙ r e f {\dot v _{ref}} v˙ref = 0 的情况,其稳定性通过以下 L y a p u n o v Lyapunov Lyapunov方程验证。 V = 1 2 ( x e 2 + y e 2 ) + ( 1 − cos ⁡ ( θ e ) ) k 2 V = \frac{1}{2}(x_e^2 + y_e^2) + \frac{{(1 - \cos ({\theta _e}))}}{{{k_2}}} V=21(xe2+ye2)+k2(1cos(θe))    其中半负定时间导数为: V ˙ = − k 1 x e 2 − v r e f k 3 sin ⁡ 2 ( θ e ) k 2 \dot V = - {k_1}x_e^2 - \frac{{{v_{ref}}{k_3}{{\sin }^2}({\theta _e})}}{{{k_2}}} V˙=k1xe2k2vrefk3sin2(θe)    局部分析表明,该控制法则提供了局部指数稳定性。但是,对于时不变系统, ω r e f ω_{ref} ωref v r e f v_{ref} vref是常数。

2.2.2 输出反馈线性化控制

    对更高车速的车辆,把转向角限制为连续运动是合适的。添加该状态后,从简单的几何考虑设计控制器变得更加困难。这种情况下,一个不错的选择是对系统进行输出线性化。

    使用前轮或后轮位置不容易实现这一点。一种简化的反馈线性化,选择车辆前方任意距离不是零的点,与转向角对齐。

    将系统的输出记为 x p = x f + d c o s ( θ + δ ) 和 y p = y f + d s i n ( θ + δ ) x_p = x_f + dcos(θ+δ)和y_p = y_f + dsin(θ+δ) xp=xf+dcos(θ+δ)yp=yf+dsin(θ+δ)。 用输出的导数代替前面微分方程的动力学模型,输出反馈线性化控制的控制率如下式所示: x ˙ p = x ˙ p , r e f + k x ( x p , r e f − x p ) {{\dot x}_p} = {{\dot x}_{p,ref}} + {k_x}({x_{p,ref}} - {x_p}) x˙p=x˙p,ref+kx(xp,refxp) y ˙ p = y ˙ p , r e f + k x ( y p , r e f − y p ) {{\dot y}_p} = {{\dot y}_{p,ref}} + {k_x}({y_{p,ref}} - {y_p}) y˙p=y˙p,ref+kx(yp,refyp)

2.3 MPC控制

    模型预测控制(Model predictive control,MPC)从上世纪70年代问世以来,已经从最初在工业过程中应用的启发式控制算法发展成为一个具有丰富理论和实践内容的新的学科分支。预测控制针对的是有优化需求的控制问题,30多年来预测控制在复杂工业过程中所取得的成功,已充分显现出其处理复杂约束优化控制问题的巨大潜力[6]

    MPC 控制是一种实时的闭环优化控制方法,该算法的优点主要是反复在线进行,能够不断获取当前最优控制量,且可以通过建立目标函数来满足车辆执行机构、侧滑和动力学等多约束条件。但其跟踪性能对预测模型的精度很敏感,且由于非线性模型预测控制对计算性能的高要求,使其不适合高速驾驶环境。目前许多研究者都将非线性车辆模型进行了线性化处理,但其只能保证控制器在车辆和轮胎的线性区域的跟踪精度。

    MPC控制器也叫做滚动时域控制器,该控制器考虑控制系统的非线性动力学模型并预测未来一段时间内系统的输出行为,通过求解带约束的最优控制问题,使得系统在未来一段时间内的跟踪误差最小,这种方法鲁棒性较强[7]。模型预测控制算法具备预测模型、滚动优化和反馈校正基本特征。传统的研究方法往往忽略或者简化了运动学约束以及动力学约束,而这类约束对于控制性能有着显著影响。模型预测控制方法能够通过优化目标函数显式地将车辆运动学和动力学约束纳入考虑。使用MPC的滚动优化和反馈校正特性,能够有效降低甚至消除闭环系统时滯问题所带来的影响,并能够结合规划所给出的未来轨迹信息对运动控制进行优化,提升控制性能。

    佛罗里达大学在2005年DARPA挑战赛中,也同样使用了MPC作为控制策略[8]。他们团队的车辆NaviGATOR实现了实时规划和控制,并应用了一种创新的基于启发式的后退水平控制器。该后退水平控制器是模型预测控制(MPC)的一种形式,是一种先进的控制技术,用于解决复杂和受约束的优化问题。

    Wang Weiran等人[9]设计了一种基于拉盖尔函数的自适应预测控制方法。该方法包括两部分:一是用于精确跟踪轨迹的自适应MPC模块;另一种是拉盖尔函数模块,用于显著减少计算。在自适应MPC模块中,引入递归最小二乘算法对系统的模型参数进行识别,以提高系统的精度和鲁棒性。然而,当AUV在复杂的环境中工作时,这种方法可能会导致计算量的大量增加。因此,在拉盖尔函数中,引入控制器输入变量的重构来降低目标函数的矩阵阶。结果表明,该方法在计算量较少的AUV跟踪轨迹时,在动态、抗干扰和鲁棒性等方面都具有良好的性能。在这里插入图片描述

图2-6 自适应MPC方框图

    Paden[3]对纯追踪算法、前轮反馈控制、后轮反馈控制、基于Lyapunov函数的控制、输出反馈线性化控制以及MOC控制从稳定性、时间复杂度、使用模型以及假设使用前提作出了总结,如表2-2所示。

表2-2 多种控制器的总结 Legend* : 局部指数稳定性(local exponential stability ,LES)

在这里插入图片描述

2.4 PID控制

    PID控制又称比例-积分-微分控制器。在自动驾驶汽车跟踪控制中,该算法主要是对车辆反馈的车辆位姿等信息做偏差处理,并通过比例、积分、微分进行线性组合构成控制量,从而对被控对象进行控制。该算法由于无需建立精确模型,算法简单易实现,广泛应用于各工业领域,但其参数调整比较困难,因此有许多学者将现代智能化算法如模糊控制、神经网络控制等算法与 PID算法进行结合,简化了控制器参数调整过程。

    王纪伟等人[10]提出了一种基于模糊免疫比例积分微分 (PID) 的控制方法。通过比较车辆实际行驶路径与期望路径的侧向偏差, 模糊免疫比例路径跟踪控制器控制转向机械手操纵方向盘。通过计算期望车速与实际车速的偏差, 模糊免疫PID速度跟踪控制器控制制动/油门机械腿分别操纵制动/油门踏板。通过引入车速反馈不断更新汽车的侧向加速度增益, 实现了车辆转向控制与纵向车速控制的解耦。

    高志伟等人[11]提出了一种综合考虑平衡控制和位置/方向随动控制LQR-PID混合最优控制器,引入位置角与转向角偏差的积分项,通过LQR最优算法优化PID参数,改善了系统的动态性能,使小车具有良好的轨迹跟踪性能的同时能量消耗最少。仿真实验表明该算法能使平衡小车在保持动态平衡的前提下对指定轨迹进行的良好跟踪,具有较快的动态响应速度,对干扰具有良好的鲁棒性。

    ZuñigaPeña等人[12]提出了一个新的非线性数学模型,该模型包含牛顿-欧拉公式中的气动力矩和力,并确定了应用于补偿PD和PID控制参数优化的元启发式算法,以跟踪无人机的轨迹。

    Shu-ping Chen等人[13]提出了一种基于MPC模型预测控制和PID速度控制的自主车辆路径跟踪方法。对于横向控制,MPC控制器产生一系列最佳车轮转向角;对于纵向控制,总车轮扭矩由嵌入MPC框架中的PID速度控制器产生。仿真试验结果表明,该控制器对车辆横向和纵向位置的跟踪误差较小,对轨迹和速度的跟踪性能良好。

2.5 LQR控制

    LQR控制器是一种多目标最优控制,能够使系统在被控时间内,寻求最优控制率减小目标函数以达到最优控制效果,即以较小的控制量和代价使系统稳定达到目标状态。该控制算法易于设计,但在曲率变化较大的路段进行跟踪控制时,会使得跟踪误差变大而导致跟踪失败,因此往往需要结合其他控制算法如前馈控制来进行无误差跟踪。

    孟宇等人[14]针对铰接式车辆的特殊转向结构和行驶特性,为提高其路径跟踪控制精度和反应速度,提出了一种基于预见信息的线性二次型最优控制(Linear quadratic regulator,LQR)策略,并应用遗传算法(Genetic algorithm,GA)对状态量权重矩阵进行优化求解,获得最优LQR状态反馈控制器,实现铰接式车辆精确路径跟踪控制,由位置偏差、行驶方位偏差和曲率偏差来反映控制效果。结果表明,所提出的控制方法可有效提高控制精度,实现铰接式车辆的精确、稳定路径跟踪。在这里插入图片描述

图2-7 对于基于铰链车模型的路径跟踪控制系统

    Yu Haoxuan等人 [15]结合不同的智能聚类算法,对LQR控制器的参数进行优化,寻找LQR控制器的最优解。Fan Zhengshuai等人 [16]提出了一种基于线性二次型调节器(LQR)的路径跟踪控制方法。首先,对非线性车辆运动学模型进行线性化,建立路径跟随误差的线性系统。其次,利用LQR最优控制实现该线性系统的闭环控制,以保证其稳定性和快速收敛性。在此过程中,通过矩阵Q和r平衡状态变量和输入的权重,可以得到LQR的最优二次型性能指标,因此可以方便地调整和标定控制参数。

2.6 滑模控制

    滑模控制(SMC)又称滑模变结构控制,是一种典型的非线性反馈控制方法,具有很强的抗不确定性扰动能力。通过设计合适的滑动模态,可以迫使系统快速按照预定的状态轨迹运行,具有鲁棒闭环性能。滑模控制的缺点主要是其不连续的开关特性将会引起抖动,降低控制系统抖动是目前该领域的研究热点与难点。

    姜立标等人[17]提出基于B样条曲线的路径规划算法和基于趋近律的非时间参考终端滑模路径跟踪控制算法。首先,对车辆的运动过程进行研究,建立车辆的运动学模型。其次,基于B样条曲线理论建立非线性约束平行泊车路径优化函数,并分析车辆运动学约束条件。然后,结合非时间参考路径跟踪控制和终端滑模控制方法,提出基于趋近律的非时间参考终端滑模路径跟踪控制方法。

    牛雪梅等人[18]提出一种加权增益趋近律算法,在该趋近律的积分项中引入负的加权值,可有效避免当系统状态不在滑模切换时的切换增益的增大,使得控制器输出量平滑,并利用Lyapunov函数证明了其稳定性,并采用该文所设计的基于加权积分增益趋近律的滑模控制器对喷药移动机器人进行路径跟踪控制。

参考文献

[1]C. Badue, et al. Self-driving cars: A survey[J]. Expert Systems with Applications, 2021, 165.
[2] 化祖旭.自动驾驶汽车路径跟踪控制算法综述[J].装备制造技术,2021(06):100-103.
[3] Brian Paden,Michal Cáp,Sze Zheng Yong,Dmitry S. Yershov,Emilio Frazzoli. A Survey of Motion Planning and Control Techniques for Self-Driving Urban Vehicles.[J]. IEEE Trans. Intelligent Vehicles,2016,1(1).
[4] C. Samson, Path following and time-varying feedback stabilization of a wheeled mobile robo[J]t. in 2nd Int. Conf. on Automation, Robotics and Computer Vision, 1992.
[5] 冀同涛,李刚,王明家,任建平.基于前馈和反馈相结合的路径跟踪算法[J].汽车工程师,2019(07):19-22.
[6] 席裕庚,李德伟,林姝.模型预测控制——现状与挑战[J].自动化学报,2013,39(03):222-236.
[7] 孙银健. 基于模型预测控制的无人驾驶车辆轨迹跟踪控制算法研究[D].北京理工大学,2015.
[8] M. Buehler, K. Iagnemma, and S. Singh. The 2005 DARPA Grand Challenge: The great robot race[J]. vol. 36. Springer Science & Business Media, 2007.
[9] Wang Weiran,Yan Jinghao,Wang Hui,Ge Huilin,Zhu Zhiyu,Yang Guanjun. Adaptive MPC trajectory tracking for AUV based on Laguerre function[J]. Ocean Engineering,2022,261.
[10]王纪伟,陈刚,汪俊.基于模糊免疫PID的驾驶机器人车辆路径及速度跟踪控制[J].南京理工大学学报,2017,41(06):686-692.DOI:10.14177/j.cnki.32-1397n. 2017.41.06.004.
[11]高志伟,代学武.自平衡小车LQR-PID平衡与路径跟踪控制器设计[J].控制工程,2020,27(04):708-714.DOI:10.14107/j.cnki.kzgc.170776.
[12]ZuñigaPeña Nadia Samantha,HernándezRomero Norberto,SeckTuohMora Juan Carlos,MedinaMarin Joselito,BarraganVite Irving. Improving 3D Path Tracking of Unmanned Aerial Vehicles through Optimization of Compensated PD and PID Controllers[J]. Applied Sciences,2021,12(1).
[13]Shu-ping Chen,Guang-ming Xiong,Hui-yan Chen,Dan Negrut. MPC-based path tracking with PID speed control for high-speed autonomous vehicles considering time-optimal travel[J]. Journal of Central South University,2020(prepublish).
[14]孟宇,汪钰,顾青,白国星.基于预见位姿信息的铰接式车辆LQR-GA路径跟踪控制[J].农业机械学报,2018,49(06):375-384.
[15]Yu Haoxuan,Zhao Chenxi,Li Shuai,Wang Zijian,Zhang Yulin. Pre-Work for the Birth of Driver-Less Scraper (LHD) in the Underground Mine: The Path Tracking Control Based on an LQR Controller and Algorithms Comparison[J]. Sensors,2021,21(23).
[16]Fan Zhengshuai,Chen Hui. Study on Path Following Control Method for Automatic Parking System Based on LQR[J]. SAE International Journal of Passenger Cars - Electronic and Electrical Systems,2016,10(1).
[17]姜立标,杨杰.基于滑模控制的自动泊车系统路径跟踪研究[J].农业机械学 报,2019,50(02):356-364.
[18]牛雪梅,高国琴,鲍智达,周海燕.基于滑模变结构控制的温室喷药移动机器人路径跟踪[J].农业工程学报,2013,29(02):9-16.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java面试-java基础

char 变量能不能存贮一个中文汉字?为什么? char 变量可以存贮一个汉字,因为 Java 中使用的默认编码是 Unicode ,一个 char 类型占 2 个字节(16 bit),一个汉字是2个字节,所以放一个中…

< JavaScript小技巧:Array构造函数妙用 >

文章目录👉 Array构造函数 - 基本概念👉 Array函数技巧用法1. Array.of()2. Array.from()3. Array.reduce()4. (Array | String).includes()5. Array.at()6. Array.flat()7. Array.findIndex()📃 参考文献往期内容 💨今天这篇文章…

K8s:通过 Kubeshark 体验 大白鲨(Wireshark)/TCPDump 监控 Kubernetes 集群

写在前面 分享一个 k8s 集群流量查看器很轻量的一个工具,监控方便博文内容涉及: Kubeshark 简单介绍Windows、Linux 下载运行监控DemoKubeshark 特性功能介绍 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。…

【强化学习】强化学习数学基础:值函数近似

值函数近似Value Function ApproximationMotivating examples: curve fittingAlgorithm for state value estimationObjective functionOptimization algorithmsSelection of function approximatorsIllustrative examplesSummary of the storyTheoretical analysisSarsa with …

【springboot】springboot介绍

学习资料 SpringBoot 语雀 (yuque.com)【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满)_哔哩哔哩_bilibiliSpringBoot2核心技术与响应式编程: SpringBoot2核心技术与响应式编程 (gitee.com) Spring 和Springboot 1、Spring能做什么 1.1…

STM32F1开发实例-振动传感器(机械)

振动(敲击)传感器 振动无处不在,有声音就有振动,哒哒的脚步是匆匆的过客,沙沙的夜雨是暗夜的忧伤。那你知道理科工程男是如何理解振动的吗?今天我们就来讲一讲本节的主角:最简单的机械式振动传感器。 下图即为振动传…

第18天-商城业务(商品检索服务,基于Elastic Search完成商品检索)

1.构建商品检索页面 1.1.引入依赖 <!-- thymeleaf模板引擎 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- 热更新 --><…

Revit开洞问题:结构专业开洞口剖面显示及一键开洞

一、Revit中关于结构专业开洞口剖面显示问题 Revit作业的时候&#xff0c;我们不仅只为了一个最后的三维立体模型,我们需要的是一个符合国家以及本院制图标准的一个出图样式,这时候就会出现各种各样的显示问题&#xff0c;本期就一个结构专业开洞显示问题&#xff0c;跟大家一起…

【CSS】CSS 背景设置 ③ ( 背景位置-长度值设置 | 背景位置-长度值方位值同时设置 )

文章目录一、背景位置-长度值设置二、背景位置-长度值方位值同时设置三、完整代码示例一、背景位置-长度值设置 长度值设置 效果展示 : 设置背景位置为具体值 10px 50px : 粉色区域是盒子的区域 , 图片背景位于盒子位置 x 轴方向 10 像素 , y 轴方向 50 像素 ; 在水平方向上 ,…

数组和指针面试题的补充(细的抠jio)

生命是一条艰险的峡谷&#xff0c;只有勇敢的人才能通过。 ——米歇潘 说明&#xff1a;用的vs都是x86的环境&#xff0c;也就是32位平台。 建议&#xff1a;对于难题来说&#xff0c;一定要配合画图来解决问题。 第一题&#xff1a; #include<stdio.h> int…

脉脉疯传!2023年程序员生存指南;多款prompt效率加倍工具;提示工程师最全秘籍;AI裁员正在发生 | ShowMeAI日报

&#x1f440;日报合辑 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 2023年程序员生存指南 不要在互联网公司做低代码项目 保证一定强度的刷题&#xff0c;不要用go刷题&#xff0c;用cpp或者java&#xff0c;性价…

DPDK系列之八虚拟化virtio

一、virtio的介绍 在一篇文章中对virtio进行了简单的说明。在早期的虚拟化的过程中&#xff0c;无论是KVM还是Vmware亦或是Xen&#xff0c;每个平台想当然的是自己搞自己的IO接口。这就和现在国内的互联各个平台都是大而全一样&#xff0c;怎么可能我用你的支付接口呢&#xf…

Python高频面试题——装饰器(带大家理解装饰器的本质)

装饰器概念装饰器本质上是一个python函数&#xff0c;它可以让其他函数在不需要做任何代码变动的前提下增加额外功能&#xff0c;装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景&#xff0c;比如&#xff1a;插入日志、性能测试、事务处理、缓存、权限验证等场景…

【C++】通过stack、queue、deque理解适配器模式

破镜不能重圆&#xff0c;枯木可以逢春。 文章目录一、stack1.stack的介绍2.stack相关OJ题&#xff08;巧妙利用stack数据结构的特征&#xff09;3.stack的模拟实现二、queue1.queue的介绍2.queue的相关OJ题&#xff08;巧妙利用queue数据结构的特征&#xff09;3.queue的模拟实…

多图片怎么转换成PDF?这招教你轻松转换

多图片怎么转换成PDF&#xff1f;我们经常会传输图片文件给同事或者朋友&#xff0c;但是多张图片的传输比较麻烦&#xff0c;有的时候传输比较慢&#xff0c;而且也不便于查看&#xff0c;所以我们就可以将需要传输的多张图片转换成一个PDF文件&#xff0c;这样查看文件时就可…

mxnet版本与numpy,requests等都不兼容问题

简介 跟着李沐学AI时遇到的mxnet环境问题。 问题 使用pip install mxnet时会重新安装相匹配的numpy和requests&#xff0c;而这新安装的这两个版本不满足d2l所需的版本。 然后报错&#xff1a; ERROR: pips dependency resolver does not currently take into account all …

常用docker命令

帮助启动类命令 镜像命令 docker images options -a :列出本地所有的镜像&#xff08;含历史映像层) -q :只显示镜像ID。docker search 某个XXX镜像名字 网站 Docker命令 docker search [OPTIONS] 镜像名字 案例 docker search redis option…

【AI绘图学习笔记】奇异值分解(SVD)、主成分分析(PCA)

这节的内容需要一些线性代数基础知识&#xff0c;如果你没听懂本文在讲什么&#xff0c;强烈建议你学习【官方双语/合集】线性代数的本质 - 系列合集 文章目录奇异值分解线性变换特征值和特征向量的几何意义什么是奇异值分解&#xff1f;公式推导SVD推广到任意大小矩阵如何求SV…

【C++的OpenCV】第十二课-OpenCV图像常用操作(九):找到图像的边界(轮廓)findContours()和drawContours()

&#x1f389;&#x1f389;&#x1f389;欢迎各位来到小白piao的学习空间&#xff01;\color{red}{欢迎各位来到小白piao的学习空间&#xff01;}欢迎各位来到小白piao的学习空间&#xff01;&#x1f389;&#x1f389;&#x1f389; &#x1f496;&#x1f496;&#x1f496…

PMP项目管理项目整合管理

目录1 项目整合管理概述2 制定项目章程3 制定项目管理计划4 指导与管理项目工作5 管理项目知识6 监控项目工作7 实施整体变更控制8 结束项目或阶段1 项目整合管理概述 项目整合管理包括对隶属于项目管理过程组的各种过程和项目管理活动进行识别、定义、组合、统一和协调的各个…