制御工学の書籍や記事を読むためにラプラス変換の基礎を学ぶ
はじめに
Qiitaには制御工学について解説した良質な記事がたくさんありますが、読む上でどうしてもラプラス変換/逆変換を外すことができません。
ラプラス変換は時間領域を周波数領域として扱うための変換であり、制御工学では時間ではなく周波数を基にモノの振る舞いを考えることが大切になります。
例えば、お祭りで買える水ヨーヨーで最も振幅(水ヨーヨーを動かした際の振動の幅)が大きくなるような手の動かし方(=制御)について論ずる際、ヨーヨーの変位の時間変化にはそれほど意味がなく、むしろ手を動かす速さ(=周波数)とヨーヨーの変位を論じた方が、直観的です。もちろん、最終的にはヨーヨーの変位と時間の関係――ある手の動きの早さでヨーヨーを動かした時のヨーヨーの変位と時間の関係――は大切です。
時間と速さ(周波数)の関係、それらを行き来するための数学的ツールがラプラス変換/逆変換になります。
ラプラス変換は制御工学においてあまりにも重要で、(古典)制御工学について解説した記事であればどこにでも出てくるので、この記事では足がかりとしてラプラス変換の基礎を学びましょう。
※ 実は制御工学には周波数ではなく直接時間的振る舞いを議論する分野――現代制御論――もあるのですが、実分野で積極的に応用されているとは言い難いです。
対象読者: 微分・積分の基礎を学んだことがあり、これから制御工学を学びたい/復習したい方を想定しています。
なぜ「変換」するのか――微分方程式を解く道具
ラプラス変換の御利益を一言でいうと、**「微分・積分を含む面倒な計算を、四則演算レベルの代数計算に変換してくれる」**ことです。
制御工学では、対象(システム)の振る舞いを微分方程式で表します。微分方程式を直接解くのは骨が折れますが、ラプラス変換を使うと次のような流れで「解かずに解く」ことができます。
難しい微分方程式に正面から立ち向かう代わりに、いったん「s領域」という別世界に持ち込んで、簡単な代数計算で答えを出し、最後に時間の世界へ戻す。この「迂回路」を提供してくれるのがラプラス変換です。
ラプラス変換の定義
時間 $t$ の関数 $f(t)$(ただし $t \geq 0$)に対して、ラプラス変換 $F(s)$ は次式で定義されます。
$$
F(s) = \mathcal{L}[f(t)] = \int_0^{\infty} f(t) e^{-st} dt
$$
ここで $s$ は複素数 $s = \sigma + j\omega$ で、虚部 $\omega$ が「周波数」に対応します($j$ は虚数単位)。$f(t)$ という時間の関数に $e^{-st}$ を掛けて $0$ から $\infty$ まで積分すると、$t$ が消えて $s$ の関数 $F(s)$ になる、という点がポイントです。
定義式の積分区間が $0$ から始まるものを片側ラプラス変換と呼びます。制御工学では「ある時刻($t=0$)でスイッチを入れた後の応答」を扱うことが多いため、こちらが標準的に使われます。本記事でも以降この定義を用います。
イメージ:あらゆる「減衰する波」で信号を分解する
$e^{-st} = e^{-(\sigma + j\omega)t} = e^{-\sigma t} e^{-j\omega t}$ と分解すると、$e^{-j\omega t}$ は周波数 $\omega$ の振動、$e^{-\sigma t}$ は減衰を表します。
つまりラプラス変換は、信号 $f(t)$ を**「いろいろな周波数 $\omega$・いろいろな減衰率 $\sigma$ をもつ波」がどれだけ含まれているか**に分解する操作だと捉えられます。冒頭の水ヨーヨーの例でいえば、「手をどんな速さ(周波数)で動かしたときの成分がどれだけ含まれているか」を取り出していることに相当します。
基本関数のラプラス変換を計算してみる
定義式に当てはめて、よく使う関数を実際に変換してみましょう。
単位ステップ関数
$t \geq 0$ で常に $1$ となる関数 $f(t) = 1$(単位ステップ関数)を変換します。
$$
F(s) = \int_0^{\infty} 1 \cdot e^{-st} dt = \left[ -\frac{1}{s} e^{-st} \right]_0^{\infty}
$$
$\sigma > 0$ ならば $t \to \infty$ で $e^{-st} \to 0$ となるので:
$$
F(s) = 0 - \left( -\frac{1}{s} \right) = \frac{1}{s}
$$
指数関数
$f(t) = e^{at}$($a$ は定数)を変換します。
$$
F(s) = \int_0^{\infty} e^{at} e^{-st} dt = \int_0^{\infty} e^{-(s-a)t} dt = \left[ -\frac{1}{s-a} e^{-(s-a)t} \right]_0^{\infty}
$$
$s - a > 0$ の範囲で $t \to \infty$ の項が消えるので:
$$
\mathcal{L}[e^{at}] = \frac{1}{s - a}
$$
三角関数(正弦波)
$f(t) = \sin \omega t$ を変換します。オイラーの公式 $\sin \omega t = \dfrac{e^{j\omega t} - e^{-j\omega t}}{2j}$ を使い、先ほどの指数関数の結果を流用します。
$$
\mathcal{L}[\sin \omega t] = \frac{1}{2j}\left( \frac{1}{s - j\omega} - \frac{1}{s + j\omega} \right) = \frac{1}{2j} \cdot \frac{2j\omega}{s^2 + \omega^2}
$$
$$
\mathcal{L}[\sin \omega t] = \frac{\omega}{s^2 + \omega^2}
$$
同様にして $\mathcal{L}[\cos \omega t] = \dfrac{s}{s^2 + \omega^2}$ も得られます。
よく使う変換表
ここまでの結果を含め、実務で頻出するものをまとめておきます。
| $f(t)$ (時間領域) | $F(s)$ (s領域) |
|---|---|
| $\delta(t)$(デルタ関数) | $1$ |
| $1$(ステップ) | $\dfrac{1}{s}$ |
| $t$ | $\dfrac{1}{s^2}$ |
| $t^n$ | $\dfrac{n!}{s^{n+1}}$ |
| $e^{at}$ | $\dfrac{1}{s-a}$ |
| $\sin \omega t$ | $\dfrac{\omega}{s^2 + \omega^2}$ |
| $\cos \omega t$ | $\dfrac{s}{s^2 + \omega^2}$ |
実務でラプラス変換を毎回定義式から計算することはほとんどありません。上のような変換表と、次に説明する「性質」を組み合わせて使うのが基本です。
ラプラス変換の重要な性質
ラプラス変換が「微分方程式を代数方程式に変える」と言える根拠が、ここで紹介する性質です。
線形性
定数 $a, b$ と関数 $f(t), g(t)$ に対して:
$$
\mathcal{L}[a f(t) + b g(t)] = a F(s) + b G(s)
$$
定義式の積分が線形だから、というだけのことですが、複雑な信号を基本関数の足し合わせに分解して変換できるという、極めて便利な性質です。
微分のラプラス変換(最重要)
$f(t)$ の微分 $f'(t)$ のラプラス変換は次のようになります。
$$
\mathcal{L}[f'(t)] = s F(s) - f(0)
$$
導出: 定義式に部分積分を適用します。
$$
\mathcal{L}[f'(t)] = \int_0^{\infty} f'(t) e^{-st} dt = \Big[ f(t) e^{-st} \Big]_0^{\infty} - \int_0^{\infty} f(t) \cdot (-s) e^{-st} dt
$$
第1項は $t \to \infty$ で $0$、$t = 0$ で $-f(0)$ となり、第2項は $s F(s)$ なので:
$$
\mathcal{L}[f'(t)] = -f(0) + s \int_0^{\infty} f(t) e^{-st} dt = s F(s) - f(0)
$$
同様に2階微分は次のようになります。
$$
\mathcal{L}[f''(t)] = s^2 F(s) - s f(0) - f'(0)
$$
ここが本記事で最も重要なポイントです。時間領域での「微分」が、s領域では「$s$ を掛けるだけ」の操作に化けます。 初期値 $f(0)$ がそのまま式に組み込まれるのも嬉しい点で、初期条件を自然に扱えます。
積分のラプラス変換
逆に、積分は「$s$ で割る」操作になります。
$$
\mathcal{L}\left[ \int_0^t f(\tau) d\tau \right] = \frac{F(s)}{s}
$$
微分は $\times s$、積分は $\div s$。とても綺麗な対応関係です。
逆ラプラス変換
s領域で得た解 $F(s)$ を時間領域 $f(t)$ に戻す操作が逆ラプラス変換です。
$$
f(t) = \mathcal{L}^{-1}[F(s)]
$$
逆変換にも正式な積分の定義(ブロムウィッチ積分)がありますが、複素積分が必要で実用上は使いません。代わりに、**「$F(s)$ を変換表に載っている形に変形し、表を逆向きに読む」**のが基本戦略です。
その際に主役になるのが部分分数分解です。例として次の $F(s)$ を逆変換してみます。
$$
F(s) = \frac{1}{(s+1)(s+2)}
$$
部分分数分解すると:
$$
F(s) = \frac{1}{s+1} - \frac{1}{s+2}
$$
変換表より $\mathcal{L}^{-1}\left[\dfrac{1}{s-a}\right] = e^{at}$ なので、線形性を使って:
$$
f(t) = e^{-t} - e^{-2t}
$$
複雑な $F(s)$ も、こうして「表に載っている部品」の和に分解してしまえば、機械的に時間領域へ戻せます。
運動方程式を解いてみる――バネ・マス・ダンパ系
最後に、制御工学で最も基本的なモデルであるバネ・マス・ダンパ系の運動方程式を、ラプラス変換で実際に解いてみましょう。冒頭の「水ヨーヨー」も、おおまかにはこの仲間です。
質量 $m$、ダンパ(粘性抵抗)係数 $c$、バネ定数 $k$、外力 $f(t)$、変位 $x(t)$ とすると、ニュートンの運動方程式は次の微分方程式になります。
$$
m \ddot{x}(t) + c \dot{x}(t) + k x(t) = f(t)
$$
ステップ1:両辺をラプラス変換する
初期条件を $x(0) = 0,\ \dot{x}(0) = 0$(静止状態から開始)とします。微分の性質を使って各項を変換します。
$$
m \big( s^2 X(s) \big) + c \big( s X(s) \big) + k X(s) = F(s)
$$
微分方程式が、$X(s)$ についてのただの代数方程式になりました。これがラプラス変換の威力です。
ステップ2:代数的に X(s) について解く
$X(s)$ でくくって移項するだけです。
$$
(m s^2 + c s + k) X(s) = F(s)
$$
$$
X(s) = \frac{1}{m s^2 + c s + k} F(s)
$$
入力 $F(s)$ と出力 $X(s)$ の比 $\dfrac{X(s)}{F(s)} = \dfrac{1}{ms^2 + cs + k}$ を伝達関数と呼びます。これは「システムそのものの特性」を表しており、古典制御工学の中心的な概念です。ラプラス変換を学ぶ最大の動機の一つが、この伝達関数を扱えるようになることです。
ステップ3:逆ラプラス変換で時間領域に戻す
具体的な数値として $m = 1,\ c = 3,\ k = 2$、外力は単位ステップ $f(t) = 1$(よって $F(s) = \dfrac{1}{s}$)としてみます。
$$
X(s) = \frac{1}{s^2 + 3s + 2} \cdot \frac{1}{s} = \frac{1}{s(s+1)(s+2)}
$$
部分分数分解すると:
$$
X(s) = \frac{1/2}{s} - \frac{1}{s+1} + \frac{1/2}{s+2}
$$
各項を変換表で逆変換すれば、時間領域の答えが得られます。
$$
x(t) = \frac{1}{2} - e^{-t} + \frac{1}{2} e^{-2t}
$$
$t \to \infty$ で $x(t) \to \dfrac{1}{2}$ に収束し、これはバネが外力 $1$ と釣り合う位置($kx = f \Rightarrow x = 1/k = 1/2$)と一致します。微分方程式を一度も「積分せず」に、代数計算と変換表だけで運動の様子を求められたことになります。
付録:ラプラス変換 早見表
制御工学の書籍や記事を読む際に手元に置いておけるよう、よく使う変換対(ペア)と性質(公式)を一覧にまとめます。本文中で導出したものに加え、頻出のものを追加してあります。
特に断りがない限り、$t \geq 0$ の片側ラプラス変換とし、$a, \omega$ は実定数、$n$ は正の整数とします。$u(t)$ は単位ステップ関数、$\delta(t)$ は単位インパルス(デルタ関数)です。
変換対(関数 ↔ ラプラス変換)
| # | $f(t)$ (時間領域) | $F(s) = \mathcal{L}[f(t)]$ (s領域) | 収束域 |
|---|---|---|---|
| 1 | $\delta(t)$ | $1$ | 全 $s$ |
| 2 | $u(t)$(単位ステップ, $=1$) | $\dfrac{1}{s}$ | $\mathrm{Re} s > 0$ |
| 3 | $t$ | $\dfrac{1}{s^2}$ | $\mathrm{Re} s > 0$ |
| 4 | $t^n$ | $\dfrac{n!}{s^{n+1}}$ | $\mathrm{Re} s > 0$ |
| 5 | $e^{at}$ | $\dfrac{1}{s-a}$ | $\mathrm{Re} s > a$ |
| 6 | $t e^{at}$ | $\dfrac{1}{(s-a)^2}$ | $\mathrm{Re} s > a$ |
| 7 | $t^n e^{at}$ | $\dfrac{n!}{(s-a)^{n+1}}$ | $\mathrm{Re} s > a$ |
| 8 | $\sin \omega t$ | $\dfrac{\omega}{s^2 + \omega^2}$ | $\mathrm{Re} s > 0$ |
| 9 | $\cos \omega t$ | $\dfrac{s}{s^2 + \omega^2}$ | $\mathrm{Re} s > 0$ |
| 10 | $e^{at}\sin \omega t$ | $\dfrac{\omega}{(s-a)^2 + \omega^2}$ | $\mathrm{Re} s > a$ |
| 11 | $e^{at}\cos \omega t$ | $\dfrac{s-a}{(s-a)^2 + \omega^2}$ | $\mathrm{Re} s > a$ |
| 12 | $\sinh \omega t$ | $\dfrac{\omega}{s^2 - \omega^2}$ | $\mathrm{Re} s > \lvert\omega\rvert$ |
| 13 | $\cosh \omega t$ | $\dfrac{s}{s^2 - \omega^2}$ | $\mathrm{Re} s > \lvert\omega\rvert$ |
| 14 | $t \sin \omega t$ | $\dfrac{2\omega s}{(s^2 + \omega^2)^2}$ | $\mathrm{Re} s > 0$ |
| 15 | $t \cos \omega t$ | $\dfrac{s^2 - \omega^2}{(s^2 + \omega^2)^2}$ | $\mathrm{Re} s > 0$ |
No.10・11 は減衰振動を表し、バネ・マス・ダンパ系のような2次系の応答(過渡応答)に頻出します。本文で扱った $\dfrac{1}{ms^2 + cs + k}$ も、係数次第でこの形に逆変換されます。
性質(公式)
$f(t) \leftrightarrow F(s)$、$g(t) \leftrightarrow G(s)$ とします。
| 性質 | 時間領域 $f(t)$ | s領域 $F(s)$ |
|---|---|---|
| 線形性 | $a f(t) + b g(t)$ | $a F(s) + b G(s)$ |
| 1階微分 | $f'(t)$ | $s F(s) - f(0)$ |
| 2階微分 | $f''(t)$ | $s^2 F(s) - s f(0) - f'(0)$ |
| $n$階微分 | $f^{(n)}(t)$ | $s^n F(s) - \displaystyle\sum_{k=1}^{n} s^{n-k} f^{(k-1)}(0)$ |
| 積分 | $\displaystyle\int_0^t f(\tau) d\tau$ | $\dfrac{F(s)}{s}$ |
| 時間軸の推移(むだ時間) | $f(t-a) u(t-a)$ | $e^{-as} F(s)$ |
| s軸の推移(減衰) | $e^{at} f(t)$ | $F(s-a)$ |
| 相似(スケーリング) | $f(at)\ (a>0)$ | $\dfrac{1}{a} F!\left(\dfrac{s}{a}\right)$ |
| $t$ 倍 | $t f(t)$ | $-\dfrac{dF(s)}{ds}$ |
| たたみ込み | $\displaystyle\int_0^t f(\tau) g(t-\tau) d\tau$ | $F(s) G(s)$ |
たたみ込み定理(時間領域のたたみ込み ↔ s領域の積)は、伝達関数 $G(s)$ をもつシステムに入力 $u(t)$ を加えたときの出力が $Y(s) = G(s)U(s)$ で表せる、という制御工学の根幹を支える性質です。
最終値・初期値の定理
逆変換せずに $t \to \infty$(定常値)や $t \to 0$(初期値)を知りたいときに便利です。
$$
\lim_{t \to \infty} f(t) = \lim_{s \to 0} s F(s) \qquad \lim_{t \to 0^+} f(t) = \lim_{s \to \infty} s F(s)
$$
最終値の定理は、$sF(s)$ の極がすべて左半平面にある(=システムが安定)場合にのみ使えます。発散・持続振動する系に適用すると誤った値が出るので注意してください。本文の例では $sX(s) = \dfrac{1}{(s+1)(s+2)}$ より $\lim_{s\to 0} sX(s) = \dfrac{1}{2}$ となり、求めた $x(t)$ の定常値 $\dfrac{1}{2}$ と一致します。
まとめ
重要ポイント:
-
ラプラス変換は時間領域の関数を s領域(周波数の世界)の関数に変換する道具
$$ F(s) = \int_0^{\infty} f(t) e^{-st} dt $$ -
微分は $\times s$、積分は $\div s$ に化ける。これにより微分方程式が代数方程式になる
$$ \mathcal{L}[f'(t)] = s F(s) - f(0) $$ - 逆ラプラス変換は、部分分数分解で変換表の形に直して表を逆引きするのが基本
- 解く流れは 「変換 → 代数的に解く → 逆変換」 の3ステップ
- 入力と出力の比である伝達関数がシステムの特性を表し、古典制御工学の中心になる
ラプラス変換は最初こそとっつきにくいですが、「微分方程式を解くための迂回路」という役割さえ掴めば、制御工学の記事がぐっと読みやすくなります。本記事を足がかりに、ぜひ伝達関数やボード線図など、制御工学の各テーマに進んでみてください。