跳转至

RflySim PHM-故障注入与健康评估接口库


RflySim PHM(Prognostics and Health Management)库提供了一套完整的故障注入与健康评估工具,支持对无人机各类硬件故障进行建模、注入和评估,用于验证飞控系统的容错能力和故障处理性能。


模块列表

动力系统故障

模块 功能描述
Motor Fault 电机故障注入,支持电机效率下降、卡死、停转等故障模式
Prop Fault 螺旋桨故障注入,支持桨叶损伤、脱落、效率下降等故障
Battery Fault 电池故障注入,支持电压跌落、容量衰减、内阻增大等故障

环境干扰故障

模块 功能描述
Wind Fault 风干扰故障注入,支持阵风、湍流、风切变等环境干扰
Load Fault 载荷故障注入,支持载荷突变、重心偏移、挂载脱落等

传感器故障

模块 功能描述
GPS Fault GPS 故障注入,支持定位漂移、信号丢失、精度下降等故障
Sensor Fault 通用传感器故障注入,支持 IMU、磁力计、气压计等传感器故障

工具模块

模块 功能描述
PHM 6DOF 接入 PHM 故障模型总线的六自由度动力学模块,用于故障注入场景下的运动状态计算
Fault Params Extract 故障参数提取模块,用于从故障配置中提取和解析故障参数

故障类型说明

动力系统故障

故障类型 典型表现 应用场景
电机效率下降 转速降低、响应变慢 电机老化、过热保护
电机卡死 完全失去动力 机械故障、异物卡死
螺旋桨损伤 拉力下降、振动增大 桨叶碰撞、疲劳裂纹
电池电压跌落 功率不足、提前降落 低温、过放电

环境干扰故障

故障类型 典型表现 应用场景
阵风干扰 姿态振荡、位置偏移 强风天气、城市风场
湍流干扰 随机振动、控制困难 复杂地形、尾流区域
载荷突变 重心偏移、控制裕度下降 投放载荷、吊挂摆动

传感器故障

故障类型 典型表现 应用场景
GPS 漂移 定位误差增大、导航失败 遮挡环境、多路径效应
IMU 漂移 姿态估计偏差、自旋发散 温度漂移、振动干扰
磁力计干扰 偏航角跳变、校准失败 电磁干扰、硬铁效应

使用场景

容错控制算法验证

  • 故障检测:验证飞控对各类故障的检测能力和响应速度
  • 控制重构:测试故障发生后的控制重构和降级控制能力
  • 安全着陆:验证严重故障情况下的紧急降落策略

传感器融合算法测试

  • 故障识别:测试多传感器融合对单传感器故障的识别能力
  • 权重调整:验证故障情况下的传感器权重自适应调整
  • 状态估计:评估故障条件下的状态估计精度

飞行安全评估

  • 故障覆盖率:评估飞控对不同故障模式的覆盖能力
  • 故障传播:分析故障在系统中的传播路径和影响范围
  • 安全边界:确定不同故障条件下的安全飞行边界

使用注意事项

故障参数设置

  1. 故障强度:故障强度参数需在合理范围内,过大的值可能导致仿真发散或崩溃
  2. 渐变注入:建议采用渐变方式注入故障,避免瞬时剧烈变化导致仿真不稳定
  3. 故障时机:选择适当的故障注入时机,避免在关键控制阶段(如起飞、降落)注入严重故障
  4. 参数一致性:确保故障参数与故障类型匹配,避免不兼容的参数组合

仿真安全

  1. 边界保护:设置合理的飞行边界,当无人机状态超出安全范围时自动终止仿真
  2. 故障恢复:设计故障恢复测试时,确保有足够的恢复时间和空间
  3. 多故障叠加:谨慎测试多故障同时发生的情况,避免不可预见的交互效应
  4. 日志记录:启用详细的仿真日志记录,便于事后分析和故障重现

与飞控的交互

  1. 消息频率:故障注入消息的发送频率需与飞控处理周期匹配,避免消息堆积或丢失
  2. 协议兼容性:确保故障参数格式与飞控期望的格式一致,避免解析错误
  3. 权限管理:在实机测试前,先在仿真环境中充分验证故障注入逻辑
  4. 紧急停止:实机测试时确保有可靠的紧急停止机制,能够在故障失控时立即接管

故障建模原理

PHM 故障模型将故障注入位置分为执行机构、环境、载荷、传感器和状态输出链路。建模目标不是单纯让仿真异常,而是让故障能够被控制器、诊断算法和健康评估模块观测到。

故障建模模板

整机故障模型

运动模型注入关系

除传感器以外,多数故障最终都会通过总力、总力矩、质量、惯量或外部扰动进入刚体运动模型。

\[ \begin{aligned} {}^{e}\dot{p} &= {}^{e}v \\ {}^{b}\dot{v} &= -[{}^{b}\omega]_{\times}{}^{b}v + gR_{be}^{T}e_3 + \frac{F}{m} \\ \dot{q} &= \frac{1}{2} \begin{bmatrix} 0 & -{}^{b}\omega^T \\ {}^{b}\omega & -[{}^{b}\omega]_{\times} \end{bmatrix}q \\ J{}^{b}\dot{\omega} &= -{}^{b}\omega \times (J{}^{b}\omega) + \tau + G_a \end{aligned} \]
故障类别 主要影响量
动力系统故障 总升力 F、三轴力矩 tau
环境故障 外力、外力矩、相对风速和世界系速度
载荷故障 质量 m、惯量矩阵 J、附加力矩
传感器故障 尺度因子、常值偏置、冲击、延迟、随机游走噪声

动力系统故障

动力系统故障链路

故障类型 注入位置 典型表现 关键参数
电池故障 电压、电流、剩余容量模型 电压跌落、动力不足、续航缩短 内阻、容量、SOC、放电倍率
电调故障 PWM 到电机命令之间 单路输出饱和、延迟、失效 增益、偏置、死区、响应时间
电机故障 电机转速和推力模型 推力下降、卡滞、响应变慢 推力系数、转速上限、时间常数
螺旋桨故障 推力/扭矩生成环节 桨效下降、失衡、额外振动 效率系数、损伤比例、扭矩偏差

动力系统可按电池、ESC、电机、螺旋桨的信号链建模:

子模型 关系式 说明
电池 U_b = k_Ub * f_Ub(C_dch_effective, U_b0) k_Ub 为电池故障系数,影响输出电压
ESC U_m = k_Um * sigma * U_b sigma 为归一化油门,k_Um 为电调故障系数
电机 omega = k_omega / (k_Tm * T_m * s + 1) * omega_ss 描述响应速度和执行效率故障
螺旋桨 T = k_CT * c_T * omega^2M = c_M/T * T k_CT 改变拉力效率

环境与载荷故障

故障类型 建模方式 影响
风力故障 在地理坐标系或机体系加入外力 位置漂移、速度误差、姿态补偿增大
风矩故障 加入额外滚转/俯仰/偏航力矩 姿态振荡、控制量长期偏置
实时障碍物 通过 UE 或碰撞模型注入障碍 路径规划、避障和碰撞检测
质量变化 修改质量参数 模拟载荷投放、挂载变化、电池替换
转动惯量变化 修改惯量矩阵 影响姿态响应和角加速度
质心偏移 修改重心或附加力矩 产生持续姿态偏差和控制补偿

载荷故障应同步更新重力、惯量和力臂,否则会出现不一致的动力学结果。

环境风场可由大气紊流、常风、风切变和阵风叠加:

\[ {}^{e}v_{wind} = {}^{e}v_{turb} + {}^{e}v_{cons} + {}^{e}v_{sheer} + {}^{e}v_{gust} \]

风扰动造成的阻力和附加力矩可写为:

\[ F_{wind} = -C_d v_{wind,b,relative}\lvert v_{wind,b,relative}\rvert \]
\[ \tau_{wind}=p_{wind}\times F_{wind} \]

其中 p_wind 是风力作用点在机体系下的位置向量。实时障碍物通常由三维引擎在故障触发时间动态实例化,可与风场叠加用于构造复杂任务环境。

载荷质量偏移会改变惯量矩阵并引入附加力矩:

\[ J = J_{health} + J_{body} \]
\[ \tau_{body}=p_{var}\times R_{be} \begin{bmatrix} 0\\0\\g \end{bmatrix} m_{var} \]

传感器故障

传感器 常见故障 观测表现
陀螺仪 偏置、噪声增大、漂移、卡死 姿态估计漂移、角速度异常
加速度计 偏置、比例因子、冲击异常 姿态估计和速度估计异常
磁力计 偏置、干扰、失锁 航向角跳变或长期偏差
气压计 偏置、随机游走、阶跃 高度估计错误
GPS 丢星、延迟、噪声、欺骗、位置跳变 位置和速度估计异常

传感器故障通常注入在 SensorOutput 或 HIL 输出前。注入后应保证数据类型、单位和采样频率仍满足飞控输入要求。

常用传感器故障可统一表示为真实量经过尺度因子、常值偏置、漂移和噪声后的测量量:

传感器 简化模型 主要参数
陀螺仪 omega_m = k_g * (omega + c_g) + b_g + n_g 尺度因子、常值偏置、漂移、白噪声
加速度计 a_m = k_a * (a + lever_arm_terms - gravity_terms) + b_a + n_a 尺度因子、杆臂项、漂移、噪声
磁力计 m_m = k_m * (R_be * m_e + c_m) + b_m + n_m 地磁向量、安装姿态、偏置
气压计 d_baro = -k_baro * (p_z + c_baro) + b_baro + n_baro 高度偏置、尺度因子、漂移
GPS p_gps = k_gps * (p + c_gps) + b_gps + n_gps 位置偏置、尺度因子、随机游走

故障注入协议

PHM 模块通过 inSILIntsinSILFloats 接收故障标识符与故障参数。每个故障使用唯一 FaultID 定位类型,参数按故障模块约定写入浮点数组。

变量名 类型 长度 说明
inSILInts int32[] 8 故障标识符,用于类型选择与通道定位
inSILFloats float32[] 20 故障参数,用于设置故障强度、比例、噪声或风速等

故障注入逻辑

FaultID 故障类型 故障参数
123450 电机执行效率故障 1 到 x 号电机执行效率比,范围 0-1
123451 螺旋桨故障 1 到 x 号螺旋桨执行效率比,范围 0-1
123452 电池失效故障
123453 低电压故障 电压失效比,范围 0-1
123454 低电量故障 电量失效比,范围 0-1
123455 负载故障 重量泄露比,范围 0-1
123456 负载漂移故障 重量泄露比与 x/y/z 泄露因子,范围 0-1
123457 负载泄露故障 重量泄露比与泄露因子,范围 0-1
123458 常风故障 x/y/z 轴风速
123459 阵风故障 阵风强度与风到达时间
123540 紊流风故障 紊流风强度
123541 切向风故障 切向风强度
123542 加速度计噪声干扰 噪声增益
123543 陀螺仪噪声干扰 噪声增益
123544 磁力计噪声干扰 噪声增益
123545 气压计噪声干扰 噪声增益
123546 GPS 故障 噪声增益、3D 方式和卫星数量

单故障注入示例:4 个电机效率分别为 10.80.51

inSILInts   = [123450, 123450, 0, 0, 0, 0, 0, 0]
inSILFloats = [1, 0.8, 0.5, 1, 0, 0, ..., 0]

多故障联合注入示例:同时注入电机效率故障和加速度计噪声故障。

inSILInts   = [123450, 123450, 123544, 0, 0, 0, 0, 0]
inSILFloats = [1, 0.5, 0.2, 0.7, 5, 0, ..., 0]

故障参数管理

参数 说明
faultType 故障类别或模块编号
startTime 故障开始时间
duration 故障持续时间
severity 故障强度或损伤比例
channel 执行机构或传感器通道
bias 加性偏置
scale 乘性比例
noiseStd 噪声标准差

做 PHM 数据集时,建议同时记录故障参数、飞控日志、真值状态、控制输入和传感器输出。只保存飞控日志通常不足以复盘故障发生位置和强度。

模块页面索引

主题 页面
电池故障 Battery Fault
电机故障 Motor Fault
螺旋桨故障 Prop Fault
风场与环境故障 Wind Fault
载荷故障 Load Fault
GPS 故障 GPS Fault
通用传感器故障 Sensor Fault
PHM 六自由度模型 PHM 6DOF
故障参数提取 Fault Params Extract

相关资源


注意:本文档为 RflySim PHM 库的索引文档。各模块的详细使用说明请参考对应模块的独立文档页面。