数値計算

【入門】状態空間モデルをPID制御【数値計算】

DCモータの状態空間モデルを制御するためPID制御器を追加する。 上記を実現するためPID制御器の離散化を行う必要がある。 PID制御器は速度型PIDとする。 ワインドアップ対策の都合、速度型PIDを使うことが多い。 数式は複雑っぽく見えるがブロック線図としてはシンプル。
数値計算

MATLAB,Python,Scilab,Julia比較 その76【PID制御⑤】

PID制御離散化式からブロック線図を作成。 同一の数式が埋まっている箇所は同一の信号線を参照できる。 よって、比較的にシンプルになる。 正しさの証明はやはりシミュレーション。 構成図、ブロック線図、ソースコードの3点セットで見て行けばそれほど混乱はしない。(たぶん)
数値計算

MATLAB,Python,Scilab,Julia比較 その75【PID制御④】

PID制御の数式をオイラー法で微分解決して離散化。 一見するとカオスには見えるが、似たような式が並んではいる。 上記がブロック線図にする際にいい感じに効いてくる。(たぶん)
数値計算

MATLAB,Python,Scilab,Julia比較 その74【PID制御③】

PID制御の基本式を確認。 上記の積分を外側に追いやった変形式を確認。 積分を外側に追いやる方がワインドアップ対策がし易いので、こちらが使用されることが多い。
数値計算

MATLAB,Python,Scilab,Julia比較 その73【PID制御②】

これまでの状態空間モデルの構成を確認。 オープンループ制御になっている。 今回の構成を確認。 PID制御でクローズループにする。 角速度ωをフィードバックすることで角速度制御をすることが分かる。
数値計算

MATLAB,Python,Scilab,Julia比較 その72【PID制御①】

DCモータ状態空間モデルを制御すべくPID制御器を追加予定。 上記に至るロードマップ提示。 「PID制御器の離散化」がやや数式まみれになるためちょっと鬼門。 オイラー法による微分解法するだけなので比較的簡単にするつもり。
数値計算

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

DCモータ状態空間モデルをJuliaでシミュレーション。 かなりMATLABと近似のコードになる。 linspaceがrangeになってるくらい。 シミュレーションも同一であり、想定通り。
数値計算

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

DCモータ状態空間モデルをScilabでシミュレーション。 演算自体はMATLABと同一。 差はグラフ表示の微調整のところ。 シミュレーションも同一であり、想定通り。
数値計算

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

DCモータ状態空間モデルをPython(Numpy)でシミュレーション。 流れとしてはMATLABと一緒。 状態空間モデルの演算用関数が変化しない特徴も一緒。 シミュレーションも同一であり、想定通り。
数値計算

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

DCモータ状態空間モデルをMATLABでシミュレーション。 状態空間モデルを演算する関数自体はそのまま使い回し。 シミュレーションとしては想定通りの結果。