【入門】状態空間モデル(DCモータ)【数値計算】

【入門】状態空間モデル(DCモータ)【数値計算】 数値計算
【入門】状態空間モデル(DCモータ)【数値計算】

状態量と各種微分方程式

各種微分方程式が導出されたので、これらを組み合わせるのみ。
状態量と、これまでの微分方程式を再掲

状態量

\(
\boldsymbol{x}=
\begin{bmatrix}
\theta(t) \\
\omega(t) \\
I(t)
\end{bmatrix}
\)

各種微分方程式

\(\dot{\theta}(t)=\omega(t)\dots(1)\)
\(\dot{\omega}(t)=\displaystyle \frac{K}{J}I(t)\dots(2)\)
\(\dot{I}(t)=\displaystyle -\frac{K}{L}\omega(t)-\frac{R}{L}I(t)+\frac{1}{L}E(t)\dots(3)
\)

状態方程式

上記の式より状態方程式を組み上げる。

\(
\begin{bmatrix}
\dot{\theta}(t) \\
\dot{\omega}(t) \\
\dot{I}(t)
\end{bmatrix}=
\begin{bmatrix}
0 && 1 && 0 \\
0 && 0 && K/J \\
0 && -K/L && -R/L
\end{bmatrix}
\begin{bmatrix}
\theta(t) \\
\omega(t) \\
I(t)
\end{bmatrix}+
\begin{bmatrix}
0 \\
0 \\
1/L
\end{bmatrix}
E(t)
\)

表現がベクトル、行列になっただけで、微分方程式のままであるとがわかると思う。

出力方程式

出力方程式は、状態量から出力したい要素を選択するのみ。
角度\(\theta\)だけを出力する場合は以下になる。

\(
\boldsymbol{y}=
\begin{bmatrix}
1 && 0 && 0
\end{bmatrix}
\begin{bmatrix}
\theta(t) \\
\omega(t) \\
I(t)
\end{bmatrix}+
\begin{bmatrix}
0
\end{bmatrix}
E(t)
\)

実験段階だと全部見たいことが多いため、以下にしておく。

\(
\boldsymbol{y}=
\begin{bmatrix}
1 && 0 && 0 \\
0 && 1 && 0 \\
0 && 0 && 1 \\
\end{bmatrix}
\begin{bmatrix}
\theta(t) \\
\omega(t) \\
I(t)
\end{bmatrix}+
\begin{bmatrix}
0 \\
0 \\
0
\end{bmatrix}
E(t)
\)

各行列

これにより各行列が定義される。

状態行列

\(
A=
\begin{bmatrix}
0 && 1 && 0 \\
0 && 0 && K/J \\
0 && -K/L && -R/L
\end{bmatrix}
\)

入力行列

\(
B=
\begin{bmatrix}
0 \\
0 \\
1/L
\end{bmatrix}
\)

出力行列

\(
C=
\begin{bmatrix}
1 && 0 && 0 \\
0 && 1 && 0 \\
0 && 0 && 1 \\
\end{bmatrix}
\)

直達行列

\(
D=
\begin{bmatrix}
0 \\
0 \\
0
\end{bmatrix}
\)

これでDCモータの状態空間モデルは完成。

だたし、正しさの証明はシミュレーションを行うしかない。
※ MATLAB、Python、Scilab、Juliaによるシミュレーション実施予定。

まとめ

  • DCモータ状態空間モデルを導出するため以下を実施。
    • 状態量の定義。
    • 各種微分方程式。
    • 微分方程式の変形。
    • 状態方程式の作成。
    • 出力方程式の作成。
  • 確からしさはシミュレーションで確認。

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

コメント

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