状態方程式【control】
状態方程式
control.matlab.ss() 関数を用いて、状態方程式で与えられたモデルを作ることができる。
連続時間における$ m状態、$ n入力、$ r出力の線形時不変システムの状態方程式
$ \dot{\mathbf{x}}(t) = A\mathbf{x}(t) + B\mathbf{u}(t):状態方程式
$ \mathbf{y}(t) = C\mathbf{x}(t) + D \mathbf{u}(t):出力方程式
ただし、各ベクトルと行列の次元は以下の通りである。
$ \mathbf{x} \in R^{m}, \mathbf{u}\in R^{n}, \mathbf{y} \in R^{r}
$ A \in R^{m\times m}:状態と状態の変化量の関係
$ B \in R^{m\times n}:入力と状態の変化量の関係
$ C \in R^{r\times m}:状態と出力の関係
$ D \in R^{r\times n} :入力と出力の関係、直達項とよばれる、標準的なシステムではゼロ行列である。
2状態、1入力、1出力の適当なシステムを考える。
code:ss1.py
from control import matlab as ctmt
A = 0, 1],[-1, -2
B = 0],[1
C = 0, 1
D = 0
sys = ctmt.ss(A, B, C, D)
print(sys)
code:result1.py
C = 0. 1.
D = 0.
1入力$ \mathbf{u} = u(t)、1出力$ \mathbf{y}(t) = y(t)のバネマスダンパシステムは次のように作られる。
code:ss2.py
from control import matlab as ctmt
m, c, k = 1, 1, 1
A = 0, 1],[-k/m, -c/m
B = 0],[1/m
C = 0, 1
D = 0
sys = ctmt.ss(A, B, C, D)
print(sys)
code:result2.txt
C = 0. 1.
D = 0.