Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

operpoint

Simulink モデルの操作点を作成

説明

op = operpoint(mdl) は Simulink® モデル mdl の操作点を返します。この操作点で関数 linearize を使用して、システムの線形モデルを計算できます。

すべて折りたたむ

Simulink モデルを開きます。

open_system('magball')

モデルに操作点を作成します。

op = operpoint('magball')
 Operating point for the Model magball.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) magball/Controller/PID Controller/Filter/Cont. Filter/Filter
      x: 0            
(2.) magball/Controller/PID Controller/Integrator/Continuous/Integrator
      x: 14           
(3.) magball/Magnetic Ball Plant/Current
      x: 7            
(4.) magball/Magnetic Ball Plant/dhdt
      x: 0            
(5.) magball/Magnetic Ball Plant/height
      x: 0.05         

Inputs: None 
----------

op は、モデル内で状態をもつ各ブロックをリストします。このモデルにはルートレベルの入力端子がないため、op には入力が含まれません。

新しい operating-point 変数は次の 3 つの方法で作成することができます。

  • 関数 operpoint を使用する

  • 等号 (=) 演算子による割り当てを使用する

  • 関数copyを使用する

= 演算子を使用すると変数がリンク付けられ、どちらの変数も基となる同じデータを指しています。関数 copy を使用すると、結果として独立した操作点オブジェクトが作成されます。この例では操作点オブジェクトを両方の方法で作成し、それらの動作を検証します。

mdl = 'watertank';
open_system(mdl);
op1 = operpoint(mdl)
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 0            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

= 演算子による割り当てを使用して、新しい操作点オブジェクトを作成します。

op2 = op1;

op2 は、op1 と同じ基となるデータを指す操作点オブジェクトです。このリンクのために、2 つの操作点オブジェクトのプロパティを独立して変更することはできません。これを確認するには、op2 のプロパティを変更します。たとえば、最初の状態の値を 0 から 2 に変更します。変更が画面の States セクションに表示されます。

op2.States(1).x = 2
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 2            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

op1 の表示を検証し、op1 の対応するプロパティ値も 0 から 2 に変更されることを確認します。

op1
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 2            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

操作点オブジェクトの独立したコピーを作成するには、copyコマンドを使用します。

op3 = copy(op1);

ここで、op3 のプロパティを変更しても、op1 は変更されません。たとえば、最初の状態の値を 2 から 4 に変更します。

op3.States(1).x = 4
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 4            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

op1 では、対応する値は 2 のままです。

op1.States(1).x
ans = 2

このコピー動作が発生するのは、操作点オブジェクトが "ハンドル オブジェクト" であるためです。ハンドル オブジェクトの詳細については、ハンドル オブジェクトの動作を参照してください。

入力引数

すべて折りたたむ

Simulink モデル名。文字ベクトルまたは string として指定します。モデルは現在の作業フォルダー内または MATLAB® パス上になければなりません。

出力引数

すべて折りたたむ

操作点。次のプロパティをもつ操作点オブジェクトとして返されます。

プロパティ説明
ModelSimulink モデル名。文字ベクトルとして返されます。
States

状態の操作点。状態オブジェクトのベクトルとして返されます。States の各エントリは、1 つの Simulink ブロックのサポートされる状態を表します。

操作点オブジェクトでサポートされる状態のリストについては、操作点オブジェクトに含まれる Simulink モデルの状態を参照してください。

メモ

ブロックに名前付きの連続状態が複数ある場合、States には名前付きの各状態の構造体が 1 つ含まれます。

各状態オブジェクトには次のフィールドがあります。

フィールド説明
Nx (読み取り専用)

ブロック内の状態の数

Block

ブロック パス。文字ベクトルとして返されます。

StateName

状態名

x

サポートされるすべてのブロック状態の値。長さ Nx のベクトルとして返されます。

Ts

サポートされる各ブロック状態のサンプル時間とオフセット。ベクトルとして返されます。連続時間システムの場合、Ts はゼロです。

SampleType

状態の時間速度。次のいずれかとして返されます。

  • 'CSTATE' — 連続時間状態

  • 'DSTATE' ― 離散時間状態

inReferencedModel

ブロックが参照モデル内にあるかどうかを示すフラグ。次のいずれかとして返されます。

  • 1 — ブロックが参照モデル内にあります。

  • 0 — ブロックが現在のモデル ファイルにあります。

Description

ブロックの状態の説明。文字ベクトルとして返されます。

Inputs

操作点での入力レベル。入力オブジェクトのベクトルとして返されます。Inputs の各エントリは、モデル内にある 1 つのルートレベル Inport ブロックの入力レベルを表します。

各入力オブジェクトには次のフィールドがあります。

フィールド説明
Block

Inport ブロック名

PortWidth

Inport ブロック信号の数

PortDimensions

Inport で受け入れる信号の次元

u

操作点の Inport ブロックの入力レベル。長さ PortWidth のベクトルとして返されます。

Description

Inport ブロックの入力の説明。文字ベクトルとして返されます。

Time

モデル内の任意の時変関数が評価される時間。ベクトルとして返されます。

Version

オブジェクトのバージョン番号

ヒント

  • 新しい operpoint 変数は次の 3 つの方法で作成することができます。

    • operpoint コマンドを使用して新しいオブジェクトを作成する。

    • 等号 (=) 演算子を使用した割り当てによって、新しい変数を作成する。

    • copy コマンドを使用して operpoint オブジェクトをコピーする。

    operpoint または copy を使用すると、新しい独立したオブジェクトが作成されます。割り当てを使用する場合、古い変数と新しい変数の間にリンクが存在します。例については、操作点のコピーを参照してください。

代替機能

関数 operpoint は、現在の状態とモデルの入力値を使用して操作点を返します。アプリケーションの仕様に合致する操作点を作成するには、関数 findop を使用します。詳細については、定常状態の操作点の計算を参照してください。

R2006a より前に導入