PropFault Module Documentation¶
Toolbox: RflySim PHM

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
MotorRadsininput 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.
Related Modules¶
| 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
FaultParamparameters must conform to format requirements.FaultParammust 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
PropNuminput parameter must match the total number of motors in the actual multi-rotor UAV simulation. Only the firstPropNummotors 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
FaultIDarray 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.