写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。
🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。
👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花!
📚 系列专栏:【文献精读】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!
🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~
文章目录
摘要
提出了一种基于分层结构的无人地面车辆纵向控制系统。
上层控制器:引入无终端约束的模型预测控制算法作为上层控制器,计算期望加速度。
下层控制器:通过建模实验,建立了驱动力表(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)∣<Vmax∣ea(k)∣<Amax∣ue(k)∣<Umax∣u(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=0∑q−1(∥ye(k+i∣k)∥Q2+∥ue(k+i∣k)∥R2)+∥e(k+q∣k)∥P2 其中,
Q
Q
Q 和
R
R
R 分别是误差输出和控制输入的加权系数。
∣
∣
e
(
k
+
q
∣
k
)
∣
∣
P
2
||e(k + q| k)||^2_ P
∣∣e(k+q∣k)∣∣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+i∣k)minJ(k)e(k∣k)=e(k)e(k+i+1∣k)=Ae(k+i∣k)+Bue(k+i∣k)ye(k+i+1∣k)=Ce(k+i+1∣k)e(k+p∣k)=Ae(k+q∣k)∣ue(k+i∣k)∣<U^maxwith i=0,1,…,q−1.∣ev(k+j∣k)∣<Vmax∣ea(k+j∣k)∣<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∗(k∣k)ue∗(k+1∣k)⋮ue∗(k+q−1∣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+q−1∣k+1)ue(k+q∣k+1)
=
ue∗(k+1∣k)ue∗(k+2∣k)⋮ue∗(k+q−1∣k)Ke∗(k+q∣k)
其中,
K
e
∗
(
k
+
q
∣
k
)
Ke^*(k+q|k)
Ke∗(k+q∣k) 由反馈控制律
u
e
(
k
)
=
K
e
(
k
)
u_e(k)= Ke(k)
ue(k)=Ke(k)确定。设
K
=
[
−
k
,
0
]
K =[−k,0]
K=[−k,0],其中,
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+i∣k+1)=⎩
⎨
⎧e∗(k+i∣k),i=1,2,...,q(A+BK)e∗(k+i−1∣k),i=pAe(k+i−1∣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+p∣k+1)只由
e
(
k
+
q
∣
k
+
1
)
e(k + q|k + 1)
e(k+q∣k+1) 决定,且独立于
K
e
∗
(
k
+
q
∣
k
)
Ke^*(k + q| k)
Ke∗(k+q∣k)的范围,因而
e
v
(
k
+
p
∣
k
+
1
)
e_v(k + p| k + 1)
ev(k+p∣k+1)等于
e
v
∗
(
k
+
p
∣
k
)
e^*_v(k + p| k)
ev∗(k+p∣k)。
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+p∣k+1)ea(k+p+1∣k+1)=(1−τT)ea(k+q∣k+1)+τTKe∗(k+q∣k)≤(1−τT)Amax+τTU^max=(1−τT)ea(k+p∣k+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
l2 是 ESO 的参数。
通过估计
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 来估计总的干扰。
总体控制策略已在无人车平台上成功部署。最后,以直线路面、起伏路面和斜坡路面为例进行了对比实验,仿真结果表明所提控制器的有效性和优越性。
参考文献
后记:
🌟 感谢您耐心阅读这篇关于 基于驱动力表的无人车终端无约束预测纵向控制 的技术博客。 📚
🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢
🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀
🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡
🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀