ドキュメンテーション

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

getlinio

Simulink モデル、線形解析プロットまたは Model Verification ブロックに対する線形化入力/出力 (I/O) の設定

構文

io = getlinio('sys')
io = getlinio('blockpath')

代替方法

getlinio の代替方法として、以下の場所に、Simulink® モデルでコメントされた線形化 I/O を表示してください。

  • 線形解析ツールの [正確な線形化] タブ。[設定] セクションで をクリックして、線形化 I/O の表示と編集を行います。[解析 I/O][モデル I/O] に設定されている場合にのみ、アイコンが表示されます。

  • Linear Analysis Plots ブロックまたは Model Verification ブロックの [ブロック パラメーター] ダイアログ ボックスの [線形化] タブ内の [線形化の入力/出力] テーブル

説明

io = getlinio('sys') は、Simulink モデル sys 内のすべての線形化の入力/出力 (I/O) を検出し、オブジェクト io のベクトルを返します。各オブジェクトはモデル内の線形化の注釈を表し、Simulink ブロックの出力端子と関連付けられます。getlinio を実行する前に、モデル ダイアグラムの信号線の上で右クリック メニューを使用して、線形化の注釈または I/O を挿入します。

io = getlinio('blockpath') は、Linear Analysis Plots ブロックまたは Model Verification ブロック内のすべての I/O を検出します。blockpath はブロックへの絶対パスです。io はオブジェクトのベクトルであり、ブロックが使用するそれぞれの線形化端子のエントリをもちます。

ベクトル io 内の各オブジェクトは以下のプロパティをもちます。

Active

I/O が線形化に使用される場合はこの値を 'on' に、使用されない場合は'off' に設定します。

Block

I/O が関連するブロックの名前

PortNumber

I/O が関連する出力端子を参照する整数

Type

次の線形化 I/O の種類から 1 つを選択します。

  • 'openinput' — 開ループの入力。ループ開始点の後ろに線形化入力ポイントを指定します。

    通常、この入力タイプは、プラントまたはコントローラーを初期化するために開ループ線形化出力と共に使用します。

    たとえば、次の図のフィードバック ループ内のプラント伝達関数 G を計算するには、図に示すように線形化ポイントを指定します。

    同様に、入力信号で openinput を指定し、Controller ブロックの出力信号で開ループ線形出力を指定することで、コントローラー伝達関数 K を計算できます。

  • 'openoutput' — 開ループの出力。ループ開始点の前に線形化出力ポイントを指定します。

    通常この出力タイプは、前の図に示されるように、プラントまたはコントローラーを線形化するために開ループ線形化入力 openinput または入力の摂動 input と共に使用します。

  • 'looptransfer' — ループ伝達。ループ開始点の前の出力ポイントと、その後に続く入力を指定します。

    この入出力タイプは、ループ付近での開ループ伝達関数を計算するために使用します。

    たとえば、次の図のフィードバック ループ内の -GK を計算するために、図に示すように線形化入出力ポイントを指定します。

    同様に、Controller ブロックの出力信号で looptransfer を指定して -KG を計算します。

  • 'input' — 入力の摂動。信号への加法的入力を指定します。

    たとえば、次の図のフィードバック ループの応答 -K/(1+KG) を計算するには、図に示すように入力の摂動と出力の測定点を指定します。

    同様に、Controller ブロックの出力信号で input を、また Plant ブロックの出力信号で出力の測定値 output を使用して G/(1+GK) を計算できます。

  • 'output' — 出力の測定値。信号の測定値を取ります。

    たとえば、応答 -K/(1+KG) を計算するには、前の図に示すように出力の測定点と入力の摂動を指定します。

  • 'loopbreak' — ループの中断。ループ開始点を指定します。

    ループ付近での開ループ伝達関数を計算するために使用します。通常、入れ子にされたループがある場合や、一部のループの影響を無視する場合にこの入出力タイプを使用します。

    たとえば、K1 で認識される内部ループを計算して外部ループを排除するには、次に示すように入出力ポイントと loopbreak を指定します。

  • 'sensitivity' — 感度。加法的入力と、その後に続く出力の測定を指定します。

    信号での加法的な外乱に対する感度伝達関数を計算するために使用します。

    たとえば、次の図のフィードバック ループ内の入力/負荷感度 1/(1+KG) を計算するには、図に示すように線形化入出力ポイントを指定します。

    同様に、Plant ブロックの出力信号で sensitivity 入出力ポイントを指定して、プラント出力 1/(1+GK) での出力感度を計算します。

  • 'compsensitivity' — 相補感度。出力と、その後に続く加法的入力を指定します。

    ループ付近での閉ループ伝達関数を計算するために使用します。

    たとえば、次の図のフィードバック ループ内の -GK/(1+GK) (r から y への伝達関数) を計算するには、図に示すように Plant ブロックの出力信号で線形化入出力ポイントを指定します。

BusElement

I/O が関連するバス要素名I/O がバス要素ではない場合は、空の文字列 ('')。

Description

I/O オブジェクトの記述文字列

この I/O オブジェクトを編集して、プロパティを変更することができます。あるいは、関数 set を使用して io のプロパティを変更することができます。編集した I/O オブジェクトを Simulink モデル ダイアグラムにアップロードするには、関数 setlinio を使用します。線形モデルを作成するには、関数 linearize に I/O オブジェクトを使用します。

Simulink モデル内で線形化入力/出力を検索します。

getlinio を使用して I/O オブジェクトのベクトルを作成する前に、入力ポイントや出力ポイントなどのように、I/O を表現する線形化の注釈を Simulink モデルに追加しなければなりません。

  1. Simulink モデルを開きます。

    magball
    
  2. Magnetic Ball Plant と Controller の間の信号線を右クリックします。メニューから [線形解析ポイント][入力の摂動] を選択して、この信号線上に入力ポイントを配置します。

    信号線のすぐ上の、小さい円に向かう小さい矢印が入力ポイントを表しています。この入力ポイントはブロックの出力ではなく、信号への加法的入力です。

  3. Magnetic Ball Plant の後ろの信号線を右クリックします。[線形解析ポイント][開ループの出力] を選択して、この信号線上に出力ポイントを配置します。

    信号線から離れる方向を向く小さな矢印が出力ポイントを表しています。

  4. このモデルに I/O オブジェクトのベクトルを作成します。

    io=getlinio('magball')
    

    この構文により、線形化 I/O の書式付き表示が返されます。

    2x1 vector of Linearization IOs: 
    --------------------------
    1. Linearization input perturbation located at the following signal:
    - Block: magball/Controller
    - Port: 1
    
    2. Linearization open-loop output located at the following signal:
    - Block: magball/Magnetic Ball Plant
    - Port: 1

    io は、モデル ダイアグラム内に事前に設定された 2 つの線形化の注釈を表現する 2 つのエントリをもつベクトルです。MATLAB® は、以下も表示します。

    • 線形化 I/O のタイプ (入力または出力) およびその I/O がループ開始点かどうか

    • I/O に関連するブロック名

    • I/O に関連する端子番号

    関数 get を使用して、それぞれの I/O オブジェクトのプロパティを表示します。

以下の例では、Linear Analysis Plots ブロックで線形化の入力/出力を検索して I/O を更新する方法を説明します。

  1. watertank モデルを開き、入力および出力 (I/O) を指定します。

    1. Desired Water Level の出力信号を右クリックし、[線形解析ポイント][入力の摂動] を選択します。

    2. Water-Tank System の出力信号を右クリックし、[線形解析ポイント][開ループの出力] を選択します。

    次の図に示すような線形化 I/O マーカーがモデルに表示されます。

    あるいは、linio を使用できます。

  2. Simulink Control Design™ の Linear Analysis Plots ライブラリから Simulink エディターに Bode Plot ブロックをドラッグ アンド ドロップします。ブロックをドラッグ アンド ドロップすると、ブロックの I/O がモデルの I/O に設定されます。

  3. Bode Plot ブロックに使用されているすべての I/O を検索します。

    io = getlinio('watertank/Bode Plot')

    以下の結果が MATLAB プロンプトに表示されます。

    2x1 vector of Linearization IOs: 
    --------------------------
    1. Linearization input perturbation located at the following signal:
    - Block: watertank/Desired  Water Level
    - Port: 1
    
    2. Linearization open-loop output located at the following signal:
    - Block: watertank/Water-Tank System
    - Port: 1
この情報は役に立ちましたか?