ExcelによるPID制御のチューニング(3)設定値変更データを用いる方法(2)

ExcelによるPID制御のチューニング(3)設定値変更データを用いる方法(1)”で紹介した方法について、今回は具体的なExcelにより計算を紹介します。今回は、比例微分先行PID制御(I-PD制御)です。

尚、前回は、PV値の参照モデルとの一致を評価してP,I,Dパラメータの最適化を行う方法と紹介しましたが、後半では、OP値の変動も最適化の目的関数に含めて紹介します。

この方法は、下記の資料の“E-FRIT法”を参考にしています。

加納,小河,田坂,高橋,滝波,吉井,大寶,増田:モデル不要PID調整法E-FRITの開発と実用化,計測と制御,50–12,1076/1079 (2011)

目次

今回紹介するのは、PV値の参照モデルとの一致を評価してP,I,Dパラメータの最適化を行う方法です。チューニングの手順

チューニングの手順は次の通りになります。

  1. 設定値変更データの入手
    \(SP\),\(PV\),\(OP\)、P,I,Dパラメータ、PID調節計の種類(PI-D,I-PD)
  2. 整定時間の決定
  3. P,I,Dパラメータおよび参照モデルの無駄時間の仮定
  4. PID調節計種類、整定時間及び無駄時間から参照モデルの時定数の決定
  5. P,I,Dパラメータ及び\(OP\)から\(\overline{SP}\)を計算
  6. \(\overline{SP}\)から参照モデルを使い\(\overline{PV}\)を計算
  7. \(\Sigma(PV-\overline{PV})^2\)を計算
  8. \(\Sigma(PV-\overline{PV})^2\)が十分小さければ最適P,I,Dパラメータ、十分小さくなければ3.に戻る

2.Excelでのチューニング

2-1.使用する設定値変更データ

ここでは、”ExcelによるPID制御のシミュレーション(2)”で作成したExcelシート(定位型)を使用し、設定値変更データを作成します。

設定値は300秒から2100秒までが0.55でそれ以外は0.5です。

2-2.チューニング用シートの作成(1)

このExcelファイルに、新しいシートを追加しチューニング用のシートとし、下記を入力します。

  • A列
    時間を設定します。ここでは、1秒周期で3600秒までとします。

  • E6 比例ゲイン(KP) = 2.5
  • E7 積分時間(TI) = 150 秒
  • E8 微分時間 =G8*E7 (微分時間は積分時間より計算します。微分時間≦0.2の制限を入れるため)
  • E9 動作 -1(逆動作)
  • G8 微分時間/積分時間(初期値0.2)
  • D13 希望する整定時間 1200秒
  • D14 参照モデルの無駄時間 初期値 60秒
  • 整定時間、無駄時間から参照モデルの一次遅れの時定数を計算 =(D13-D14)/(4.4*3^0.6)
  • I13~ 設定値変更データのSP =定位系!I13~
  • J13~ 設定値変更データのPV =定位系!J13
  • K13~ 設定値変更データのOP =定位系!K13

2-3.チューニング用シートの作成(2)

下記ブロック線図を参考に\(PV\),\(OP\)から\(\overline{SP}\)を計算します。

このExcelファイルに、新しいシートを追加しチューニング用のシートとし、上記ブロック線図を入力します。

  • M,N列
    比例の伝達関数を貼り付け

    ゲイン(N9) =1/E6
    入力 (M13~) =K14~
  • O,P列
    比例の伝達関数を貼り付け
    ゲイン(P9) =1
    入力 (O13~) =J13~
  • Q,R列
    1次遅れの伝達関数を貼り付け
    時定数(R7) =E8*0.1+1E-30
    入力 (Q13~) =J13~
  • S,T列
    微分の伝達関数を貼り付け
    ゲイン(T11) =E8
    入力 (S13~) =R13
  • U列
    三つの信号の合計を計算
    U13~ =N13-$E$9*P13-$E$9*T13~
  • V,W列
    微分の伝達関数を貼り付け
    ゲイン(W11) =E7
    入力 (V13~) =U13~です。
  • U列
    \(\overline{SP}\)の計算
    X13~ =-$E$9*W13+J13~

以上で\(\overline{SP}\)の計算は終了です。

2-3.チューニング用シートの作成(3)

次に、参照モデルを使って\(\overline{SP}\)から\(\overline{PV}\)を計算します。

I-PD制御では、参照モデルは3次遅れ(n=3)になり、時定数は下式より計算します。

\(\tau=\frac{T_{99}}{4.4n^{0.6}}\)

チューニング用のシートに、参照モデルによる\(\overline{PV}\)の計算を追加します。

  • AA,AB列
    無駄時間の伝達関数を貼り付け

    無駄時間(AB7) =D14
    入力 (AA13~) =X13~
  • AC,AD列
    1次遅れの伝達関数を貼り付け
    時定数(AD7) =D15
    入力 (AC13~) =AB13~
  • AE,AF列
    1次遅れの伝達関数を貼り付け
    時定数(AF7) =D15
    入力 (AE13~) =AD13~
  • AG,AH列
    1次遅れの伝達関数を貼り付け
    時定数(AH7) =D15
    入力 (AG13~) =AF13~

以上で\(\overline{PV}\)の計算は終了です。

次に\(\Sigma(PV-\overline{PV})^2\)の計算になります。

  • AI列
    AI13~) =(J13-AH13)^2
  • AJ13
    =SUM(AI13:AI3613)

これで\(\Sigma(PV-\overline{PV})^2\)が計算できます。

これで、準備ができたので、チューニングを実行します。

3-1.ソルバーの設定

チューニングは、\(\Sigma(PV-\overline{PV})^2\)を最小とするP,I,Dパラメータ及び参照モデルの無駄時間を求めることになります。

ここではExcelのソルバーを使用します。

目的セルは$AJ$13で、\(\Sigma(PV-\overline{PV})^2\)で、目標値は最小です。

変数セルと制約条件は次の通りです。

  • Kp E6、制約条件 0.1 以上
  • TI E7、制約条件 0.1 以上
  • TD/TI G8、制約条件 0.2以下
  • 無駄時間 D14、1以上

その他は、デフォルトです

3-2.チューニングの実行

ソルバーを実行します。

結果は次の通りです。

最適化前後で制御状態をシミュレーションすると下図のようになり、最適化がうまくいったことがわかります。

また、設定変更時の\(PV\),\(SP\)と最適化後の\(\overline{PV}\),\(\overline{SP}\)の関係は下記の通りです。

\(PV\)\(\overline{PV}\)が一致するよう\(\overline{SP}\)がうまく調整していることがわかります。 

以上の例は、外乱のない状態のデータを使用しており、うまく最適化出来て当たり前と言うことも出来ます。

3-3.外乱ありの場合

そこで、外乱があるの場合についてチューニングを行いました。

下図のように、1500~2100秒でOPに+0.1の外乱があった場合について、最適化しました。

結果を、下表に示す。外乱なしに比べ、Kp,TI,TDとも大きな値となった。

このパラメータを使った場合の制御シミュレーションは、発散するという結果でした。

4.目的関数

今まで紹介した、PV値の参照モデルとの一致のみを評価してP,I,Dパラメータの最適化を行う方法では、対応不十分であり、下記資料のOP値も使った目的関数を取り入れることにしました。

小河 守正;化学工学,85,115-118 (2021)

4-1.目的関数

目的関数は次式により求めます。

\(\overline{OP}\)は、P,IDパラメータと\(\overline{SP}\),\(\overline{PV}\)から計算します。

4-2.\(\overline{OP}\) の計算

はじめに\(\overline{OP}\)計算します。

この計算は、\(\overline{SP}\)\(\overline{OP}\)及びP,I,Dパラメータから計算するので、”ExcelによるPID制御のシミュレーション(2)”のシートを使えば計算できます。

  • 今まで作業していたシートの名前をSheetAにします。
  • “ExcelによるPID制御のシミュレーション(2)”で作成したExcelシート(定位型)を使用し、設定値変更データを作成したシートをコピーしてSheetBとします。

SheetBの変更

  • E6 =SheetA!E6, E7 =SheetA!E7, E8 =SheetA!E8, E9 =SheetA!E9, I5 =SheetA!I5 (SheetAの値を使用する。)
  • I5 =SheetA!I5
  • I13~ =SheetA!X13~ (SheetAの計算結果 \(\overline{SP}\))
  • J13~ =SheetA!IAH13~ (SheetAの計算結果 \(\overline{PV}\))
  • K13~ =SheetA!IK13~ (SheetAの設定値変更データ \(OP\))
  • 赤色部分(C12:G15)を消去
  • W列に\(\overline{SP}\)が計算されている。
  • 赤色部分(Y~AF列)の削除
  • X13~ =(W13-K13)^2 ~ ( \((PV-\overline{PV})^2\)の計算)
  • Y13 =SUM(X13:X3611) (\(\Sigma(PV-\overline{PV})^2\)の計算)

4-3.目的関数の計算

SheetAでの作業になります。

  • E20 =1 ( λの値)
  • E21 =AJ13 ( \((PV-\overline{PV})^2\)の計算)
  • E22 =SheetB!Y13 ( \((OP-\overline{OP})^2\)の計算)
  • E23 =STDEVA($J$13:$J$3611) (SVの標準偏差の計算)
  • E24 =STDEVA($K$13:$K$3611) (OPの標準偏差の計算)
  • E25 =E23/E24 (スケーリングファクターの計算)
  • E26 ==E21+E20*E25^2*E22 (目的関数の計算)

4-4.最適化の実行

以上で最適化の準備が整いましたので、最適化を実行します。

ソルバーの目的セルをAJ13からE26に変更します。

4-5.最適化の実行結果

実行結果を下表に示します。

PV及びOPを使った目的関数を使用した時(λ=1)、外乱ありの場合Kpの増加が押さえられていることが分かります。

5.次回の予定

実次回は、微分先行型PID制御(PI-D制御)の場合について紹介する予定です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次