基于高保真运动模型的真实飞行航迹仿真系统 (Trajectory Simulation System)
项目简介
本项目利用 MATLAB 环境构建了一个通用的飞行器航迹仿真平台。系统基于三自由度(3-DOF)质点运动方程,通过高精度的数值积分方法,能够生成包含多种复杂战术机动的高真实度飞行轨迹数据。该系统不仅模拟了飞行器的动力学特性,还引入了环境风场干扰和传感器观测噪声,生成的仿真数据可直接用于雷达目标跟踪算法(如卡尔曼滤波)、防空系统测试及路径规划算法的验证。
功能特性
- 高保真动力学建模:采用基于过载控制($n_x, n_z$)和滚转角($mu$)的非线性三自由度点质量模型,考虑了重力、推力与阻力的综合影响。
- 多样化机动库:内置多种标准与战术飞行动作生成逻辑,支持动作序列的自定义组合。
- 环境与传感器模拟:
*
风场干扰:在轨迹积分中引入随机风场扰动。
*
雷达观测:基于真实轨迹叠加高斯白噪声,模拟雷达对位置的含噪测量。
- 高精度解算:使用四阶龙格-库塔(RK4)算法进行微分方程数值积分,确保长时间仿真的数值稳定性。
- 可视化与数据记录:提供三维动态轨迹显示,并自动保存包含时间戳、真实状态、观测数据及控制量的完整数据集。
系统要求
- 软件环境:MATLAB (推荐 R2016b 及以上版本)
- 工具箱:标准 MATLAB 安装即可(无需特殊工具箱)
快速开始
- 打开 MATLAB 并将工作目录切换到项目文件夹。
- 直接运行
main 函数。 - 运行过程:
* 控制台将输出“开始仿真计算...”。
* 程序将依据预设的机动序列进行时域积分。
* 仿真结束后,将弹出包含三维轨迹图和状态曲线的图形窗口。
* 数据将自动保存为
flight_trajectory_data.mat。
核心算法与实现细节
本项目完全基于 main.m 代码实现,核心逻辑如下:
1. 状态定义与坐标系
系统采用 6 维状态向量进行描述,符合地面坐标系(NED类推)定义:
- 位置:x (东), y (北), z (高)
- 速度:v (真空速)
- 姿态:gamma (航迹倾角), psi (航迹偏角/航向)
2. 动力学模型 (flight_dynamics)
采用三自由度运动方程,输入控制量为切向过载 ($n_x$)、法向过载 ($n_z$) 和滚转角 ($mu$)。
* 速度变化率由切向过载和重力分量决定。
* 航迹倾角变化率由法向过载的垂直分量决定。
* 航迹偏角变化率由法向过载的水平分量决定。
- 保护机制:包含防止速度为零的奇异点保护,以及防止俯仰角接近 90 度时的万向节死锁处理。
3. 自动驾驶仪逻辑 (flight_control_logic)
通过比例控制器(P-Control)实现对不同机动指令的响应,将高级战术指令转化为底层的过载和滚转控制量:
- 平稳巡航 (Maintain):维持当前高度和速度,通过 PID 修正航迹倾角为 0。
- 速度机动 (Accel):根据目标速度计算切向过载指令,并限制最大加减速率。
- 协调转弯 (Turn):固定法向过载和滚转角,同时增加切向推力以补偿转弯诱导阻力。
- 爬升/俯冲 (Climb/Dive):通过控制法向过载来追踪目标航迹倾角 ($gamma$),实现高度层的改变。
- S型机动 (Snake):生成正弦波形式的滚转角指令,模拟蛇形机动,周期和最大滚转角可配。
- 桶滚 (Barrel Roll):结合恒定的法向过载与持续变化的滚转角(线性增加),形成螺旋状上升或下降轨迹。
4. 数值积分与环境模拟
- RK4 积分:主循环中显式实现了四阶龙格-库塔积分法,以
sim_config.dt (0.05s) 为步长更新状态。 - 风场干扰:在位置更新步骤中,根据设定的风速向量叠加随机扰动 (
randn)。 - 雷达噪声:在真实位置数据基础上,直接叠加标准差为 15m 的高斯白噪声生成观测数据
meas_pos_log。
5. 预设仿真场景
代码中硬编码了一个时长约 102 秒的典型战术飞行流程:
- 0-10s: 平飞初始化
- 10-25s: 3G 右盘旋(大机动转弯)
- 25-35s: 加速至 300m/s
- 35-55s: 战术 S 型机动(规避动作)
- 55-70s: 20度大仰角爬升
- 70-82s: 桶滚机动(复杂空间动作)
- 82-92s: 俯冲
- 92-102s: 改平恢复
数据输出
仿真结束后生成的 flight_trajectory_data.mat 文件包含以下变量:
- time_log: 仿真时间轴数组。
- state_log: 真实飞行状态矩阵 (Nx6),包含 [x, y, z, v, gamma, psi]。
- meas_pos_log: 模拟雷达观测到的位置数据 (Nx3),含噪声。
- control_log: 自动驾驶仪输出的控制量矩阵 (Nx3),包含 [nx, nz, mu]。
可视化
程序将生成一个综合图形窗口:
- 主图:展示三维空间下的真实飞行轨迹(蓝色实线)与雷达观测点(红色散点)。图中通过颜色映射和文本标签(M1, M2...)标注了不同机动阶段的起止位置。
- 状态图:展示飞行状态随时间的变化曲线(如高度等)。