【入門】MATLAB/Simulink状態空間モデル(運動方程式)【数値計算】

【入門】MATLAB/Simulink状態空間モデル(運動方程式)【数値計算】 数値計算
【入門】MATLAB/Simulink状態空間モデル(運動方程式)【数値計算】

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の中にある。

State-Spaceブロック、Simulink、Continuous

Step

ライブラリブラウザのSourcesの中にある。
状態空間モデルへの入力用として使用する。

Stepブロック、Simulink、Sources

Scope

ライブラリブラウザのContinuousの中にある。
これは出力確認用。

Scopeブロック、Simulink、Sinks

Mux

ライブラリブラウザのSignal Routingの中にある。
出力と入力を束ねてScopeに入れるために利用し、
同一Scope内の同一軸で複数の信号を見れるようになる。

Muxブロック、Simulink、Signal Routing

接続について

それぞれのブロックを以下のように接続する。

状態空間モデル運動方程式確認用ブロック接続、Simuink、State-Space、Step、Scope、Mux

諸設定

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}
\)

Stepブロックの設定、ステップ時間
State-Spaceブロックの設定、状態空間モデル、dx/dt=Ax+B、y=Cx+Du

シミュレーション

実際のシミュレーション結果が以下。

状態空間モデル(運動方程式)シミュレーション結果、力F、速度v、距離s

摩擦等を加味してない状態で、力を加え続けているので、
∞方向に加速し続ける。
宇宙空間で力を加え続けた結果と思ってもらえれば…。

まとめ

  • MATLAB/Simulinkで状態空間モデルのシミュレーション。
  • 必要ブロックはState-Space、Step、Scope、Mux。
  • 状態空間モデルの各行列の設定はState-Spaceの詳細設定で可能。
  • シミュレーションは摩擦等を無視しているので宇宙空間での挙動。

MATLAB、Python、Scilab、Julia比較ページはこちら

コメント

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