自動制御web講座

4. デ ィ ジ タ ル 制 御

line

4.2 ディジタル PID 制御


4.2.1. 概   要

4.2.1.(1) 制御演算

4.2.1.(1-A) 制御演算式

◆ ディジタル PID 制御の基本演算式は、式 4-1-5 に示しました。アナログ制御では、微分は、フィルタが必要でした。
しかし、ディジタル制御では、4.1.4.(3-A) の微分特性から推定できると、思いますが、フィルタ無しの式 4-1-5 が実用になります。
この講座では、これを基本式 として、解説します。基本式を、パルス伝達関数で表すと、

      ディジタルPID基本式 ・・・・ (4-2-1)

となります。
◆ 基本式は、十分実用になりますが、使い易さの点では、フィルタを含む、アナログと同等な式の方が優れています。フィルタを含むアナログ周波数領域形の式 3-2-21 に対応する式は、

      ディジタルPID実用式 ・・・・ (4-2-2)

です。これを、実用式 と呼ぶことにします。
この講座では、主に、この 2 種類について解説します。
ディジタル制御ですから、制御演算式の自由度が高く、その他、各種の演算式(たとえばフィルタを有する基本式、フィルタ無しの実用式、など)が使用されています。
しかし、上記の 2種類を理解すれば、それらの特性は、推定することが、できると思います。

4.2.1.(1-B) サブサーキット

◆ ディジタル制御では、制御演算後、サンプルアンドホールドを含む、出力処理を行います。シミュレーションは、それらを含めて行うことが必要です。
いろいろな組み合わせがありますから、汎用性を考えて、制御演算と、出力処理とは、別のサブサーキットにしてあります。
また、制御演算については、シミュレーションの都合上、トランジェント解析用と、AC 解析用とに分けてあります。次の 4つがあります。
   PIDTB : ディジタルPID コントローラ (.TRAN用 基本 )
   PIDTP : ディジタルPID コントローラ (.TRAN用 実用 )
   PIDFB : ディジタルPID コントローラ ( .AC用 基本 )
   PIDFP : ディジタルPID コントローラ ( .AC用 実用 )
何れも、親回路とのやり取りは、統一されています。見本として、PIDTB を、リスト 4-2-1 に示します。

[リスト 4-2-1] ディジタル PID コントローラ(.TRAN 用 基本)


 ***  ディジタルPID コントローラ (.TRAN用  基本 )      $ PIDTB
 *         出力 目標値 制御変数 比例ゲイン 積分時間 微分時間 サンプル周期 
 .SUBCKT PIDTB  OT  SP  PV  PARAMS: KP=1   TI=1G     TD=0     TS=1
 E1  1  0   VALUE {V(SP)-V(PV)}            ; 偏差
 E2  2  0   LAPLACE {V(1)} = {EXP(-TS*S)}  ; 微分用ディレイ
 E3  3  0   LAPLACE {V(5)} = {EXP(-TS*S)}  ; 積分用ディレイ
 E4  5  0   VALUE = {V(1)+V(4)}            ; 積分項
 R1  3  4   1K
 R2  4  0   1G
 E5  OT 0   VALUE = {KP*(V(1)+(TD/TS)*(V(1)-V(2))
 +                  +(TS/(2*TI))*(V(5)+V(4)))}
 .ENDS


◆ パルス伝達関数を、シミュレートするときは、テクニックが必要です(たとえば4.1.3.(3-B-a))。サブサーキットを利用すれば、それらのテクニックは、サブサーキットに織り込まれていますから、それを意識する必要はありません。

4.2.1.(2) 出力処理

4.2.1.(2-A) 概   要

◆ ディジタル制御では、制御演算結果の出力処理を行います。
出力処理は、先ず、ポジションフォームベロシティフォームの別があります。
しかし、特殊な場合を除いては、制御応答の上では、ベロシティフォームを使用していても、ポジションフォームと同じです。この講座では、シミュレーション上は、全てポジションフォームとして、取り扱います。

[注]  特殊な場合として、たとえば、4.1.2.(4-C-c) 図 4-1-10 の青色に示す遅れを、考えることが必要な場合があります。

出力処理では、サンプルアンドホールドの特性を考える必要があります。また、出力のタイミングとして、同時出力中間出力次回出力があります。
これらの出力処理を統一して取り扱う、サブサーキットにまとめてあります。
   DAHT ディレイアンドホールド( .TRAN用 )
   DAHF ディレイアンドホールド ( .AC用 )
これも、トランジェント解析用と、AC 解析用とがあります。AC 解析用は、ホールドの伝達関数と出力の遅れとを組み合わせたものです。

4.2.1.(2-B) ディレイアンドホールド(.TRAN 用)

◆ トランジェント解析用のディレイアンドホールドのリストを、リスト 4-2-2 に示します。

[リスト 4-2-2] ディレイアンドホールド(.TRAN 用)


 ***     ディレイアンドホールド( .TRAN用 )        $ DAHT
 *       操作出力   入力    サンプル周期 ディレイ(0〜1) サンプル遅延(0〜1) 
 .SUBCKT   DAHT  CNOT  IN  PARAMS:   TS=1M     TL=0     DLY=0.1
 XSAH1   OT1   IN   SAH  PARAMS:  TS={TS}  DLY={DLY} ; 1回目ホールド
 XSAH2   CNOT  OT1  SAH  PARAMS:  TS={TS}  DLY={TL}  ; 2回目ホールド
 .ENDS


◆ トランジェント解析用は、サンプルアンドホールドのサブサーキット SAH を 2 つ組み合わせて 2 回サンプルアンドホールドを行います。パラメータは、TS (サンプリング周期)、DLY (サンプル遅延)、TL (ディレイ)の 3 つです(図 4-2-1)。

[図 4-2-1] DAHT のパラメータ

fig7_1.gif

◆ TS は、システムのサンプリング周期に合わせます。
DLY は 1 回目のホールドにおける、サンプリング時点からの遅延で、サブサーキット SAH の DLY と同じものです。
1 回目ホールドのタイミングは、原理的にはサンプリングの時点ですから、ゼロです。しかし、4.1.3.(3-C-b) で説明した理由によって、DLY は、ゼロではない小さな値にすることが、必要な場合があります。
この値は、制御演算部の出力波形によって調整する必要がありますから、パラメータになっています。デフォルト = 0.1 です。
◆ TL は、2 回目ホールドのタイミングで、システムのサンプリング時点からの遅れで指定します。この 2 回目ホールドが、コントローラの出力になります。
同時出力形の場合は原理的にはゼロですが、上記の DLY がありますから、それよりもさらに(1% 程度)ずらせた値にします。
正確な同時出力は得られませんが、実用上はこれで十分です。
次回出力のときは、TL = 1 にします。この次回出力のタイミングは正確に取ることができます。
TL のデフォルトは 1 です。4.1.2.(4-B-b)に示したように、実際の制御では、次回出力形が多いからです。図 4-2-1 に示した TL の値は、デフォルト値です。
中間出力のときは、(DLY+1%)〜1までの値を取ります。


目次に戻る   前に戻る   次に進む