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 を持つスカラーとして指定します。

データ型: double

出力

すべて展開する

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

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

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

データ型: double

パラメーター

すべて展開する

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

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

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

プログラムでの使用

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

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

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

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

プログラムでの使用

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

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

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

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

プログラムでの使用

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

ブロックの状態を計算するための絶対許容誤差。正の実数値のスカラーまたはベクトルとして指定します。コンフィギュレーション パラメーターから絶対許容誤差を継承するには、auto または -1 を指定します。

  • 実数のスカラーを入力した場合、ブロックの状態計算における [コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差は、この値でオーバーライドされます。

  • 実数のベクトルを入力した場合、ベクトルの次元はブロックの連続状態の次元と一致していなければなりません。[コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差は、これらの値でオーバーライドされます。

  • auto または –1 を入力した場合、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス ([ソルバー] ペインを参照) の絶対許容誤差の値を使用してブロックの状態を計算します。

プログラムでの使用

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

各状態に固有名を割り当てます。このフィールドが空白 (' ') の場合は、名前の割り当ては行われません。

  • 単一の状態に名前を割り当てる場合は、'position' のように一重引用符で囲んで名前を入力します。

  • 複数の状態に名前を割り当てる場合は、中かっこ内にコンマで区切って入力します。たとえば、{'a', 'b', 'c'} のようにします。各名前は固有でなければなりません。

  • MATLAB® ワークスペース内の変数を状態名に割り当てる場合は、引用符なしで変数を入力します。変数には文字ベクトル、string、cell 配列、構造体が使用できます。

制限

  • 状態名は選択されたブロックに対してのみ適用されます。

  • 状態の数は状態名の数で割り切れなければなりません。

  • 指定する名前の数は状態の数より少なくできますが、その逆はできません。

    たとえば、4 つの状態を含むシステムで 2 つの名前を指定することは可能です。最初の名前は最初の 2 つの状態に適用され、2 番目の名前は最後の 2 つの状態に適用されます。

プログラムでの使用

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

ブロックの特性

データ型

double

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

バージョン履歴

R2006a より前に導入