Main Content

モデル レートの変換

連続時間と離散時間の間でモデルを変換し、ライブ エディターでモデルをリサンプリングする

R2019b 以降

説明

[モデル レートの変換] では、連続時間と離散時間の間で LTI モデルを対話形式で変換できます。この方法を使って離散時間モデルをリサンプリングすることもできます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。

[モデル レートの変換] タスクを開始するには、変換するモデルを選択します。また、ターゲット サンプル時間、変換メソッド、その他のパラメーターも指定できます。このタスクでは、MATLAB ワークスペースに変換されたモデルを生成し、変換パラメーターを試すときに、応答プロットを生成して、元のモデルと変換後のモデルの一致をモニタすることができます。

関連する関数

[モデル レートの変換] では、次の関数を使用してコードを生成します。

Convert Model Rate task in Live Editor

タスクを開く

MATLAB エディターでライブ スクリプトに [モデル レートの変換] タスクを追加するには、次を行います。

  • [ライブ エディター] タブで、[タスク][モデル レートの変換]を選択します。

  • スクリプトのコード ブロック内で、convertratec2d などの関連するキーワードを入力します。提案されるコマンド候補の中から [モデル レートの変換] を選択します。

すべて展開する

ライブ エディターで [モデル レートの変換] タスクを使用して、モデルを連続時間から離散時間に対話形式で変換します。さまざまなメソッド、オプション、応答プロットを試します。このタスクでは、自分が選択した内容を反映するコードが自動的に生成されます。この例を開くと、[モデル レートの変換] タスクを含む、事前に設定されたスクリプトが示されます。

連続時間の伝達関数モデルを作成します。

G = tf([1 -50 300],[1 3 200 350]);

このモデルを離散化するには、ライブ エディターで [モデル レートの変換] タスクを開きます。[ライブ エディター] タブで、[タスク][モデル レートの変換] を選択します。タスクで、変換するモデルとして G を選択します。

このタスクでは、既定のサンプル時間 (0.2 秒) と既定の変換メソッド [Zero-order hold] を使用してモデルを自動的に離散化します。またボード線図も作成されるため、元のモデルと変換後のモデルの応答を比較できます。

プロットの垂直線は、既定のサンプル時間に関連付けられたナイキスト周波数を示します。0.15 秒のサンプル時間を使用するものとします。[サンプル時間] フィールドに新しい値を入力して、サンプル時間を変更します。応答プロットが自動的に更新されて、新しいサンプル時間が反映されます。

アプリケーションに共振の正確なダイナミクスが必要な場合、異なる変換メソッドを使用して周波数領域の一致を改善できます。このタスクでは、異なるメソッドを試してみて、応答プロットでのその効果を観測します。

双一次 (Tustin) 変換メソッドの方が、既定のゼロ次ホールド メソッドよりも周波数領域で良好な一致が得られます (連続/離散の変換方法を参照)。[変換メソッドの選択] で、[Bilinear (Tustin) approximation] を選択します。最初は、結果の周波数領域の一致は、ゼロ次ホールド メソッドを使用した場合に比べ劣っています。

"プリワープ周波数" を使用すると、一致を改善することができます。このオプションを使って、離散時間の応答を指定した周波数で一致させます。G の共振は、およそ 14 rad/s にピークがあります。プリワープ周波数の値を入力します。一致によって共振が改善します。ただし、0.15 秒のサンプル時間の場合、共振はナイキスト周波数に非常に近くなり、一致が近づける程度が制限されます。

[モデル レートの変換] タスクは、他のタイプの応答プロットを生成できます。たとえば、元のモデルと変換後のモデルの時間領域応答を比較するには、[出力プロット] で、[step] または [impulse] を選択します。

このタスクは、ライブ スクリプトにコードを生成します。生成されたコードには、選択したパラメーターとオプションが反映され、指定した応答プロットを生成するコードが含まれます。生成されたコードを確認するには、タスク パラメーター エリアの下部にある [コードの表示] をクリックします。タスクが展開されて、生成されたコードが表示されます。

既定では、生成されたコードは出力変数の名前として sysConverted を使用します。これは変換後のモデルです。別の出力変数名を指定するには、タスクの一番上にあるサマリー行に新しい名前を入力します。たとえば、名前を sys_d に変更します。

タスクによって、生成されたコードが更新されて新しい変数名が反映され、新しく変換されたモデル sys_d が MATLAB ワークスペースに表示されます。このモデルは、他のモデル オブジェクトと同様に、今後の解析や制御設計に使用できます。例として、矩形波入力に対する変換されたシステムの応答をシミュレートします。タスクで指定したサンプル時間を使用します。

[u,t] = gensig('square',4,10,0.15);
lsim(sys_d,u,t)

パラメーター

すべて展開する

LTI モデルを選択します。リストには、次のような、MATLAB ワークスペース内の適切なすべての連続時間または離散時間の動的システム モデルが含まれます。

  • tfsszpk モデルなどの数値 LTI モデル。

  • idss および idtf モデルなどの、同定された LTI モデル (同定されたモデルを使用するには、System Identification Toolbox™ のライセンスが必要)。

SISO モデルまたは MIMO モデルは、むだ時間の有無に関係なく、変換できますが、一部の変換メソッドは SISO モデルでのみ使用できます ([メソッド] パラメーターの説明を参照)。[モデル レートの変換] を使用して、genss または uss などの一般化 LTI モデル、frd などの周波数応答データ モデル、またはプロセス モデル (idproc) を変換することはできません。

変換後のモデルのサンプル時間を 1/TimeUnit の単位で指定します。TimeUnit は入力モデルの TimeUnit プロパティです。

  • 連続時間モデルを離散化する、または離散時間モデルを再サンプリングするには、ターゲット サンプル時間を入力します。

  • 離散時間モデルを連続時間に変換するには、0 を入力します。

レート変換メソッドを選択します。選択できるメソッドは次のとおりです。

  • ゼロ次ホールド

  • 1 次ホールド

  • インパルス不変法による離散化 (SISO モデルの連続から離散への変換のみ)

  • 双一次 (Tustin) 近似

  • 極-零点マッチング法

  • 最小二乗法 (SISO モデルの連続から離散への変換のみ)

変換メソッドの選択については、連続/離散の変換方法を参照してください。

むだ時間をもつモデルのレートを変換する場合に、[双一次 (Tustin) 近似] または [極-零点マッチング法] メソッドでは、むだ時間をサンプル時間の最も近い整数倍に丸めます。この丸めによって、特にナイキスト周波数の近傍で、ダイナミクスの精度が低下することがあります。

[遅延次数] を非ゼロの整数に設定して、モデル レートの変換で、丸めではなく、Thiran フィルターを使用して遅延の小数部分を近似します。アプリケーションで十分に精度の高いレート変換ダイナミクスを生成する最小値を使用します。Thiran フィルターの詳細については、thiran を参照してください。

連続時間モデルを離散化するときに、システムの特定の周波数に重要なダイナミクスがあり、レート変換を保持する場合は、[双一次 (Tustin) 近似] メソッドで周波数プリワーピングを使用することができます。このメソッドにより、指定したプリワープ周波数で元の応答と変換後の応答が一致します。連続/離散の変換方法を参照してください。

モデル レートの変換では、アプリケーションにとって重要なダイナミクスが保持されているか確認するのに役立つ応答プロットが自動で生成されます。次の応答プロット タイプのいずれかを指定して、変換パラメーターを試すときに、元のモデルと変換後のモデルの応答を比較します。

  • ボード線図

  • ステップ

  • インパルス

  • 極-零点

タスクで生成されるコードには、選択した応答プロットを作成するコードが含まれます。応答プロットを省略する場合は、[なし] を選択します。

バージョン履歴

R2019b で導入