Main Content

伝播が継承サンプル時間に影響を与える方法

モデルを更新するとき (シミュレーションの開始時など)、Simulink® はサンプル時間の伝播と呼ばれるプロセスを使用して、サンプル時間を継承するブロックのサンプル時間を決定します。以下の図は、Gain ブロックを駆動している、サンプル時間の周期 Ts をもつ Discrete Filterブロックを示しています。

Gain ブロックの出力は入力の定数倍なので、出力はフィルターと同じレートで変化します。言い換えると、Gain ブロックは、フィルターのサンプルレートと等しい有効なサンプルレートをもちます。このような有効なレートの確立は、Simulink におけるサンプル時間の伝播の背後にある基本的なメカニズムです。

サンプル時間の伝播プロセス

Simulink は次の基本的なプロセスを使用して、サンプル時間をブロックに割り当てます。サンプル時間はこれらのブロックにより継承されます。

  1. 既知のサンプル時間情報を前方向に伝播します。

  2. 既知のサンプル時間情報を後ろ方向に伝播します。

  3. 追加のサンプル時間を決定するための一連のヒューリスティックを適用します。

  4. すべてのサンプル時間が決定されるまで操作を繰り返します。

サンプル時間を割り当てるための Simulink のルール

ブロックベースのサンプル時間をもつブロックは、その入力に接続されているブロックのサンプル時間に基づき、また次のルールに従って、サンプル時間を継承します。

ルール動作
すべての入力が同じサンプル時間で、ブロックがそのサンプル時間を受け入れることができる場合Simulink はサンプル時間をブロックに割り当てます。
異なる離散サンプル時間の入力があり、すべての入力サンプル時間が最速の入力サンプル時間の整数倍である場合Simulink は最速の入力のサンプル時間をブロックに割り当てます (この割り当てでは、ブロックが最速のサンプル時間を受け入れ可能であることが前提となります)。
異なる離散サンプル時間の入力があり、一部の入力サンプル時間が最速のサンプル時間の整数倍ではなく、モデルが可変ステップ ソルバーを使用している場合Simulink は固定マイナー ステップのサンプル時間をブロックに割り当てます。
異なる離散サンプル時間の入力があり、一部の入力サンプル時間が最速のサンプル時間の整数倍ではなく、モデルが固定ステップ ソルバーを使用し、ブロックにもたらされるサンプル時間の最大公約数 (GCD) を Simulink が計算できる場合Simulink は GCD サンプル時間をブロックに割り当てます。それ以外の場合、Simulink はモデルの固定ステップ サイズをブロックに割り当てます。
一部の入力のサンプル時間が不明であるか、ブロックがサンプル時間を受け入れられない場合Simulink は一連のヒューリスティックに基づいてブロックのサンプル時間を決定します。

サンプル時間の逆伝播

ソース ブロックのサンプル時間を継承 (-1) として指定するモデルを更新またはシミュレートすると、ソース ブロックのサンプル時間が逆伝播する可能性があります。Simulink はソース ブロックのサンプル時間を、ソース ブロックに接続されているブロックによって指定または継承されるサンプル時間と同一になるよう設定する場合があります。たとえば、次のモデルでは、Sine Wave ブロックによってサンプル時間が 1Discrete-Time Integrator ブロックが駆動されていることを Simulink ソフトウェアが認識し、Sine Wave ブロックにサンプル時間として 1 を割り当てます。

このサンプル時間の設定を確認するには、Simulink ツールストリップの [デバッグ] タブから [情報のオーバーレイ][色] を選択して、両方のブロックが赤くなっていることを確かめます。Discrete-Time Integrator ブロックは、サンプル ヒット時間中にのみ入力を確認するので、この変更はシミュレーション結果には影響しませんが、それによってシミュレーションのパフォーマンスが向上します。

以下のモデルで示されるように、Discrete-Time Integrator ブロックを連続 Integrator ブロックで置き換えると、Sine Wave ブロックと Gain ブロックが連続ブロックに変わります。[モデル化] タブで [モデルの更新] を選択して色を更新することで、この変更をテストできます。両方のブロックが黒で表示されるようになります。

メモ

逆伝播により、モデル ソースのサンプル時間はブロックの接続状態に依存するようになります。ソースがサンプル時間を継承するモデルの接続状態を変更すると、ソースのサンプル時間が意図せずに変更される場合があります。このため、モデルを更新またはシミュレートするときに、モデルにサンプル値を継承するソースが含まれている場合は、既定により Simulink によってコマンド ラインに警告が表示されます。詳細については、-1 のサンプル時間が指定されたソース ブロックを参照してください。

関連するトピック