バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回は、状態空間モデルを理解するために
超シンプルな微分方程式を対象にしてみようという話になった。
具体的にはニュートンの運動方程式。
入力は力\(\boldsymbol F\)で出力(観測)は距離\(\boldsymbol s\)とする。
この情報を元に状態空間モデルを作る過程を見て行く。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
状態量の定義
入力と出力は決まっているので、
状態量\(\boldsymbol x\)を定義する必要がある。
つまり、外から見えない変数?
まぁそうだけど、外から見える変数、つまり出力も状態量に含める必要はあるかな。
といっても、運動方程式の変数と言われても、
力\(\boldsymbol F\)、距離\(\boldsymbol s\)、速度\(\boldsymbol v\)、加速度\(\boldsymbol a\)、質量\(m\)くらいしか思いつかないな・・・。
ちなみに質量\(m\)は今回は変数ではなく係数という位置づけになるな。
先に答え言っちゃうと距離\(\boldsymbol s\)、速度\(\boldsymbol v\)を状態量とすると都合が良さそうだ。
というわけで状態量\(\boldsymbol x\)は以下と定義できる。
状態量
\(
\boldsymbol x=
\begin{bmatrix}
v(t) \\
s(t)
\end{bmatrix}
\)
ようわからんけど、そういう定義が都合が良いなら、まずは傍観しとこう。
そして、これに伴って状態方程式の解である、\(\dot{\boldsymbol x}\)は以下になる。
\(
\dot{\boldsymbol x}=
\begin{bmatrix}
\dot{v}(t) \\
\dot{s}(t)
\end{bmatrix}
\)
そうか。状態方程式の解は\(\boldsymbol x\)の一階微分になるのか。
運動方程式を紐解いていく
ここから運動方程式を紐解いていく。
運動方程式
\(m \ddot{s}(t)=\boldsymbol F(t)\)
距離\(s(t)\)、速度\(v(t)\)、加速度\(a(t)\)の関係
\(\ddot{s}(t)=\dot{v}(t)=a(t)\)
\(\dot{s}(t)=v(t)\)
上記より
\(
\begin{eqnarray}
m \dot{v}(t) &=& F(t) \\
\dot{v}(t) &=& \displaystyle \frac{F(t)}{m}\dots(1) \\
\dot{s}(t) &=& v(t)\dots(2)
\end{eqnarray}
\)
各種方程式を見て
ここまでは良い?
微分は出てくるけど、そこは距離、速度、加速度の関係性で吸収されちゃうから
あまり気にしなくてもOKそうで、
あとは普通に移項して、\(\dot{\boldsymbol x}\)の中身である、
\(\dot{v}(t)\)と\(\dot{s}(t)\)が求められる方程式が出てきた。
って認識。
いいね。
まずはそこまで分かっていれば、これを状態空間モデルとして組み上げるのみだ。
まとめ
まとめだよ。
- まずは状態量を定義。
- 速度、距離を状態量とした。
- 運動方程式を紐解く。
- 距離、速度、加速度の関係性が微分を吸収する。
- 状態量の内訳である速度、距離の方程式が求まったところ。
バックナンバーはこちら。
コメント