pid2
2-DOF PID コントローラーを並列形式で作成し、並列形式の 2-DOF PID コントローラーに変換
構文
C2 = pid2(Kp,Ki,Kd,Tf,b,c)
C2 = pid2(Kp,Ki,Kd,Tf,b,c,Ts)
C2 = pid2(sys)
C2 = pid2(___,Name,Value)
説明
pid2
コントローラー オブジェクトは、2 自由度 (2-DOF) の PID コントローラーを並列形式で表します。pid2
コントローラー オブジェクトを既知の係数から作成するか、動的システム モデルを pid2
オブジェクトに変換するには、pid2
を使用します。
2 自由度 (2-DOF) PID コントローラーには、比例項および微分項に設定点の重みが含まれています。2-DOF PID コントローラーでは、外乱の抑制を、設定点の追従におけるオーバーシュートを大きく増加させることなく迅速に実行できます。2-DOF PID コントローラーはまた、制御信号に対する基準信号の変化の影響を緩和するためにも有用です。次の図では、2-DOF PID コントローラーを使用した典型的な制御アーキテクチャが示されています。
は、比例、積分、微分のゲイン C2
= pid2(Kp
,Ki
,Kd
,Tf
,b
,c
)Kp
、Ki
、Kd
と、1 次の微分フィルター時定数 Tf
をもつ、連続時間 2-DOF PID コントローラーを作成します。このコントローラーにはまた、比例項に設定点の重み b
があり、微分項に設定点の重み c
があります。2-DOF コントローラーの出力 (u) とその 2 つの入力 (r および y) との関係は、次の式で与えられます。
この表現は "並列形式" です。係数がすべて実数値である場合、結果として得られる C2
は pid2
コントローラー オブジェクトです。これらの係数の 1 つ以上が調整可能 (realp
または genmat
) な場合、C2
は調整可能な一般化状態空間 (genss
) モデル オブジェクトになります。
は、サンプル時間 C2
= pid2(Kp
,Ki
,Kd
,Tf
,b
,c
,Ts
)Ts
をもつ離散時間 2-DOF PID コントローラーを作成します。コントローラーの出力と入力間の関係は、次の式で与えられます。
IF(z) と DF(z) は積分器と微分フィルターのための "離散積分器の式" です。既定では以下のようになります。
異なる離散積分器の式を選択するには、IFormula
と DFormula
のプロパティを使用します(詳細は、プロパティを参照)。DFormula
= 'ForwardEuler'
(既定値) と Tf
≠ 0 の場合、Ts
と Tf
は Tf > Ts/2
を満たさなければなりません。この条件によって安定した微分フィルター極が確保されます。
は、動的システム C2
= pid2(sys
)sys
を並列形式の pid2
コントローラー オブジェクトに変換します。
は、追加プロパティを引数 C2
= pid2(___,Name,Value
)Name,Value
のコンマ区切りペアで指定します。
入力引数
|
比例ゲイン。
既定値: 1 |
|
積分ゲイン
既定値: 0 |
|
微分ゲイン
既定値: 0 |
|
1 次微分フィルターの時定数
既定値: 0 |
|
比例項での設定点の重み。
既定値: 1 |
|
微分項での設定点の重み。
既定値: 1 |
|
サンプル時間。 離散時間
既定値: 0 (連続時間) |
|
並列
|
名前と値の引数
オプションの Name,Value
の引数ペアをコンマ区切りで指定します。ここで、Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペア引数を任意の順序で指定できます。
Name,Value
構文を使用すると、離散時間 pid2
コントローラーの数値積分式 IFormula
および DFormula
を設定し、また、InputName
や OutputName
などの他のオブジェクト プロパティを設定することができます。pid2
コントローラー オブジェクトの利用可能なプロパティの詳細については、プロパティを参照してください。
出力引数
|
2-DOF PID コントローラー。 |
プロパティ
|
比例項と微分項それぞれでの設定点の重み。 |
|
PID コントローラーのゲイン。 それぞれ、比例ゲイン、積分ゲイン、微分ゲインです。 |
|
微分フィルター時定数。
|
|
離散時間
既定値: |
|
離散時間
既定値: |
|
システム入力のむだ時間。 |
|
システム出力のむだ時間。 |
|
サンプル時間。連続時間モデルの場合、 このプロパティを変更してもモデルの離散化やリサンプリングは行われません。 既定値: |
|
モデル内の時間変数、サンプル時間
このプロパティを変更しても他のプロパティには影響しないため、システム全体の動作が変更されます。 既定値: |
|
入力チャネル名。文字ベクトルまたは文字ベクトルの 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® データ型として指定します。 既定値: |
|
モデル配列のサンプリング グリッド。データ構造として指定されます。 1 つ以上の独立変数をサンプリングすることによって得られるモデル配列の場合、このプロパティは配列内の各モデルに関連付けられた変数値を追跡します。この情報はモデル配列を表示またはプロットすると表示されます。この情報を使用して、結果を独立変数まで遡ります。 データ構造のフィールド名をサンプリング変数の名前に設定します。フィールドの値を、配列内の各モデルに関連付けられているサンプリングされた変数の値に設定します。すべてのサンプリング変数は数値でスカラー値でなければならず、サンプル値のすべての配列はモデル配列の次元に一致しなければなりません。 たとえば、 sysarr.SamplingGrid = struct('time',0:10) 同様に、2 つの変数 [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
M M(:,:,1,1) [zeta=0.3, w=5] = 25 -------------- s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25 ---------------- s^2 + 3.5 s + 25 ... 複数のパラメーター値または操作点で Simulink® モデルを線形化することにより生成されたモデル配列の場合、 既定値: |
例
ヒント
PID コントローラーを特定のプラントに合わせて設計するには、
pidtune
またはpidTuner
を使用します。調整可能な 2-DOF PID コントローラーを制御設計ブロックとして作成するには、tunablePID2
を使用します。2-DOF コントローラーを 2 つの SISO 制御コンポーネント (フィードバック コントローラーとフィードフォワード コントローラーなど) に分割するには、
getComponents
を使用します。以下のようにして、
pid2
コントローラー オブジェクトの配列を作成します。pid2
コントローラーの配列では、各コントローラーに同じサンプル時間Ts
と、離散積分器の式IFormula
およびDFormula
がなければなりません。標準形式コントローラーを作成するか、標準形式コントローラーに変換するには、
pidstd2
を使用します。標準形式では、コントローラーの動作は全体的な比例ゲイン Kp、積分時間 Ti と微分時間 Td、そしてフィルター除数 N によって表現されます。たとえば、連続時間標準形式 2-DOF PID コントローラーの入力と出力間の関係は、次の式で与えられます。連続時間
pid2
コントローラーを離散化するには、以下の 2 つの方法があります。c2d
を使用します。c2d
は離散化されたコントローラーのための新しいパラメーター値を計算します。離散化されたコントローラーの離散積分器の式は、次の表に示すように、使用するc2d
離散化手法に依存します。c2d
離散化手法IFormula
DFormula
'zoh'
ForwardEuler
ForwardEuler
'foh'
Trapezoidal
Trapezoidal
'tustin'
Trapezoidal
Trapezoidal
'impulse'
ForwardEuler
ForwardEuler
'matched'
ForwardEuler
ForwardEuler
c2d
離散化手法の詳細については、c2d
のリファレンス ページを参照してください。IFormula
とDFormula
についての詳細は、プロパティを参照してください。他の離散積分器の式が必要な場合は、
Ts
、IFormula
、およびDFormula
を目標値に直接設定してコントローラーを離散化することができます。(連続時間 2-DOF PID コントローラーの離散化を参照。) ただし、この方法では離散化されたコントローラーの新しいゲインとフィルター定数値は計算されません。したがって、この方法で得られる連続時間と離散時間のpid2
コントローラーの一致は、c2d
を使用した場合に比べて劣る可能性があります。
バージョン履歴
R2015b で導入
参考
pidstd2
| pid
| piddata2
| getComponents
| make1DOF
| pidtune
| pidTuner
| tunablePID2
| genss
| realp