FaultParamsExtract 模块文档¶
所属工具箱:RflySim PHM

简介¶
一句话描述:该模块用于从输入的故障标识数组与对应参数数组中,提取指定ID故障的相关参数,并输出故障存在标识。
该模块是RflySim PHM故障预测与健康管理工具链中的基础预处理模块,用于实现针对PX4飞控输出的多故障信息的筛选解析。在无人机故障注入与PHM算法仿真验证场景中,该模块一般对接来自PX4或者CopterSim输出的批量故障信息数据,从中提取用户指定故障的参数,为后续的故障诊断、健康评估算法提供结构化的输入数据。
该模块可配合RflySim平台的故障注入模块、PX4飞控仿真环境与RflySim3D可视化环境共同使用,能够快速完成故障PHM算法仿真验证的信息预处理流程,适配无人机各类执行器、传感器故障的仿真验证需求。
端口说明¶
输入端口(Inputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
FaultID |
double |
1×1 |
需要检测的目标故障标识符 |
inInts |
double |
1×N |
[待确认] 存储多个候选故障标识符的整数数组 |
inFloats |
double |
1×N |
[待确认] 与inInts一一对应的故障参数浮点数数组 |
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
hasFault |
double |
1×1 |
目标故障检测结果,检测到目标故障则返回1(对应逻辑真),否则返回0(对应逻辑假) |
FaultParam |
double |
1×20 |
存储提取出的故障参数。若检测到目标故障,数组前16个元素为对应故障参数,后4个元素为inFloats数组的最后4个值;未检测到故障时填充默认零值 |
参数配置(Parameters)¶
本模块无可配参数。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single、int、boolean |
| 直接馈通(Direct Feedthrough) | 是 |
| 采样时间 | 继承 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块不涉及网络通信。
相关模块¶
| 模块名 | 说明 |
|---|---|
ActuatorFaultInject |
为固定翼无人机执行器注入预设类型的故障信号 |
PropFaultInject |
为多旋翼无人机电机注入预设类型的故障信号 |
SensorFaultInject |
为无人机传感器注入预设类型的故障信号 |
FaultDetectionCheck |
检测无人机传感器、执行器故障的检测结果准确率 |
PHMDataRecv |
接收来自飞控的PHM相关原始数据,用于故障诊断与预测 |
RULCalculate |
计算性能衰减故障的剩余使用寿命,并输出评估误差 |
HealthIndicatorExtract |
提取无人机系统运行过程中的健康指标信号 |
FaultIDEncode |
将故障ID与对应参数编码为标准格式的故障数据数组 |
MultipleFaultsExtract |
从编码的多故障数据数组中提取多个故障的参数信息 |
IMUOnlineCalibration |
实现仿真环境中IMU的在线标定功能 |
BarometerOnlineCalibration |
实现仿真环境中气压计的在线标定功能 |
GPSOnlineCalibration |
实现仿真环境中GPS的在线标定功能 |
MagnetometerOnlineCalibration |
实现仿真环境中磁力计的在线标定功能 |
RangeFinderOnlineCalibration |
实现仿真环境中测距传感器的在线标定功能 |
OpticalFlowOnlineCalibration |
实现仿真环境中光流传感器的在线标定功能 |
VIOOnlineCalibration |
实现仿真环境中VIO传感器的在线标定功能 |
ESCOnlineCalibration |
实现仿真环境中电调的在线校准功能 |
快速开始¶
在 Simulink 模型中使用此模块的最小步骤。
- 在 MATLAB 中执行 RegisterMatlab 注册 RflySim PHM 工具箱
- 在 Simulink Library Browser 的 RflySim PHM 库中找到 FaultParamsExtract 模块
- 将模块拖入你的故障诊断仿真模型,按接口定义连接输入输出信号
使用示例¶
基础用法:检测特定作动器卡死故障¶
% 模型初始化脚本示例
% 定义要检测的目标故障ID:1对应左舵机卡死故障
targetFaultID = 1;
% 示例输入数组:当前仿真中存在的故障ID列表
inputInts = [0, 1, 3]; % 0表示无故障,1为左舵卡死,3为GPS信号异常
% 对应故障参数:左舵卡死角度为15度,GPS偏移参数为[2.5, 1.8, 0],额外状态参数[12, 0, 0, 0]
inputFloats = [0, 15, 2.5, 1.8, 0, 12, 0, 0, 0];
在Simulink模型中,将targetFaultID连接至FaultID输入端口,inputInts和inputFloats分别连接对应输入端口后,输出hasFault会返回true表示检测到目标故障,FaultParam数组前16位会存储15这个卡死参数,最后4位会存储输入inputFloats的最后4个值[12, 0, 0, 0]。
多轮故障检测场景¶
% 遍历检测多个故障的初始化脚本
faultIDList = [1, 2, 3]; % 需要依次检测的故障ID列表
for i = 1:length(faultIDList)
currentFaultID = faultIDList(i);
% 将currentFaultID输入FaultParamsExtract模块,即可得到对应故障是否存在和对应参数
end
注意事项与常见问题¶
- 输入维度匹配:
inInts数组长度必须不大于inFloats数组长度,inInts中每个故障ID对应inFloats中至少1个参数,否则会出现维度不匹配错误。 - 输出数组长度固定:
FaultParam输出固定为长度20的浮点数数组,即使未检测到目标故障,输出数组长度也不会改变,未使用的元素默认为0。 - 故障ID唯一性:若
inInts中存在多个相同的目标FaultID,模块默认返回第一个匹配到FaultID对应的故障参数。 - 参数存储规则:单个故障对应的参数长度超过16时,仅前16个参数会存入
FaultParam的前16位,超出部分会被截断。 - 采样时间匹配:该模块为组合逻辑模块,建议设置为与故障输入信号相同的采样时间,避免仿真步长不匹配导致的参数读取错误。
更新日志¶
v4.10(2024-07-24): 新增FaultParamsExtract故障参数提取模块,支持从输入整数数组和浮点数数组中提取指定FaultID对应的故障参数输出。