3次のシステムをPID制御する

制御工学

みなさん,こんにちは
おかしょです.

制御工学の参考書ではよく1次遅れ系や2次遅れ系のシステムが扱われます.

しかし,実際にロボットを作ってみて伝達関数を求めると参考書で扱われるものとは異なることがよくあります.

そこで,この記事では3次のシステムをPID制御器で制御する数値シミュレーションを紹介します.

この記事を読むと以下のようなことがわかる・できるようになります.

  • PID制御のやり方
  • 3次のシステムを制御する方法

 

この記事を読む前に

この記事では数値シミュレーションを行います.

3次の伝達関数を逆ラプラス変換して微分方程式を求めて数値シミュレーションを行っています.

数値シミュレーションを行う方法を知りたい方は以下の記事で解説しているので,そちらを参照してください.

 

3次のシステム

この記事では以下のような3次のシステムを対象として数値シミュレーションを行います.

$$ G(s) = \frac{b_1 s+ b_0}{s^3 +a_2 s^2+a_1 s+ a_0} $$

上記の伝達関数で表されるシステムは極を3つもち,零点を1つもちます.

このシステムで数値シミュレーションを行うと以下のようになります.

このときシミュレーションでは\(b_1=1,\ b_0=1,\ a_2=1,\ a_1=1,\ a_0=1\)として,入力は一定値の1を入力しました.

この結果を見ると,収束も発散もしていません.

このときの極の位置を求めると,\(-1,\ -i,\ +i\)の3つです.

極が虚軸上に二つと左半平面に一つあるので,システム的にはぎりぎり安定です.

このシステムをPID制御で目標値に収束させます.

 

PID制御の伝達関数

上記の3次のシステムをPID制御器で制御します.

このときの伝達関数を求めると以下のようになります.

\begin{eqnarray}
Y &=& (R-Y)(K_p +K_d s+\frac{1}{s} K_i)\frac{b_1 s+ b_0}{s^3 +a_2 s^2+a_1 s+ a_0} \\
\frac{Y}{R} &=& \frac{(K_p +K_d s+\frac{1}{s} K_i)\frac{b_1 s+ B_0}{s^3 +a_2 s^2+a_1 s+ a_0}}{1+(K_p +K_d s+\frac{1}{s} K_i)\frac{b_1 s+ b_0}{s^3 +a_2 s^2+a_1 s+ a_0}} \\
&=& \frac{(K_d s^2+K_p s +K_i)(b_1 s+ b_0)}{s(s^3 +a_2 s^2+a_1 s+ a_0)+(K_d s^2+K_p s +K_i)(b_1 s+ b_0)} \\
&=& \frac{b_1 K_d s^3+(b_0 K_d+b_1 K_p)s^2+(b_1 K_i+b_0 K_p)s+ b_o K_i}{s^4+ (a_2+b_1 K_d) s^3+(a_1 +b_0 K_d+b_1 K_p)s^2+(a_0 +b_1 K_i+b_0 K_p)s+ b_o K_i}\\
\end{eqnarray}

ここで,上式内の\(Y\)は出力,\(R\)は入力を表します.

 

ゲインを決定する

PID制御において最も重要なのがゲインです.
このゲインによって応答が全く変わります.

なので,ゲインを決定するのにも安定性に気を付けて決定する必要があります.

今回は極配置法で決めます.

極配置法というのは,自分で決めた極の位置になるように制御する方法です.

先程求めたPID制御器を搭載した伝達関数は分母多項式が4次でした.

なので,極も4つとなります.

極配置法によって,極の位置を\(\gamma_1,\ \gamma_2,\ \gamma_3,\ \gamma_4\)とするときを考えます.

このとき,伝達関数の分母多項式は以下のようになります.

\begin{eqnarray}
(s-\gamma_1)(s-\gamma_2)(s-\gamma_3)(s-\gamma_4) &=& \{s^2-(\gamma_1+\gamma_2)s+\gamma_1 \gamma_2\}(s-\gamma_3)(s-\gamma_4)\\
&=& \left[s^3-(\gamma_1+\gamma_2+\gamma_3)s^2+\{(\gamma_1+\gamma_2)\gamma_3+\gamma_1 \gamma_2\}s-\gamma_1\gamma_2\gamma_3\right](s-\gamma_4)\\
&=& s^4-(\gamma_1+\gamma_2+\gamma_3+\gamma_4)s^3+\left[\gamma_4(\gamma_1+\gamma_2+\gamma_3)+\{(\gamma_1 +\gamma_2)\gamma_3+\gamma_1 \gamma_2\}\right]s^2-\left[\gamma_4\{(\gamma_1+\gamma_2)\gamma_3+\gamma_1\gamma_2\}+\gamma_1\gamma_2\gamma_3\right]s+\gamma_1\gamma_2\gamma_3\gamma_4
\end{eqnarray}

この式と先程求めた伝達関数の分母多項式を係数比較すると,以下の式が得られます.

\begin{eqnarray}
a_2+b_1 K_d &=& \gamma_1+\gamma_2+\gamma_3+\gamma_4\\
a_1 +b_0 K_d+b_1 K_p&=& \gamma_4(\gamma_1+\gamma_2+\gamma_3)+\{(\gamma_1 +\gamma_2)\gamma_3+\gamma_1 \gamma_2\}\\
a_0 +b_1 K_i+b_0 K_p&=& \gamma_4\{(\gamma_1+\gamma_2)\gamma_3+\gamma_1\gamma_2\}+\gamma_1\gamma_2\gamma_3 \\
b_o K_i&=& \gamma_1\gamma_2\gamma_3\gamma_4
\end{eqnarray}

この数式を使ってゲインを決定します.

 

シミュレーション結果

以上のような極配置法でPIDゲインを決定して,数値シミュレーションを行います.システムの設定は先ほどと同じです.

このシミュレーションでは極の位置を\(\gamma_1=-1,\ \gamma_2=-2,\ \gamma_3=-3,\ \gamma_4=-4\)と設定してゲインを求めました.

先程の制御器を搭載していない時のシミュレーション結果と比べると,格段に応答が良くなりました.

初期応答が目標値を超えてしまっていますが,極の位置を工夫すればこの応答もさらに良くすることができます.

 

まとめ

この記事では零点を一つ持った3次のシステムをPID制御器で制御しました.

ゲインは極配置法で決定して,目標値に収束させることができました.

制御器を搭載しなかった時の応答では,収束する気配がありませんでしたが,PID制御によって良好な応答を示すことができました.

 

続けて読む

3次のシステムのPID制御の設計方法を解説しましたが,以下の記事ではシステムの次数に限らず,PID制御器の解説をしています.

PID制御器について詳しく知りたい方は以下の記事を参考にしてください.

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

それでは最後まで読んでいただきありがとうございました.

コメント

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