◆ 前章までに、アナログおよびディジタル制御(PID制御)の概要ついて、一通りの説明を行ないました。しかし、実際に制御を行なうとなると、それ以外の実用上の問題点が、いくつかあります。この章では、おもな実用上のポイントについて解説します。
このポイントとなることの中には、システムが非線形であることに基づくものが多くあります。実際のシステムは、ほとんどが非線形です。
一般に、制御理論は、線形をベースにしています。非線形の問題は、汎用性のある、理論的な取り扱いが困難です。
しかし、シミュレーションを利用することによって、非線形の問題は、比較的容易に、定量的に取り扱うことができます。
これは、シミュレーションの大きな特徴です。
◆ コントローラは、理想的には、常時動作し続けることが望まれます。
しかし、いろいろな理由から、一時的に自動の運転を行なわないで、手動で操作する必要が生じる場合があります。
たとえば、装置運転のスタート時に、最初手動で運転を開始して、その後に自動に切り換えることが必要な場合があります。
また、異常状態が発生したとき、その対策として自動を手動に切り換えることが必要な場合があります。
このような、切り換えが必要なコントローラには、自動/手動切り換えスイッチ を設けます(図 5-1)。
◆ この自動/手動切り換えは、コントローラが故障したときのバックアップ の役割を受け持たせることがあります。
多数のコントローラを使用するシステムでは、その内の 1 台のコントローラが故障しても、システムの運転を止めたく無いからです。
程度が高いバックアップでは、コントローラを二重化しておいて、故障したら自動的に切り換えます。
しかし、制御対象の重要度によっては、故障したコントローラを一時的に手動で運転します。そしてその間に、コントローラを修理し、または予備のコントローラと取り換えます。
このときは、手動操作器 は、コントローラとは別の独立したハードウェアにしなければなりません。
しかも、この切り換え器を動作させた状態で、コントローラを取り外せるようになっていることが必要です。
このような必要がなく、単に手動操作を行なうことだけが必要な場合には、ディジタル制御であれば、自動手動の切り換えを、ソフトウェア処理に、することができます。
◆ 手動で、ある値を出力していて、それを自動に切り換える場合を考えます。
この切り換えの時点は、その時の制御対象の状態が、自動に切り換えるのに都合がよい状態にあるときです。
手動を自動に切り換えたときに、自動出力は、手動時の出力値のままであって欲しいわけです。
値が変わってしまうと。自動で運転しているときに、大きな外乱が入ったのと同じで、制御変数の値が、一時的に大きく変化してしまいます。
切り換えたときに、操作変数の値が変化しないようになっていることを、バンプレス といいます。
自動から手動に切り換えるときは、予め人間が手動の出力を調整してから切り換えることができます。
バンプレスは必須ではありません。
しかし、バンプレスになっていれば、その方が便利です。
◆ アナログ制御においては、工業計器と呼ばれているコントローラ製品では、通常、手動操作器 を使用します(図 5-2)。
◆ 図に示すように、切り換えスイッチを内蔵しており、手動操作を行なっている状態で、コントローラを取り外すことができるようになっています。
手動→自動のときは、バンプレスに切り換えできます。バンプレスにするためには、バンプレス回路が必要です。
◆ ディジタル制御は、その出力方式に、ポジションフォームとベロシティフォームの2種類があります(4.1.2.(4-A))。それによって、切り換え方が異なります。
◆ ベロシティフォームは、本質的に、手動→自動、自動→手動の両方向ともに、バンプレスです。
ベロシティフォームの出力は、差分です。その出力がパルス数のときは、それを外部でカウンタで受けて、ポジションフォームに戻します(4.1.2.(4-C-a))。手動操作器からの出力も差動出力です(図 5-3)。
◆ どちらの出力も、現在の制御出力値をベースにして、その値に加算します。
切り換え時には出力値は変化しません。すなわち、本質的にバンプレスであり、バンプレスを実現するための、回路やソフトウェアは不要です。
また、加算器はコントローラの外部にありますから、手動操作器と切り換えスイッチをコントローラと別体にしておけば、バックアップとして使用することができます。
ベロシティフォームは、4.1.2.(4-C-b)に示したような、特徴があります。それに加えて、バンプレスの点でも、このように、優れています。
[注]
手動操作においては、制御出力値を、ある値に設定したいことがあります。
ベロシティフォームは、制御出力値を直接知ることができません。
制御出力値を読み取るためには、カウンタの出力値を、コントローラのところで読み取ることができるようにしておくことが必要です。
◆ ポジションフォームは、制御演算式に手を加えないと、単に切り換え器を外付けしただけではバンプレスになりません。下記の機能が必要です。
手動操作をしているときは、制御演算式の出力値が手動出力の値に一致するように、制御演算に手を加えておく必要があります(コラム5-1参照)。
手動操作をソフトウェアで行なうときは、ソフトウェアだけ問題ですから簡単に実現できます。
しかし、手動操作器が別体のときは、操作出力の値と、切り換えスイッチがどちらに切り換っているかを、手動操作器からコントローラに入力できるようになっていることが必要です(図 5-4)。
★ PID 動作の時間領域の制御演算式は、4.1.2.(3-A) の式 4-1-5です。PI 動作は、これから微分項を外して、
となります。
★ この式を、そのままプログラムに組むこともできますが、プログラムを簡単にするために式を変形します。
ただし、
です。
★ K1 と K2 を予め計算しておけば、式 (2c) は単に係数を掛けるだけの演算です。
式 (2c) の右辺の Σ は、加算用のレジスタを設けて、そこに足し込んでゆきます。
[注] 通常のメモリを使用するレジスタです。
この加算用のレジスタは、積分動作用のレジスタなので、積分レジスタと呼ぶことにします。積分レジスタには、前回加算を行なった結果(式 (2c) の Σ の項)をいれておきます。
★ 演算のフロー示します。
★ ポジションフォームの場合は、手動操作を行っているときには、積分レジスタに演算結果を加算してゆく代わりに、与えられた手動操作出力値が得られるように逆算した値を、積分レジスタに入れます。
★ 実際のコントローラは、リアルタイムで動作します。制御演算は、決められた時間毎に、正確に実行しなければなりません。
PID パラメータなどの設定や変更は、この制御演算を妨げることなく、しかも即時に行なうことが必要です。
★ リアルタイム・プログラム の中では、複数の独立した(ただし互いに関連はある)プログラムが並行処理されます。
[注] コンピュータのプログラムは、逐次処理です。真の並行処理はできません。しかし複数のプログラムを細切れにして、それを交互に実行することによって、見かけ上、並行処理のように見えます。
★ この独立した個々のプログラムを、タスク と呼んでいます。
コントローラのプログラムは、少なくとも、
制御演算を実行する実行タスクと、
キーボードなどからの入力を受け付けて、各種の手動設定を行なう入力タスクの、
2 つのタスクで構成されます。
★ PID パラメータの設定・変更は、入力タスクで行います。
この入力タスクの中で、比例ゲイン KP、積分時間 TI、サンプリング周期 θ の値から、係数 K1 および K2 の値を計算して、実行タスクに引き渡します。
実行タスクは、この K1 と K2 の値を使用して制御演算を行ないます。
★ 複雑大規模なリアルタイムプログラムでは、リアルタイム処理を制御するリアルタイム OS を使用します。
しかし、PID 制御だけを行うコンピュータの場合には、プログラム構成が単純なので、リアルタイム OS を使う必要はありません。
単純な割り込み処理で十分です。
★ Tはタイマによる割り込みで、実行タスクは一定時間毎に起動されます。
制御演算が確実に行なわれるためには、実行タスクはこの一定時間内に終了しなければなりません。
すなわち必ず空き時間があります。
入力タスクは、この空き時間を利用して実行します。