このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Integrator Limited
信号を積分
ライブラリ:
Simulink /
Continuous
説明
Integrator Limited ブロックは、Integrator ブロックと基本的には同じですが、ブロックの出力が飽和の上限値と下限値で制限される点が異なります。詳細については、積分の制限を参照してください。
Simulink® は、Integrator ブロックを 1 つの状態を有する動的システムとして扱います。このブロックのダイナミクスは次式で与えられます。
ここで、
u はブロックの入力。
y はブロックの出力。
x はブロックの状態。
x0 は x の初期条件。
これらの式は、連続時間における厳密な関係を定義しますが、Simulink は、数値近似法を用いてこれらの式を有限精度で評価します。Simulink では、それぞれが特定のアプリケーションで利点をもつ複数の異なる数値積分法を使用してブロックの出力を計算することができます。各数値積分法には、アプリケーションに応じた利点があります。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペイン ([ソルバー] ペインを参照) を使用してアプリケーションに最も適した技法を選択してください。
選択されたソルバーは、(現在の入力値と前のタイム ステップでの状態の値を使用して) 現在のタイム ステップでの Integrator ブロックの出力を計算します。Integrator ブロックはこの計算モデルをサポートするために、次のタイム ステップでのそのブロックの出力を計算するときにソルバーが使用できるように現在のタイム ステップでの当該ブロックの出力を保存します。このブロックはまた、シミュレーションの実行開始時のそのブロックの初期状態を計算するときに使用する初期条件をソルバーに提供します。初期条件の既定値は 0 です。このブロックのパラメーター ダイアログ ボックスでは、初期条件に別の値を指定したり、ブロック上の初期値入力端子を作成したりすることも可能です。
パラメーターのダイアログ ボックスは、以下に使用できます。
積分の上限と下限を定義します。
ブロック出力 (状態) を入力の変化に応じて初期値にリセットするための入力を作成します。
ブロックの出力値によってブロック リセットをトリガーできるようにオプションの状態出力を作成します。
純粋な離散システムを作成するには、Discrete-Time Integrator ブロックを使用します。
初期条件の定義
初期条件は、このブロックのダイアログ ボックスでパラメーターとして定義するか、または外部信号から入力できます。
ブロック パラメーターとして初期条件を定義するには、[初期条件のソース] パラメーターを
内部
として指定し、[初期条件] フィールドに値を入力します。外部ソースから初期条件を与えるには、[初期条件のソース] パラメーターを
[外部]
に設定します。ブロックに追加の入力端子が表示されます。メモ
[出力を制限する] パラメーターを選択する場合、初期条件は飽和制限内でなければなりません。初期条件がブロックの飽和制限内にない場合、このブロックはエラー メッセージを表示します。
巡回状態のラッピング
発振器や回転運動を示す機械など、いくつかの物理的な現象は、巡回的、周期的、または回転的な性質をもちます。これらの現象を Simulink ブロック線図でモデル化するには、周期信号または巡回信号の変化率を積分して運動の状態を取得します。このアプローチでは、シミュレーションの時間範囲が長時間であり、周期信号または巡回信号を表す状態が大きい値に積分される可能性があります。これらの信号の正弦や余弦などの三角関数の値の計算には、角度の減少により値が大きくなるほど時間がかかります。信号の値が大きくなると、ソルバーの性能や精度が低下します。
この欠点に対処するアプローチの 1 つは、2π に達したときに角度の状態を 0
に (または数値の対称性の場合は n に達したときに –π に) リセットすることです。このアプローチによって、正弦および余弦の計算の精度が改善され、角度の減少時間が短縮されます。ただし、このアプローチにはゼロクロッシング検出も必要で、ソルバーのリセットが導入されるため、特に大きいモデルでは可変ステップ ソルバーのシミュレーションが低速になります。
ラップ ポイントでのソルバーのリセットを回避するために、Integrator ブロックはラップした状態をサポートします。これはブロックのパラメーターのダイアログ ボックスで [状態のラップ] をオンにして有効にできます。[状態のラップ] を有効にすると、ブロック アイコンが変化し、ブロックがラッピング状態であることを示します。
Integrator ブロックでは、ラップした状態の上限値と下限値のパラメーターで制限したラッピング状態がサポートされます。ラッピング状態を決定するアルゴリズムは、次の式で示されます。
ここで、
xl はラッピングした状態の下限値です。
xu はラッピングした状態の上限値です。
y は出力です。
ラッピング状態のサポートには、以下の利点があります。
モデルが大角度および大きな状態値に近づいたときのシミュレーションの不安定性を回避。
シミュレーション中にソルバーのリセット数が削減され、ゼロクロッシング検出の必要性がなくなり、シミュレーション時間が向上。
大角度値が回避され、角度状態の三角関数の計算が高速化。
ソルバーの精度とパフォーマンスが向上し、無制限なシミュレーション時間が実現。
積分の制限
出力信号を指定した範囲の値に制限するには、[出力を制限する] を選択し、飽和制限を指定します。出力がいずれかの制限に達すると、積分飽和現象を回避するために積分動作が無効になります。シミュレーション中、制限は変更できますが、出力を制限するかどうかは変更できません。ブロックは次の基準に従って出力信号の値を決定します。
積分値が飽和の下限以下の場合、出力信号の値は飽和の下限になります。
積分値が飽和の下限と飽和の上限の間にある場合、出力は積分値になります。
積分値が飽和の上限以上の場合、出力信号の値は飽和の上限になります。
状態が飽和制限によって制限されているかどうかを示す信号を生成するには、[飽和端子の表示] を選択します。ブロックに 2 つ目の出力端子が表示されます。
飽和は、次の 3 つの値のいずれかをもちます。
1
— 飽和の上限で状態を制限0
— 状態の制限なし–1
— 飽和の下限で状態を制限
Integrator ブロックの出力を制限する場合、ブロックに 3 つのゼロクロッシング信号が含まれます。これらの信号により、積分値が飽和の上限を超えたとき、積分値が飽和の下限を下回ったとき、および積分値が飽和した状態から飽和していない状態に変わったときにそれぞれ検出されます。
メモ
既定では、Integrator Limited ブロックに対しては [出力を制限する] パラメーターが有効になり、[飽和の上限] パラメーターの値は 1
、[飽和の下限] パラメーターの値は 0
に設定されます。
状態のリセット
このブロックは、そのブロックの状態を外部信号に基づいて指定された初期条件にリセットできます。ブロックが状態をリセットするようにするには、[外部リセット] からいずれかを選択します。ブロックの入力端子の下にトリガー端子が表示されて、トリガー タイプを示します。
[立ち上がり]
を選択すると、リセット信号が負の値または 0 から正の値に立ち上がるときに、状態をリセットします。[立ち下がり]
を選択すると、リセット信号が正の値から 0 または負の値に立ち下がるときに、状態をリセットします。[両方]
を選択すると、リセット信号が 0 から非ゼロ値に、非ゼロ値からゼロに、または符号が変化するときに、状態をリセットします。レベル
を選択すると、リセット信号が現在のタイム ステップで非ゼロであるとき、または以前のタイム ステップでの非ゼロから現在のタイム ステップでの 0 まで変化するときに、状態をリセットします。[レベルを保持]
を選択すると、リセット信号が現在のタイム ステップで非ゼロであるときに、状態をリセットします。
リセット端子は直達をもちます。ブロック出力がこの端子に (直接に、または直達のある一連のブロックを介して) フィードバックする場合、代数ループが生成されます (代数ループの概念を参照)。Integrator ブロックの状態端子を使用すると、代数ループを生成せずにこのブロックの出力をフィードバックできます。
メモ
Motor Industry Software Reliability Association (MISRA™) ソフトウェア標準規格に準拠するために、モデルで Boolean 信号を使って Integrator ブロックの外部リセット端子を駆動する必要があります。
状態端子について
Integrator ブロックのパラメーター ダイアログ ボックスの [状態端子の表示] チェック ボックスをオンにすると、この Integrator ブロックの上に追加の出力端子 (状態端子) が表示されます。
状態端子の出力は、以下のケースを除きこのブロックの標準出力端子の出力と同じです。このブロックが現在のタイム ステップでリセットされた場合、状態端子の出力はそのブロックがまだリセットされていないときのブロックの標準出力値と一致します。状態端子の出力は、そのタイム ステップにおいて、Integer ブロックの出力端子の出力よりも前に出力されます。状態端子を使用すると、次のモデル化のシナリオで代数ループが発生することを避けることができます。
自己リセット積分器を使用するシステム
Enabled Subsystem 間での状態の受け渡し
メモ
Simulink はモデルを更新するときに、これら 2 つのシナリオのどちらかで状態端子が適用されていることを確認します。適用されていない場合、エラー メッセージが表示されます。また、アクセラレータ モードで実行する参照モデルにおいて、この端子の出力のログを作成することはできません。この端子に対し、ログが有効な場合、Simulink は、参照されるモデルの実行中に「信号が見つかりません」という警告を発生します。
ブロックの出力の絶対許容誤差を指定する
既定では、Simulink ソフトウェアは [コンフィギュレーション パラメーター] ダイアログ ボックスで指定した絶対許容誤差値 (可変ステップ ソルバーの許容誤差を参照) を使用して、Integrator ブロックの出力を計算します。この値で十分なエラー制御を得られない場合は、より適切な値を、Integrator ブロックのダイアログ ボックスの [絶対許容誤差] フィールドに指定します。指定した値は、ブロックのすべての出力を計算するために使用されます。
例
拡張例
端子
入力
出力
パラメーター
拡張機能
バージョン履歴
R2006a より前に導入