制御工学ブログ

制御工学の研究者を20年やっている国立大学教員が制御工学の基礎から専門まで広く説明します。記事内では、動画やMATLABコードを交えながらわかりやすく解説する方針です。制御工学チャンネル(YouTube,動画ポータル)を運営しています。

制御工学の基本原理を学ぶ:伝達関数に基づく制御

この記事では伝達関数に基づく制御について1つの記事にまとめます。伝達関数に基づいた周波数領域での制御の個々のトピックの詳細を説明した記事へのリンクは都度貼っています。

伝達関数と基本事項

blog.control-theory.com

制御工学における仕様

制御では様々なタイプの制御対象や制約条件があります。また、達成すべき目的も様々です。しかし、ざっくりとした目的は似ている部分もありますし共通の変数設定があります。ここでは、その全体像について触れます。

フィードバック制御

まず、制御では以下の2つが主要な目的となります。

  •  出力信号の指定された設定値への維持(レギュレーション)
  •  出力信号の目標信号への追従(トラッキング

レギュレーションでは、外乱等の影響下でも出力信号が一定に維持されるようにフィードバック制御を行います。

ラッキングでは、時間的に変化する目標値の動きに出力信号を合わせます。特に変化の速い目標信号への追従を行う場合には、制御則によって性能の良し悪しが大きく変わってきます。

以下の記事では信号と実装プロセスについての説明を行っています。制御に用いられる記号や設計・実装プロセス、学問としての役割について触れています。

blog.control-theory.com

 

ラプラス変換

ラプラス変換を用いることで、微分方程式の解が代数演算により導出できるようになります。まず、信号のラプラス変換の並びに逆ラプラス変換について述べたいと思います。ラプラス変換の定義を以下に示します。信号が時間 tの関数として f(t) と与えられた場合、そのラプラス変換

\begin{equation}
F(s):=\lim_{T\rightarrow\infty}\int_0^T f(t)e^{-st}dt 
\end{equation}

で与えられます。このとき、 F(s) を「 f(t) ラプラス変換」と言います。ここで、極限の記号を省略するとラプラス変換は次のように記載されます。

\begin{equation}
F(s)=\int_0^\infty f(t)e^{-st}dt 
\end{equation}

このうち、指数関数 f(t)=e^{-at} ラプラス変換は制御工学において特に重要ですので、実際に求めてみることにします。

  \lim_{T\rightarrow \infty}\int_0^T e^{-at}e^{-st}dt = \lim_{T\rightarrow \infty}\int_0^T e^{-(s+a)t}dt

 =-\left.\lim_{T\rightarrow \infty}\frac{e^{-(s+a)t}}{s+a}\right|^T_{t=0}=\frac{1}{s+a}

 {\bf{1}}(t) 単位ステップ関数と呼ばれ、以下のように定義されます。
\begin{equation}
{\bf{1}}(t) = 1; t \geq 0, {\bf{1}}(t) = 0; t < 0, 
\end{equation}
指数関数だけでなく、様々な信号のラプラス変換を知ることは有用です。

以下の記事ではラプラス変換表や、特性について述べ、システムの伝達関数と極・零点について触れています。

blog.control-theory.com

 

伝達関数の定義

ここでは、対象システム G伝達関数 G(s)と表記し、その対象に対する応答を表示します。伝達関数は入力のラプラス変換と出力のラプラス変換の比として与えられます。

\begin{equation}
G(s) = \frac{a_{m} s^{m} + a_{{m}-1} s^{{m}-1}\cdots + a_1s + a_0 }{b_n s^n + b_{n-1} s^{n-1}\cdots + b_1s + b_0} 
\end{equation}

ここで、 n, m自然数であり、分子および分母は sに関する多項式です。各多項式における係数 a_0, \cdots, a_m および b_0,\cdots,b_mは実数で与えられます。ここでは、システム Gの極 p_1,p_2,\cdots,p_nは安定極であることを仮定して話を進めます。

以下の記事では、相対次数が0, 1, 2の3パターンの伝達関数を用意し、それらのステップ応答を示しています。

blog.control-theory.com

極零相殺については以下の記事でまとめています。

 

blog.control-theory.com

ブロック線図

ブロック線図は、システムの全体像を図的表現するために用いられます。その構成要素はブロックおよび矢印線であり、ブロックは要素やシステムを表現するのに用いられ、矢印は信号の流れを表現します。最も簡単なブロック線図は以下のように与えられます。

システムG(s)のブロック線図表現

このとき、伝達関数表現されたシステム G(s) について次式が成り立ちます。

\begin{equation}y(s) = G(s)u(s)\end{equation}

ブロック線図を用いた表現は様々な対象システムについて行われますが、ブロックの構成要素と全体像を結びつける際には、伝達関数表現されたシステムを利用すると便利です。このことは後述します。

以下の記事では、個々のブロックが伝達関数として与えられた場合について議論を展開し、ブロック線図における決まり事を紹介します。

blog.control-theory.com

 

極と零点について

ここでは、システム G伝達関数 G(s)と表記し、その伝達関数固有の性質について考えます。

\begin{equation}
G(s) = \frac{a_{m} s^{m} + a_{{m}-1} s^{{m}-1}\cdots + a_1s + a_0 }{b_n s^n + b_{n-1} s^{n-1}\cdots + b_1s + b_0} 
\end{equation}

ここで、 n, m自然数であり、分子および分母は sに関する多項式です。各多項式における係数 a_0, \cdots, a_m および b_0,\cdots,b_mは実数で与えられます。 G(s) の分母多項式

\begin{equation}
b_n s^n + b_{n-1} s^{n-1}\cdots + b_1s + b_0
\end{equation}

であり、分子多項式

\begin{equation}
a_{m} s^{m} + a_{{m}-1} s^{{m}-1}\cdots + a_1s + a_0
\end{equation}

です。ここで、分母多項式を用いて

\begin{equation}
b_n s^n + b_{n-1} s^{n-1}\cdots + b_1s + b_0=0
\end{equation}

を考えます。上式の根は n個あり、それらを p_1,\cdots,p_nと表記します。 p_i には実数根だけでなく共役複素数となる根も含みます。同様に、分子多項式を用いて
\begin{equation}
a_{m} s^{m} + a_{{m}-1} s^{{m}-1}\cdots + a_1s + a_0 = 0 
\end{equation}
を考えます。このとき、上式の根は m個あり、それらを z_1,\cdots,z_mとします。これも同様に共役複素数を含むことがあります。以上を踏まえ、 G(s)は次のように書き換えることもできます。
\begin{equation}
G(s) = \frac{a_m}{b_n}\frac{(s-z_1)(s-z_2)\cdots(s-z_m)}{(s-p_1)(s-p_2)\cdots(s-p_n)}
\end{equation}
システム Gの特性を考える上で上で示した表記は有用です。 p_1,p_2,\cdots,p_nをシステム Gの極と呼びます。また、 z_1,z_2,\cdots,z_mをシステム Gの零点と呼びます。特に、 p_iの実部が 0以上となる極を不安定極、 z_iの実部が 0以上となる零点を不安定零点と呼びます。

システム Gにおいて、 nを次数といい、 n mの差を相対次数という。相対次数 n-mが正の値のとき、 Gは厳密にプロパーといい、 n-m 0のとき、すなわち n=mのとき双プロパーといいます。一般的な物理システムは厳密にプロパーもしくは双プロパーなシステムとして与えられます。

 

不安定零点と制御性能

以下が、不安定零点を持つ制御対象伝達関数の一例です。

 P(s) = \frac{-s+1}{s^2+3s+2}, \frac{s^2-2s+2}{s^3+3s^2+3s+1}

伝達関数において、零点は [分子多項式] = 0 を満たす s であり、一つ目の対象の零点は s = 1 であり、二つ目の対象の零点は  s = 1 \pm i です。双方ともに実部が正の値を取っています。零点の中で一つでも不安定零点を持つと制御が極端に難しくなります。

以下の記事では、不安定零点を持つシステムの逆システムや逆応答、性能限界について触れています。

blog.control-theory.com

 

部分分数分解による信号要素の分解

制御工学において、ラプラス変換表により逆ラプラス変換を行うことで信号波形を得ます。信号のラプラス変換 s の有理関数として与えられ、その信号が一次式や二次式の場合にはラプラス変換表により逆ラプラス変換で波形が求まります。他方、より高次の場合には、まず、有理関数として与えられた信号のラプラス変換に対して部分分数分解を施し、一次式もしくは二次式まで分解することにより、それぞれの項に対して逆ラプラス変換を施すことができ、信号波形が(時間の関数として)得られます。

簡単な部分分数分解と信号波形の例

ここでは、簡単な例を一つ示します。制御対象(伝達関数表現) P(s) = 1/(s+2) に対して、単位ステップ入力(のラプラス変換 r(s) = 1/s を印加したとき、制御出力は次式で与えられます。

\begin{equation} y(s) = P(s) r(s) = \frac{1}{(s+2)s} \end{equation}

このとき、 1/(s+2)s は次の形式に分解できます。

\begin{equation} \frac{A}{s+2}+\frac{B}{s}\end{equation}

ここで、 A = -1/2 B = 1/2とすると以下の等号が成り立ちます。

\begin{equation} \frac{1}{(s+2)s}=-\frac{1}{2}\frac{1}{s+2}+\frac{1}{2}\frac{1}{s}\end{equation}

ここで、 y(t) を求めたいとき、上の式に基づいて、それぞれの項を逆ラプラス変換することで導出できます。

\begin{equation} y(t) = -\frac{1}{2} e^{-2t} + \frac{1}{2}\end{equation}

ここでは、分母多項式の次数が2のケースを扱っていますが、より高次の場合についても低次の項へと分解することで結果への見通しを良くすることができます。

 

実際の手法および例題については以下の記事でまとめています。応答計算や対角正準形の導出についての説明も行っています。

blog.control-theory.com

 

ボード線図

ボード線図の表現

どんな入力を印加すると、どんな出力が得られるかを考えます。伝達関数 G(s)  s s = j\omega を代入してその大きさと角度を計算すれば、ある角周波数 \omegaを印加したときの出力 y(t)が次のように特徴づけられます。

\begin{equation}
y(t) = |G(j\omega)| \sin (\omega t + \angle G(j\omega) ) 
\end{equation}

ただし、上式は、制御対象が安定の前提下で、時間の経過とともに過渡的な信号が減少した後の最終的な定常出力を表している点に注意してください。

このとき、出力信号の振幅の大きさが |G(j\omega)| で特徴付けられ、位相の遅れが \angle G(j\omega)で特徴付けられます。入力振幅が二倍になれば出力振幅も当然二倍になりますが、ここでボード線図では、振幅比を表現することから入力の大きさは考えず、 |G(j\omega)| で特徴付けられます。ボード線図は横軸を角周波数 \omegaとして、ゲインと位相を表したものであり、伝達関数 G(s)さえ与えられれば、そこから容易に計算できます。通常、ゲインはデシベル表記するため 20 \log_{10} |G(j\omega)| で与えられます。

ボード線図の例

システムの伝達関数 G(s) = \frac{1}{(s+1)(s+2)}で与えられる場合について、そのボード線図を示します。

2次系のボード線図(ゲイン線図,位相線図)

ボード線図の実例なども含めて以下の記事で詳解しています。

 

blog.control-theory.com

 

ラウスの安定判別法

ラウス表を構成し、その係数を確認することで安定性を調べることができます。

まず、 D(s)は次のように与えられるものとします。

\begin{equation}s^n + a_{n-1}s^{n-1}+a_{n-2}s^{n-2}\cdots a_1 s + a_0\end{equation}

このとき、次のようにラウス表を構成します。

 s^n  1  a_{n-2}  a_{n-4}  \cdots
 s^{n-1}  a_{n-1}  a_{n-3}  a_{n-5}  \cdots
 s^{n-2}  b_1  b_2  b_3  \cdots
 \vdots  \vdots  \vdots  \vdots  
s^0        

 

まず、 s^nおよび s^{n-1}の最初の2行については D(s) の係数が高次から順に交互に並べていきます。

その後、 s^{n-2}の行に対応する b_iを計算し、 s^{n-3}に対応する c_iを順に計算していきます。まず、 b_1

\begin{equation} b_1 = \frac{a_{n-1}a_{n-2} - a_{n-3} }{a_{n-1}}\end{equation}

と計算され、 b_2

\begin{equation} b_2 = \frac{a_{n-1}a_{n-4} - a_{n-5} }{a_{n-1}}\end{equation}

と計算され、 b_3

\begin{equation} b_3 = \frac{a_{n-1}a_{n-6} - a_{n-7} }{a_{n-1}}\end{equation}

と計算されます。上2行の係数に対するたすき掛けの要領での計算を順に進め、全ての演算を終えると次の行の計算をしていきます。そのように全ての演算を終えたとき、表の赤で示される列(最左列)の数列をラウス数列と呼びます。

このラウス数列の符号が反転しなければ安定であり、反転すると不安定です。そして、反転の回数が不安定極の個数に相当します。

以下の記事中に例題を含めて説明をしています。

blog.control-theory.com

 

ナイキスト線図と安定判別法

ここでは、閉ループ系の安定性について確認します。まず、 P(s) および C(s)が与えられているものとします。

閉ループ系

ここで、

\begin{equation} L(s) = P(s) C(s)\end{equation}

を一巡伝達関数と呼びます。閉ループ系の入出力特性は次のように与えられます。

\begin{equation} \frac{y}{r} = \frac{P(s)C(s)}{1+P(s)C(s)}\end{equation}

\begin{equation} \frac{y}{d} = \frac{P(s)}{1+P(s)C(s)}\end{equation}

閉ループ系の安定性を一巡伝達関数の不安定極の数と周波数応答データ P(j\omega)C(j\omega)によって導きます。角周波数 \omega -\inftyから \inftyの範囲で動いたとき、 L(j\omega) の軌跡をナイキスト軌跡と呼びます。

ここでは、仮定として P(s) ,  C(s) の間に不安定な極零相殺が無いものとします。安定判別法は以下の通りです。

安定性判別法

  1. 一巡伝達関数が極零相殺はないものと仮定する。
  2. ナイキスト軌跡  P(j\omega)C(j\omega),  (\omega : -\infty \to +\infty) を描く。
  3. ナイキスト軌跡が点(-1+0j)の周りを時計回りに回る回数を Nとする。
  4. 一巡伝達関数の極のうち、実部が正となる極の数を \Piとする。 
  5.  N+\Piの値が零であれば閉ループ系は安定であり、そうでなければ不安定である。

一巡伝達関数が安定な場合

まずは、一巡伝達関数 L(s) が安定な場合について周波数応答データ P(j\omega)C(j\omega)複素平面上にプロットします。このとき、ナイキスト軌跡が点(-1+0j)の周りを時計回りに回る回数が零であれば安定です。

一巡伝達関数として

\begin{equation} L(s) = \frac{K}{(s+1)^3}\end{equation}

を与えます。

ここで、 K = 5のとき、-1を周回する回数は図から零回であることがわかります。

ナイキスト線図

赤色の点を周回していません。 K = 5の場合について、閉ループ系を組んでステップ応答を表示したものが以下の図です。

閉ループ系のステップ応答

安定であることが応答から確認できます。他方、上記のナイキスト線図が K = 5であることから、 K = 10とした場合に赤の点(-1)を周回することが容易に予想できます。この他、不安定な例などは以下の記事で説明しています。

 

blog.control-theory.com

PID制御

PID制御器の内部構造

以下にPID制御器の構造について、その要素の説明をしていきます。PID制御は、基本的には単位フィードバックの構造をしており、その制御器部分が比例(P)、微分(D)、積分(I)で構成されています。

比例動作

まず P 動作 比例動作ですが、比例動作は出力と目標値との偏差を考えて、その偏差に比例係数をかけたものを制御入力として用います。

 \displaystyle u(t) = K_P e(t)

ボード線図は次のようになります。ゲインが周波数によらず一定値となっていることが わかります。

ボード線図(比例)

比例ゲインのボード線図
微分動作

次にD動作です。 D動作では偏差の変化量に比例した入力を構成します。 このためボード線図を見てやると低い周波数ではゲインが小さく、高い周波数ではゲインが大きくなります。

ボード線図(微分)

微分ゲインのボード線図

より変化に対して感度の高い入力を決定することになります。 そしてこのD動作とP動作を組み合わせたPD制御がよく使われます。

 \displaystyle u(t) = K_P e(t) + K_D \dfrac{de(t)}{dt}

PD制御では、ゲインはある周波数まではフラットとなって、ある周波数以降では どんどん高い値になっていくボード線図の形状となります。このグラフの形状はPDゲインをどの値に設定するかによってシフトすることになります。

PD制御

PD制御ブロックのボード線図
積分動作

最後にI動作です。 I動作では偏差信号を 考え、その積分値を考えます。この積分値に比例した入力を決定します。 このI動作に対してボード線図を見てやりますと、低い周波数では高いゲインとなり 高い周波数になるに従って、そのゲインが下がっていくような構成になっています。

ボード線図(積分)

積分ゲインのボード線図

この積分器を構成する時にはその初期値 を初期化することに注意する必要があります。 この積分器は目標信号がステップの場合には、目標信号と出力との偏差をゼロにする働きがあります。

 \displaystyle u(t) = K_P e(t) + K_D \dfrac{de(t)}{dt} + K_I\int_0^t e(t) dt

PID制御器を構成すると次のようなボード線図の形状となります。

ボード線図(PID制御)

PID制御要素のボード線図)

積分器の初期値は通常0としますが、その設定を考えずに実装すると想定外の応答になることがありますので注意してください。

コントローラーを設計する際には、まず出力 yがどのような応答になればよいかという ことを考える必要があります。その上でコントローラーの係数をどのような組み合わせにするかを考えることで、制御性能を良くしていくことになります。 出力の結果がどのような応答波形となるかは、制御対象の特性によっても依存しますし ゲインの係数によっても依存して変わってくることになります。

PID制御器の離散時間実装や、設計法については以下の記事で触れています。

blog.control-theory.com

 

内部モデル原理

出力信号 y(t) を目標信号 r(t) に追従させる追従制御問題を考えます。

 \lim_{t\rightarrow \infty} y(t)-r(t)=0

単位フィードバック系は次の図で与えられます。この単位フィードバック系を用いて内部モデル原理の説明を行います。

単位フィードバック系

 

単位フィードバック系において r から y までの入出力伝達関数は、次式で与えられます。
\begin{equation}
G_y(s) = \frac{P(s)C(s)}{1+P(s)C(s)}
\end{equation}
ここで e(t)=r(t)-y(t) とすると r から e までの入出力伝達関数として
\begin{equation}
G_e(s) = \frac{1}{1+P(s)C(s)}
\end{equation}
を得るます。また、 d から y までの入出力伝達関数は次式で与えられます。
\begin{equation}
G_d(s) = \frac{P(s)}{1+P(s)C(s)}
\end{equation}

内部モデル原理(ステップ)

単位フィードバック系に対する追従問題を扱う場合における重要な原理が内部モデル原理であり、ステップ目標値の場合は以下のように与えられます。

  • フィードバック系が内部安定であり、制御器が少なくとも一つの積分器を有するとき、ステップ目標値 r(t)=r_0 およびステップ外乱 d(t)=d_0 に対する単位フィードバック系の定常偏差は零となる。

 

ここでは、前提条件として制御対象 P(s)  s=0 に零点を持たないものとして話を進めます。単位ステップ r(t)=r_0 に対して偏差信号のラプラス変換 e(s) は次のように与えられます。
\begin{equation}
e(s) = G_e(s) \frac{r_0}{s} = \frac{1}{1+P(s)C(s)}\frac{r_0}{s}
\end{equation}
元のシステムが内部安定であり、部分分数分解した場合に \lim_{t\rightarrow \infty}e(t)=0 となるためには、次の条件を満たす必要があります。
\begin{equation}
\lim_{s=0} s\frac{1}{1+P(s)C(s)}\frac{r_0}{s} = \frac{1}{1+P(0)C(0)} r_0= 0
\end{equation}
 C(s) 積分器を持ち C(s)=C_0(s)/s と書き直せるとき
\begin{equation}
\lim_{s=0} s\frac{1}{1+P(s)C_0(s)/s}\frac{r_0}{s} = \lim_{s=0} \frac{s}{s+P(s)C_0(s)} r_0 = 0
\end{equation}
が自動で満たされます。よって、ステップ目標値 r(t) = r_0 に対して定常偏差が零となります。

他方、外乱 d(t) = d_0 に対する応答を確認します。外乱から出力までの伝達特性から
\begin{equation}
y(s) = G_d(s) d(s) = \frac{P(s)}{1+P(s)C(s)}\frac{d_0}{s}
\end{equation}
が得られます。このとき、部分分数分解した場合に \lim_{t\rightarrow \infty}y(t)=0 となるためには、次の条件を満たす必要があります。
\begin{equation}
\lim_{s=0} s\frac{P(s)}{1+P(s)C(s)}\frac{d_0}{s} = \frac{P(0)}{1+P(0)C(0)} d_0 = 0
\end{equation}
 C(s) 積分器を持ち C(s)=C_0(s)/s と書き直せるとき
\begin{equation}
\lim_{s=0} s\frac{P(s)}{1+P(s)C_0(s)/s}\frac{d_0}{s} = \lim_{s=0} \frac{sP(s)}{s+P(s)C_0(s)} d_0 = 0
\end{equation}
が自動で満たされます。よって、ステップ外乱 d(t) = d_0 に対して定常出力が零となります。

 

他の信号屋シミュレーションなどについては以下の記事で詳しく説明しています。

 

blog.control-theory.com

 

制御系のむだ時間

むだ時間は、入力信号がシステムに印加された後、印加した入力の影響が一定時間経過してから出力信号に反映されるような場合の応答開始までの時間差のことを表します。プロセス系や信号の伝送過程における遅延など様々な要因で生じます。制御入力を u(t) とし、むだ時間長さを Lとすると、入力むだ時間を含むシステムの伝達関数表現は有理関数 G(s)を使って次のように表すことができます。
\begin{equation}y(s) = P(s)e^{-Ls} u(s)\end{equation}

と表現され、制御システム P(s)e^{-Ls} と表記される無限次元系として表されます。

むだ時間系の応答波形

まず、応答波形を確認してみます。むだ時間がないシステム P1(s) とむだ時間を含むシステム P2(s)e^{-Ls} との比較図が以下の通りです。ただし、 P1(s)=(s+5)/(s^2+3s+2) とし、 P2(s)=(s+5)/(s^2+3s+2)e^{-2s}としていますので、有理関数部分は全く同じです。ここでは L = 2となっています。

ステップ応答とインパルス応答

むだ時間系の応答波形を確認すると、各時刻の値が2秒づつ右にシフトしていることがそれぞれ確認できます。

 

むだ時間系に対する設計や近似表現については以下の記事で説明しています。

 

blog.control-theory.com

 

制御工学チャンネル内の伝達関数に基づく制御の関連ページ

動画ポータルサイト「制御工学チャンネル」内の伝達関数に基づいた制御へのリンクはこちらです。各教員ごとのページとしてまとまっています。

 

伝達関数に基づく制御 

伝達関数と制御01 岡島寛

伝達関数と制御02 南裕樹

伝達関数と制御03 石川将人

伝達関数と制御04 橋本智昭

伝達関数と制御05 西村悠樹

伝達関数と制御06 伊藤恒平

伝達関数と制御07 末岡裕一郎

プラントと特性

PID制御

 

伝達関数に基づく制御・古典制御の書籍一覧

古典制御の本は様々にありますが、その中の一部を紹介します。

佐賀大学の佐藤先生らによる著書です。

杉江先生、藤田先生による著書です。学生時代はこの本で学びました。

荒木先生による著書です。

足立先生の制御工学のこころ(古典制御編)です。

制御工学の演習の書籍です。

自己紹介

岡島 寛 (熊本大学工学部情報電気工学科准教授)

制御工学の研究をしています。モデル誤差抑制補償器,状態推定,量子化制御など

研究室HP

岡島寛 (システム制御 control-theory.com)

English Web Page

Hiroshi Okajima (Control Engineering control-theory.com)

制御動画ポータルサイト

制御工学チャンネル(伝達関数・状態方程式・MATLABなど)

電気動画ポータルサイト

電気電子チャンネル (半導体・電気・電子工作など)

YouTube 

制御工学チャンネル (制御YouTubeチャンネル)

 

以上が伝達関数に基づく制御の記事全体をまとめた記事になります。本記事は以上です。役に立った、と思われましたら、ブックマーク・シェア等のアクションをしていただければ嬉しいです。