MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/
はじめに
の、
MATLAB,Python,Scilab,Julia比較 その52【状態空間モデル⑩】
を書き直したもの。
Juliaで状態空間モデル
JuliaもPythonと似たような感じできる。。
ControlSystemsパッケージを使用する。
PythonのControlライブラリのmatlabモジュールと同様に
MATLABのControl System Toolkitの仕様を踏襲してる。
よって、流れはPythonの時と一緒で、
ss関数に各行列を渡して、システムオブジェクトを取得。
lsimに入力とシステムオブジェクトを渡してシミュレーション。
になる。
\(
\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}
\)
コード
using ControlSystems
using PyPlot
m=1;
A=[0 0; 1 0];
B=[1/m; 0];
C=[1 0; 0 1];
D=[0; 0];
sys=ss(A,B,C,D); # 状態空間モデル生成
t=range(0,10,length=10000); # 時間(横)軸
u=zeros(1,10000); # 入力信号生成
u[5000:10000].=1.0; # 5秒後に0から1へ
y,T,x=lsim(sys,u,t); # step応答
plot(T',y');
plot(T',u', "--b");
grid();
こんな感じでPythonと同じ流れであり、
つまるところ、MATLAB Control System Toolboxと同じ流れになる。
シミュレーション結果
まとめ
- Juliaで状態空間モデルをシミュレーション。
- Pythonと同じくMATLAB Control System Toolboxの仕様を踏襲したControlSystemsパッケージを使用。
- 結局はMATLAB Control System Toolboxの仕様がデファクトスタンダード感がある。
- Pythonと同じくMATLAB Control System Toolboxの仕様を踏襲したControlSystemsパッケージを使用。
バックナンバーはこちら。
コメント