メインコンテンツ

Waveform Generator

信号表記を使用した波形の出力

  • Waveform Generator block

ライブラリ:
Simulink / Sources

説明

Waveform Generator ブロックは、[波形の定義] テーブルに入力した信号表記に基づいて波形を出力します。

このブロックは、信号表記に対して以下の構文をサポートします。

  • 関数構文 — すべての引数を信号構文の特有の順序で指定します (アルゴリズムを参照)。

  • 名前と値の構文 — オプションのコンマ区切りされた Name,Value のペアの引数を指定します。ここで、Name は引数名、Value は対応する値です。Name は一重引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。詳細については、アルゴリズムを参照してください。

このブロックは、ノーマル モード、アクセラレータ モードおよびラピッド アクセラレータ モードと高速リスタートをサポートします。

サポートされる演算子

演算演算子

絶対値

abs()

加算

+

除算

/

乗算

*

小かっこ

()

減算

-

単項マイナス

-

Waveform ブロックは、演算子の優先順位について、次のような規則に従います。

  1. ( )

  2. + - (unary)

  3. * /

  4. + -

サポートされている演算

Waveform Generator ブロックは、一度に 1 つの信号を出力します。この出力信号は変更できます。周波数および位相オフセットのパラメーターをラジアン単位で表します。以下も実行できます。

  • 信号表記の入れ子。たとえば、以下のようになります。

    sin('Amplitude',sin('Amplitude',1,'Frequency',1,'Phase',0),'Frequency',1,'Phase',1)

  • ベース ワークスペースまたはモデル ワークスペースの実数のスカラー変数の参照。たとえば、以下のようになります。

    sin('Amplitude',x,'Frequency',y,'Phase',z)

    xy および z はベース ワークスペースに存在します。

波形の詳細については、アルゴリズムを参照してください。

さまざまな入力タイプに対するシステムの反応をすばやく確認するには、シミュレーションの実行中に Waveform Generator ブロックの出力信号を変更します。

制限

端子

出力

すべて展開する

[波形の定義] テーブルのエントリによって指定された出力信号

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

パラメーター

すべて展開する

メイン

出力信号を指定する波形定義を選択します。数値は、[波形の定義] テーブルの行項目に一致します。シミュレーションの実行中にこのパラメーターを変更できます。

プログラムでの使用

ブロック パラメーター: SelectedSignal
: 文字ベクトル
: スカラー
既定の設定: '1'

各行が 1 つの波形定義を示す [波形の定義] テーブルに信号表記を入力します。構文の詳細については、アルゴリズムを参照してください。

信号属性

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

ソフトウェアでチェックする出力範囲の下限値。

最小値を使用して以下が行われます。

ヒント

[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

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

パラメーター: OutMin
値: '[]' (既定値) | scalar in quotes

ソフトウェアでチェックする出力範囲の上限値。

最大値を使用して以下が行われます。

ヒント

[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

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

パラメーター: OutMax
値: '[]' (既定値) | scalar in quotes

出力のデータ型を選択します。型は継承されるか、直接指定されるか、Simulink.NumericType などのデータ型オブジェクトとして表現されます。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | int16 | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,2^0,0) | '<data type expression>'
既定の設定: 'double'

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'off'

次のいずれかの丸めモードを選択します。

正方向

正の無限大方向に正負の値を丸めます。MATLAB® 関数 ceil と等価です。

最も近い偶数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、最も近い偶数の整数に丸めます。Fixed-Point Designer™ 関数 convergent と等価です。

負方向

負の無限大方向に正負の値を丸めます。MATLAB 関数 floor と等価です。

最も近い正の整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の無限大方向に丸めます。Fixed-Point Designer 関数 nearest と等価です。

最も近い整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の数値を正の無限大方向、負の数値を負の無限大方向に丸めます。Fixed-Point Designer 関数 round と等価です。

最も簡潔

下限値への丸めとゼロへの丸めのいずれかを自動的に選択し、できるだけ効率の高い丸めコードを生成します。

ゼロ方向

ゼロ方向に数値を丸めます。MATLAB 関数 fix と等価です。

プログラムでの使用

ブロック パラメーター: RndMeth
: 文字ベクトル
: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

参考

詳細については、丸めモード (Fixed-Point Designer)を参照してください。

オーバーフローで飽和するかラップするかを指定します。

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

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

たとえば、符号付き 8 ビット整数 int8 で表現できる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。

  • このパラメーターがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。

  • このパラメーターをオフにすると、オーバーフローを引き起こした値は int8 として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8 として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。

ヒント

  • モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このパラメーターをオンにすることを検討してください。

  • 生成コードの効率を最適化する場合には、このパラメーターをオフにすることを検討してください。このパラメーターをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。

  • このパラメーターをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。

  • 通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

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

パラメーター: SaturateOnIntegerOverflow
値: 'off' (既定値) | 'on'

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

プログラムでの使用

ブロック パラメーター: SampleTime
: 文字ベクトル
: スカラー
既定の設定: '0.1'

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

アルゴリズム

すべて展開する

各行が 1 つの波形定義を示す [波形の定義] テーブルに信号表記を入力します。波形の定義を追加するには、[追加] をクリックします。新しい波形は空の文字ベクトルとして表示されます。ブロックは空の文字ベクトルまたは空白の文字ベクトルを接地として解釈します。

波形の定義を削除するには、[削除] をクリックします。複数の波形を選択するには、Ctrl キーを押したままクリックするか、Shift キーを押したままクリックします。

拡張機能

すべて展開する

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2015b で導入