3. 飞控任务建模方法
飞控软件里,姿态控制、导航滤波、健康监控这些功能并不是以“函数”的形式孤立存在的,它们最终都要落到实时操作系统的任务上,由调度器按某种规则分配 CPU 时间。所谓飞控任务建模,就是把这些功能需求翻译成调度器能理解的对象:周期任务、偶发任务、优先级、执行时间、截止期、阻塞时间等,从而形成一个可以拿去做可调度性分析的模型。建模做得好不好,直接决定了后续时序优化有没有意义——如果模型本身失真,再精细的调度算法也只是在错误的输入上做优化。
一、先分清三类任务语义
飞控中的计算负载大致可以归入三种语义,建模时第一步就是判断某个功能属于哪一类。
- 周期任务:按固定周期反复触发,例如姿态控制律以 200 Hz(周期 5 ms)运行、导航滤波以 50 Hz(周期 20 ms)运行、健康监控以 10 Hz(周期 100 ms)运行。它们的到达时刻可预测,是实时分析的主体。
- 偶发任务:由事件触发,最小到达间隔有下界但具体时刻不确定,例如遥控指令解析、故障中断处理、地面站上行帧处理。建模时用“最小到达间隔”代替周期。
- 非周期/后台任务:没有硬截止期,例如日志落盘、参数存储、遥测打包。它们通常放在最低优先级,用空闲时间执行。
需要强调的是,同一个功能在不同飞行阶段可能改变语义。例如导航滤波在正常巡航时是严格周期任务,在 GPS 失锁后可能被降频或改为事件驱动,建模时要按最坏情况(最小周期、最大执行时间)取值,否则分析结果会偏乐观。
二、把功能映射为任务参数
建模的核心动作是给每个任务填一张参数表。以某型中小型无人机飞控为例,假设主控为单核 200 MHz、无 FPU 的处理器,给出如下示例参数(数值为教学假设,非实测):
| 任务 | 类型 | 周期/最小间隔 | 最坏执行时间 C | 截止期 D | 优先级 |
|---|---|---|---|---|---|
| 姿态控制律 | 周期 | 5 ms | 1.2 ms | 5 ms | 最高 |
| 传感器采集融合 | 周期 | 5 ms | 0.6 ms | 5 ms | 高 |
| 导航滤波 | 周期 | 20 ms | 3.5 ms | 20 ms | 中 |
| 遥控指令解析 | 偶发 | 10 ms | 0.8 ms | 10 ms | 中高 |
| 健康监控 | 周期 | 100 ms | 2.0 ms | 100 ms | 低 |
| 遥测打包 | 非周期 | — | 1.5 ms | 软 | 最低 |
表中几个量必须说清楚来源:周期由控制带宽和采样定理决定,姿态环 200 Hz 是因为内环带宽约 20~30 Hz,采样率取 6~10 倍;最坏执行时间 C 不能拍脑袋,要用最坏情况执行时间(WCET)分析工具或高精度计时器在目标板上实测取包络,且要覆盖分支最坏路径;截止期 D 通常等于周期(隐式截止期),但姿态控制这类任务若允许一定抖动,也可设 D 略小于周期以留出余量。
三、优先级分配与可调度性判据
飞控普遍采用固定优先级抢占式调度(如 Rate Monotonic,RM)。RM 的规则是周期越短优先级越高,上表中姿态控制(5 ms)优先级最高,遥测打包最低,正好符合 RM 排序。分配完优先级后,用利用率判据做初步筛查:
U = Σ(Ci / Ti)
= 1.2/5 + 0.6/5 + 3.5/20 + 0.8/10 + 2.0/100 + 1.5/100
= 0.24 + 0.12 + 0.175 + 0.08 + 0.02 + 0.015
= 0.65
RM 充分条件(n 个任务):
U ≤ n·(2^(1/n) − 1)
n=6 时阈值 ≈ 0.735
0.65 < 0.735 → 满足充分条件,可调度
这里 0.65 的利用率说明 CPU 还有约 35% 余量,但满足充分条件不等于一定可调度,它只是充分非必要条件。更精确的判断要用响应时间分析(RTA):对每个任务计算最坏响应时间 R,若 R ≤ D 则任务可调度。R 的迭代式为 R = C + Σ(高优先级任务的干扰) + 阻塞时间。姿态控制任务没有更高优先级任务,R = C = 1.2 ms ≤ 5 ms,安全;导航滤波要叠加姿态控制和传感器采集的干扰,需要逐项累加验证。
四、建模结果的表达与校验
一个完整的可调度分析模型,最终应能回答三个问题:每个任务的最坏响应时间是多少、系统总利用率是多少、在什么条件下会失效。下图给出了从功能到可调度模型的映射关系与关键参数流。
建模完成后要做一次一致性校验:把模型参数回填到仿真或半实物测试中,观察实际响应时间是否落在 RTA 预测范围内。若实测响应时间明显大于预测值,通常意味着漏算了阻塞时间、中断延迟或缓存抖动。此时应回到参数表修正 C 或 B,而不是直接调优先级——优先级调整只能改变干扰分布,不能消除被低估的执行时间。
总结来说,飞控任务建模的产出不是一张任务列表,而是一组带参数的、可被数学工具检验的调度对象。姿态控制、导航滤波、健康监控被映射为不同周期、不同优先级、不同截止期的任务后,才能用利用率判据和响应时间分析回答“这套飞控在当前处理器上到底能不能按时跑完”。这个模型也是后续时序优化、优先级再分配和 CPU 负载均衡的起点。