PID制御の離散化
微分解法はオイラー法。
注意点は[Nsec]という単位時間を最終的には
上記の
積分に関しては以下で近似
それぞれをPID制御の変形式に代入する
最後の式の色分けしたところは同一(実際には1周期過去)と見なせる。
これによりブロック線図にした際はそれほど複雑にはならない。
ブロック線図
上記数式に合わせて起こしたブロック線図が以下となる。

同じ数式のところはブロック線図としては同一の信号線を参照すれば良いからいい感じに最適化される。
PID制御器を加味した構成図
PID制御器を加味した構成図が以下となる。
ちなみに、PID制御器内部はおおよそ-1~1の範囲で値が動くよう
フィードバック側は1/60にしている。

1/60の根拠
PID制御器の内部信号の動作範囲を-1~1としたい場合は1/60するとちょうど良い感じになる。
いわゆる正規化で、こうすることでPID制御器は割と純粋な数学の世界で動作し、
挙動が読みやすくなる。
各種コードへ
ここまでやると各ツール、各言語によるコード化が可能となる。
恐らく本記事の後にMATLAB,Python,Scilab,JuliaによるPID制御のコードを作成していると思う。
まとめ
- DCモータの状態空間モデルを制御するためPID制御器を追加する。
- 上記を実現するためPID制御器の離散化を行う必要がある。
- PID制御器は速度型PIDとする。
- ワインドアップ対策の都合、速度型PIDを使うことが多い。
- 数式は複雑っぽく見えるがブロック線図としてはシンプル。
MATLAB、Python、Scilab、Julia比較ページはこちら
コメント