コマンド ラインを使用したモデルの一部の線形化の指定
線形化の対象として Simulink® モデルの一部を指定する場合、コマンド ラインで関数 linio
、setlinio
および getlinio
を使用して線形解析ポイントを定義できます。解析ポイントは、モデルの線形化の入力、出力およびループ開始点を表します。この方法を使用すると、モデルを変更せずに複数の解析ポイント セットを指定できます。
あるいは、次の方法で解析ポイントを定義することもできます。
モデル線形化器を使用する。詳細については、モデル線形化器でモデルの一部を線形化する指定を参照してください。
Simulink モデルに直接定義する。モデルに解析ポイントを保存する場合はこの方法を使用します。詳細については、Simulink モデルでモデルの一部を線形化する指定を参照してください。
解析ポイントの指定
コマンド ラインで解析ポイントを指定するには、関数 linio
を使用して線形化 I/O オブジェクトを作成します。モデル内のブロックの出力端子に解析ポイントを作成するには、次の構文を使用します。
io = linio(block,port,type);
ここで、
block
はブロックの絶対パスで、文字ベクトルとして指定します。port
は出力端子番号です。type
は解析ポイントのタイプで、次のいずれかとして指定します。'input'
— 入力の摂動'output'
— 出力の測定値'loopbreak'
— ループの中断'openinput'
— 開ループの入力'openoutput'
— 開ループの出力'looptransfer'
— ループ伝達'sensitivity'
— 感度'compsensitivity'
— 相補感度
解析ポイントのタイプの詳細については、モデルの一部を線形化するよう指定を参照してください。
解析ポイントを作成した後、ドット表記を使ってそのタイプを変更できます。たとえば、解析ポイントを開ループ出力に変更するには、次を使用します。
io.Type = 'openoutput';
モデル内のバス要素に解析ポイントを指定することもできます。例については、linio
を参照してください。
複数の解析ポイントを指定するには、線形化 I/O オブジェクトのベクトルを作成します。たとえば、入力の摂動、出力の測定、ループ開始点を 1 つずつ含む解析ポイントのセットを作成します。
io(1) = linio(block1,port1,'input'); io(2) = linio(block2,port2,'output'); io(3) = linio(block3,port3,'loopbreak');
指定した解析ポイントを使ってモデルを線形化するには、関数 linearize
を使用します。
Simulink モデルでの解析ポイントの保存
関数 setlinio
を使用して、指定した解析ポイントを Simulink モデルに保存できます。
setlinio(mdl,io);
ここで、mdl
は現在の作業フォルダー内または MATLAB® パス上にあるモデルの名前を指定する文字ベクトル、io
は線形化 I/O オブジェクトのベクトルです。
io
の解析ポイントは、モデルに保存されている解析ポイントをすべて上書きします。
あるいは、解析ポイントをモデル内に直接指定することもできます。詳細については、Simulink モデルでモデルの一部を線形化する指定を参照してください。
Simulink モデルからの解析ポイントの取得
モデルに保存した解析ポイントを使用して関数 linearize
でモデルを線形化するには、まず関数 getlinio
を使用して解析ポイントを抽出しなければなりません。
io = getlinio(mdl);
ここで、mdl
は現在の作業フォルダー内または MATLAB パス上にあるモデルの名前を指定する文字ベクトルです。
参考
linearize
| linio
| getlinio
| setlinio