operspec
操作点の仕様
説明
例
操作点の仕様オブジェクトの作成
Simulink モデルを開きます。
sys = 'watertank';
open_system(sys)
モデルに既定の操作点の仕様オブジェクトを作成します。
opspec = operspec(sys)
opspec = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- <strong>x</strong> <strong>Known</strong> <strong>SteadyState</strong> <strong>Min</strong> <strong>Max</strong> <strong>dxMin</strong> <strong>dxMax</strong> <strong>_</strong> <strong>_____</strong> <strong>___________</strong> <strong>____</strong> <strong>___</strong> <strong>_____</strong> <strong>_____</strong> (1.) watertank/PID Controller/Integrator/Continuous/Integrator 0 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
opspec
は、モデル内の 2 つの状態の仕様を含みます。モデルにルート レベルの入力端子や出力端子がないため、opspec
には入力や出力の仕様が含まれません。出力仕様を追加するには、addoutputspec
を使用します。
ドット表記を使用して各状態の操作点の仕様を変更します。たとえば、最初の状態を次のように構成します。
定常状態にする。
下限を
0
にする。平衡化の初期値を
2
にする。
opspec.States(1).SteadyState = 1; opspec.States(1).x = 2; opspec.States(1).Min = 0;
操作点の仕様のコピー
新しい operspec
変数は次の 3 つの方法で作成することができます。
operspec
コマンドを使用する等号 (
=
) 演算子による割り当てを使用するcopy
コマンドを使用する
=
演算子を使用すると変数がリンク付けられ、どちらの変数も基となる同じデータを指しています。copy
コマンドを使用すると、独立した operspec
オブジェクトになります。この例では operspec
オブジェクトを両方の方法で作成し、それらの動作を検証します。
mdl = 'watertank';
open_system(mdl)
opspec1 = operspec(mdl)
opspec1 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 0 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
=
演算子による割り当てを使用して、新しい操作点の仕様オブジェクトを作成します。
opspec2 = opspec1;
opspec2
は、opspec1
と同じ基となるデータを指す operspec
オブジェクトです。このリンクのために、2 つの operspec
オブジェクトのプロパティを独立して変更することはできません。これを確認するには、opspec2
のプロパティを変更します。たとえば、最初の状態の初期値を 0 から 2 に変更します。変更が画面の States
セクションに表示されます。
opspec2.States(1).x = 2
opspec2 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 2 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
opspec1
の表示を検証し、opspec1
の対応するプロパティ値も 0 から 2 に変更されることを確認します。
opspec1
opspec1 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 2 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
操作点の仕様の独立したコピーを作成するには、copy
コマンドを使用します。
opspec3 = copy(opspec1);
ここで、opspec3
のプロパティを変更しても、opspec1
は変更されません。たとえば、最初の状態の初期値を 2 から 4 に変更します。
opspec3.States(1).x = 4
opspec3 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 4 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
opspec1
では、対応する値は 2 のままです。
opspec1.States(1).x
ans = 2
このコピー動作が発生するのは、operspec
が "ハンドル オブジェクト" であるためです。ハンドル オブジェクトの詳細については、ハンドル オブジェクトの動作を参照してください。
操作点の仕様オブジェクトの配列の作成
Simulink モデルを開きます。
sys = 'watertank';
open_system(sys)
操作点の仕様オブジェクトの 2 行 3 列の配列を作成します。このような配列を使用すると、複数の操作点でモデルをバッチ平衡化することができます。
opspec = operspec(sys,[2,3]);
opspec
の各要素には、モデルの既定の操作点の仕様オブジェクトが含まれます。
ドット表記を使用して操作点の仕様オブジェクトを変更します。たとえば、1
行目の 3
列目にある仕様オブジェクトの 2 番目の状態を構成します。
opspec(1,3).States(2).SteadyState = 1; opspec(1,3).States(1).x = 2;
操作点の仕様オブジェクトの多次元配列を作成することもできます。たとえば、3 x 4 x 5 の配列を作成します。
opspec = operspec(sys,[3,4,5]);
入力引数
mdl
— Simulink モデル
文字ベクトル | string
Simulink モデル名。文字ベクトルまたは string として指定します。
dim
— 配列の次元
整数 | 整数の行ベクトル
配列の次元。次のいずれかとして指定します。
整数 —
dim
の操作点の仕様オブジェクトの列ベクトルを作成します。整数の行ベクトル —
dim
で指定された次元をもつ、操作点の仕様オブジェクトの配列を作成します。たとえば、4 行 5 列の操作点の仕様オブジェクトの配列を作成するには、次を使用します。
opspec = operspec(mdl,[4,5]);
操作点の仕様オブジェクトの多次元配列を作成するには、追加の次元を指定します。たとえば、2 x 3 x 4 の配列を作成するには次を使用します。
opspec = operspec(mdl,[2,3,4]);
出力引数
opspec
— 操作点の仕様
OperatingSpec
オブジェクト | OperatingSpec
オブジェクトの配列
操作点の仕様。OperatingSpec
オブジェクト、またはその配列として返されます。
ドット表記を使用して操作点の仕様を変更できます。たとえば、opspec
が単一の OperatingSpec
オブジェクトの場合、opspec.States(1).x
は最初のモデル状態の状態値にアクセスします。opspec
が OperatingSpec
オブジェクトの配列である場合、opspec(2,3).Inputs(1).u
は 2
行目の 3
列目にある仕様で、最初の Inport ブロックの入力レベルにアクセスします。
各 OperatingSpec
オブジェクトには次のプロパティがあります。
プロパティ | 説明 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model | Simulink モデル名。文字ベクトルとして返されます。 | ||||||||||||||||||||||||||||||
States | 状態の操作点仕様。状態仕様オブジェクトのベクトルとして返されます。 操作点オブジェクトでサポートされる状態のリストについては、操作点オブジェクトに含まれる Simulink モデルの状態を参照してください。このオブジェクトのプロパティを、ドット表記または関数 メモ ブロックに名前付きの連続状態が複数ある場合、 各状態仕様オブジェクトには次のフィールドがあります。
| ||||||||||||||||||||||||||||||
Inputs | 操作点での入力レベルの仕様。入力仕様オブジェクトのベクトルとして返されます。 各入力仕様オブジェクトには次のフィールドがあります。
| ||||||||||||||||||||||||||||||
Outputs | 操作点での出力レベルの仕様。出力仕様オブジェクトのベクトルとして返されます。
各出力仕様オブジェクトには次のフィールドがあります。
| ||||||||||||||||||||||||||||||
Time | モデル内の時変関数が評価される時間。ベクトルとして返されます。 | ||||||||||||||||||||||||||||||
CustomObjFcn | 平衡化のための追加のカスタム目的関数を提供する関数。カスタム関数のハンドルか、関数名を含む文字ベクトルまたは string として指定します。カスタム関数は MATLAB® パス上にあるか、現在の作業フォルダー内になければなりません。 カスタムの目的関数はモデルの状態、入力、および出力の代数的な組み合わせとして指定できます。詳細については、カスタムの制約と目的関数を使用した操作点の計算を参照してください。 | ||||||||||||||||||||||||||||||
CustomConstrFcn | 平衡化のための追加のカスタム制約を提供する関数。カスタム関数のハンドルか、関数名を含む文字ベクトルまたは string として指定します。カスタム関数は MATLAB パス上にあるか、現在の作業フォルダー内になければなりません。 カスタムの等式制約と不等式制約は、モデルの状態、入力、および出力の代数的組み合わせとして指定できます。詳細については、カスタムの制約と目的関数を使用した操作点の計算を参照してください。 | ||||||||||||||||||||||||||||||
CustomMappingFcn | モデルの状態、入力、および出力を、 複雑なモデルの場合、カスタムのマッピング関数を使用して、モデルの入力、出力、および状態のサブセットをカスタムの制約および目的関数に渡すことができます。カスタムのマッピングを指定した場合、カスタム制約関数とカスタム目的関数の両方にそのマッピングを使用しなければなりません。詳細については、カスタムの制約と目的関数を使用した操作点の計算を参照してください。 |
ヒント
操作点の仕様オブジェクトのプロパティを表示するには、
get
を使用します。新しい
operspec
変数は次の 3 つの方法で作成することができます。operspec
コマンドを使用して新しいオブジェクトを作成する。等号 (=) 演算子を使用した割り当てによって、新しい変数を作成する。
copy
コマンドを使用してoperspec
オブジェクトをコピーする。
operspec
またはcopy
を使用すると、新しい独立したオブジェクトが作成されます。割り当てを使用する場合、古い変数と新しい変数の間にリンクが存在します。例については、操作点の仕様のコピーを参照してください。
バージョン履歴
R2006a より前に導入R2021b: 操作点の仕様の入力と出力の PortWidth
プロパティは削除予定
操作点の仕様の入力と出力の PortWidth
プロパティは将来のリリースで削除される予定です。代わりに、新しい Nu
プロパティと Ny
プロパティを使用してください。
コードを更新するには、次の表に示すように、PortWidth
のインスタンスを Nu
または Ny
に変更します。
非推奨 | 推奨 |
---|---|
op = operspec('scdplane'); numOut = op.Outputs(1).PortWidth; numIn = op.Inputs(1).PortWidth; | op = operspec('scdplane'); numOut = op.Outputs(1).Ny; numIn = op.Inputs(1).Nu; |
参考
findop
| addoutputspec
| update
| copy
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)