# ブロック線図
## 定義
ブロック線図(block diagram)とは、システムを構成する各コンポーネントを伝達関数でラベル付けされた箱(ブロック)として表し、ブロック間を流れる信号をZ変換表現でラベル付けされた矢印で結んだ図法である。信号の合流は加算点(summation point、○に×を重ねた記号で加減算を表す)、信号の分岐は分岐点(branching point)で表現する。ブロックは入力 $V(z)$ に対し出力 $Y(z) = G(z)V(z)$ を与える(多くの場合、入力・出力とも1本ずつのスカラー信号)。ブロックそれ自体が下位のブロック線図として詳細化しうる再帰的な性質を持つため、ブロック線図は**複雑なシステムを構成要素の合成として組み立てる**モデリング手法を与える。1つのブロックがソフトウェアの特定のアーキテクチャ要素(名前サーバ・オブジェクト・メソッド等)に一対一で対応する必要はなく、逆に複数の要素にまたがるブロック(センサ遅延や集計処理をまとめて表すトランスデューサブロックなど)もありうる。同じ対象システムでも異なるブロック線図で表現しうる。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.1)
## ブロック線図の変換規則
ブロック線図はZ変換の代数規則に基づいて等価変換でき、複雑な線図を単一の伝達関数へ畳み込める。
- **直列結合(series/cascade)**: あるブロックの出力が次のブロックの入力になる結合。結合後の伝達関数はブロックの伝達関数の積になる。例えば誤差 $E(z)$ からコントローラ $K(z)$・対象システム $G(z)$ を経て出力 $Y(z)$ に至る経路の合成伝達関数(フィードフォワード伝達関数)は $F_{FF}(z) = K(z)G(z)$。スカラー伝達関数の積は可換($G(z)K(z)=K(z)G(z)$)だが、ベクトル値伝達関数(MIMO系、第7章)では一般に成立しない。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.2.1)
- **並列結合(summation composition)**: 複数ブロックの出力を加算点で合成する結合。結合後の伝達関数は各ブロックの伝達関数の和になる(MATLABでは `G = G1 + G2`)。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.7)
- **フィードバック結合(feedback loop)**: 出力(またはその変換値)を目標値入力から減算してループを閉じる結合。フィードフォワード伝達関数 $F_{FF}(z)$ とループ伝達関数 $F_{LP}(z)$(誤差 $E(z)$ からフィードバック信号 $W(z)$ までの合成伝達関数、対象システム・コントローラ・トランスデューサが直列の場合は $F_{LP}(z) = K(z)G(z)H(z)$)を使うと、目標値入力から出力までの閉ループ伝達関数は
$F_R(z) = \frac{F_{FF}(z)}{1 + F_{LP}(z)}$
という一般形にまとまる。図4.1のように対象システム $G(z)$・コントローラ $K(z)$・トランスデューサ $H(z)$ が直列に配置された標準的な閉ループでは $F_R(z) = G(z)K(z) / (1 + H(z)G(z)K(z))$ になる(式4.1〜4.2)。同じ枠組みから、目標値入力から制御誤差への伝達関数 $F_{RE}(z)$、外乱入力から出力・誤差への伝達関数 $F_D(z)$・$F_{DE}(z)$、ノイズ入力から出力・誤差への伝達関数 $F_N(z)$・$F_{NE}(z)$ も同様に導出できる(式4.3〜4.7)。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.2.1, §4.3)
- **複雑な線図の再構成(restructuring)**: 二重フィードバックループのように開ループ・閉ループの区別が一見つかない線図は、加算点の順序入れ替えやブロックの移動(移動先で信号の等価性を保つための補正ブロックの挿入を伴う)によって、入れ子になった単純な閉ループ構造へ変形できる。変形後は上記のフィードバック結合則を内側のループから順に適用して単一のブロックへ畳み込む。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.4)
## 横断的知見
- 第3章は個々のコンポーネントの伝達関数 $G(z) = Y(z)/U(z)$ を単一の差分方程式から機械的に導く手続きを与えるのに対し、第4章のブロック線図はその複数の伝達関数(コントローラ $K(z)$・対象システム $G(z)$・トランスデューサ $H(z)$ など)を直列・並列・フィードバック結合として合成し、システム全体の伝達関数(例: $F_R(z)=G(z)K(z)/(1+H(z)G(z)K(z))$)を導く代数を提供する。両章は「単一コンポーネントの解析(第3章)」と「複数コンポーネントの合成(第4章)」という補完関係にある。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 3 Z-Transforms and Transfer Functions]] §3.3, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.2, §4.3)
- 第1章の図1.1はフィードバック制御系の基本構成(目標値入力・制御誤差・コントローラ・対象システム・トランスデューサ・外乱入力・ノイズ入力)を概念図として提示するにとどまるが、第4章はほぼ同一の図(図4.1・図4.5)を出発点に、任意の複雑なブロック線図を代数的な等価変換の繰り返しでこの基本形へ還元する具体的な手続きを与える。第1章が「何を表す図か」を示すのに対し、第4章は「その図をどう操作して解析可能な形にするか」を示す。(Source: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] §1.1, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.1, §4.4)
- **ウィーナーの1948年の「制御フロー図(control flow chart)」は、Hellerstein らのブロック線図の図法的な祖先にあたるが、代数体系そのものは持たない**。ウィーナー『サイバネティクス』第4章のFig.2(入力X→減算器→モータ作用素A→乗算器λ→減算器へ帰還)、Fig.4・Fig.5(補償器・減算器・効果器・フィードバック取り出しを箱と矢印で結ぶ)は、箱(演算子)と矢印(信号)でシステムを表す点でHellerstein らのブロック線図と同じ図法的文法を共有する。ウィーナー自身「配線図ではなく制御フロー図」("not the wiring diagram")と明言しており、コンポーネントを機能単位の箱として抽象化するという発想そのものは1948年の時点で既に確立していたことが分かる。ただしウィーナーの箱は連続時間の作用素(operator)をラベルに持ち、直列結合(Fig.2の A→λ)や帰還結合(Y=X−λAY)の変換は個別に手計算で行われ、Hellerstein らの第4章のようなZ変換に基づく体系的な変換規則(直列=積、並列=和、フィードバック=$F_{FF}/(1+F_{LP})$)としては定式化されていない。図法(グラフィカルな文法)は共有しつつ、それを操作する代数の有無が両者を分ける。(Source: [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]] pp.98-99, pp.111-113, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.1, §4.2.1)
- **ウィーナーのFig.2の帰還結合則 A/(1+λA) は、Hellerstein らの第4章が与える一般公式 $F_R(z)=F_{FF}(z)/(1+F_{LP}(z))$ の特殊ケースと同じ形をしている**。ウィーナーは全体の作用素を A/(1+λA) と導出し(フィードフォワード経路の作用素Aに対し、ループ経路の作用素がλA)、これはHellersteinの式で $F_{FF}=A$, $F_{LP}=\lambda A$ と置いた場合に一致する。連続時間・複素変数の作用素論(ウィーナー)と離散時間・Z変換の伝達関数(Hellerstein)という異なる数学的道具立てのもとで、フィードバック結合の代数形式そのものは1948年から2004年まで変わっていないことが確認できる。(Source: [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]] pp.98-99, [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] §4.2.1, §4.3)
## 未解決の問い
- ベクトル値信号・ベクトル値伝達関数(MIMO系)へブロック線図の変換規則を拡張したとき、スカラー系で成立する性質(直列結合の可換性など)のうちどれが崩れるか。第4章§4.2.1は「一般には成立しない」と述べるにとどまり、詳細は第7章の状態空間モデルでの扱いを確認する必要がある。
- IBM Lotus Domino Serverの例(第4章§4.6.1)のようにブロック線図の反復的構築(モデルの欠陥発見→詳細化→再抽象化)を行う際、詳細化しすぎて組合せ爆発(取引種別数 $m$・RPC種別数 $n$ に対し $m+nm+1$ 個の伝達関数が必要になった例)を避けるための一般的な指針は本章では示されていない。
## 関連
- 概念: [[Z変換と伝達関数]] / [[フィードバックループ]]
- 実体: [[Apache HTTP Server]] / [[IBM Lotus Domino Server]] / [[ノーバート・ウィーナー]]
- ソース: [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 4 System Modeling with Block Diagrams]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 1 Introduction and Overview]] / [[@2004__Wiley__Feedback Control of Computing Systems - Chapter 3 Z-Transforms and Transfer Functions]] / [[@1961__MITPress__Cybernetics - Chapter 4 Feedback and Oscillation]]
- 書籍: [[Feedback Control of Computing Systems]] / [[Cybernetics]]
## 出典
- Hellerstein, Diao, Parekh, Tilbury, *Feedback Control of Computing Systems*, IEEE Press / John Wiley & Sons, 2004, Chapter 4.
- Norbert Wiener, *Cybernetics*, 2nd ed., The MIT Press, 1961, Chapter IV(印字 pp.95-115)。