バッチ線形化用に対象の信号をマークする
slLinearizer
インターフェイスを使用してモデルをバッチ線形化する場合、解析ポイントを使って関心のある信号をマークできます。これにより、getIOTransfer
や getLoopTransfer
などの関数を使用して、そのうちの任意のポイントでシステムの応答を解析できます。
あるいは、モデルをバッチ線形化する方法に応じて次を行うこともできます。
モデル線形化器。モデル線形化器でモデルの一部を線形化する指定で示すように解析ポイントを指定します。
バッチ線形化ツールの選択の詳細については、バッチ線形化の方法の選択を参照してください。
解析ポイント
解析ポイントは、Simulink® モデル内で線形解析に関連する箇所を特定します。各解析ポイントは、Simulink ブロックの出力端子から発生する信号に関連付けられています。たとえば、次のモデルの基準信号 r
および制御信号 u
は、それぞれ setpoint ブロックと C ブロックの出力から生じる解析ポイントです。
各解析ポイントは、以下の目的を 1 つ以上果たすことができます。
入力 — ある解析ポイントに、加法的入力信号がソフトウェアによって与えられます。たとえば、プラント入力における外乱をモデル化するためにこれを行います。
出力 — あるポイントにおける信号の値がソフトウェアによって測定されます。たとえば、プラント出力における外乱の影響を調べるためにこれを行います。
ループ開始点 — あるポイントにおける信号の流れの中断がソフトウェアによって解釈されます。たとえば、プラント入力における開ループ応答を調べるためにこれを行います。
解析ポイントを複数の目的に使用する場合、ソフトウェアは常にこれらの目的を、まず出力測定、次にループ開始点、その次に入力、という特定の順序で適用します。
解析ポイントを使用して、Simulink モデルから開ループおよび閉ループの応答を抽出できます。また、解析ポイントを使って制御システムの調整の要件を指定することもできます。詳細については、制御システムの解析と設計における対象信号のマークを参照してください。
解析ポイントの指定
解析ポイントは Simulink モデル内で明示的にマークするか、slLinearizer
インターフェイスで addPoint
コマンドを使用してプログラムによりマークすることができます。
Simulink モデルでの解析ポイントのマーク
解析ポイントを Simulink モデル内に直接指定するには、まず [線形化] タブを開きます。そのためには、[アプリ] ギャラリーで [線形化マネージャー] をクリックします。
解析ポイントを指定するには、以下を行います。
モデル内で、解析ポイントとして定義する信号をクリックします。
[線形化] タブの [解析ポイントの挿入] ギャラリーで、定義する解析ポイントのタイプを選択します。
解析ポイントを指定すると、ソフトウェアは線形解析ポイント タイプを示す注釈をモデルに追加します。
解析ポイントとして定義するすべての信号に対して、手順 1 と 2 を繰り返します。
以下のタイプの閉ループ解析ポイントから任意に選択できます。これらは特定の slLinearizer
インターフェイス内で等価です。
入力の摂動
出力の測定
感度
相補感度
信号で永続的なループ開始点を導入する場合にも、次の開ループ解析ポイント タイプのいずれかを選択します。
開ループの入力
開ループの出力
ループ伝達
ループの中断
信号を開ループ ポイントとして定義すると、getIOTransfer
などの解析関数は、線形化中に常にその信号でループの中断を適用します。開ループのすべての解析ポイント タイプは、特定の slLinearizer
インターフェイス内で等価です。線形化中にソフトウェアでループ開始点がどのように処理されるかの詳細については、ソフトウェアでループ開始点を処理する方法を参照してください。
モデルに slLinearizer
インターフェイスを作成すると、モデルで定義されている解析ポイントがすべてインターフェイスに自動的に追加されます。解析ポイントの定義方法に応じて次が行われます。
閉ループ タイプの場合、信号は解析ポイントとしてのみ追加されます。
開ループ タイプの場合、信号は解析ポイントと永続的な開始点の両方として追加されます。
解析ポイントをプログラムによりマーク
解析ポイントをプログラムでマークするには、addPoint
コマンドを使用します。たとえば、scdcascade
モデルについて考えてみます。
open_system('scdcascade')
解析ポイントをマークするには、まず slLinearizer
インターフェイスを作成します。
sllin = slLinearizer('scdcascade');
信号を解析ポイントとして追加するには、addPoint
コマンドを使用して信号のソース ブロックおよび端子番号を指定します。
addPoint(sllin,'scdcascade/C1',1);
ソース ブロックの出力端子が 1 つの場合、端子番号を省略できます。
addPoint(sllin,'scdcascade/G2');
便宜上、次を使用して解析ポイントをマークすることもできます。
信号の名前。
addPoint(sllin,'y2');
ソース ブロック パスと端子番号の組み合わせ。
addPoint(sllin,'scdcascade/C1/1')
ソース ブロックの絶対パスの末尾 (確定的な場合)。
addPoint(sllin,'G1/1')
addOpening
コマンドを使用して addPoint
と同じ方法で信号を指定することで、slLinearizer
インターフェイスに永続的な開始点を追加することもできます。線形化中にソフトウェアでループ開始点がどのように処理されるかの詳細については、ソフトウェアでループ開始点を処理する方法を参照してください。
addOpening(sllin,'y1m');
linio
コマンドを使って線形化 I/O オブジェクトを作成する方法で解析ポイントを作成することもできます。
io(1) = linio('scdcascade/C1',1,'input'); io(2) = linio('scdcascade/G1',1,'output'); addPoint(sllin,io);
モデル内に直接解析ポイントを定義する場合と同様に、線形化 I/O オブジェクトの指定方法に応じて次が行われます。
閉ループ タイプの場合、信号は解析ポイントとしてのみ追加されます。
開ループ タイプの場合、信号は解析ポイントと永続的な開始点の両方として追加されます。
解析ポイントの参照
slLinearizer
インターフェイスで解析ポイントをマークすると、次の解析関数を使用して、マークした任意のポイントでの応答を解析できるようになります。
getIOTransfer
— 指定された入出力の伝達関数getLoopTransfer
— 指定されたポイントでの加法的入力から同じポイントでの測定値への開ループ伝達関数getSensitivity
— 指定されたポイントでの感度関数getCompSensitivity
— 指定されたポイントでの相補感度関数
slLinearizer
インターフェイスで使用できる解析ポイントを表示するには、getPoints
コマンドを使用します。
getPoints(sllin)
ans = 3x1 cell array {'scdcascade/C1/1[u1]'} {'scdcascade/G2/1[y2]'} {'scdcascade/G1/1[y1]'}
解析関数で解析ポイントを使用するには、getPoints
で返される解析ポイント名の明確な省略形を指定できます。たとえば、u1
から y1
への伝達関数を計算し、G2 ブロックの出力での外乱への感度を見つけます。
ioSys = getIOTransfer(sllin,'u1','y1'); sensG2 = getSensitivity(sllin,'G2');
参考
addPoint
| getPoints
| slLinearizer
| addOpening