カラクリの館

関西学院大学神戸三田キャンパスにて活動しているものづくり団体「機巧堂」です。メンバーが思い思いに綴ります。

c言語を再履修した俺でもわかる制御工学シリーズ-3

c言語でわかる制御工学-その3:一次遅れのPI制御

 

RC回路のPI制御

 

こんにちは、今回はついにRC回路のPI制御です。一次遅れの伝達関数を持つシステムをPI制御しようと思います。

 

f:id:karakuridoh:20170211011346p:plain

それでは、PI制御について簡単に説明します。まずはプログラムを読んでみてください。

 

さて、まずはじめにPI制御の概要について説明します。入力は比例動作と積分動作の和になります。

 

[制御入力] = [比例動作] + [積分動作]

 

比例動作のゲインをPとすると、比例動作は偏差を比例ゲインで掛けたものになります。

 

[比例動作] = P*[偏差]

 

次に積分動作についてです。積分動作のゲインをIとすると、積分動作は入力を開始した時刻0から現在の時刻までの偏差の時間積分に、積分ゲインを掛けたものになります。

 

[積分動作] = I*[偏差の時間積分]

 

実際にゲインのパラーメーターを変更することで、応答にどのような変化が起こるのかを実験します。P=1.0, I=1.0, 目標値は前回同様1.0です。

 

この時、出力結果は、オーバーシュートなし、±5[%]の制定時間は3.00[s]でした。

 

TIME=3.00 Vo=0.950207

 

実は、この時の応答は、R=C=1.0のステップ応答にほぼ一致します。

(下の結果は第一回目のステップ応答のプログラムを0.01刻みに変更しています)

 

[ステップ応答]

TIME=1.000000 Vo=0.633968

 

[PI制御]

TIME=1.00 Vo=0.635809

 

これは零点と極が一致したために起こったことですが、これについて詳しくは次回にします。

 

次にP=1.0で固定して、Iの値を変化させることで、応答がどう変化するのかを実験してみましょう。

 

Iを大きくするとオーバーシュートが発生するので、Tdを行き過ぎ時間、P.Oをパセントオーバーシュートとして、応答を評価します。

 

GAIN_P=1.000000 GAIN_I=2.000000

Td=2.34 P.O=6.6109[%]

 

GAIN_P=1.000000 GAIN_I=3.000000

Td=1.77 P.O=13.6034[%]

 

GAIN_P=1.000000 GAIN_I=4.000000

Td=1.50 P.O=19.0387[%]

 

このように、I=1.0から少しずつIを大きくすると、Tdが小さくなり、P.Oは大きくなります。つまり、速応性は上がるものの、オーバーシュートは増加し不安定になります。

 

では逆にI=1.0から少しずつIを小さくすると、どをのように変化するのでしょうか試してみましょう。

 

GAIN_P=1.000000 GAIN_I=0.500000

オーバーシュートなし。±[5]制定時間8.00[s]

 

GAIN_P=1.000000 GAIN_I=0.100000

オーバーシュートなし。±[5]制定時間44.90[s]

 

このように、Iを小さくするとオーバーシュートはなくなり、応答は遅くなっていきます。

 

では、次にI=1.0に固定してPを大きくします。すると、オーバーシュートなくなり、応答が速くなります。これは一次遅れのステップ応答に似ているので、出力が63.2[%]になるまでにかかる時間で応答の特性を評価します。

 

GAIN_P=2.000000 GAIN_I=1.000000

TIME=0.60 Vo=0.634370

 

GAIN_P=3.000000 GAIN_I=1.000000

TIME=0.39 Vo=0.631785

 

GAIN_P=4.000000 GAIN_I=1.000000

TIME=0.28 Vo=0.628745

 

このように、Pを大きくするほど出力が63.2[%]が小さくなるので、応答が速くなることがわかりました。

 

今度はP1より小さくするとオーバーシュートが発生します。

 

GAIN_P=0.500000 GAIN_I=1.000000

Td=4.01 P.O=3.4041[%]

 

GAIN_P=0.100000 GAIN_I=1.000000

Td=3.64 P.O=12.6041[%]

 

このように、Pを小さくするほどオーバーシュートは大きくなるが、行き過ぎ時間Tdは小さくなるため、速応性は上昇したとわかります。

 

この結果から、P1より大きくしても小さくしても速応性は上昇するという結果がわかりました。

 

内容が膨大になるため、今回の実験でなぜこのような結果になったのかは説明しませんでした。次回は今回の結果を、制御系全体の閉ループ伝達関数の極と零点から説明したいと思います。