Using Simulink | ![]() ![]() |
ライブラリ
詳細
Discrete-Time Integratorブロックは、純粋に離散システムを構築する場合、Integratorブロックの代わりに使用することができます。
Discrete-Time Integratorブロックを使用すると、以下のことが可能になります。
積分手法
ブロックは、つぎの手法で積分を行うことができます。Forward Euler(前進型)、Backward Euler(後退型)、Trapezoidal(中点型)です。Simulinkは、与えられたステップ k
に対して、y(k)
と x(k+1)
を更新します。T はサンプリング周期(トリガ付きサンプリング時間の場合はdelta T)です。値は上限または下限に応じてクリップされます。すべての場合において、x(0)=IC
です(必要に応じてクリップされます)。
1/s
は T/(z
-1) で近似されます。これにより、y(k) = y(k
-1) + T * u(k
-1)
が得られます。x(k) = y(k)
とすると、つぎのように得られます。
x(k+1) = x(k) + T*
u(k) (必要ならばクリップ)y(k) = x(k)
この手法では、入力端子1は直接フィードスルーをもちません。
1/s
は T*z/(z
-1)
で近似されます。これにより、y(k) = y(k
-1) + T * u(k)
が得られます。x(k) = y(k-1)
とすると、つぎのように得られます。
x(k+1) = y(k)
y(k) = x(k) + T *
u(k) (必要ならばクリップ)
この手法では、入力端子1が直接フィードスルーをもちます。
1/s
は T/2*(z+1)/(z
-1)
で近似されます。これにより、y(k) = y(k-1) + T/2 * (u(k) + u(k
-1))
が得られます。T
が(サンプリング周期に等しく)固定されている場合、x(k) = y(k-1) + T/2 * u(k-1)
とすると、つぎのように得られます。
x(k+1) = y(k) + T/2*
u(k) (必要ならばクリップ) y(k) = x(k) + T/2*
u(k) (必要ならばクリップ)
ここで、x(k+1)
は次回の出力の最良推定値です。それは x(k) != y(k)
という意味で、状態ではありません。
T
が変数の場合(すなわち、トリガ時間から得られた場合)には、つぎのようになります。
x(k+1) = y(k)
y(k) = x(k) + T/2 *
(u(k) + u(k-1)) (必要ならばクリップ)
この手法では、入力端子1が直接フィードスルーをもちます。
ブロックアイコンは、下の図に示すように、選択した積分手法を反映します。
初期条件の定義
初期条件は、ブロックダイアログボックスのパラメータとして、あるいは外部信号から入力することができます。
状態端子の利用
既に知られているつぎの2つの状況において、ユーザは、出力端子の代わりに状態端子を利用しなければなりません。
bounce
モデルを参照してください。clutch
モデルを参照してください。ユーザは、出力端子ではなく、状態端子を通じて状態の受け渡しを行うことにより、以上のような問題を回避することができます。たとえ値が同一であっても、Simulinkはそれらの数値をやや異なる時間で生成するため、これらの問題を防ぐことができます。ブロックの状態は、Show state port チェックボックスを選択することによって出力されます。
デフォルトでは、つぎに示すように、状態端子はブロックの上部に表示されます。
積分の制限
出力が指定可能なレベルを越えないように、Limit output チェックボックスを選択し、限界値を該当するパラメータフィールドに入力します。そうすると、ブロックは制限付き積分器と同じ機能をもちます。出力が限界値に近づくと、積分動作はオフとなり、積分が広がるのを防ぎます。シミュレーション中に限界値を変更することはできますが、出力が制限付きかそうでないかの状態は変更できません。出力は、つぎのようにして決められます。
状態がいつ制限を受けるかを示す信号を生成するには、Show saturation port チェックブロックを選択します。下の図のように、飽和端子がブロック出力端子の下に表示されます。
Limit output オプションを選択すると、ブロックには3つのゼロクロッシングが存在します。1つは飽和上限になるときを検出するもの、1つは飽和下限になるときを検出するもの、そして、もう1つは飽和状態でなくなるときを検出するものです。
状態のリセット
ブロックは、外部信号に基づいて、指定した初期条件にその状態をリセットすることができます。ブロックに状態をリセットさせるには、External reset の選択肢の1つを選びます。つぎの図に示すように、ブロックの入力端子の下にトリガ端子が表示されてトリガタイプを示します。
rising を選択すると、トリガ信号が正の方向でゼロを横切る瞬間をトリガイベントとします。falling を選択すると、トリガ信号が負の方向でゼロを横切る瞬間をトリガイベントとします。either を選択すると、トリガ信号が正または負いずれかの方向でゼロを横切る瞬間をトリガイベントとします。
リセット端子には直接フィードスルーがあります。ブロック出力がこの端子に直接、または直接フィードスルーをもつ一連のブロックを通してフィードバックされると、代数ループが発生します。このループを解除するには、代わりにブロック状態をリセット端子にフィードします。ブロックの状態にアクセスするには、Show state port チェックボックスを選択します。
すべてのオプションの選択
すべてのオプションを選択すると、アイコンは、つぎのように表示されます。
サポートされているデータタイプ
Discrete-Time Integratorブロックは、double
タイプの実数信号を受け入れ、出力します。
パラメータとダイアログボックス
ForwardEuler
。inf
。-inf
。1
。特性
直接フィードスルー |
あり、リセットと外部初期条件入力源端子について |
サンプル時間 |
離散 |
スカラ拡張 |
パラメータによる |
状態数 |
接続されるブロックとパラメータから継承 |
ベクトル化 |
可 |
ゼロクロッシング |
リセット検出のために1つ、飽和上限検出のためと飽和下限検出のためにそれぞれ1つずつ、そして飽和でなくなる場合に1つ。 |
![]() | Discrete State-Space | Discrete Transfer Fcn | ![]() |