信号流图

信号流图（Signal-flow graph）最早是由克劳德·香农所发明，但因为美国麻省理工学院的塞缪尔·杰斐逊·梅森于20世纪50年代初提出这个词，因为也称梅森图（Mason graph），信号流图是特殊的流向图，属于有向图，其中的节点表示系统的变数，而连接两节点的边表示二个变数之间的函数关系。信号流图的理论是以有向图为基础，不过是应用有向图来表示系统，和有向图的原理差异较大。

信号流图最常用来表示物理系统和其控制器（网宇实体系统或控制系统）之间的关系，不过在许多电子电路、运算放大器电路、数位滤波器、状态变数滤波器及类比滤波器的分析中也会用到信号流图。在许多文献中，信号流图都可以转换为一组线性方程或是线性微分方程，而各组变数之间的增益则用边上的系数来表示，也有些信号流图会用特殊方式来表示非线性系统。而利用梅森增益公式可以找到输入和输出之间的关系。

## 基本信号流图概念

以下是梅森提出信号流图的基本概念：

<image>

在基本信号流图中，节点的相依关系可以用指向此节点的箭头表示，节点会影响的其他节点可以用由节点射出的箭头表示，最常见的信号流图中，每一个节点i若有指向此节点的箭头，此节点的值会和这些箭头另一端的节点有关，而且呈一函数关系，举例为Fi。(a) 图表示各节点有以下的关系：

$$\begin{align} <pre> x_\mathrm{1} &= \text{an independent variable} \\ x_\mathrm{2} &= F_2(x_\mathrm{1}, x_\mathrm{3})\\ x_\mathrm{3} &= F_3(x_\mathrm{1}, x_\mathrm{2}, x_\mathrm{3})\\ </pre> \end{align}$$

节点x1是独立节点，没有箭头指向此节点，节点x2和x3和其他节点的关系分别如图(b)和(c)。

信号流图会针对每一个节点定义一函数，处理其输入的变数。每个非独立节点都会依个别特定方式来处理输入信号，再将结果送到其他的节点“信号流图一开始是由梅森所定义，其中表示了许多的函数关系，可能线性，也可能非线性。”

信号流图中的变数可以自行依需要选定，系统本身有其方程式，但也可以根据其系统及架构来选择变数，绘制信号流图，复杂的系统可能会有多种选择变数的方式。同一个系统也可以用不同的信号流图来表示，系统和信号流图之间没有一对一的对应关系。

## 线性信号流图

线性信号流图只针对线性非时变系统。在为系统建立模型时，第一步是找到确认系统行为的方程式，先不考虑因果关系（这称为acausal modeling），之后可以由方程式推出信号流图。

线性信号流图也是由节点及箭头组成，不过箭头上会有加权的系数。节点是线性方程组的变数，而加权的系数则是方程组中的系数，信号只会依节点的方向，由一个节点流到另一个节点。线性信号流图中只能表达信号和系数相乘，以及数个信号的相加，这已足以表示线性方程组。当一信号延著箭头一个节点到另一个节点时，此信号就乘以箭头上的系数，若几个箭头指到同一个节点时，这几个信号会相加（若需要相减，可以调整对应系数为负即可）。

针对用线性代数方程或是微分方程来表示的系统，线性信号流图在数学上等效于其方程式，看信号流图上各节点信号的来源以及箭头上的系数即可得到方程式。箭头上的系数多半会是实数或是某种参数组成的线性函数（例如拉氏转换的变数s）。

### 基本元件

<image>

线性信号流图是和以下形式线性系统有关的信号流图：

$$\begin{align} <pre> x_\mathrm{j} &= \sum_{\mathrm{k}=1}^{\mathrm{N}} t_\mathrm{jk} x_\mathrm{k} </pre> \end{align}$$

其中$t_{jk}$ 为从$x_k$到$x_j$的增益。

右图中有一些线性信号流图中的基本元件。

(a)是标示为$x$的节点，节点是图的一个顶点，表示变数或是信号。

(b)是一个有$m$倍增益的分支，意思是指箭头的终点会是箭头起点的$m$倍。增益可能是简单的常数，也有可能函数（例如表示拉氏转换、傅立叶转换及Z转换的$s$, $\omega$或$z$）。

(c)是增益为1的分支，当分支上没有标示增益时，就假设增益为1。

(d) $V_{in}$为输入节点。此例中，输出是$V_{in}$乘以增益$m$。

(e) $I_{out}$为输出节点，输出值为输入值的$m$倍。

(f) 表示加法。若二个或是多个箭头的终点是同一个节点，该节点的值是各箭头表示信号的和。

(g) 是简单的回路，回路增益为$A \times m$。

(h) 表示$Z = aX + bY$。

以下是一些线性信号流图中常见的术语：

- 路径（Path）。路径是依箭头方向一直延伸的连续数个分支。
- 开路径（Open path）是指路径上没有同一个节点走到二次或二次以上。
- 路径增益（Path gain）是指路径上所有分支增益的乘积。
- 回路（Loop）是指封闭的路径，路径的起点和终点是同一个节点，路径上的节点都只经过一次。
- 回路增益（Loop gain）是指回路上所有分支增益的乘积。
- 不相连回路（Non-touching loops）是指二个或多个没有共同节点的回路。

## 和方块图的关系

<image>

有些研究者认为，线性信号流图的限制比方块图要多，信号流图严谨用有向图来表示线性代数方程。

有些研究者则认为为线性信号流图和线性方块图是描述一个系统的二个等效方式，用任何一个都可以找到系统的增益。

Bakshi及Bakshi提供了一个信号流图和方块图比较的列表，Kumar另外有一个列表。根据Barker等人的论点：

“信号流图是最方便表示动态系统的方式。图的拓朴很紧凑，处理的规则比处理方块图的规则要简单。”

在右图中有一个回授系统的简单方块图，以及二个对应的信号流图。输入R(s)是输入信号的拉氏转换，是信号流图的源节点（没有输入边的节点），输出信号C(s)是输出变数的拉氏转换，表示为最终节点（没有输出边的节点），G(s)和H(s)为传递函数，H(s)可以提供调整后的输出信号B(s)给输入端，二个信号流图是等效的。

## 分析及设计中的信号流图

信号流图也可以用来分析系统，用来了解一个已有系统的模型，也可以用来合成，确认不同设计的特质。

### 用在动态系统分析的信号流图

在建构动态系统的模型时，以下是Dorf和Bishop列出的步骤：

- 定义系统以及其元件。
- 将其数学模型公式化，并且列出需要的假设。
- 写出描述模型的微分方程。
- 求解方程式，得到输出变数的解。
- 检验得到的解，并且检验假设。
- 若有需要，重新分析系统或是重新设计系统。

—RC Dorf and RH Bishop, Modern Control Systems, Chapter 2, p. 2

在上述程中，物理系统的数学模型方程可以用来推导信号流图方程。

### 用在设计合成的信号流图

信号流图也用在设计空间探索（DSE），一个趋近实际呈现的过渡表示方式。设计空间探索会在许多不同的选项中找一个适合的解。典型的分析流程会先针对待确认的系统，以其各元件的物理方程式来建模。设计空间探索不同，其设计合成的规格是想要的传递函数。例如，不同的策略会产生不同的信号流图，可由此推导出对应的实现方式。

另一个使用有说明的信号流图的例子是连续时间行为的表示方式，作为架构生成器的输入。

## 香农公式以及香农-哈普公式

香农公式（Shannon's formula）是计算类比电脑中互联放大器增益的解析表示法。在二次大战时，香农在探就类比电脑的功能运作时，发展了香农公式。因为战争期间的限制，香农当时没有发表他的研究。塞缪尔·杰斐逊·梅森在1952年重新发现了相同的公式。

哈普将香农公式扩展到在图形上封闭的系统。香农-哈普公式（Shannon-Happ formula）可以计算传递函数、灵敏度、误差函数等。

对于一致的单边线性方程，香农-哈普公式可以用直接替代的方式求解（非迭代法）。

NASA的电路计算软件NASAP就是以香农-哈普公式为基础。

## 线性信号流图的例子

### 理想的负回授放大器

<image>

<image>

<image>

图3是由渐近增益模型表示负反馈放大器的一种可能的信号流图，可以得到放大器增益的方程式为

$G = \frac {y_2}{x_1}$ $= G_{\infty} \left( \frac{T}{T + 1} \right) + G_0 \left( \frac{1}{T + 1} \right) \ .$

其参数的说明如下：T = 返回比，G∞ = 直变大器增益，direct amplifier gain, G0 = 前馈（表示回授可能有的双向特性，也可能是刻意的前馈补偿）。

增益G0和G∞的意思分别是时间接近零及无限大时的增益：

$$G_{\infty} = \lim_{T \to \infty }G\ ; \ G_{0} = \lim_{T \to 0 }G \ .$$

有许多可能的信号流图，对应不同的增益关系。图4是另一个信号流图，其渐近增益模型比较容易用电路表示。在此图中，参数β为回授因子，而A为控制因子，和电路中的相依讯号源有关，配合信号流图，可以得到增益为

$G = \frac {y_2}{x_1}$ $= G_{0} + \frac {A} {1 - \beta A} \ .$

若要连接到渐近增益模型，参数A和β不能是任意的电路参数，需要和返回比T有以下的关系：

$$T = - \beta A \ ,$$

因此渐近增益为：

$$G_{\infty} = \lim_{T \to \infty }G = G_0 - \frac {1} {\beta} \ .$$

替换结果到增益表示式中。

$$G = G_{0} + \frac {1} {\beta} \frac {-T} {1 +T}$$

$$= G_0 + (G_0 - G_{\infty} ) \frac {-T} {1 +T}$$

$$= G_{\infty} \frac {T} {1 +T} + G_0 \frac {1}{1+T} \ ,$$

上述就是渐近增益模型的公式。

## 非线性的信号流图

梅森在导入线性信号流图的同时，也导入了非线性信号流图。梅森提到：“线性信号流图就是相关系统是线性的信号流图”"

### 非线性分支函数的例子

若以xj来表示j节点的讯号，以下例子是不符合线性非时变系统的函数：

$$\begin{align} <pre> x_\mathrm{j} &= x_\mathrm{k} \times x_\mathrm{l} \\ x_\mathrm{k} &= abs(x_\mathrm{j})\\ x_\mathrm{l} &= \log(x_\mathrm{k})\\ x_\mathrm{m} &= t \times x_\mathrm{j} \text{ ,where } t \text{ represents time} \\ </pre> \end{align}$$

### 非线性信号流图的例子

- 在电子工程的文献中常见非线性的信号流图
- 在生命科学中也常有非线性信号流图，例如亚瑟·盖顿的心血管系统电脑模型。

## 信号流图在不同领域的应用

- 电子电路
- 分析摩尔型有限状态机或是米利型有限状态机的顺序电路，从状态图中得到正则表达式
- 非线性资料转换器的合成
- 控制及网络理论
- 随机信号处理
- 电子系统的可靠度
- 生理学及生物物理
- 心脏输出量调节
- 模拟
- 类比电脑上的模拟