直线车道保持动力学分析 (Lane Keeping)

自动驾驶车辆总是在对应的高精地图车道里面去行驶的, 因此我们在建立动力学的时候需要增添状态变量考虑车辆相对于车道的位置, 首先我们考虑直线的情况
直线车道保持动力学分析 (Lane Keeping)_第1张图片
上图中 s s s为车辆沿着路径行驶的距离, 横向误差 e e e为车辆质心到车道的距离, 航向角度误差 Δ Ψ \Delta \Psi ΔΨ为车辆纵向中线与车道之间的夹角, 下面的分析都需要基于线性轮胎模型(linear tire model)和自行车模型, 此外我们需要定义下述常量
c 0 = C f + C r c 1 = a C f − b C r c 2 = a 2 C f + b 2 C r c_{0} = C_{f} + C_{r} \\ c_{1} = aC_{f} - bC_{r} \\ c_{2}= a^{2}C_{f} + b ^{2}C_{r} c0=Cf+Crc1=aCfbCrc2=a2Cf+b2Cr
m ( U ˙ y + r U x ) = F y r + F y f = − C r α r − C f α f = − C r ( U y − b r U x ) − C f ( U y + a r U x ) − m r U x + C f δ m(\dot{U}_{y} + rU_{x}) = F_{yr} + F_{yf} \\ = -C_{r}\alpha_{r}-C_{f}\alpha_{f} \\ =-C_{r}(\dfrac{U_{y} - br}{U_{x}}) - C_{f}(\dfrac{U_{y} + ar}{U_{x}}) - mrU_{x} + C_{f}\delta m(U˙y+rUx)=Fyr+Fyf=CrαrCfαf=Cr(UxUybr)Cf(UxUy+ar)mrUx+Cfδ
使用上面定义的常量, 我们可以得到
m U ˙ y = − c 0 U x U y − c 1 U x r − m r U x + C f δ m\dot{U}_{y} = -\dfrac{c_{0}}{U_{x}}U_{y} - \dfrac{c_{1}}{U_{x}}r - mrU_{x} + C_{f}\delta mU˙y=Uxc0UyUxc1rmrUx+Cfδ
I z r ˙ = a F y f − b F y r = − a C f a f + b C r a r = − a C f α f + b C r α r = − a C f ( U y + a r U x − δ ) + b C r ( U y − b r U x ) I_{z}\dot{r} = aF_{yf} - bF_{yr} \\ =-aC_{f}a_{f} + b C_{r}a_{r} \\ =-aC_{f}\alpha_{f} +bC_{r}\alpha_{r} \\ =-aC_{f}(\dfrac{U_{y} + ar}{U_{x}} - \delta) + bC_{r}(\dfrac{U_{y} - br}{U_{x}}) Izr˙=aFyfbFyr=aCfaf+bCrar=aCfαf+bCrαr=aCf(UxUy+arδ)+bCr(UxUybr)
同样我们使用常量 c 0 c_{0} c0, c 1 c_{1} c1 c 2 c_{2} c2进行化简和优化
I z r ˙ = − c 1 U y + c 2 r U x + a C f δ I_{z}\dot{r}= -\dfrac{c_{1}U_{y}+c_{2}r}{U_{x}} + aC_{f}\delta Izr˙=Uxc1Uy+c2r+aCfδ
纵向行驶距离 s s s, 横向误差 e e e Δ Ψ \Delta \Psi ΔΨ的变化可以用如下微分方程表示
s ˙ = U x cos ⁡ Δ Ψ − U y sin ⁡ Δ Ψ ≈ U x − U y Δ Ψ       ( 1 ) e ˙ = U y cos ⁡ Δ Ψ + U x sin ⁡ Δ Ψ ≈ U y + U x Δ Ψ       ( 2 ) Δ Ψ ˙ = r \dot{s} = U_{x}\cos{\Delta\Psi} - U_{y}\sin{\Delta\Psi} \approx U_{x} - U_{y}\Delta \Psi ~~~~~(1)\\ \dot{e} = U_{y}\cos{\Delta\Psi} + U_{x}\sin{\Delta\Psi} \approx U_{y} + U_{x}\Delta \Psi ~~~~~(2)\\ \Delta \dot{\Psi} = r s˙=UxcosΔΨUysinΔΨUxUyΔΨ     (1)e˙=UycosΔΨ+UxsinΔΨUy+UxΔΨ     (2)ΔΨ˙=r

传递函数分析

为了分析车辆车道保持动力学, 我们需要分别建立横向误差 e e e和航向角度误差 Δ Ψ \Delta \Psi ΔΨ相对于
转向输入 δ \delta δ的传递函数, 我们需要对 ( 1 ) (1) (1) ( 2 ) (2) (2)求二阶导数,
m e ¨ = m U ˙ y + m U x Δ Ψ ˙ = − c 0 U x U y − c 1 U x r − m r U x + C f δ + m r U x = − c 0 U x ( e ˙ − U x Δ Ψ ) − c 1 U x Δ Ψ ˙ + C f δ = − c 0 U x e ˙ + c 0 Δ Ψ − c 1 U x Δ Ψ ˙ + C f δ m\ddot{e} = m\dot{U}_{y}+mU_{x}\Delta\dot{\Psi} \\ =-\dfrac{c_{0}}{U_{x}}U_{y} - \dfrac{c_{1}}{U_{x}}r-mrU_{x} + C_{f}\delta+mrU_{x} \\ =-\dfrac{c_{0}}{U_{x}}(\dot{e} - U_{x}\Delta \Psi) - \dfrac{c_{1}}{U_{x}}\Delta\dot{\Psi}+C_{f}\delta \\ =-\dfrac{c_{0}}{U_{x}}\dot{e} + c_{0}\Delta\Psi-\dfrac{c_{1}}{U_{x}}\Delta\dot{\Psi}+C_{f}\delta me¨=mU˙y+mUxΔΨ˙=Uxc0UyUxc1rmrUx+Cfδ+mrUx=Uxc0(e˙UxΔΨ)Uxc1ΔΨ˙+Cfδ=Uxc0e˙+c0ΔΨUxc1ΔΨ˙+Cfδ
I z Δ Ψ ¨ = I z r ˙ = − c 1 U y + c 2 r U x + a C f δ = − c 1 ( e ˙ − U x Δ Ψ ) + c 2 r U x + a C f δ = − c 1 U x e ˙ + c 1 Δ Ψ − c 2 U x Δ Ψ ˙ + a C f δ I_{z}\Delta\ddot{\Psi} = I_{z}\dot{r} =-\dfrac{c_{1}U_{y}+c_{2}r}{U_{x}}+aC_{f}\delta \\ =-\dfrac{c_{1}(\dot{e} - U_{x}\Delta\Psi) + c_{2}r}{U_{x}} + aC_{f}\delta \\ =-\dfrac{c_{1}}{U_{x}}\dot{e} + c_{1}\Delta \Psi - \dfrac{c_{2}}{U_{x}}\Delta\dot{\Psi}+aC_{f}\delta IzΔΨ¨=Izr˙=Uxc1Uy+c2r+aCfδ=Uxc1(e˙UxΔΨ)+c2r+aCfδ=Uxc1e˙+c1ΔΨUxc2ΔΨ˙+aCfδ

我们可以将上述方程写成矩阵形式
[ m 0 0 I z ] [ e ¨ Δ Ψ ¨ ] = 1 U x [ − c 0 c 1 − c 1 − c 2 ] [ e ˙ Δ Ψ ˙ ] + [ 0 c 0 0 c 1 ] [ e Δ Ψ ] + [ C f a C f ] δ \begin{bmatrix} m&0\\ 0&I_{z} \end{bmatrix} \begin{bmatrix} \ddot{e}\\ \Delta \ddot{\Psi} \end{bmatrix} = \dfrac{1}{U_{x}} \begin{bmatrix} -c_{0} & c_{1}\\ -c_{1}& -c_{2} \end{bmatrix} \begin{bmatrix} \dot{e}\\ \Delta\dot{\Psi} \end{bmatrix} + \begin{bmatrix} 0&c_{0}\\ 0&c_{1} \end{bmatrix} \begin{bmatrix} e \\ \Delta \Psi \end{bmatrix} + \begin{bmatrix} C_{f} \\ aC_{f} \end{bmatrix} \delta [m00Iz][e¨ΔΨ¨]=Ux1[c0c1c1c2][e˙ΔΨ˙]+[00c0c1][eΔΨ]+[CfaCf]δ
使用拉普拉斯变换, 我们可以得到如下几何表达式:
m s 2 E = − c 0 U x s E + c 0 D − c 1 U x s D + C f Δ ms^{2}E = -\dfrac{c_{0}}{U_{x}}sE+c_{0}D-\dfrac{c_{1}}{U_{x}}sD + C_{f}\Delta ms2E=Uxc0sE+c0DUxc1sD+CfΔ
I z s 2 D = − c 1 U x s E + c 1 D − c 2 U x s D + a C f Δ I_{z}s^{2}D=-\dfrac{c_{1}}{U_{x}}sE+c_{1}D-\dfrac{c_{2}}{U_{x}}sD+aC_{f}\Delta Izs2D=Uxc1sE+c1DUxc2sD+aCfΔ
经过一系列数学推导我们可以得到横向误差到方向盘转角的传递函数:
E Δ ( s ) = n 2 s 2 + n 1 s + n 0 s 2 ( s 2 + d 1 s + d 0 ) \dfrac{E}{\Delta}(s) = \dfrac{n_{2}s^{2} + n_{1}s + n_{0}}{s^{2}(s^{2} + d_{1}s + d_{0})} ΔE(s)=s2(s2+d1s+d0)n2s2+n1s+n0
系数如下:
n 2 = m C f I z U x 2 n 1 = C f U x c 2 m − C f U x I z a c 1 n 0 = C f I z U x 2 a c 0 − C U x 2 c 1 m d 1 = c 0 I z + c 2 m I z m U x d 0 = C f C r L 2 − c 1 m U x 2 I z m U x 2 n_{2}=mC_{f}I_{z}U_{x}^{2}\\ n_{1}=C_{f}U_{x}c_{2}m-C_{f}U_{x}I_{z}ac_{1}\\ n_{0}=C_{f}I_{z}U_{x}^{2}ac_{0}-C_{}U_{x}^{2}c_{1}m \\ d_{1}=\dfrac{c_{0}I_{z}+c_{2}m}{I_{z}mU_{x}} \\ d_{0}=\dfrac{C_{f}C_{r}L^{2}-c_{1}mU_{x}^{2}}{I_{z}mU_{x}^{2}} n2=mCfIzUx2n1=CfUxc2mCfUxIzac1n0=CfIzUx2ac0CUx2c1md1=IzmUxc0Iz+c2md0=IzmUx2CfCrL2c1mUx2
观察上述表达式可以发现转角到横向误差的系统为四阶系统, 一共有四个极点, 两个极点位于坐标原点, 两个极点对应于自行车模型的极点

转向负反馈(Steering Feedback)

从上面一章我们可以看出车辆从方向盘转角到横向误差的系统是不稳定的, 为了让车辆能够跟随轨迹, 我们需要对方向盘转角进行闭环控制, 我们采取最简单的比例控制, 方向盘转角与重心处的横向误差成比率
δ = − k p e \delta = -k_{p}e δ=kpe
直线车道保持动力学分析 (Lane Keeping)_第2张图片接下来我们需要去求闭环系统的极点
E E d e s ( s ) = k p G ( s ) 1 + k p G ( s ) \dfrac{E}{E_{des}}(s)=\dfrac{k_{p}G(s)}{1 + k_{p}G(s)} EdesE(s)=1+kpG(s)kpG(s)
闭环传递系统的分母为4阶段多项式, s 4 + d 1 s 3 + d 2 s 2 + d 3 s + d 4 s^{4}+d_{1}s^{3}+d_{2}s^{2}+d_{3}s+d_{4} s4+d1s3+d2s2+d3s+d4
根据罗斯判据(Routh Criteria). 所有的系数都必须是正数,同时还必须满足下面的不等式
d 1 d 2 > d 3 d 1 d 2 d 3 > d 3 2 + d 1 2 d 4 d_{1}d_{2} > d_{3} \\ d_{1}d_{2}d_{3}>d_{3}^{2}+d_{1}^{2}d_{4} d1d2>d3d1d2d3>d32+d12d4
上述两个不等式并不能一直满足,该系统是不稳定的, 尤其是在高速的情况下.
怎么从直观的角度去描述这种不稳定性了?
直线车道保持动力学分析 (Lane Keeping)_第3张图片如上图所示, 假设车辆的横向误差不为0, 它会偏航直到到达目标横向位置,使得横向误差为0, 但是这个时候航向角误差不为0, 车辆会在车道中线附近来回摆动.

为了解决上述问题我们需要采取预瞄的方式, 最简单的方法是通过预瞄将航向角(heading error)误差带入反馈中。
直线车道保持动力学分析 (Lane Keeping)_第4张图片方向盘转角命令扩展为
δ = − k p e L A = − k p ( e + x L A Δ Ψ ) \delta=-k_{p}e_{LA}=-k_{p}(e+x_{LA}\Delta\Psi) δ=kpeLA=kp(e+xLAΔΨ)
上述转角命令我们可以理解为我们在横向误差比例负反馈的基础上增加航向角误差的比例负反馈。反馈比例系数为 k p x L A k_{p}x_{LA} kpxLA.
我们还可以从另一个角度去理解上述控制率,我们可以认为该控制率为基于横向误差的比例微分控制(PD Control Law), 因为横向误差变化率 e ˙ = U y + U x Δ Ψ \dot{e}=U_{y}+U_{x}\Delta\Psi e˙=Uy+UxΔΨ, 横向误差变化率和航向角度误差呈线性关系

你可能感兴趣的:(控制算法)