ドキュメンテーション

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

setBlockRateConversion

slTuner インターフェイスの調整ブロックのレート変換を設定

説明

Simulink®systune を使用する場合、調整は、slTuner インターフェイスの Ts プロパティによって指定されたサンプリング レートで実行されます。writeBlockValue を使用して調整後のパラメーターを Simulink モデルに書き込み直すと、各調整ブロックの値は、調整に使用されたサンプル時間から Simulink ブロックのサンプル時間に自動的に変換されます。各調整ブロックに関連付けられているレート変換メソッドが、このリサンプリング処理の実行方法を指定します。ブロック変換率のクエリには getBlockRateConversion を使用し、その変更には setBlockRateConversion を使用します。

setBlockRateConversion(st,blk,method) は、slTuner インターフェイス st調整ブロックのレート変換メソッドを設定します。

setBlockRateConversion(st,blk,'tustin',pwf) は、プリワープ周波数として pwf を指定し、blk のレート変換メソッドとして Tustin メソッドを設定します。

setBlockRateConversion(st,blk,IF,DF) は、blk が連続時間 PID Controller ブロックである場合の、積分器項と微分フィルター項の離散化手法を設定します。離散時間 PID ブロックでは、これらの方法は Simulink ブロックで指定され、slTuner インターフェイスでは変更できません。

すべて折りたたむ

Simulink モデル scdcascadeslTuner インターフェイスを作成します。いずれかの調整ブロックのブロック レート変換を設定します。

open_system('scdcascade');
st = slTuner('scdcascade',{'C1','C2'});

PID Controller ブロック C1 について、既定のブロック レート変換を調べます。

[IF,DF] = getBlockRateConversion(st,'C1')
IF =

    'Trapezoidal'


DF =

    'Trapezoidal'

既定では、積分器と微分フィルターのコントローラー メソッドはいずれも Trapezoidal です。積分器を BackwardEuler に、微分を ForwardEuler に設定します。

IF = 'BackwardEuler';
DF = 'ForwardEuler';
setBlockRateConversion(st,'C1',IF,DF);

入力引数

すべて折りたたむ

Simulink でモデル化された制御システムを調整するためのインターフェイス。slTuner インターフェイスとして指定します。

st の調整ブロックのリストにあるブロック。文字ベクトルまたは string として指定します。ブロックの絶対パスか、st の他の調整ブロックの中から該当ブロックを一意に識別できるブロックの部分パスを指定できます。

例: blk = 'scdcascade/C1'blk = "C1"

blk に関連付けられたレート変換メソッド。以下のいずれかとして指定します。

  • 'zoh' - 入力のゼロ次ホールド。動的なブロックのほとんどでは、これが既定のレート変換メソッドです。

  • 'foh' — 入力の線形内挿。

  • 'tustin' — 双一次 (Tustin) 近似。オプションで、元のダイナミクスとプリワープ周波数付近でレートが変換されたダイナミクスとの間で周波数領域が適切に一致するように、pwf 引数によりプリワープ周波数を指定します。

  • 'matched' — 極-零点マッチング法。この方式は、SISO ブロックでのみ使用できます。

これらのレート変換メソッドの詳細については、連続/離散の変換方法 (Control System Toolbox)を参照してください。

正のスカラーとして指定された、Tustin メソッドのプリワープ周波数。

PID Controller ブロックのレート変換に用いる積分手法とフィルター手法。それぞれが次のいずれかとして指定されます。

  • 'ForwardEuler'Ts/(z-1) として離散化される積分器または微分フィルターの状態

  • 'BackwardEuler'Ts*z/(z-1)

  • 'Trapezoidal'(Ts/2)*(z+1)/(z-1)

連続時間 PID ブロックでは、積分器と微分フィルターのいずれについても既定の手法は 'Trapezoidal' です。この手法は Tustin メソッドと同じです。

離散時間 PID ブロックでは、IFDF は Simulink ブロックの [積分手法][フィルター手法] の設定によって決定され、setBlockRateConversion では変更できません。

積分手法とフィルター手法の詳細については、Discrete PID Controllerpid のリファレンス ページを参照してください。

詳細

すべて折りたたむ

調整ブロック

slTuner インターフェイスで使用される "調整ブロック" は、Simulink モデル内のブロックのうち、調整目標を満たすためにパラメーター調整を行うブロックを示します。ゲイン、伝達関数、状態空間モデルなどの線形要素を表現する Simulink ブロックは、ほとんどが調整可能です (調整がサポートされているブロックの完全なリストは、調整された Simulink ブロックをパラメーター化する方法を参照してください)。また、SubSystem ブロックや S-Function ブロックなど、より複雑なブロックも、等価の調整可能な線形モデル (Control System Toolbox)を指定することで調整可能です。

調整ブロックのパラメーターを調整するには、systune などの調整コマンドを使用します。

slTuner インターフェイスを作成する際に、調整ブロック (たとえば、C1C2) を指定しなければなりません。

st = slTuner('scdcascade',{'C1','C2'})

addBlock および removeBlock により、調整ブロックのリストを変更できます。

調整ブロックを対話的に操作するには、以下を使用します。

ヒント

  • Model Discretizer ブロックでは、レート変換メソッドが Simulink ブロックで指定され、setBlockRateConversion では変更できません。

  • Gain ブロックや Lookup Table ブロックのような静的ブロックの場合、ブロックのレート変換メソッドは無視されます。

R2014a で導入