ドキュメンテーション

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

Pulse Generator

一定の間隔で矩形波パルスを生成

ライブラリ

Sources

説明

Pulse Generator ブロックは、一定の間隔で矩形波パルスを生成します。このブロックの波形パラメーター ([振幅][パルス幅][周期][位相遅れ]) は、出力波形の形状を決定します。次の図は、各パラメーターが波形にどのような影響を及ぼすかを示したものです。

Pulse Generator は、任意の実数データ型からなるスカラー信号、ベクトル信号、または行列信号を出力します。このブロックにスカラー信号を出力させるには、スカラーを使って波形パラメーターを指定します。このブロックにベクトル信号または行列信号を出力させるには、ベクトルまたは行列をそれぞれ使って波形パラメーターを指定します。波形パラメーターの各要素は、出力信号の対応する要素に影響を及ぼします。たとえば、ベクトル振幅パラメーターの最初の要素は、ベクトル出力パルスの最初の要素の振幅を決定します。波形パラメーターはいずれも、スカラー拡張後に同じ次元をもたなければなりません。出力のデータ型は、[振幅] パラメーターのデータ型と同じです。

このブロック出力は、[パルス タイプ] パラメーターによって決定される時間ベース モードまたはサンプル ベース モードで生成できます。

時間ベースモード

時間ベース モードでは、Simulink® は出力が実際に変化した時刻にのみブロック出力を計算します。この方法は結果として、シミュレーション時間周期におけるブロック出力の計算量が少なくなります。[パルス タイプ] パラメーターを [時間ベース] に設定するとこのモードが有効になります。

ブロックは、一定の出力信号となる時間ベース構成はサポートしません。Simulink は、パラメーター [パルス幅][周期] が次の条件のいずれかを満たす場合にエラーを返します。

Period*PulseWidth100=0Period*PulseWidth100=Period

パルス波形の特性によって異なりますが、ブロック出力の変化の間隔は異なります。このため、時間ベースの Pulse Generator ブロックは可変サンプル時間をもちます。このようなブロックのサンプル時間の色は茶色です (詳細は、「サンプル時間情報の表示」を参照してください)。

Simulink は、時間ベースの Pulse Generator の出力を計算するために固定ステップ ソルバーを使用できません。時間ベースの Pulse Generator を含むモデルに対する固定ステップ ソルバーを指定する場合、Simulink は、時間ベースの Pulse Generator に対する固定サンプル時間を計算します。その後、サンプル ベースとして、時間ベースの Pulse Generator をシミュレートします。

[パルス タイプ][時間ベース] のときに固定ステップ ソルバーを使用する場合、周期、位相遅延、パルス幅 (秒単位) がソルバーのステップ サイズの整数倍数になるようにステップ サイズを選択します。たとえば、周期が 4 秒、パルス幅が 75% (すなわち 3 秒)、位相遅れが 1 秒であると仮定します。この場合、計算されたサンプル時間は 1秒になります。したがって、1 またはちょうど 1 を除算した数 (例: 0.25) の固定ステップ サイズを選択します。このようにするには、[コンフィギュレーション パラメーター] ダイアログ ボックスのソルバー ペインで固定ステップ ソルバーのステップ サイズを [auto] に設定します。

サンプルベース モード

サンプル ベース モードでは、このブロックは、指定された一定の間隔でそのブロックの出力を計算します。[パルス タイプ] パラメーターを [サンプル ベース] に設定するとこのモードが有効になります。

時間ベース モードとサンプル ベース モードの重要な違いは、時間ベース モードではブロック出力がシミュレーション時間に基づくのに対し、サンプル ベース モードではブロック出力がシミュレーションの経過時間に関係なくシミュレーションの開始にのみ依存することです。詳細は、時間ベースとサンプル ベースのパルス生成モードの違いの例を参照してください。

このブロックは、サンプル ベース モードのリセット セマンティクスをサポートします。たとえば、Pulse Generator がリセット トリガーにヒットする Resettable Subsystem 内にある場合、ブロック出力は初期条件にリセットされます。

サポートするデータ型

Pulse Generator ブロックは、Simulink がサポートする任意の実数値データ型 (固定小数点データ型を含む) の信号を出力します。出力信号のデータ型は、[パルス幅] パラメーターのデータ型と同じでなければなりません。

詳細は、Simulink ドキュメンテーションの「Simulink でサポートされているデータ型」を参照してください。

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

パルス タイプ

このブロックのパルス タイプ: [時間ベース] または [サンプル ベース]。既定の設定は、[時間ベース] です。

時間 (t)

出力信号の時間変数の値のソースとしてシミュレーション時間を使用するか外部信号を使用するかを指定します。外部ソースを指定する場合、ブロックはソースを接続するための入力端子を表示します。出力パルスは次のように異なります。

  • シミュレーション時間を使用: ブロックは時間変数がシミュレーション時間に等しくなる出力パルスを生成します。

  • 外部信号を使用: ブロックは時間変数が入力端子の値に等しくなる出力パルスを生成します。これはシミュレーション時間と異なることがあります。

振幅

パルス振幅。既定の設定は 1 です。

周期

パルス タイプが時間ベースの場合は秒単位で指定したパルス周期、パルス タイプがサンプルベースの場合はサンプル時間の数として指定したパルス周期。既定の設定は 10 秒です。

パルス幅

時間ベースの場合は信号がオンになっているパルス周期の割合 (%) として指定したデューティ比、サンプルベースの場合はサンプル時間の数として指定したデューティ比。既定の設定は 5 % です。

位相遅れ

パルス タイプが時間ベースの場合は秒単位で指定したパルス発生前の遅れ、パルス タイプがサンプルベースの場合はサンプル時間の数として指定したパルス発生前の遅れ。既定の設定は 0 秒です。

サンプル時間

ブロックのサンプル時間の長さ (単位: 秒)。このパラメーターが可視になるのは、ブロックのパルス タイプがサンプルベースの場合に限ります。詳細は、『Simulink ユーザー ガイド』の「サンプル時間の指定」を参照してください。

ベクトル パラメーターを 1 次元として解釈

(スカラー拡張後に) 他のパラメーターが 1 行または 1 列の行列の場合にこのチェック ボックスをオンにすると、このブロックは 1 次元信号 (ベクトル) を出力します。このオプションを選択しなかった場合、出力の次元は他のパラメーターの次元と同じになります。「ソース ブロックの出力の次元の決定」を参照してください。

次の Simulink の例では、Pulse Generator ブロックの使用方法を示します。

時間ベースとサンプル ベースのパルス生成モードの違い

この例では、時間ベース モードとサンプル ベース モードの Pulse Generator ブロックの動作の違いを示します。

2 つの Pulse Generator ブロックがあるモデルを考えます。一方のブロックでは、[パルス タイプ] パラメーターが [時間ベース] に設定されています。他方のブロックでは [サンプル ベース] に設定されています。ブロックはともに 10 秒の boolean パルスを出力するように設定されており、5 秒 on になった後に 5 秒 off になります。シミュレーションは 3 秒の開始時間から 18 秒の終了時間まで 15 秒間実行され、これは [モデル コンフィギュレーション パラメーター] ダイアログ ボックスで指定されています。次の図は、このモデルのブロック線図と、Scope ブロックのシミュレーション出力を示しています。

シミュレーション出力が予想どおり 3 秒で開始されていることが確認できます。時間ベースの Pulse Generator は論理値 on を 2 秒間だけ生成し、その後出力は t = 5 秒で off に変化していることに注目してください。これは、このブロックが t = 3 秒でシミュレーションを開始するまで出力していなくても、t = 0 秒から出力の計算を開始しているためです。時間ベースのブロックは、出力のシミュレーション時間に依存します。

サンプル ベースのブロックは、5 秒 on のパルスの後、5 秒 off を出力します。この場合、ブロック出力はシミュレーション時間に依存せず、シミュレーション開始時にのみ開始します。

特性

データ型

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

サンプル時間

継承

多次元信号

なし

可変サイズの信号

なし

ゼロクロッシング検出

なし

コード生成

あり

R2006a より前に導入

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