モデル参照内の PID コントローラーの調整
Simulink® では、モデル参照を使用してモデルを別のモデル内に含めることができます (モデル参照の基礎を参照)。PID 調整器または周波数応答ベースの PID 調整器を使用して参照モデル内の PID Controller ブロックを調整する場合、注意を要する制約がいくつかあります。
一般に、PID 調整器または周波数応答ベースの PID 調整器のいずれかを使用して、参照モデル内の PID Controller ブロックを調整できます。どちらの調整器を開く場合でも、線形化と調整 (PID 調整器)、または推定と調整 (周波数応答ベースの PID 調整器) において最上位モデルに使用するモデルを指定するよう求められます。たとえば、モデル model_ref_pid
を考えてみましょう。
open('model_ref_pid');
ブロック Inner Loop
は、調整する対象のコントローラー ブロックを格納する参照モデルです。参照モデルを開きます。
Inner Loop
には PID controller ブロック PID
が含まれます。このブロックを開きます。[調整法の選択] ドロップダウン リストで、[伝達関数ベース (PID 調整器アプリ)]
を選択して [調整] をクリックし、PID 調整器を開きます。開いているどのモデルを線形化および調整の最上位モデルにするかを選択するよう求められます。([周波数応答ベース]
を選択して周波数応答ベースの PID 調整器を開く場合も同様のプロンプトが表示されます)。
最上位モデルに使用できる選択肢には、参照モデル自体に加え、内部の参照モデルが次の条件を満たす、開いているすべてのモデルが含まれます。
厳密に 1 回出現する。
ノーマル シミュレーション モード用に構成されている。
調整ツールでは、モデル参照を含んでいても、開いていないモデルは検出されません。
innerloop
を選択すると、調整器は model_ref_pid
を無視します。代わりに、調整器は、外側のループが存在しないかのように、プラント G_Inner についてのみ PID Controller
ブロックを調整します。
または、model_ref_pid
を最上位モデルとして選択することもできます。こうすると、調整器は内側と外側の両方のループのダイナミクスを考慮するようになり、両方のループを閉じて調整します。この場合、PID コントローラーは効果的なプラント (1+G_Outer*Gain)*G_Inner
を認識します。
目的の最上位モデルを選択して、[OK] をクリックします。[調整法の選択] で選択した調整器が、指定した最上位モデルの調整用に開きます。
参照モデルのインスタンスを複数もつモデル
場合によっては、開いているモデルに参照モデルが複数回出現しても調整を続行できます。次の条件が満たされていれば、参照モデルを最上位モデルとして使用して PID Controller ブロックを調整できます。
モデル参照を含む開いているモデルのみにその複数のインスタンスがある。
それらのインスタンスのうち少なくとも 1 つがノーマル モードである。
この条件が満たされていると、警告が表示されます。この場合、調整器が調整できるのは参照モデルについてのみなので、最上位モデルを指定することはできません。
アクセラレータ モードまたはその他のシミュレーション モードの参照モデル
開いているモデルに参照モデルのノーマル モード インスタンスがない場合、調整は続行できません。この場合はエラーが表示されます。PID Controller ブロックを調整するには、開いているモデルにある参照モデルのいずれかのインスタンスをノーマル シミュレーション モードに変換します。