Skip to content

PropFault Module Documentation

Toolbox: RflySim PHM

PropFault Module Appearance

Introduction

One-sentence Description: This module models propeller faults for multi-rotor UAVs, enabling injection of specified fault types and parameters into motor speed inputs, and outputting the resulting motor speeds after fault application.

This module is the core component of the RflySim PHM (Prognostics and Health Management) toolchain for UAV fault injection modeling, primarily targeting simulation-based validation of UAV fault diagnosis and fault-tolerant control algorithms. Internally, it integrates a fault parameter extraction module and a propeller fault modeling module, supporting fault injection of varying severity into up to 8 motors. Faults are implemented via health coefficients, ranging from 0 (complete motor failure) to 1 (no fault), and support flexible configuration of typical propeller fault types such as partial failure and efficiency degradation.

Within the RflySim simulation toolchain, this module is commonly placed between the PX4 flight controller and the CopterSim physical simulator. It receives motor speed inputs with injected noise, processes them to apply fault effects, and outputs the resulting speeds to the propeller dynamics model. It also accepts upper-layer fault injection control signals. It can be integrated with RflySim3D for visualizing fault effects and supports hardware-in-the-loop (HIL) simulation, providing reliable fault simulation support for PHM algorithm development and fault-tolerant control algorithm development.

Port Descriptions

Input Ports (Inputs)

Port Name Data Type Dimension Description
MotorRadsin double N×1 Motor speed with injected noise; N is the number of motors under consideration
FaultIn double 8×N Fault input containing fault parameters for each motor; 8 parameters per motor
FaultID int 1×N Unique fault identifier key for each motor to be fault-injected; N is the number of motors

Note: The above ports are organized based on the internal structure of the module; the original SDK only explicitly specifies the MotorRadsin input for the top-level module.

Output Ports (Outputs)

Port Name Data Type Dimension Description
MotorRads double N×1 Propeller/motor speed after fault injection; N is the number of motors under consideration

Parameter Configuration (Parameters)

The following parameters can be configured in the Mask dialog box opened by double-clicking the module:

Parameter Name Type Default Value Available Values/Range Description
PropNum int 4 1~8 Total number of motors for which fault injection is to be modeled

Parameter Setting Description

PropNum

This parameter specifies the total number of motors for which fault injection is considered in the simulation. It supports modeling faults for up to 8 motors simultaneously; for typical multi-rotor UAVs, it is usually set to 4.

Module Characteristics (Block Characteristics)

Characteristic Value
Supported Data Types double, single
Direct Feedthrough Yes
Sample Time Inherited
Code Generation Support No

Data Communication Protocol

This module does not involve network communication.

Module Name Description
FaultParamsExtract Extracts fault parameters, supports selection of propeller fault types, and outputs propeller speeds after fault injection
PropFaultModel Implements mathematical modeling of propeller fault injection, adjusting output speed based on health coefficients
ActuatorFault Another actuator fault injection module in the RflySim PHM library, suitable for modeling faults in actuators such as servos

Notes and Common Issues

  • Initialization Order: When using this module for multi-rotor UAV fault injection simulation, ensure that the aircraft initialization model in the RflySim platform completes execution before the PropFault module. Otherwise, the module may fail to correctly read the configured motor count and fault parameters, leading to abnormal fault injection results.
  • Parameter Format Requirements: Fault IDs and FaultParam parameters must conform to format requirements. FaultParam must be an array with length ≥ PropNum, where each element is the health coefficient for the corresponding motor, constrained to the range [0, 1]: 0 indicates complete motor failure (output remains 0), and 1 indicates no fault (output unchanged). Parameters outside this range will cause abnormal motor speed outputs.
  • Motor Count Matching: The PropNum input parameter must match the total number of motors in the actual multi-rotor UAV simulation. Only the first PropNum motors will be processed for fault injection; motors beyond this count will not receive fault parameters and will always output their original speeds.
  • Fault ID Matching Requirement: The order of fault IDs must correspond to motor numbering: the first element in the FaultID array corresponds to motor #1, the second to motor #2, and so on. Mismatched ordering will result in faults being injected into incorrect motors.
  • Sample Time Matching: The sample time of the PropFault module must match the sample time of the module generating the input motor speed signal to avoid speed output jumps caused by sample rate mismatches, which could affect simulation stability.

Changelog

  • v4.20 (2024-07-24): Initial release, implementing propeller fault injection and propeller modeling functionality, supporting health-coefficient-based fault injection for multi-motor multi-rotor UAVs.