Skip to content

Fundamental Loop and Cut-Set Analysis#

Fundamental Loop Analysis#

Fundamental Loop Analysis is a technique for systematically writing out all instances of Kirchhoff's voltage law applicable to a given circuit topology.

Algorithm: Fundamental Loop Analysis

We are given a network graph \(\mathcal{G} = (N, B, s, t)\) and want to write out all instances of Kirchhoff's voltage law.

  1. Find a subgraph \(\mathcal{T} = (N, B_{\mathcal{T}}, s_{\mathcal{T}}, t_{\mathcal{T}})\) of \(\mathcal{G}\) whose underlying multigraph is a spanning tree.
  • Label the tree branches in increasing order: \(b_1,\dotsc,b_{|B_{\mathcal{T}}|} \in B_{\mathcal{T}}\).
  • Label the link branches in increasing order, but starting from \(|B_{\mathcal{T}}|+1\): \(b_{|B_{\mathcal{T}}|+1}, \dotsc, b_{|B|} \in B \setminus B_{\mathcal{T}}\).
  • For each link branch \(b_j\) there exists a path in \(\mathcal{T}\) from \(s(b_j)\) to \(t(b_j)\). Therefore, \(b_j\) and the branches in this path form a cycle.
  1. Write Kirchhoff's voltage law for the cycle generated by each link branch \(b_j \in B \setminus B_{\mathcal{T}}\).
  1. Write the equations from step 2 as a system of linear equations using the branch voltage vector:
\[\boldsymbol{B} \boldsymbol{v} = \boldsymbol{0}\]

Definition: Fundamental Loop Matrix

We call \(\boldsymbol{B} \in \{-1,0,1\}^{s \times |B|}\) the fundamental loop matrix or fundamental tie-set matrix.

Example

We begin with the following network graph:

Example Network Graph

We find the following subgraph \(\mathcal{T} = (N, B_{\mathcal{T}}, s_{\mathcal{T}}, t_{\mathcal{T}})\) of \(\mathcal{G}\) whose underlying multigraph is a spanning tree:

Analysis Tree Example

We label everything appropriately:

Fundamental Analysis Labels Example.

We now go through each link branch in \(B \setminus B_{\mathcal{T}}\) and apply Kirchhoff's voltage law:

  • From branch \(4\): \(v_4 - v_2 - v_1 = 0\);
  • From branch \(5\): \(v_5 + v_2 - v_3 = 0\);
  • From branch \(6\): \(v_6 + v_1 + v_2 - v_3 = 0\);
  • From branch \(7\): \(v_7 - v_3 = 0\).

Overall, we get the following:

\[ \begin{aligned}v_4 - v_2 - v_1 &= 0 \\ v_5 + v_2 - v_3 &= 0 \\ v_6 + v_1 + v_2 - v_3 &= 0 \\ v_7 - v_3 &= 0\end{aligned} \]

We write this as a system of linear equations

\[ \begin{bmatrix}-1 & -1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 1 & -1 & 0 & 1 & 0 & 0 \\ 1 & 1 & -1 & 0 & 0 & 1 & 0 \\ 0 & 0 & -1 & 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix}v_1 \\ v_2 \\ v_3 \\ v_4 \\ v_5 \\ v_6 \\ v_7\end{bmatrix} = \begin{bmatrix}0 \\ 0 \\ 0 \\ 0\end{bmatrix} \]

Due to the nature of the algorithm, the fundamental loop matrix \(\boldsymbol{B}\) can always be separated into the concatenation

\[\boldsymbol{B} = \begin{bmatrix} \boldsymbol{B}_{\mathrm{t}} & \mathbb{1}_{s} \end{bmatrix},\]

where \(\boldsymbol{B}_{\mathrm{t}} \in \{-1, 0, 1\}^{s \times (|B|-s)}\) depends solely on the choice of \(\mathcal{T}\) and \(\mathbb{1}_{s}\) is the \(s\times s\) identity matrix.

We can thus split \(\boldsymbol{B}\boldsymbol{v} = \boldsymbol{0}\) into

\[\begin{bmatrix} \boldsymbol{B}_{\mathrm{t}} & \mathbb{1}_{s}\end{bmatrix} \begin{bmatrix}\boldsymbol{v}_{\mathrm{t}} \\ \boldsymbol{v}_{\mathrm{l}}\end{bmatrix} = \boldsymbol{B}_{\mathrm{t}}\boldsymbol{v}_{\mathrm{t}} + \boldsymbol{v}_{\mathrm{l}} = \boldsymbol{0},\]

where \(\boldsymbol{v}_{\mathrm{t}}\) contains only the voltages belonging to the tree branches and \(\boldsymbol{v}_{\mathrm{l}}\) contains only the voltages belonging to the link branches.

Fundamental Cut-Set Analysis#

Fundamental cut-set analysis is a technique for systematically writing out all instances of Kirchhoff's current law applicable to a given circuit topology.

Algorithm: Fundamental Cut-Set Analysis

We are given a network graph \(\mathcal{G} = (N, B, s, t)\) and want to write out all instances of Kirchhoff's current law.

  1. Find a subgraph \(\mathcal{T} = (N, B_{\mathcal{T}}, s_{\mathcal{T}}, t_{\mathcal{T}})\) of \(\mathcal{G}\) whose underlying multigraph is a spanning tree.
  • Label the tree branches in increasing order: \(b_1,\dotsc,b_{|B_{\mathcal{T}}|} \in B_{\mathcal{T}}\).
  • Label the link branches in increasing order, but starting from \(|B_{\mathcal{T}}|+1\): \(b_{|B_{\mathcal{T}}|+1}, \dotsc, b_{|B|} \in B \setminus B_{\mathcal{T}}\).
  • Removing any tree branch results in a cut of the underlying multigraph of \(\mathcal{T}\). Since \(\mathcal{T}\) is a spanning tree, this is also a cut of the underlying multigraph of \(\mathcal{G}\).
  1. Write Kirchhoff's current law for the cut-set generated by each tree branch \(b_j \in B_{\mathcal{T}}\).
  1. Write the equations from step 2 as a system of linear equations using the branch current vector:
\[\boldsymbol{Q} \boldsymbol{i} = \boldsymbol{0}\]

Definition: Fundamental Cut-Set Matrix

We call \(\boldsymbol{Q}\) the fundamental cut-set matrix.

Example

We begin with the following network graph:

Example Network Graph

We find the following subgraph \(\mathcal{T} = (N, B_{\mathcal{T}}, s_{\mathcal{T}}, t_{\mathcal{T}})\) of \(\mathcal{G}\) whose underlying multigraph is a spanning tree:

Analysis Tree Example

We label everything appropriately:

Fundamental Analysis Labels Example.

We now go through each tree branch.

Removing branch \(1\) would result in the following cut:

Branch 1 Cut

Therefore, we get:

\[i_1 + i_4 - i_6 = 0\]

Removing branch \(2\) would result in the following cut:

Branch 2 Cut

Therefore, we get:

\[i_2 + i_4 - i_5 - i_6 = 0\]

Removing branch \(3\) would result in the following cut:

Branch 3 Cut

Therefore, we get:

\[i_3 + i_5 + i_6 + i_7 = 0 \]

Overall, we get the following:

\[\begin{aligned}i_1 + i_4 - i_6 &= 0 \\ i_2 + i_4 - i_5 - i_6 &= 0 \\ i_3 + i_5 + i_6 + i_7 &= 0\end{aligned}\]

We write this as a system of linear equations

\[\begin{bmatrix}1 & 0 & 0 & 1 & 0 & -1 & 0 \\ 0 & 1 & 0 & 1 & -1 & -1 & 0 \\ 0 & 0 & 1 & 0 & 1 & 1 & 1\end{bmatrix} \begin{bmatrix}i_1 \\ i_2 \\ i_3 \\ i_4 \\ i_5 \\ i_6 \\ i_7\end{bmatrix} = \begin{bmatrix}0 \\ 0 \\ 0\end{bmatrix}\]

Due to the nature of the algorithm, the fundamental cut-set matrix \(\boldsymbol{Q}\) can always be separated into the concatenation

\[\boldsymbol{Q} = \begin{bmatrix} \mathbb{1}_{p} & \boldsymbol{Q}_{\mathrm{l}} \end{bmatrix},\]

where \(\mathbb{1}_{p}\) is the \(p \times p\) identity matrix and \(\boldsymbol{Q}_{\mathrm{l}} \in \{-1, 0, 1\}^{p \times (|B|-p)}\) depends solely on the choice of \(\mathcal{T}\).

We can thus split \(\boldsymbol{Q}\boldsymbol{i} = \boldsymbol{0}\) into

\[\begin{bmatrix} \mathbb{1}_{p} & \boldsymbol{Q}_{\mathrm{l}} \end{bmatrix} \begin{bmatrix}\boldsymbol{i}_{\mathrm{t}} \\ \boldsymbol{i}_{\mathrm{l}}\end{bmatrix} = \boldsymbol{i}_{\mathrm{t}} + \boldsymbol{Q}_{\mathrm{l}}\boldsymbol{i}_{\mathrm{l}} = \boldsymbol{0},\]

where \(\boldsymbol{i}_{\mathrm{t}}\) contains only the currents belonging to the tree branches and \(\boldsymbol{i}_{\mathrm{l}}\) contains only the currents belonging to the link branches.

Fundamental Analysis#

Theorem: Fundamental Loop Analysis and Fundamental Cut-Set Analysis

If we simultaneously perform fundamental loop analysis and fundamental cut-set analysis on a network graph, then we have the following:

\[ \boldsymbol{Q}_{\mathrm{l}} = -\boldsymbol{B}_{\mathrm{t}}^{\mathsf{T}} \]

Furthermore:

\[\begin{aligned}\boldsymbol{i} &= \boldsymbol{B}^{\mathsf{T}} \boldsymbol{i}_{\mathrm{l}} \\ \boldsymbol{v} &= \boldsymbol{Q}^{\mathsf{T}} \boldsymbol{v}_{\mathrm{t}}\end{aligned}\]
Proof

TODO