MADE Module Guides > FCM Modeling Background
5 Response Simulation and Failure Propagation
Firstly, MADE determines the initial state of the system. Subsequently, the simulation responses can be represented using an iterative set of matrix multiplications:
A^(t-1) · W + C·P = A^t
Where:
- A^(t-1) is the system state vector from the previous time-step. During the first time-step of the analysis, A^(t-1) = A^0. A^0 represents the initial state of the system (the value of each flow property at the beginning of the analysis).
- W is the weighting matrix that describes all the inter-connections between FFPs in the system.
- C is the matrix that describes the connections between injected deviation (or failure) concepts and the FFPs in the system. As such, the matrix only contains values along the principal diagonal.
- P is the perturbation vector that describes any permanent changes or deviations to the FFPs in the system.
- A^t is the system state vector that represents values of the FFPs after a time-step.
Within MADE, the connections in the C matrix are set at 1.0 across the principal diagonal, and as such the equation can be simplified to:
A^(t-1) · W + P = A^t
Note that the above equation and the worked example below have no threshold. In MADE, this type of simulation can be replicated using the "No Threshold" setting. Thresholds are discussed in the Thresholding section (see fcm-background-guide-thresholding.md).
Simulation Process
The following is a simplification of the process MADE goes through as it performs a response analysis of a system:
- The weighting matrix (W) is generated.
- Causal connections in the system are represented in an n × n matrix.
- The size of the matrix depends on the number of nodes, i.e. 4 nodes = 4×4 matrix.
- Each column and row represents each node/flow property in the system.
- Example: Node A will take up the first column (AA, AB, AC) and row (AA, BA, CA) of a 9×9 matrix.
- Each cell represents the causal strength and polarity of the connection linking the row flow property to the column flow property.
- If there is no connection from one flow property to another, that cell is allocated a zero value (i.e. there is no dependency between the properties).
- Take note of the causal connection direction (e.g. AC is valid but not CA in the worked example).
- Causal connections in the system are represented in an n × n matrix.
- An initial state vector (A^0) is generated.
- 1×n vector.
- Each column represents a flow property.
- Each cell contains the initial value of the flow property.
- A perturbation vector (P) is generated.
- 1×n vector.
- Each column represents a flow property.
- Each cell represents a perturbation or change imparted on the flow property.
- Multiply the initial state vector (A^0) by the weighting matrix (W).
- A^0 × W.
- Results in a 1×n vector.
- Add the perturbation vector (P).
- Results in a new 1×n system state vector (A^t).
- A^0·W + P = A^t.
- Replace the initial value vector (A^0) with the new system state vector (A^t) and iterate steps 4 and 5.
- A^(t-1)·W + P = A^t.
- Iterate the process until equilibrium is reached.
- Equilibrium is defined as two consecutive system state vectors being equal.
- A^(t-1) = A^t.
Figure 4 ("FCM Diagram") shows a minimal 3-node example: A → B (weight AB), A → C (weight AC), B → C (weight BC).
Figure 5 ("Connection Matrix for Diagram in Fig.3") shows the corresponding weighting matrix structure:
[ 0 AB AC ]
W = [ 0 0 BC ]
[ 0 0 0 ]
Worked Example
Below is a stepped-through example of the above procedure with a simplified three-concept (flow property) system with no perturbations (no failures injected).
Figure 6 shows the FCM diagram with causal strengths and initial values: Node A (initial value 1.0) → B (weight 1.0) → C (weight 0.5); A → C directly (weight 0.7). Node B initial value 0.6, Node C initial value 0.8.
- Weighting matrix:
[ AA AB AC ] [ 0 1 0.7 ]
W = [ BA BB BC ] = [ 0 0 0.5 ]
[ CA CB CC ] [ 0 0 0 ]
Initial state vector: A^0 = [1.0, 0.6, 0.8]
Perturbation vector: P = [0.0, 0.0, 0.0]
A^0 × W:
[1.0 0.6 0.8] × [ 0 1 0.7 ] = [0 1.0 1.0]
[ 0 0 0.5 ]
[ 0 0 0 ]
- A^0·W + P = A^t:
[1.0 0.6 0.8] × W + [0.0 0.0 0.0] = [0 1.0 1.0]
A^t = [0 1.0 1.0]
- Next iteration, A^(t-1)·W + P:
[0 1.0 1.0] × W + [0.0 0.0 0.0]
A^t = [0.0 0.0 0.5]
- After four total time-steps (iterations) the simulation has reached an equilibrium with the final values of [0.0, 0.0, 0.0].
This worked example is a directly reusable reference for hand-verifying or reimplementing MADE's core FCM response-simulation arithmetic: state vector times weighting matrix, plus perturbation vector, iterated to a fixed point.
Source: Local MADE 3.9.1 installation: com.phm.made.help.plugin/documents/help/pdf/FCM Modeling Background.pdf · retrieved 2026-07-09