梅森增益公式

梅森增益公式（Mason's Gain Formula，MGF）是尋找線性信號流圖（SFG）傳遞函數的方法。該公式是塞繆爾·傑斐遜·梅森推導出的，也是用他的名字命名的。MGF是用代數方法標記每個信號，將信號依賴於其他信號的方式寫成方程，然後求解多元方程組得出輸出信號與輸入信號的關係，以求傳遞函數的方法。MGF提供了由信號流圖一步一步獲得傳遞函數的方法。通常，MGF可以通過檢查信號流圖確定。該方法可以很容易地處理多變量、多迴路包括內循環迴路的信號流圖。MGF經常出現在控制系統和數字濾波器的內容中，因為控制系統和數字濾波器常會用信號流圖表示。

## 公式

增益公式如下：

$$G = \frac{y_\text{out}}{y_\text{in}} = \frac{ \sum_{k=1}^N {G_k \Delta _k} }{ \Delta\ }$$

$$\Delta = 1 - \sum L_i + \sum L_iL_j- \sum L_iL_jL_k + \cdots + (-1)^m \sum \cdots +\cdots$$

其中：

- $\Delta$ = 圖的特徵式
- $y_{\mathrm{in}}$ = 輸入節點變量
- $y_{\mathrm{out}}$ = 輸出節點變量
- G = $y_{\mathrm{in}}$ 和 $y_{\mathrm{out}}$ 間的總增益
- N = $y_{\mathrm{in}}$ 與 $y_{\mathrm{out}}$ 間的前向通道的總數
- Gk = $y_{\mathrm{in}}$ 與 $y_{\mathrm{out}}$ 間的第 k 個前向通道的路徑增益
- Li = 系統中每個閉環迴路增益
- LiLj = 任意2個互不接觸迴路（沒有公共節點）的迴路增益的乘積
- LiLjLk = 任何三個互不接觸迴路的迴路增益的乘積
- $\Delta_k$ = 第 k 個前向通道的餘子式，即將接觸第 k 個前向通道的迴路增益置為0後，特徵式Δ所剩下的部分。

### 定義

- 通道：一組沿標識方向的連接輸入輸出的連續分支
- 前向通道：從一個輸入節點到一個輸出節點的通道，每個節點接觸不超過一次。
- 迴路：起始和終止在相同節點，並且沒有節點接觸兩次的通道。
- 路徑增益：該通道的所有分支的增益之積。
- 迴路增益：迴路中所有分支的增益之積。

### 步驟

要使用這種方法。

- 列出前向通道和它們的增益，將他們記為 Gk。
- 列出所有迴路和它們的增益，將他們記為 Li（對第 i 個迴路）。列出所有互不接觸的迴路和他們的增益（LiLj）。列出所有三個互不接觸的迴路（LiLjLk），然後四個，以至更多，直到找不出更多的互不接觸的組合。
- 計算特徵式 Δ 和餘子式 Δk。
- 運用公式。

## 例子

### 二埠電路

需要求從 Vin 到 V2 的傳遞函數。

只有一個前向通路：

- Vin 到 V1 到 I2 到 V2 增益為$G_1 = -y_{21} R_L \,$

有三個迴路：

- V1 到 I1 到 V1 增益為 $L_1 = -R_{in} y_{11} \,$
- V2 到 I2 到 V2 增益為 $L_2 = -R_L y_{22} \,$
- V1 到 I2 到 V2 到 I1 到 V1 增益為 $L_3 = y_{21} R_L y_{12} R_{in} \,$

$\Delta = 1 - ( L_1 + L_2 + L_3 ) + ( L_1 L_2 ) \,$ 注意：L1 和 L2 相互不接觸，而 L3 接觸其他兩個迴路。

$\Delta_1 = 1 \,$ 注意：前向通路接觸了所有迴路，所以剩下的就是 1。

$$G = \frac { G_1 \Delta_1 } { \Delta } = \frac { -y_{21} R_L } {1 + R_{in}y_{11} + R_L y_{22} - y_{21} R_L y_{12} R_{in} + R_{in}y_{11} R_L y_{22} } \,$$

### 數字IIR雙二階濾波器

經常將數字濾波器化成信號流圖。

有兩個迴路

- $$L_1 = -a_1 Z^{-1} \,$$
- $$L_2 = -a_2 Z^{-2} \,$$

$\Delta = 1 - ( L_1 + L_2 ) \,$ 注意，這兩個迴路接觸，所以沒有他們的乘積項。

有三個前向通道

- $$G_0 = b_0 \,$$
- $$G_1 = b_1 Z^{-1} \,$$
- $$G_2 = b_2 Z^{-2} \,$$

所有的前向通道都接觸，所以 $\Delta_0 = \Delta_1 = \Delta_2 = 1 \,$

$$G = \frac { G_0 \Delta_0 +G_1 \Delta_1 + G_2 \Delta_2 } {\Delta} \,$$

$$G = \frac { b_0 + b_1 Z^{-1} + b_2 Z^{-2} } {1 +a_1 Z^{-1} + a_2 Z^{-2} } \,$$

### 伺服驅動器

此信號流中有六個迴路，分別是：

- $$L_0 = - \frac {\beta} {sM} \,$$
- $$L_1 = \frac{-( R_M + R_S)} {sL_M} \,$$
- $$L_2 = \, \frac {-G_M K_M} {s^2 L_M M}$$
- $$L_3 = \frac {-K_C R_S} {sL_M} \,$$
- $$L_4 = \frac {-K_V K_C K_M G_T} {s^2 L_M M} \,$$
- $$L_5 = \frac {-K_P K_V K_C K_M } {s^3 L_M M} \,$$

$$\Delta = 1 - (L_0+L_1+L_2+L_3+L_4+L_5) + (L_0 L_1 + L_0 L_3)\,$$

只有一個前向通路：

- $$g_0 = \frac {K_P K_V K_C K_M } {s^3 L_M M} \,$$

所有的前向通道都接觸，所以 $\Delta_0 = 1$

整個系統的增益是$\frac {\theta_L} {\theta_C} = \frac {g_0 \Delta_0} {\Delta} \,$

## 等效矩陣型式

梅森增益公式可以用簡單的矩陣公式表示。假設$\mathbf{T}$是信號流圖的轉換矩陣，其中$t_{nm} = \left[\mathbf{T}\right]_{nm}$是由節點m到'n所有分支transmittance的和，則節點m到'n的增益為$u_{nm} = \left[\mathbf{U}\right]_{nm}$，其中

$\mathbf{U} = \left ( \mathbf{I} - \mathbf{T} \right ) ^ {-1}$,

而$\mathbf{I}$為單位矩陣。

梅森增益公式也可以用在推導有巢狀網路（其內迴路在外迴路以內）的離散網路z域傳遞函數。若是離散網路可以以信號流圖表示，則梅森增益公式可以計算網路的z域傳遞函數H(z)。

## 複雜度及計算應用

由於有向圖的路徑數會隨節點會以階乘的形式增加，因此梅森增益公式的複雜度會以階乘的形式往上成長。先考慮完整的有 $n$個頂點的有向圖，每二個頂點都有一個邊，從節點$y_{in}$到節點$y_{out}$的路徑會是其他$(n-2)!$個節點的$(n-2)!$個排列，因此在一般的情形下，高斯消去法會比此方式有效率很多。

不過梅森增益公式將互相連接的系統的轉換函數用代數及組合的方處理，允許一些代數系統理論中較廣義的定義及計算方式。高斯消去法中會有許多的倒數計算，而梅森增益公式將其整理為單一的逆元素，其通式為

$$\frac{p}{1-q},$$

如上所述，$q$是迴路乘積的總和，每一個都是環論中的理想。上式的分數形成有理函數的子環 $R(1+\langle L_i\rangle)^{-1}$。上述的觀察可以延伸到非交換性的情形，不過梅森增益公式會被裡格爾公式（Riegle's rule）所取代。