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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

はじめに

前回は、これまでの状態空間モデルの構成と今回の構成を確認を確認。
これまではオープンループ制御になっていたのに対し、
今回はPID制御器を入れることでクローズループ制御になる。

というわけで、今回はPID制御の数式について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

PID制御の基本式

太郎くん
太郎くん

今回から数式まみれになるのか・・・。

フクさん
フクさん

まぁここはうまく呑み込んでもらうしかないな。

フクさん
フクさん

というわけでPID制御の基本式を出そう。
実はいろいろバリエーションはあるのだけど、私の中の認識ではこれが基本式だ。

\(
u(t)=K_p e(t) + K_i \int e(t)dt + K_d \dot{e}(t)\dots(基本式)
\)

太郎くん
太郎くん

まぁこれは良く見るからなんとなくはわかるけど、
これを変形したり、離散化したり、ブロック図にしたりってのがイメージ湧かないな。

フクさん
フクさん

それならば一個ずつ片付けて行こう。

PID制御の変形の動機

フクさん
フクさん

ここでPID制御器を変形する。
いわゆる位置型PIDから速度型PIDに変えるって話だな。

太郎くん
太郎くん

どう違うの?

フクさん
フクさん

挙動としては全く一緒だな。

太郎くん
太郎くん

なら、なぜ変形するのか・・・。

フクさん
フクさん

後々ブロック図にしたときにわかるんだけど、
積分器を最終段に追い出したいんだよね。
積分器が最終段にあると、制御の乗り換えとかが楽になる
実はほぼ同じ話をかなり前にしてたりする。

太郎くん
太郎くん

そういえばこんなことあったねー。

太郎くん
太郎くん

・・・って言うとでも思ったか?!
こんなん覚えてないよ!

フクさん
フクさん

まぁワインドアップ対策で速度型PIDの方が望ましい程度で考えておけば良いよ。

PID制御の変形式

フクさん
フクさん

で、変形だが、以下になる。

\(
u(t)=\int\{K_p \dot{e}(t) + K_i e(t)dt + K_d \ddot{e}(t)\}dt\dots(変形式)
\)

太郎くん
太郎くん

以前の話と同じく積分を外に追い出して、その代わり内側の微分階数が増えるってところだね。たぶん。

フクさん
フクさん

この式をベースに離散化の計算を進めることになる。

太郎くん
太郎くん

(カオスな予感しかしない・・・。)

まとめ

フクさん
フクさん

まとめだよ。

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

バックナンバーはこちら。

コメント

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