最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

補償器エディターを使用した Simulink ブロックの調整

この例では、制御システム デザイナーの [補償器エディター] ダイアログを使用して Simulink® ブロックを調整する方法を示します。

モデルを開く

この例では火花点火エンジンの速度制御システムのモデルを使用します。当初の補償器は、単ループのフィードバック/プレフィルターの補償器設計に示されるメソッドと似た方法で設計されています。

エンジン速度の制御モデルを開いて参照します。

open_system('scdspeedctrl')

はじめに

この例では、補償器エディターを使用して Simulink ブロックを調整します。Simulink で制御システム デザイナーを用いてブロックを調整する場合、ブロック パラメーターを直接調整するか、ブロックの零点-極-ゲイン表現を調整することができます。たとえば、スピード制御の例には、不完全微分を使用した PID コントローラー scdspeedctrl/PID Controller があります。

このブロックは、不完全微分を使用した従来の PID を次のように実現します。

$$G(s) = P + {I \over s} + {D s \over Ns+1}$$

このブロックでは、PIDN は調整に使用できるパラメーターです。もう 1 つの方法は、ブロックの伝達関数を再定式化して、零点-極-ゲイン形式を使用することです。

$$G(s) = {Ps(Ns+1) + I(Ns+1) + D s^s \over s(Ns+1)} = {K(s^2+2 \zeta \omega_n+w_n^2) \over s(s + z)}$$

この極、零点、およびゲインの定式化では、ボード線図、根軌跡、ニコルス線図などの設計プロットでグラフィカルな調整を直接行うことができます。また、制御システム デザイナーでは、どちらの表現も補償器エディターを使用して調整できます。どちらの表現も、Simulink Control Design™ でサポートされているすべてのブロックに対して調整できます。詳細については、調整可能なブロックを参照してください。

制御システム デザイナーを開く

この例では、このフィードバック システムの補償器を調整するため、モデルの左下隅にあるサブシステムをダブルクリックして、事前に構成されている制御システム デザイナー セッションを開きます。

[補償器エディター] ダイアログ ボックス

[補償器エディター] ダイアログ ボックスを使って PID 補償器の表現を表示できます。補償器エディターを開くには、[データ ブラウザー][コントローラーと固定ブロック] セクションで scdspeedctrl_PID_Controller をダブルクリックします。[補償器エディター] ダイアログ ボックスの [補償器] セクションで、システム内の任意の補償器を表示し、編集することができます。

[極/零点] タブでは、補償器の極と零点を追加し、削除し、編集することができます。不完全微分を使用した PID は構造が固定されているため、最大で零点が 2 つ、極が 1 つ、s = 0 に積分器が 1 つとなるよう、極と零点の数が制限されます。

[パラメーター] タブでは PIDN の各パラメーターを個別に調整できます。

[値] 列に新しいパラメーター値を入力します。パラメーターを対話形式で調整するにはスライダーを使用します。スライダーの範囲を変更するには、[最小値] 列と [最大値] 列を使用します。

パラメーター値を変更すると、それに関連するすべてのエディターおよび解析プロットが自動的に更新されます。

設計の完了

単ループのフィードバック/プレフィルターの補償器設計の設計要件は、次のコントローラー パラメーターを使用して満たすことができます。

  • scdspeedctrl/PID Controller:

         P = 0.0012191
         I = 0.0030038
  • scdspeedctrl/Reference Filter:

         Numerator = 10
         Denominator = [1 10]

[補償器エディター] ダイアログ ボックスで、これらのパラメーターを指定します。次に、制御システム デザイナーで、閉ループ応答を表示します。

Simulink モデルの更新

補償器のパラメーターを Simulink モデルに書き込むには、[ブロックの更新] をクリックします。その後、非線形モデルで設計をテストできます。

bdclose('scdspeedctrl')

参考

関連するトピック