2. 实时调度核心指标

飞控系统的调度效果不能靠“感觉流畅”来判断,必须落到可测量、可比较、可回归的指标上。本节围绕五个核心指标建立度量体系:任务响应时间、截止期错过率、抖动、CPU利用率与最坏执行时间(WCET)。它们分别回答五个问题:一次任务从触发到完成要多久?有多少次没赶上截止期?周期任务的释放与完成是否稳定?处理器还剩多少余量?单个任务最长可能占用多少时间?只有把这五个量放在同一时间基线上观察,才能判断一套飞控调度方案是否真正可用。

一、五个指标的定义与飞控语义

设任务 τi 的第 k 次作业在时刻 ri,k 释放,开始执行于 si,k,完成于 fi,k,截止期为 di,k,执行时间为 Ci,k。

  • 响应时间 Ri,k = fi,k − ri,k,包含等待时间与执行时间。飞控中它对应“从传感器采样触发到控制量输出”的端到端延迟,直接决定姿态环的相位裕度。
  • 截止期错过率 Mi = 未满足 fi,k ≤ di,k 的作业数 / 总作业数。它是最直观的“失效比例”,通常按任务分别统计,再按安全等级加权。
  • 抖动 Ji = max(Ri,k) − min(Ri,k),也可用释放间隔抖动或完成时刻标准差表示。飞控中抖动比平均延迟更危险,因为它会让控制周期忽长忽短,等效于采样频率漂移。
  • CPU利用率 U = Σ(Ci/Ti),Ti 为周期。它衡量处理器被周期任务占用的比例,是判断是否还有余量容纳突发任务或降级模式的基础。
  • 最坏执行时间 WCETi = max(Ci,k)。它是所有时序分析的分母式输入,必须通过静态分析、测量或两者结合得到,不能简单用平均值代替。

这五个指标不是并列孤立的:WCET 决定单次占用上限,CPU利用率决定排队长度,排队长度与优先级共同决定响应时间,响应时间的波动形成抖动,而响应时间超过截止期的比例就是错过率。下图给出它们在一条时间轴上的关系。

飞控任务时序与五指标关系(示例:姿态控制任务 τ_att,周期 T=5 ms) 时间 t 0 5 10 15 20 C1 r1 f1 d1 R1=1.2 C2 r2 f2 d2 R2=2.0 C3(突发负载) r3 f3 d3 R3=4.8(余量仅0.2) C4(超载,错过截止期) r4 f4 d4 R4=6.0 > 5,错过 抖动 J = max(R) − min(R) = 6.0 − 1.2 = 4.8 ms 本示例统计结果 平均响应时间 ≈ 3.5 ms 截止期错过率 = 1/4 = 25% 抖动 = 4.8 ms WCET = 6.0 ms(作业4) CPU利用率 U = Σ(Ci/Ti) ≈ 70% 剩余余量 30%(用于突发与降级)

二、WCET 与 CPU利用率:时序分析的两个输入

WCET 的获取通常有三条路径:静态分析(对机器码逐路径求上界)、动态测量(在目标板上用高精度计时器打点,覆盖最坏分支)、混合方法(静态确定路径,动态测量路径耗时)。飞控中建议对姿态控制、导航滤波、舵机输出等关键任务采用“静态分析 + 最坏工况测量”交叉验证,并留出 20%~30% 的安全裕量。例如某姿态任务在 168 MHz Cortex-M4 上测得典型执行 0.8 ms、最坏分支 1.6 ms,则 WCET 取 1.6 ms 而非 0.8 ms。

CPU利用率由各任务 WCET 与周期共同决定。若姿态任务 T=5 ms、WCET=1.6 ms,则单项 U=32%;再叠加导航 10 ms/1.5 ms、通信 20 ms/2 ms、健康管理 50 ms/1 ms,总利用率约为 32%+15%+10%+2%=59%。剩余 41% 是系统应对突发模式切换、日志写入和中断风暴的缓冲。经验上,硬实时飞控的周期任务利用率宜控制在 70% 以下,超过 85% 时响应时间会因排队迅速恶化。

三、响应时间与抖动:控制品质的直接来源

响应时间由等待时间与执行时间组成。在固定优先级调度下,高优先级任务的响应时间可用响应时间分析(RTA)迭代求解:R = C + Σ⌈R/Tj⌉·Cj(j 为优先级高于 i 的任务)。当迭代收敛且 R ≤ d 时任务可调度。抖动则来自释放抖动、抢占次数变化和执行时间波动。对姿态环而言,若采样周期 5 ms、抖动 4.8 ms,等效采样频率在 100 Hz 到 200 Hz 之间漂移,积分项会积累不一致的误差,严重时引发极限环振荡。因此工程上常要求关键控制任务抖动小于周期的 10%,即 5 ms 周期下抖动不超过 0.5 ms。

四、截止期错过率:安全判据而非性能指标

错过率必须按任务的安全等级分别统计。姿态控制错过一次可能导致姿态发散,属于灾难级;日志任务错过若干次仅影响事后分析。因此度量体系应给出分层阈值,例如:姿态控制错过率 = 0,导航滤波 ≤ 10−6,遥测 ≤ 1%。统计窗口建议覆盖至少 105 个作业周期,并记录错过时的系统状态(负载、温度、中断频率),以便定位是偶发还是系统性超载。

度量落地建议:在飞控软件中为每个任务维护四个计数器——作业总数、错过数、最大响应时间、最小响应时间,并周期性输出到遥测帧。这样无需额外仪器即可在线计算错过率与抖动。

五、把五个指标组织成可执行的度量表

下表给出一个可直接用于飞控项目的指标登记示例,参数为教学假设值,实际项目应按目标板测量结果替换。

任务周期 T/msWCET/ms截止期/msU/%响应时间上界/ms抖动上限/ms错过率阈值
姿态控制51.6532≤ 3.0≤ 0.50
导航滤波101.51015≤ 6.0≤ 1.0≤ 10⁻⁶
通信链路202.02010≤ 12.0≤ 2.0≤ 1%
健康管理501.0502≤ 30.0≤ 5.0≤ 1%

使用这张表时,先由 WCET 与周期算出 U 列,确认总和不超过 70%;再用 RTA 或实测得到响应时间上界,与截止期比较;最后用在线计数器验证抖动与错过率是否落在阈值内。任何一项越界,都应回到优先级分配、任务拆分或 WCET 优化上调整,而不是仅靠提高主频掩盖问题。

常见误区:用平均执行时间代替 WCET 做可调度性分析,会系统性低估响应时间;只统计平均响应时间而忽略抖动,会漏掉控制品质恶化的根因;把 CPU利用率当作唯一指标,会在利用率不高但优先级反转的场景下仍然出现截止期错过。

综上,飞控实时调度的度量体系应以 WCET 为输入、以 CPU利用率为容量约束、以响应时间和抖动为过程观测量、以截止期错过率为最终安全判据。五个指标在同一时间基线上联合观察,才能支撑调度参数的迭代优化与适航证据的生成。