ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

バッチ線形化用に対象の信号をマークする

slLinearizer インターフェイスを使用してモデルをバッチ線形化する場合、解析ポイントを使って関心のある信号をマークできます。これにより、getIOTransfergetLoopTransfer などの関数を使用して、そのうちの任意のポイントでシステムの応答を解析できます。

あるいは、モデルをバッチ線形化する方法に応じて次を行うこともできます。

バッチ線形化ツールの選択の詳細については、バッチ線形化の方法の選択を参照してください。

解析ポイント

解析ポイントは、Simulink® モデル内で線形解析に関連する箇所を特定します。各解析ポイントは、Simulink ブロックの出力端子から発生する信号に関連付けられています。たとえば、次のモデルの基準信号 r および制御信号 u は、それぞれ setpoint ブロックと C ブロックの出力から生じる解析ポイントです。

各解析ポイントは、以下の目的を 1 つ以上果たすことができます。

  • 入力 — ある解析ポイントに、加法的入力信号がソフトウェアによって与えられます。たとえば、プラント入力における外乱をモデル化するためにこれを行います。

  • 出力 — あるポイントにおける信号の値がソフトウェアによって測定されます。たとえば、プラント出力における外乱の影響を調べるためにこれを行います。

  • ループ開始点 — あるポイントにおける信号の流れの中断がソフトウェアによって解釈されます。たとえば、プラント入力における開ループ応答を調べるためにこれを行います。

解析ポイントを複数の目的に使用する場合、ソフトウェアは常にこれらの目的を、まず出力測定、次にループ開始点、その次に入力、という特定の順序で適用します。

解析ポイントを使用して、Simulink モデルから開ループおよび閉ループの応答を抽出できます。また、解析ポイントを使って制御システムの調整の要件を指定することもできます。詳細については、制御システムの解析と設計における対象信号のマークを参照してください。

解析ポイントの指定

解析ポイントは Simulink モデル内で明示的にマークするか、slLinearizer インターフェイスで addPoint コマンドを使用してプログラムによりマークすることができます。

Simulink モデルでの解析ポイントのマーク

モデル内の解析ポイントを明示的にマークするには、信号を右クリックし、[線形解析ポイント] で解析ポイントのタイプを選択します。

以下のタイプの閉ループ解析ポイントから任意に選択できます。これらは特定の 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');

参考

| | |

関連するトピック