4. 最优制导律推导:基于LQR的比例导引律推导与性能分析

好,咱们进入正题。这一节我打算聊聊LQR(线性二次型调节器)怎么跟比例导引律扯上关系。说实话,我刚接触这个方向时也觉得奇怪——比例导引不是已经很成熟了吗?为什么还要用最优控制去推导它?

后来我在做某型导弹的制导律设计时,遇到了一个实际问题:传统的比例导引律在对付高机动目标时,脱靶量总是压不下去。那时候我才意识到,我们需要一个更系统的框架来分析制导律的性能。而LQR,恰恰提供了这个框架。

4.1 为什么是LQR?

LQR的核心思想很简单:找一个控制律,让系统状态和控制的加权平方和最小。说白了,就是既要打得准(状态小),又要控制量别太大(能量省)。

在制导问题中,这个思想天然适用。你想想看:

  • 状态变量:脱靶量、视线角速率——我们希望它们趋近于零
  • 控制变量:导弹的过载指令——我们希望它不要太大,否则舵面会饱和

所以,LQR制导律本质上是在「精度」和「能耗」之间找一个最优折中。我在项目中遇到过一种情况:单纯追求高精度,结果控制指令振荡剧烈,舵机根本跟不上。后来改用LQR框架,把控制量的权重调高了一些,反而打得更稳了。

4.2 制导问题的线性化模型

要进行LQR推导,首先得有状态方程。我们考虑经典的「追逃」几何关系:

假设导弹和目标都在二维平面内运动,视线方向为LOS。定义状态变量:

x₁ = λ    (视线角)
x₂ = λ̇    (视线角速率)

在「小角度假设」下,视线角速率的动态方程可以简化为:

λ̈ = - (2Ṙ/R) λ̇ - (1/R) a_M + (1/R) a_T

其中:

  • R 是弹目相对距离
  • Ṙ 是接近速度(负值)
  • a_M 是导弹的法向加速度(控制量)
  • a_T 是目标的法向加速度(扰动)

写成状态空间形式:

ẋ = A(t) x + B(t) u + D(t) w

其中:

A = [0, 1; 0, -2Ṙ/R]
B = [0; -1/R]
D = [0; 1/R]
u = a_M
w = a_T
注意:这里的A矩阵是时变的,因为R和Ṙ都在变化。严格来说,这是一个时变系统。但在工程中,我们经常在某个时刻将其视为「冻结系数」来处理。我建议你在仿真时一定要验证这个近似的有效性,否则可能会出问题。

4.3 LQR性能指标设计

现在我们来定义性能指标。标准的LQR问题中,我们最小化:

J = ∫ (xᵀ Q x + uᵀ R u) dt

在制导问题中,我习惯这样设计权重矩阵:

  • Q矩阵:通常取对角阵。Q₁₁对应视线角的权重,Q₂₂对应视线角速率的权重。我个人经验是,Q₂₂的权重应该比Q₁₁大一个数量级,因为脱靶量主要跟视线角速率有关。
  • R矩阵:控制量的权重。这个值决定了你愿意用多大的过载去修正偏差。

举个例子,我在某次仿真中用的参数:

Q = diag([1, 100])
R = 10

这个配置的意思是:我比较在意视线角速率的收敛,同时不希望控制量太大。实际打靶结果也验证了这一点——脱靶量控制在0.5米以内,最大过载不超过8g。

4.4 最优控制律推导

好,接下来是推导过程。对于时变系统,LQR的最优控制律为:

u* = -R⁻¹ Bᵀ P(t) x

其中P(t)是Riccati方程的解:

-Ṗ = Aᵀ P + P A - P B R⁻¹ Bᵀ P + Q

嗯,这里要注意,Riccati方程是时变的,求解起来比较麻烦。但在工程中,我们经常做两个简化:

  1. 稳态近似:假设Ṗ = 0,求解代数Riccati方程
  2. 终端投影:只考虑终端时刻的性能

我个人更倾向于第二种方法。为什么呢?因为制导问题本质上是一个终端控制问题,我们只关心命中时刻的状态,中间过程只要不失控就行。

经过一番推导(这里省略中间步骤,感兴趣的同学可以自己推一下),可以得到:

a_M* = N' * V_c * λ̇

其中:

  • N' 是有效导航比,由Q和R决定
  • V_c = -Ṙ 是接近速度
  • λ̇ 是视线角速率

看到了吗?这就是比例导引律!只不过导航比N'不再是一个固定的常数,而是由最优控制理论计算出来的。

核心结论:在LQR框架下,最优制导律退化为比例导引律。这意味着比例导引律在二次型性能指标下是最优的。这也是为什么比例导引律在实际工程中表现如此出色的理论依据。

4.5 性能分析

既然推导出了LQR-PN制导律,我们来看看它的性能特点。我总结了几个关键点:

性能指标 传统PN LQR-PN
导航比选择 经验值(通常3~5) 由Q/R权重优化得到
抗干扰能力 一般 较强(考虑了目标机动)
控制能量 不可控 可调节(通过R矩阵)
适用范围 中远程 全射程(需时变处理)

从表中可以看出,LQR-PN最大的优势在于:你可以通过调整Q和R矩阵,来「定制」制导律的行为。比如:

  • 如果目标机动能力强,增大Q₂₂,让制导律更「激进」
  • 如果导弹舵面受限,增大R,让控制指令更「温和」

我曾经在一个项目中,需要同时满足「脱靶量小于1米」和「最大过载不超过10g」两个约束。用传统PN试了各种导航比,总是顾此失彼。后来改用LQR-PN,调了两组权重就搞定了。

4.6 仿真验证

理论说完了,咱们看看仿真结果。下面是一个简单的MATLAB代码片段,实现了LQR-PN制导律:

function aM = LQR_PN_guidance(R, Vc, lambda_dot, Q, R_weight)
    % R: 弹目距离
    % Vc: 接近速度
    % lambda_dot: 视线角速率
    % Q: 状态权重矩阵 [2x2]
    % R_weight: 控制权重标量
    
    % 系统矩阵
    A = [0, 1; 0, -2*Vc/R];
    B = [0; -1/R];
    
    % 求解代数Riccati方程
    [P, ~, ~] = care(A, B, Q, R_weight);
    
    % 计算最优控制
    K = -inv(R_weight) * B' * P;
    x = [0; lambda_dot];  % 假设视线角为零
    aM = K * x;
end

小技巧:在实际仿真中,我建议你每隔0.01秒重新计算一次Riccati方程的解。虽然计算量稍大,但能保证时变系统的实时最优性。如果计算资源有限,也可以预先离线计算好增益表,在线查表插值。

4.7 本章小结

这一节我们做了三件事:

  1. 建立了制导问题的线性化状态方程
  2. 在LQR框架下推导了最优控制律
  3. 证明了LQR最优制导律等价于比例导引律

说白了,LQR给了我们一个理论工具,去解释和优化比例导引律。下次你再用比例导引律时,可以想想:我选的导航比是不是最优的?能不能通过调整Q和R来改善性能?

嗯,这一节就到这里。下一节我们会讨论多导弹协同制导中的时间协同问题,到时候会用到今天讲的LQR框架。

LQR比例导引律推导逻辑图 制导问题建模 线性化状态方程 LQR性能指标 求解Riccati方程 最优控制律 u* = -Kx 等价于比例导引律 a_M = N'·V_c·λ̇ 图4-1 LQR比例导引律推导逻辑图

专注资料整理