MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/
はじめに
の、
MATLAB,Python,Scilab,Julia比較 その49【状態空間モデル⑦】
を書き直したもの。
MATLAB単体で実現するにはControl System Toolboxが必要だが、
SimulinkにてState-Spaceブロックがあるため、これで代替。
必要なブロック
以下のブロックが必要。
- State-Space
- Step
- Scope
- Mux
State-Space
ライブラリブラウザのContinuousの中にある。
Step
ライブラリブラウザのSourcesの中にある。
状態空間モデルへの入力用として使用する。
Scope
ライブラリブラウザのContinuousの中にある。
これは出力確認用。
Mux
ライブラリブラウザのSignal Routingの中にある。
出力と入力を束ねてScopeに入れるために利用し、
同一Scope内の同一軸で複数の信号を見れるようになる。
接続について
それぞれのブロックを以下のように接続する。
諸設定
Stepはステップ時間を5。
State-Spaceは各行列パラメータ。
行列については前回だした以下にあわせる。
\(
\boldsymbol{A}=
\begin{bmatrix}
0 && 0 \\
1 && 0
\end{bmatrix}
\)
\(
\boldsymbol{B}=
\begin{bmatrix}
1/m \\
1
\end{bmatrix}
\)
\(
\boldsymbol{C}=
\begin{bmatrix}
1 && 0 \\
0 && 1
\end{bmatrix}
\)
\(
\boldsymbol{D}=
\begin{bmatrix}
0 \\
0
\end{bmatrix}
\)
シミュレーション
実際のシミュレーション結果が以下。
摩擦等を加味してない状態で、力を加え続けているので、
∞方向に加速し続ける。
宇宙空間で力を加え続けた結果と思ってもらえれば…。
まとめ
- MATLAB/Simulinkで状態空間モデルのシミュレーション。
- 必要ブロックはState-Space、Step、Scope、Mux。
- 状態空間モデルの各行列の設定はState-Spaceの詳細設定で可能。
- シミュレーションは摩擦等を無視しているので宇宙空間での挙動。
MATLAB、Python、Scilab、Julia比較ページはこちら
コメント