PID(+R)コントローラの離散化のテンプレ

古典制御手法の離散化

組み込みフィードバック制御をお前に教える
俺はなるべく双一次変換を使いたいけど貴様は?

変数

  •  T_s は周期時間
  •  T_u は緩和時間
    •  K_u は緩和時間 =\dfrac{T_u}{T_s}

z変換の実装

sドメインからzドメインに変換する時の双一次変換は

 \displaystyle
    s \to \dfrac{2}{T_s} \dfrac{1-\frac{1}{z}}{1+\frac{1}{z}}

で定義される

離散化制御器の実装

上で得た式をそのまんまテンプレート

 \displaystyle
    H_z = \dfrac{\Sigma_{p=0}^{m}\frac{a_p}{z^p}}{1-\Sigma_{q=0}^{n}\frac{b_q}{z^q}}

に対応させてIIRにぶち込めばおk
 aフィードフォワード bはフィードバック, zの次数に対応させて遅延をかければヨシ

一覧

比例(P)コントローラ

まぁそれはそう

 \displaystyle
    K_P \to K_P

積分(I)コントローラ

1次遅れ系の定常偏差を消去する時に使うやつ

 \displaystyle
    \dfrac{K_I}{s} \to \dfrac{\frac{T_sK_I}{2}+\frac{T_sK_I}{2z}}{1-\frac{1}{z}}

微分(D)コントローラ

分野的に使ったことないからよくわからん
が,擬似微分の実装は大事なので書いておく

 \displaystyle
    \dfrac{\rm{d}}{\rm{d}t} \to \dfrac{s}{1+T_us}
    \to \dfrac{\frac{2}{T_s(1+2K_u)}+\frac{-2}{T_s(1+2K_u)z}}{1-\frac{2K_u-1}{(2K_u+1)z}} \\
    \therefore K_Ds \simeq \dfrac{K_Ds}{1+T_us} \\
    \to \dfrac{\frac{2K_D}{T_s(1+2K_u)}+\frac{-2K_D}{T_s(1+2K_u)z}}{1-\frac{2K_u-1}{(2K_u+1)z}}

共鳴(R)コントローラ

あんま聞かないかもしれんが,特定の周波数成分だけゲインを爆上げできる
通過させる周波数 \omega_cと通過させる帯域 \omega_bと帯域ゲイン K_Rの設定が必要になる
負ループ組んだ時の安定性は勝手に確認してくれ,ボード線図が必要かも

 \displaystyle
    \dfrac{K_R\omega_bs}{s^2+\omega_bs+\omega_c^2}
    \to \dfrac{ \frac{2T_sK_R\omega_b}{4+2T_s\omega_b+T_s^2\omega_c^2} + \frac{0}{z} + \frac{-2T_sK_R\omega_b}{(4+2T_s\omega_b+T_s^2\omega_c^2)z^2} }{ 1 - \frac{8-2T_s^2\omega_c^2}{(4+2T_s\omega_b+T_s^2\omega_c^2)z} - \frac{2T_s\omega_b-4-T_s^2\omega_c^2}{(4+2T_s\omega_b+T_s^2\omega_c^2)z^2} }