Using Simulink | ![]() ![]() |
不変定数
ブロックは明確に定義されたサンプル時間をもつか、または接続されているブロックか、または接続するブロックからサンプル時間を継承します。
Simulinkは、Constantブロックに無限大のサンプル時間を割り当てています。そのため、それを定数サンプル時間 と呼んでいます。他のブロックが、Constantブロックからの出力を入力とし、その他のブロックのサンプル時間を継承しない場合、定数サンプル時間をもちます。このことは、モデルユーザによってパラメータが明示的に変更されない限り、このようなブロックの出力は、シミュレーション中、変化しないことを意味しています。
たとえば、つぎのようなモデルでは、ConstantブロックとGainブロックが定数サンプル時間をもつことになります。
Simulinkはシミュレーション中に、ブロックパラメータを変更できる機能をもっているので、定数サンプル時間をもつブロックも含め全てのブロックについて、そのモデルにとって有効なサンプル時間で出力を生成できます。
この機能を使って、全ての ブロックがそれぞれのサンプル時間時に、出力を計算するか、または純粋に連続的なシステムの場合では、全てのシミュレーションステップで出力を計算します。シミュレーション中にパラメータが変化しない定数サンプル時間をもつブロックに対して、シミュレーション中にこれらのブロックをステップ毎に計算することは非効率で、シミュレーション速度の低下につながってしまいます。
InvariantConstantsパラメータを設定することにより、シミュレーションの"ループ"から、定数サンプル時間をもつブロックすべての取り除くことができます。この機能は、つぎの2つの効果をもたらします。第1に、このようなブロックに対するパラメータは、シミュレーション中に変更されなくなります。第2に、シミュレーション速度が改善されます。シミュレーション速度の改善は、モデルの複雑さ、定数サンプル時間をもつブロック数、シミュレーションの有効サンプリングレートに依存します。
つぎのコマンドを入力すると、モデルに対して、パラメータを設定することができます。
set_param('model_name', 'InvariantConstants', 'on')
パラメータの値に 'off'
を割り当てて、コマンドを再度入力してこの機能をオフにすることができます。.
Format メニューから Sample Time Colors を選択することで、どのブロックが定数サンプル時間をもっているかを確認できます。定数サンプル時間をもつブロックは、マジェンタに色付けされます。
![]() | サンプル時間の伝播 | サンプル時間の色分け | ![]() |