4. MicroAutoBox快速原型工程搭建流程

在故障注入工程中,MicroAutoBox(MABX)承担的是“真实控制器”的角色:它运行由Simulink模型生成的实时应用,通过I/O板卡与被控对象(Plant)交换信号。要让故障注入真正可用,第一步不是接故障盒,而是先把一个可编译、可下载、可运行、可观测的实时原型工程搭起来。本节以“直流电机转速闭环控制 + 可注入故障的被控对象”为例,完整走通从Simulink模型到MABX实时应用的链路。

一、工程链路与工具分工

MABX快速原型工程由三段构成:主机端(Host PC)负责建模与代码生成,配置工具负责硬件与实时参数设定,目标机(MABX)负责实时执行。三者之间的数据流与工具分工如下:

主机端 Host PC Simulink 模型(Controller + Plant) Configuration Parameters 设定 配置与代码生成 RTI1401 目标配置 / Build 生成 .sdf / .mk / 可执行文件 目标机 MicroAutoBox 实时应用(RTOS 任务) I/O 板卡:ADC / DAC / PWM / CAN 模型+配置 下载/运行 被控对象 Plant(可注入故障) 直流电机模型 负载/摩擦模型 故障注入点:传感器偏置 / 增益 / 卡滞 / 丢帧 控制量 u(PWM / DAC) 反馈量 y(转速 / 电流,经故障注入) 在线观测 ControlDesk 变量面板 实时曲线 / 示波器 参数在线标定 观测/标定

图中橙色路径是控制量输出,蓝色路径是反馈量输入,虚线是主机对目标机的在线观测与标定通道。故障注入点位于反馈路径上,因此注入故障后,控制器“看到”的反馈与真实被控对象状态不一致,这正是后续章节要研究的核心。

二、Simulink模型的组织方式

建议把模型拆成三个顶层子系统,便于后续替换与故障注入:

  • Controller:实现转速PI控制,输入为设定转速 n_ref 与反馈转速 n_fb,输出为占空比 u(0~1)。
  • Plant:直流电机一阶惯性模型,示例参数:转动惯量 J=0.0002 kg·m²,反电动势常数 Ke=0.05 V·s/rad,电枢电阻 R=1.2 Ω,采样周期 Ts=1 ms。
  • FaultInject:位于反馈通道,提供偏置、增益、卡滞、丢帧四种可切换故障模式。

控制器离散化后可用如下差分形式实现(示例参数 Kp=0.8,Ki=25):

% 转速PI控制器(离散,Ts = 1 ms)
e(k)   = n_ref(k) - n_fb(k);
P(k)   = Kp * e(k);
I(k)   = I(k-1) + Ki * Ts * e(k);
u(k)   = sat(P(k) + I(k), 0, 1);   % 输出限幅到 [0,1]

故障注入子系统在反馈通道上实现,例如传感器偏置故障:

% 故障注入:偏置 + 增益 + 卡滞
if fault_enable == 1
    n_fb = gain_fault * n_true + bias_fault;   % 偏置/增益故障
    if stuck_enable == 1
        n_fb = stuck_value;                    % 卡滞故障
    end
else
    n_fb = n_true;
end

三、Configuration Parameters关键设置

模型建好后,必须把求解器与代码生成参数改为适合实时执行的值,否则下载后会出现步长抖动或任务超时。关键项如下表:

参数项推荐值说明
SolverFixed-step实时系统必须定步长
Fixed-step size0.001 s与控制器 Ts 一致
System target filerti1401.tlcMicroAutoBox 目标
Code Generation onlyGenerate code only 不勾选需直接编译下载
Sample time1 ms对应实时任务周期
Stop timeinf实时运行不自动停止

四、编译、下载与运行

完成配置后,按以下顺序操作:

  1. 在 Simulink 中按 Ctrl+B 触发 Build,RTI 会调用编译器生成目标代码,并输出 .sdf 描述文件与可执行文件。
  2. 确认 MABX 已通过以太网与主机连通,在 RTI 配置中填写目标机 IP(示例:192.168.0.10)。
  3. 点击 Download,将实时应用下载到 MABX 并启动运行。
  4. 打开 ControlDesk,加载 .sdf 文件,即可看到模型中的变量与信号,拖入示波器即可观测。
首次下载建议先不使能故障注入,确认闭环能稳定跟踪设定转速,再逐步打开故障开关,这样便于区分“工程问题”与“故障现象”。

五、运行结果判读

以设定转速 n_ref = 1000 rpm 为例,正常闭环下反馈转速应在约 0.3 s 内上升并稳定在 1000 rpm 附近,稳态误差小于 1%。若打开偏置故障(bias_fault = +50 rpm),控制器会误以为转速偏高而减小输出,实际转速将稳定在约 950 rpm,形成稳态偏差;若打开卡滞故障,反馈被固定在某一值,控制器输出会持续饱和或振荡,此时观测 u 的波形即可判断故障类型。这些现象是后续故障诊断与容错策略设计的直接依据。

下载前务必确认 MABX 的 I/O 板卡类型与模型中的 I/O 模块一致,否则编译虽能通过,运行时会因通道映射错误导致信号无输出或读数异常。

至此,一个可运行、可观测、可注入故障的 MABX 快速原型工程已经建立。它既是后续故障注入实验的载体,也是验证控制器在异常反馈下行为的基础平台。