MATLAB,Python,Scilab,Julia比較 その63【状態空間モデル㉑】

MATLAB,Python,Scilab,Julia比較 その63【状態空間モデル㉑】 数値計算
MATLAB,Python,Scilab,Julia比較 その63【状態空間モデル㉑】

バックナンバーはこちら。
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モータを採用。
  • 導出の流れは運動方程式の時と一緒。
  • まずは状態量を特定。
    • 状態量の特定は入力から期待する出力に至るために必要なパラメータをイメージすると良い。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました