みなさん,こんにちは
おかしょです.
タイトルにあるように1次遅れ系のシステムをPIDで制御する数値シミュレーションについて解説します.
この記事を読むと以下のようなことがわかる・できるようになります.
- PID制御の性能
- PID制御のゲインの決定方法
- 1次遅れ系のシステムの制御の仕方
この記事を読む前に
この記事では1次遅れ系のシステムの数値シミュレーションを行います.
その時に使用した微分方程式の求め方などは以下の記事で解説しているので,そちらを先に読んでおくことをおすすめします.
1次遅れ系のシステムとは
1次遅れ系のシステムというのは以下のような伝達関数で表現されるシステムのことを言います.
$$ G(s) = \frac{K}{Ts+1} $$
1次遅れ系で表されるシステムにはモーターなどの簡単な構造の電子部品がよく例として用いられます.
モーターの場合は入力を電圧とした時のモーターの回転数やトルクが1次遅れ系で表現されることが多いです.
数値シミュレーションではこの伝達関数から微分方程式を求めて,それをルンゲクッタという積分法を使って積分をしています.
このときの微分方程式は以下のようになりました.
$$ \dot{y} = -\frac{1}{T} y+\frac{K}{T} u $$
上式では出力を\(y\),入力を\(u\)としています.
制御器を搭載しない場合
まずはPID制御器を搭載せずに一定の入力を与えた時の応答を見てみます.
このとき目標値は\(y=1\)として,入力\(u=1\)を1次遅れ系のシステムに与えてみます.
すると,このように目標値である1に収束することがわかります.
ここで,伝達関数における\(T\)と\(K\)はどちらも1としています.
制御器を搭載しなくても目標値に収束しました.
このことから制御器を搭載しなくてもいいように思えます.
しかし,伝達関数の\(K\)を2に設定してもう一度数値シミュレーションを行うと以下のようになります.
以上のことから目標値に収束しないので,制御器が必要だということがわかりました.
PID制御の伝達関数
それではPID制御を1次遅れ系に適用してみます.
このとき,PID制御器の伝達関数は以下のようになります.
\begin{eqnarray}
C(s) &=& K_p+sK_d+\frac{1}{s}K_i\\
&=& \frac{K_d s^2+K_p s+ K_i}{s}
\end{eqnarray}
ここで,Pゲインを\(K_p\),Iゲインを\(K_i\),Dゲインを\(K_d\)としています.
これを1次遅れ系のシステムに適応すると,制御器も含めたシステムの伝達関数は以下のようになります.
\begin{eqnarray}
Y &=& (R-Y) \frac{K_d s^2+K_p s+ K_i}{s} \frac{K}{Ts+1}\\
\frac{Y}{R} &=& \frac{\frac{K_d s^2+K_p s+ K_i}{s} \frac{K}{Ts+1}}{1+\frac{K_d s^2+K_p s+ K_i}{s} \frac{K}{Ts+1}} \\
&=& \frac{K K_d s^2+K K_p s+ K K_i}{(T+K K_d) s^2+(1+K K_p) s+ K K_i}\\
&=& \frac{\frac{K K_d}{T+K K_d} s^2+\frac{K K_p}{T+K K_d} s+ \frac{K K_i}{T+K K_d}}{ s^2+\frac{1+K K_p}{T+K K_d} s+ \frac{K K_i}{T+K K_d}}\\
\end{eqnarray}
PID制御のゲインの決め方
なぜ,PID制御器を含んだシステムの伝達関数を求めたのかと言うと,PID制御のゲインを決定するためです.
PID制御のゲインを決定する方法はさまざまありますが,ここでは極配置法を用います.
極配置法というのはその名の通り,極を自由に指定してゲインを決定する方法です.
つまり,先程求めた伝達関数から求められる極を自由に選べるようにします.
例えば,先程求めた伝達関数は分母が2次式だったので極の位置を-2と-6の二つだったとします.
このような位置に極があるためには,伝達関数の分母は\((s+2)(s+6)=s^2+8s+12\)という式でなければなりません.
この式と先程の伝達関数の分母多項式を係数比較します.
すると,以下のような関係が得られます.
$$ \frac{1+K K_p}{T+K K_d} = 8 $$
$$ \frac{K K_i}{T+K K_d} = 12 $$
この二つの式からゲインを求めます.
ここで,問題があります.
ゲインは3つなのに対して数式は2つしかありません.そのため,ゲインを求めることができません.
そこで,2式に共通して存在する\(k_d\)を先に決定します.
この\(K_d\)を先に決定すれば,他の2つのゲインは先ほどの式から求められます.
ここで,\(K_d\)の決定方法ですが,できるだけ小さくしましょう.
理由は伝達関数の分子を見ればわかります.
$$\frac{Y}{R} = \frac{\frac{K K_d}{T+K K_d} s^2+\frac{K K_p}{T+K K_d} s+ \frac{K K_i}{T+K K_d}}{ s^2+\frac{1+K K_p}{T+K K_d} s+ \frac{K K_i}{T+K K_d}}$$
分子の最高次数の項は\(K_d\)によって決まります.
この\(K_d\)が大きいと最初の入力も大きな値となってしまいます.
最高次数の項は微分を表すため,最初の状態で目標との誤差が大きい場合は微分値も大きくなってしまいます.
そのため,この項はできるだけ小さくするために\(K_d\)の値もできるだけ小さくしましょう.
数値シミュレーション結果
以上のような方法でゲインを決定して,数値シミュレーションを行います.
システムは先程と同じように1次遅れ系で\(T=1\),\(K=2\)としました.
Dゲインの値は0.1として,先程求めた数式を用いてPゲインとIゲインを求めました.
その結果,Pゲインは\(K_p=4.3\),Iゲインは\(K_i=7.2\)となりました.
以上のような設定で数値シミュレーションを行ったところ,以下のような結果になりました.
このように目標値1に定常偏差なく収束させることができました.
まとめ
この記事では1次遅れ系で表現されるシステムをPID制御で目標値へと収束させる方法を解説しました.
PIDゲインは極配置法を使って決定し,問題なく目標値へと収束させることができました.
応答の波形を変えたい場合は極の位置をもっと工夫すれば,さらに良い結果が得られるので試してみてください.
続けて読む
以下の記事では今回使用したPID制御器を1次遅れ系に限定しないで解説しています.
PID制御についてもっと知りたい方は参考にしてください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント