伝達関数とは?利点と初期値の考え方を解説!

システムと伝達関数

このページでは、伝達関数の定義と利点について、具体例を挙げながら解説します。また、入力・出力の初期値を0と考えていい理由についても解説します。

このページのまとめ
  • 伝達関数は、ラプラス変換の結果得られる、システムの入出力特性を表す関数
  • 「出力=伝達関数×入力」とかけ算だけで入出力関係を表せるので、取扱いが超簡単
  • 伝達関数をちょっと変形すると周波数伝達関数になり、簡単に周波数解析ができる
  • 入出力(とその微分)の初期値を0と仮定する場合が多いが、実用上はそれでほとんど問題ない
モバイル端末の方へ
数式が画面からはみ出している場合は、式を横スクロールするか、横持ちしてご覧ください
スポンサーリンク

伝達関数とは

伝達関数とは、システムの入出力特性を表す、古典制御の基礎となる関数のことです。伝達関数は、システムの微分方程式をラプラス変換することで得られます。順番に詳細を見ていきましょう。

一般的に、動的システムの特性は微分方程式で表されます。システムが複雑になると、当然微分方程式も複雑になり、その解析が難しくなります。そこで古典制御では、ラプラス変換という変数変換を用いて、システムの方程式を扱いやすい形式に変換します。

時間領域・周波数領域とラプラス変換のイメージ

※ラプラス変換については追って詳しい解説記事を書く予定ですが、ここでは微分方程式を解きやすくする数学的なテクニックだと思ってください。

具体例で確認していきましょう。次のような機械システムを考えます。

ばねダンパ系

システムの入力は台車に加わる力\(u(t)\)、出力は台車の位置\(y(t)\)です。このシステムの運動方程式は、次の通りですね。

$$m\ddot{y} + c\dot{y} + ky = u$$

最初に台車が平衡状態で静止している、つまり\(y(0)=\dot{y}(0)=0\)であるとして、これをラプラス変換してみます。\(u(t)\)、\(y(t)\)それぞれをラプラス変換したものを\(U(s)\)、\(Y(s)\)で表すと、次式が得られます。

$$ms^2Y(s) + csY(s) + kY(s) = U(s)$$

出力についてまとめると、次のようになりますね。

$$Y(s)=\ubg{\frac{1}{ms^2 + cs + k}}{G(s)とする} U(s)=G(s)U(s)$$

ラプラス変換後の世界(\(s\)領域)では、出力が「関数\(G(s)\)×入力」の形で表されました。この入力と出力をつなぐ関数\(G(s)\)が伝達関数です

$$\usg{Y(s)}{出力} = \usg{G(s)}{伝達関数} \cdot \usg{U(s)}{入力} $$

この伝達関数の利点について、詳しく見ていきましょう。

スポンサーリンク

伝達関数の利点

利点1:微分方程式が、かけ算で解けるようになる!

先程の例の通り、伝達関数を用いることで、システムの出力を伝達関数と入力のかけ算だけで求められるようになります

微分方程式を普通に解こうとすると積分操作が必要となりますが、それがかけ算だけになると嬉しいですよね。高階の微分方程式もかけ算だけで解けるので、システムが複雑になるほどこの恩恵も大きくなるといえます。

$$y^{(4)}+a_3 y^{(3)}+ a_2 y^{(2)}+ a_1 y^{(1)} +a_0 y = b_1 u^{(1)} + b_0 u$$

$$Y(s) =\ubg{ \frac{b_1 s + b_0}{s^4 + a_3 s^3 + a_2 s^2 + a_1 s + a_0}U(s)}{微分が多くても、かけ算だけで出力が求まる!}$$

もちろん伝達関数によって得られる\(Y(s)\)は\(s\)領域での解ですが、これを\(Y(s)\rightarrow y(t)\)と逆ラプラス変換することで、\(t\)領域での解\(y(t)\)が得られます。

また、伝達関数の零点を見ることで、わざわざ逆ラプラス変換をしなくても\(y(t)\)の挙動をある程度分析できることもできます。このお手軽さが伝達関数の大きな利点です

利点2:簡単にシステムを結合できる!

先程のシステムでは入力である力\(u\)を自由に操作できると仮定していました。今、下図のようにプロペラの風で力を発生させるとします。

プロペラで動くばねダンパ系

このとき、プロペラの特性も含めたシステムの特性を考えてみましょう。プロペラは入力電流\(i\)に応じて風力\(u\)を発するもので、その特性は次の微分方程式で表されるとします。

$$\ddot{u} + a_1 \dot{u} + a_0 u= i$$

ブロック線図にすると次の通りですね。

プロペラで動くばねダンパ系のブロック線図

よって台車の動作\(y\)を得るためには、まずプロペラの微分方程式を解き、さらにその解\(u\)を入力とした台車の微分方程式を解く必要があります。

もちろんそのような計算は可能ですが、面倒な上にシステム全体の特性の見通しが悪いですよね。これよりもさらに複雑なシステムだとなおさらです。

伝達関数を使うと、このような場合も超簡単に対応できます。\(s\)領域では入出力がかけ算になるので、\(i\)から\(y\)までのシステム全体の入出力特性も、次のように伝達関数どうしのかけ算で得られます

$$\begin{align}台車の特性:Y(s)&=\frac{1}{ms^2 + cs + k}U(s)\\ \\プロペラの特性:U(s) &=\frac{1}{s^2 + a_1s + a_0}I(s) \qquadなので、\\\\ 全体の特性:Y(s)&=\ubg{\frac{1}{ms^2 + cs + k}}{台車の伝達関数G_1(a)} \cdot \ubg{\frac{1}{s^2 + a_1s + a_0}}{プロペラの伝達関数G_2(s)} I(s)\end{align}$$

伝達関数を簡単に結合できる例
スポンサーリンク

利点3:簡単に周波数解析ができる!

ラプラス変換は周波数解析と非常に相性が良いため、伝達関数を用いて簡単にシステムの周波数解析を行うことができます

周波数解析は、「システムが様々な周波数の信号に対してどのように反応するか」を解析する手法です。例えば考慮しているシステムに対して「この周波数の入力に特に過敏に反応する」とか「入力の周波数がコレ以上になるとあまり反応しなくなる」といった情報がわかります。(周波数は「信号の変化の速さ」だと思ってください)

周波数解析のイメージ

話を伝達関数に戻しましょう。今、角周波数を\(\omega\)、虚数単位を\(j\)とします。このとき、伝達関数\(G(s)\)に\(\omega j\)を入れた\(G(\omega j)\)が、そのままシステムの周波数特性(システムのフーリエ変換)となることが知られています。この\(G(\omega j)\)は、周波数伝達関数と呼ばれます。

この周波数伝達関数を用いることで、手軽に周波数解析を行うことができます。例えば、周波数伝達関数をグラフに描くことでボード線図ベクトル軌跡が得られ、システムの周波数特性を視覚的に確認できます。

ボード線図の例

初期値を0としていい理由

古典制御では、入出力(とその微分)の初期値が全て0であると仮定してシステムを取り扱うことがほとんどです。ここまでの例でも、そのように仮定していましたね。

なぜこんな仮定を置くかというと、関数の微分のラプラス変換が、次のように非常にシンプルで取り扱いやすい形になるからです。

$$\begin{alignat}{2}\dot{f}(t) &\rightarrow sF(s) – f(0) &&= sF(s) \\ \ddot{f}(t) &\rightarrow s^2 F(s) -sf(0) – \dot{f}(0) &&= s^2 F(s)\end{alignat}$$

…勝手にそんな仮定を置いていいの?適用範囲が狭まらないの?

と思うかもしれませんが、実際はそこまで問題にならないことがほとんどです。この理由を説明していきます。

理由1:実際に初期値0の場合がほとんどだから

ほとんどのシステムにおいて、初期値が0であるとは「最初にシステムが停止している」か「最初にシステムが平衡点にある」ことを指します。大抵のシステムはこのどちらかの状態から動き出すので、実際に初期値が0である場合がほとんどです

例えば機械システムであれば、スイッチがOFFになっていて(釣り合いの位置で)止まっている状態のイメージですね。当然この状態からスイッチをONにして動かすわけです。もしシステムが動いている状態でも、スイッチを切れば簡単に初期値0にリセットできるので、実用上は初期値を0に固定してもほとんど困りません

スポンサーリンク

理由2:初期値が何であれ伝達関数は変わらないから

もし実際の初期値が0でない場合、計算の結果得られる出力\(Y(s)\)は現実の動作と異なってしまいます。このような場合でも、制御器設計という観点でいえば問題ないことがほとんどです。具体的に説明していきましょう。

古典制御における制御器設計は、「出力が具体的にどうなるか」ではなく「入力が出力にどう影響を与えるか」という入出力の関係性に基づくものがほとんどです。例えば先ほど紹介した周波数解析は、具体的な出力の挙動ではなく、入出力の関係性を分析する手法ですよね。

そして、この入出力の関係性を表すものが伝達関数でしたが、伝達関数は初期値が何であれ変わりません。よって初期値の設定がちょっとぐらい現実と異なっていても、適切に制御器を設計できる場合がほとんどです。

例として、先ほどの機械システムをもう一度考えましょう。

ばねダンパ系

$$m\ddot{y} + c\dot{y} + ky = u$$

初期値\(y(0),\dot{y}(0)\)を0としないで運動方程式をラプラス変換してみます。

$$m\bigl\{ s^2Y(s) -sy(0) – \dot{y}(0) \bigr\} + c\bigl\{ sY(s) – y(0)\bigr\} + kY(s) = U(s)$$

出力についてまとめると、次のようになります。

$$Y(s)= \ubg{\frac{1}{ms^2 + cs + k}}{G(s)} \Bigl[ U(s) + \ubg{\vphantom{ \frac{1}{ms^2 + cs + k} }m\bigl\{ sy(0) + \dot{y}(0)\bigr\} + dy(0)}{初期値に関する情報➔I(s)} \Bigr]$$

初期値に関する情報を\(I(s)\)とまとめると、入力\(U(s)\)と初期値情報\(I(s)\)はそれぞれ独立に出力\(Y(s)\)に作用することがわかります。

$$\begin{align}\osg{Y(s)}{出力} &= \osg{G(s)}{伝達関数} \Bigl\{ \osg{U(s)}{入力} + \osg{I(s)}{初期値} \Bigr\} \\ &= G(s)U(s) + G(s) I(s) \end{align}$$

よって、初期値が0でない場合も入出力の関係性は変わらず伝達関数\(G(s)\)で表されます。言い換えると、「結局無視する初期値の項を最初から考えないために、初期値を0に設定している」とも解釈できますね。

以上、伝達関数とその利点、初期値の考え方についての解説でした!こちらの記事では伝達関数の具体例を数多く紹介していますので、あわせてご覧ください。

このページのまとめ
  • 伝達関数は、ラプラス変換の結果得られる、システムの入出力特性を表す関数
  • 「出力=伝達関数×入力」とかけ算だけで入出力関係を表せるので、取扱いが超簡単
  • 伝達関数をちょっと変形すると周波数伝達関数になり、簡単に周波数解析ができる
  • 入出力(とその微分)の初期値を0と仮定する場合が多いが、実用上はそれでほとんど問題ない

コメント