このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Second-Order Integrator
入力信号の 2 次積分
ライブラリ:
Simulink /
Continuous
説明
Second-Order Integrator ブロックと Second-Order Integrator Limited ブロックは、2 次初期値問題を解きます。
ここで、u は、システムへの入力です。したがって、ブロックは 2 つの連続状態を有する動的システムです。x と dx/dt の 2 つがあります。
メモ
この 2 つの状態には数学的関係があります。つまり、dx/dt は x の導関数です。シミュレーションを使ってこの関係を満たすために、Simulink はブロックのパラメーターと動作にさまざまな制約をつけます。
Second-Order Integrator Limited ブロックは、既定の設定で指定の上下限に基づいて状態を制限するという点以外では、Second-Order Integrator ブロックと同じです。詳細については、状態の制限を参照してください。
Simulink® ソフトウェアは、ブロックの出力を計算するために複数の異なる数値積分法を利用することができます。各積分法はそれぞれ特定のアプリケーションで利点をもっています。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインを使用してアプリケーションに最も適した技法を選択してください(詳細については、ソルバーの選択基準を参照してください)。選択されたソルバーは、現在の入力値を使用して現在のタイム ステップでの Second-Order Integrator ブロックの状態を計算します。
ブロック パラメーターのダイアログ ボックスは、以下に使用できます。
各状態の初期条件のソースが内部または外部であるかを指定する
状態の初期条件の値を指定する
一方または両方の状態の上下限を定義する
各状態の絶対許容誤差を指定する
両方の状態の名前を指定する
外部リセット条件を選択する
ゼロクロッシング検出を有効にする
x が飽和に達したときに dx/dt を再初期化
Simulink が線形化時に状態の制限と外部リセットを無視するよう指定する
初期条件の定義
各状態の初期条件は、このブロックのダイアログ ボックスでパラメーターとして個々に定義するか、または外部信号から入力できます。
状態 x の初期条件をブロック パラメーターとして定義するには、[初期条件のソース x] ドロップダウン メニューから
内部
を選択し、[初期条件 x] フィールドに値を入力します。状態 x の外部ソースから初期条件を取得するには、[初期条件ソース x] パラメーターを
[外部]
に指定します。ブロックに追加の入力端子が表示されます。状態 dx/dt の初期条件をブロック パラメーターとして定義するには、[初期条件ソース dx/dt] ドロップダウン メニューから
内部
を選択し、[初期条件 dx/dt] フィールドに値を入力します。状態 dx/dt の外部ソースから初期条件を取得するには、[初期条件ソース dx/dt] を
外部
に指定します。ブロックに追加の入力端子が表示されます。
両方の状態の初期条件に外部ソースを使用する場合は、ブロックは次のように表示されます。
メモ
Simulink では、
inf
またはNaN
の初期条件の値を指定することはできません。飽和の範囲を指定して (状態の制限を参照)、状態 x または状態 dx/dt を制限したときに、1 つ以上の初期条件が対応する範囲外にある場合、各状態は最も近い有効な値に初期化され、矛盾のない初期条件が計算されます。
状態の制限
2 次システムのモデルを作成する場合は、ブロックの状態を制限しなければならない場合があります。たとえば、円筒内のピストンの動きはニュートンの第 2 法則によって制御されており、ピストンの位置 (x) に制約があります。Second-Order Integrator ブロックを使用すると、状態 x と dx/dt を独立して制限することができます。シミュレーション中、制限値を変更できますが、状態が制限されているかどうかは変更できません。上限は対応する下限より大きくするという重要な規則に必ず従ってください。
ブロックの外観は一方または両方の状態を制限する場合に変更されます。両方の状態を制限した場合、ブロックは次のようになります。
各状態には、[ブロック パラメーター] ダイアログ ボックスを使用して、適切な飽和の制限値を設定できます。
x のみの制限
Second-Order Integrator Limited ブロックを使用すると、既定で両方の状態が制限されます。ただし、[制限 x] を選択し、適切なパラメーター フィールドに制限値を入力して、Second-Order Integrator ブロックの状態 x を手動で制限することもできます。
ブロックでは、状態の値は次のように決まります。
x が下限値以下の場合、x の値はその下限値のままで、dx/dt はゼロに設定されます。
x が上限値と下限値の間にある場合、両方の状態は 2 次 ODE によって与えられた軌跡に従います。
x が上限値以上の場合、x の値はその上限値のままで、dx/dt はゼロに設定されます。
x が飽和に達したときに dx/dt を新しい値に再初期化するように設定できます。x が飽和に達した場合の dx/dt の再初期化を参照してください。
dx/dt のみの制限
状態 x 同様、状態 dx/dt は既定の設定で、 Second-Order Integrator Limited ブロックのダイアログ ボックスの [dx/dt] ペインで制限付きで設定されます。この [制限 dx/dt] パラメーターは、Second-Order Integrator ブロックで手動によって設定できます。いずれの場合も、dx/dt に対して適切な制限値を入力しなければなりません。
状態 dx/dt のみを制限する場合、ブロックは次のように dx/dt の値を決めます。
dx/dt が下限値以下である場合、dx/dt の値はその下限値のままです。
dx/dt が上限値と下限値の間にある場合、両方の状態は 2 次 ODE によって与えられた軌跡に従います。
dx/dt が上限値以上の場合、dx/dt の値はその上限値のままです。
状態 dx/dt がその上限値または下限値のままである場合、x の値は 1 次初期値問題によって制御されます。
ここで、L は dx/dt 制限値 (上限または下限)、tL は dx/dt がこの制限値に達した時間、xL はその時間における状態 x の値をそれぞれ示します。
両方の状態の制限
両方の状態を制限する場合、Simulink は dx/dt の上限値と下限値に指定できる値を制限して、状態の数学的な整合性を維持します。このような制約は、次の制限を満たすために必要です。
x がその飽和の制限値に達している場合は、dx/dt の値をゼロにしなければなりません。
x が上限を脱出するには、dx/dt の値は厳密に負の値でなければなりません。
x が下限を脱出するには、dx/dt の値は厳密に正の値でなければなりません。
このような場合は、dx/dt の上限は厳密に正の値で、dx/dt の下限は厳密に負の値でなければなりません。
両方の状態が制限されている場合、ブロックでは次のように状態が決まります。
x が制限値に達すると、「x のみを制限」で説明したのと同じ動作が生成されます。
dx/dt がいずれかの制限値に達すると、「dx/dt のみの制限」で説明したのと同じ動作 (dx/dt がいずれかの制限値のままの場合に 1 次 ODE を使用して x を計算する動作を含む) が生成されます。このような場合、x はいずれかの制限値に達すると、その制限値のままで、 dx/dt はゼロに設定されます。
ともに個々の制限値に同時に達した場合は、x の動作は dx/dt の動作をオーバーライドして、状態の整合性を維持します。
両方の状態を制限する場合、x が飽和に達したときに dx/dt を再初期化するように設定できます。再初期化された値が dx/dt で指定された範囲外の場合、dx/dt は最も近い有効な値に再度初期化され、矛盾のない初期条件が計算されます。x が飽和に達した場合の dx/dt の再初期化を参照してください。
状態のリセット
このブロックは、そのブロックの状態を外部信号に基づいて指定された初期条件にリセットできます。ブロックが状態をリセットするようにするには、[属性] ペインの [外部リセット] の選択肢の 1 つを選択します。ブロックの入力端子の下にトリガー端子が表示されて、トリガー タイプを示します。
立ち上がり
を選択すると、リセット信号が 0 から正の値に、負の値から正の値に、負の値から 0 に立ち上がるときに、状態をリセットします。立ち下がり
を選択すると、リセット信号が正の値から 0 に、正の値から負の値に、0 から負の値に立ち下がるときに、状態をリセットします。両方
を選択すると、リセット信号が 0 から非ゼロに、または符号が変化するときに、状態をリセットします。
リセット端子は直達をもちます。ブロック出力がこの端子に (直接に、または直達のある一連のブロックを介して) フィードバックする場合、代数ループが生成されます (代数ループの概念を参照)。
ゼロクロッシングの有効化
このパラメーターは、ゼロクロッシングがこのブロックに対して有効かどうかを制御します。既定の設定で、[ゼロクロッシング検出を有効にする] パラメーターが [属性] ペインで選択されています。ただし、このパラメーターは [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの [ゼロクロッシング コントロール] が [ローカル設定を使用]
に設定されている場合にのみ有効です。詳細については、ゼロクロッシング検出を参照してください。
x が飽和に達した場合の dx/dt の再初期化
特定のモデリング アプリケーションでは、x が飽和からすぐに抜け出るために、状態 x が限界に達したときに dx/dt を再初期化しなければなりません。この条件を満たすには、[属性] ペインの [x が飽和に達したときに dx/dt を再初期化] を選択します。
このオプションがオンの場合は、x が飽和した時点で、Simulink は dx/dt 初期化条件の現在の値 (パラメーターまたは信号) を使用して、状態 x が飽和からすぐに抜け出すことができるかどうかを確認します。できる場合は、その時点で初期化条件の値 (パラメーターまたは信号) によって状態 dx/dt が再初期化されます。できない場合は、ブロックの状態が矛盾しないように、現時点でこのパラメーターは無視され、dx/dt はゼロに設定されます。
このパラメーターは、x が実際に飽和の制限値に達した時点でのみ適用されます。x が飽和状態に維持された今後の時刻では適用されません。
詳細は、状態の制限の節を参照してください。例については、跳ねるボールのシミュレーションを参照してください。
線形化時に状態の制限と外部リセットを無視
モデルを線形化して簡素化する場合は、[状態制限を無視し、線形化のためにリセット] を選択して、Simulink で状態の制限と外部リセットを無視するようにします。
ブロックの出力の絶対許容誤差を指定する
既定の設定で、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス (可変ステップ ソルバーの許容誤差を参照) で指定した絶対許容誤差を使用して、Integrator ブロックの出力を計算します。この値で十分なエラー制御を得られない場合は、より適切な値を、パラメーター ダイアログ ボックスの [絶対許容誤差 x] フィールドの状態 x と [絶対許容誤差 dx/dt] フィールドの状態 dx/dt に指定します。Simulink は、指定した値を使用してブロックの状態値を計算します。
出力端子の表示の指定
ShowOutput
パラメーターを使用して、x 出力端子または dx/dt 出力端子を表示するかどうかを制御できます。1 つまたは両方の出力端子を表示できますが、少なくとも 1 つを選択しなければなりません。
状態名の指定
StateNameX
パラメーターと StateNameDXDT
パラメーターを使用すると、x 状態および dx/dt 状態の名前を指定できます。ただし、両方の名前を指定するか、いずれも指定しないようにしなければなりません。x か dx/dt の片方の名前を指定することはできません。両方の状態名は、同じ型と長さでなければなりません。さらに、状態の数が名前の数で割り切れなければなりません。
すべてのオプションの選択
すべてのオプションが選択された場合、ブロック アイコンは次のようになります。
例
端子
入力
出力
パラメーター
拡張機能
バージョン履歴
R2010a で導入