PIDコントローラーを非線形プロセスに調整する方法


9

PIDコントローラーを調整したい非線形の熱プロセス(温度が上がるにつれて非線形の放射がますます存在する)があります。出来るだけ正確に温度管理したいです。

温度範囲をNの擬似線形範囲(定義する予定)に分割し、これらの温度範囲ごとに、小さな温度ステップを使用して1次モデルを近似し、このモデルに合うようにPIDパラメーターを計算することを計画しました。PIDパラメータは、プロセスの温度に応じて自動的に切り替えられます*。

私の問題は次のとおりです。たとえば、70°Cのチェックポイントを検討してください。Pワットはすでにこの温度に到達するために流れています。dPワットを注入して、温度を1°C上げます。次に、時定数を書き留めます。定常状態のゲインは1 / dP°C / Wになります。[これが正しいかどうか少し考えていただけますか?]最後に、PIDをそのプラントに調整して、その温度範囲のパラメーターを取得し、他の範囲に進みます。

ここで、プロセスが70°Cに達すると想定します。新しいパラメーターが読み込まれ、積分カウンターがリセットされます。エラーは1°Cになる可能性がありますが、必要な電力は21°Cに到達するための電力よりはるかに多く、コントローラーがPワット未満を要求することは確かです。これは、積分項がPワットを要求する前に、温度が大幅に低下することを意味します。その後、dPの追加ワットが最終的にプロセスを71°Cにします(確実にオーバーシュートします)。大きなPはdPに比べて悪くなります。

ヒーターは、コントローラー出力と現在の「基準温度」(たとえば70°C)に留まるために必要な電力の合計で駆動する必要があるようです。しかし、既成のコントローラーはそれを提供していないので、別の方法があるはずです。

何が欠けていますか?適切な方法は何ですか?

*:実質的にゲインスケジューリングです。


1
PIDコントローラーは通常、線形システムを対象としています。これは、いくつかの非線形システムを制御するのに十分なだけでなく、「ほぼ線形」の動作点の周囲でも十分に堅牢です。そうでない場合は、さまざまな手法を使用して、制御対象プラントを線形化できます(「フィードバック線形化」を参照するか、内部ループをいくつか導入します)
Eugene Sh。

ご意見ありがとうございます。それが私が達成しようとしていることです。「ほぼ線形」の温度範囲でPIDコントローラーを使用します。私はそれらのキーワードですでに周りを見回しましたが、あまり運がありません。
user42875 '30 / 10/30

1
複数のモデルをトレーニングする代わりに、PIDコントローラーに渡す前に「線形化」関数を介して入力値をフィードし、それに基づいてトレーニングできますか?
Nick Johnson

1
あなたのアプローチは私には大丈夫だと思います。温度に応じてゲインと時定数を調整します。クロスオーバーポイントで何が起こるかを考える必要があります。あなたが望んでいるほどうまく機能していないものを作りましたか?制御ループは、多くの非線形性を隠すことができます。そして多分あなたは空想を得ることなく大丈夫でしょう。
George Herold

なぜ放射は非線形なのですか?炉の温度がリークすると、電力損失は線形Q = mc * delta_Tになります。システムがリークしているだけの場合、ゲインが減少することを除いて、デッドタイム、立ち上がり時間など、ほとんどすべての定数が残ります。Kp変数Kp(T_actual)をKp_initialとKp_finalの線形関数にすることができます。
MarkoBuršič15年

回答:


11

PIDコントローラーを非線形プロセスに調整する方法

あなたはしません。プロセスを線形化してから、PIDコントローラーで線形値を処理します。

「プロセスを線形化する」とは、プロセス自体を線形化することを意味するのではありません。これは通常、物理学のために実行できません。ただし、PIDコントローラーの視点からプロセスを線形に制御できるように、PIDコントローラーの出力とプロセス入力の間に非線形のものを置くことができます。

このようなリニアライザはフィードバックループ内にあるため、それほど正確である必要はありません。その目的は、コントロールのダイナミックレンジ全体でほぼ一定のゲインの外観を与えることです。シンプルで一般的な方法は、区分的線形テーブルベースの関数です。16または32セグメントは通常、非常に高度な非線形プロセス以外には何でも十分です。

私が遭遇した最悪の例は、カソードフィラメントの駆動の強さを変更することによって電子管を流れる電流を制御することでした。電子ビーム電流に対する陰極温度の関数は非常に非線形であり、陰極フィラメント電流を制御するシステムも幾分非線形でした。この場合、この全体の混乱を予測するのは難しすぎたので、製造中に、フィラメント駆動制御値をステップスルーするキャリブレーション手順を使用し、それぞれのビーム電流を測定し、それから32セグメントルックアップテーブルを計算しました。これは非常にうまく機能し、ビーム電流PIDコントローラーを調整して、全範囲にわたって良好な応答を実現できました。

プロセスの前に線形化機能がない場合は、プロセスの最高の増分ゲインポイントで安定するようにPIDコントローラーを調整する必要があります。これにより、他のポイントで非常に減衰した動作が発生します。

追加されました

更新された質問には、上記の方法がまだ良いアイデアではなく、適用できない理由について何も述べられていません。あなたはアナログコントローラーを使用していると言います。私の最初の反応は「1980年代はもう過ぎ去った、それをしてはいけない」です。 ただし、PIDコントローラーとプラントリニアライザーは独立させることができます。

どうやら、プラントの入力は電力であり、出力は温度です。さまざまな電力レベルで標準的な定常状態の温度を測定します。それから、線形化された「電力」を実際のプラント電力入力に変換する関数を計算できます。アナログPIDコントローラーは、おそらく電力に比例した電圧を出力しています。あなたがしなければならないのは、実際の電力レベルの変換に線形測定を行うその電圧に沿ってブラックボックスを挿入することです。

通常は、A / Dが組み込まれているマイクロコントローラーでこれを行います。このテーブルルックアップとポイント間の線形補間を行うのは簡単です。その後、最終的に電圧に変換される方法で結果を出力します。プラントはマイクロコントローラーと比較して遅いので、これはPWM出力のフィルタリングとバッファリングと同じくらい簡単かもしれません。または、D / Aを直接駆動することもできますが、この場合は必要ないようです。

1980年代のコントローラーのテーマに沿って、A / D、メモリー、D / Aでレトロな雰囲気を演出できます。

いずれにせよ、PIDコントローラーは認識できる範囲で線形プラントを効果的に制御しており、良好なパフォーマンスに調整できるはずです。

PIDコントローラー内の3つの値を出力範囲で微調整するよりも、プラント入力の区分的線形変換を1か所で行う方が簡単です。後者はクラッジですが、前者は問題に直接対処します。また、線形化関数のデータを測定する方が、さまざまな点でP、I、およびDゲインを決定するよりもはるかに簡単です。それを行ったとしても、適切な利益がすぐに状況に適用されるわけではないため、一時的な問題があります。繰り返しますが、「ゲインスケジューリング」は厄介です。


非常に興味深いです。線形化アプローチを提示していただきありがとうございます。リレーに直接配線されているハードウェアコントローラーを使用しているので、残念ながらスケジュールを立てる必要があります。私の識別アプローチは正しいですか?そうではないような気がします。
user42875 '30 / 10/30

問題を明確にするために質問を編集しました-特に最後の2つの段落。(まだ、+ 1)
user42875 2015年

コントローラーの製造元に、出力の前に線形補間付きのルックアップテーブルを挿入できるかどうかを尋ねました-可能であれば、そのことを忘れる必要があることを意味している場合でも、必ずそのオプションを選択します伝達関数などに基づく通常の調整ツール。エレガントです。そうでない場合、私は非常に退屈なゲインスケジューリングを行う必要がありますが、どうやら私のアプローチには何も問題がないことを確認します。
user42875 2015年

2

モデルを線形化する場合、非線形モデルy = f(x)がy = A *(x-x0)+ Bに置き換えられると想定していることに注意してください。x0が線形化ポイントであることに注意してください。xの範囲を導入すると、複数のA、B、x0になります。どちらの場合も、コントローラーへの入力は、現在の線形化ポイントに関するエラーになります。ただし、入力信号は(Bを使用して)オフセットしているため、現在の線形化ポイントに対してエラーが0であっても、信号を保持します。

この例では、エラーが(70度の設定点で)0度であっても、コントローラーは0より大きいパワーを出力します。


ありがとう。あなたは何かに夢中になっていると思いますが、私にはよくわかりません。大まかに言って、私は温度の関数でP、I、D項を変更できる基本的なPIDコントローラー(アナログのような)を使用しています。70℃で一気に落ち着くと、誤差がゼロでもパワーがゼロにならないことを知っています。私が心配しているのは落ち着きです。私は基本的に70°Cでコントローラーを投入しています。それはt = 0sなので、積分項が始まるまでに時間がかかるので、ひどい垂下が発生します。私の方法は間違っているように思えます。
user42875

(コントローラーは最初、70°Cに留まるのに必要な電力よりも低い電力をほとんど要求しません)
user42875

明確にするために質問を編集しました-特に最後の2つの段落。
user42875 '30 / 10/30

プロセスに関する詳細なしにアドバイスを与えるのは難しいですが、70度前後のかなり不安定なシステムがあり、その温度付近では大部分の制御が粒内補償(PIDのI)のために発生しているようです。
PAL-クリスチャンEngstad

70°Cはほんの一例です。おそらく6つの異なる温度範囲に調整する必要があります。大まかに言って、私は外表面を加熱することによって魔法瓶の内部の温度を制御しています。
user42875 '30 / 10/30

2

PIDコントローラーによる非線形制御の1つのアプローチは、業界で広く使用されている方法で、「ゲインスケジューリング」と呼ばれます。

非線形制御問題は一連の線形十分領域に分割され、各領域に適切なパラメーターが使用されます。


それが私の質問で読み取れるように、私が達成しようとしていることです(「PIDパラメーターはプロセスの温度に応じて自動的に切り替えられます*」「*:効率的にゲインスケジューリングです。」
user42875
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.