このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
tunablePID2
調整可能な 2 自由度の PID コントローラー
構文
blk = tunablePID2(name,type)
blk = tunablePID2(name,type,Ts)
blk = tunablePID2(name,sys)
説明
調整可能な 2 自由度の PID コントローラーを作成するためのモデル オブジェクト。tunablePID2
では、調整可能な 2 自由度の SISO PID コントローラーをパラメーター化できます。このパラメーター化されたコントローラーは、パラメーターの調査や、systune
や looptune
などの調整コマンド、Robust Control Toolbox™ コマンド hinfstruct
による自動調整に使用できます。
tunablePID2
はパラメトリックな制御設計ブロック ファミリの一部です。他のパラメトリックな制御設計ブロックには、tunableGain
、tunableSS
および tunableTF
があります。
構築
は、次の方程式で記述される 2 自由度の連続時間 PID コントローラーを作成します。blk
= tunablePID2(name
,type
)
次の図で示すように、r は設定点コマンド、y はその設定点に対する測定された応答、u は制御信号です。
ブロックの調整可能なパラメーターは次のとおりです。
スカラー ゲイン
Kp
、Ki
およびKd
フィルター時定数
Tf
スカラーの重み
b
およびc
type
引数はこれらの値のいくつかを 0 に固定することによってコントローラーのタイプを設定します (入力引数を参照)。
は、サンプル時間 blk
= tunablePID2(name
,type
,Ts
)Ts
をもつ離散時間 PID コントローラーを作成します。このコントローラーは次の方程式で記述されます。
IF(z) と DF(z) は、それぞれ、積分項と微分項に対する離散積分器の式です。IFormula
と DFormula
のプロパティの値が離散積分器の式を設定します (プロパティを参照)。
は、動的システム モデル blk
= tunablePID2(name
,sys
)sys
を使用して、サンプル時間 Ts
およびすべての調整可能なパラメーターの初期値を設定します。モデル sys
は、2 自由度の PID コントローラーの方程式に対応していなければなりません。
入力引数
|
PID コントローラー | |||||||||||||||
|
コントローラーのタイプ。次の表のいずれかの値として指定します。コントローラーのタイプを指定することで、最大 3 つの PID コントローラー パラメーターを固定します。
| |||||||||||||||
|
スカラーとして指定されたサンプル時間。 | |||||||||||||||
|
2 自由度の PID コントローラーを表す動的システム モデル |
プロパティ
|
PID ゲイン
| ||||||||||
|
積分項と微分項それぞれに対する離散積分器の式 IF(z) と DF(z)。次の表のいずれかの値として指定します。
既定値: | ||||||||||
|
サンプル時間。連続時間モデルの場合、 このプロパティを変更してもモデルの離散化やリサンプリングは行われません。 既定値: | ||||||||||
|
モデル内の時間変数、サンプル時間
このプロパティを変更しても他のプロパティには影響しないため、システム全体の動作が変更されます。 既定値: | ||||||||||
|
入力チャネル名。文字ベクトルまたは文字ベクトルの 2 行 1 列の cell 配列として指定します。このプロパティを使用してコントローラー モデルの入力チャネルに名前を付けます。たとえば、次のようにして、名前 C.InputName = {'setpoint';'measurement'}; または、自動的なベクトル拡張を使用して両方の入力名を割り当てます。以下に例を示します。 C.InputName = 'C-input'; 入力名は自動的に 省略形表記 以下を含めて、入力チャネル名はいくつかの用途をもちます。
既定値: | ||||||||||
|
入力チャネル単位。2 行 1 列の文字ベクトルの cell 配列として指定します。このプロパティを使用して入力信号単位を追跡します。たとえば、次のようにして、単位 C.InputUnit = {'Volts';'mol/m^3'};
既定値: | ||||||||||
|
入力チャネル グループ。このプロパティは PID コントローラー モデルには必要ありません。 既定値: フィールドのない | ||||||||||
|
出力チャネル名。文字ベクトルとして指定します。このプロパティを使用して、コントローラー モデルの出力チャネルに名前を付けます。たとえば、次のようにして、名前 C.OutputName = 'control'; 省略形表記 以下を含めて、入力チャネル名はいくつかの用途をもちます。
既定値: 空の文字ベクトル ( | ||||||||||
|
出力チャネル単位。文字ベクトルとして指定します。このプロパティを使用して出力信号単位を追跡します。たとえば、次のようにして、単位 C.OutputUnit = 'Volts';
既定値: 空の文字ベクトル ( | ||||||||||
|
出力チャネル グループ。このプロパティは PID コントローラー モデルには必要ありません。 既定値: フィールドのない | ||||||||||
|
システム名。文字ベクトルとして指定します。たとえば、 既定値: | ||||||||||
|
システムに関連付ける任意のテキスト。string または文字ベクトルの cell 配列として格納されます。プロパティには指定したデータ型が格納されます。たとえば、 sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' 既定値: | ||||||||||
|
システムに関連付ける任意のデータ型。任意の MATLAB® データ型として指定します。 既定値: |
例
固定パラメーターをもつ調整可能な 2 自由度のコントローラー
調整可能な 2 自由度の PD コントローラーを作成します。次に、パラメーター値を初期化してフィルターの時定数を固定します。
blk = tunablePID2('pdblock','PD'); blk.b.Value = 1; blk.c.Value = 0.5; blk.Tf.Value = 0.01; blk.Tf.Free = false; blk
blk = Parametric continuous-time 2-DOF PID controller "pdblock" with equation: s u = Kp (b*r-y) + Kd -------- (c*r-y) Tf*s+1 where r,y are the controller inputs and Kp, Kd, b, c are tunable gains. Type "showBlockValue(blk)" to see the current value and "get(blk)" to see all properties.
動的システム モデルで初期化したコントローラー
調整可能な 2 自由度の PI コントローラーを作成します。2 入力 1 出力の tf
モデルを使用して、パラメーターと他のプロパティを初期化します。
s = tf('s'); Kp = 10; Ki = 0.1; b = 0.7; sys = [(b*Kp + Ki/s), (-Kp - Ki/s)]; blk = tunablePID2('PI2dof',sys)
blk = Parametric continuous-time 2-DOF PID controller "PI2dof" with equation: 1 u = Kp (b*r-y) + Ki --- (r-y) s where r,y are the controller inputs and Kp, Ki, b are tunable gains. Type "showBlockValue(blk)" to see the current value and "get(blk)" to see all properties.
blk
は sys
から初期パラメーター値を取得します。
sys
が離散時間システムの場合、blk
は Ts
や IFormula
などのプロパティの値を sys
から取得します。
名前の付いた入力と出力をもつコントローラー
調整可能な PID コントローラーを作成して、名前を入力と出力に割り当てます。
blk = tunablePID2('pidblock','pid'); blk.InputName = {'reference','measurement'}; blk.OutputName = {'control'};
2 自由度の PID コントローラーには 2 つの入力があるため、blk.InputName
は 2 つの名前を含む cell 配列です。
ヒント
バージョン履歴
R2016a で導入参考
tunablePID
| tunableGain
| tunableTF
| tunableSS
| systune
| looptune
| genss
| hinfstruct
(Robust Control Toolbox)