4. 实时仿真平台与操作系统
半实物仿真把航天器动力学模型、敏感器与执行机构实物、接口板卡和地面测控设备连成一个闭环。这个闭环能否可信,首先取决于仿真平台能否在确定的时间点完成确定的工作。通用桌面操作系统追求平均吞吐和交互体验,而半实物仿真要求的是最坏情况下的响应时间可预测。因此,实时内核选型、任务调度、中断处理与时钟同步,构成了实时仿真平台的四个技术支点。
一、实时内核选型:硬实时与软实时的分界
实时性不等于“快”,而等于“确定”。硬实时系统要求任何一次任务都必须在截止时间前完成,超时即视为系统失败;软实时只要求统计意义上的及时,偶尔超时仅导致质量下降。航天器GNC半实物仿真中,控制周期通常为1 ms、2 ms或5 ms,姿态控制回路对抖动极为敏感,一般按硬实时或准硬实时标准选型。
常见方案可分为三类。第一类是实时扩展型,如RT-Linux、Xenomai、RTAI,在通用Linux内核旁挂一个实时微内核,实时任务运行在微内核上,非实时任务交给Linux,兼顾生态与实时性。第二类是专用实时操作系统,如VxWorks、QNX、RTEMS,内核精简、抢占延迟低,VxWorks在航天嵌入式与地面仿真中应用广泛,QNX以微内核架构见长。第三类是Windows+实时扩展,如RTX64、INtime,保留Windows的人机界面与开发工具,把实时任务下沉到独立内核。
选型时建议重点核对四项指标:中断延迟(通常要求小于10 μs)、任务切换时间、定时器抖动(1 ms周期下抖动宜小于50 μs)、最坏情况执行时间的可测量性。此外还要考虑驱动生态、板卡支持、开发调试工具链和长期维护成本。若仿真步长在100 μs量级、且需与大量商用板卡交互,Xenomai或RTX64往往更实用;若追求极致确定性与航天级认证,VxWorks或RTEMS更合适。
二、任务调度:周期任务与优先级设计
半实物仿真的任务集通常包括:模型解算任务(周期T)、I/O采集任务、I/O输出任务、总线通信任务、数据记录任务和监控任务。调度策略以固定优先级抢占式调度为主,配合速率单调调度(RMS)分配优先级——周期越短,优先级越高。
以一个典型配置为例:模型解算周期1 ms,优先级最高;A/D采集与D/A输出周期1 ms,紧随其后;1553B或CAN总线通信周期2 ms;数据记录周期10 ms;界面刷新周期50 ms。若采用RMS,可先用利用率判据做初步校验:n个周期任务的总利用率 U = Σ(Ci/Ti),当 U 不超过 n(2^(1/n)−1) 时,RMS可保证可调度。例如三个任务 C/T 分别为 0.2、0.15、0.1,则 U=0.45,而 n=3 时理论上限约0.78,说明有裕量。但该判据假设任务相互独立、无阻塞,实际还需考虑信号量、共享内存和中断带来的阻塞时间。
工程上更可靠的做法是响应时间分析:对每个任务计算最坏响应时间 Ri = Ci + Bi + Σ⌈Ri/Tj⌉·Cj,迭代至收敛,若 Ri ≤ Ti 则满足截止时间。若模型解算任务因浮点运算或矩阵求逆出现长尾,应将其拆分为多个子任务,或把非关键计算移出实时域。
三、中断处理:把不确定性关进笼子
中断是实时系统抖动的主要来源。半实物仿真中,定时器中断触发周期开始,板卡中断通知数据到达,网络中断接收上位机指令。若在中断服务程序(ISR)中直接做大量运算,会阻塞其他中断和任务。推荐采用中断上半部+下半部结构:ISR只做时间戳记录、数据搬运和标志置位,把模型解算、协议解析等耗时工作交给实时任务。
具体措施包括:为关键中断设置合适优先级,避免低优先级中断长时间关中断;使用中断亲和性把板卡中断绑定到独立CPU核;对非关键中断做合并或降频;在ISR中避免动态内存分配和不可重入函数。若采用Xenomai,可通过 rt_intr_create 注册实时中断,并配合 rt_task_wait_period 实现周期同步。
四、时钟同步:让模型时间与物理时间对齐
半实物仿真的时间基准必须统一。常见做法是以实时内核的高精度定时器作为仿真时钟,每个周期开始时读取时间戳,计算与理想周期的偏差,并在下一步长中补偿。若仿真机与目标机、测控设备分布在不同机箱,还需通过IEEE 1588 PTP、IRIG-B或GPS秒脉冲实现跨设备同步,同步误差应远小于仿真步长,通常要求小于步长的1/10。
下面这张图给出一个典型的实时仿真平台信号与时间关系:定时器中断驱动周期任务,模型解算与I/O在周期内完成,时钟同步模块校正时间偏差,数据记录与监控运行在非实时域。
五、典型实时仿真软件环境
工程中常见的实时仿真软件环境可分为三类。第一类是MATLAB/Simulink + Simulink Real-Time(原xPC Target),通过专用目标机运行实时内核,支持自动代码生成、I/O板卡驱动和主机-目标机通信,适合快速搭建GNC闭环。第二类是dSPACE SCALEXIO / MicroLabBox,提供高精度I/O、实时处理器和ConfigurationDesk工具链,在航天姿轨控半实物仿真中应用成熟。第三类是NI VeriStand / LabVIEW Real-Time,基于PXI平台,适合多板卡、多速率系统集成。
以Simulink Real-Time为例,典型配置流程为:在Simulink中搭建模型并设置固定步长1 ms;用Simulink Coder生成目标代码;通过 slrtExplorer 连接目标机并下载;配置I/O模块与硬件通道映射;启动仿真后,在主机端用 tg = slrt; tg.addscope 添加示波器观察姿态角、角速度和执行机构指令。判断平台是否达标,可观察三项:周期抖动是否稳定在50 μs以内、模型解算是否在步长内完成、I/O数据是否无丢帧。若出现超时,应优先检查中断负载、任务优先级和共享内存竞争。
综上,实时仿真平台的建设不是单一软件选择问题,而是内核、调度、中断、时钟四者协同设计的结果。只有把最坏情况响应时间控制在步长以内,并让模型时间与物理时间保持一致,半实物仿真结果才具备可信度,后续的GNC算法验证才有意义。