PID(Proportional-Integral-Derivative)控制是一种经典的反馈控制算法,通常用于稳定性和响应速度要求不是特别高的控制系统。PID控制基于三个主要组成部分:比例项(P),积分项(I),和微分项(D)。比例项根据当前误差来产生控制输出,积分项处理历史误差的总和,微分项处理误差变化的速度。PID控制通常通过多次试验、调整参数来实现,通过对PID参数的调节进而改善系统的性能,如稳定性、超调和振荡等。
PID控制算法的控制输出计算如下:
u
(
t
)
=
K
p
⋅
e
(
t
)
+
K
i
⋅
∫
0
t
e
(
τ
)
d
τ
+
K
d
⋅
d
e
(
t
)
d
t
u(t) = K_p\cdot e(t) + K_i \cdot \int_0^t e(\tau)d\tau + K_d \cdot \frac{de(t)}{dt}
u(t)=Kp⋅e(t)+Ki⋅∫0te(τ)dτ+Kd⋅dtde(t)
其中, u ( t ) u(t) u(t)是控制输出, K p K_p Kp、 K i K_i Ki和 K d K_d Kd分别是比例、积分和微分系数, e ( t ) e(t) e(t)是当前误差, d e ( t ) d t \frac{de(t)}{dt} dtde(t)是误差的变化率。
PID控制对于线性系统和某些非线性系统非常有效,但不适用于所有类型的系统,而且它需要多次试验不断调參才能满足系统性能要求。对于一些复杂系统,更高级控制策略可能更为合适。
LQR(Linear Quadratic Regulator)控制算法是一种用于线性系统的最优控制方法,旨在寻找一种最优的控制策略,以最小化一个线性二次性能指标。LQR控制输入是系统状态的线性组合以及反馈信号,输出控制信号。它可以用于稳态和动态控制以及应用于多变量系统,通过权重矩阵调整性能指标,以满足特定需求。LQR的设计需要系统的状态空间模型和性能指标,通常使用状态反馈来调整系统行为,并可以提供最优的控制输入,使系统稳定并满足性能要求。
然而,LQR控制也有一些限制,主要是它要求系统是线性的,且系统参数必须是已知的。对于非线性系统或具有参数不确定性的系统,可能需要使用其他控制策略,如模型预测控制(MPC)。
MPC(Model Predictive Control)控制算法是一种先进的模型预测控制策略,通常用于复杂、非线性、时变和多变量系统。MPC的核心思想是在每个时刻基于系统数学模型对未来的系统行为进行预测,并通过优化来选择最优的控制输入序列,以满足性能和约束要求。MPC允许系统在考虑约束条件下实时调整控制策略,以满足性能和操作限制,它处理复杂系统和需要考虑多种约束的情况下非常有效。
然而,MPC控制算法需要较强的计算能力,因为它涉及到在线优化问题的求解。而且它对系统模型的准确性要求较高,可能需要对控制器的参数进行精细调整以实现所需的性能。
自动驾驶控制往往是横纵向解耦控制,横向控制器一般采用LQR算法,而纵向控制器一般采用PID算法,下面将详细介绍横纵向控制。
横向控制的输入车辆位置(定位信息)、车身参数信息(底盘信息)和规划轨迹,它主要通过改变方向盘扭矩或转角等进而控制车辆的前轮转角,使车辆按照规划的路径行驶。如下图所示,横向控制主要由前馈开环控制器和反馈闭环控制器构成。
纵向控制的输入为规划的位置、速度和加速度,它主要为速度控制,通过控制刹车和油门等实现对车速的控制,如下图所示,纵向控制主要由两个闭环控制和一个开环控制组成。