
飞行控制系统中,LQR、滑模控制、模型预测控制等先进算法各有侧重,选择需结合系统线性化程度、鲁棒性需求与实时性要求:LQR适合线性小扰动下的最优稳定,滑模控制对参数变化和干扰鲁棒,模型预测控制适合多约束复杂场景,具体选择需权衡算法复杂度与系统性能需求。
| 算法 | 定义与原理 | 特性 | 适用场景 | 注意点 |
|---|---|---|---|---|
| LQR | 线性二次型最优控制,求解Riccati方程得到状态反馈增益,最小化二次型性能指标。 | 线性化后最优,计算简单,对系统参数变化敏感(需重计算)。 | 线性系统小扰动下的稳定控制(如固定翼飞机的俯仰/滚转控制,假设系统线性化)。 | 需系统严格线性化,非线性系统需近似线性化,可能不适应大范围参数变化。 |
| 滑模控制 | 设计切换面,通过符号函数实现状态强制滑动,保持稳定。 | 对参数变化、外部干扰鲁棒,结构简单,但存在抖振(高频振荡)。 | 非线性系统、参数不确定或存在外部干扰的场景(如无人机突风下的姿态控制)。 | 抖振问题需抑制(如边界层滑模、饱和滑模),计算量小但控制输入可能突变。 |
| 模型预测控制 | 基于系统模型预测未来状态,优化控制序列(如最小化预测误差+控制输入变化)。 | 预测性、多约束处理能力强,实时性要求高(需快速计算)。 | 多约束系统(如燃料消耗、速度限制)、预测性强的复杂场景(如无人机航路规划)。 | 需实时预测能力,计算复杂度随预测步数增加,需平衡预测步长与实时性。 |
# 线性二次型调节器(LQR)伪代码
def lqr(A, B, Q, R):
# A: 系统矩阵,B: 控制矩阵,Q: 状态加权矩阵,R: 控制加权矩阵
P = solve_riccati(A, B, Q, R) # 求解Riccati方程得到增益矩阵P
K = A.T @ P @ B + R # 计算状态反馈增益K
return K
# 控制律实现
def control_law(x, K):
u = -K @ x # 控制输入
return u
(注:实际中需用线性化模型,如固定翼飞机的线性化状态方程:(x = [\alpha, q, \theta, v, \phi, p, \psi]^T),控制输入为副翼、升降舵等,通过LQR计算增益矩阵,实现姿态稳定。)
“面试官您好,关于飞行控制系统中除PID外的先进算法,核心结论是:LQR、滑模控制、模型预测控制各有侧重,选择需结合系统线性化程度、鲁棒性需求。具体来说,LQR通过线性二次型最优控制,适合线性小扰动下的最优稳定,比如固定翼飞机的俯仰控制(假设系统线性化后);滑模控制通过切换面设计,对参数变化和干扰鲁棒,适合非线性系统(如无人机突风下的姿态控制),但存在抖振问题;模型预测控制基于预测未来状态优化控制序列,适合多约束复杂场景(如航路规划中的速度、燃料限制)。选择时,比如对于线性系统且需快速收敛,选LQR;若系统非线性且需抗干扰,选滑模;若多约束且需预测性,选MPC。比如我们项目中的固定翼飞机,采用LQR实现俯仰稳定,因为系统线性化后,LQR能最小化控制输入能量,快速收敛到平衡点。而无人机在复杂环境中,结合滑模控制增强鲁棒性,同时用MPC优化航路规划,平衡速度与燃料消耗。”