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:
----------
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
----------
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]);
入力引数
Simulink モデル名。文字ベクトルまたは string として指定します。
配列の次元。次のいずれかとして指定します。
整数 —
dimの操作点の仕様オブジェクトの列ベクトルを作成します。整数の行ベクトル —
dimで指定された次元をもつ、操作点の仕様オブジェクトの配列を作成します。たとえば、4 行 5 列の操作点の仕様オブジェクトの配列を作成するには、次を使用します。
opspec = operspec(mdl,[4,5]);
操作点の仕様オブジェクトの多次元配列を作成するには、追加の次元を指定します。たとえば、2 x 3 x 4 の配列を作成するには次を使用します。
opspec = operspec(mdl,[2,3,4]);
出力引数
操作点の仕様。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 より前に導入操作点の仕様の入力と出力の 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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)