メインコンテンツ

Transfer Fcn

伝達関数として線形システムをモデル化する

  • Transfer Fcn block

ライブラリ:
Simulink / Continuous

説明

Transfer Fcn ブロックは、ラプラス領域の変数 s の伝達関数で線形システムをモデル化します。このブロックは、単入力単出力 (SISO: single-input single-output) システムと単入力多出力 (SIMO: single-input multiple output) システムの両方をモデル化できます。

このブロックの使用条件

Transfer Fcn ブロックは次の条件を想定しています。

  • 伝達関数は次に示す形式になります。

    H(s)=y(s)u(s)=num(s)den(s)=num(1)snn1+num(2)snn2++num(nn)den(1)snd1+den(2)snd2++den(nd),

    ここで、uy はそれぞれシステム入力と出力で、nnnd はそれぞれ分子と分母の係数の数です。num(s)den(s) は分子係数と分母係数を s の降べきの順に並べたものです。

  • 分母の次数は分子の次数以上でなければなりません。

  • 多出力システムでは、すべての伝達関数が同じ分母をもち、すべての分子が同じ次数になっている必要があります。

単出力システムのモデル化

単出力システムでは、このブロックの入力と出力は時間領域のスカラー信号です。このシステムのモデルを作成するには次のようにします。

  1. 伝達関数の分子係数のベクトルを 分子係数 フィールド内に入力します。

  2. 伝達関数の分母係数のベクトルを 分母係数 フィールドに入力します。

多出力システムのモデル化

多出力システムでは、ブロック入力はスカラーで、出力はベクトルです。ベクトルの各要素はそのシステムの出力です。このシステムのモデルを作成するには次のようにします。

  1. 行列を 分子係数 フィールドに入力します。

    この行列の各 "行" には、ブロック出力の 1 つを決定する伝達関数の分子係数が入ります。

  2. 分母係数 フィールドに、システムの伝達関数に共通する分母係数のベクトルを入力します。

初期条件の指定

伝達関数はラプラス (周波数) 領域の入力と出力の関係を記述します。具体的には、初期条件がゼロのシステムにインパルスを入力するときの応答 (出力) のラプラス変換として定義されます。

伝達関数の乗算や除算などの演算は初期条件がゼロであることを前提にしています。たとえば 1 つの複雑な伝達関数を、より単純な一連の伝達関数に分解できます。それらを順番に適用することで元の伝達関数と等しい応答が得られます。伝達関数の 1 つがゼロ以外の初期条件を仮定している場合にはこの結果は正しくありません。また、伝達関数には無限に多くの時間領域実現があるため、その状態のほとんどは物理的な意味をもちません。

これらの理由から Simulink® では Transfer Fcn ブロックの初期条件をゼロに事前設定します。特定の伝達関数の初期条件を指定するには、tf2ss を使用して伝達関数を制御可能な正準状態空間実現に変換します。次に、State-Space ブロックを使用します。tf2ss ユーティリティは、システムに対する ABCD 行列を提供します。

詳細については、help tf2ss と入力するか、Control System Toolbox™ ドキュメンテーションを参照してください。

ブロックでの伝達関数の表示

Transfer Fcn ブロックには伝達関数が表示されますが、これは分子と分母のパラメーターをどのように指定したかに依存します。

  • 各パラメーターを式またはベクトルとして指定すると、ブロックには指定した係数を "s" のべき乗に使用した伝達関数が表示されます。小かっこ内に変数を指定すると、その変数は評価されます。

    たとえば、[分子係数] パラメーターの値を [3 2 1][分母係数] パラメーターの値を (den) (den は値が [7 5 3 1] のワークスペース変数) として指定すると、ブロックには指定した値を使用して方程式が表示されます。

    Transfer Fcn block that displays the numerator and denominator of the transfer function both as a polynomial function of s.

    ヒント

    ブロックのサイズが小さすぎて分子または分母の全体が収まらない場合、ブロック アイコンに分子は num(s)、分母は den(s) として表示されます。

    A Transfer Fcn block that is not wide enough to display the equation.

    実装される伝達関数の方程式をブロックに表示するには、ブロックの角をドラッグしてサイズを変更します。

    A pointer is positioned to drag the lower-right corner of the Transfer Fcn block, resizing the block so it is wide enough to display the equation that represents the transfer function.

  • パラメーターを変数として指定すると、アイコンは変数名とその後に (s) を示します。

    たとえば、[分子係数] パラメーターの値を num[分母係数] パラメーターの値を den として指定すると、ブロック アイコンには伝達関数の分子が num(s)、分母が den(s) として表示されます。

    Transfer Fcn block with the Numerator coefficients parameter specified as num and the Denominator coefficients parameter specified as den.

端子

入力

すべて展開する

入力信号。データ型 double を持つスカラーとして指定します。

伝達関数の分子が 0 の場合にのみ、この端子は直達をもちます。

データ型: double

出力

すべて展開する

出力信号。データ型 double を持つスカラーまたはベクトルとして指定します。

  • 単出力システムでは、このブロックの入力と出力は時間領域のスカラー信号です。

  • 多出力システムでは、入力はスカラーで、出力はベクトルです。ベクトルの各要素はそのシステムの出力です。

データ型: double

パラメーター

すべて展開する

伝達関数の分子係数を定義します。

  • 単出力システムでは、伝達関数の分子係数にベクトルを入力します。

  • 多出力システムでは、行列を入力します。この行列の各行には、ブロック出力の 1 つを決定する伝達関数の分子係数が入ります。

プログラムでの使用

ブロック パラメーター: Numerator
型: 文字ベクトル、string
値: ベクトル | 行列
既定の設定: '[1]'

分母係数の行ベクトルを定義します。

  • 単出力システムでは、伝達関数の分母係数にベクトルを入力します。

  • 多出力システムでは、そのシステムのすべての伝達関数に共通の分母係数をベクトルにして入力します。

プログラムでの使用

ブロック パラメーター: Denominator
: 文字ベクトル | string
値: ベクトル
既定の設定: '[1 1]'

アクセラレータ シミュレーション モードおよび Simulink Compiler™ を使用して展開されたシミュレーションの分子係数と分母係数の調整可能性レベル。このパラメーターを [自動] に設定すると、Simulink でパラメーターの調整可能性の適切なレベルが選択されます。

このパラメーターを [最適化済み] に設定すると、高速化され展開されたシミュレーションの生成コード内にシミュレーションのパフォーマンスを向上させるために最適化された、分子係数と分母係数の表現を生成できます。

このパラメーターを [制約なし] に設定すると、高速化され展開されたシミュレーションの生成コード内に分子係数と分母係数の (シミュレーション間で) 完全に調整可能な表現を生成できます。Simulink に適切な調整可能性レベルを判断させるには、[自動] を選択します。

プログラムでの使用

ブロック パラメーター: ParameterTunability
型: 文字ベクトル、string
値: 'Auto' | 'Optimized' | 'Unconstrained'
既定の設定: 'Auto'

可変ステップ ソルバーは、ステップ サイズの選択時に、絶対許容誤差および相対許容誤差を使用して、状態計算の誤差が許容されるかどうかを判別します。このパラメーターは、このブロックによって実装されるシステム内の状態に使用する絶対許容誤差を指定します。

  • auto[絶対許容誤差] コンフィギュレーション パラメーターによって指定された絶対許容誤差を使用します。

  • 実数の正のスカラー — すべての状態に対して、指定された値を絶対許容誤差として使用します。

  • 実数の正のベクトル — 各状態の絶対許容誤差を指定します。ベクトル内の要素数は、システム内の状態数と同じでなければなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: AbsoluteTolerance
値: 'auto' (既定値) | "-1" | positive real scalar | positive real vector
データ型: string | char

例: set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

システム内のすべての状態にカスタム名を指定しない場合:

  • 指定したそれぞれの名前が複数の状態に使用されます。

  • 状態の数は指定した名前の数で割り切れなければなりません。

たとえば、システムに 4 つの状態がある場合、1 つ、2 つ、または 4 つの名前を指定する必要があります。2 つの名前を指定した場合、最初の 2 つの状態は 1 番目の名前を使用し、最後の 2 つの状態は 2 番目の名前を使用します。

プロパティ インスペクターまたは [ブロック パラメーター] ダイアログ ボックスを使用して単一のカスタム状態名を指定するには、名前を一重引用符 ('') で囲みます。たとえば、名前 position を指定するには、「'position'」と入力します。一重引用符を省略すると、値が MATLAB® 変数の名前として解釈されます。

既定の状態名を使用するには、このパラメーターを空の文字ベクトル ('') として指定します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: ContinuousStateAttributes
値: '' (既定値)
データ型: char | cell

例: set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

ブロックの特性

データ型

double

直達

いいえa

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

a このブロックの直達特性はブロック パラメーターの値に依存します。

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入