Main Content

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),

    ここで、u と y はそれぞれシステム入力と出力で、nn と nd はそれぞれ分子と分母の係数の数です。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 または -1 に指定します。

[絶対許容誤差] コンフィギュレーション パラメーターに指定されている値をオーバーライドするこのブロックの絶対許容誤差を指定するには、以下のようにします。

  • すべてのブロックの状態を計算するために使用する正の実数のスカラー値を入力します。

  • ブロックの連続状態の次元と一致している次元をもつ実数ベクトルを入力します。

プログラムでの使用

ブロック パラメーター: AbsoluteTolerance
型: string | 文字ベクトル
値: 'auto' | '-1' | 正の実数スカラー | 正の実数スカラーのベクトル
既定の設定: 'auto'

オプションとしてこのブロックの状態に名前を割り当てるには、このパラメーターを使用します。割り当てる名前は、このブロックの状態にのみ適用されます。

  • 既定の状態名を使用するには、このフィールドを空 ('') のままにします。

  • 単一の名前を単一の状態に割り当てるには、引用符で囲んで名前を入力します。たとえば、単一の状態 position に名前を付けるには、「"position"」と入力します。

  • 名前を複数の状態に割り当てるには、このパラメーターの値を文字ベクトルの cell 配列として指定します。cell 配列内のそれぞれの名前は一意でなければなりません。たとえば、名前 ab、および c を割り当てるには、「{'a','b','c'}」と入力します。

  • MATLAB 変数を使用して名前を指定するには、引用符なしで変数の名前を入力します。たとえば、変数 names を使用して状態名を指定するには、「names」と入力します。

ブロックの状態の数より少ない数の名前を指定できます。この場合、状態名は複数の状態で使用され、状態の数は状態名の数に割り切れなければなりません。たとえば、4 つの状態をもつブロックで 2 つの名前を指定した場合、最初の名前は最初の 2 つの状態に使用され、2 番目の名前は最後の 2 つの状態に使用されます。

プログラムでの使用

ブロック パラメーター: ContinuousStateAttributes
型: string | 文字ベクトル
値: ' ' | ユーザー定義
既定の設定: ' '

ブロックの特性

データ型

double

直達

いいえa

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

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

拡張機能

バージョン履歴

R2006a より前に導入