Quadrotor Files Simulation 项目说明文档
项目介绍
本项目是一个基于 MATLAB 开发的高精度四旋翼无人机动力学仿真系统。该系统集成了轨迹规划、双环 PID 控制律设计、非线性六自由度动力学建模以及三维动态可视化功能。通过模拟真实物理环境下的受力情况,包括重力、升力、转矩及外部扰动,为无人机控制算法的验证和飞行特性的分析提供了一个高度可靠的虚拟实验平台。
功能特性
- 多维轨迹生成:支持给定航点的时间序列插值,利用三次样条曲线生成平滑的位置和速度参考轨迹。
- 级联控制结构:系统采用典型的内外环控制架构。外环负责位置追踪与期望姿态计算,内环负责高动态的姿态稳定控制。
- 高精度动力学模型:内置基于牛顿-欧拉方程的非线性动力学模型,考虑了机体坐标系与惯性坐标系之间的转换,以及角速度与欧拉角变化率之间的映射。
- 电机信号重构:根据控制量(总推力与三轴力矩)逆向求解 X 型布局下的四个电机转速(RPM),模拟底层执行器的真实状态。
- 复杂环境模拟:在仿真循环中实时注入包含正弦干扰和随机噪声的外部扰动,用于测试控制器的鲁棒性。
- 多维度可视化报告:仿真结束后自动生成包含 3D 飞行轨迹、位置响应曲线、姿态角变化及电机转速信号的综合分析图表,并提供实时动画演示。
核心实现逻辑
整个仿真流程遵循以下步骤:
- 初始化配置:定义无人机的物理参数(质量、惯量、臂长、推力系数等)以及仿真时间步长。
- 参考轨迹生成:根据预设的航点坐标,通过样条插值算法生成连续的时间-位置函数,并利用梯度计算获取参考速度。
- 常微分方程求解:使用 ode45 求解器对动力学方程进行数值积分。
- 在每个步长内,首先通过位置误差计算期望加速度和总推力。
- 根据地轴系下的加速度需求映射出期望的俯仰角和横滚角。
- 姿态控制器根据姿态误差产生控制力矩。
- 动力学模块计算当前状态下的加速度和角加速度。
- 数据后处理:将求解出的状态空间数据重新带入混控矩阵,计算各电机在不同时刻的精确转速。
- 绘图与动画:渲染二位曲线图并开启基于三维旋转矩阵的无人机模型动态演示。
关键函数与算法分析
- 轨迹插值算法:利用 spline 函数对航点进行平滑处理,确保无人机在经过转折航点时位置和速度是连续的,符合物理规律。
- 坐标变换矩阵:实现了 Z-Y-X 旋转顺序的旋转矩阵,准确描述了从机体坐标系到惯性坐标系的矢量转换。
- 双环 PID 控制算法:
-
外环(位置环):计算 X、Y、Z 方向的误差,结合重力补偿输出期望推力和期望姿态角。
-
内环(姿态环):基于角速度反馈(D项)和欧拉角误差(P项)实现对横滚、俯仰和偏航的精准控制。
- 混控逻辑(Mixing Matrix):针对 X 型结构的布局,定义了力/力矩与电机转速平方之间的线性关系映射矩阵,通过矩阵求逆获得各个单体电机的指令信号。
- 运动学转换:专门处理了角速度向量与欧拉角变化率之间的 W 矩阵转换,避免了在小角度外的运动学描述失真。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:基础 MATLAB 环境(主要依赖 ODE 求解器和插值函数),无需特殊工具箱。
使用方法
- 启动 MATLAB 并将其工作目录设置为项目文件夹。
- 运行主函数,系统将自动开始计算轨迹并执行仿真。
- 仿真运行过程中,会自动弹出两个窗口:
- 窗口1展示静态分析图表,包括 轨迹对比、位置曲线、姿态响应和电机状态。
- 窗口2展示三维实时飞行状态,包含无人机位姿及其飞行路径。
- 如需修改飞行任务,可直接在主函数开头部分的航点矩阵中编辑坐标。