被制御システムの時定数が可変である場合、どのようにPID-Controlを設定しますか?


9

連続PIDコントローラーの一般的な説明は次のように記述されます:

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
最高の特定の制御対象システムの定数KpKi、およびK_dの値は、\ text {PT} _1システム、\ text {PT} _2システムなど、Kdその時定数に依存します。PT1PT2

そのようなシステムの時定数が可変である場合はどうしますか。TaT_bの間で変化するとしましょうTbTa<Tb)。PID定数をどのように設計しますか?

回答:


8

1つの方法は、何らかの形の適応制御を実装することです。時定数の範囲が小さく、既知である場合、「ゲインスケジューリング」と呼ばれるものを使用して、処理する すべての時定数を事前に決定し(できればそれが有限であることを確認)、if / thenロジックを使用してPIを定義します。 D.範囲全体で安定性とパフォーマンスを確保するために十分な変動性をカバーしていることを確認するのは難しい場合があります。ゲインスケジューリングの成功例として、チヌークヘリコプターがあります。できます。

時定数がどうなるかについて実行可能な予測がない場合は、モデル参照適応制御(MRAC)を使用して調べることができます。この制御スキームでは、選択したPIDコントローラーを備えた参照モデル(理想的なシステム)があります。MRACは、プラントが実際に行っていることと参照モデルが行っていることの間のエラーを最小限に抑えます。このようにして、変化するプラントをLTIモデルのように動作させることができます。

または、Model Identification Adaptive Controller(MIAC)を使用することもできます。ここで、制御スキームはシステム識別をリアルタイムで実行し、コントローラーの更新法則を使用します。これには、3つのアイデアの中で最も高度なスキルが必要です。

システムは時定数を時々刻々と変化させているため、LTIではなくなりました。これは、ゲインスケジューリング(時定数の範囲がわかっていればかなり簡単)またはPIDの更新法則によるシステム識別のいずれかを行う必要があることを意味します。


より大きなタイムステップを設計し、アクチュエータコマンドを送信する前に各反復中に待機することでソフトウェアを準リアルタイムにして、タイムステップを動的に均等化しないのはなぜですか?
GürkanÇetin

@GürkanÇetinソフトウェアは何を待っていますか?ソフトウェアが故意にコントロールの更新を遅らせたときに何が起こっているかを理解するのを手伝ってくれませんか?
willpower2727

私が正しく理解している場合、計算反復の各ループで未知の時間遅延があります(つまり、I / O通信または他のCPUタスクが原因です)。これは、非リアルタイムターゲット(OS)での一般的な問題です。したがって、コントローラを所定の(長い)delta_t(たとえば100msec)に調整し、各反復で合計ループ時間をこのdelta_tに調整しようとします(制御アルゴリズムが80ミリ秒で終了すると想定し、さらに20ミリ秒待機します) )制御コマンドを送信します。他のすべてのタスクにかかる時間が100ミリ秒未満であることがわかっている場合(制御法則の計算時間を差し引いて)、機能する可能性があります。
GürkanÇetin

@GürkanÇetin私が元の質問を正しく理解している場合、問題は、プラントの物理的側面が時間とともに変化するとき(つまり、ロケットが時間とともに質量を失うこと)を制御する方法に関するものであり、非リアルタイムの操作ループ実行時間を処理する方法ではありません。コントローラーを実行している非リアルタイムOSを扱うという点では、あなたの提案は有効だと思います。
willpower2727

そうそう。質問を間違えました。この場合、プラントが時間内に(突然または徐々に)変化する場合、別の可能性として再構成が挙げられます。もちろん、モデルのダイナミクスの変化を知っている場合にのみ機能します。等、質量を失う燃料を費やし、着陸装置を後退/抽出など
GürkanÇetin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.