前回は単に便利ツールの紹介しただけで終わってしまったので、今回から本格的に講義内容を書いていきます。

基本的には高校数学・高校物理くらいの知識でわかるように書いていくつもりです。
制御対象をどう表現するか?
自動車のモデル導出の記事なんかにも書いていますが、
制御対象の振る舞いは、運動方程式に代表されるような微分方程式で表現されます。
微分方程式とは?
微分方程式とは、
- 未知数が関数
- 未知数の導関数(関数を微分したもの)を含む
の2点を満たす方程式のことをいいます。
例えば、高校物理でよく使う並進の運動方程式は、物体の質量\(m\)、 加速度\(a\)、物体にはたらく力\(F\)を用いて$$ma=F$$と表されますが、加速度\(a\)を時間\(t\)の関数としてみた場合、
物体の加速度 = 速度の変化量 (速度の時間微分)
物体の速度 = 位置の変化量 (位置の時間微分)
であることから、結局、下記のように表すことができます。
$$m\frac{d^2x}{dt^2}=F$$
これは物体の位置\(x\)を未知数とする微分方程式になっています。
速度\(v\)を未知数として考える場合は$$m\frac{dv}{dt}=F$$という微分方程式として考えることができます。
微分の定義と微分方程式の意味
そもそも微分ってなんやったっけ?という方もいるかもしれないので、ここでちょっと復習。
微分の定義を数式で書くとこうなります。
$$\frac{dx}{dt}:=\lim_{h\to 0}\frac{x(t+h)-x(t)}{h}$$
要は、現在からちょっとだけ未来の状態を考えたときにどれだけ変化しますよ、というのを表しています。

つまり、微分には未来の情報が含まれているわけです。
ここで、微分方程式に話を戻します。
さっき書いた運動方程式(速度を変数とします)$$m\frac{dv}{dt}=F$$は、今から一瞬後の時間には速度がこれだけ変化しますよ、というのを表していることになります。
つまり、右辺(加えている力)の値と今の速度の値が決まれば、一瞬後の速度の値が決まります。
すると、またその一瞬後の値も同じように考えることができます。
ということで、微分方程式を用いると、未知数として考えているものがこの先どう動くのかを計算できることになります。
したがって、制御対象を微分方程式で表すことで、制御対象がどう動くかを表現することができるわけです。
ちょっと例題で考えてみる
簡単に、下記のような例を考えてみましょう。
天井から質量\(m\)の物体がバネでぶら下がっているとして、このバネのばね定数を\(k\)、自然長の位置を0としたときの物体の変位を\(x\)としたとき、変位\(x\)(要するに物体の位置)に関する微分方程式は$$m\ddot{x}=mg-kx$$となります。(\(\ddot{x}\)は\(x\)の2階微分を表しています)
ここで、質量 \(m = 0.1\)[kg]、\(k = 1\)[N/m]、初期位置を0.01[m]として計算すると、変位\(x\)は下記のように変化します。
ばねの力によって振動している事がわかりますね。
ちなみに、この計算はMaximaで簡単に行うことができます。
微分方程式の解とシステムの安定性
さて、制御対象の動きが微分方程式で表せることがわかったところで、次はその解(未知数)がどんな挙動を示すのかについて書いていきます。
ここで、代表的な微分方程式として、
- 1階線型微分方程式
- 2階線型微分方程式
の解について、どんな動きをするのか書いていきます。
1階線型微分方程式
文字通り、未知数の1階微分だけを含む微分方程式です。一般的には、
$$\dot{x}(t)+ax(t)=bu(t)$$
というという形で表されます。ここで\(a,b\)は定数(質量や抵抗など、制御対象のもつ物理パラメータと思ってもらえればいいです)、\(u\)は入力変数(操作量)であり、どちらも既知とします。
ここで、解の挙動を考えるために初期値応答と零状態応答というのものを考えていきます。

微分方程式の解=初期値応答+零状態応答
と表せるため、これら2つを考える必要があります。
初期値応答とは
入力を全く加えなかった場合の未知数xの応答(どう動くか)を初期値応答といいます。
すなわち、u=0としたときの解です。
Maximaで解いてもらえばわかると思いますが、上で述べた1階線型微分方程式の初期値応答は
$$x(t)=Ce^{-at}$$
という形になります。\(C\)は初期値(\(t=0\)のときの\(x\)の値、すなわち計算を始めるときの\(x\)の値)によって決まる定数です。
この解の挙動は、パラメータである\(a\)の値によって変わってきます。
\(a>0\)の場合は時間が経つにつれ\(x\)は0へと収束していきますが、\(a<0\)の場合は逆に発散してしまいます。\(a=0\)のときはずっと一定値になります。
例として、\(a=-1\)の場合を赤線、\(a=1\)の場合を青線でプロットしておきます。
上の図の青線のように、微分方程式の解が0に収束する場合、その微分方程式で表されるシステムは安定であるといい、赤線のように安定でない場合を不安定であるといいます。
零状態応答とは
初期値応答が入力を加えない場合の応答だったのに対して、零状態応答は、文字通り、変数xの初期値が0からスタートした場合の応答を指します。
つまり何らかの入力を加えたときの応答ということになるわけですが、代表的なのは下記のような入力に対する応答です。
ステップ応答
ステップ入力という、とある時間から一定の値をとる入力を加えたときの応答です。
インパルス応答
インパルス入力という、短時間に極めて大きな入力が加わったときの応答です。カメラのフラッシュみたいなイメージ。
ランプ応答
u(t)=tで表される、一定勾配の入力に対する応答です。
ここで、a=1, b=1としたときのステップ応答がどのようになるかを図示してみます。
b=1かつステップ応答なので、大きさ1のステップ入力がかかっている状態になります。
グラフを見ると、xが入力に追従するような動きになっていることがわかります。
2階線型微分方程式
下記のように、未知数の2階微分を含む微分方程式です。
$$\ddot{x}+a\dot{x}+bx=cu$$
例題で書いたように、位置を変数として運動方程式を考えると2階の微分方程式になります。
解の挙動について調べるため、先ほどと同様に初期値応答と零状態応答について考えていきます。
初期値応答
入力を0とすると、微分方程式は$$\ddot{x}+a\dot{x}+bx=0$$となります。試しに、1階線型微分方程式の一般解同様に$$x(t)=Ce^{\lambda t}$$として代入してみると
$$C(\lambda^2+a\lambda+b)e^{\lambda t}=0$$
を得るので、結局、初期値応答は$$\lambda^2+a\lambda+b=0$$を満たすλを用いて表すことができます。2次方程式の解の公式より
$$\lambda=\frac{-a\pm\sqrt{a^2-4b}}{2}$$
であるから、これを先の式に代入して、
$$x(t)=C_1e^{\frac{-a+\sqrt{a^2-4b}}{2}t}+C_2e^{\frac{-a-\sqrt{a^2-4b}}{2}t}$$
が初期値応答になります。
…と言いたいところですが、もうちょっと先があります。
\(a^2-4b≧0\)の場合は上の式でいいんですが、\(a^2-4b<0\)の場合はλの値が複素数になります。
複素数だと何が起こるかというと…解が振動します。
実際、Maximaで計算してみると、\(a^2-4b<0\)の場合の解は下記のようになります。
sin関数とcos関数が含まれているので、解が振動することが分かると思います。何でこうなるのかというところは省きますが、詳しくはオイラーの公式を調べてみてください。
解の安定性について
\(\lambda<0\)であれば安定となるので、これを上の計算過程と照らし合わせると、結局、\(a>0、b>0\)のときに安定ということになります。
例として、a=1,b=1の場合を青線で、a=-1,b=1の場合を赤線でプロットしておきます。
零状態応答
例によってステップ応答を考えてみます。
最終的に入力に追従する点は同じですが、1階の微分方程式と違って、収束までの過程で振動していることがわかります。特に、目標値(上のグラフで言うと1)を飛び越えてしまうことをオーバーシュート、目標値の±5%以内に落ち着くまでの時間を整定時間と呼び、制御する上での大きな指標となります。この辺については次回、詳しく説明します。
まとめ
本日の内容を箇条書きにまとめてみます。
- 制御対象の動きは微分方程式で記述される
- 微分方程式の解(制御対象の動き)は初期値応答と零状態応答で決まる
- 1階線形微分方程式: 指数関数的に収束or発散する
- 2階線型微分方程式: 振動する場合がある
- 解が0に収束する場合を安定である、それ以外の場合を不安定であるという
次回は不安定な場合の安定化、すなわち制御系の設計について書いていこうと思います。
コメント