バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回までで、各ツール各言語(C言語含む)による状態空間モデルのベクトル行列演算による実現をしたところ。
とはいえ、現状はまだニュートンの運動方程式を状態空間モデルで表現しただけで、
さほど複雑度はない。
もうちょい複雑なものも扱うところ。
登場人物
博識フクロウのフクさん
イラスト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
もうちょい複雑な題材
これで状態空間モデルはOKかな。
といっても、まだ超シンプルなモデルしかやってないからねー。
とすると、もうちょっと複雑めな題材が必要になると・・・。
とりあえず、DCモータあたりにしようかと。
うーん、DCモータは確かに微分方程式の塊だった気がする・・・。
そういう意味では状態空間モデルと相性が良いといえるのか???
まぁ相性は良いだろうね。
DCモータの状態空間モデルをつくるにあたって。
どういう手順になるの?
以前の運動方程式でやった流れと基本的にはかわらないな。
まぁ扱う数式やパラメータが増えるって差分はあるけどね。
と、すると以下の流れになりそうってことか。
- 状態量の特定
- 必要な微分方程式
- 微分方程式の変形
- 状態方程式の作成
- 出力方程式の作成
うん。その流れでOKだろう。
状態量の特定
で、DCモータの状態量となるとどうなるんだ?
回転に関わる角度とか角速度は必須な気がする。
あとは電圧?
でも電圧は状態というより入力ってイメージ有るな。
なかなか良い勘してるね。
必要な状態量は回転角\(\theta(t)\)、角速度\(\omega(t)\)、電流\(I(t)\)
電圧は太郎くんの予測通り入力になるな。
ちゃんと式で書くと以下になる。
\(
\boldsymbol{x}=
\begin{bmatrix}
\theta(t) \\
\omega(t) \\
I(t)
\end{bmatrix}
\)
まだ、全体をイメージが出来て無いけど、
まぁこのパラメータがあれば、電圧から回転まで繋がりそう気はする。
その考え方は重要だ。
どのパラメータを経由できれば、入力を元に欲しい出力が得られるか。
ってのが最初に考えることだな。
まぁ微分方程式を洗い出した際に過不足が見つかることもあるが、
それはそのタイミングで変更すれば良い。
まとめ
まとめだよ。
- 状態空間モデルでもうちょっと複雑なものを取り扱う。
- とりあえずDCモータを採用。
- 導出の流れは運動方程式の時と一緒。
- まずは状態量を特定。
- 状態量の特定は入力から期待する出力に至るために必要なパラメータをイメージすると良い。
バックナンバーはこちら。
コメント