Main Content

カスタムのマスク サブシステムの調整

この例では、制御システム デザイナーでカスタムのマスク サブシステムを有効にする方法を説明します。一度設定しておくと、Simulink® Control Design™ でサポートされる他のすべてのブロックと同じ方法でカスタムのマスク サブシステムを調整できます。詳細については、調整可能なブロックを参照してください。

Lead-Lag Library ブロック

この例では、scdexblks ライブラリの Lead-Lag Controller ブロックを調整します。

open_system('scdexblks')

このブロックは、単一の零点、極およびゲインをもつ補償器を実装します。コントローラーを構成するために、次のブロック パラメーターを指定できます。

  • Gain (K)

  • Zero Frequency (Wz)

  • Pole Frequency (Wp)

Lead-Lag Controller ブロックが実装する伝達関数は次のとおりです。

G(s)=KsWz+1sWp+1

制御システム デザイナー用のサブシステムの構成

マスク サブシステムを制御システム デザイナーでの調整用に構成するには、コンフィギュレーション関数を指定します。この例では、ブロックで scdleadexample.m のコンフィギュレーション関数を使用します。このファイルを開くには、MATLAB® コマンド ラインで edit scdleadexample と入力します。

この関数は、次のフィールドをもつ構造体を返します。

  • TunableParameters — 調整可能なパラメーター (ゲイン、零点、極) ごとに 1 つの要素をもつ構造体配列

  • EvalFcn — ブロック パラメーターを零点-極-ゲインの形式に変換する関数のハンドル

  • InvFcn — 与えられた零点-極-ゲインの値でブロック パラメーターを計算する関数のハンドル

  • Constraints — 極と零点の数などのブロックの制約を指定する構造体

  • Inport — コントローラーの入力の端子番号

  • Outport — コントローラーの出力の端子番号

コンフィギュレーション関数 scdleadexample は、コントローラー ブロックに対して次の制約を指定します。

  • 1 つの極のみが許可される (MaxPoles 制約)

  • 1 つの零点のみが許可される (MaxZeros 制約)

  • ゲインが調整可能である (isStaticGainTunable 制約)

コンフィギュレーション関数を使用するには、ブロックに対してコールバック関数 SCDConfigfcn として指定します。これを行うには、Lead-Lag Controller ブロックを右クリックして [プロパティ] を選択します。[ブロック プロパティ] ダイアログ ボックスの [コールバック] タブで、SCDConfigFcnscdleadexample に設定します。

あるいは、関数 set_param を使用して SCDConfigFcn を設定することもできます。

set_param(blockpath,'SCDConfigFcn','scdleadexample')

ブロックのコンフィギュレーション関数を設定すると、制御システム デザイナーを使用してコントローラーを調整できるようになります。

速度制御システム

scdspeedctrlleadlag モデルは、Lead-Lag Controller ブロックを使用して単ループのフィードバック/プレフィルターの補償器設計のフィードバック ループを調整します。

open_system('scdspeedctrlleadlag')

制御システム デザイナーを開くには、Simulink モデル ウィンドウの [アプリ] タブにある [アプリ] ギャラリーで [制御システム デザイナー] をクリックします。

[アーキテクチャの編集] ダイアログ ボックスの [ブロック] タブで、[ブロックの追加] をクリックします。その後、[調整ブロックを選択] ダイアログ ボックスで [Feedback Controller] をクリックして、Lead-Lag Controller を選択します。

[OK] をクリックします。

[アーキテクチャの編集] ダイアログ ボックスの [信号] タブで、Simulink モデルで定義されている解析ポイントが [位置] として自動的に追加されます。

[線形化オプション] タブの [操作点] ドロップダウン リストで、Model Initial Condition を選択します。

[OK] をクリックします。

コントローラーの調整中にステップ応答が表示される新しいプロットを作成します。制御システム デザイナーで、[新規プロット]、[新規ステップ] を選択します。

[新規ステップ] ダイアログ ボックスで、[プロットする応答の選択] ドロップダウン メニューから [新規の入出力伝達の応答] を選択します。次の図に示すように応答を構成します。

応答を表示するには [プロット] をクリックします。

補償器の調整

制御システム デザイナーアプリには、制御システムを調整する 4 つの方法が用意されています。

  • 開/閉ループ ボード線図、根軌跡またはニコルス線図の各エディター プロットを使用して、補償器の極、零点、ゲインをグラフィカルに調整する。[調整法] をクリックし、[グラフィカルな調整] の下でエディターを選択します。

  • 時間領域と周波数領域の両方の設計要件を使用して補償器のパラメーターを最適化する (Simulink Design Optimization™ ソフトウェアが必要)。[調整法] をクリックし、[最適化ベースの調整] を選択します。詳細については、Enforcing Time and Frequency Requirements on a Single-Loop Controller Design (Simulink Design Optimization)を参照してください。

  • 閉ループ時定数などのパラメーターに基づく自動調整を使用して、初期の補償器パラメーターを計算する。[調整法] をクリックし、[PID 調整][IMC 調整][ループ整形] (Robust Control Toolbox™ ソフトウェアが必要)、[LQG 設計] のいずれかを選択します。

設計の完了

単ループのフィードバック/プレフィルターの補償器設計の参照ステップ応答の設計要件は、Lead-Lag Controller ブロックの次のパラメーターを使用して満たすことができます。

  • Gain = 0.0075426

  • Zero Frequency (rad/s) = 2

  • Pole Frequency (rad/s) = 103.59

次の図は、これらのコントローラー パラメーターに対する閉ループ システムの応答を示しています。

Simulink モデルの更新

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

bdclose('scdexblks')
bdclose('scdspeedctrlleadlag')

参考

関連するトピック