✈️ 飞控软件架构 · 模块划分
30章 从入门到综合实战
📘 友好色系
1
飞控系统概述
飞行控制系统的定义、发展历程、核心功能与性能指标。
2
飞控系统硬件平台
主控芯片选型(STM32/ARM/DSP)、传感器(IMU/GPS/气压计)、执行机构(舵机/电调)。
3
飞控软件架构总览
前后台系统、RTOS(FreeRTOS/RT-Thread)的选择与对比、分层架构设计。
4
任务调度与管理
任务优先级划分、时间片轮转、抢占式调度、任务间通信(队列/信号量/事件标志组)。
5
传感器数据采集层
IMU(加速度计/陀螺仪)驱动、磁力计驱动、GPS数据解析、气压计数据读取。
6
传感器数据处理
滤波算法(均值滤波/卡尔曼滤波/互补滤波)、传感器校准、数据融合(Mahony/Madgwick)。
7
姿态解算模块
欧拉角与四元数、旋转矩阵、姿态初始化、姿态更新算法。
8
位置与速度估计
GPS/INS组合导航、扩展卡尔曼滤波(EKF)、高度估计(气压计+加速度计融合)。
9
控制算法基础
PID控制原理、位置式PID与增量式PID、PID参数整定方法。
10
姿态控制环
内环(角速率环)与外环(角度环)设计、控制频率分配、限幅与积分抗饱和。
11
位置控制环
水平位置控制(GPS/光流)、高度控制、速度控制、模式切换逻辑。
12
模式管理模块
手动模式、增稳模式、定高模式、悬停模式、返航模式、任务模式的状态机设计。
13
导航与路径规划
航点导航、Dubins曲线、A*算法、动态避障策略。
14
通信协议层
MAVLink协议解析与封装、串口通信(UART)、CAN总线、SBUS/DSM接收机协议。
15
地面站通信模块
心跳包、遥测数据上传、参数读写、命令下发、数据链路加密。
16
日志与数据记录
黑匣子设计、SD卡读写、FATFS文件系统、日志格式定义(CSV/Binary)。
17
参数管理系统
参数存储(EEPROM/Flash)、参数校验、参数在线修改、参数导出/导入。
18
故障诊断与安全机制
传感器故障检测(一致性检查/卡死检测)、执行器故障检测、看门狗、紧急降落。
19
状态估计器设计
基于EKF的状态估计、协方差矩阵更新、观测方程与状态方程建模。
20
混控器设计
多旋翼混控矩阵(Quad/Hexa/Octo)、固定翼混控、VTOL混控、舵面映射。
21
执行器管理
PWM/DSHOT协议、电调校准、舵机控制、执行器健康监测。
22
系统启动与初始化
硬件初始化、传感器自检、参数加载、任务创建、系统自检流程。
23
实时性分析与优化
任务执行时间测量、堆栈溢出检测、CPU负载计算、中断延迟优化。
24
软件在环仿真(SITL)
仿真环境搭建(Gazebo/JSBSim)、飞控与仿真器通信、半实物仿真。
25
硬件在环仿真(HITL)
真实飞控板接入仿真、传感器模拟、故障注入测试。
26
代码规范与版本管理
编码规范(MISRA-C)、Git分支策略、代码审查流程、自动化测试。
27
模块化设计原则
高内聚低耦合、接口定义(API)、模块间依赖管理、动态加载。
28
实时操作系统深入
FreeRTOS内核分析(任务调度/内存管理/时间管理)、中断嵌套、临界区保护。
29
飞控软件调试技巧
JTAG/SWD调试、printf日志、RTT(Real-Time Transfer)、逻辑分析仪使用。
30
综合案例:四旋翼飞控框架
从零搭建四旋翼飞控软件框架:需求分析、架构设计、模块划分、代码实现、测试验证。