【文献精读】基于驱动力表的无人车终端无约束预测纵向控制(TVT)

news2024/9/22 7:37:24

写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花

📚 系列专栏:【文献精读】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~


文章目录

  • 摘要
  • 一、背景介绍
    • 主要工作
  • 二、车辆纵向控制模型
    • 1、纵向运动学模型
    • 2、纵向动力学模型
    • 3、纵向实验模型
  • 三、控制器设计与稳定性分析
    • 1、控制器结构
    • 2、上层控制器设计
    • 3、底层控制器设计
      • (1)前馈控制器设计
      • (2)扩张状态观测器
  • 四、实验与讨论
    • 直道上的速度跟踪
  • 五、结论
  • 参考文献


摘要

  提出了一种基于分层结构的无人地面车辆纵向控制系统。

  上层控制器:引入无终端约束的模型预测控制算法作为上层控制器,计算期望加速度。

  下层控制器:通过建模实验,建立了驱动力表(DFT)来表征车辆的油门开度、速度和驱动力之间的关系。

  此外,为了提高系统的抗干扰能力,提出了一种基于DFT的前馈控制器,将期望加速度转化为期望节气门开度.综合建模误差和外界干扰,设计扩张状态观测器(ESO)进行估计。

  同时,通过严格的证明,保证了无终端约束的预测控制器的递推可行性和稳定性。

  最后,仿真结果校验了所设计控制律的有效性。


一、背景介绍

现有的车辆纵向控制研究按其控制结构可分为两大类:

  • 一类是直接对执行器进行控制,如PID控制器和自抗扰控制器
  • 另一种采用分层结构,其中上层控制器计算期望的加速度,下层控制器调节油门和制动以跟随它

  大多数基于MPC的方法采用分层架构,并将加速度视为高级命令,而较低的控制输入通过经典反馈回路计算。这样的处理在干扰抑制方面是无效的,并且其性能在面对非理想道路条件时变得更差。

主要工作

  • 通过对MPC算法最优解的分析和预测时域的延长,提出了一种无终端约束的MPC算法可行性和稳定性的新方法。
  • 通过建模实验建立了驱动力表,表征动力传动系统的输入输出关系。
  • 提出了一种基于离散傅立叶变换的前馈控制器,并采用扩张状态观测器对模型误差和外部干扰进行估计,提高了系统的精度。

二、车辆纵向控制模型

1、纵向运动学模型

  在将该控制策略应用于车辆纵向调节时,通常将下层控制器和车辆视为底层系统,以简化上层控制器的建模过程。
在这里插入图片描述
  可以用一阶微分方程来描述期望加速度和实际加速度之间的关系
a ˙ ( t ) = − a ( t ) τ + a d e s ( t ) τ \dot{a}(t)=-\frac{a(t)}{\tau}+\frac{a_{des}(t)}{\tau} a˙(t)=τa(t)+τades(t)其中, τ \tau τ 是表征基础系统的动力学的时间常数,反映了系统响应输入变化的速度,即系统达到期望加速度的快慢程度。


  一阶微分方程可以用来描述期望加速度和实际加速度之间的关系,主要是因为这个方程体现了一个动态系统的基本特性:响应时间常数和系统输入输出关系。

详细解释:

  • 时间常数 τ \tau τ:时间常数是系统动力学的一个重要参数,它决定了系统对输入变化的反应速度。具体来说, τ \tau τ越大,系统响应越慢; τ \tau τ越小,系统响应越快。
  • 实际加速度的衰减项 − a ( t ) τ -\frac{a(t)}{\tau} τa(t):这一项表明实际加速度会随着时间的推移而指数衰减,如果没有任何新的输入,系统最终会趋向于期望加速度。
  • 期望加速度的驱动项 a d e s ( t ) τ \frac{a_{des}(t)}{\tau} τades(t):这一项表示系统会根据期望加速度的变化来调整实际的加速度。它表明系统会试图达到期望的加速度,而且这个调整过程受到时间常数 τ \tau τ 的限制。

  将这两项结合起来,方程描述了实际加速度如何动态地追踪期望加速度。当期望加速度改变时,实际加速度会以指数形式逼近这个新的目标值,逼近的速度由 τ \tau τ 决定。


  构造二阶纵向运动学模型:
x ˙ ( t ) = A s x ( t ) + B s u ( t ) y ( t ) = C s x ( t ) \begin{aligned}&\dot{x}(t)=A_sx(t)+B_su(t)\\&y(t)=C_sx(t)\end{aligned} x˙(t)=Asx(t)+Bsu(t)y(t)=Csx(t)  其中
A s = [ 0 1 0 − 1 τ ] , B s = [ 0 1 τ ] , C s = [ 1 0 ] A_s=\begin{bmatrix}0&1\\0&-\frac{1}{\tau}\end{bmatrix}, B_s=\begin{bmatrix}0\\\frac{1}{\tau}\end{bmatrix}, C_s=\begin{bmatrix}1&0\end{bmatrix} As=[001τ1],Bs=[0τ1],Cs=[10]  其中, x ( t ) = [ v ( t ) , a ( t ) ] T x(t)=[v(t), a(t)]^T x(t)=[v(t),a(t)]T是状态向量, y ( t ) y(t) y(t)是测量输出, u ( t ) = a d e s ( t ) u(t)= a_{des}(t) u(t)=ades(t)是控制输入。

  为了便于计算机实现和子序列分析,定义误差向量为 e ( t ) = [ e v ( t ) , e a ( t ) ] T e(t)= [e_v(t),e_a(t)]^T e(t)=[ev(t)ea(t)]T,其中

e v ( t ) = v ( t ) − v r e f ( t ) , e a ( t ) = a ( t ) − a r e f ( t ) e_v(t)=v(t)-v_{ref}(t), e_a(t)=a(t)-a_{ref}(t) ev(t)=v(t)vref(t),ea(t)=a(t)aref(t)
u e ( t ) = u ( t ) − u r e f ( t ) , y e ( t ) = y ( t ) − y r e f ( t ) u_e(t)=u(t)-u_{ref}(t), y_e(t)=y(t)-y_{ref}(t) ue(t)=u(t)uref(t),ye(t)=y(t)yref(t)  转换为误差系统,并将其离散为
e ( k + 1 ) = A e ( k ) + B u e ( k ) y e ( k ) = C e ( k ) \begin{aligned}e(k+1)&=Ae(k)+Bu_e(k)\\y_{e}(k)&=Ce(k)\end{aligned} e(k+1)ye(k)=Ae(k)+Bue(k)=Ce(k)其中
A = [ 1 T 0 1 − T τ ] , B = [ 0 T τ ] , C = [ 1 0 ] A=\begin{bmatrix}1&T\\0&1-\frac T\tau\end{bmatrix}, B=\begin{bmatrix}0\\\frac T\tau\end{bmatrix}, C=\begin{bmatrix}1&0\end{bmatrix} A=[10T1τT],B=[0τT],C=[10]  该纵向运动学模型揭示了车辆的期望加速度与实际加速度之间的关系

2、纵向动力学模型

  在纵向控制过程中,车辆通过发动机的驱动力矩实现加速,通过液压制动系统的制动力矩实现减速。此外,车辆的行驶状态受坡度变化、空气阻力和滚动摩擦等多种因素的影响,受力分析图如图所示
在这里插入图片描述
  根据受力分析图,车辆的纵向动力学模型变为
a ( t ) m = F a l l ( t ) = F x ( t ) − F a i r ( t ) − F s ( t ) − f ( t ) F a i r ( t ) = 1 2 C ρ S v 2 ( t ) f ( t ) = μ G cos ⁡ θ ( t ) F s ( t ) = G sin ⁡ θ ( t ) \begin{aligned} a(t)m& =F_{all}(t)=F_{x}(t)-F_{air}(t)-F_{s}(t)-f(t) \\ F_{air}(t)& =\frac12C\rho Sv^2(t) \\ f(t)& =\mu G\cos\theta(t) \\ F_{s}(t)& =G\sin\theta(t) \end{aligned} a(t)mFair(t)f(t)Fs(t)=Fall(t)=Fx(t)Fair(t)Fs(t)f(t)=21CρSv2(t)=μGcosθ(t)=Gsinθ(t)  其中, m m m 为车辆的总质量, F a l l ( t ) F_{all}(t) Fall(t)为合力, C C C 为空气阻力系数, ρ \rho ρ 为空气密度, S S S 为车辆的迎风面积, μ \mu μ 为滚动摩擦系数。

  纵向动力学模型反映了车辆的实际加速度与合力之间的关系。可以发现,当所需的加速度确定时,可以计算所需的合力。但由于斜坡等外界干扰的存在,合力 F a l l ( t ) F_{all}(t) Fall(t)与驱动力 F x ( t ) F_x(t) Fx(t)不相等,从而影响车辆的真实的加速度。因此,在控制器设计过程中,应该考虑这些干扰并抵消它们。

3、纵向实验模型

  节气门开度是纵向控制的主要控制输入。它决定了发动机的输出扭矩,通过由离合器、变速器、主减速器、差速器等部件组成的动力传动系统影响车辆的驱动力。由于这些结构极其复杂,高度非线性,很难建立精确的数学模型。因此,不再试图开发电力传输系统的精确模型,而仅关注其输入输出关系,该关系可由以下等式表示
F x ( t ) = H ( ϕ ( t ) , v ( t ) ) + h ( t ) F_x(t)=H\left(\phi(t),v(t)\right)+h(t) Fx(t)=H(ϕ(t),v(t))+h(t)  其中, H ( ⋅ ) H(·) H() 代表节气门开度和速度到驱动力的映射关系, h ( t ) h(t) h(t)是其他因素引起的总扰动。对动力传动系统进行了一系列的建模实验,建立了反映车速、油门开度和驱动力之间关系的 DFT 模型。

  需要注意的是,斜率等因素会增加 DFT 的维数,这会大大增加建模过程的难度,降低实时性。因此,在坡度小、风阻小的直路上进行建模实验,并做以下两个假设。

  • 扰动 h ( t ) h(t) h(t)很小,可以忽略,这意味着车辆的驱动力只与车速和节气门开度有关。

  • 在纵向动力模型中,由于路面坡度和风阻力都很小, F a i r ( t ) , f ( t ) F_{air}(t),f(t) Fair(t)f(t) F s ( t ) Fs(t) Fs(t)均取为零。因此,驱动力等于车辆的合力。

  在建模实验中,车辆的节气门开度被归一化,并且要求它在 [ 0 , 0.6 ] [0,0.6] [0,0.6] 范围内变化,因为发现更高的节气门开度的效果几乎相同。

  建立 DFT 所需的变量是车辆的速度、驱动力和节气门开度。速度可以通过惯性测量单元(IMU)获得,而节气门开度通过控制器局域网(CAN)获得。为了获得驱动力,保持油门开度在一个标准值不变,并记录在不同的速度从 IMU 的车辆的加速度。然后,根据公式 a ( t ) m = F a l l ( t ) = F x ( t ) − F a i r ( t ) − F s ( t ) − f ( t ) a(t)m=F_{all}(t)=F_x(t)-F_{air}(t)-F_s(t)-f(t) a(t)m=Fall(t)=Fx(t)Fair(t)Fs(t)f(t),可以计算出合力,该合力等于假设的驱动力。通过同样的方法,可以得到其他节气门开度下的驱动力。得到驱动力表:

在这里插入图片描述
  其 3D 视图如下:
在这里插入图片描述


三、控制器设计与稳定性分析

1、控制器结构

  控制器结构如下:
在这里插入图片描述

  上控制器的核心部分是基于运动学模型的 MPC 算法。其目的是接收参考速度并计算期望加速度 a d e s a_{des} ades。下半部分由 ESO 和前馈控制器组成。

  注意 d ( t ) d(t) d(t) 是由环境和建模误差引起的总干扰,其导致底层系统上的模型失配。因此,发展了ESO,并且 d ( t ) d(t) d(t)表示总扰动的估计。然后,期望加速度将被补偿以获得校正加速度,该校正加速度被传送到前馈控制器以处理干扰。最后,前馈控制器将通过动力学模型计算期望驱动力 F d e s F_{des} Fdes,并将其转换为节气门开度 DFT

2、上层控制器设计

  离散二阶误差系统纵向运动学模型满足以下约束:
∣ e v ( k ) ∣ < V max ⁡ ∣ e a ( k ) ∣ < A max ⁡ ∣ u e ( k ) ∣ < U max ⁡ ∣ u ( k ) ∣ = ∣ u e ( k ) + u r e f ( k ) ∣ < U ˉ max ⁡ \begin{aligned} &|e_{v}(k)|<V_{\max} \\ &|e_{a}(k)|<A_{\max} \\ &|u_{e}(k)|<U_{\max} \\ &|u(k)|=|u_{e}(k)+u_{ref}(k)|<\bar{U}_{\max} \end{aligned} ev(k)<Vmaxea(k)<Amaxue(k)<Umaxu(k)=ue(k)+uref(k)<Uˉmax  通常,车辆的参考速度是阶跃信号,参考控制输入 u r e f u_{ref} uref设置为零。因此,定义

U ^ max ⁡ = min ⁡ ( U max ⁡ , U ˉ max ⁡ , A max ⁡ ) \hat{U}_{\max}=\min(U_{\max},\bar{U}_{\max},A_{\max}) U^max=min(Umax,Uˉmax,Amax)  后两个约束条件转化为 ∣ u e ( k ) ∣ < U ^ m a x |u_{e}(k)|<\hat{U}_{\mathrm{max}} ue(k)<U^max
  如果A、B是可镇定的,则对于闭环控制系统
e ( k + 1 ) = ( A + B K ) e ( k ) e(k+1)=(A+BK)e(k) e(k+1)=(A+BK)e(k)  为全局渐进稳定。
P = ( A + B K ) T P ( A + B K ) + ( C T Q C + K T R K ) P=(A+BK)^TP(A+BK)+(C^TQC+K^TRK) P=(A+BK)TP(A+BK)+(CTQC+KTRK)  MPC代价函数为
J ( k ) = ∑ i = 0 q − 1 ( ∥ y e ( k + i ∣ k ) ∥ Q 2 + ∥ u e ( k + i ∣ k ) ∥ R 2 ) + ∥ e ( k + q ∣ k ) ∥ P 2 \begin{aligned}J(k)&=\sum_{i=0}^{q-1}\left(\left\|y_e(k+i|k)\right\|_Q^2+\left\|u_e(k+i|k)\right\|_R^2\right)+\left\|e(k+q|k)\right\|_P^2\end{aligned} J(k)=i=0q1(ye(k+ik)Q2+ue(k+ik)R2)+e(k+qk)P2  其中, Q Q Q R R R 分别是误差输出和控制输入的加权系数。 ∣ ∣ e ( k + q ∣ k ) ∣ ∣ P 2 ||e(k + q| k)||^2_ P ∣∣e(k+qk)P2是终端成本,P是由(18)计算的加权矩阵。q是控制范围,要求q足够大
( 1 − T τ ) q A max ⁡ < T τ U ^ max ⁡ \left(1-\frac{T}{\tau}\right)^qA_{\max}<\frac{T}{\tau}\hat{U}_{\max} (1τT)qAmax<τTU^max  此外,为保证MPC的递归可行性,预测时域 p p p 应设为 p > q p>q p>q.请注意,延长预测范围将使优化问题复杂化。为了保证预测控制的实时性,本文选用 p = q + 1 p = q + 1 p=q+1。预测范围中的所有误差状态应满足约束。综上所述,如果在时间步 k k k 处,测量车辆的误差状态为 e ( k ) e(k) e(k),则 MPC 算法的优化问题可以表示为:
min ⁡ u e ( k + i ∣ k ) J ( k ) s . t . e ( k ∣ k ) = e ( k ) e ( k + i + 1 ∣ k ) = A e ( k + i ∣ k ) + B u e ( k + i ∣ k ) y e ( k + i + 1 ∣ k ) = C e ( k + i + 1 ∣ k ) e ( k + p ∣ k ) = A e ( k + q ∣ k ) ∣ u e ( k + i ∣ k ) ∣ < U ^ m a x w i t h   i = 0 , 1 , … , q − 1. ∣ e v ( k + j ∣ k ) ∣ < V m a x ∣ e a ( k + j ∣ k ) ∣ < A m a x w i t h   j = 0 , 1 , … , p . \begin{aligned} &\min_{u_{e}(k+i|k)}J(k) \\ s.t. \\ &e(k|k)=e(k) \\ &e(k+i+1|k)=Ae(k+i|k)+Bu_{e}(k+i|k) \\ &y_{e}(k+i+1|k)=Ce(k+i+1|k) \\ &e(k+p|k)=Ae(k+q|k) \\ &|u_{e}(k+i|k)|<\hat{U}_{\mathrm{max}} \\ &with\ i=0,1,\ldots,q-1. \\ &|e_{v}(k+j|k)|<V_{\mathrm{max}} \\ &|e_{a}(k+j|k)|<A_{\mathrm{max}} \\ &with\ j=0,1,\ldots,p. \end{aligned} s.t.ue(k+ik)minJ(k)e(kk)=e(k)e(k+i+1∣k)=Ae(k+ik)+Bue(k+ik)ye(k+i+1∣k)=Ce(k+i+1∣k)e(k+pk)=Ae(k+qk)ue(k+ik)<U^maxwith i=0,1,,q1.ev(k+jk)<Vmaxea(k+jk)<Amaxwith j=0,1,,p.  通过求解上述MPC优化问题,可以获得一系列最优控制输入

U e ∗ ( k ) = [ u e ∗ ( k ∣ k ) u e ∗ ( k + 1 ∣ k ) ⋮ u e ∗ ( k + q − 1 ∣ k ) ] U_e^*(k)=\begin{bmatrix}u_e^*(k|k)\\u_e^*(k+1|k)\\\vdots\\u_e^*(k+q-1|k)\end{bmatrix} Ue(k)= ue(kk)ue(k+1∣k)ue(k+q1∣k)   并且该序列的第一元素被提取作为时间步长 k k k 处的 MPC 算法的输出。

  然后,在时间步长 k + 1 k + 1 k+1,将控制输入的候选序列定义为:

U e ( k + 1 ) = [ u e ( k + 1 ∣ k + 1 ) u e ( k + 2 ∣ k + 1 ) ⋮ u e ( k + q − 1 ∣ k + 1 ) u e ( k + q ∣ k + 1 ) ] = [ u e ∗ ( k + 1 ∣ k ) u e ∗ ( k + 2 ∣ k ) ⋮ u e ∗ ( k + q − 1 ∣ k ) K e ∗ ( k + q ∣ k ) ] U_e(k+1)=\begin{bmatrix}u_e(k+1|k+1)\\u_e(k+2|k+1)\\\vdots\\u_e(k+q-1|k+1)\\u_e(k+q|k+1)\end{bmatrix}=\begin{bmatrix}u_e^*(k+1|k)\\u_e^*(k+2|k)\\\vdots\\u_e^*(k+q-1|k)\\Ke^*(k+q|k)\end{bmatrix} Ue(k+1)= ue(k+1∣k+1)ue(k+2∣k+1)ue(k+q1∣k+1)ue(k+qk+1) = ue(k+1∣k)ue(k+2∣k)ue(k+q1∣k)Ke(k+qk)   其中, K e ∗ ( k + q ∣ k ) Ke^*(k+q|k) Ke(k+qk) 由反馈控制律 u e ( k ) = K e ( k ) u_e(k)= Ke(k) ue(k)=Ke(k)确定。设 K = [ − k , 0 ] K =[−k,0] K=[k0],其中, k = U m a x V m a x k = \frac{U_{max}}{ V_{max}} k=VmaxUmax。预测的误差状态变为:
e ( k + i ∣ k + 1 ) = { e ∗ ( k + i ∣ k ) , i = 1 , 2 , . . . , q ( A + B K ) e ∗ ( k + i − 1 ∣ k ) ,    i = p A e ( k + i − 1 ∣ k + 1 ) ,    i = p + 1 e\left( k+i|k+1 \right) =\left\{ \begin{array}{c} e^*\left( k+i|k \right) ,\quad i=1,2,...,q\\ \left( A+BK \right) e^*\left( k+i-1|k \right) ,\quad \,\,i=p\\ Ae\left( k+i-1|k+1 \right) ,\quad \,\,i=p+1\\ \end{array} \right. e(k+ik+1)= e(k+ik),i=1,2,...,q(A+BK)e(k+i1∣k),i=pAe(k+i1∣k+1),i=p+1

  下图中绘出了时间步长 k k k k + 1 k + 1 k+1 处的解:
在这里插入图片描述

  通过预测模型可知, e v ( k + p ∣ k + 1 ) e_v(k + p| k + 1) ev(k+pk+1)只由 e ( k + q ∣ k + 1 ) e(k + q|k + 1) e(k+qk+1) 决定,且独立于 K e ∗ ( k + q ∣ k ) Ke^*(k + q| k) Ke(k+qk)的范围,因而 e v ( k + p ∣ k + 1 ) e_v(k + p| k + 1) ev(k+pk+1)等于 e v ∗ ( k + p ∣ k ) e^*_v(k + p| k) ev(k+pk)
e a ( k + p ∣ k + 1 ) = ( 1 − T τ ) e a ( k + q ∣ k + 1 ) + T τ K e ∗ ( k + q ∣ k ) ≤ ( 1 − T τ ) A max ⁡ + T τ U ^ max ⁡ e a ( k + p + 1 ∣ k + 1 ) = ( 1 − T τ ) e a ( k + p ∣ k + 1 ) \begin{aligned} e_a\left( k+p|k+1 \right) &=\left( 1-\frac{T}{\tau} \right) e_a\left( k+q|k+1 \right) +\frac{T}{\tau}Ke^*\left( k+q|k \right)\\ &\leq \left( 1-\frac{T}{\tau} \right) A_{\max}+\frac{T}{\tau}\hat{U}_{\max}\\ e_a\left( k+p+1|k+1 \right) &=\left( 1-\frac{T}{\tau} \right) e_a\left( k+p|k+1 \right)\\ \end{aligned} ea(k+pk+1)ea(k+p+1∣k+1)=(1τT)ea(k+qk+1)+τTKe(k+qk)(1τT)Amax+τTU^max=(1τT)ea(k+pk+1)

3、底层控制器设计

(1)前馈控制器设计

  基于前面的讨论,车辆的动态模型可以简化为
a ( k ) m = F a l l ( k ) = F x ( k ) a(k)m=F_{all}(k)=F_x(k) a(k)m=Fall(k)=Fx(k)  而车辆的驱动力、节气门开度和速度之间的关系变为
F x ( k ) = H ( ϕ ( k ) , v ( k ) ) F_x(k)=H\left(\phi(k),v(k)\right) Fx(k)=H(ϕ(k),v(k))  当给出校正加速度 a ˉ d e s ( k ) \bar{a}_{des}\left( k \right) aˉdes(k)时,可以计算期望驱动力 F d e s ( k ) F_{des}(k) Fdes(k)。然后,使用 DFT 上的线性插值,可以得到期望的节气门开度,并将其传输到车辆。因此,前馈控制器可以设计为: F d e s ( k ) = a ˉ d e s ( k ) m ϕ ( k ) = H ^ ( F d e s ( k ) , v ( k ) ) \begin{aligned}F_{des}(k)&=\bar{a}_{des}(k)m\\\phi(k)&=\hat{H}\left(F_{des}(k),v(k)\right)\end{aligned} Fdes(k)ϕ(k)=aˉdes(k)m=H^(Fdes(k),v(k))  其中, Δ H ( ⋅ ) Δ H(·) ΔH() 表示驱动力和速度到节气门开度的映射,该映射可以通过 DFT 上的线性插值得到

(2)扩张状态观测器

  注意,车辆的理想运动学模型被视为 MPC 的预测模型。然而,在基础系统中存在两种类型的不可忽略的问题,即,DFT 的建模误差和主要由路面坡度引起的外界干扰。在它们的共同影响下,运动学模型的输入输出关系变得更加复杂。因此,考虑总扰动后的表达式转变为
a ˙ ( t ) = − a ( t ) τ + a d e s ( t ) τ + d ( t ) \dot{a}(t)=-\frac{a(t)}{\tau}+\frac{a_{des}(t)}{\tau}+d(t) a˙(t)=τa(t)+τades(t)+d(t)  其中, d ( t ) d(t) d(t) 表示总干扰,其对上层控制器具有显著影响。因此,设计了 ESO 来估计 d ( t ) d(t) d(t),其离散形式为:
e s o a ( k ) = a ( k ) − a ^ ( k ) a ^ ( k + 1 ) = ( 1 − T τ ) a ^ ( k ) + T ( a d e s ( k ) τ + d ^ ( k ) + l 1 e s o a ( k ) ) d ^ ( k + 1 ) = d ^ ( k ) + T l 2 e s o a ( k ) \begin{aligned} eso_{a}(k)&=a(k)-\hat a(k) \\ \hat{a}(k+1)&=(1-\frac{T}{\tau})\hat{a}(k)+T\left(\frac{a_{des}(k)}{\tau}+\hat{d}(k)+l_{1}eso_{a}(k)\right) \\ \hat{d}(k+1)&=\hat{d}(k)+Tl_2eso_a(k) \end{aligned} esoa(k)a^(k+1)d^(k+1)=a(k)a^(k)=(1τT)a^(k)+T(τades(k)+d^(k)+l1esoa(k))=d^(k)+Tl2esoa(k)  其中, a ^ ( k ) \hat{a}(k) a^(k)是估计的加速度, e s o a ( k ) eso_a(k) esoa(k) 表示 a ( k ) a(k) a(k) a ^ ( k ) \hat{a}(k) a^(k) 之间的误差, d ^ ( k ) \hat{d}(k) d^(k) 表示 d ( k ) d(k) d(k) 的估计, l 1 l_1 l1 l 2 l_2 l2ESO 的参数。

  通过估计 d ( k ) d(k) d(k),可以将来自上控制器的期望加速度修改为:
a ˉ d e s ( k ) = a d e s ( k ) − τ d ^ ( k ) \bar{a}_{des}(k)=a_{des}(k)-\tau\hat{d}(k) aˉdes(k)=ades(k)τd^(k)  因此运动学模型转变为:
a ˙ ( t ) = − a ( t ) τ + a ˉ d e s ( t ) τ + d ( t ) = − a ( t ) τ + a d e s ( t ) τ + d ( t ) − d ^ ( k ) \begin{aligned} \dot{a}(t)& =-\frac{a(t)}\tau+\frac{\bar{a}_{des}(t)}\tau+d(t) \\ &=-\frac{a(t)}{\tau}+\frac{a_{des}(t)}{\tau}+d(t)-\hat{d}(k) \end{aligned} a˙(t)=τa(t)+τaˉdes(t)+d(t)=τa(t)+τades(t)+d(t)d^(k)


四、实验与讨论

  实验平台如下:
在这里插入图片描述
  包括一个全球定位系统(GPS),一个惯性测量单元(IMU),两个GPS接收器,一个光探测和测距(LiDAR),一个相机,一个工业个人计算机(IPC),一个油门,一个刹车和一个方向盘。

  在工控机上建立了基于机器人操作系统(ROS)的软件框架。如下图所示:
在这里插入图片描述
  环境感知模块通过“/GPS_IMU”“/LiDAR”“/Camera”接收关于周围环境的信息。决策规划模块规划参考速度并通过'/Planning_io'将其传送到运动控制模块。然后,运动控制模块设计纵向控制策略,并将其部署在“/Loncveil”中,将计算得到的节气门开度传输到“/车辆_CAN”(车辆的控制器局域网)中。基于MPC的纵向控制器与 DFT 的车辆上实现。状态反馈增益设计为:
K = [ − 0.25 , 0 ] K=\begin{bmatrix}-0.25,&0\end{bmatrix} K=[0.25,0]  并且终端加权矩阵变为
P = [ 451.64 145.28 145.28 51.19 ] P=\begin{bmatrix}451.64&145.28\\[0.3em]145.28&51.19\end{bmatrix} P=[451.64145.28145.2851.19]

  在实验现场进行了三种情况下的实验,以验证所提出的控制器的性能:
在这里插入图片描述

直道上的速度跟踪

  该案例主要验证了所提出的控制器对不同速度的跟踪能力。在实验中,车辆在直路上行驶。参考速度首先从 0 m / s 0 m/s 0m/s 跳到 3 m / s 3 m/s 3m/s,一段时间后变为 5 m / s 5 m/s 5m/s。为了使对比效果更加明显,三个控制器的跟踪曲线在时间轴上对齐,并显示在同一个图中。

  这些控制器的速度跟踪结果如图所示:
在这里插入图片描述
  实验结果表明,该控制器在整个实验过程中均取得了令人满意的控制效果,而传统的MPC控制器存在调节时间长、超调量大等缺点。此外,由于 PID 控制器是无模型控制器,对参考信号的变化比较敏感,在跟踪不同速度时,其效果会有所下降。下图显示了不同控制器下车辆的节气门开度。
在这里插入图片描述

  该控制器能使车辆在加速过程中获得较大的节气门开度,在接近参考速度时节气门开度迅速减小,从而提高了车辆的性能。另外两个控制器的节气门开度调节慢,效果不好。ESO 的估计扰动如图所示:
在这里插入图片描述

  可以看到,当车辆加速时,底层系统的真实的模型与理想模型有很大的误差。下位控制器通过修正期望加速度来消除该误差的影响,从而提高控制性能。


五、结论

本文提出了一种用于车辆纵向控制的分层体系结构:

  • 建立了描述其纵向特性的运动学模型、动力学模型和实验模型。
  • 提出了一种 MPC 算法作为上层控制器计算期望加速度,并推导了该算法在不使用终端约束的情况下的递推可行性和稳定性。
  • 提出了一种基于动态模型和离散傅里叶变换的前馈控制器,以获得期望的节气门开度。
  • 设计了一个 ESO 来估计总的干扰。

  总体控制策略已在无人车平台上成功部署。最后,以直线路面、起伏路面和斜坡路面为例进行了对比实验,仿真结果表明所提控制器的有效性和优越性。


参考文献

   Y. Wang, Y. Deng, H. Wang, Z. Zuo and H. Yang, “Terminal Constraint-Free Model Predictive Longitudinal Control for Unmanned Ground Vehicles With Driving Force Table,” in IEEE Transactions on Vehicular Technology, vol. 72, no. 3, pp. 3051-3062, March 2023, doi: 10.1109/TVT.2022.3221551.


后记:

🌟 感谢您耐心阅读这篇关于 基于驱动力表的无人车终端无约束预测纵向控制 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

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

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

相关文章

ElasticSearch学习笔记(六)自动补全、拼音分词器、RabbitMQ实现数据同步

文章目录 前言11 自动补全11.1 拼音分词器11.2 自定义分词器11.3 自动补全查询 12 数据同步12.1 实现方案12.1.1 同步调用12.1.2 异步通知12.1.3 监听binlog 12.2 异步通知实现数据同步12.2.1 声明交换机和队列12.2.2 发送MQ消息12.2.3 接收MQ消息并操作ES 前言 ElasticSearch…

数据结构————单向链表

头插&#xff1a; 尾插&#xff1a; 头删&#xff1a; 尾删&#xff1a;

一种常用嵌入式开发代码库

链接&#xff1a;https://gitee.com/zhangxinyuanqi/varch 使用开源协议&#xff1a;GPL-2.0 varch简介 varch&#xff08;we-architecture&#xff0c;意为我们的框架库&#xff09;是嵌入式C语言常用代码模块库&#xff0c;包含了嵌入式中常用的算法库, 数据结构&#xff…

JPA关联MyBatis

3.1 JPA 多表查询 多表查询在 Spring Data JPA 中有两种实现方式&#xff0c;第一种是创建一个结果集的接口来接受多表连接查询后的结果&#xff0c;第二种是利用 JPA 的关联映射来实现 3.1.1 数据库表及关系 CRM 数据库中除 sys_user(用户)表外&#xff0c;还包括sys_role(角…

触想内嵌式工业一体机应用于智能检票机改善旅游体验

一、行业发展背景 每年下半年&#xff0c;暑假、中秋、国庆总是接踵而至&#xff0c;随之而来的出游高峰一波接一波。凶猛需求之下&#xff0c;各地景区、游乐园客流压力加大&#xff0c;特别在检票环节&#xff0c;人工检票效率低、秩序混乱&#xff0c;导致常常出现检票口人山…

POL(Point-of-Load)负载点电源

负载点&#xff08;POL&#xff09;电源在靠近负载处单独放置电源调节器(线性稳压器或DC-DC)&#xff0c;解决了高性能半导体器件&#xff0c;例如&#xff1a;微控制器、ASIC等&#xff0c;所面临的高峰值电流、低噪声裕量等设计挑战。 一般我们会把负载点电源尽量靠近负载放…

乾元通多卡聚合技术在无人配送车应用领域通信保障方案

在无人驾驶公交车、安防车、售卖车、清扫车相继亮相后&#xff0c;无人配送车在全国各地也陆续“上岗”&#xff0c;为我们的城市带来了与众不同的“智慧体验”&#xff0c;让城市有了“科技温度”。 无人配送车在营业部装载好快递后&#xff0c;会按照提前规划好的路线出发&a…

sqli-labs靶场通关攻略 61-65

主页有sqli-labs靶场通关攻略 1-60 第六一关 less-61 步骤一&#xff1a;闭合方式&#xff1a;?id1)) -- 步骤二&#xff1a;查询数据库 ?id1)) and updatexml(1,concat(1,database()),1) -- 步骤三&#xff1a;查出网站的数据库表名 ?id1)) and updatexml(1,concat(0x7e…

15 用户管理

如果我们只能使用root用户&#xff0c;这样存在安全隐患。这时&#xff0c;就需要使用mysql的用户管理 张三只能操纵mytest这个库&#xff0c;李四只能操纵msg这个库&#xff0c;如果给他们root账户&#xff0c;就可以操纵所有库&#xff0c;风险太大 用户 用户信息 用户都存…

项目技巧三

目录 我们现在要实现一个接口功能 1.我们先书写sql语句 2.编写接口 3.书写业务逻辑 4.书写mapper 结果&#xff1a; 缺点&#xff1a;没有根据涨跌幅区间的大小来排序 1.yml文件 2.在value object包下映射这个yml文件 3.开启这个配置类进行映射&#xff0c;并把它交给s…

勒索攻击后快速恢复的八个关键步骤,如何避免被勒索攻击

勒索软件攻击依然是当今企业面临的最大安全威胁之一。根据德迅云安全收集的报告&#xff0c;59%的企业在2023年遭遇了勒索软件攻击&#xff0c;其中56%的受害者最终选择支付赎金以恢复数据。更为严重的是&#xff0c;63%的勒索金额达到或超过了100万美元&#xff0c;平均支付金…

RS232转RS485

1.232转485转换器 232转485转换器是RS-232与RS-485之间的双向接口的转换器&#xff0c;应用于主控机之间&#xff0c;主控机与单片机或外设之间构成点到点&#xff0c;点到多点远程多机通信网络&#xff0c;实现多机应答通信&#xff0c;广泛地应用于工业自动化控制系统&#x…

免费申请aws一年免费服务器使用教程

由于近期要测试一个公网项目&#xff0c;对比之下&#xff0c;选择了aws服务器&#xff0c;免费使用一年。 准备&#xff1a;一个visa信用卡即可&#xff0c;需要一个外网邮箱&#xff08;我这边使用的hotmail&#xff09; 注册的步骤不再赘述&#xff0c;切记几个点&#xff0…

windows 环境下安装OpenCV For Java

windows 环境下安装OpenCV For Java 进入官网下载对应安装包 opencv官网地址&#xff1a; https://opencv.org/releases/ source里面是官方的xml文件&#xff0c;包含人脸识别 windows下载下来是一个exe文件&#xff0c;里面包含项目需要的jar包 执行opencv-4.9.0-windows.ex…

被低估的SQL

SQL是现代数据库管理系统中不可或缺的一部分。尽管它的使用已十分普遍&#xff0c;但在数据处理领域&#xff0c;SQL的某些功能和潜力仍然被许多人低估。接下来&#xff0c;小编将与您一起&#xff0c;探讨SQL的一些被忽视的特性&#xff0c;揭示它在数据管理中的真正实力。 1.…

《深度学习》OpenCV轮廓检测 轮廓近似、模板匹配 解析及实现

一、轮廓近似 1、什么是轮廓近似 指对轮廓进行逼近或拟合&#xff0c;得到近似的轮廓。在图像处理中&#xff0c;轮廓表示了图像中物体的边界&#xff0c;因此轮廓近似可以用来描述和识别物体的形状。 2、参数解析 1&#xff09;用法 import cv2 approx cv2.approxPolyDP(cu…

Java SpringBoot构建助农平台,三步实现高效捐赠,2025届设计新思路!

✍✍计算机毕业编程指导师** ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java…

如何应对 Android 面试官 -> 内存如何进行优化?玩转 LeakCanary

前言 本章主要围绕内存相关的知识点讲解&#xff1b; 内存分配 在内存优化中&#xff0c;我们通常需要借助一些常用的 adb 命令&#xff0c;方便我们快速定位&#xff0c;下面是一些常用的 adb 命令总结 常用 adb 命令 adb shell getprop ro.product.model // 手机型号adb s…

HTTP“请求”和“响应”的报头及正文详解

目录 一、请求 "报头" (header) 二、请求 "正文" (body) 2.1 application/x-www-form-urlencoded 2.2 multipart/form-data 2.3 application/json 三、HTTP 响应状态码 四、响应 "报头" (header) 五、响应 "正文" (body) 5.1…

如何设置Word文档部分内容无法编辑?

工作中&#xff0c;我们可能会在word中制作一些请柬、表格之类的&#xff0c;有些文件内容不想要进行修改&#xff0c;为了防止他人随意修改内容。我们可以设置限制编辑&#xff0c;可以对一部分内容设置限制编辑&#xff0c;具体方法如下&#xff1a; 我们将需要将可以编辑的…