ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Second-Order Integrator, Second-Order Integrator Limited

入力信号を 2 回積分

ライブラリ

連続

説明

Second-Order Integrator ブロックと Second-Order Integrator Limited ブロックは、2 次初期値問題を解きます。

ここで、u は、システムへの入力です。したがって、ブロックは 2 つの連続状態を有する動的システムです。x と dx/dt の 2 つがあります。

    メモ:   この 2 つの状態には数学的関係があります。つまり、dx/dt は x の導関数です。シミュレーションを使ってこの関係を満たすために、Simulink はブロックのパラメーターと動作にさまざまな制約をつけます。

Second-Order Itegrator 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 が飽和状態に維持された今後の時刻では適用されません。

詳細は、状態の制限の節を参照してください。例については、「sldemo_bouncesldemo_bounce」を参照してください。

線形化時に状態の制限と外部リセットを無視

モデルを線形化して簡素化する場合は、[状態制限を無視し、線形化のためにリセット] を選択して、Simulink で状態の制限と外部リセットを無視するようにします。

ブロックの出力の絶対許容誤差を指定する

既定の設定で、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス (「 可変ステップ ソルバーの許容誤差の指定」を参照) で指定した絶対許容誤差を使用して、Integrator ブロックの出力を計算します。この値で十分な誤差制御を得られない場合は、より適切な値を、パラメーター ダイアログ ボックスの [絶対許容誤差 x] フィールドの状態 x と [絶対許容誤差 dx/dt] フィールドの状態 dx/dt に指定します。Simulink は、指定した値を使用してブロックの状態値を計算します。

出力端子の表示の指定

ShowOutput パラメーターを使用すると、x 出力端子または dx/dt 出力端子を表示するかどうかを制御することができます。1 つまたは両方の出力端子を表示できますが、少なくとも 1 つを選択しなければなりません。

状態名の指定

StateNameX パラメーターと StateNameDXDT パラメーターを使用すると、x 状態および dx/dt 状態の名前を指定できます。ただし、両方の名前を指定するか、いずれも指定しないようにしなければなりません。x か dx/dt の片方の名前を指定することはできません。両方の状態名は、同じ型と長さでなければなりません。さらに、状態の数が名前の数で割り切れなければなりません。

すべてのオプションの選択

すべてのオプションが選択された場合、ブロック アイコンは次のようになります。

サポートするデータ型

Integrator ブロックは double 型の信号を受け入れ、そのデータ端子に出力します。外部リセット端子は double 型または Boolean 型の信号を受け入れます。

詳細は、Simulink ドキュメンテーションの「 Simulink でサポートされているデータ型」を参照してください。

パラメーターとダイアログ ボックス

Second-Order Integrator ブロック ダイアログ ボックスの [x] ペインは、次のように表示されます。

Second-Order Integrator ブロック ダイアログ ボックスの [dx/dt] ペインは、次のように表示されます。

Second-Order Integrator ブロック ダイアログ ボックスの [属性] ペインは、次のように表示されます。

初期条件のソース x

状態 x の初期条件ソースを指定します。

設定

既定の設定: [内部]

[内部]

[初期条件 x] パラメーターから状態 x の初期条件を取得します。

[外部]

外部ブロックから状態 x の初期条件を取得します。

ヒント

このブロックの初期条件として、infNaN を指定することはできません。

依存関係

[内部] を選択すると、[初期条件 x] パラメーターが有効になります。

[外部] を選択すると、[初期条件 x] パラメーターが無効になります。

コマンド ライン情報

パラメーター: ICSourceX
タイプ: 文字列
値: 'internal' | 'external'
既定の設定: 'internal'

初期条件 x

状態 x の初期条件を指定します。

設定

既定の設定: 0.0

ヒント

このブロックの初期条件として、infNaN を指定することはできません。

依存関係

[初期条件のソース x][内部] に設定すると、このパラメーターが有効になります。

[初期条件のソース x][外部] に設定すると、このパラメーターが無効になります。

コマンド ライン情報

パラメーター: ICX
タイプ: ベクトルまたはスカラー
値: any valid real value
既定の設定: 0.0

範囲 x

ブロックの状態 x を [下限 x][上限 x] パラメーターの間の値に制限します。

設定

既定の設定: 2 次積分器には [オフ]、2 次限定積分器には [オン]

[オン]

状態 x を [下限 x][上限 x] パラメーターの間の値に制限します。

[オフ]

状態 x の出力を [下限 x][上限 x] パラメーターの間の値に制限しません。

依存関係

このパラメーターは [上限 x] パラメーターを有効にします。

このパラメーターは [下限 x] パラメーターを有効にします。

コマンド ライン情報

パラメーター: LimitX
タイプ: 文字列
値: 'on' | 'off'
既定の設定: 'off' | 'on'

上限 x

状態 x の上限を指定します。

設定

既定の設定: 2 次積分器には inf、2 次限定積分器には 1

ヒント

状態 x の飽和の上限は、飽和の下限より厳密に大きくなければなりません。

依存関係

[範囲 x] によって、このパラメーターが有効になります。

コマンド ライン情報

パラメーター: UpperLimitX
タイプ: スカラーまたはベクトル
値: any valid real value
既定の設定: 'inf' | 1

下限 x

状態 x の下限を指定します。

設定

既定の設定: 2 次積分器には –inf、2 次限定積分器には 0

ヒント

状態 x の飽和の下限は、飽和の上限より厳密に小さくなければなりません。

依存関係

[範囲 x] によって、このパラメーターが有効になります。

コマンド ライン情報

パラメーター: LowerLimitX
タイプ: スカラーまたはベクトル
値: any valid value
既定の設定: '-inf' | 0

絶対許容誤差 x

状態 x を計算するために絶対許容誤差を指定します。

設定

既定の設定: [auto]

  • auto、-1、実数スカラー、実数ベクトルのいずれかを入力できます。

  • auto または -1 を入力した場合、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス (「[ソルバー] ペイン」を参照) の絶対許容誤差を使用して状態 x を計算します。

  • 実数スカラー値を入力した場合、その値は [コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差をオーバーライドし、すべての x 状態の計算のために使用されます。

  • 実数ベクトルを入力した場合、そのベクトルの次元は状態 x の次元と一致しなければなりません。[コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差は、これらの値でオーバーライドされます。

コマンド ライン情報

パラメーター: AbsoluteToleranceX
タイプ: x と同じ次元の文字列、スカラー、ベクトル
値: any positive real scalar or vector | {'auto'} | {-1}
既定の設定: 'auto'

状態名 x

状態 x に固有名を割り当てます。

設定

既定の設定: ''

ヒント

  • 単一の状態に名前を割り当てる場合は、'position' のように単一引用符の間に名前を入力します。

  • 複数の x 状態に名前を割り当てるには、中かっこ内にコンマ区切りのリストにして、たとえば、{'a', 'b', 'c'} のように入力します。各名前は固有でなければなりません。

  • 状態名は選択されたブロックに対してのみ適用されます。

  • x の状態名を指定する場合は、dx/dt の状態名も指定しなければなりません。

  • x と dx/dt の状態名の種類と長さは同じでなければなりません。

  • 状態の数は状態名の数で割り切れる必要があります。指定する名前の数は x 状態の数より少なくできますが、その逆はできません。たとえば、4 つの状態を含むシステムで 2 つの名前を指定することは可能です。最初の名前は最初の 2 つの状態に適用され、2 番目の名前は最後の 2 つの状態に適用されます。ただし、矛盾がないように同じスキームを dx/dt の状態名に適用しなければなりません。

  • MATLAB® ワークスペース内の変数を状態名に割り当てる場合は、引用符なしで変数を入力します。変数には文字列またはセル配列が使用できます。

コマンド ライン情報

パラメーター: StateNameX
タイプ: 文字列
値: any valid expression
既定の設定: ''

初期条件ソース dx/dt

状態 dx/dt の初期条件ソースを指定します。

設定

既定の設定: [内部]

[内部]

[初期条件 dx/dt] パラメーターから状態 dx/dt の初期条件を取得します。

[外部]

外部ブロックから状態 dx/dt の初期条件を取得します。

ヒント

このブロックの初期条件として、infNaN を指定することはできません。

依存関係

[内部] を選択すると、[初期条件 dx/dt] パラメーターが有効になります。

[外部] を選択すると、[初期条件 dx/dt] パラメーターが無効になります。

コマンド ライン情報

パラメーター: ICSourceDXDT
タイプ: 文字列
値: 'internal' | 'external'
既定の設定: 'internal'

初期条件 dx/dt

状態 dx/dt の初期条件を指定します。

設定

既定の設定: 0.0

ヒント

このブロックの初期条件として、infNaN を指定することはできません。

依存関係

[初期条件ソース dx/dt][内部] に設定すると、このパラメーターが有効になります。

[初期条件ソース dx/dt][外部] に設定すると、このパラメーターが無効になります。

コマンド ライン情報

パラメーター: ICDXDT
タイプ: スカラーまたはベクトル
値: any valid real value
既定の設定: 0.0

制限 dx/dt

ブロックの dx/dt 状態を [下限 dx/dt][上限 dx/dt] パラメーターの間の値に制限します。

設定

既定の設定: 2 次積分器には [オフ]、2 次限定積分器には [オン]

[オン]

ブロックの状態 dx/dt を [下限 dx/dt][上限 dx/dt] パラメーターの間の値に制限します。

[オフ]

ブロックの状態 dx/dt を [下限 dx/dt][上限 dx/dt] パラメーターの間の値に制限しません。

ヒント

x の飽和の制限を設定する場合は、[上限 dx/dt][下限 dx/dt] で定義された間隔にはゼロが含まれていなければなりません。

依存関係

このパラメーターは [上限 dx/dt] を有効にします。

このパラメーターは [下限 dx/dt] を有効にします。

コマンド ライン情報

パラメーター: LimitDXDT
タイプ: 文字列
値: 'On' | 'Off'
既定の設定: 'Off' | 'On'

上限 dx/dt

状態 dx/dt の上限を指定します。

設定

既定の設定: 'inf'

ヒント

x を制限する場合、このパラメーターは厳密に正の値をもたなければなりません。

依存関係

[制限 dx/dt] によって、このパラメーターが有効になります。

コマンド ライン情報

パラメーター: UpperLimitDXDT
タイプ: スカラーまたはベクトル
値: any valid real value
既定の設定: 'inf'

下限 dx/dt

状態 dx/dt の下限を指定します。

設定

既定の設定: '-inf'

ヒント

x を制限する場合、このパラメーターは厳密に負の値をもたなければなりません。

依存関係

[制限 dx/dt] によって、このパラメーターが有効になります。

コマンド ライン情報

パラメーター: LowerLimitDXDT
タイプ: スカラーまたはベクトル
値: any valid real value
既定の設定: '-inf'

絶対許容誤差 dx/dt

状態 dx/dt を計算するために絶対許容誤差を指定します。

設定

既定の設定: auto

  • auto」または数値を入力できます。

  • auto」を入力した場合、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス (「[ソルバー] ペイン」を参照) の絶対許容誤差を使用してブロックの dx/dt 出力を計算します。

  • 数値を入力すると、その値が [コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差の代わりに使用されます。

コマンド ライン情報

パラメーター: AbsoluteToleranceDXDT
タイプ: スカラー
値: any valid positive real value
既定の設定: 'auto'

状態名 dx/dt

状態 dx/dt に固有名を割り当てます。

設定

既定の設定: ''

ヒント

  • 単一の状態に名前を割り当てる場合は、'velocity' のように単一引用符の間に名前を入力します。

  • 複数の dx/dt 状態に名前を割り当てるには、中かっこ内にコンマ区切りのリストにして、たとえば、{'a', 'b', 'c'} のように入力します。各名前は固有でなければなりません。

  • 状態名は選択されたブロックに対してのみ適用されます。

  • dx/dt の状態名を指定する場合は、 x の状態名も指定しなければなりません。

  • x と dx/dt の状態名の種類と長さは同じでなければなりません。

  • 状態の数は状態名の数で割り切れる必要があります。指定する名前の数は dx/dt 状態の数より少なくできますが、その逆はできません。たとえば、4 つの状態を含むシステムで 2 つの名前を指定することは可能です。最初の名前は最初の 2 つの状態に適用され、2 番目の名前は最後の 2 つの状態に適用されます。ただし、矛盾がないように同じスキームを x の状態名に適用しなければなりません。

  • MATLAB ワークスペース内の変数を状態名に割り当てる場合は、引用符なしで変数を入力します。変数には文字列またはセル配列が使用できます。

コマンド ライン情報

パラメーター: StateNameDXDT
タイプ: 文字列
値: any valid expression
既定の設定: ''

外部リセット

リセット信号でトリガー イベントが発生したときに、状態を初期条件にリセットします。

設定

既定の設定: [なし]

[なし]

状態を初期状態にリセットしません。

[立ち上がり]

リセット信号が 0 から正の値に、あるいは負の値から正の値に立ち上がるときに、状態をリセットします。

[立ち下がり]

リセット信号が正の値から 0 に、あるいは正の値から負の値に立ち下がるときに、状態をリセットします。

[両方]

リセット信号が 0 から非ゼロに、あるいは符号が変化するときに、状態をリセットします。

コマンド ライン情報

パラメーター: ExternalReset
タイプ: 文字列
値: 'none' | 'rising' | 'falling' | 'either'
既定の設定: 'none'

ゼロクロッシング検出を有効にする

ゼロクロッシング検出を有効にする場合は選択します。詳細は、Simulink ドキュメンテーションの「ゼロクロッシング検出」

設定

既定の設定: オン

オン

ゼロクロッシング検出を有効にします。

オフ

ゼロクロッシング検出を無効にします。

コマンド ライン情報

ブロック固有のパラメーター」を参照してください。

x が飽和に達したときに dx/dt を再初期化

状態 x が飽和した時点で、dx/dt を現在の初期条件にリセットします。

設定

既定の設定: オフ

[オン]

x が飽和したら、dx/dt を初期条件にリセットします。

[オフ]

x が飽和しても、dx/dt をリセットしません。

ヒント

dx/dt 初期条件には、x が飽和からすぐに抜け出すことができる値が必要です。そうでない場合、dx/dt の初期条件は無視され、ブロック状態の数学的な整合性が維持されます。

コマンド ライン情報

パラメーター: ReinitDXDTwhenXreachesSaturation
タイプ: 文字列
値: 'on' | 'off'
既定の設定: 'off'

状態制限を無視し、線形化のためにリセット

線形化を行う目的で、Simulink が指定された状態の制限と外部リセットを無視するようにします。

設定

既定の設定: オフ

[オン]

指定された状態の制限と外部リセットを無視します。

[オフ]

指定された状態の制限と外部リセット設定を適用します。

コマンド ライン情報

パラメーター: IgnoreStateLimitsAndResetForLinearization
タイプ: 文字列
値: 'on' | 'off'
既定の設定: 'off'

出力の表示

ブロックの出力端子を指定します。

設定

既定の設定: [両方]

[両方]

x および dx/dt の両方の出力端子を表示します。

[x]

x 出力端子のみを表示します。

[dx/dt]

dx/dt 出力端子のみを表示します。

コマンド ライン情報

パラメーター: ShowOutput
タイプ: 文字列
値: 'both' | 'x' | 'dxdt'
既定の設定: 'both'
この情報は役に立ちましたか?