比例・積分・微分コントローラ(PIDコントローラまたは3項コントローラ)は、継続的な制御と自動調整を必要とする機械やプロセスを管理するのによく使用されるフィードバックベースの制御ループメカニズムです。通常、人間の介入なしに変調による一定の制御が必要な産業用制御システムやその他のさまざまなアプリケーションで使用されます。PIDコントローラは、必要なターゲット値(セットポイントまたはSP)とシステムの実際の値(プロセス変数またはPV)を自動的に比較します。これら2つの値の差はエラー値と呼ばれ、 と表記されます。
次に、次の 3 つの方法を使用して、PV を SP と同じ値にするための修正アクションを自動的に適用します。比例 ( P ) コンポーネントは、エラーの大きさに直接比例する出力を生成することにより、現在のエラー値に応答します。これにより、システムが目的の設定点からどれだけ離れているかに基づいて、即時に修正が行われます。次に、積分 ( I ) コンポーネントは、過去のエラーの累積合計を考慮して、時間が経っても残る残留 定常エラーに対処し、長引く矛盾を排除します。最後に、微分 ( D ) コンポーネントは、エラーの変化率を評価することにより将来のエラーを予測します。これにより、特にシステムが急激に変化する場合に、オーバーシュートが緩和され、システムの安定性が向上します。PID コントローラーは、人為的エラーの可能性を減らし、自動化を改善します。
一般的な例としては、車両のクルーズ コントロール システムがあります。車両が坂道に差し掛かると、エンジン出力が一定であるため速度が低下することがあります。PID コントローラーは、エンジンの出力を調整して車両を希望の速度に戻し、遅延とオーバーシュートを最小限に抑えて効率的にこれを行います。
PID コントローラの理論的基礎は、船舶の自動操舵システムの開発に遡る 1920 年代初頭に遡ります。この概念は後に製造業の自動プロセス制御に採用され、最初は空気圧アクチュエータに登場し、その後電子コントローラへと進化しました。PID コントローラは、温度調節、モーター速度制御、産業プロセス管理など、正確で安定した最適化された自動制御を必要とするさまざまなアプリケーションで広く使用されています。
基本的な操作

PID コントローラの特徴は、比例、積分、微分という 3 つの制御項をコントローラ出力に使用して、正確で最適な制御を適用できることです。右のブロック図は、これらの項がどのように生成され、適用されるかの原理を示しています。この図は、目的の設定点と測定されたプロセス変数:との差としてエラー値を継続的に計算し、 比例、積分、微分項に基づいて補正を適用する PID コントローラを示しています。コントローラは、制御変数(制御バルブの開度など) を制御項の加重和によって決定される新しい値に調整することで、時間の経過とともにエラーを最小限に抑えようとします。
このモデルでは:
- 項P は、SP − PV 誤差の現在の値に比例します。たとえば、誤差が大きい場合、ゲイン係数「K p」を使用することで、制御出力は比例して大きくなります。比例制御のみを使用すると、コントローラは比例出力応答を生成するために誤差を必要とするため、設定点とプロセス値の間に誤差が生じます。定常状態のプロセス条件では、安定した SP-PV「オフセット」で平衡状態に達します。
- 項I は、 SP − PV エラーの過去の値を考慮し、それらを時間とともに積分して項Iを生成します。たとえば、比例制御の適用後に SP − PV エラーが残っている場合、積分項は、エラーの過去の累積値による制御効果を追加することで、残余エラーを排除しようとします。エラーが排除されると、積分項は増加しなくなります。その結果、エラーが減少するにつれて比例効果は減少しますが、これは積分効果の増加によって補われます。
- 項D は、現在の変化率に基づく SP − PV エラーの将来の傾向の最良推定値です。これは、エラーの変化率によって生成される制御の影響を及ぼして SP − PV エラーの影響を効果的に減らそうとするため、「予測制御」と呼ばれることもあります。変化が急速であればあるほど、制御効果または減衰効果は大きくなります。[1]
チューニング– これらの効果のバランスは、最適な制御機能を生成するためのループ チューニングによって実現されます。チューニング定数は、以下に「K」として示されており、コントローラ外部の物理システムの応答特性に依存するため、各制御アプリケーションごとに導出する必要があります。これらは、測定センサー、最終制御要素 (制御バルブなど)、制御信号の遅延、およびプロセス自体の動作に依存します。定数のおおよその値は、通常、アプリケーションのタイプがわかっている場合は最初に入力できますが、通常は、設定値の変更を導入してシステム応答を観察することによって、調整または調整されます。[2]
制御アクション– 上記の数学モデルと実際のループは両方とも、すべての項に対して直接制御アクションを使用します。つまり、正の誤差が増加すると、正の制御出力補正も増加します。これは、「誤差」項が設定値からの偏差 (実際 - 希望) ではなく、実際に必要な補正 (希望 - 実際) であるためです。負の補正アクションを適用する必要がある場合、システムは逆動作と呼ばれます。たとえば、フロー ループのバルブが 0 - 100% の制御出力に対して 100 - 0% のバルブ開度だった場合、コントローラーの動作を逆にする必要があります。一部のプロセス制御スキームと最終制御要素では、この逆動作が必要です。例としては、冷却水用のバルブが挙げられます。この場合、信号損失の場合のフェイルセーフモードは、バルブを 100% 開くことです。したがって、コントローラー出力が 0% の場合は、バルブを 100% 開く必要があります。
数学的形式
全体的な制御機能
ここで、、、はすべて非負で、それぞれ比例項、積分項、微分項の係数を表します(P、I、Dと表記されることもあります)。
方程式の標準形式(記事の後半を参照)では、およびはそれぞれ、およびに置き換えられます。この利点は、およびがそれぞれ積分時間と微分時間を表すため、ある程度の理解可能な物理的意味を持つことです。は、コントローラが設定点に近づこうとする時間定数です。は、 出力が設定点より一貫して上または下になることをコントローラが許容する時間を決定します。
制御用語の選択的使用
PID コントローラには 3 つの制御項がありますが、一部のアプリケーションでは適切な制御を行うために 1 つまたは 2 つの項のみが必要です。これは、未使用のパラメータをゼロに設定することで実現され、他の制御アクションがない場合には PI、PD、P、または I コントローラと呼ばれます。PI コントローラは、微分アクションが測定ノイズに敏感なアプリケーションでよく使用されますが、システムが目標値に到達するには積分項が必要になることがよくあります。[引用が必要]
適用範囲
PID アルゴリズムを使用しても、システムの最適制御や制御の安定性は保証されません()。プロセス値の測定が遅れたり、制御アクションが十分な速さで適用されなかったりして、過度の遅延が発生する状況が発生する可能性があります。このような場合、リードラグ補償が有効である必要があります。コントローラーの応答は、エラーに対する応答性、システムが設定値をオーバーシュートする度合い、およびシステム振動の度合いの観点から説明できます。ただし、PID コントローラーは、基礎となるプロセスの知識やモデルではなく、測定されたプロセス変数の応答のみに依存するため、幅広く適用できます。
歴史


起源
PIDコントローラが完全に理解され実装される前の連続制御は、回転重りを使用してプロセスを制御する遠心調速機にその起源の1つがあります。これは、回転速度に応じて風車の石臼の隙間を調整し、穀物の供給速度の変動を補正するために、17世紀にクリスティアーン・ホイヘンスによって発明されました。[3] [4]
低圧固定蒸気機関の発明により、自動速度制御の必要性が生じ、ジェームズ・ワットが独自に設計した「円錐振り子」調速機(リンクアームで垂直スピンドルに取り付けられた一連の回転鋼球)が業界標準となった。これは石臼ギャップ制御の概念に基づいていた。[5]
しかし、回転調速機の速度制御は、負荷が変化する状況では依然として可変であり、現在比例制御として知られている制御だけでは明らかに不十分であった。目標速度と実際の速度の誤差は、負荷が増加するにつれて増加する。19世紀には、調速機の動作の理論的根拠が、1868年にジェームズ・クラーク・マクスウェルによって、今では有名な論文「調速機について」で初めて説明された。彼は制御の安定性の数学的根拠を探求し、解決に向けてかなり前進したが、数学者に問題を検討するよう呼びかけた。[6] [5]この問題は、1874年にエドワード・ラウス、チャールズ・スターム、1895年にアドルフ・フルヴィッツ によってさらに検討され、全員が制御の安定性基準の確立に貢献した。[5]その後の応用では、調速機はアメリカの科学者ウィラード・ギブス によってさらに改良され、1872年にワットの円錐振り子調速機を理論的に分析しました。
この頃、ホワイトヘッド魚雷の発明により、走行深度の正確な制御を必要とする制御上の問題が生じた。水深圧力センサーのみの使用では不十分であることが判明し、魚雷の前後ピッチを測定する振り子が水深測定と組み合わされて、振り子とハイドロスタットの制御となった。圧力制御は比例制御のみを提供し、制御ゲインが高すぎると不安定になり、オーバーシュートして水深保持がかなり不安定になる。振り子は、現在では微分制御として知られるものを追加し、魚雷の急降下/上昇角度を検出して水深の変化率を検出することで振動を減衰させた。[7]この開発(ホワイトヘッドは動作の手がかりを与えないために「秘密」と名付けた)は、1868年頃のことである。 [8]
PID型コントローラのもう一つの初期の例としては、 1911年にエルマー・スペリーが船舶の操舵用に開発したものがあるが、彼の研究は数学的根拠に基づいたものではなく、直感的なものである。[9]
しかし、現在PID制御または3項制御と呼ばれている制御法則が、ロシア系アメリカ人のエンジニアであるニコラス・ミノルスキーによって理論分析を用いて初めて開発されたのは、1922年のことでした。[10]ミノルスキーは、アメリカ海軍の自動操舵を研究・設計しており、操舵手の観察に基づいて分析を行いました。彼は、操舵手が現在の針路誤差だけでなく、過去の誤差や現在の変化率に基づいて船を操縦していることに注目しました。[11]その後、ミノルスキーはこれを数学的に処理しました。[5] 彼の目標は安定性であり、一般制御ではなかったため、問題が大幅に簡素化されました。比例制御は小さな外乱に対しては安定性をもたらしますが、定常外乱、特に強風(定常誤差による)に対処するには不十分であり、積分項を追加する必要がありました。最終的に、安定性と制御を改善するために微分項が追加されました。
USSニューメキシコで試験が行われ、コントローラーは舵の角速度(角度ではない)を制御しました。PI制御では、±2°の持続的なヨー(角度誤差)が得られました。D要素を追加すると、ほとんどの操舵手が達成できるよりも優れた±1/6°のヨー誤差が得られました。[12]
海軍は、職員の抵抗により、最終的にこのシステムを採用しませんでした。同様の研究は、1930 年代に他の数人[誰? ]によって実施され、出版されました。 [引用が必要]
産業用制御

フィードバック コントローラの広範な使用は、負帰還の概念を使用する広帯域高ゲイン アンプが開発されるまで実現可能ではありませんでした。これは、1920 年代後半にHarold Blackによって電話工学エレクトロニクスで開発されましたが、1934 年まで公開されませんでした。 [5]それとは別に、Foxboro 社の Clesson E Mason は 1930 年に、1914 年に発明されたノズルとフラッパーの高ゲイン空気圧アンプとコントローラ出力からの負帰還を組み合わせることで、広帯域空気圧コントローラを発明しました。これにより、ノズルとフラッパー アンプの線形動作範囲が劇的に増加し、高精度ブリード バルブと積分項を生成するベローズを使用することで積分制御も追加できるようになりました。その結果、フィードバック ベローズを使用して比例機能と積分機能の両方を提供する「Stabilog」コントローラが誕生しました。[5]積分項はResetと呼ばれていました。[13] 後に、さらにベローズと調整可能なオリフィスが追加され、微分項が追加されました。
1932 年頃から、さまざまな制御アプリケーションで広帯域空気圧コントローラの使用が急速に増加しました。空気圧は、コントローラ出力の生成や、ダイヤフラム操作式制御バルブなどのプロセス調整デバイスの電源供給に使用されました。これらは、メンテナンスの手間がかからず、過酷な産業環境でも問題なく動作し、危険な場所でも爆発の危険がないシンプルなデバイスでした。これらは、個別電子コントローラと分散制御システム(DCS) が登場するまで、何十年にもわたって業界標準でした。
これらのコントローラにより、3~15 psi (0.2~1.0 bar) の空気圧業界の信号標準が確立されました。この標準では、デバイスが線形特性内で動作していることを保証するためにゼロが高めに設定され、0~100% の制御範囲を表します。
1950 年代に高ゲイン電子アンプが安価で信頼性が高くなると、電子 PID コントローラが普及し、空気圧規格は 10 ~ 50 mA および 4 ~ 20 mA の電流ループ信号によってエミュレートされました (後者は業界標準になりました)。空気圧フィールド アクチュエータは、プロセス プラント環境の制御バルブに空気圧エネルギーの利点があるため、現在でも広く使用されています。


業界における最新の PID 制御のほとんどは、DCS、プログラマブル ロジック コントローラ(PLC)、またはディスクリートコンパクト コントローラ内のコンピュータ ソフトウェアとして実装されています。
電子アナログコントローラ
電子アナログPID制御ループは、より複雑な電子システム、例えばディスクドライブのヘッド位置決め、電源装置の電力調整、さらには現代の地震計の動き検出回路などによく見られました。離散電子アナログコントローラは、 PIDアルゴリズムを実装するためにマイクロコントローラやFPGAを使用するデジタルコントローラに大きく置き換えられました。しかし、離散アナログPIDコントローラは、レーザーダイオードコントローラなど、高帯域幅と低ノイズ性能を必要とするニッチなアプリケーションでは依然として使用されています。[14]
制御ループの例
制御ループによって移動および位置決めできるロボットアーム[15]を考えてみましょう。電動モーターは、適用される前進または後進の電力に応じてアームを上げたり下げたりしますが、アームの慣性質量、重力による力、持ち上げる荷物や外部物体で行う作業などのアームにかかる外力のため、電力は位置の単純な関数にはなりません。
- 感知された位置はプロセス変数(PV) です。
- 目的の位置はセットポイント (SP) と呼ばれます。
- PV と SP の差が誤差 (e) であり、アームが低すぎるか高すぎるか、またどの程度低すぎるかを定量化します。
- プロセスへの入力(モーターの電流)は、PID コントローラからの出力です。これは、操作変数 (MV) または制御変数 (CV) と呼ばれます。
位置 (PV) を測定し、それを設定値 (SP) から減算することで誤差 (e) が求められ、コントローラはそれに基づいてモーターに供給する電流量 (MV) を計算します。
比例
最もわかりやすい方法は比例制御です。モーターの電流は、既存の誤差に比例して設定されます。ただし、この方法は、たとえば、アームが異なる重量を持ち上げなければならない場合には機能しません。重量が重いほど、下側で同じ誤差を生じさせるためにはより大きな力が必要ですが、上側での誤差が小さい場合は、より小さな力で済みます。ここで、積分項と微分項が役立ちます。
積分
積分項は、エラーだけでなく、エラーが継続している時間に対してもアクションを増加させます。したがって、適用された力がエラーをゼロにするのに十分でない場合、この力は時間の経過とともに増加します。純粋な「I」コントローラーはエラーをゼロにすることができますが、開始時には反応が弱く(アクションは最初は小さく、時間に応じて重要になるため)、終了時にはより積極的になります(エラーがゼロに近い場合でも、エラーが正である限りアクションが増加します)。
誤差が小さく減少しているときに過度の積分を適用すると、オーバーシュートが発生します。オーバーシュート後、コントローラが反対方向に大きな補正を適用し、目的の位置を繰り返しオーバーシュートすると、出力は設定点の周りで一定、増加、または減少する正弦波で振動します。振動の振幅が時間とともに増加する場合、システムは不安定です。振動の振幅が減少する場合、システムは安定しています。振動が一定の大きさのままである場合、システムは限界的に安定しています。
派生語
微分項は、誤差の大きさ (つまり、誤差をゼロにできない: 純粋な D コントローラはシステムをその設定点に近づけることができない) を考慮するのではなく、誤差の変化率を考慮し、この変化率をゼロにしようとします。微分項は、誤差の軌跡を水平線に平坦化し、適用される力を減衰させることを目的とし、オーバーシュート (適用される力が大きすぎるために反対側で発生する誤差) を減らします。
減衰を制御する
適切なタイミングで正確に目標位置 (SP) に制御された状態で到達するためには、制御対象システムを厳密に減衰させる必要があります。適切に調整された位置制御システムは、制御対象モーターに必要な電流を流して、アームが必要に応じて押したり引いたりし、目標位置から移動しようとする外力に抵抗します。設定点自体は、PLCやその他のコンピューター システムなどの外部システムによって生成されるため、ロボット アームに期待される作業に応じて継続的に変化します。適切に調整された PID 制御システムにより、アームはこれらの変化する要件に最大限対応できます。
妨害への対応
コントローラがエラーゼロ (PV = SP) の安定状態から開始する場合、コントローラによるさらなる変更は、プロセス、つまり PV に影響を与えるプロセスへの他の測定済みまたは未測定の入力の変化に応じて行われます。MV 以外のプロセスに影響を与える変数は、外乱と呼ばれます。通常、コントローラは外乱を拒否し、設定値の変更を実装するために使用されます。アームの負荷の変化は、ロボット アームの制御プロセスに対する外乱となります。
アプリケーション
理論的には、コントローラは、測定可能な出力(PV)、その出力の既知の理想値(SP)、および関連するPVに影響を与えるプロセスへの入力(MV)を持つ任意のプロセスを制御するために使用できます。コントローラは、温度、圧力、力、供給速度、[16] 流量、化学組成(成分濃度)、重量、位置、速度、および測定値が存在する実質的に他のすべての変数を制御するために産業界で使用されています。
コントローラ理論
- このセクションでは、PID コントローラの並列形式または非相互作用形式について説明します。他の形式については、§ 代替命名法と形式を参照してください。
PID制御方式は、その3つの補正項にちなんで名付けられ、その合計が操作変数(MV)を構成します。比例項、積分項、微分項を合計してPIDコントローラの出力を計算します。コントローラ出力として定義すると、PIDアルゴリズムの最終的な形式は次のようになります。
どこ
- 比例ゲインは調整パラメータであり、
- 積分ゲインは調整パラメータであり、
- 微分ゲインは調整パラメータであり、
- は誤差(SPは設定値、PV( t )はプロセス変数)である。
- 時間または瞬間的な時間(現在)である。
- は積分の変数です(時刻 0 から現在までの値を取ります)。
同様に、PIDコントローラの ラプラス領域における伝達関数は
ここで複素周波数です。
比例項

比例項は、現在のエラー値に比例する出力値を生成します。比例応答は、比例ゲイン定数と呼ばれる 定数K p をエラーに掛けることで調整できます。
比例項は次のように与えられる。
比例ゲインが高いと、誤差の特定の変化に対して出力が大きく変化します。比例ゲインが高すぎると、システムが不安定になる可能性があります (ループ チューニングのセクションを参照)。対照的に、ゲインが小さいと、大きな入力誤差に対する出力応答が小さくなり、コントローラの応答性や感度が低下します。比例ゲインが低すぎると、システム障害に応答する際の制御動作が小さすぎる可能性があります。チューニング理論と産業実践では、比例項が出力変化の大部分に寄与することを示しています。[引用が必要]
定常誤差
定常誤差とは、望ましい最終出力と実際の出力の差のことです。[17]比例コントローラを駆動するにはゼロ以外の誤差が必要なので、通常は定常誤差を伴って動作します。[a]定常誤差(SSE)はプロセスゲインに比例し、比例ゲインに反比例します。SSEは、設定値AND出力に補償バイアス項を追加することで軽減するか、積分項を追加することで動的に補正することができます。
積分項

積分項の寄与は、誤差の大きさと誤差の持続時間の両方に比例します。PIDコントローラの積分は、時間経過に伴う瞬間誤差の合計であり、以前に修正されるべきであった累積オフセットを示します。累積誤差は積分ゲイン ( K i ) で乗算され、コントローラ出力に追加されます。
積分項は次のように与えられる。
積分項は、設定値に向かうプロセスの動きを加速し、純粋な比例コントローラで発生する残留定常誤差を排除します。ただし、積分項は過去の累積誤差に応答するため、現在の値が設定値を超える可能性があります(ループ チューニングのセクションを参照)。
微分項

プロセス エラーの導関数は、時間の経過に伴うエラーの傾きを決定し、この変化率に微分ゲインK d を掛けて計算されます。微分項が全体的な制御動作に及ぼす影響の大きさを微分ゲインK dと呼びます。
導関数項は次のように与えられる。
微分動作はシステムの動作を予測し、システムの整定時間と安定性を改善します。[18] [19]理想的な微分は因果関係がないため、PIDコントローラの実装には、高周波ゲインとノイズを制限するために微分項の追加のローパスフィルタリングが含まれます。しかし、微分動作は実際にはめったに使用されません。ある推定によると、展開されたコントローラのわずか25%でのみ使用されています[要出典]。これは、実際のアプリケーションでのシステム安定性への影響がさまざまであるためです。
ループチューニング
制御ループのチューニングとは、制御パラメータ (比例帯/ゲイン、積分ゲイン/リセット、微分ゲイン/レート) を、目的の制御応答の最適値に調整することです。安定性 (無制限の振動がない) は基本的な要件ですが、それ以外にも、システムによって動作が異なり、アプリケーションによって要件が異なり、要件が互いに矛盾する場合もあります。
パラメータは 3 つだけで、原理的には説明が簡単ですが、PID チューニングは PID 制御の制限内で複雑な基準を満たす必要があるため、難しい問題です。したがって、ループ チューニングにはさまざまな方法があり、より高度な技術は特許の対象となっています。このセクションでは、ループ チューニングの従来の手動の方法について説明します。
PID コントローラの設計と調整は概念的には直感的に思えますが、短い過渡状態と高い安定性など、複数の (そしてしばしば相反する) 目的を達成する場合、実際には困難になることがあります。PID コントローラは、デフォルトの調整を使用して許容できる制御を提供することがよくありますが、パフォーマンスは一般的に注意深く調整することで改善できますが、調整が不十分だとパフォーマンスが許容できない場合があります。通常、閉ループ システムが期待どおりに機能するか妥協するまで、初期設計はコンピューター シミュレーションによって繰り返し調整する必要があります。
一部のプロセスにはある程度の非線形性があるため、全負荷状態では適切に機能するパラメータが、プロセスが無負荷から起動しているときには機能しません。これは、ゲイン スケジューリング(異なる動作領域で異なるパラメータを使用する) によって修正できます。
安定性
PID コントローラ パラメータ (比例項、積分項、微分項のゲイン) が誤って選択されると、制御されたプロセス入力が不安定になる可能性があります。つまり、出力は振動の有無にかかわらず発散し、飽和または機械的な破損によってのみ制限されます。不安定性は、特に大きな遅延がある場合に 過剰なゲインによって発生します。
一般的に、応答の安定化が必要であり、プロセス条件と設定値のどのような組み合わせでもプロセスが振動してはなりませんが、限界的な安定性(制限された振動)が許容されるか、または望ましい場合もあります。[要出典]
数学的には、不安定性の起源はラプラス領域に見ることができます。[20]
閉ループ伝達関数は
ここで、はPID伝達関数、 はプラント伝達関数です。閉ループ伝達関数が何らかの に対して発散する場合、システムは不安定です。[20]これは の状況で発生します。言い換えると、これは180° の位相シフトで発生します。安定性は、位相シフトが大きい周波数の場合に保証されます。この効果のより一般的な形式化は、ナイキスト安定基準として知られています。
最適な行動
プロセス変更または設定点変更時の最適な動作は、アプリケーションによって異なります。
2 つの基本的な要件は、調整(外乱の排除 - 特定の設定値を維持する) とコマンド追跡(設定値の変更の実装) です。これらの用語は、制御変数が目的の値にどれだけよく追従するかを示します。コマンド追跡の具体的な基準には、立ち上がり時間と整定時間が含まれます。一部のプロセスでは、たとえば安全でない場合、設定値を超えるプロセス変数のオーバーシュートを許可してはなりません。他のプロセスでは、新しい設定値に到達するために消費されるエネルギーを最小限に抑える必要があります。
チューニング方法の概要
PID ループをチューニングする方法はいくつかあります。最も効果的な方法は、通常、何らかのプロセス モデルを開発し、動的モデル パラメータに基づいて P、I、および D を選択することです。手動チューニング方法は、特にループ時間が長いシステムでは、比較的時間がかかります。
方法の選択は、ループをオフラインにしてチューニングできるかどうか、およびシステムの応答時間によって大きく異なります。システムをオフラインにできる場合、最適なチューニング方法は、システムに入力のステップ変化を与え、出力を時間の関数として測定し、この応答を使用して制御パラメータを決定することです。[引用が必要]
手動チューニング
システムをオンラインのままにしておく必要がある場合、1 つの調整方法として、まず との値をゼロに設定します。ループの出力が振動するまで を増やし、次に「1/4 振幅減衰」タイプの応答を得るためにその値の約半分の値に設定します。次に、オフセットがプロセスに十分な時間内に修正されるまで増加しますが、値が大きすぎて不安定になるまでは増加しません。最後に、必要に応じて を増やし、負荷の乱れ後にループが許容できるほど速く基準に達するようにします。大きすぎると、過剰な応答とオーバーシュートが発生します。高速 PID ループ調整では、通常、設定点にすばやく到達するためにわずかにオーバーシュートしますが、一部のシステムではオーバーシュートを許容できません。その場合は、過剰減衰閉ループ システムが必要になり、振動の原因となった設定の半分より大幅に小さい設定が必要になります。[引用が必要]

ジーグラー・ニコルズ法
もう 1 つのヒューリスティックなチューニング方法は、1940 年代にJohn G. ZieglerとNathaniel B. Nicholsによって導入されたZiegler–Nichols 法として知られています。上記の方法と同様に、ゲインとゲインは最初にゼロに設定されます。比例ゲインは、ループの出力が一定に振動し始める最終ゲインに達するまで増加されます。ゲインは、次のようにして設定するために 、振動周期とゲイン値が使用されます。
代わりに振動周波数が測定されることが多く、各乗算の逆数は同じ結果をもたらします。
これらのゲインは、PID コントローラの理想的な並列形式に適用されます。標準 PID 形式に適用すると、積分ゲインと微分ゲインのみが振動周期に依存します。
コーエン・クーンパラメータ
この方法は 1953 年に開発され、一次 + 時間遅延モデルに基づいています。Ziegler –Nichols 法と同様に、減衰比が の閉ループ応答を生成するための一連のチューニング パラメータが開発されました。これらのパラメータの最大の問題は、プロセス パラメータの小さな変化によって閉ループ システムが不安定になる可能性があることです。
リレー (Åström-Hägglund) 法
1984年にカール・ヨハン・オーストロムとトーレ・ヘグルンドによって発表された[25]リレー法は、一時的にバンバン制御を使用してプロセスを操作し、結果として生じる振動を測定します。出力は、制御変数の2つの値の間で切り替えられます(リレーのように、そのためこの名前が付けられています)。値は、プロセスが設定値を通過するように選択する必要がありますが、0%と100%である必要はありません。適切な値を選択することで、危険な振動を回避できます。
プロセス変数が設定値より低い限り、制御出力は高い値に設定されます。設定値より高くなると、制御出力は低い値に設定されます。理想的には、出力波形はほぼ正方形で、設定値より上と下の時間が等しくなります。結果として生じる振動の周期と振幅が測定され、最終的なゲインと周期を計算するために使用されます。その後、これらの値は Ziegler-Nichols 法に入力されます。
具体的には、最終的な周期は観測された周期と等しいと仮定され、最終的なゲインは次のように計算されます。ここで、aはプロセス変数の振動の振幅、bはそれを引き起こした制御出力の変化の振幅です。
リレー方式にはさまざまなバリエーションがある。[26]
デッドタイムのある一次モデル
むだ時間のある一次過程の伝達関数は
ここで、k pはプロセスゲイン、τ p は時間定数、θはデッドタイム、u ( s ) はステップ変化入力です。この伝達関数を時間領域に変換すると、次のようになります。
上記と同じパラメータを使用します。
この方法を使用する場合、出力を測定できるほど十分なステップ変化入力を適用することが重要です。ただし、ステップ変化が大きすぎると、プロセスの安定性に影響する可能性があります。さらに、ステップ変化が大きいほど、外乱によって出力が変化しないことが保証されます (最良の結果を得るには、ステップ テストを実行するときに外乱を最小限に抑えるようにしてください)。
一次プロセスのパラメータを決定する方法の 1 つは、63.2% 法を使用することです。この方法では、プロセス ゲイン ( k p ) は、出力の変化を入力の変化で割った値に等しくなります。デッド タイムθは、ステップ変化が発生してから出力が最初に変化したときまでの時間です。時定数 ( τ p ) は、ステップ変化後に出力が新しい定常値の 63.2% に達するまでにかかる時間です。この方法を使用する際の欠点の 1 つは、プロセスの時定数が大きい場合、新しい定常値に達するまでに時間がかかる可能性があることです。[27]
チューニングソフトウェア
現代のほとんどの産業施設では、上記のような手動計算方法を使用してループを調整することはなくなりました。代わりに、PID チューニングおよびループ最適化ソフトウェアを使用して、一貫した結果を確保しています。これらのソフトウェア パッケージは、データを収集し、プロセス モデルを開発し、最適なチューニングを提案します。一部のソフトウェア パッケージでは、参照の変更からデータを収集してチューニングを開発することもできます。
数学的 PID ループ チューニングは、システムにインパルスを誘発し、制御対象システムの周波数応答を使用して PID ループ値を設計します。応答時間が数分のループでは、安定したループ値のセットを見つけるために試行錯誤に数日かかる可能性があるため、数学的ループ チューニングが推奨されます。最適な値を見つけるのは困難です。一部のデジタル ループ コントローラには、非常に小さな設定値の変更がプロセスに送信され、コントローラ自体が最適なチューニング値を計算できるセルフ チューニング機能があります。
別のアプローチでは、ジーグラー・ニコルス法で初期値を計算し、数値最適化技術を使用してより良いPID係数を見つけます。[28]
さまざまなパフォーマンス基準に応じてループを調整するための他の公式も利用できます。現在、多くの特許取得済みの公式がPIDチューニングソフトウェアとハードウェアモジュールに組み込まれています。[29]
自動PIDループチューニングソフトウェアの進歩により、動的または非定常状態(NSS)シナリオでPIDループをチューニングするためのアルゴリズムも提供されるようになりました。ソフトウェアは、外乱を通じてプロセスのダイナミクスをモデル化し、それに応じてPID制御パラメータを計算します。[30]
制限事項
PID コントローラは多くの制御問題に適用可能で、多くの場合、改良なしで、または粗い調整のみで満足のいくパフォーマンスを発揮しますが、一部のアプリケーションではパフォーマンスが低下する可能性があり、一般に最適な制御を提供しません。PID 制御の基本的な難しさは、フィードバック制御システムであり、パラメータが一定で、プロセスに関する直接的な知識がないため、全体的なパフォーマンスが反応的で妥協的であることです。PID 制御は、プロセスのモデルを持たないオブザーバーにとって最適なコントローラですが、オブザーバーに頼らずにプロセスのアクターを明示的にモデル化することで、より良いパフォーマンスを得ることができます。
PID コントローラを単独で使用した場合、制御システムがオーバーシュートしたり、振動したり、制御設定値付近でハンティングしたりしないように PID ループ ゲインを下げなければならないときにパフォーマンスが低下する可能性があります。また、非線形性がある場合に問題が生じたり、制御と応答時間の間でトレードオフが生じたり、プロセスの動作の変化に反応しなかったり (たとえば、プロセスがウォームアップ後に変化したり)、大きな外乱に対する応答が遅れたりすることがあります。
最も重要な改善点は、システムに関する知識を備えたフィードフォワード制御を組み込み、エラーの制御にのみ PID を使用することです。あるいは、パラメータの変更 (さまざまなユースケースでのゲイン スケジューリング、またはパフォーマンスに基づく適応的な変更)、測定の改善 (必要に応じてサンプリング レート、精度、正確性の向上、ローパス フィルタリング)、複数の PID コントローラのカスケード接続など、より小さな方法で PID を変更することもできます。
直線性と対称性
PID コントローラは、制御対象のループが線形かつ対称である場合に最も効果的に機能します。したがって、非線形および非対称システムではパフォーマンスが低下します。
たとえば、フロー制御アプリケーションにおける非線形バルブでは、ループ感度が変動するため、不安定性を防ぐために減衰動作が必要になります。1 つの解決策は、これを補正するために制御アルゴリズムでバルブの非線形特性を使用することです。
非対称のアプリケーションの例としては、受動的な冷却しか利用できないアクティブ加熱(加熱要素経由)のみを使用するHVAC システムの温度制御があります。制御温度を下げたい場合、加熱出力はオフになりますが、制御出力によるアクティブ冷却はありません。したがって、温度上昇のオーバーシュートはゆっくりとしか修正できず、制御出力によって強制的に下げることはできません。この場合、PID コントローラを過剰に減衰するように調整してオーバーシュートを防止または削減できますが、これにより、温度上昇が設定値に安定するまでの時間が長くなり、パフォーマンスが低下します。このアプリケーションでの制御品質の本質的な低下は、アクティブ冷却を適用することで解決できます。
微分項のノイズ
微分項の問題は、高周波の測定またはプロセスノイズを増幅し、出力に大きな変化を引き起こす可能性があることです。高周波のノイズ成分を除去するために、ローパスフィルターを使用して測定値をフィルタリングすると役立つことがよくあります。ローパスフィルタリングと微分制御は互いに打ち消し合う可能性があるため、フィルタリングの量は限られています。したがって、低ノイズの計測が重要になる場合があります。非線形メディアンフィルターを使用すると、フィルタリングの効率と実際のパフォーマンスが向上します。[31]場合によっては、微分バンドをオフにしても制御がほとんど失われることはありません。これは、PIDコントローラーをPIコントローラーとして使用することと同じです。
アルゴリズムの変更
基本的な PID アルゴリズムは、制御アプリケーションにおいていくつかの課題を提示しますが、PID 形式に若干の変更を加えることで解決されています。
積分ワインドアップ
理想的な PID 実装から生じる一般的な問題の 1 つは、積分ワインドアップです。設定点の大きな変更に続いて、積分項は制御変数 (ワインドアップ) の最大値よりも大きな誤差を蓄積する可能性があります。そのため、システムはオーバーシュートし、この蓄積された誤差が解消されるまで増加し続けます。この問題は、次の方法で対処できます。
- PVが制御可能領域に入るまで積分を無効にする
- 積分項があらかじめ決められた範囲を超えて蓄積されるのを防ぐ
- 積分項を逆計算してレギュレータの出力を実現可能な範囲内に制限する。[32]
既知の障害からのオーバーシュート
たとえば、PID ループは、システムが安定している電気抵抗炉の温度を制御するために使用されます。ドアが開いて冷たいものが炉内に入ると、温度は設定値以下に下がります。コントローラの積分機能は、正の方向に別の誤差を導入することで誤差を補正する傾向があります。ドアが開いた後、制御ループが炉を再加熱するのに通常必要な時間、積分機能をフリーズすることで、このオーバーシュートを回避できます。
PIコントローラ

PIコントローラ(比例積分コントローラ) は、誤差の導関数 (D) を使用しない PID コントローラの特殊なケースです。
コントローラの出力は次のように表される。
ここで、実際の測定値( PV)と設定値(SP )の誤差または偏差です。
PI コントローラは、ラプラス演算子を含む「フローチャート」ボックスを使用して、SimulinkやXcosなどのソフトウェアで簡単にモデル化できます。
どこ
- = 比例ゲイン
- = 積分ゲイン
の値を設定する場合、多くの場合、オーバーシュートの減少と整定時間の増加との間のトレードオフになります。
微分動作がないと、ノイズの多いデータの場合、定常状態でのシステムの安定性が向上する可能性があります。これは、微分動作が入力の高周波項に対してより敏感であるためです。
微分動作がないと、PI 制御システムは実際の (ノイズのない) 状態の変化や比較的速い状態の変化に反応しにくくなり、適切に調整された PID システムよりも設定点に到達するのが遅くなり、摂動に反応するのも遅くなります。
デッドバンド
多くの PID ループは機械装置 (たとえばバルブ) を制御します。機械のメンテナンスは大きなコストになる可能性があり、摩耗は入力信号に対する機械応答のスティクションまたはバックラッシュの形で制御の劣化につながります。機械の摩耗率は主に、変更を加えるためにデバイスがアクティブ化される頻度の関数です。摩耗が重大な懸念事項である場合、PID ループは出力 (バルブ) のアクティブ化の頻度を減らすために出力デッドバンドを持つ場合があります。これは、変更が小さい場合 (定義されたデッドバンド範囲内) にコントローラを変更して出力を一定に保つことで実現されます。計算された出力は、実際の出力が変化する前にデッドバンドから出なければなりません。
設定点ステップ変更
比例項と微分項は、システムが大きな設定点変更などの瞬間的な誤差増加にさらされた場合、出力に過度の動きを生じさせる可能性があります。微分項の場合、これは誤差の微分を取ることによるもので、瞬間的なステップ変更の場合、誤差は非常に大きくなります。その結果、一部の PID アルゴリズムには、次の変更が組み込まれています。
- 設定点ランプ
- この変更では、線形または一次微分ランプ関数を使用して、設定点が古い値から新しく指定された値に徐々に移動されます。これにより、単純なステップ変更に存在する不連続性が回避されます。
- プロセス変数の微分
- この場合、PID コントローラは、誤差の微分ではなく、測定された PV の微分を測定します。この量は常に連続しています (つまり、変更された設定点の結果としてステップ状に変化することはありません)。この変更は、設定点の重み付けの単純な例です。
- 設定点重み付け
- セットポイントの重み付けは、コントローラの比例要素と微分要素の誤差のセットポイントに調整可能な係数 (通常は 0 ~ 1 の間) を追加します。定常状態の制御誤差を回避するには、積分項の誤差が真の制御誤差である必要があります。これらの 2 つの追加パラメータは、負荷外乱や測定ノイズへの応答には影響せず、コントローラのセットポイント応答を改善するために調整できます。
フィードフォワード
制御システムのパフォーマンスは、 PID コントローラのフィードバック(または閉ループ) 制御とフィードフォワード(または開ループ) 制御を組み合わせることで向上できます。システムに関する知識 (必要な加速度や慣性など) をフィードフォワードし、PID 出力と組み合わせることで、システム全体のパフォーマンスを向上させることができます。フィードフォワード値だけで、コントローラ出力の大部分を提供できる場合がよくあります。PID コントローラは、主に、設定点 (SP) と開ループ制御に対するシステム応答の間に残っている差異またはエラーを補正する必要があります。フィードフォワード出力はプロセス フィードバックの影響を受けないため、制御システムが振動することはなく、安定性に影響を与えることなくシステム応答が向上します。フィードフォワードは、設定点と追加の測定外乱に基づくことができます。設定点の重み付けは、フィードフォワードの単純な形式です。
たとえば、ほとんどのモーション コントロール システムでは、制御下にある機械負荷を加速するには、アクチュエータからより大きな力が必要になります。速度ループ PID コントローラを使用して負荷の速度を制御し、アクチュエータによって適用される力を制御している場合は、必要な瞬間加速度を取得し、その値を適切にスケーリングして、PID 速度ループ コントローラの出力に追加すると効果的です。つまり、負荷が加速または減速されるたびに、フィードバック値に関係なく、比例した量の力がアクチュエータから制御されます。この状況の PID ループは、フィードバック情報を使用して結合出力を変更し、プロセス設定値とフィードバック値の間の残りの差を減らします。結合されたオープン ループ フィードフォワード コントローラとクローズド ループ PID コントローラを連携させることで、より応答性の高い制御システムを実現できます。
バンプレス操作
PIDコントローラは、多くの場合、積分アキュムレータ項を再計算して、パラメータの変更を通じて一貫したプロセス出力を維持する「バンプレス」初期化機能を使用して実装されます。[33]部分的な実装では、誤差を保存して積分ゲインで後から乗算するのではなく、積分ゲインに誤差を乗算して保存します。これにより、Iゲインが変更されたときに不連続な出力が防止されますが、PゲインまたはDゲインが変更されたときには不連続な出力が防止されます。
その他の改善点
フィードフォワードに加えて、PIDコントローラは、PIDゲインスケジューリング(異なる動作条件でパラメータを変更する)、ファジーロジック、計算動詞ロジックなどの方法によって強化されることが多い。[34] [35]さらに、コントローラに接続された計測機器から実用的なアプリケーションの問題が発生する可能性があります。十分な制御性能を達成するには、十分に高いサンプリングレート、測定精度、および測定精度が必要です。 PIDコントローラを改善するためのもう1つの新しい方法は、分数次数を使用して自由度を増やすことです。積分器と微分器の次数により、コントローラの柔軟性が向上します。[36]
カスケード制御
PID コントローラの際立った利点の 1 つは、2 つの PID コントローラを一緒に使用して、より優れた動的パフォーマンスを得られることです。これは、カスケード PID 制御と呼ばれます。2 つのコントローラは、一方が他方の設定点を制御するように配置されている場合、カスケード状態にあります。PID コントローラは、流体レベルや速度などの主要な物理パラメータを制御する外側のループ コントローラとして機能します。もう一方のコントローラは、外側のループ コントローラの出力を設定点として読み取り、通常、より急速に変化するパラメータ、流量、加速度を制御する内側のループ コントローラとして機能します。カスケード PID コントローラを使用すると、コントローラの動作周波数が増加し、オブジェクトの時定数が減少することが数学的に証明されています[引用が必要] 。 [曖昧]。
たとえば、温度制御循環槽にはカスケード接続された 2 つの PID コントローラがあり、それぞれに熱電対温度センサーがあります。外側のコントローラは、ヒーターから離れた場所にある熱電対を使用して水の温度を制御し、水全体の温度を正確に読み取ります。この PID コントローラの誤差項は、目的の槽温度と測定温度の差です。外側の PID コントローラは、ヒーターを直接制御するのではなく、内側の PID コントローラのヒーター温度目標を設定します。内側の PID コントローラは、ヒーターに接続された熱電対を使用してヒーターの温度を制御します。内側のコントローラの誤差項は、このヒーター温度設定値とヒーター測定温度の差です。その出力は、実際のヒーターがこの設定値付近に留まるように制御します。
2つのコントローラの比例項、積分項、微分項は大きく異なります。外側のPIDコントローラは時定数が長く、タンク内のすべての水を加熱または冷却する必要があります。内側のループははるかに速く応答します。各コントローラは、制御するシステムの物理特性(タンク全体またはヒーターのみの熱伝達と熱質量)に合わせて調整できるため、全体的な応答が向上します。[37] [38]
代替命名法と形式
標準形式と平行(理想)形式
業界で最もよく見られる PID コントローラの形式であり、チューニング アルゴリズムに最も関連しているのは標準形式です。この形式では、ゲインが、項、項 に適用され、次の式が得られます。
どこ
- 積分時間
- 微分時間
この標準形式では、パラメータには明確な物理的意味があります。特に、内部合計により、将来および過去のエラーが補正された新しい単一のエラー値が生成されます。比例エラー項は現在のエラーです。微分コンポーネント項は、ループ制御が変更されていないと仮定して、将来の秒数 (またはサンプル数) でのエラー値を予測しようとします。積分コンポーネントは、秒数 (またはサンプル数) でエラーを完全に除去することを意図して、過去のすべてのエラーの合計を補正するためにエラー値を調整します。結果として得られる補正された単一のエラー値は、単一のゲインによってスケーリングされ、制御変数を計算します。
コントローラ理論のセクションに示されている並列形式では
ゲインパラメータは、およびを介して標準形式のパラメータに関連付けられます。パラメータが単純なゲインとして扱われるこの並列形式は、最も一般的で柔軟な形式です。ただし、パラメータが物理的動作と最も弱い関係を持つ形式でもあり、通常は PID コントローラの理論的処理に使用されます。標準形式は、数学的には若干複雑ですが、業界ではより一般的です。
逆数ゲイン、比例帯とも呼ばれる
多くの場合、PID コントローラによって出力される操作変数は、最大可能値の 0 ~ 100% の間の無次元分数であり、実際の単位 (ポンピング速度やヒーター電力のワット数など) への変換は PID コントローラの外部で行われます。ただし、プロセス変数は、温度などの次元単位です。この場合、ゲインを「出力/度」ではなく、比例帯の逆数形式(「フル出力/度」) で表すのが一般的です。これは、出力が 0 ~ 1 (0% ~ 100%) に変化する範囲です。この範囲を超えると、出力は飽和し、フルオフまたはフルオンになります。この帯域が狭いほど、比例ゲインは高くなります。
PVに基づく派生訴訟
ほとんどの市販の制御システムでは、微分動作はエラーではなくプロセス変数に基づいています。つまり、設定値の変更は微分動作に影響しません。これは、設定値が変更されると、アルゴリズムのデジタル バージョンで大きな不要なスパイクが発生するためです。設定値が一定であれば、PV の変化はエラーの変化と同じになります。したがって、この変更によって、コントローラがプロセス障害に応答する方法に違いはありません。
PVに基づく比例行動
ほとんどの市販の制御システムでは、比例動作をプロセス変数のみに基づいて行うオプションも提供されています。つまり、積分動作のみが設定値の変化に反応します。アルゴリズムを変更しても、コントローラがプロセス障害に反応する方法には影響しません。比例動作を PV に基づいて行うことで、設定値の突然の変化によって生じる出力の瞬間的な、場合によっては非常に大きな変化がなくなります。プロセスとチューニングによっては、これが設定値ステップへの応答に有益な場合があります。
キング[39]は効果的なチャートベースの方法について説明しています。
ラプラス形式
PID レギュレータをラプラス変換形式で記述すると便利な場合があります。
PID コントローラをラプラス形式で記述し、制御対象システムの伝達関数を取得すると、システムの閉ループ伝達関数を簡単に決定できます。
シリーズ/インタラクション形式
PIDコントローラの別の表現は、シリーズまたは相互作用形式 である。
ここで、パラメータは標準形式のパラメータと次のように関連している。
- 、、 そして
と
- 。
この形式は、基本的に直列の PD コントローラと PI コントローラで構成されます。積分はコントローラのバイアスを計算するために必要であるため、この形式は、マルチコントローラの高度な制御スキームを適切に実装するために必要な外部バイアス値を追跡する機能を提供します。
個別実装
マイクロコントローラ(MCU)またはFPGAデバイスにおけるPIDコントローラのデジタル実装を設計するための解析では、PIDコントローラの標準形式を離散化する必要があります。[40] 1次導関数の近似は、後方差分によって行われます。そして、サンプリング周期で離散化されます。kはサンプルインデックスです。
ニュートン記法を使用して PID 方程式の両辺を微分すると、次のようになります。
導関数項は次のように近似される。
それで、
後方差分を再度適用すると、
上記の式の項を簡略化して再グループ化すると、MCU で離散化 PID コントローラを実装するためのアルゴリズムが最終的に得られます。
または:
st
注: この方法は、実際には を解きます。ここで はt に依存しない定数です。この定数は、調整ループの開始と停止の制御が必要な場合に便利です。たとえば、Kp、Ki、Kd を 0 に設定すると、u(t) は一定に保たれます。同様に、u(t) が null でない状態でエラーが既に 0 に近いシステムで調整を開始する場合、出力が 0 に送信されるのを防ぎます。
擬似コード
ここに、素人でも簡単に理解できる非常に単純で明示的な疑似コードのグループを示します。[引用が必要]
- Kp - 比例ゲイン
- Ki - 積分ゲイン
- Kd - 微分ゲイン
- dt - ループ間隔時間(適切なスケールを想定)[b]
前回のエラー:= 0 積分 := 0 ループ: 誤差 := 設定値 − 測定値 比例:=誤差; 積分 := 積分 + 誤差 × dt 導関数 := (誤差 - 前回の誤差) / dt 出力 := Kp × 比例 + Ki × 積分 + Kd × 微分 前のエラー:= エラー 待つ(dt) ループへ進む
以下の疑似コードは、PID をIIRフィルターとして考慮して PID を実装する方法を示しています。
PID の Z 変換は次のように表すことができます (はサンプリング時間)。
IIR 形式で表現されます (上記の離散実装と一致します)。
するとFPGA実装でよく見られる再帰反復を推測することができる[41]
A0 := Kp + Ki*dt + Kd/dt
A1 := -Kp - 2*Kd/dt
A2 := Kd/dt
エラー[2] := 0 // e(t-2)
エラー[1] := 0 // e(t-1)
エラー[0] := 0 // e(t)
output := u0 // 通常はアクチュエータの現在の値
ループ:
エラー[2] := エラー[1]
エラー[1] := エラー[0]
error[0] := 設定値 − 測定値
出力 := 出力 + A0 * エラー[0] + A1 * エラー[1] + A2 * エラー[2]
待つ(dt)
ループへ進む
ここで、Kp は無次元数、Ki は で表され、Kd は s で表されます。アクチュエータと測定値が同じ単位ではない調整を行う場合 (例: バルブを制御するモーターを使用した温度調整)、Kp、Ki、および Kd は単位変換係数によって補正される場合があります。Ki を逆数形式 (積分時間) で使用することも興味深い場合があります。上記の実装により、I のみのコントローラーを実行できます。これは、場合によっては役立つ場合があります。
現実世界では、これはDからAに変換され、操作変数(MV)として制御下のプロセスに渡されます。現在の誤差は、次の微分で再利用するために別の場所に保存され、プログラムは開始からdt秒が経過するまで待機し、ループが再び開始され、 PVと設定点の新しい値を読み取り、誤差の新しい値を計算します。[42]
実際のコードでは、「wait(dt)」の使用は不適切である可能性があることに注意してください。これは、ループ中にアルゴリズム自体にかかる時間、またはさらに重要なことに、アルゴリズムを遅らせるプリエンプションを考慮していないためです。
使用時によくある問題は、以下に示すように、設定点の上昇エッジまたは下降エッジの微分に対する応答です。
一般的な回避策は、次の時間定数のローパス フィルタを使用して微分動作をフィルタリングすることです。
導関数に 無限インパルス応答(IIR) フィルタを使用する上記アルゴリズムのバリエーション:
A0 := Kp + Ki*dt
A1 := -Kp
エラー[2] := 0 // e(t-2)
エラー[1] := 0 // e(t-1)
エラー[0] := 0 // e(t)
output := u0 // 通常はアクチュエータの現在の値
A0d := Kd/dt
A1d := - 2.0*Kd/dt
A2d := Kd/dt
5 := 5
tau := Kd / (Kp*N) // IIRフィルタの時定数
アルファ := dt / (2*tau)
d0 := 0
d1 := 0
fd0 := 0
fd1 := 0
ループ:
エラー[2] := エラー[1]
エラー[1] := エラー[0]
error[0] := 設定値 − 測定値
// PI
出力 := 出力 + A0 * エラー[0] + A1 * エラー[1]
// フィルターされたD
d1 := d0
d0 := A0d * エラー[0] + A1d * エラー[1] + A2d * エラー[2]
fd1 := fd0
fd0 := ((アルファ) / (アルファ + 1)) * (d0 + d1) - ((アルファ - 1) / (アルファ + 1)) * fd1
出力 := 出力 + fd0
待つ(dt)
ループへ進む
参照
注記
- ^ 唯一の例外は、ターゲット値が、コントローラー出力がゼロのときに取得される値と同じである場合です。
- ^ 非常に小さな間隔 (例: 60Hz/秒) の場合、結果の微分値は非常に大きくなり、比例成分や積分成分よりも桁違いに大きくなります。微分値を調整する (例: 1000 倍にする) か、除算を乗算に変更すると、意図した結果が得られる可能性が高くなります。これは、ここで紹介するすべての疑似コードに当てはまります。
参考文献
- ^ 荒木 正之 (2009). 「制御システム、ロボット工学およびオートメーション - 第 VII 巻 - PID 制御」(PDF)。日本: 京都大学。
- ^ 「9.3: 古典的な方法によるPIDチューニング」。Engineering LibreTexts。2020年5月19日。 2024年5月31日閲覧。
- ^ ヒルズ、リチャード L (1996)、風力発電、ケンブリッジ大学出版局
- ^ Richard E. Bellman (2015年12月8日)。適応制御プロセス:ガイドツアー。プリンストン大学出版局。ISBN 9781400874668。
- ^ abcdef Bennett, Stuart (1996). 「自動制御の簡潔な歴史」(PDF) . IEEE Control Systems Magazine . 16 (3): 17–25. doi :10.1109/37.506394. 2016-08-09 にオリジナル(PDF)からアーカイブ。2014-08-21に取得。
- ^ マクスウェル、JC ( 1868)。「知事について」(PDF)。王立協会紀要。100 。
- ^ ニューパワー、アンソニー(2006年)。『鉄の男とブリキの魚:第二次世界大戦中のより優れた魚雷製造競争』。Praeger Security International。ISBN 978-0-275-99032-9。p.エドウィン・グレイ(1991)『悪魔の装置:ロバート・ホワイトヘッドと魚雷の歴史』メリーランド州アナポリス:米国海軍研究所、p. 33を引用。
- ^ Sleeman, CW (1880)、「Torpedoes and Torpedo Warfare」、ポーツマス:Griffin & Co.、pp. 137-138、
これは魚雷の秘密と呼ばれるものを構成しています。
- ^ 「ビルディングオートメーションの簡単な歴史」。2011年7月8日時点のオリジナルよりアーカイブ。2011年4月4日閲覧。
- ^ ミノルスキー、ニコラス(1922)。「自動操舵機の方向安定性」アメリカ海軍技術者協会誌。34 (2): 280–309。doi :10.1111/ j.1559-3584.1922.tb04958.x。
- ^ ベネット 1993、67 ページ
- ^ ベネット、スチュアート(1986年6月)。制御工学の歴史、1800-1930年。IET。pp.142-148。ISBN 978-0-86341-047-5。
- ^ Shinskey, F Greg (2004)、外部リセットフィードバックの力(PDF)、Control Global
- ^ Neuhaus, Rudolf. 「ダイオードレーザーのロックと線幅の狭小化」(PDF) 。 2015年6月8日閲覧。
- ^ 「位置制御システム」(PDF)。ハジェテペ大学電気電子工学部。2014年5月13日時点のオリジナル(PDF)からアーカイブ。
- ^ Kebriaei, Reza; Frischkorn, Jan; Reese, Stefanie; Husmann, Tobias; Meier, Horst; Moll, Heiko; Theisen, Werner (2013). 「リングローリングと統合されたリング形状部品への粉末冶金コーティングの数値モデリング」。材料加工技術。213 (1): 2015–2032。doi :10.1016/ j.jmatprotec.2013.05.023。
- ^ Lipták, Béla G. (2003).計測器エンジニアハンドブック: プロセス制御と最適化(第 4 版). CRC プレス. p. 108. ISBN 0-8493-1081-4。
- ^ 「入門:PID コントローラ設計」ミシガン大学。
- ^ ティム・ウェスコット (2000 年 10 月)。 「博士号のないPID」(PDF)。 EE タイムズ - インド。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ ab Bechhoefer, John (2005). 「物理学者のためのフィードバック: 制御に関するチュートリアルエッセイ」.現代物理学レビュー. 77 (3): 783–835. Bibcode :2005RvMP...77..783B. CiteSeerX 10.1.1.124.7043 . doi :10.1103/revmodphys.77.783.
- ^ abc Skogestad, Sigurd (2003). 「モデル削減とPIDコントローラ調整のための簡単な解析ルール」(PDF)。
- ^ ab 「PID型コントローラのチューニングのためのリレー自動チューニング方法のレビュー」。
- ^ Kiam Heong Ang; Chong, G.; Yun Li (2005). 「PID 制御システムの分析、設計、およびテクノロジ」(PDF) . IEEE Transactions on Control Systems Technology . 13 (4): 559–576. doi :10.1109/TCST.2005.847331. S2CID 921620.
- ^ Jinghua Zhong (2006 年春)。「PID コントローラーのチューニング: 簡単なチュートリアル」(PDF) 。2015年 4 月 21 日のオリジナル(PDF)からアーカイブ。2011年 4 月 4 日に取得。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ オーストロム、KJ;ヘグルンド、T. (1984 年 7 月)。 「簡易レギュレーターの自動チューニング」。IFAC 議事録の巻。17 (2): 1867 ~ 1872 年。土井:10.1016/S1474-6670(17)61248-5。
- ^ Hornsey, Stephen (2012年10月29日). 「PID型コントローラの調整のためのリレー自動調整方法のレビュー」. Reinvention . 5 (2).
- ^ Bequette, B. Wayne (2003).プロセス制御: モデリング、設計、シミュレーション。アッパーサドルリバー、ニュージャージー: Prentice Hall。p. 129。ISBN 978-0-13-353640-9。
- ^ Heinänen, Eero (2018年10月). Luus-Jaakola最適化に従うPIDコントローラの自動チューニング方法(PDF) (修士論文編集). タンペレ、フィンランド: タンペレ工科大学. 2019年2月1日閲覧。
- ^ Li, Yun; Ang, Kiam Heong; Chong, Gregory CY (2006 年 2 月)。「PID 制御の特許、ソフトウェア、ハードウェア: 現在の技術の概要と分析」(PDF)。IEEE Control Systems Magazine。26 ( 1): 42–54。doi :10.1109/ MCS.2006.1580153。S2CID 18461921 。
- ^ Soltesz, Kristian (2012 年 1 月). PID チューニング手順の自動化について ( Licentiate theis).ルンド大学. 847ca38e-93e8-4188-b3d5-8ec6c23f2132.
- ^ Li, Y. およびAng, KH および Chong, GCY (2006) PID 制御システムの分析と設計 - 問題、解決策、および将来の方向性。IEEE Control Systems Magazine、26 (1)。pp. 32-41。ISSN 0272-1708
- ^ Cooper, Douglas. 「Integral (Reset) Windup、Jacketing Logic、および Velocity PI Form」。2014 年 2 月 18 日閲覧。
- ^ Cooper, Douglas. 「熱交換器のPI制御」。Control Guruによる実践的プロセス制御。2014年2月27日閲覧。
- ^ Yang, T. (2005年6月). 「計算動詞コントローラのアーキテクチャ:インテリジェント制御の新しいパラダイムに向けて」.国際計算認知ジャーナル. 3 (2): 74–101. CiteSeerX 10.1.1.152.9564 .
- ^ Liang, Yilong; Yang, Tao (2009). 「計算動詞 PID コントローラを使用した燃料アニーラの制御」。通信における偽造防止、セキュリティ、および識別に関する第 3 回国際会議の議事録。Asid'09 : 417–420。ISBN 9781424438839。
- ^ Tenreiro Machado JA, et al. (2009). 「工学における分数微積分のいくつかの応用」。工学における数学の問題。2010 : 1–34。doi : 10.1155/2010/639801。hdl : 10400.22 / 4306。
- ^ [1] カスケード制御の基礎 | 場合によっては、2 つのコントローラを使用すると、1 つのプロセス変数を希望どおりに維持できる場合があります。 | ヴァンス ヴァンドーレン、PHD、PE | 2014 年 8 月 17 日
- ^ [2] | カスケード制御の利点 | 2020年9月22日 | ワトロー
- ^ キング、マイク(2011)。プロセス制御:実践的アプローチ。ワイリー。pp.52–78。ISBN 978-0-470-97587-9。
- ^ 「デジタル実装のための離散 PI および PID コントローラの設計と分析」。Scribd.com。2011年 4 月 4 日閲覧。
- ^ Thakur, Bhushana. FPGA ベースの PID コントローラのハードウェア実装(PDF)。
- ^ 「PID プロセス制御、「クルーズ コントロール」の例」。CodeProject。2009 年。2012 年11 月 4 日閲覧。
- Bequette , B. Wayne (2006)。プロセス制御: モデリング、設計、シミュレーション。Prentice Hall PTR。ISBN 9789861544779。
さらに読む
- Liptak, Bela (1995)。『計装技術者ハンドブック: プロセス制御』。ペンシルベニア州ラドナー: Chilton Book Company。pp. 20–29。ISBN 978-0-8019-8242-2。
- タン、コクキョン。王清国。ハン・チャンチエ (1999)。PID制御の進化。英国、ロンドン: Springer-Verlag。ISBN 978-1-85233-138-2。
- キング、マイク(2010)。プロセス制御:実践的アプローチ。英国チチェスター:ジョン・ワイリー・アンド・サンズ社。ISBN 978-0-470-97587-9。
- Van Doren、Vance J. (2003 年 7 月 1 日)。「ループ チューニングの基礎」。制御エンジニアリング。
- Sellers, David. 「比例制御と積分制御と微分制御の概要、およびその効果的な適用と実装のための提案」(PDF) 。2007年 3 月 7 日のオリジナル(PDF)からアーカイブ。2007 年 5 月 5 日に取得。
- Graham, Ron; Mike McHugh (2005-10-03). 「PID コントローラのチューニングに関する FAQ」。Mike McHugh。2005 年 2 月 6 日時点のオリジナルよりアーカイブ。2009 年 1 月 5 日に取得。
- Aidan O'Dwyer (2009)。PI および PID コントローラのチューニング ルール ハンドブック(PDF) (第 3 版)。Imperial College Press。ISBN 978-1-84816-242-6。
外部リンク
- Mathematica を使用した PID チューニング
- Python を使用した PID チューニング
- PID制御とチューニングの原理
- PID温度制御に関連する重要な用語の紹介
PID チュートリアル
- TCLab を使用した MATLAB/Simulink と Python での PID 制御
- そもそもPIDって何? Electronic Designの記事
- 基本的な電子部品を使用して PID コントローラを構築する方法を示します (22 ページ)
- 博士号なしのPID
- MATLAB と Simulink による PID 制御
- 単一オペアンプによるPID
- PID制御の実証済みの方法とベストプラクティス
- PID制御とチューニングの原理
- PID チューニング ガイド: PID コントローラの理解とチューニングに関するベスト プラクティス アプローチ
- Michael Barr (2002-07-30)、クローズドループ制御入門、組み込みシステムプログラミング、2010-02-09 にオリジナルからアーカイブ
- Jinghua Zhong、機械工学、パデュー大学 (2006 年春)。「PID コントローラーのチューニング: 簡単なチュートリアル」(PDF)。2015 年 4 月 21 日にオリジナル(PDF)からアーカイブ。2013年 12 月 4 日に取得。
{{cite web}}: CS1 maint: multiple names: authors list (link) - MATLAB を使用した P、PI、PD、PID コントローラーの紹介
