Main Content

Closed-Loop PID Autotuner ブロックを使用した PID コントローラーのリアルタイム調整

この例では、Closed-Loop PID Autotuner ブロックを使用してシミュレーションとリアルタイムの両方で昇圧コンバーター プラントの PID コントローラーを調整する方法を説明します。

Closed-Loop PID Autotuner ブロック

Closed-Loop PID Autotuner ブロックでは、単一ループ PID コントローラーをシミュレーションとリアルタイムの両方で調整することができます。このブロックは閉ループ実験の実行中に正弦波摂動信号をプラント入力に挿入し、プラント出力を測定します。実験が停止されると、ブロックは目的の帯域幅付近で推定したプラントの周波数応答に基づく PID ゲインを計算します。

Closed-Loop PID Autotuner ブロックは、リアルタイム アプリケーションにおける 2 つの一般的な PID 調整シナリオに対応します。

  1. ブロックをハードウェアに展開し、Simulink® なしでスタンドアロンのリアルタイム アプリケーションで使用します。

  2. ブロックをハードウェアに展開しますが、エクスターナル シミュレーション モードを使用して、リアルタイムの調整プロセスを Simulink で監視および管理します。エクスターナル モードでは、ホスト コンピューター上で実行される Simulink のブロック線図と、ハードウェアで実行される生成コードの間の通信が可能になります。

この例では最初のシナリオに焦点を当て、ブロックを展開してリアルタイム調整を実行します。

Simulink Control Design™ ソフトウェアは、リアルタイムの PID 調整のための Open-Loop PID Autotuner ブロックも提供します。2 つの自動調整器ブロックの主な違いは、Open-Loop PID Autotuner ブロックはフィードバック ループを開いた (つまり既存のコントローラーが動作していない) 状態で実験を行うという点です。どちらの自動調整器ブロックがアプリケーションに適しているかを判断するには、以下について検討します。

  • 初期コントローラーがない場合、Open-Loop PID Autotuner ブロックを使用して取得します。これはコントローラーの再調整に引き続き使用できますが、Closed-Loop PID Autotuner ブロックに置き換えることもできます。

  • 初期コントローラーがある場合、Closed-Loop PID Autotuner ブロックを使用して再調整を行います。主な利点は次のとおりです。(1) 実験中に予期しない外乱が生じた場合、安全な操作を確保するために既存のコントローラーによって抑制されます。(2) 既存のコントローラーは摂動信号も抑制し、プラントが必ずその定格操作点付近で実行されるようにします。

電圧モード制御の昇圧コンバーター

この例では、Simulink で Simscape™ Electrical™ コンポーネントを使用して電圧モードの昇圧コンバーターをモデル化します。これらのコンポーネントのパラメーターは [1] に基づきます。

mdl = 'scdboostconverterPIDTuningMod';
open_system(mdl)

昇圧コンバーター回路は、電圧源のチョッピングまたはスイッチング制御によって、ある DC 電圧を別の (通常はより高い) DC 電圧に変換します。このモデルではパルス幅変調 (PWM) 信号で駆動する MOSFET をスイッチ動作に使用します。デジタル PID コントローラーは、負荷電圧 $Vout$ をその基準値 $Vref$ に維持するために PWM デューティ比を調整します。

定格操作点では負荷電圧が 18 ボルト、デューティ比が約 0.74 です。デューティ比は昇圧コンバーターの動作中 0.1 から 0.85 まで変化します。

既存の PID コントローラーのゲインは P = 0.02、I = 160、D = 0.00005 および N = 20000 です。これらのゲインは Data Store Memory ブロックに格納されており、外部から PID Controller ブロックへ提供されます。外部のゲイン入力端子をもつことで、Closed-Loop PID Autotuner ブロックによって新しいゲインが計算された後、値を変更できるようになります。

自動調整器ブロックとプラントおよびコントローラーの接続

昇圧コンバーター モデルに示されるように、PID Controller ブロックとプラントの間に Closed-Loop PID Autotuner ブロックを挿入します。start/stop の信号によって閉ループ実験が開始および停止されます。実験が実行されていない場合、Closed-Loop PID Autotuner ブロックは 1 のゲインのブロックのように動作し、u の信号が u+Δu に直接渡されます。

Closed-Loop PID Autotuner ブロックをシミュレーションまたはリアルタイム アプリケーションで使用する場合は、以下について検討します。

  • プラントは漸近的に安定 (つまりすべての極が厳密に安定) であるか、積分でなければなりません。自動調整器ブロックは不安定なプラントでは動作しません。

  • 既存のコントローラーのフィードバック ループは安定でなければなりません。

  • プラントの周波数応答をリアルタイムでより正確に推定するには、実験中にプラント内のすべての負荷外乱の発生を最小限にします。自動調整器ブロックは、プラント出力が挿入された摂動信号のみへの応答であり、負荷外乱によってこの出力が歪むものと仮定します。

  • 実験中はフィードバック ループが閉じているため、既存のコントローラーは挿入された摂動信号も抑制します。閉ループ実験を使用する利点は、コントローラーによってプラントが定格操作点付近で実行され、安全な操作を維持できることです。欠点は、ターゲット帯域幅が現在の帯域幅からかけ離れていると、周波数応答の推定の精度が低下することです。

自動調整器ブロックの設定

Closed-Loop PID Autotuner ブロックをプラント モデルと PID Controller ブロックに正しく接続したら、ブロック パラメーターを使用して調整と実験の設定を指定します。

[調整] タブには 2 つの主要な調整設定があります。

  • ターゲットの帯域幅: コントローラーの望ましい応答速度を指定します。この例では、昇圧コンバーターに一般的な 10000 ラジアン/秒を選択します。

  • ターゲットの位相余裕: コントローラーの望ましいロバスト性を指定します。この例では、既定値の 60 度を選択します。

[実験] タブには 3 つの主要な実験設定があります。

  • プラント タイプ: プラントが漸近的に安定か、または積分であるかを指定します。この例の昇圧コンバーターのプラントは安定です。

  • プラントの符号: プラントが正と負のどちらの符号をもつかを指定します。定格操作点でのプラント入力における正の変化によって、プラントが新しい定常状態に達したときにプラント出力に正の変化が生じる場合、プラントの符号は正になります。それ以外の場合、プラントの符号は負です。プラントが安定の場合、プラントの符号はその DC ゲインの符号に等しくなります。プラントが積分の場合、プラントの符号はそれぞれ、プラント出力が増加し続ける場合は正、減少し続ける場合は負になります。この例では、昇圧コンバーターのプラントの符号は正になります。

  • 信号振幅: 挿入される信号の振幅を指定します。この例では、摂動信号の 5 つすべての周波数に 0.03 を選択して、プラントが飽和制限内で必ず正しく励起されるようにします。励起の振幅が大きすぎる場合、昇圧コンバーターは不連続の電流モードで動作します。入力の振幅が小さすぎる場合、正弦波信号がパワー エレクトロニクス回路のリップルと区別できなくなります。どちらの状況でも、周波数応答の推定結果は不正確になります。

ノーマル モードでの自動調整器ブロックのシミュレーション

Simulink で作成されたプラント モデルがある場合、Closed-Loop PID Autotuner ブロックをリアルタイム調整用に展開する前に、これをプラント モデルに対してノーマル モードでシミュレートすることが推奨されます。シミュレーションは、コードを生成する前に信号接続とブロック設定の問題を特定して調節するのに役立ちます。

昇圧コンバーター プラントのシミュレーションは、PWM 発生器のサンプル時間が高速なため、通常数分間で完了します。Vout がプラント出力、Duty Cycle がプラント入力です。

sim(mdl)

この例では、PID コントローラーにより昇圧コンバーターが約 0.04 秒で定格操作点の 18 ボルトに達します。初期の過渡状態には強い振動があり、既存のコントローラーを再調整しなければならないことを示しています。

0.04 秒で自動調整プロセスが開始します。周波数応答のオンライン推定が収束するまでに要する秒数は、およそ 200/帯域幅なので、実験は 0.02 秒間続きます。

定格操作点が異なる場合、昇圧コンバーターが基準電圧に到達するまでに要する時間が長くなる可能性があります。自動調整プロセスが常に定格操作点から開始するように、start/stop 時間信号を変更しなければなりません。

PID 調整が 0.06 秒で停止すると、ブロックは新しいゲイン P = 0.04、I = 100、D = 0.00006、N = 30000 を計算します。新しいゲインがデータ ストア メモリに直ちに書き込まれ、PID Controller ブロックの外部ゲイン入力端子に送られて元のゲインが上書きされます。

モデルには回線の外乱 (5V から 10V への Vin) と負荷電流の外乱 (6A から 3A への Load) があります。これは、0.07 秒と 0.08 秒にそれぞれ発生します。これらの外乱を使用してコントローラーの性能を調べることができます。

PRBS 実験モードの使用

このブロックでは、従来からある正弦波摂動信号に加え、周波数応答推定実験で 2 値疑似乱数列 (PRBS) 信号を使用するオプションも用意されています。

実験モードとして PRBS を使用するには、信号振幅を元の 0.03 からより小さい 0.022 に調整します。[実験] タブの [説明] セクションに示されているように、自動調整プロセスが 0.04 秒に開始し、実験は 0.021 秒間行われています。

他の調整設定は変更せず、モデルを実行します。新しい PID ゲインは P = 0.054、I = 111.1、D = 0.00007、および N = 30000 です。PID の調整が 0.061 秒で停止すると、モデルは PID Controller ブロックで新しいゲインを更新します。

新しい PID ゲインのセットでは、閉ループ応答が改善されて振動が大幅に少なくなっています。調整された PID ゲインが [重ね合わせ] 実験モードおよび [PRBS] 実験モードを使用した場合と似ているため、応答も同じになっています。

スタンドアロン アプリケーションでの自動調整器ブロックの使用

PID コントローラーをスタンドアロンのリアルタイム アプリケーション内で物理昇圧コンバーターに対して調整するには、Closed-Loop PID Autotuner ブロックから C/C++ コードを生成してハードウェアに展開しなければなりません。

実行時に次の調整可能パラメーターを変更できます。

  • PID コントローラーのタイプ

  • PID コントローラーの形式

  • PID 積分器とフィルターの手法 (離散時間のみ)

  • ターゲットの帯域幅

  • ターゲットの位相余裕

  • プラント タイプ

  • プラントの符号

  • 信号の振幅

Closed-Loop PID Autotuner ブロックのサンプル時間は調整可能なパラメーターではありません。モデルを再コンパイルすることなく、自動調整器ブロックを異なるサンプル時間で使用するには、ブロックの [コントローラーのサンプル時間] パラメーターを -1 に設定し、自動調整器ブロックを Triggered Subsystem 内に配置します。そうすることで、Triggered Subsystem のサンプル時間で自動調整器が実行されます。

close_system(mdl,0)

参考文献

[1] Lee, S. W."Practical Feedback Loop Analysis for Voltage-Mode Boost Converter."Application Report No. SLVA633. Texas Instruments.January 2014. www.ti.com/lit/an/slva633/slva633.pdf

参考

関連するトピック