制御システム

論理制御

純粋な論理制御システムは、歴史的にはリレー群を使ったネットワークで実装され、ラダー・ロジックと呼ばれる論理記法で設計されていた。今日では、そのようなシステムの多くはプログラマブルロジックコントローラ (PLC) で構築されている。PLC は、スイッチ、光センサ、圧力スイッチなどに反応し、機械に対して何らかの操作を指令する。論理制御システムは、一連の機械的操作を行うような場面でよく使われている。例えば、エレベータ、洗濯機といった相互に関連する停止/実行操作を伴うシステムである。論理制御システムは設計が容易で、非常に複雑な操作も扱える。論理制御システムは、設計の一部にブール論理を利用している。

オン/オフ制御

例えば、サーモスタットは単純なフィードバック制御の一種である。温度（測定変数 MV）が設定値（SP）を下回ると、ヒーターのスイッチがオンになる。別の例として、圧力スイッチとエアコンプレッサーがあり、圧力（MV）がしきい値（SP）を下回ると起動される。冷蔵庫や真空ポンプにも同様の機構があって、逆向きの SP に対して起動する。これらはいずれも負のフィードバックであり、誤った状態を正すものである。
単純なオン/オフ・フィードバック制御システムは安価に構築でき、効果的である。場合によっては、それが最善の選択ということもある。しかし、オン/オフ・フィードバック制御を利用する場合、別のコストを考慮する必要がある。それは、オン/オフによる摩損、オンにしたときの一時的な電力消費増大（突入電流）などである。従って、実際のオン/オフ制御システムは、ヒステリシスを考慮した設計になっており、いわゆる不感帯が設定される。不感帯とは、設定値の上下のある範囲であり、その範囲内では何も制御しない。不感帯の幅は変更可能（プログラム可能）となっていることもある。

線型制御

線型制御システムは線型な負のフィードバックを使って、数学的には別の変数に基づいた制御信号を発生させる。それによって、制御対象が許容範囲内で動作するよう維持する。

比例制御

工業用の炉の温度を制御する場合、燃料バルブの開閉度合いを現状の炉の状況に比例させるように制御するのがよいことが多い。これにより温度の急激な変化を防ぎ、加熱をより効率的にする。
比例型の負のフィードバックシステムは、制御変数の目標値 (SP) と計測値 (MV) の差に基づいて行われる。この差分を「誤差; error」と呼ぶ。誤差を減らす方向に、誤差の大きさに比例して力が加えられる。誤差に対応してどの程度是正を行うかは、制御システムの利得や感度で設定される。
利得が低ければ、誤差を検出したときに行われる是正動作は小さくなる。このようなシステムは安全で安定しているが、状況の変化に対して対応が遅い。是正されない誤差が比較的長期に渡って残存する。つまり、制動が強い。比例利得が大きくなると、システムの反応が素早くなり、誤差にも早く対処するようになる。利得設定には最適な値が存在し、その値に設定するとシステムの制動が適正となる。最適値を越えて利得を増大させると、MV が振動するようになる。そのようなシステムは、制動が弱いと言える。

制動の弱い炉の例

電気炉の例で、温度の設定値が最大定格電力の50%で安定状態として維持できる温度となっていて、現在、温度がそこに向かって上がっているとする。温度がそれより低い状態では、最大定格電力の100%の電力が適用される。MV が SP と10度差の温度になったら、比例制御が働き始め、電力が低減される。つまり、SP を中心とした20度の範囲が比例帯（proportional band）となっていて、100% から 0% まで線形に変化する。設定値に到達すると50%の電力が適用されるが、加熱システムに蓄積された余熱があるため、炉内温度はさらに上がっていく。SP より10度高い温度になると、比例帯の上限に達し、加熱用電力は供給されなくなる。それでもさらに炉内温度はある程度上がっていくだろう。MV が比例帯に戻ってくると、加熱が再開されるが、今度は加熱システムが冷えすぎているため、再び上昇するまでしばらく温度が下がり続けるだろう。このようにして温度変化が振動するような曲線を描いて変化し続けることになる。

制動の強い炉の例

制動の弱い制御システムでの温度の振動は、一般に歓迎されない。電力や燃料の浪費であるし、時間の無駄でもある。また、炉内が一時的に設定よりも高温になってしまうことで炉内の原料が駄目になることもある。
制動が強いとどうなるだろうか。SP より30度低い温度まで上がったとき、比例制御が開始され（つまり、比例帯が60度となる）、やはり SP に到達したときの電力が50%であるとする。この場合、目標温度に到達するまで時間がかかるが、大きくそれを越えることはなく、従って炉内が異常に高温となることはない。利得を注意深く増大させる（比例帯の幅を縮小する）ことで、振動もせず、素早く SP に到達する点が見つかる。このような作業を制御システムのチューニングと呼ぶ。よくチューニングされた比例制御は、一般にオン/オフ制御よりも効率的だが、熟練した手作業による制御に比べれば不十分となるだろう。

PID制御

比例制御だけを用いた場合、上述のような問題の他に、誤差とそれを是正する力が常に比例関係にあるという問題がある。上述の例では、設定温度は最大定格電力の50%で維持されるとした。例えば、設定温度が最大定格電力の80%で維持されるとしたら、どうなるだろうか。比例帯が50度に設定されたとすると、80%の電力で加熱されるのは、SP より15度低い温度の時となる。従って、操作者は SP を実際の設定温度より15度高く設定することを覚えておく必要がある。また、この15度という値は完全に一定とは限らない。周囲の気温にも影響されるし、炉内の状況によっても変化するだろう。
このような問題を解決するため、様々なフィードバック制御技法が考案された。最も一般的なものとして、比例制御の他に微分制御と積分制御を使ったPID制御がある。

微分制御

微分制御は、誤差の単位時間当たりの変化率を用いる。測定値が設定値に素早く近づいている場合、設定値に滑らかに近づけるためにアクチュエータを早めに緩める必要がある。逆に測定値が設定値から素早く離れている場合、その速さに比例して対処する必要がある。
微分制御を備えた制御システムは、より知的に振舞う。炉の温度制御システムや車載の銃やカメラなどの重い機器を動かす制御システムなどで、よくチューニングされたPDI制御システムの微分制御は、熟練した人間の操作者以上に効果的に設定値を維持できる。
微分制御が効きすぎると、やはり振動が発生する。例えば、温度が SP に向かって素早く上昇しているとき、微分制御が効きすぎると SP に到達する前に一旦上昇が止まり、そこから再度上昇するというような動きを示す。

積分制御

積分制御は、長期の定常的誤差を扱い、それをゼロにする努力を常に続ける。上述の炉の例で言えば、何らかの原因で加熱しても設定温度まで上がらない場合、MV の誤差の積分がゼロになって、設定温度に到達するまで、積分制御は比例帯を元のSPから高い温度の方にずらす作用をもたらす。

その他の技法

もう1つの一般的技法として、MV あるいはエラー信号のフィルタリングがある。フィルタリングによって、システムが頻繁に反応するのを避け、不安定になるのを回避する。フィードバックシステムは、ある周波数で発振してしまうことがある。その周波数をフィルタリングすることで、フィードバックが確実に行われるようになり、システムの応答性が良くなる。
フィードバックシステムは、様々な形で組み合わせられる。カスケード制御では、ある制御ループの出力が別の制御ループの入力となるような接続がなされる。システム内に制御対象となる複数の測定箇所があるとき、一般にそれぞれに対してフィードバックシステムが必要となる。

ファジィ論理

ファジィ論理は、論理制御の設計容易性を備えつつ、連続的に変化するシステムの制御をしようとするものである。基本的に、ファジィ論理システムでの測定結果は部分的な正しさを持つ。例えば、YES が 1 で、NO が 0 だったとき、ファジィでの測定値は 0 と 1 の間の何らかの値になる。
自然言語で書かれたシステムの規則は、ファジィ論理に変換される。例えば、炉の制御に関する設計で、「温度が高すぎたら、供給する燃料を減らす。温度が低すぎたら、燃料を増やす」とあったとする。実世界での測定値（炉の温度など）は、0 と 1 の間の値に変換される。通常、最も大きな値が "1" に変換される。ファジィ論理はブール論理を算術的に修正したものである。否定操作は「出力 = 1 - 入力」となり、論理積操作は「出力 = 入力1 × 入力2」、論理和操作は「出力 = 1 - ((1 - 入力1) × (1 - 入力2))」となる。最終的な出力は「反ファジィ化; defuzzify」される。基本的にファジィでの計算値は 0 と 1 の間にある。その値が実世界の何らかの値に対応しているので、反ファジィ化によって実際の機械を制御できる値となる。このような値の対応が正しく定義され、規則が正しければ、制御システムとしてはうまく機能することになる。
頑健なファジィ設計は1つの素早い計算に還元されると、一般的なフィードバックループ方式と類似してくる。従来方式では扱いにくい場合やコストが高くなる場合でも、ファジィ論理方式ではそれなりのスケーラビリティとなることもある。

具体的実装

マイクロコントローラは安価であるため、組み込みシステム内にコンピュータとフィードバックループを備えた制御システムを実装するのが普通となっている。フィードバック制御は、コンピュータが定期的に測定を行い、その結果を用いて計算することでシミュレートされる（デジタル信号処理など参照）。コンピュータは論理機器をエミュレートするため、スイッチ入力を調べ、その結果に基づいて論理関数を計算し、結果を電子的に制御可能なスイッチ群に送る。
論理システムとフィードバックコントローラは、プログラマブルロジックコントローラ (PLC) を使って実装されることが多い。その中にはコンピュータも内蔵されており、単純化されたプログラミングが可能である。一般に、PLC のプログラミングは外部のパーソナルコンピュータ上で行われる。ロジックコントローラは、かつてはリレーや水圧機器や空圧機器で構成されたり、トランジスタや真空管による電子回路でフィードバックコントローラを構築したりしていた。