Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Derivative

時間に関して連続入力信号の連続状態変数の微分係数の近似を計算する

  • Derivative block

ライブラリ:
Simulink / Continuous

説明

シミュレーション時間 t について、Derivative ブロックが連続入力信号 u の連続状態変数の微分係数を近似します。連続サンプル時間をもつ微分可能信号の微分を計算する必要がある場合は、Derivative ブロックを使用します。

Derivative ブロックを不適切に使用すると、シミュレーション結果が不正確になることがあります。可能であれば、Derivative ブロックの以下の代替方法を検討してください。

  • 微分ではなく積分を求めるようにシステム方程式を変更します。次に、微分ではなく Integrator ブロックなどのブロックを使用して積分を求めるように、新しい方程式に基づいてモデルを構成します。

    例については、最適な形式の数学モデルを参照してください。

  • Transfer Fcn ブロックも Derivative ブロックの入力信号または出力信号に作用する場合は、代わりに伝達関数で零点を追加することで信号の微分を実装します。

  • 離散システムで離散信号の有限差分または差分の商を計算するには、Discrete Derivative ブロックを使用します。

Derivative ブロックを使用する必要がある場合は、連続サンプル時間をもつ微分可能な入力信号でのみそのブロックを使用します。

  • この端子に接続されている信号に離散サンプル時間または固定マイナー サンプル時間が含まれている場合は、警告が出されます。 (R2023b 以降)

  • 入力信号に定数サンプル時間が含まれている場合には警告は出されませんが、信号値を調整すると、入力信号で不連続点が生じます。このような不連続点で微分すると、出力信号にスパイクが発生します。

  • 離散システムで離散信号の有限差分または差分の商を計算するには、Discrete Derivative ブロックを使用します。

連続状態変数の微分係数近似の精度の確認

Derivative ブロックを使用する場合は、ブロックの出力信号の精度が要件を満たしていることを確認する必要があります。近似のコンテキストで使用する場合でも、Derivative ブロックの出力信号の精度はステップ サイズに依存しており、システムの残りのダイナミクスに左右されることもあります。

[最大ステップ サイズ] パラメーターを使用して、精度の要件を満たすには大きすぎるステップが可変ステップ ソルバーによって実行されないようにします。最大ステップ サイズに適切な値を選択するには、シミュレーションを複数回実行する必要が生じることがあります。

可変ステップ シミュレーションでは、ソルバーはモデル全体で連続状態の計算の誤差を監視して各メジャー タイム ステップのサイズを決定します。連続状態の計算値の誤差が指定した許容誤差レベルを超えている場合、ソルバーは誤差が許容誤差内に収まるようになるまでステップ サイズを削減します。

Derivative ブロックには連続状態が含まれていないため、ソルバーはステップ サイズを調整して Derivative ブロックが許容誤差要件を満たしていることを確認できません。入力信号値が急激に変化したときにソルバーが大きいタイム ステップを実行すると、ブロックで予期しない出力値が生成されることがあります。

端子

入力

すべて展開する

入力信号は実数でなければならず、スカラーまたはベクトルのサンプル値を含めることができます。Derivative ブロックを使用して、連続サンプル時間をもつ信号についてのみ連続状態変数の微分係数を近似します。

データ型: double

出力

すべて展開する

Derivative ブロックは時間について入力信号の連続状態変数の微分係数を近似し、結果を連続信号として提供します。出力信号の次元と実数/複素数は、入力信号の次元と実数/複素数に一致します。これは実数でなければなりません。

データ型: double

パラメーター

すべて展開する

ブロック パラメーターを対話形式で編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップから、[シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

動的な式 y=u˙ に対する状態空間表現が存在しないため、連続状態変数の微分係数の正確な線形化は困難です。このソフトウェアでは、極をシステムに追加して s/(cs+1). という形式の伝達関数を作成することで、Derivative ブロックの線形化を近似しています。極はこのパラメーター値によって決定されたカットオフ周波数をもつロー パス フィルターとしても機能し、ノイズの影響が削減されます。

ベスト プラクティスとして、このパラメーター値は 1fb として指定します。ここで、fb は、極の追加によって得られたローパス フィルターのカットオフ周波数 (ラジアン/秒単位) です。システムのナイキスト レート (周波数) 以上のカットオフ周波数を選択します。既定のパラメーター値 inf はカットオフ周波数 0 に対応しています。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: CoefficientInTFapproximation
値: inf (既定値) | finite positive scalar number
データ型: char | string

例: set_param("MyModel/Derivative","CoefficientInTFapproximation","0.001") configures the Derivative block named Derivative in the model MyModel to use the coefficient 0.001 in the transfer function used for approximate linearization of the block. This coefficient value results in a cutoff frequency of 1000 radians per second.

ブロックの特性

データ型

double

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

アルゴリズム

Derivative ブロックは数値の差 Δu/Δt, を計算して、連続状態変数の微分係数 dudt, を近似します。ここで、Δu は入力信号値の変化であり、Δt はソルバーが現在のシミュレーション時間に達するために進めたメジャー タイム ステップのサイズです。連続状態変数の微分係数の近似の精度は、入力信号の変化率とステップ サイズに依存しています。

Derivative ブロックの初期出力値は常に 0 です。初期出力値を考慮し、次の方程式がブロックの入力信号と出力信号の正確な関係を表します。

y(t)=ΔuΔt=u(t)u(Tprevious)tTprevious|t>Tprevious,

  • t は現在のシミュレーション時間です。

  • Tprevious はシミュレーションの最終のメジャー タイム ヒットの時間です。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する