ドキュメンテーション

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

Discrete Transfer Fcn

離散伝達関数を実現

ライブラリ

Discrete

説明

Discrete Transfer Fcn ブロックは、z 変換の伝達関数を実現します。

H(z)=num(z)den(z)=num0zm+num1zm1+...+nummden0zn+den1zn1+...+denn

ここで、m+1n+1 は、それぞれ分子係数と分母係数の数です。numden は、z の降ベキの順での分子と分母の係数を含みます。num はベクトルまたは行列であり、den はベクトルでなければなりません。どちらもブロック ダイアログ ボックスのパラメーターとして指定します。分母の次数は分子の次数以上でなければなりません

z の降ベキの順で分子多項式と分母多項式の係数を指定します。このブロックを使うと、z の多項式を使用して、制御技術者が一般的に使用する離散システムを表すことができます。逆に、Discrete Filter ブロックを使うと、z-1 (遅れ演算子) の多項式を使用して、信号処理技術者が一般的に使用する離散システムを表すことができます。分子多項式と分母多項式の長さが同じ場合、2 つの方法は等しくなります。

Discrete Transfer Fcn ブロックは z 変換の伝達関数を入力の独立した各チャネルに適用します。[入力処理] パラメーターでは、ブロックが、入力の各要素を個別のチャネル (サンプルベースの処理) として、または入力の各列を個別のチャネル (フレームベースの処理) として扱うかどうかを指定できます。フレームベースの処理を実行するには、DSP System Toolbox™ のライセンスがなければなりません。

初期状態の指定

初期のフィルターの状態を表すには、初期状態 パラメーターを使用します。初期状態の数値や指定方法に関しては、次の表を参照してください。

フレームベースの処理

入力 チャネル数有効な初期状態 (ダイアログ ボックス)有効な初期状態 (入力端子)
  • 列ベクトル (K 行 1 列)

  • 方向性をもたないベクトル (K)

1
  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 N 列)

  • 行列 (K 行 N 列)

N
  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • 行列 (M 行 N 列)

  • スカラー

  • 行列 (M 行 N 列)

サンプルベースの処理

入力チャネル数有効な初期状態 (ダイアログ ボックス)有効な初期状態 (入力端子)
  • スカラー

1
  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • 行ベクトル (1 行 N 列)

  • 列ベクトル (N 行 1 列)

  • 方向性をもたないベクトル (N)

N
  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • 行列 (M 行 N 列)

  • スカラー

  • 行列 (K 行 N 列)

K×N
  • スカラー

  • 列ベクトル (M 行 1 列)

  • 行ベクトル (1 行 M 列)

  • 行列 (M 行 (K×N) 列)

  • スカラー

初期状態 がスカラーのとき、ブロックはすべてのフィルター状態を同じスカラー値に初期化します。すべての状態をゼロに初期化するには、0 を入力します。初期状態 がベクトルまたは行列であるとき、ベクトルや行列の各要素は、対応するチャネルの対応する遅延要素に固有の初期状態を指定します。

  • ベクトル長は、フィルター内の遅延要素の数と一致する必要があります (M = max(number of zeros, number of poles))。

  • 行列は、フィルター内の遅延要素の行数と一致する必要があります (M = max(number of zeros, number of poles))。さらに行列には、入力信号のチャネルごとに 1 列必要です。

次の例は、初期のフィルター出力と、初期の入力および状態間の関係を示しています。初期入力が u1 の場合、最初の出力 y1 は、以下によって初期状態 [x1, x2] および初期入力に関連付けられます。

y1=4x1x2=1/2(u13x1)

サポートするデータ型

Discrete Transfer Function ブロックでは、Simulink® がサポートする任意の符号付き数値データ型の実数と複素数信号を受け入れ、出力します。このブロックは、分子と分母の係数に同じタイプをサポートします。

分子係数と分母係数は同じ実数/複素数でなければなりません。語長と小数部の長さは異なってもかまいません。

入力または係数が複素数である場合は、状態も複素数になります。

次の図は、浮動小数点信号および固定小数点信号に対してブロックが使用するフィルター構造とデータ型を示します。

[最初の分母係数 (a0) を正規化することで最適化する] パラメーターを選択すると、このブロックは破線の分岐線を省略します。

パラメーターとダイアログ ボックス

[Discrete Transfer Fcn ブロック] ダイアログ ボックスの [メイン] ペインは、次のように表示されます。

分子

離散伝達関数の分子係数。係数を指定するために、[ソース][ダイアログ] に設定します。次に、z の降べき順として [値] に係数を入力します。単独の分子多項式に対する係数を指定するために行ベクトルを使用します。行列を使用して、同じ入力に適用するものとして複数のフィルターの係数を指定します。それぞれの行列の行は一連のフィルター タップを表します。

分母

離散伝達関数の分母係数。係数を指定するために、[ソース][ダイアログ] に設定します。次に、z の降べき順として [値] に係数を入力します。単独の分母多項式に対する係数を指定するために行ベクトルを使用します。行列を使用して、同じ入力に適用するものとして複数のフィルターの係数を指定します。それぞれの行列の行は一連のフィルター タップを表します。

初期状態

[ソース][ダイアログ] の場合、[値] にフィルター状態の初期状態を指定します。初期状態の指定方法については、初期状態の指定を参照してください。

[ソース][入力端子], の場合、[値] には指定するものは何もありません。

外部リセット

状態を初期条件にリセットするために使用するトリガー イベントを指定します。

リセット モード動作
なしリセットなし。
立ち上がり立ち上がりエッジでリセットします。
立ち下がり立ち下がりエッジでリセットします。
両方立ち上がりエッジまたは立ち下がりエッジのいずれかでリセットします。
レベル次のいずれかの場合にリセットします。
  • リセット信号が現在のタイム ステップで非ゼロである場合

  • 以前のタイム ステップでの非ゼロから現在のタイム ステップでの 0 までリセット信号の値が変化する場合

レベル保持リセット信号が現在のタイム ステップで非ゼロであるときにリセットします。

リセット信号は、singledoubleboolean または integer 型のスカラーでなければなりません。ufix1 以外の固定小数点データ型はサポートされません。

入力処理

ブロックでサンプルベースかフレームベースのどちらの処理を実行するかを指定します。

  • チャネルとしての要素 (サンプル ベース) — 入力の各要素を独立したチャネルとして処理します。

  • チャネルとしての列 (フレーム ベース) — 入力の各列を独立したチャネルとして処理します。

      メモ:   フレームベースの処理には、DSP System Toolbox のライセンスが必要になります。

      詳細は、DSP System Toolbox ドキュメンテーションの「Sample- and Frame-Based Concepts」を参照してください。

最初の分母係数 (a0) を正規化することで最適化する

最初の分母係数 a0 が 1 の場合に選択します。このパラメーターは、コードを最適化します。

このチェック ボックスをオンにした場合、ブロックはシミュレーションまたは生成コードのいずれでも a0 による除算を実行しません。a0 が 1 ではない場合にエラーが発生します。

このチェック ボックスをオフにすると、ブロックはシミュレーション中に完全に調整可能になり、シミュレーションとコード生成の両方で a0 による除算を実行します。

サンプル時間

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。「サンプル時間の指定」を参照してください。

[Discrete Transfer Function ブロック] ダイアログ ボックスの [データ型] ペインは、次のように表示されます。

状態

状態のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 入力と同じ

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[状態] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分子係数

分子係数のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、分子係数 パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分子係数の最小値

分子係数の最小値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

分子係数の最大値

分子係数の最大値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

分子係数の乗算出力

分子係数の乗算出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[分子係数の乗算出力] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分子係数のアキュムレータ

分子係数のアキュムレータのデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、分子係数のアキュムレータ パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分母係数

分母係数のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、分母係数 パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分母係数の最小値

分母係数の最小値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

分母係数の最大値

分母係数の最大値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

分母係数の乗算出力

分母係数の乗算出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[分母係数の乗算出力] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

分母係数のアキュムレータ

分母係数のアキュムレータのデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[分母係数のアキュムレータ] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「データ型アシスタントを利用したデータ型の指定」を参照してください。

出力

出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[出力] パラメーターに関する設定を行う [データ型アシスタント] を表示します。

詳細は、「信号のデータ型の制御」を参照してください。

出力の最小値

ブロックが出力する最小値を指定します。既定値は [] (指定なし) です。Simulink は、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (「信号範囲」を参照)

  • 固定小数点データ型の自動スケーリング

出力の最大値

ブロックが出力する最大値を指定します。既定値は [] (指定なし) です。Simulink は、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (「信号範囲」を参照)

  • 固定小数点データ型の自動スケーリング

固定小数点ツールによる変更に対してデータ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックのすべてのデータ型の設定をロックします。詳細は、Fixed-Point Designer™ ドキュメンテーションの「出力データ型設定のロック」を参照してください。

整数丸めモード

固定小数点演算の丸めモードを指定します。詳細は、Fixed-Point Designer ドキュメンテーションの「丸め」を参照してください。

整数オーバーフローで飽和
アクションこのアクションを行う理由オーバーフロー発生時に起きること

このチェック ボックスをオンにする。

モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。

このチェック ボックスをオンにしない。

生成コードの効率を最適化することをお勧めします。

ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細は、「信号範囲のエラーのチェック」を参照してください。

オーバーフローは、データ型によって表現される適切な値にラップされます。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスをオフにすると、オーバーフローを引き起こした値は int8 として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8 として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。

このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

[Discrete Filter ブロック] ダイアログ ボックスの [状態属性] ペインは、次のように表示されます。

状態名

ブロックの状態に固有名を割り当てるにはこのパラメーターを使用します。既定の設定は ' ' です。このフィールドが空白のままの場合、名前は割り当てられません。このパラメーターを使用する場合、以下のことを考慮してください。

  • 有効な識別子は英字またはアンダースコア文字で始まり、英数字またはアンダースコア文字が続きます。

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

このパラメーターを設定し、[適用] ボタンをクリックすると、[状態名を Simulink の信号オブジェクトに関連付ける] が有効になります。

詳細は、Simulink Coder™ ドキュメンテーションの「生成コードでの離散ブロック状態の名前付け」を参照してください。

状態名を Simulink の信号オブジェクトに関連付ける

状態名が Simulink 信号オブジェクトに関連付けられるようにするには、このチェック ボックスをオンにします。このチェック ボックスは、既定の設定ではオフになっています。

[状態名] によって、このパラメーターが有効になります。

このチェック ボックスをオンにすると、[コード生成ストレージ クラス] が無効になります。

信号オブジェクト クラス

ターゲット パッケージが定義する信号オブジェクト クラスを選択してカスタム ストレージ クラスのパッケージを選択します。たとえば、組み込みパッケージ mpt からカスタム ストレージ クラスを適用するには [mpt.Signal] を選択します。Embedded Coder® ソフトウェアで ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスは生成されたコードに影響しません。

目的のクラスがリストに表示されない場合は、[クラス リストのカスタマイズ] を選択します。詳細については、「Apply Custom Storage Classes Directly to Signal Lines, Block States, and Outport Blocks」を参照してください。

コード生成ストレージ クラス

コード生成の状態ストレージ クラスを選択します。

既定の設定: Auto

Auto

Auto は、外部コードのインターフェイスを必要としない状態に対して適切なストレージ クラスです。

StorageClass

リストから選択したストレージ クラスまたはカスタム ストレージ クラスを適用します。ストレージ クラスの詳細については、「ストレージ クラスの適用による、コード内での信号と状態の制御」を参照してください。カスタム ストレージ クラスの詳細については、「Control Data Representation by Applying Custom Storage Classes」を参照してください。

[信号オブジェクト クラス] を使用して、Simulink 以外のパッケージからカスタム ストレージ クラスを選択します。

[状態名] によって、このパラメーターが有効になります。

TypeQualifier

    メモ:   TypeQualifier は将来のリリースで削除されます。ストレージ型修飾子をデータに適用するには、カスタム ストレージ クラスとメモリ セクションを使用します。Embedded Coder ソフトウェアで ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスとメモリ セクションは生成されたコードに影響しません。

const または volatile などのストレージ型修飾子を指定します。

[コード生成ストレージ クラス][ExportedGlobal][ImportedExtern][ImportedExternPointer] または [SimulinkGlobal] に設定すると、このパラメーターが有効になります。このパラメーターは以前にこの値を設定している場合を除き、非表示です。

シミュレーション時、このブロックは次の値を使用します。

  • 状態名が関係付けられる信号オブジェクトの初期値

  • 信号オブジェクトの最大値と最小値

詳細は、Simulink Coder ドキュメンテーションの「生成コードでの離散ブロック状態の名前付け」を参照してください。

特性

データ型

double | single | 整数 | 固定小数点

サンプル時間

[サンプル時間] パラメーターで指定

直接フィードスルー

先頭の分子係数がゼロでなく、分子の順序が分母の順序と同じ場合のみ

多次元信号

なし

可変サイズの信号

なし

ゼロクロッシング検出

なし

コード生成

あり

R2006a より前に導入

この情報は役に立ちましたか?