メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Change Operating Points

シミュレーション中に操作点を切り替える

R2023b 以降

  • Change Operating Points block

ライブラリ:
Simulink Control Design / Autotuning

説明

Change Operating Points ブロックを使用すると、シミュレーション中に操作点を管理および切り替えることができます。次のいずれかの構成でブロックを使用できます。

  • ワークスペースから事前定義された操作データをインポートし、シミュレーション中に操作範囲を切り替える。

  • シミュレーション中に指定した時間またはイベントで自動的にスナップショットを作成し、指定した範囲の操作点データを取得する。たとえば、モーター モデルの場合、次のスナップショットを作成できます。

    • 3 秒、5 秒、および 7 秒 (時間ベース)。

    • 2000 rpm、5000 rpm、8000 rpm (イベントベース)。

事前定義された操作点データがある場合は、ゲイン スケジュール コントローラーの調整ワークフローでこのブロックを使用できます。このブロックは、プラントをある操作点から別の操作点に移動する基準信号を生成するのに役立ちます。それ以外の場合は、まず操作点のスナップショットを作成してから、ゲイン スケジューリング ワークフローでデータを使用します。

通常、ゲイン スケジュール コントローラーの調整は複雑なプロセスです。各操作点での調整のために複数のシミュレーションを実行し、その操作点での PID ゲインを保存するロジックを用意する必要があります。このブロックを PID Gains Store and Update ブロックおよび PID Gain Scheduler ブロックと一緒に使用すると、1 回の実行で操作範囲にわたってゲイン スケジュール PID コントローラーを自動調整するための合理化されたワークフローを実装できます。そのために、次のワークフローを使用します。

  1. Change Operating Points ブロックを使用して、事前定義された操作点データまたはスナップショット操作点データをシミュレーション中に切り替えます。

  2. Closed-Loop PID Autotuner を使用して操作点での自動調整を実行します。

  3. PID Gains Store and Update ブロックを使用して、操作点に対応する PID ゲインを配列に保存します。

  4. PID Gain Scheduler ブロックを使用して、配列からルックアップ テーブル ベースのゲイン スケジューリングを実行します。

概要として、次のブロック線図に示すように、これらのブロックを使用してゲイン スケジュール ワークフローを実装できます。

Diagram of a gain-scheduled system, with Closed-Loop PID Autotuner, PID Controller, Change Operating Points, Gain Scheduler, and PID Gains Store and Update blocks.

端子

入力

すべて展開する

操作点における入力レベルの値を指定します。

ブロックがスナップショット モードで動作している場合、ブロックはこの入力を systeminputs_out 端子に直接渡します。

ブロック アクションを有効 (1) または無効 (0) にする信号を指定します。

自動調整を開始する時間ベクトルを指定します。このベクトルの各インデックスの値は、そのインデックスにおける操作点の自動調整開始時間です。実験の期間を指定するには、[自動調整の時間範囲 (秒)] パラメーターを使用します。

依存関係

この端子を有効にするには、次の構成を使用します。

  • [操作モード][操作点のインポート] に設定します。

  • [自動調整用のブロックを使用] を選択します。

  • [自動調整の開始方法][外部時間ベクトル] に設定します。

次の操作点に切り替えるためのカスタム ロジックを指定します。

依存関係

この端子を有効にするには、次の構成を使用します。

  • [操作モード][操作点のインポート] に設定します。

  • [遷移方法][外部トリガー] に設定します。

プラントの出力をこの端子に接続します。ブロックはこの信号を使用してシステムの現在の操作状態を判別します。

依存関係

この端子を有効にするには、次の構成を使用します。

  • [操作モード][操作点のインポート] に設定します。

  • [自動調整用のブロックを使用] を選択します。

  • [自動調整の開始方法][定常状態に達した後の時間] に設定します。

この端子を使用して、スカラー フラグを手動で指定し、自動調整プロセスを有効 (1) または無効 (0) にします。

依存関係

この端子を有効にするには、次の構成を使用します。

  • [操作モード][操作点のインポート] に設定します。

  • [自動調整用のブロックを使用][自動調整用のイネーブル/ディセーブル端子を追加] を選択します。

モデルの操作点を抽出する時間ベースまたはイベントベースのスナップショット トリガーを指定します。

[スナップショット モード][時間ベース] の場合、操作点データのスナップショットを作成する時間値を指定します。たとえば、3 秒、5 秒、および 7 秒でスナップショットを作成するには、この端子への入力としてベクトル [3,5,7] を使用します。

[スナップショット モード][イベントベース] の場合、ブロックは入力信号の立ち上がりエッジで操作点データのスナップショットを作成します。

依存関係

この端子を有効にするには、[操作モード][操作点のスナップショット] に設定し、次のいずれかの構成を使用します。

  • [スナップショット モード][時間ベース] に設定し、[外部ソースの使用] を選択します。

  • [スナップショット モード][イベントベース] に設定します。

出力

すべて展開する

システムを切り替えられた操作点に移動するための基準信号。

Closed-Loop PID Autotuner ブロックを使用して自動調整プロセスを開始および停止する信号。生成される信号は、自動調整方法や定常状態設定などの追加パラメーターによって異なります。

依存関係

この端子を有効にするには、[操作モード][操作点のインポート] に設定し、[自動調整用のブロックを使用] を選択します。

パラメーター

すべて展開する

[操作点をインポート] タブ

操作点データを取得するためのモードを指定します。

  • 操作点のインポート — ブロック ダイアログ ボックスでテーブルを手動で編集するか、OperatingPoint オブジェクトをインポートして、事前定義の操作点データを指定します。

    このモードでは、ブロックを使用して、操作範囲にわたってゲイン スケジュール PID コントローラーを自動調整するための合理化されたワークフローを実装できます。

  • 操作点のスナップショット — シミュレーション中に、指定した時間またはイベントで操作点のスナップショットを作成します。

プログラムでの使用

ブロック パラメーター: OperatingMode
型: string
値: "Import operating points" | "Snapshot operating points"
既定: "Import operating points"

操作点データの入力方法を指定します。

  • テーブルの手動編集 — ブロック ダイアログで操作点データを手動で指定します。

  • テーブルの自動入力OperatingPoint オブジェクトを使用して操作点データをインポートします。通常、操作点は、operpointfindop などの関数、または定常状態マネージャー アプリやモデル線形化器アプリを使用して取得します。このブロックのスナップショット モードを使用して取得された操作点データをインポートすることもできます。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定します。

プログラムでの使用

ブロック パラメーター: InputMethod
型: string
値: "Manually edit table" | "Automatically fill table"
既定: "Manually Edit Table"

モデル内の入力の数を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[入力方法][テーブルの手動編集] に設定します。

プログラムでの使用

ブロック パラメーター: NumSystemInputs
型: string
値: 引用符で囲んだ正のスカラー
既定: "3"

操作点データのインポート元にするワークスペースを指定します。指定したワークスペースには、[操作点変数] の値と同じ名前の OperatingPoint オブジェクトが含まれている必要があります。

  • ベース ワークスペース — ベース MATLAB® ワークスペースからデータをインポートします。

  • モデル ワークスペース — 現在のモデル ワークスペースからデータをインポートします。

  • データ ディクショナリ — Simulink® データ ディクショナリからデータをインポートします。

さらに、スナップショット モードでブロックによって生成された操作点データをインポートするには、[ワークスペースに保存] ボタンをクリックし、操作点の構造体の名前を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[入力方法][テーブルの自動入力] に設定します。

プログラムでの使用

ブロック パラメーター: ImportWorkspace
型: string
値: "Data dictionary" | "Base workspace" | "Model workspace"
既定: "Data dictionary"

操作点データを読み取るデータ ディクショナリの名前を指定します。OperatingPoint オブジェクトはディクショナリの Other Data セクションに格納する必要があります。詳細については、データ ディクショナリとはを参照してください。

依存関係

このパラメーターを有効にするには、次のパラメーターを設定します。

  • [操作モード][操作点のインポート] に設定します。

  • [入力方法][テーブルの自動入力] に設定します。

  • [ワークスペース][データ ディクショナリ] に設定します。

プログラムでの使用

ブロック パラメーター: DataDictionaryName
型: string
既定: "myDataDictionary.sldd"

操作点変数の名前を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[入力方法][テーブルの自動入力] に設定します。

プログラムでの使用

ブロック パラメーター: OperatingPointVariable
型: string
既定: "myOperatingPoint"

操作点データを取得するためのスナップショット モードを指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のスナップショット] に設定します。

プログラムでの使用

ブロック パラメーター: SnapshotMode
型: string
値: "Time-based" | "Event-based"
既定: "Time-based"

モデルの操作点を抽出するシミュレーション スナップショット時間を指定します。単一のスナップショットの場合はスカラーを使用し、複数のスナップショットの場合はベクトルを使用します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のスナップショット] に設定し、[スナップショット モード][時間ベース] に設定します。

プログラムでの使用

ブロック パラメーター: SnapshotTimes
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "[1 2 3]"

シミュレーションのスナップショット時間をブロック入力として指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のスナップショット] に設定し、[スナップショット モード][時間ベース] に設定します。

プログラムでの使用

ブロック パラメーター: SnapshotTimesExternalSource
型: string
値: "off" | "on"
既定: "off"

サンプル時間を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のスナップショット] に設定し、[スナップショット モード][時間ベース] に設定します。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string
値: 引用符で囲んだ正のスカラー | "–1"
既定: "–1"

操作点データ。複数のテーブル エントリとして指定します。

[入力方法][テーブルの手動編集] の場合、テーブルの [値] 列を使用して、操作点のインデックス、スナップショット時間、および入力レベルに対応するデータを手動で指定します。

[入力方法][テーブルの自動入力] の場合、[値] には、インポートされた操作点に基づいた操作点の値が表示されます。

スナップショット モードでデータを取得した後にテーブルのエントリを取り込むには、[テーブルに保存] をクリックします。

依存関係

このテーブルの [値] 列の手動データ入力を有効にするには、[操作モード][操作点のインポート] に設定し、[入力方法][テーブルの手動編集] に設定します。

プログラムでの使用

ブロック パラメーター: OperatingPointTable
型: string
値: 引用符で囲んだ cell 配列
既定: "{'Indicies','[1 2 3]';'Times (sec)','[0 1 2]';'SystemInput_1','[1 1 1]';'SystemInput_2','[2 2 2]';'SystemInput_3','[3 3 3]'}"

ブロックによって作成された Simulink.Bus オブジェクトの名前を指定します。

プログラムでの使用

ブロック パラメーター: BusName
型: string
値: string
既定: "scdPlantOPsBusObject"

オブジェクトのバス名を手動で指定します。

プログラムでの使用

ブロック パラメーター: SpecifyBusName
型: string
値: "off" | "on"
既定: "off"

シミュレーション環境またはハードウェア要件に基づいて浮動小数点精度を指定します。

プログラムでの使用

ブロック パラメーター: BlockDataType
型: string
値: "Double" | "Single"
既定: "Double"

[操作点設定の変更] タブ

ゲイン スケジュール PID 自動調整ワークフロー用のブロックを使用します。このオプションを有効にすると、ブロックは [start_stop] 出力端子で信号を生成します。[start_stop] 信号を使用して、Closed-Loop PID Autotuner ブロックでの自動調整プロセスを開始および停止します。生成される信号は、自動調整方法や定常状態設定などの追加パラメーターによって異なります。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定します。

プログラムでの使用

ブロック パラメーター: UseAutotuning
型: string
値: "off" | "on"
既定: "on"

PID 自動調整を開始する方法を指定します。

  • 外部時間ベクトル[autotuning times] 入力端子を使用して時間ベクトルを指定します。このベクトルの各インデックスの値は、そのインデックスにおける操作点の自動調整開始時間です。実験の期間を指定するには、[自動調整の時間範囲 (秒)] パラメーターを使用します。

  • 定常状態に達した後の時間 — モデル出力が定常状態に達したときに自動調整を開始します。[整定時間の上限][整定時間の下限]、および [整定時間間隔] パラメーターを使用して、各操作点の定常状態の基準を定義します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[自動調整用のブロックを使用] を選択します。

プログラムでの使用

ブロック パラメーター: AutotuningTriggerMethod
型: string
値: "External time vector" | "Time after reaching steady-state"
既定: "External time vector"

[enable autotuning] 入力端子をブロックに追加します。この端子を使用して、スカラー フラグを手動で指定し、自動調整プロセスを有効 (1) または無効 (0) にします。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[自動調整用のブロックを使用] を選択します。

プログラムでの使用

ブロック パラメーター: AddEnableDisableAutotuning
型: string
値: "off" | "on"
既定: "on"

自動調整実験の期間を指定します。プラントの周波数応答の良好な推定を得るのに十分なデータをアルゴリズムで収集できるように、実験を十分長く実行する必要があります。実験の実行時間が不十分な場合、不正確な結果になる可能性があります。詳細については、Closed-Loop PID Autotuner ブロックの [start/stop] 入力端子を参照してください。

  • すべての操作点に対して同じ期間で自動調整実験を実行するには、正のスカラー値を指定します。

  • 操作点ごとに異なる期間で実験を実行するには、正の値のベクトルを指定します。各期間値は、ベクトルのそのインデックスにおける操作点に対応します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[自動調整用のブロックを使用] を選択します。

プログラムでの使用

ブロック パラメーター: AutotuningExperimentLength
型: string
値: 引用符で囲んだ正のスカラーまたはベクトル
既定: "10"

モデルが定常状態に達した後、ブロックが自動調整プロセスの開始を遅延させるサンプル数を指定します。

依存関係

このパラメーターを有効にするには、次の構成を使用します。

  • [操作モード][操作点のインポート] に設定します。

  • [自動調整用のブロックを使用] を選択します。

  • [自動調整の開始方法][定常状態に達した後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: NumAutotuningDelaySamples
型: string
値: 引用符で囲んだ正のスカラー
既定: "2"

操作点の遷移方法を指定します。

  • 内部時間ベクトル (操作点テーブルから) — 操作点データの時間ベクトルの値に基づいて操作点を変更します。

  • 定常状態に達した後の時間 — モデル出力が当該操作点に対して定義された定常状態条件に達した後に操作点を変更します。

  • 自動調整完了後の時間 — 当該操作点の自動調整時間範囲が経過した後に操作点を変更します。

  • 外部トリガー[next OP] ブロック入力端子で指定されたカスタム ロジックに基づいて操作点を変更します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定します。

プログラムでの使用

ブロック パラメーター: TransitionMethod
型: string
値: "Internal time vector (from operating point table)" | "Time after reaching steady-state" | "Time after completing autotuning" | "External trigger"
既定: "Internal time vector (from operating point table)"

ある操作点から別の操作点に遷移するためのアルゴリズムを指定します。

  • ステップ — 2 つの操作レベル間をステップ移動するためにステップ信号を使用します。

  • ランプ — 単調増加または単調減少する信号として 2 つの操作レベル間を移動するためにランプ信号を使用します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定します。

プログラムでの使用

ブロック パラメーター: ChangeOPAlgorithm
型: string
値: "Step" | "Ramp"
既定: "Step"

入力信号の立ち上がりレートの制限を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[操作点アルゴリズムの変更][ランプ] に設定します。

プログラムでの使用

ブロック パラメーター: RampSlewUpRate
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "1"

入力信号の立ち下りレートの下限を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[操作点アルゴリズムの変更][ランプ] に設定します。

プログラムでの使用

ブロック パラメーター: RampSlewLoRate
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "–1"

モデルが定常状態に達した後、ブロックが次の操作点への遷移を遅延させるサンプル数を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[遷移方法][定常状態に達した後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: NumTransitionDelaySamples
型: string
値: 引用符で囲んだ非負のスカラー
既定: "2"

自動調整実験が完了した後、ブロックが次の操作点への遷移を遅延させるサンプル数を指定します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[遷移方法][自動調整完了後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: NumSamplesAutotuningTranstion
型: string
値: 引用符で囲んだ非負のスカラー
既定: "2"

操作点の整定時間と定常状態を判別するために使用される操作値の上限を指定します。

このベクトルの各値は、そのインデックスにおける操作点値の上限に対応します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[遷移方法][定常状態に達した後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: SettlingTimeUpper
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "[1.1 2.1 3.1]"

操作点の整定時間と定常状態を判別するために使用される操作値の下限を指定します。

このベクトルの各値は、そのインデックスにおける操作点値の下限に対応します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[遷移方法][定常状態に達した後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: SettlingTimeLower
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "[0.9 1.9 2.9]"

操作条件が定常状態を維持する時間間隔を指定します。

操作点ごとに異なる時間間隔を指定するには、ベクトルを使用します。

依存関係

このパラメーターを有効にするには、[操作モード][操作点のインポート] に設定し、[遷移方法][定常状態に達した後の時間] に設定します。

プログラムでの使用

ブロック パラメーター: SettlingTimeInterval
型: string
値: 引用符で囲んだスカラーまたはベクトル
既定: "5"

拡張機能

すべて展開する

バージョン履歴

R2023b で導入