第二章:坐标系与运动学
各位同学,今天我们来聊聊导弹制导里最基础、也最绕不开的一块内容——坐标系与运动学。
说实话,我刚入行那会儿,觉得坐标系这东西太简单了,不就是X、Y、Z三个轴嘛。直到第一次做半实物仿真,导弹飞出去姿态全乱套了,我才意识到——坐标系没搞对,后面全是白干。所以这一章,我建议大家沉下心来,把基础打牢。
2.1 常用坐标系定义
导弹在空中飞,我们得用不同的“视角”去看它。每种坐标系都有自己的用途。我个人习惯把坐标系分成三类:
- 地面坐标系(地固系):原点在地面某点,X轴指向北(或东),Z轴指向地心。说白了,就是站在地面上看导弹往哪飞。
- 弹体坐标系(体轴系):原点在导弹质心,X轴沿弹体纵轴向前,Y轴在对称平面内向上。这个坐标系跟着导弹一起转,用来描述导弹自身的姿态。
- 速度坐标系(航迹系):原点也在质心,但X轴沿着速度方向。你想想看,这个坐标系最直观——导弹往哪飞,X轴就指向哪。
核心要点:地面系是“绝对参考”,弹体系是“自身参考”,速度系是“运动参考”。三个坐标系之间的转换,就是导弹运动学的全部秘密。
2.2 坐标变换方法
坐标变换,说白了就是“旋转”。我经常跟团队里的年轻人说:你只要记住三个基本旋转矩阵,剩下的就是乘来乘去。
绕X轴旋转角度φ:
R_x(φ) = [1 0 0 ]
[0 cosφ -sinφ ]
[0 sinφ cosφ ]
绕Y轴旋转角度θ:
R_y(θ) = [ cosθ 0 sinθ ]
[ 0 1 0 ]
[-sinθ 0 cosθ ]
绕Z轴旋转角度ψ:
R_z(ψ) = [cosψ -sinψ 0 ]
[sinψ cosψ 0 ]
[ 0 0 1 ]
嗯,这里要注意:旋转顺序不能乱。我见过太多人因为顺序搞反,仿真结果完全对不上。一般我们按“3-2-1”顺序:先绕Z轴(偏航),再绕Y轴(俯仰),最后绕X轴(滚转)。
我的小技巧:写代码时,把三个旋转矩阵写成函数,每次调用都明确标注旋转顺序。我曾经因为偷懒没写注释,三个月后自己都看不懂了。
2.3 导弹运动学方程
运动学方程,就是描述导弹位置和姿态随时间变化的数学关系。它不关心力,只关心“怎么动”。
位置方程很简单:
dx/dt = V * cos(θ) * cos(ψ)
dy/dt = V * sin(θ)
dz/dt = -V * cos(θ) * sin(ψ)
其中V是速度大小,θ是俯仰角,ψ是偏航角。
姿态方程稍微复杂点,涉及到角速度:
dφ/dt = p + (q*sinφ + r*cosφ)*tanθ
dθ/dt = q*cosφ - r*sinφ
dψ/dt = (q*sinφ + r*cosφ)/cosθ
这里p、q、r分别是滚转、俯仰、偏航角速度。你看,当θ接近90度时,分母cosθ趋近于0,方程会出现奇异。这就是所谓的“万向锁”问题。
避坑指南:我曾经在某个项目中,导弹做大机动时θ超过了85度,仿真直接崩溃。后来改用四元数法才解决。所以,如果你要做全姿态仿真,建议别用欧拉角。
2.4 相对运动关系
导弹打目标,本质上是一个“追”的问题。我们需要描述导弹和目标之间的相对位置、相对速度。
定义相对位置矢量:
r_rel = r_target - r_missile
相对速度矢量:
v_rel = v_target - v_missile
这两个量,是制导律设计的输入。比如比例导引法,就是让导弹的视线角速度趋近于0。
还有一个重要的概念叫视线角。它描述了导弹指向目标的方向。在二维平面内:
λ = arctan(Δy / Δx)
其中Δx、Δy是相对位置在水平和垂直方向的分量。
我个人经验:在实际工程中,视线角速率比视线角本身更重要。因为制导律通常要求视线角速率收敛到0,而不是视线角本身。很多新手搞混了这一点,导致制导律设计失败。
知识体系总览
下面这张图,是我自己总结的坐标系与运动学知识结构。你可以把它当作一张“地图”,随时回来查阅。
本章小结
这一章的内容,说白了就是三件事:
- 选好坐标系——不同问题用不同视角
- 学会坐标变换——旋转矩阵是基本功
- 建立运动学方程——位置和姿态随时间怎么变
再加上相对运动关系,你就有了分析导弹制导问题的数学工具。嗯,这些内容看起来有点枯燥,但相信我,后面讲制导律的时候,你会感谢今天认真学过的自己。
最后提醒一句:坐标系和运动学是导弹制导的“语法”。语法没学好,后面写再漂亮的“句子”也是错的。我见过太多项目栽在这个坑里,希望你不是下一个。
公众号:蓝海资料掘金营,微信deep3321