MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/
はじめに
の、
MATLAB,Python,Scilab,Julia比較 その51【状態空間モデル⑨】
を書き直したもの。
Scilabで状態空間モデル
Python版と流れは一緒。
使用する関数名が違うという程度。
- syslin:線形システム定義関数
- csim:線形システムシミュレーション関数
要するに、syslin関数に各行列を渡して、
csimでシミュレーション実行。
たぶんコードを見た方が早い。
\(
\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}
\)
コード
m=1;
A=[0,0 ; 1,0];
B=[1/m ; 0];
C=[1,0;0,1];
D=[0;0];
sys = syslin('c', A, B, C, D); // 状態空間モデル生成
t=linspace(0,10,10000); // 時間(横)軸
step=zeros(1,10000); // 入力信号生成
step(1,5000:10000)=1; // 5秒後に0から1へ
y=csim(step,t,sys); // 連続系時間応答のシミュレーション
plot(t,y,"linewidth",3);
plot(t,step,"--b","linewidth",3);
xgrid();
てっきりMATLABのControl System Toolboxの仕様に合わせてるのかと思ったが、
そうでもないようである。
むしろ、この手の領域は全く文化が異なると思った方が良い。
今回の状態空間モデルに限定するとたまたま流れが似ていただけ。
シミュレーション結果
まとめ
- Scilabで状態空間モデルのシミュレーションをするにはsyslinとcsim関数を使用する。
- MATLABに寄せてるかと思いきや、この分野はかなり異なる仕様になっている。
- 今回の状態空間モデルに限定するとたまたま流れが似ていただけ。
- MATLABに寄せてるかと思いきや、この分野はかなり異なる仕様になっている。
バックナンバーはこちら。
コメント