Sine Wave Function
時間のソースとして外部信号を使用し、正弦波を生成
ライブラリ:
Simulink /
Math Operations
説明
Sine Wave Function ブロックは正弦波を出力します。このブロックは、時間ベース モードまたはサンプルベース モードで動作します。
メモ
このブロックは、Math Operations ライブラリに表示される Sine Wave ブロックと同じです。ブロックのダイアログ ボックスで [時間] パラメーターとして [シミュレーション時間を使用]
を選択すると Sine Wave Function ブロックが得られます。
時間ベース モード
ブロックは出力波形を計算します。
時間ベース モードでは、[サンプル時間] パラメーターの値により、ブロックが連続モードで動作するか、離散モードで動作するかが決まります。
0
(既定の設定) では、ブロックは連続モードで動作します。>0
では、ブロックは離散モードで動作します。
詳細については、サンプル時間の指定を参照してください。
Sine Wave ブロックは、連続モードで動作すると、時間が極めて大きくなるため、精度の損失により不正確になる可能性があります。
[サンプル時間] パラメーターの値をゼロよりも大きく設定すると、ブロックはサンプル時間をその値に設定した Zero-Order Hold ブロックを駆動している場合と同様に動作します。
この方法では、連続/離散システムのハイブリッドであるモデルではなく、純粋に離散的な正弦波を使ってモデルをビルドできます。ハイブリッド システムは本質的により複雑であり、その結果、シミュレーションにかかる時間が長くなります。
このモードでは、絶対時間に基づくアルゴリズムではなく、インクリメンタル アルゴリズムを使用します。結果として、このブロックは、振動解析や疲労解析のような、不定長時間の実行を目的としたモデルで有効になります。
この異なるインクリメンタル アルゴリズムでは、前のサンプル時間のときに計算された値に基づいて正弦値を計算します。この方法は、次の三角恒等式を使用します。
これらの恒等式は、次の行列形式で記述できます。
Δt は定数であるため、次の式は定数になります。
したがって、問題は を取得するために、 の値と定数行列による行列乗算の 1 つで発生します。
離散モードは丸めの誤差の累積を減らしますが、たとえば (4*eps)
のように、ゼロとなることはありません。誤差の累積は、各タイム ステップのブロックの出力計算が前のタイム ステップの出力の値に基づくからです。
Sine Wave block ブロックが時間ベースの離散モードで動作している場合の丸め誤差は、次のいずれかの方法で対処します。
メソッド | 理由 |
---|---|
Sine Wave ブロックの直下となる位置に Saturation ブロックを挿入します。 | Sine Wave ブロックの出力に飽和の制限を設定することで、丸めの誤差の累積に基づいたオーバーシュートを削除できます。 |
Sine Wave ブロックを、ブロック出力の計算用に数学ライブラリ関数
| 数学ライブラリの関数 |
サンプルベース モード
サンプルベース モードでは、次の式を使用して Sine Wave ブロックの出力を計算します。
A は、正弦波の振幅です。
p は、正弦波の周期です。
k は、0 から p-1 の範囲の繰り返し整数値です。
o は、信号のオフセット (位相ずれ) です。
b は、信号バイアスです。
このモードで、Simulink® は式を使って最初のタイム ステップで k を 0
に設定し、ブロックの出力を計算します。次のタイム ステップでは、Simulink は k を増分してブロックの出力を再計算します。k が p に達すると、Simulink は k を 0
にリセットしてからブロックの出力を計算します。このプロセスは、シミュレーションの終わりまで続行されます。
指定されたタイム ステップでブロック出力を計算するサンプル ベースの方法は以前のタイム ステップの出力に依存しません。このようにしてこのモードでは、丸め誤差の累積が回避されます。サンプルベース モードはリセット セマンティクスを提供するサブシステム内でリセット セマンティクスをサポートします。たとえば Sine Wave ブロックがリセット トリガーを受信する Resettable Subsystem 内にある場合、繰り返し整数 k
がリセットされ、ブロック出力は初期条件にリセットされます。
端子
入力
出力
パラメーター
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
バージョン履歴
R2006a より前に導入