Using Simulink | ![]() ![]() |
サンプル時間の伝播
つぎの図は、Gainブロックに接続しているサンプル時間が Ts
のDiscrete Filterブロックを示しています。
Gainブロックの出力は、入力の定数倍なので、出力はフィルタと同じレートで変化します。言い換えると、Gainブロックは、フィルタのサンプルレートと等しい有効なサンプルレートをもちます。これは、Simulinkにおけるサンプル時間の伝播での基本的なメカニズムです。
Simulinkは、つぎの規則に従って、個々のブロックにサンプル時間を設定します。
入力が異なるサンプル時間をもつブロックに対して、すべてのサンプル時間が最も速いサンプル時間の整数倍である場合、ブロックは最も速い入力のサンプル時間に割り当てられます。可変ステップソルバが用いられている場合は、ブロックは連続サンプル時間を割り当てられます。固定ステップソルバが用いられていて、サンプル時間の最大公約数(基本サンプル時間)が計算可能な場合は、その値が用いられます。そうでない場合は、連続サンプル時間が用いられます。
ある状況下では、Simulinkはsourceブロックへのサンプル時間の逆伝播がシミュレーションの出力に影響を与えずに行うことができる場合は、行います。たとえば下記のモデルで、Simulinkは、Signal GeneratorブロックがDiscrete-Time Integratorブロックに接続しているので、Signal GeneratorブロックとGainブロックにDiscrete-Time Integratorブロックと同じサンプル時間を割り当てることを認識します。
このことは、Sample Time Colors を可能にして、すべてのブロックを赤に色付けすることによって確認することができます。Discrete-Time Integratorブロックはサンプル時間で入力を見るだけなので、この変更はシミュレーションの結果に影響を与えませんが、性能は改善されます。
下図のようにDiscrete-Time Integratorブロックをcontinuous Integratorブロックで置き換え、Edit メニューから Update Diagram を選択してモデルを再度色付けすると、Signal GeneratorブロックとGainブロックは、黒に色付けされたことでわかるようにcontinuousブロックに変更されます。
![]() | 離散システムのステップサイズの決定 | 不変定数 | ![]() |