用个好点的大模型吧,6 DOF 都给搞成 6 Dimension 了,Rx和Rz也一眼重复。真有兴趣的话,找本 introduction 和 flight dynamics 系统看下。
六自由度弹道模型是用于描述飞行器(如导弹、炮弹、无人机等)在三维空间中运动的高精度动力学模型,考虑了重力、气动力、推力等外力,以及飞行器姿态(俯仰、偏航、滚转)对运动的影响。其解算过程基于牛顿运动定律和欧拉角姿态描述,核心是建立并求解一组12个耦合的微分方程,即三维位置矢量、三维速度矢量、三维姿态角矢量及三维角速度矢量的微分方程组。在爱好者日常使用中,则可以简化为三自由度弹道模型,即二维方向矢量、二维速度矢量及一维姿态角度矢量和一维角速度矢量的6个微分方程组。
一、基本解算逻辑
①建立坐标系
②给定初始状态(位置,速度,角度,角速度)
②建立质心及姿态运动学方程(得到三维的位置及三维姿态角的微分方程)
③建立质心及转动动力学方程(得到三维的速度及三维角速度的微分方程)
④由运动学及动力学方程列出出12个微分方程(位置、速度、姿态角、角速度关于时间微分)
⑤将微分方程组带入迭代方程,得到变化量,并更新状态
⑥迭代,直到结束(如落地/关机/命中)
二、坐标系定义
1. 弹体坐标系
原点为箭体质心
x轴为箭体指向头部
y轴在弹体纵向对称面内,垂直x轴向上
z轴垂直于x-y平面,且满足矢量叉乘右手定则
2. 惯性坐标系(地面坐标系)
原点为初始位置(发射点)
x轴沿水平面指向目标方向
y轴垂直向上
z轴垂直于 x-y 平面,且满足矢量叉乘右手定则
三、中间变量及关键参数
1. 关键参数确定
箭体三维特征长度矩阵表示为
箭体三维特征面积矩阵表示为
箭体三维表面积矩阵表示为
2. 弹体坐标系与惯性坐标系转换矩阵C
箭体坐标系相对惯性坐标系的姿态转换由欧拉角俯仰角、偏航角、滚转角描 述, 转换矩阵(从箭体到惯性系)记为C。其表达式为
Rx:绕x轴的旋转矩阵
Ry:绕y轴的旋转矩阵
Rz:绕z轴的旋转矩阵
各轴旋转矩阵的具体形式为
3. 攻角α与侧滑角β
描述弹体纵轴与速度方向的夹角,是气动力系数和力矩系数的核心输入内容
(vx’,vy’,vz’):弹体坐标系的速度分量(由惯性坐标系通过C^-1转换)
v:弹体合速度
4. 空气密度ρ
可以通过大气模型查表或拟合公式计算得到,与海拔高度成反比
5. 重力加速度g
可以根据重力加速度模型查表或根据公式得到
g0:海平面重力加速度
R:地球半径
Y:海拔高度
6. 气动力系数Cx,Cy,Cz,mx,my,mz
根据箭体CFD仿真得到Cx,Cy,Cz,mx,my,mz关于Ma,攻角,侧滑角,三维角速度的函数。三维气动力系数及三维气动力矩系数表示为
7. 科里奥利力Fc
科里奥利力是一种虚拟惯性力,将地球视为旋转的非惯性系,加入虚拟惯性力表示地球自转对物体运动的影响。其计算公式为
w:地球自转角速度矢量
v:箭体在惯性坐标系运动的速度矢量
根据矢量叉乘公式则可以表示为
θ:物体所在经纬度到地心与赤道平面的夹角
四、建立运动学方程
飞行器运动可以分为沿惯性坐标系的质心平动(用位置,速度表述)和沿弹体坐标系绕 质心转动(用姿态角,角速度表示)
1. 质心平动运动学方程
飞行器位置矩阵表示为
飞行器速度矩阵表示为
则飞行器位置的三个微分方程可以表示为
2. 绕质心转动运动学方程
飞行器姿态矩阵表示为
θ俯仰角:弹体坐标系x轴与水平面的夹角(向上为正)
ψ偏航角:弹体坐标系ox 轴在水平面的投影与 OX 轴的夹角(向右为正)
φ滚转角:oy 轴与纵向对称面的夹角(从头部看顺时针为正)
飞行器角速度矩阵表示为
wx:沿x轴旋转角速度
wy:沿y轴旋转角速度
wz:沿z轴旋转角速度
则飞行器姿态角对应的三个微分方程可以表示为
五、建立动力学方程
飞行器动力学方程可以根据牛顿第二定理和欧拉转动方程建立
1. 质心动力学方程
火箭外力主要由四种力组成即推力、气动力、重力及科里奥利力。
重力:在惯性坐标系上矩阵表示为
科里奥利力:在惯性坐标系上矩阵表示为
推力:在弹体坐标系上矩阵表示为
气动力:在弹体坐标系中的矩阵表示为
其中vn表示为
弹体坐标系中的三维合力矩阵表示为
惯性坐标系中的三维合力矩阵表示为
根据牛顿第二定律,飞行器速度所对应的三个微分方程可以表示为
2. 绕质心转动动力学方程
火箭外力矩主要包括气动力矩、控制力矩和推力矩。本文暂不考虑控制力矩和推力矩。则三维气动力矩矩阵可以表示为
根据欧拉转动方程,飞行器速度所对应的三个微分方程可以表示为
六、四阶龙格-库塔法Runge-Kutta求解
由于该计算高度耦合且非线性,无法解析求解,因此需要使用数值求解方法;而龙格库塔法则具有计算复杂度低、精度高和稳定度高的特点,可以自由选用如一阶、二阶等多种方法。同时在选用步长时,不易出现发散、震荡等问题。常用于物理模拟或工程计算
1. 求解核心思想
其核心思想为一阶微分方程的初值问题:
即在每个步长内,通过 4 次计算函数f(x,y)的值,再用加权平均的方式更新y的值,从而得到y(xn+1)的近似解yn+1。可以理解为通过计算初点、中点和终点的斜率,求出该步长内y的变化量,最后更新到初点y值上。
2. 迭代公式
①给定初始点(xn,yn)
②计算4个斜率
k1:初点的斜率
K2:中点的斜率
K3:基于k2对中点斜率的修正
K4:终点的斜率
③加权四个斜率并得到总增量,更新(x,y)
3. 模型计算
在计算六自由度模型时迭代公式则为
七、总结
模型构建的关键环节:①定义弹体坐标系与惯性坐标系②确定箭体特征参数、坐标系转换矩阵、攻角与侧滑角等中间变量及关键参数③建立运动学方程(含质心平动与绕质心转动方程)与动力学方程(基于牛顿第二定律和欧拉转动方程)④引入四阶龙格 - 库塔法求解微分方程并迭代。
基于该数学模型,我使用Matlab编写了一个半成品程序(没有经过运行测试和debug)该程序仅作参考。
系统工程不仅仅解数学题,而是以理论为基础对于现实三维世界的探索,理论和实践永远相辅相成;就像人,永远都是理想与现实相互影响。作为一名16岁国际高中生,即将到来的2026年将会是影响我人生的一年。我需要兼顾很多,托福SAT课内GPA等等。希望在十年后,当我再次会看十年前写的这篇文章时,我的理想会变成现实。就像一个个理论变为现实。现在说这样的话可能会有些幼稚。但到那时,我可能才会真正体会到人生的浪漫之处。
希望我们都可以脚踏实地,向着梦想前进!
本文如有错误,欢迎指出。
用个好点的大模型吧,6 DOF 都给搞成 6 Dimension 了,Rx和Rz也一眼重复。真有兴趣的话,找本 introduction 和 flight dynamics 系统看下。