Skip to the content
FixTheRobot Explore Robotics / UAV / Module 8 / M8-T7

UAV Systems Engineering · Module 8

M8-T7: FMEA

FMEA is a disciplined way to ask “how can this fail, what happens, how would we know, and what do we do” for every part of the system, before the vehicle flies.

  • Lesson 7 of 18
  • Safety, Verification and Flight Testing
  • Established engineering
  • About 7 minutes to read

Verification starts by knowing what you are verifying against. FMEA turns the system architecture into a list of concrete failure modes with consequences and detection means; that list drives the test plan, the monitors and the failsafes of the rest of this module.

Learning objectives

After this lesson, you should be able to:

  • Describe the structure of an FMEA table and the meaning of severity, occurrence and detection.
  • Build an FMEA for the navigation subsystem of a GNSS-denied UAV.
  • Compute and critically use a risk priority number, and know its limits.
  • Link each high-risk failure mode to a monitor, a mitigation and a test.

Conceptual explanation

An FMEA walks through the system element by element. For each element it lists the failure modes (how it can fail), their effects locally and at system level, the causes, the current controls (detection and prevention) and recommended actions. Each mode is scored for severity (S), occurrence (O) and detection (D), classically on 1–10 scales, and ranked by risk.

FMEA table structure
ColumnQuestion it answers
Item / functionWhat element, doing what?
Failure modeHow can it fail to do that?
Effect (local, system, vehicle)What happens if it does?
CauseWhy would it fail?
Current controlsWhat detects or prevents it today?
SS, OO, DDHow bad, how likely, how likely to go undetected?
Action and ownerWhat will reduce risk, who owns it, and what verifies it?

FMEA is a bottom-up method: start from components and ask what their failures do. Its complement, fault-tree analysis (lesson M8-T8), is top-down: start from a hazard such as “uncontrolled flight into a person” and ask which combinations of failures cause it. Use both.

Bottom-up FMEA and top-down fault treeFMEA starts at component failure modes and traces upward through local and system effects to a hazard. A fault tree starts at the hazard and works downward to the combinations of failures that cause it. Both feed the verification plan.Component failureLocal effectSystem effectHazard FMEA: bottom-up, “what does this failure cause?” Top eventAND / OR gatesSub-eventsBasic failures fault tree: top-down, “what combinations cause this hazard?”
FMEA and fault-tree analysis are two directions over the same system: use both.
Animation of an FMEA worksheet re-sorted. Eight failure modes have a severity, an occurrence and a detection score from one to ten. First they are listed and ranked by risk priority number, the product of the three scores; then the list is re-sorted with severity first. A mode with the highest severity but a low occurrence moves from near the bottom to the top, which shows why the RPN alone must not decide what is analysed first.
RPN = SS × OO × DD is easy to compute but multiplies ordinal scores, so very different risks can have the same number and a catastrophic, rare, well-detected failure scores low. Rank by severity first for safety-critical modes, then by RPN within a severity class. Illustrative scores for a small UAV. (Looping, about 5 seconds; drawn and computed for this course with illustrative values.)

Engineering intuition

The value of an FMEA is the conversation and the traceability, not the number. A team that writes “GNSS spoofing: effect, vehicle follows a false position; control: innovation gate only; detection score 8” has just discovered a gap, and the action (“add odometry cross-check, verify with the failure simulator”) is a requirement that can be tested. Scores help to order the work, but a mode with a catastrophic effect deserves action even if its risk priority number is low because it is rare.

Mathematical formulation

The classical risk priority number multiplies the three scores:

Risk priority number
RPN=S×O×D\mathrm{RPN} = S \times O \times D
Each score runs from 1 to 10, so 1 ≤ RPN ≤ 1000.
SS
severity of the worst credible effect: 10 = catastrophic (injury or uncontrolled flight), 1 = negligible.
OO
occurrence likelihood: 10 = almost certain in normal use, 1 = remote.
DD
detection: 10 = no means of detection before the effect, 1 = almost certain detection.

RPN has well-known weaknesses: it treats the three factors as interchangeable (SS = 10, OO = 1, DD = 1 gives 10, the same as S=2S=2, O=5O=5, D=1D=1), the scales are ordinal, and many different combinations give the same product. Modern practice (for example the harmonised AIAG-VDA approach) ranks by action priority that gives severity the strongest weight, and aviation safety processes tie severity classes to required assurance levels. For a first-pass UAV project, a simple rule works: act on every mode with severity ≥ 9 regardless of RPN, then on the highest RPNs.

Formal aviation practice (for example SAE ARP4761 for system safety assessment) uses defined severity classifications and probability targets per class. For an operation under a regulator’s risk assessment (for example JARUS SORA), the severity and likelihood definitions come from that framework: use them for any real approval.

Excerpt of a navigation FMEA with illustrative scores (to be re-scored by the project team against its own scales)
ItemFailure modeEffectDetection / controlSSOODDRPN
GNSS receiverLoss of fix (blockage, jamming)No absolute position; drift on odometryFix quality and C/N0 monitor66272
GNSS receiverSpoofed position, slow rampEstimate follows false position; geofence invalidInnovation gate only today938216
Camera / VIOLow features (dark, textureless)Visual odometry freezes or jumpsFeature count and inlier-ratio monitor763126
Camera / VIOCamera-IMU timing offset after a driver updateRotation-dependent driftNone until calibration check748224
LiDAR odometryDegenerate geometry (corridor)Drift along the corridor axisDegeneracy flag from covariance754140
IMUAccelerometer bias step (thermal or vibration)Inertial drift in all modesBias state monitor, redundant IMU83496
EstimatorOverconfident covarianceSilent drift while confidence stays GREENNIS and NEES monitoring946216
Companion computerProcess overrun or crashStale setpoints; PX4 leaves offboard modeHeartbeat, offboard timeout, watchdog84264
LinkLoss of GCS linkNo operator overrideLink-loss failsafe action75270

The scores above are illustrative: they show how the method ranks modes, not measured field rates. The two highest-risk items (spoofing with weak detection, and an overconfident estimator) have severity 9 and deserve action under the “severity first” rule. Each action must name a verification: the spoofing item is closed by adding the odometry cross-check and showing it works in the GNSS-Denied Failure Simulator and in a flight test of the acceptance plan.

Architecture and data flow

FMEA outputs feed the rest of the verification chain: each failure mode with a monitor becomes a requirement on the monitor (module 8, lesson M8-T1), each mitigation a design change to the architecture (lesson M2-T16), each detection claim a test case (lesson M8-T6), and the highest-severity modes the top events of fault trees (lesson M8-T8). Keep the FMEA as a living table under configuration control (lesson M7-T19): re-run it whenever the architecture changes.

Real-world UAV applications

  • Planning the failure-injection tests for software-in-the-loop and flight test.
  • Showing a regulator or customer that the navigation system’s failure modes were considered.
  • Prioritising which monitors to build first.
  • Choosing where redundancy buys the most risk reduction.

Implementation example

This runs as shown: a small FMEA tool that computes RPN, applies the “severity first” rule, and checks that every high-risk mode has a named verification. Keeping the FMEA as data lets the build fail when a high-risk mode has no test.

from dataclasses import dataclass

@dataclass
class Mode:
    item: str; mode: str; S: int; O: int; D: int; verification: str = ""
    @property
    def rpn(self): return self.S * self.O * self.D

fmea = [
    Mode("GNSS receiver", "spoofed position, slow ramp", 9, 3, 8, "SIM-GNSS-SPOOF; FT-04"),
    Mode("Camera / VIO", "timing offset after driver update", 7, 4, 8, ""),
    Mode("Estimator", "overconfident covariance", 9, 4, 6, "SIM-NEES; FT-02"),
    Mode("IMU", "accelerometer bias step", 8, 3, 4, "SIM-IMU-BIAS"),
    Mode("Link", "loss of GCS link", 7, 5, 2, "FT-07"),
]

def must_act(m: Mode, severity_threshold=9, rpn_threshold=150):
    return m.S >= severity_threshold or m.rpn >= rpn_threshold

for m in sorted(fmea, key=lambda m: (-m.S, -m.rpn)):
    flag = "ACT" if must_act(m) else "   "
    print(f"{flag} S={m.S} RPN={m.rpn:4d}  {m.item}: {m.mode}  [{m.verification or 'NO VERIFICATION'}]")

unverified = [m for m in fmea if must_act(m) and not m.verification]
print("high-risk modes without verification:", [m.mode for m in unverified])
assert [m.mode for m in unverified] == ["timing offset after driver update"]     # RPN 224 >= 150 and no test yet: the check catches it
assert max(fmea, key=lambda m: m.rpn).mode == "timing offset after driver update"
FMEA as data: RPN, a severity-first rule, and a check that every high-risk mode names its verification.

Common engineering mistakes

Using RPN as the only criterion

It hides catastrophic, rare modes. Apply a severity-first rule alongside it.

Listing component faults without system effects

The effect on the vehicle and on people is what sets severity.

Scoring detection optimistically

“We would notice” is not a detection mechanism. Name the monitor and the time to detect.

Writing the FMEA once at the end

It must drive design decisions early and be updated with every architecture change.

Actions with no verification

A mitigation not tested is a hope. Each action must name how it will be verified.

Failure modes

Failure modes, symptoms and causes
Failure modeHow it shows upLikely cause
Common-cause failures missedRedundant items fail together in the fieldItem-by-item analysis misses shared dependencies (power, clock, vibration)
Inflated confidence in detectionA monitor that never fired in test fails to fire in flightDetection scored without fault-injection evidence
Stale FMEANew sensor or software version has no analysisDocument not under change control
Ranking distorted by arbitrary scalesLow RPN on a severe modePure RPN ranking

Debugging approach

  1. Walk the system block diagram (Architecture Builder) and confirm every interface appears in the FMEA.
  2. For each detection claim, point to a fault-injection test that triggered it.
  3. Review each severity-9 mode with someone outside the design team.
  4. Cross-check against incident reports of similar vehicles for modes you did not list.

Practical exercises

  1. Add three failure modes for the companion computer and the power system and score them.
  2. Show with numbers why S=9S=9, O=1O=1, D=1D=1 should not be ranked below S=4S=4, O=5O=5, D=6D=6.
  3. Convert two FMEA rows into requirements with a verification method each.
  4. Use the failure simulator to produce evidence that a detection score of 3 is justified for GNSS loss.

Interview questions

Write an answer in your own words, then reveal the model answer. Nothing is sent anywhere.

Question 1

What is FMEA and how does it differ from fault-tree analysis?

Model answer

FMEA is bottom-up: start from component failure modes and trace effects. Fault-tree analysis is top-down: start from a hazard and find the failure combinations that cause it. They complement each other.

Question 2

What are the weaknesses of the RPN?

Model answer

It multiplies ordinal scores, so very different risks can give the same value and a severe but rare failure can rank low. Use a severity-first rule or action-priority tables.

Question 3

How do you make an FMEA drive verification?

Model answer

Give every high-risk mode a monitor or mitigation requirement and a named test case or simulation that demonstrates it, and track them in a traceability matrix.

References and further reading

Primary papers, official documentation and standards. Each claim above that is specific to a tool or version points here.

What’s next

Mark this lesson

Saved in this browser and synced to your account when you are signed in.

Practice this lesson

M8-L1: Develop an FMEA for a GNSS-denied UAV

Write an FMEA.

Next lesson

M8-T8: Fault-tree analysis

Build a fault tree from a top-level hazard, compute minimal cut sets, and identify single points of failure.