ドキュメンテーション

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

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 信号オブジェクトに関連付けられるようにするには、このチェック ボックスをオンにします。このチェック ボックスは、既定の設定ではオフになっています。

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

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

パッケージ

適用するカスタム ストレージ クラスを定義するパッケージを選択します。自分自身のパッケージを定義している場合は、[更新] をクリックします。この操作によりパッケージ リストへの検索パスにすべてのユーザー定義パッケージを追加します。

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

状態に対してカスタム ストレージ クラスを選択します。

既定の設定: Auto

Auto

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

SimulinkGlobal

model_P は、ワークスペース内の対応する値に状態を初期化します。

ExportedGlobal

状態はグローバル変数に格納されます。

ImportedExtern

model_private.h は、状態を外部変数として宣言します。

ImportedExternPointer

model_private.h は、状態を外部ポインターとして宣言します。

既定の設定

編集不可能なプレースホルダ ストレージ クラスが作成されています。

BitField

struct 宣言は Boolean データを組み込むように作成されています。

Volatile

Volatile 型修飾子は状態宣言に使用されます。

ExportToFile

グローバル変数宣言を含むヘッダー (.h) ファイルは、ユーザー指定の名前で生成されます。

ImportFromFile

グローバル変数宣言を含む事前定義されたヘッダー (.h) ファイルが含まれています。

FileScope

状態宣言の前に静的な修飾子が生成され、状態を現在のファイルだけに表示できるようにします。

Struct

struct 宣言は、パラメーターまたは信号オブジェクト データをカプセル化するために作成されます。

StructVolatile

Volatile 型修飾子は struct 宣言に使用されます。

GetSet

メモリの読み取りと書き込みを行う特殊な関数呼び出しをサポートします。

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

有効なストレージ クラスのリストは [パッケージ] の選択によって異なります。

このパラメーターを [ExportedGlobal][ImportedExtern]、または [ImportedExternPointer] に設定すると、[コード生成ストレージ型修飾子] が有効になります。

コード生成ストレージ型修飾子

Simulink Coder ストレージ型修飾子を指定します。既定の設定は ' ' です。このフィールドが空白のままの場合、修飾子は割り当てられません。

Simulink Coder 製品はこの文字列のエラーをチェックしません。したがって、入力する値が変数宣言に自動的に表示されます。

[コード生成ストレージ クラス][ExportedGlobal][ImportedExtern]、または [ImportedExternPointer] に設定すると、このパラメーターが有効になります。

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

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

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

詳細は、Simulink Coder ドキュメンテーションの「状態」を参照してください。

特性

直接フィードスルー

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

サンプル時間

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

スカラー拡張

初期条件により、あり

状態数

初期状態の指定を参照してください。

離散化

あり

ゼロクロッシング検出

なし

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