Modified Nodal Analysis
在网络分析中,会遇到不同类型的网络元件。对于电路分析,有必要为包含尽可能多的网络建立方程。建立电路的方程组有多种方法,但他们主要基于电路理论的三种方法:- 基尔霍夫电压定律(KVL)
- 基尔霍夫电流定律(KCL)
- 分支结构方程(branch constitutive equations)
方程必须以简单、全面的方式自动地表述(用计算机程序表示)。一旦公式化,方程组就必须求解。在以此为目的选择算法时,需要考虑两个主要方面:精度和速度。简单地说,Modified Nodal Analysis已经被证明可以完成这些任务。
MNA用于仅包含无源元件,有源元件,独立电压源、电流源可以写成矩阵等式形式:
[ A ] ⋅ [ x ] = [ z ] [A] \cdot[x]=[z] [A]⋅[x]=[z]
对于一个包含N个节点与M个独立电压源的电路:
- A 矩阵
- 矩阵维度为 ( N + M ) × ( N + M ) (\mathrm{N}+\mathrm{M}) \times(\mathrm{N}+\mathrm{M}) (N+M)×(N+M),并且只包含已知量
- N × N \mathrm{N} \times \mathrm{N} N×N部分在矩阵的左上角:
- 仅包含无源元件
- 接地的原件仅出现在对角线上
- 不接地的原件既出现在对角线上,也存在于矩阵的其他位值
- A矩阵的剩余部分(即N*N部分以外)仅包含1,-1,0(这些值取决于该位置的独立电压源和电流源)
- x矩阵
- 是一个 ( N + M ) × 1 (\mathrm{N}+\mathrm{M}) \times 1 (N+M)×1的向量,包含未知量,包括节点电压与流入电压源的电流
- 上面的N个元素是节点电压
- 下面M个元素是流入电压源的电流
- z矩阵
- 是一个 ( N + M ) × 1 (\mathrm{N}+\mathrm{M}) \times 1 (N+M)×1的向量,仅包含已知量
- 上面N个元素是电路中独立电流源
- 下面M个元素是电路中独立电压源
电路通过简单的矩阵运算求解:
[ x ] = [ A ] − 1 ⋅ [ z ] [x]=[A]^{-1} \cdot[z] [x]=[A]−1⋅[z]
这种方法可能很难通过人工计算,但计算机会容易得多。
一、Generating the MNA matrices
接下来的部分是通过算法实现MNA。一共需要生成三个矩阵,A、x和z,每个矩阵都是由数个独立的矩阵组合而成。
The A matrix
A矩阵由四个矩阵(G、B、C和D)组合而成。
[ A ] = [ G B C D ] [A] = \begin{bmatrix} G & B \\ C & D \end{bmatrix} \quad [A]=[GCBD]
A矩阵是 ( N + M ) × ( N + M ) (\mathrm{N}+\mathrm{M}) \times(\mathrm{N}+\mathrm{M}) (N+M)×(N+M)(N是节点的个数,M是独立电压源的个数):
- G矩阵是 N × N \mathrm{N} \times \mathrm{N} N×N,由电路原件之间相互连接决定
- B矩阵是 N × M \mathrm{N} \times \mathrm{M} N×M,由独立电压源的连接关系决定
- C矩阵是 M × N \mathrm{M} \times \mathrm{N} M×N,由独立电压源的连接关系决定(B和C是密切相关的,特别是当只考虑独立来源时)
- D矩阵是 M × M \mathrm{M} \times \mathrm{M} M×M,当仅考虑独立(电压/电流)源时为零矩阵
Rules for making the G matrix
G矩阵是 N × N \mathrm{N} \times \mathrm{N} N×N,可由两步生成。
- 矩阵中对角线上的每个元素等于相应节点上相连的电路元件的电导(电阻的倒数)之和。因此,对角线上的第一个元素是与节点1直接相连的电导之和,对角线上的第二个元素是与第二个节点直接相连的电导之和,以此类推。
- 非对角线上的元素是每对节点之间的负电导值。因此,节点1和2之间的电导需要放入到G矩阵的 ( 1 , 2 ) (\mathrm{1},\mathrm{2}) (1,2)和 ( 2 , 1 ) (\mathrm{2},\mathrm{1}) (2,1)。
如果原件直接接地,那么在G矩阵中,该原件仅出现在一个位置上(在对角线上的适当位置)。如果原件没有接地,那么在G矩阵中,该原件将出现在四个位置上(对角线上的两个位置(相对应的两个节点上)和非对角线上的两个位置)。
Rules for making the B matrix
B矩阵是 N × M \mathrm{N} \times \mathrm{M} N×M,且仅由0,1和-1组成。矩阵中每个位置对应一个指定的电压源(第一个维度)或节点(第二个维度)。如果第i个电压源的正端与节点k相连,则B矩阵的元素 ( k × i ) (\mathrm{k} \times \mathrm{i}) (k×i)是1,如果第i个电压源的负端与节点k相连,则B矩阵的元素 ( k × i ) (\mathrm{k} \times \mathrm{i}) (k×i)是-1,否则,为0。
如果电压源未接地,则在B矩阵中出现两次(在同一列中出现一个1和一个-1)。如果电压源接地,则仅会在矩阵中出现一次。
Rules for making the C matrix
C矩阵是B矩阵的转置。当存在非独立源时,则不是这种关系。
Rules for making the D matrix
D矩阵是 M × M \mathrm{M} \times \mathrm{M} M×M,为全零阵。当存在非独立源时,则不是全零阵。
The x matrix
x矩阵包含我们的未知量,并且将被发展为两个较小的矩阵v和j的组合。它比A矩阵更容易定义。
[ x ] = [ v j ] [x] = \begin{bmatrix} v \\ j \end{bmatrix} \quad [x]=[vj]
x矩阵是 ( N + M ) × 1 (\mathrm{N}+\mathrm{M}) \times 1 (N+M)×1(N是节点数,M是独立电压源数)
- v矩阵是 N × 1 \mathrm{N} \times 1 N×1,包括N个节点的电压值
- j矩阵是 M × 1 \mathrm{M} \times 1 M×1,包含M个流入电压源的电流值
Rules for making the v matrix
v矩阵是 N × 1 \mathrm{N} \times 1 N×1,由节点电压构成。v中的每个元素对应于电路中等效节点处的电压(接地-节点0没有输入)。
对于具有N个节点的电路,我们可以得到:
[ v ] = [ v 1 v 2 . . . v n ] [v] = \begin{bmatrix} v_1 \\ v_2 \\.\\.\\.\\ v_n \end{bmatrix} [v]=⎣⎢⎢⎢⎢⎢⎢⎡v1v2...v