Signal-flow graphs are another method for visually representing a system. Signal Flow Diagrams are especially useful, because they allow for particular methods of analysis, such as Mason's Gain Formula .
Signal flow diagrams typically use curved lines to represent wires and systems , instead of using lines at right-angles, and boxes, respectively. Every curved line is considered to have a multiplier value, which can be a constant gain value, or an entire transfer function. Signals travel from one end of a line to the other, and lines that are placed in series with one another have their total multiplier values multiplied together (just like in block diagrams).
Signal flow diagrams help us to identify structures called "loops" in a system, which can be analyzed individually to determine the complete response of the system.
An example of a signal flow diagram.
A forward path is a path in the signal flow diagram that connects the input to the output without touching any single node or path more than once. A single system can have multiple forward paths.
A loop is a structure in a signal flow diagram that leads back to itself. A loop does not contain the beginning and ending points, and the end of the loop is the same node as the beginning of a loop.
Loops are said to touch if they share a node or a line in common.
The Loop gain is the total gain of the loop, as you travel from one point, around the loop, back to the starting point.
The Delta value of a system, denoted with a Greek Δ is computed as follows:
Δ
=
1
−
A
+
B
−
C
+
D
−
E
+
F
.
.
.
.
.
.
+
∞
{\displaystyle \Delta =1-A+B-C+D-E+F......+\infty }
Where:
A is the sum of all individual loop gains
B is the sum of the products of all the pairs of non-touching loops
C is the sum of the products of all the sets of 3 non-touching loops
D is the sum of the products of all the sets of 4 non-touching loops
et cetera.
If the given system has no pairs of loops that do not touch, for instance, B and all additional letters after B will be zero.
Mason's rule is a rule for determining the gain of a system. Mason's rule can be used with block diagrams, but it is most commonly (and most easily) used with signal flow diagrams.
If we have computed our delta values (above), we can then use Mason's Gain Rule to find the complete gain of the system:
M
=
y
o
u
t
y
i
n
=
∑
k
=
1
N
M
k
Δ
k
Δ
{\displaystyle M={\frac {y_{out}}{y_{in}}}=\sum _{k=1}^{N}{\frac {M_{k}\Delta \ _{k}}{\Delta \ }}}
Where M is the total gain of the system, represented as the ratio of the output gain (yout ) to the input gain (yin ) of the system. Mk is the gain of the kth forward path, and Δk is the loop gain of the kth loop.
Solving a signal-flow graph by systematic reduction : Two interlocking loops
edit
This example shows how a system of five equations in five unknowns is solved using systematic reduction rules.
The independent variable is
x
i
n
{\displaystyle x_{in}}
. The dependent variables are
x
1
{\displaystyle x_{1}}
,
x
2
{\displaystyle x_{2}}
,
x
3
{\displaystyle x_{3}}
,
x
4
{\displaystyle x_{4}}
,
x
o
u
t
{\displaystyle x_{out}}
. The coefficients are labeled
a
,
b
,
c
,
d
,
e
{\displaystyle a,b,c,d,e}
.
Here is the starting flowgraph:
x
1
=
x
i
n
+
e
x
3
x
2
=
b
x
1
+
a
x
4
x
3
=
c
x
2
x
4
=
d
x
3
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+ex_{3}\\x_{2}&=bx_{1}+ax_{4}\\x_{3}&=cx_{2}\\x_{4}&=dx_{3}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
The steps for solving
x
o
u
t
{\displaystyle x_{out}}
follow.
Removing edge c from x2 to x3
edit
x
1
=
x
i
n
+
e
x
3
x
2
=
b
x
1
+
a
x
4
x
3
=
c
x
2
x
3
=
c
(
b
x
1
+
a
x
4
)
x
3
=
b
c
x
1
+
c
a
x
4
x
4
=
d
x
3
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+ex_{3}\\x_{2}&=bx_{1}+ax_{4}\\x_{3}&=cx_{2}\\x_{3}&=c(bx_{1}+ax_{4})\\x_{3}&=bcx_{1}+cax_{4}\\x_{4}&=dx_{3}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Removing node x2 and its inflows
edit
x
2
{\displaystyle x_{2}}
has no outflows, and is not a node of interest.
Removing edge e from x3 to x1
edit
x
1
=
x
i
n
+
e
x
3
x
1
=
x
i
n
+
e
(
b
c
x
1
+
c
a
x
4
)
x
1
=
x
i
n
+
b
c
e
x
1
+
a
c
e
x
4
x
2
=
b
x
1
+
a
x
4
x
3
=
b
c
x
1
+
c
a
x
4
x
4
=
d
x
3
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+ex_{3}\\x_{1}&=x_{\mathrm {in} }+e(bcx_{1}+cax_{4})\\x_{1}&=x_{\mathrm {in} }+bcex_{1}+acex_{4}\\x_{2}&=bx_{1}+ax_{4}\\x_{3}&=bcx_{1}+cax_{4}\\x_{4}&=dx_{3}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Remove edge d from x3 to x4
edit
x
1
=
x
i
n
+
a
c
e
x
4
+
b
c
e
x
1
x
3
=
b
c
x
1
+
a
c
x
4
x
4
=
d
x
3
x
4
=
d
(
b
c
x
1
+
a
c
x
4
)
x
4
=
b
c
d
x
1
+
a
c
d
x
4
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+acex_{4}+bcex_{1}\\x_{3}&=bcx_{1}+acx_{4}\\x_{4}&=dx_{3}\\x_{4}&=d(bcx_{1}+acx_{4})\\x_{4}&=bcdx_{1}+acdx_{4}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Node
x
3
{\displaystyle x_{3}}
has no outflows and is not a node of interest. It is deleted along with its inflows.
x
1
=
x
i
n
+
a
c
e
x
4
+
b
c
e
x
1
x
4
=
b
c
d
x
1
+
a
c
d
x
4
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+acex_{4}+bcex_{1}\\x_{4}&=bcdx_{1}+acdx_{4}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Removing self-loop at x1
edit
x
1
=
x
i
n
+
a
c
e
x
4
+
b
c
e
x
1
x
1
(
1
−
b
c
e
)
=
x
i
n
+
a
c
e
x
4
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
x
4
x
4
=
b
c
d
x
1
+
a
c
d
x
4
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&=x_{\mathrm {in} }+acex_{4}+bcex_{1}\\x_{1}(1-bce)&=x_{\mathrm {in} }+acex_{4}\\x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}x_{4}\\x_{4}&=bcdx_{1}+acdx_{4}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Removing self-loop at x4
edit
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
x
4
x
4
=
b
c
d
x
1
+
a
c
d
x
4
x
4
(
1
−
a
c
d
)
=
b
c
d
x
1
x
4
=
b
c
d
1
−
a
c
d
x
1
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}x_{4}\\x_{4}&=bcdx_{1}+acdx_{4}\\x_{4}(1-acd)&=bcdx_{1}\\x_{4}&={\frac {bcd}{1-acd}}x_{1}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Remove edge from x4 to x1
edit
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
x
4
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
x
1
x
4
=
b
c
d
1
−
a
c
d
x
1
x
o
u
t
=
x
4
{\displaystyle {\begin{aligned}x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}x_{4}\\x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}}x_{1}\\x_{4}&={\frac {bcd}{1-acd}}x_{1}\\x_{\mathrm {out} }&=x_{4}\\\end{aligned}}}
Remove outflow from x4 to xout
edit
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
x
1
x
o
u
t
=
b
c
d
1
−
a
c
d
x
1
{\displaystyle {\begin{aligned}x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}}x_{1}\\x_{\mathrm {out} }&={\frac {bcd}{1-acd}}x_{1}\\\end{aligned}}}
x
4
{\displaystyle x_{4}}
's outflow is then eliminated:
x
o
u
t
{\displaystyle x_{\mathrm {out} }}
is connected directly to
x
1
{\displaystyle x_{1}}
using the product of the gains from the two edges replaced.
x
4
{\displaystyle x_{4}}
is not a variable of interest; thus, its node and its inflows are eliminated.
Eliminating self-loop at x1
edit
x
1
=
1
1
−
b
c
e
x
i
n
+
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
x
1
x
1
(
1
−
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
)
=
1
1
−
b
c
e
x
i
n
x
1
=
1
(
1
−
b
c
e
)
×
(
1
−
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
)
x
i
n
x
o
u
t
=
b
c
d
1
−
a
c
d
x
1
{\displaystyle {\begin{aligned}x_{1}&={\frac {1}{1-bce}}x_{\mathrm {in} }+{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}}x_{1}\\x_{1}(1-{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}})&={\frac {1}{1-bce}}x_{\mathrm {in} }\\x_{1}&={\frac {1}{(1-bce)\times (1-{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}})}}x_{\mathrm {in} }\\x_{\mathrm {out} }&={\frac {bcd}{1-acd}}x_{1}\\\end{aligned}}}
Eliminating outflow from x1, then eliminating x1 and its inflows
edit
x
1
=
1
(
1
−
b
c
e
)
×
(
1
−
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
)
x
i
n
x
o
u
t
=
b
c
d
1
−
a
c
d
x
1
x
o
u
t
=
b
c
d
1
−
a
c
d
×
1
(
1
−
b
c
e
)
×
(
1
−
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
)
x
i
n
{\displaystyle {\begin{aligned}x_{1}&={\frac {1}{(1-bce)\times (1-{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}})}}x_{\mathrm {in} }\\x_{\mathrm {out} }&={\frac {bcd}{1-acd}}x_{1}\\x_{\mathrm {out} }&={\frac {bcd}{1-acd}}\times {\frac {1}{(1-bce)\times (1-{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}})}}x_{\mathrm {in} }\\\end{aligned}}}
x
1
{\displaystyle x_{1}}
is not a variable of interest;
x
1
{\displaystyle x_{1}}
and its inflows are eliminated
x
o
u
t
=
b
c
d
1
−
a
c
d
×
1
(
1
−
b
c
e
)
×
(
1
−
a
c
e
1
−
b
c
e
×
b
c
d
1
−
a
c
d
)
x
i
n
{\displaystyle {\begin{aligned}x_{\mathrm {out} }&={\frac {bcd}{1-acd}}\times {\frac {1}{(1-bce)\times (1-{\frac {ace}{1-bce}}\times {\frac {bcd}{1-acd}})}}x_{\mathrm {in} }\\\end{aligned}}}
Simplifying the gain expression
edit
x
o
u
t
=
−
b
c
d
b
c
e
+
a
c
d
−
1
x
i
n
{\displaystyle {\begin{aligned}x_{\mathrm {out} }&={\frac {-bcd}{bce+acd-1}}x_{\mathrm {in} }\\\end{aligned}}}
Solving a signal-flow graph by systematic reduction: Three equations in three unknowns
edit
This example shows how a system of three equations in three unknowns is solved using systematic reduction rules.
The independent variables are
y
1
{\displaystyle y_{1}}
,
y
2
{\displaystyle y_{2}}
,
y
3
{\displaystyle y_{3}}
. The dependent variables are
x
1
{\displaystyle x_{1}}
,
x
2
{\displaystyle x_{2}}
,
x
3
{\displaystyle x_{3}}
. The coefficients are labeled
c
j
k
{\displaystyle c_{jk}}
. The steps for solving
x
1
{\displaystyle x_{1}}
follow:
Electrical engineering: Construction of a flow graph for a RC circuit
edit
This illustration shows the physical connections of the circuit. Independent voltage source S is connected in series with a resistor R and capacitor C. The example is developed from the physical circuit equations and solved using signal-flow graph techniques.
Polarity is important:
S is a source with the positive terminal at N1 and the negative terminal at N3
R is a resistor with the positive terminal at N1 and the negative terminal at N2
C is a capacitor with the positive terminal at N2 and the negative terminal at N3 .
The unknown variable of interest is the voltage across capacitor C .
Approach to the solution:
Find the set of equations from the physical network. These equations are acausal in nature.
Branch equations for the capacitor and resistor. The equations will be developed as transfer functions using Laplace transforms.
Kirchhoff's voltage and current laws
Build a signal-flow graph from the equations.
Solve the signal-flow graph.
The branch equations are shown for R and C.
Resistor R (Branch equation
B
R
{\displaystyle B_{R}}
)
edit
The resistor's branch equation in the time domain is:
V
R
(
t
)
=
R
I
R
(
t
)
{\displaystyle V_{R}(t)=RI_{R}(t)}
In the Laplace-transformed signal space:
V
R
(
s
)
=
R
I
R
(
s
)
{\displaystyle V_{R}(s)=RI_{R}(s)}
Capacitor C (Branch equation
B
C
{\displaystyle B_{C}}
)
edit
The capacitor's branch equation in the time domain is:
V
C
(
t
)
=
Q
C
(
t
)
C
=
1
C
∫
t
0
t
I
C
(
τ
)
d
τ
+
V
C
(
t
0
)
{\displaystyle V_{C}(t)={\frac {Q_{C}(t)}{C}}={\frac {1}{C}}\int _{t_{0}}^{t}I_{C}(\tau )\mathrm {d} \tau +V_{C}(t_{0})}
Assuming the capacitor is initially discharged, the equation becomes:
V
C
(
t
)
=
Q
C
(
t
)
C
=
1
C
∫
t
0
t
I
C
(
τ
)
d
τ
{\displaystyle V_{C}(t)={\frac {Q_{C}(t)}{C}}={\frac {1}{C}}\int _{t_{0}}^{t}I_{C}(\tau )\mathrm {d} \tau }
Taking the derivative of this and multiplying by C yields the derivative form:
I
C
(
t
)
=
d
Q
(
t
)
d
t
=
C
d
V
C
(
t
)
d
t
{\displaystyle I_{C}(t)={\frac {\mathrm {d} Q(t)}{\mathrm {d} t}}=C{\frac {\mathrm {d} V_{C}(t)}{\mathrm {d} t}}}
In the Laplace-transformed signal space:
I
C
(
s
)
=
V
C
(
s
)
s
C
{\displaystyle I_{C}(s)=V_{C}(s)sC}
Kirchhoff's laws equations
edit
Kirchhoff's Voltage Law equation
K
V
L
1
{\displaystyle \mathrm {KVL} _{1}}
edit
This circuit has only one independent loop.
Its equation in the time domain is:
V
R
(
t
)
+
V
C
(
t
)
−
V
S
(
t
)
=
0
{\displaystyle V_{R}(t)+V_{C}(t)-V_{S}(t)=0}
In the Laplace-transformed signal space:
V
R
(
s
)
+
V
C
(
s
)
−
V
S
(
s
)
=
0
{\displaystyle V_{R}(s)+V_{C}(s)-V_{S}(s)=0}
Kirchhoff's Current Law equations
K
C
L
1
,
K
C
L
2
,
K
C
L
3
{\displaystyle \mathrm {KCL} _{1},{KCL}_{2},{KCL}_{3}}
edit
The circuit has three nodes, thus three Kirchhoff's current equations (expresses here as the currents flowing from the nodes):
I
S
(
t
)
+
I
R
(
t
)
=
0
(
K
C
L
1
)
I
C
(
t
)
−
I
R
(
t
)
=
0
(
K
C
L
2
)
I
S
(
t
)
−
I
C
(
t
)
=
0
(
K
C
L
3
)
{\displaystyle {\begin{aligned}I_{S}(t)+I_{R}(t)&=0&&\mathrm {(KCL_{1})} \\I_{C}(t)-I_{R}(t)&=0&&\mathrm {(KCL_{2})} \\I_{S}(t)-I_{C}(t)&=0&&\mathrm {(KCL_{3})} \\\end{aligned}}}
In the Laplace-transformed signal space:
I
S
(
s
)
+
I
R
(
s
)
=
0
(
K
C
L
1
)
I
C
(
s
)
−
I
R
(
s
)
=
0
(
K
C
L
2
)
I
S
(
s
)
−
I
C
(
s
)
=
0
(
K
C
L
3
)
{\displaystyle {\begin{aligned}I_{S}(s)+I_{R}(s)&=0&&\mathrm {(KCL_{1})} \\I_{C}(s)-I_{R}(s)&=0&&\mathrm {(KCL_{2})} \\I_{S}(s)-I_{C}(s)&=0&&\mathrm {(KCL_{3})} \\\end{aligned}}}
A set of independent equations must be chosen. For the current laws, it is necessary to drop one of these equations. In this example, let us choose
K
C
L
1
,
K
C
L
2
{\displaystyle \mathrm {KCL} _{1},{KCL}_{2}}
.
Building the signal-flow graph
edit
We then look at the inventory of equations, and the signals that each equation relates:
Equation
Signals
B
C
{\displaystyle \mathrm {B_{C}} }
V
C
,
I
C
{\displaystyle \mathrm {V_{C},I_{C}} }
B
R
{\displaystyle \mathrm {B_{R}} }
V
R
,
I
R
{\displaystyle \mathrm {V_{R},I_{R}} }
K
V
L
1
{\displaystyle \mathrm {KVL} _{1}}
V
R
,
V
C
,
V
S
{\displaystyle \mathrm {V_{R},V_{C},V_{S}} }
K
C
L
1
{\displaystyle \mathrm {KCL} _{1}}
I
S
,
I
R
{\displaystyle \mathrm {I_{S},I_{R}} }
K
C
L
2
{\displaystyle \mathrm {KCL} _{2}}
I
R
,
I
C
{\displaystyle \mathrm {I_{R},I_{C}} }
The next step consists in assigning to each equation a signal that will be represented as a node. Each independent source signal is represented in the signal-flow graph as a source node, therefore no equation is assigned to the independent source
V
S
{\displaystyle \mathrm {V_{S}} }
. There are many possible valid signal flow graphs from this set of equations. An equation must only be used once, and the variables of interest must be represented.
Equation
Signals
Assigned signal node
B
C
{\displaystyle \mathrm {B_{C}} }
V
C
,
I
C
{\displaystyle \mathrm {V_{C},I_{C}} }
I
C
{\displaystyle \mathrm {I_{C}} }
B
R
{\displaystyle \mathrm {B_{R}} }
V
R
,
I
R
{\displaystyle \mathrm {V_{R},I_{R}} }
V
R
{\displaystyle \mathrm {V_{R}} }
K
V
L
1
{\displaystyle \mathrm {KVL} _{1}}
V
R
,
V
C
,
V
S
{\displaystyle \mathrm {V_{R},V_{C},V_{S}} }
V
C
{\displaystyle \mathrm {V_{C}} }
K
C
L
1
{\displaystyle \mathrm {KCL} _{1}}
I
S
,
I
R
{\displaystyle \mathrm {I_{S},I_{R}} }
I
S
{\displaystyle \mathrm {I_{S}} }
K
C
L
2
{\displaystyle \mathrm {KCL} _{2}}
I
R
,
I
C
{\displaystyle \mathrm {I_{R},I_{C}} }
I
R
{\displaystyle \mathrm {I_{R}} }
The resulting flow graph is then drawn
edit
The next step consists in solving the signal-flow graph.
Using either Mason or systematic reduction, the resulting signal flow graph is:
Mechatronics example
edit
Angular position servo and signal flow graph. θC = desired angle command, θL = actual load angle, KP = position loop gain, VωC = velocity command, VωM = motor velocity sense voltage, KV = velocity loop gain, VIC = current command, VIM = current sense voltage, KC = current loop gain, VA = power amplifier output voltage, LM = motor inductance, VM = voltage across motor inductance, IM = motor current, RM = motor resistance, RS = current sense resistance, KM = motor torque constant (Nm/amp) , T = torque, M = momment of inertia of all rotating components α = angular acceleration, ω = angular velocity, β = mechanical damping, GM = motor back EMF constant, GT = tachometer conversion gain constant,. There is one forward path (shown in a different color) and six feedback loops. The drive shaft assumed to be stiff enough to not treat as a spring. Constants are shown in black and variables in purple.