1. 实时测试系统概述

在工业测控、汽车电子、航空航天、电力电子与运动控制等领域,测试系统不仅要“采得到、算得出”,更要在确定的时间点“给出结果并驱动执行器”。普通桌面操作系统上的测试程序,即使平均性能很高,也可能因为系统调度、垃圾回收、驱动中断或后台任务而出现毫秒级甚至数十毫秒的抖动。对于需要以固定周期闭环控制的场合,这种抖动会直接导致控制品质下降,甚至引发设备损坏。实时测试系统正是为解决这一问题而出现的工程方案。

1.1 什么是实时系统

实时系统并不是“运行速度快”的系统,而是在规定的截止时间内必须完成规定响应的系统。它的正确性由“逻辑正确”和“时间正确”共同决定:结果算对了但来晚了,同样属于失败。工程上通常用三个指标描述实时性:

  • 响应时间:从事件发生(如定时器到期、外部触发)到系统产生响应的时间。
  • 抖动(Jitter):多次响应时间的波动范围,是确定性控制最关心的量。
  • 截止时间满足率:在长时间运行中,满足时间约束的周期比例。

按约束强度,实时系统可分为硬实时、软实时和固实时。硬实时要求任何一次超时都不可接受,例如安全气囊点火、伺服电流环;软实时允许偶尔超时,例如数据记录、人机界面刷新;固实时介于两者之间,偶尔超时结果仍可用但价值下降。LabVIEW实时模块主要面向硬实时与固实时场景。

1.2 确定性控制需求

确定性(Determinism)指系统在相同输入和相同初始条件下,能够以可预测的时间行为重复执行。以典型的电机电流环为例,若控制周期为 100 μs,则每个周期内必须完成 ADC 采样、坐标变换、PI 运算、PWM 更新。假设某次循环因操作系统调度延迟了 30 μs,则实际控制周期变为 130 μs,等效控制带宽下降、相位裕度减小,严重时引起振荡。因此确定性控制的核心诉求是:

  1. 周期任务按固定节拍执行,抖动尽可能小(典型目标 < 10 μs);
  2. 关键任务不被非关键任务抢占;
  3. 内存分配、文件写入、网络通信等不确定操作不进入控制回路;
  4. 超时、溢出、通信失败等异常有明确的降级策略。
判断一个测试任务是否需要实时方案,可以问三个问题:控制周期是否小于 1 ms?抖动是否会影响结果或安全?超时是否会造成不可接受的后果?只要有一个回答“是”,就应优先考虑实时系统。

1.3 LabVIEW 实时模块架构

LabVIEW 实时模块采用“主机—目标”双机架构。开发主机(Windows)负责编写、编译、部署和监控;实时目标(PXI 控制器、CompactRIO、cRIO、工业 PC 等)运行实时操作系统,独立执行确定性任务。二者通过网络(TCP/IP、共享变量、网络流)交换数据。实时目标上的程序被编译为独立可执行文件,开机自动运行,不依赖主机在线。

实时目标内部通常划分为两个层次:时间关键循环(Timed Loop,优先级最高,执行控制算法与 I/O)和非时间关键循环(优先级较低,执行日志、通信、界面更新)。二者通过 RT FIFO 或共享变量通信,避免低优先级任务阻塞高优先级任务。LabVIEW 的定时循环支持硬件定时、1 MHz 时基和优先级设置,是构建确定性控制回路的核心结构。

LabVIEW 实时系统主机—目标架构与数据流 开发主机 (Windows) LabVIEW 项目与 VI 编译 / 部署 / 调试 监控界面与数据记录 历史数据 / 报表 非确定性环境 以太网 TCP / 共享变量 实时目标 (RTOS) 时间关键循环 (Timed Loop) 优先级最高 · 硬件定时 · 抖动 < 10 μs ADC → 控制算法 → DAC / PWM 非时间关键循环 优先级较低 · 日志 / 通信 / 状态上报 RT FIFO 与关键循环解耦 I/O 与硬件接口 模拟 / 数字 / 计数器 / FPGA 部署 / 下载 数据 / 状态回传

1.4 典型应用场景

实时测试系统在工程中覆盖面很广,常见场景包括:

应用领域典型周期确定性要求
电机电流环 / 伺服控制50~200 μs硬实时,抖动 < 5 μs
汽车 ECU 硬件在环 (HIL)0.1~1 ms硬实时,抖动 < 10 μs
电力电子变流器控制10~100 μs硬实时
结构疲劳试验加载1~10 ms固实时
温度 / 压力数据采集10~100 ms软实时

可以看到,周期越短、对抖动越敏感的任务,越需要实时操作系统与专用硬件支持。LabVIEW 实时模块配合 CompactRIO 的 FPGA 背板,可以把最内层回路放到 FPGA 上以纳秒级确定性执行,而把较慢的监控、通信任务放在实时 CPU 上,形成分层确定性架构。

1.5 课程项目导入

本课程将围绕一个贯穿始终的示例项目展开:基于 CompactRIO 的直流电机转速闭环实时测试系统。项目目标是在实时目标上以 1 kHz 周期执行转速闭环控制,同时采集电流、转速、温度三路信号,并通过网络把数据回传到主机进行显示与记录。示例参数如下(属于教学设定,非实测结果):

  • 控制周期:1 ms(1 kHz),目标抖动 < 10 μs;
  • 编码器:1000 线,四倍频后 4000 计数/转;
  • 电机额定转速:3000 rpm,对应 200 计数/ms;
  • 电流采样:12 位 ADC,量程 ±10 A;
  • 控制算法:PI 控制器,Kp = 0.8,Ki = 0.05(示例初值,需现场整定);
  • 通信:共享变量回传,更新率 100 Hz。

在后续章节中,我们将依次完成实时目标配置、定时循环搭建、I/O 读写、PI 控制实现、RT FIFO 通信、抖动测量与性能优化。判断系统是否达标的核心依据是:在连续运行 10 分钟以上时,定时循环的实际周期抖动是否稳定小于设定阈值,且无超时计数增长。若抖动超标,应优先检查循环内是否存在动态内存分配、文件操作或未限定超时的通信调用。

本节的关键结论:实时系统的本质是时间确定性,而非单纯的高性能;LabVIEW 实时模块通过主机—目标分离、定时循环与优先级调度,把确定性控制回路与非确定性任务解耦,从而在工程上实现可预测的周期行为。