PIDが温度制御の慣性をどのように説明するかを素人の言葉で説明してください


9

私は自分の趣味のマイクロプロセッサ制御のリフローオーブンを作っています。(メカニカル)リレーを使用して、ヒーター(つまり、石英管)をオンまたはオフにします。温度が上昇し始める数秒前に加熱が遅れていることに気づきました。

とりあえず、Arduinoを使用して手動で温度プロファイルを管理しています。Arduinoは、設定温度に達したときにヒーターをオフにするだけです。たとえば、温度を摂氏120度に設定してヒーターが停止しても、温度はまだ10〜20度上昇しているため、かなりのオーバーシュートが発生し、その後リンギングがゆっくりと減少します。

私は、より良い温度制御のためにPIDを利用する多くの例を読んで見てきました。それがなければ、設定値の10〜20度下のようにヒーターを停止し、その後、設定値付近で温度が安定するまでヒーターを短時間でオン/オフにします。デルタは温度によって変化するので、それほど簡単ではないかもしれません。固定された設定値での温度上昇の指数関数的な性質について知っています。

したがって、誰でも簡単にPIDが慣性を説明する方法、たとえば、積分部分と微分部分が単純な用語でどのような役割を果たすか、および微分と積分の推定を直感的に理解できるかどうかを説明できますか?複雑な計算に頼らない数量。


あなたが見てきたように、課題は遅延です。したがって、制御の鍵は、スルーレートとスルーレートの導関数を調べることです
analogsystemsrf

@analogsystemsrf私は実際にそれを持っていると思います。あなたが読むことができるように、私はこれ(理論)とそれ(練習)の間のリンクを作ろうとするのが少し難しいだけです。要するに、遅延を補償する部分とは何ですか?

1
遅延は対処するのが恐ろしいです。おそらくセンサーがヒーターから離れすぎていることが原因です。または、ヒーターが大きすぎ、熱質量が多すぎます。PIDスケーリング係数は、物理的な配置が変更されると大きく変化する可能性があります。遅延を減らすと、PID制御因子を達成してエラーを小さくすることができます。
glen_geek 2017年

あなたが持っている唯一の制御がリレーでヒーターをオン/オフにすることであるならば、あなたは本当にPIDを実装することができません。
mkeith 2017年

2
仕事には工業用温度調節器を使っています。リレー出力を備えたものは、一般にサイクルタイムを最小5秒に制限します。SSRを駆動するためのソリッドステートDC出力を備えたものには、この制限はありません。例えばガラス炉や1トンのチョコレートなど、長い時定数を持つアプリケーションについて考える場合、30秒のデューティサイクルで十分に制御できると想像できます。
トランジスタ

回答:


12

グレンのコメントを+しなければならなかった。彼は一貫して正しい場所に脳を持っています、私見。PIDで処理するのは、Δtディレイ。ICウェーハFABのランプ加熱温度制御を、何年かの間、何らかの方法で扱ってきました。PIDの概要から始めて、PIDが他の場合ほど有用ではない場合について少し説明します。また、他にも検討できる制御方法のドメインが他にもたくさんあることをお勧めします。

PID制御の正規表現は次のとおりです。

ut=K[et+1Ti0teτdτ+Tddetdt]

コントローラーのパラメーターが比例ゲインの場合 K、積分時間 Ti、および微分時間 Td

  1. 比例制御:ここでの制御アクションは、単に制御エラーに比例します。(上記の方程式は、ut=Ket+ub、 どこ ubは、コントローラーバイアスまたはリセットです。)静的プロセスモデルの分析では、結果のプロセスに定常状態での残留オフセットまたはコントローラーバイアスがあることが示されています(ただし、システムの制御誤差がゼロになるようにシステムを手動で調整できます)。コントローラーバイアスを適切に選択することにより、1つだけのセットポイント値で設定します。)ゲインを増やすと、測定ノイズ(悪い)にもゲインが提供されるため、ループゲインが高すぎてはならず、「最良の」ループゲインはありません。それは目的に依存します。
  2. 比例+積分制御:積分動作の主な機能は、プロセス出力が定常状態の設定値と一致することを確認することです。積分動作では、小さな正の誤差は常に増加する制御信号になり、小さな負の誤差は常に減少する制御信号になります。これは、エラーがどんなに小さくても当てはまります。
  3. PID制御:微分制御を追加すると、閉ループの安定性が向上します。(プロセスの出力で制御の変更が認識されるまでにしばらく時間がかかります。そのため、制御システムは遅れ、そのエラーを修正します。微分項の結果は、一種の予測であり、遅延結果を予測するために使用される、エラー曲線の接線を使用したエラー。

上記の説明は、遅延の問題に関する独自の説明に追加されており、派生語が役立つことを示唆しています。しかし、いつものように、必ずしもそれほど単純なものはありません。

プロセスのダイナミクスが1次の場合、比例積分制御で十分です。これは、ステップ応答を測定することで簡単にわかります。(ナイキスト曲線が第1象限と第4象限にある場合)。1次でなくても、プロセスが厳密な制御を必要としない場合にも適用できます。

PID制御は、支配的なダイナミクスが2次であるプロセスに十分です。多くの場合、温度制御がここに当てはまります。したがって、これもまた、状況にデリバティブコントロールを追加することを主張するものです。

しかしながら。上記のすべては、いくつかの点を改善するために他のすべての可能なことを行った後にのみ検討する必要があります。

  • 合理的に適用できる最も速い応答温度センサー(小さな質量、高温測定など)を使用し、制御したいプロセスへの応答遅延が可能な限り少ない状況(近い、遠くない)に適用します。
  • 測定およびプロセス制御の実行における遅延変動を低減します。

この最後の点について少し詳しく説明したいと思います。あなたがどこかに立っているような、プロセスコントロールを想像してみてください。細くて非常に柔軟でぐらついた竹の棒を、あなたの上の木に座っている遠くの鳥小屋の穴に突き刺そうとしています。あなたが近くにいて、竹の棒が短いなら、それは簡単です。いつでもすばやく簡単に行うことができます。しかし、竹の棒が長く、鳥小屋があなたから遠く離れている場合、それを行うのは非常に困難です。ポールはさまよい続け、予測と制御を非常に困難にします。

(まだ明確でない場合は、竹の棒の長さはループ遅延時間のようになります。)

したがって、遅延はおそらく制御システムの最悪の悪夢です。より多くの遅延は非常に悪いです。したがって、この遅延を減らすために、あなたが自分の力ですべてを行うことが非常に重要です。しかし、もう1つ重要な点があります。

同じ状況を想像してみてください。しかし、今では竹の棒も長さを変え続けています。時々それはより短く、時にはより長く、そしてあなたの側での予測なしに絶えず変化します。今、あなたは自分のスタンスを変え続ける必要があり、遅延がいつ変わるかわからない。これは、ご使用のソフトウェアが非常に慎重に制御せず、こぶしでADC値を処理してDAC制御出力を生成する際の時間遅延である状況です。

したがって、遅延はPID制御システムにとって十分に悪いものです。可変遅延はさらに悪化します。そのため、ソフトウェアの設計には細心の注意を払う必要があります-非常に厳密な注意-IFステートメントや条件付き計算コード、またはタイマーのずさんな使用などがないようにしてください。サンプル出力と制御出力の間の遅延。

派生コントロールが必要かどうかについて心配する前に、上記を管理に入れる必要があります。まず最初に。あなたの行動を片付けなさい。次に、システムを調べて、残っていることを判断します(たとえば、PIとPIDを使用します)。


私は非常に正確な高温計システムを使用してPID制御システムに取り組んでいました(顧客にとっても非常に高価です)。私たちの高温計を扱っているカナダの研究者から電話を受けましたが、非常に大規模な商業会社(研究者は、彼が融液から引いていたヒ化ガリウムのブールの側面をさざ波で苦しんでいました。そして、適切なPID制御変数を理解するために私の助けが必要でした。(ブール引きでは、非常に均一な直径が必要です。)

彼が使用していたコントローラーは、標準的な基準ではかなり良かった。しかし、それは遅延を追加しました-そして、それらの中のソフトウェアは全体の制御ループに導入した遅延を厳密に制御しなかったので、それらの遅延も変化しました。

だから私が最初に彼に言ったのは、私がパイロメーターのソフトウェアにPID制御を追加し、彼が使用していたシステムから外部コントローラーをプルするだけでよいということです。私はそのソフトウェアを1週間もかからずに追加し、修正したパイロシステムを彼に出荷しました。私はPIDソフトウェアを使って空想的なことをしませんでした。ただし、ADCからDACへのばらつきを数マイクロ秒未満に抑え、全体の遅延も約100マイクロ秒に引き締めました。それを彼に送った。

来週月曜日に電話がありました。ブールはほとんど完全に引き出されており、波紋はまったくありませんでした。

遅延を削減し、それらの遅延のばらつきを削減するのと同じくらい簡単でした。PIDコントロールに関して特別なことはまったくありません。これは、誰もが1つについて初めて学ぶことになる、単純なバニラ実装でした。

これは、遅延と遅延変動性を排除することの重要性を示しています。確かに、微分制御はある種の「割線/接線」予測のアイデアを提供できます。しかし、遅延を減らし、変動性を最小限に抑えることに勝るものはありません。

竹の棒と鳥小屋の穴の問題について考え続けるだけです。


結論?

支配的な時間遅延があるシステムの制御は悪名高いほど困難です。私はあなたにいくつかの理由を提案しましたかもしれないが微分項は時間遅延に役立つと信じています。しかし、時間の遅れが支配的なプロセスでは、微分アクションはあまり役に立たないという一般的な合意があります。これが、私が簡単に取り除くことができるすべての遅延(たとえば、外部PIDボックスなど)を排除することでその研究者を助けることをすぐに提案した理由です。私の製品の実装が商用製品より優れているとは思いませんでした。実際、自分の実装が十分に吟味されていないことはわかっていました。熟練者、私はそれを一から書いて、それをテストしてインストールし、今までになかった新しく追加されたソフトウェアを備えたユニットを出荷し、一週間ですべてをしなければなりませんでした。しかし、この遅延が、この研究者が望んだ結果を得る上でのすべての可能性を殺していることも知っていました。だから私はすぐに、最善のアプローチは遅延を絞り出すことであり、天才しか従えない「見事に」実装された魔法のPIDコードを発明しないことだとすぐにわかりました。それはすべて遅延についてであり、それらの遅延が何よりもまずどのように変化するかについてです。残りはすべてずっと低い優先順位です。

「むだ時間補償器」と呼ばれるものがあります。しかし、最終的な分析では、遅延を引き出し、それらの遅延の変動性を引き出すためにできる限りのことを行う必要があります。そして、そこでできることをすべて行った後でも問題が解決しない場合は、PIDで許可されているよりも高度な制御が必要になる可能性があります。ここでは、おそらく、フーリエ変換(および逆変換を使用してステップ応答を分析し、システム応答の記述を作成する)に到達します。PIDを使用してこれらを変更することはできません。実際、応答関数を十分にモデル化できれば、ほとんど奇跡的な結果になります。

しかし、あなたの場合、私は遅延とその変動性を排除することに焦点を当てます。可能であれば、単純化したオン/オフランプ制御の使用も避けることを検討する必要があると思います。ランプの強度をコントロールできたらいいですね。しかし、あなたがそれを検討できるかどうかはわかりません。


1
Jonkさん、ありがとうございました。それは(私にとって)非常に詳細な説明でした。先ほどお話しした遅延は、オーブンの製造方法に固有のものだと思っているため、減らすことはできません。インターネットで一般的に見られるように、汎用オーブンをリフローオーブンに変更しました。ただし、石英管を使用しているにもかかわらず、温度上昇は必要な速度の半分です(2〜3ではなく1秒あたり1°C以下)。センサーについては、K熱電対のペアを使用しており、慣性がほとんどないことを確認しました。私が気づいたことの1つは、オーブンを予熱すると、温度差が減少することです。つまり、約50°Cです。

遅延を緩和するためにスミス予測コントローラーを試しましたか?
チュー

@Chuまだです、私はここでそれについて学んだだけです:-D。また、現在オーブンの一部が分解されており、手がありません。

それがどれほど複雑で詳細であるかについて、私は最初にあなたの答えを受け入れました。また、PIDではないことを暗示するものであったとしても、私は何にでも当てはまることを受け入れていました。あなたの答えとトランジスターは、次に何をすべきかについての十分なヒントを私に与えました。ただし、[承認された回答]は1つしかありません。とにかくみんなに感謝します

4

これはあなたの質問に直接答えるものではありませんが、理解を深めるために操作するためのいくつかのツールを提供します。

Engineers-Excelには、役立つと思われる簡単なExcelシミュレータがあります。

ここに画像の説明を入力してください

図1. PIDシミュレータモデル。

トリッキーな部分は、プロセス(オーブン)をモデル化して、K-プロセスゲイン、Ts-応答時定数、Ls-応答遅延を確立することです。私は提案します:

  • たとえば、40%の電力でオーブンをオンにします(P1)、それが安定している温度を確認します。たとえば、70%の電力で繰り返します(P2)温度を記録します。プロセスゲインは次のように与えられます(この設定範囲の場合)。
    K=T2T1P2P1
    そして答えは度/%のかなり奇妙な単位になります。
  • 切り替えながら、時間に対する温度応答をプロットします P1 そして P2LS、ラグタイムは、切り替えから温度が上昇し始めるまでの時間です。
  • TS は、(応答の開始から)温度が63%(1つの時定数)に到達するまでの時間です。 T1T2

その後、PIDパラメーターを操作して、希望する応答が得られるかどうかを確認できます。

いくつかのワイルドな推測を取ります:

  • P1=40 そして T1=92°C
  • P1=70 そして T2=176°C
  • K=176927040=2.8°C/
  • Ls=s
  • 92°Cから176°Cまでの距離の63%になるまでに50秒かかります。 TS=50s

ここに画像の説明を入力してください

図2. Excel PIDシミュレーターの出力。

プロセスで設定値の急激な変化や熱負荷の急激な変化などの外乱が発生する可能性が低い場合は、通常、D項がゼロになります。これにより、PI制御設定に至るまでの作業が簡略化されます。

暖房の場合、熱応答時間に比べて十分に速く電源を完全にオンおよびオフに切り替えることにより、比例した電力を得ることができます。ここに画像の説明を入力してください

図3.ヒーターのAC制御の可変デューティサイクル。


理解できる技術情報をありがとう。余談ですが、SSRよりも安価であることがわかったリレーを使用しているため(ソース:Digi-Key)、ヒーターを完全にオンまたはオフにしかできません。0%から100%の間で調整することはできません。また、ゼロクロッシングを使用してヒーターをオフにすることはできませんが、それは最も重要ではないと思います。とにかくあなたの洞察に感謝します。

2
私の図3は、オンオフ制御を示しています。これは、あなたが行うことであり、問​​題ありません。0から100%の間の任意の場所で平均化します。効果的には、ACを使用した低速パルス幅変調(PWM)です。サイクルタイムをリレーの寿命と合理的に短く保つこととトレードオフします。ゼロクロッシングは、電気ノイズを低減する点で優れています。それが問題ではない場合、それは問題ではありません!
トランジスタ

2

PIDには3つの部分があります:比例、積分、微分。

プロポーショナルは最もシンプルなコントローラです。希望信号と実際の信号の間の誤差を増幅します。たとえば、必要な温度が100℃、実際の温度が80℃の場合、出力は20 * Kpです。与えられる出力の量はKpによって調整されます。

Kpを低く調整しすぎると、加熱が不十分になり、希望の温度に到達しない場合があります。

Kpを高く調整しすぎると、急上昇する可能性があります。慣性は、オーバーシュートとリンギングを引き起こす可能性があります。これは、特定の出力電力を与えてからその効果を測定するまでに遅延があるためです。

静的オフセットを低くしたい場合は、積分部分が必要です。Pコントローラーが出力を提供するには、出力値を生成するためにエラーが存在する必要があることに注意してください。エラーをゼロに非常に近づけたい場合は、Pから引き継ぐためにIパーツが必要です。ただし、これには時間がかかる場合があります。

派生部分は、おそらく慣性問題にとって最も興味深いものです。導関数は、エラーの変化率を調べます。エラーの変化率が大きい場合は、高い慣性があることを意味します。調整された係数Kdを使用して、出力が時間的に遅くなることを確認できます。これは、最終出力値に達する前に慣性が減速するためです。

これにより、Dを使用してオーバーシュートを防止しながら、適切な積極的な応答のために高い(より)P係数を使用できます。I部分は、静的エラーを発生させるために使用され、最終的に0に落ち着きます。


実際には、長期的には、P項がゼロに低下します。これは、I項が正確に設定点に積分され、出力の差がゼロのままになるため、Pのゼロのゼロになります。
WhatRoughBeast 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.