4. 飞控计算机与实时操作系统

飞控计算机(Flight Control Computer, FCC)是固定翼无人机飞控系统的“大脑”,它必须在严格的时间约束下完成传感器采集、状态估计、控制律解算与舵机输出。与通用计算机不同,飞控计算机的核心指标不是峰值算力,而是确定性:每一次控制周期都必须在截止时间内完成,且抖动可控。本节围绕硬件选型、任务调度、时间同步、余度管理与健康监控五个相互耦合的环节展开。

一、硬件选型:从算力、接口到确定性的权衡

硬件选型首先要回答三个问题:控制律需要多少算力?外设需要哪些接口?系统需要多高的安全等级?对于中小型固定翼无人机,典型控制频率为 100~400 Hz,姿态估计(如扩展卡尔曼滤波)与串级 PID 解算在 Cortex-M7(如 STM32H7,480 MHz)上通常占用 20%~40% CPU 负载;若引入模型预测控制或视觉导航,则需 Cortex-A 系列或异构 SoC。

接口方面,固定翼飞控通常需要:多路 UART(GPS、数传、遥控)、CAN(舵机/发动机总线)、SPI/I2C(IMU、气压计、磁罗盘)、PWM/DShot 输出以及 SD 卡日志。选型时需核对 DMA 通道数量与中断优先级分组能力,因为外设搬运若占用 CPU,会直接侵蚀控制周期的余量。此外,应优先选择具备硬件浮点单元(FPU)、独立看门狗(IWDG)与时钟安全系统(CSS)的 MCU,为后续健康监控提供硬件基础。

选型经验:控制周期 5 ms(200 Hz)时,建议 CPU 负载不超过 60%,为故障检测与日志留出余量;同时确认最坏情况执行时间(WCET)而非平均时间满足截止期。

二、任务调度:把控制律放进确定的时间槽

实时操作系统(RTOS)如 FreeRTOS、NuttX、RT-Thread 或 VxWorks 提供任务、优先级与同步原语。飞控任务通常按周期与优先级划分:姿态控制任务(最高优先级,200 Hz)、位置/导航任务(50 Hz)、传感器采集(由中断或 DMA 触发)、健康监控(10 Hz)、日志与遥测(低优先级)。

调度策略上,推荐基于优先级的抢占式调度 + 速率单调(RMS)分配优先级:周期越短,优先级越高。为避免优先级反转,共享资源(如 I2C 总线、日志缓冲)应使用互斥量并启用优先级继承。关键控制任务应避免动态内存分配与阻塞式 I/O,所有缓冲在初始化阶段静态分配。

/* FreeRTOS 任务创建示例(教学参数) */
xTaskCreate(AttitudeCtrlTask, "ATT", 1024, NULL, 6, NULL); // 200 Hz
xTaskCreate(NavTask,          "NAV", 2048, NULL, 5, NULL); // 50 Hz
xTaskCreate(HealthTask,       "HLT", 1024, NULL, 4, NULL); // 10 Hz
xTaskCreate(LogTask,          "LOG", 2048, NULL, 2, NULL); // 事件触发

/* 控制任务骨架:vTaskDelayUntil 保证周期稳定 */
void AttitudeCtrlTask(void *pv){
    TickType_t last = xTaskGetTickCount();
    for(;;){
        ImuRead();  Estimate();  ControlLaw();  ActuatorOut();
        vTaskDelayUntil(&last, pdMS_TO_TICKS(5)); // 5 ms 周期
    }
}

使用 vTaskDelayUntil 而非 vTaskDelay,可补偿任务执行时间带来的累积漂移,使周期抖动保持在微秒级。若某周期超时,应记录“截止期错过”计数,作为健康监控的输入。

三、时间同步:让传感器、控制与日志共享同一时基

固定翼飞控中,IMU、GPS、气压计与舵机反馈往往异步到达。若时间戳不统一,姿态估计会出现相位误差。常用做法是以 MCU 的高分辨率定时器(如 DWT CYCCNT 或 TIM)作为单调时基,所有采样在中断中打上时间戳,再送入估计器。

GPS 的 PPS(秒脉冲)可用于校准本地时基:记录 PPS 上升沿对应的本地计数器值,计算与整秒的偏差,通过比例积分缓慢修正时基频率,避免突变。多核或双余度计算机之间,则通过 CAN 或以太网的同步报文(如 IEEE 1588 简化实现)对齐时钟,偏差应控制在 100 μs 以内,否则余度切换时状态量会出现跳变。

飞控计算机实时任务调度与时基同步关系 单调时基 (DWT/TIM) t0 t1 t2 t3 t4 姿态控制 200Hz 导航解算 50Hz 健康监控 10Hz 日志/遥测 低优先级 传感器采样中断 IMU GPS IMU BARO IMU 截止期

四、余度管理:从硬件冗余到表决与切换

固定翼无人机一旦舵面失控,后果严重,因此关键通道常采用双余度或三余度。硬件上可配置双 IMU、双气压计、双电源与双 CAN 总线;计算单元可采用双 MCU 热备份或单 MCU 内双通道软件余度。

余度管理的核心是表决与切换。以三余度为例,对同一物理量(如俯仰角速度)取三路输入,采用中值表决:若三路偏差在阈值内,取中值;若某一路偏离中值超过阈值且持续 N 个周期,则判定该通道故障并隔离,系统降级为双余度;双余度时若两路不一致,则结合其他传感器(如加速度计、GPS 航向)进行一致性校验,无法判定时进入安全模式(如定直平飞或伞降)。

余度状态可用通道表决策略系统行为
正常3中值表决全功能
降级2一致性校验 + 辅助量限制机动
临界1无表决返航/平飞
失效0—安全模式

五、健康监控:把故障变成可判断的信号

健康监控不是简单看门狗,而是对电源、传感器、通信、任务时序与执行机构的持续评估。典型监控项包括:电压/电流越限、IMU 数据冻结或方差异常、GPS 定位质量(HDOP、卫星数)、CAN 总线错误计数、控制任务截止期错过次数、舵机反馈与指令偏差。

实现上,每个监控项输出一个健康位(0/1)与置信度,汇总为系统健康等级。例如:连续 3 个周期姿态任务超时 → 控制健康降级;IMU 方差超过 0.05 rad²/s² 且持续 200 ms → 传感器故障。健康等级可直接驱动余度切换,也可通过遥测下传,供地面站判断。

注意:健康监控本身也会失效。应使用独立看门狗监控监控任务,并确保故障判定逻辑不依赖单一传感器。阈值需通过地面试验与飞行数据标定,避免误报导致空中频繁切换。

综合来看,硬件选型决定确定性上限,任务调度保证时间约束,时间同步统一数据语义,余度管理提供容错能力,健康监控则把隐性故障显性化。五者共同构成飞控计算机的实时可信基础,缺一不可。