このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
並列形式の PID コントローラーを作成、並列形式 PID コントローラーに変換
C = pid(Kp,Ki,Kd,Tf)
C = pid(Kp,Ki,Kd,Tf,Ts)
C = pid(sys)
C = pid(Kp)
C = pid(Kp,Ki)
C = pid(Kp,Ki,Kd)
C = pid(...,Name,Value)
C = pid
は以下のように連続時間 PID コントローラーを作成します。このコントローラーは、比例、積分、微分のゲイン C
= pid(Kp
,Ki
,Kd
,Tf
)Kp
、Ki
、Kd
と、1 次の微分フィルター時定数 Tf
をもちます。
この表現は "並列形式" です。Kp
、Ki
、Kd
および Tf
がすべて実数の場合、結果として得られる C
は pid
コントローラー オブジェクトです。これらの係数の 1 つ以上が調整可能 (realp
または genmat
) な場合、C
は調整可能な一般化状態空間 (genss
) モデル オブジェクトになります。
は、サンプル時間 C
= pid(Kp
,Ki
,Kd
,Tf
,Ts
)Ts
をもつ離散時間 PID コントローラーを作成します。コントローラーは次のようになります。
IF(z) と DF(z) は積分器と微分フィルターのための "離散積分器の式" です。既定では以下のようになります。
異なる離散積分器の式を選択するには、IFormula
と DFormula
のプロパティを使用します(IFormula
と DFormula
の詳細は、プロパティを参照してください)。DFormula
= 'ForwardEuler'
(既定値) と Tf
≠ 0 の場合、Ts
と Tf
は Tf > Ts/2
を満たさなければなりません。この条件によって安定した微分フィルター極が保証されます。
は、動的システム C
= pid(sys
)sys
を並列形式の pid
コントローラー オブジェクトに変換します。
は、C
= pid(Kp
)Ki
= 0、Kd
= 0、Tf
= 0 の連続時間の比例 (P) コントローラーを作成します。
は、C
= pid(Kp
,Ki
)Kd
= 0、Tf
= 0 の比例および積分 (PI) コントローラーを作成します。
は、C
= pid(Kp
,Ki
,Kd
)Tf
= 0 の比例、積分、微分 (PID) コントローラーを作成します。
は、1 つ以上の C
= pid(...,Name,Value
)Name,Value
の引数ペアで指定した追加オプションを使ってコントローラーの作成、または動的システムを pid
コントローラー オブジェクトへ変換します。
|
比例ゲイン。
既定値: 1 |
|
積分ゲイン
既定値: 0 |
|
微分ゲイン
既定値: 0 |
|
1 次微分フィルターの時定数
既定値: 0 |
|
サンプル時間。 離散時間
既定値: 0 (連続時間) |
|
並列
|
オプションの Name,Value
の引数ペアをコンマ区切りで指定します。ここで、Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペア引数を任意の順序で指定できます。
Name,Value
構文を使用すると、離散時間 pid
コントローラーの数値積分式 IFormula
および DFormula
を設定し、また、InputName
や OutputName
などの他のオブジェクト プロパティを設定することができます。pid
コントローラー オブジェクトの利用可能なプロパティの詳細については、プロパティを参照してください。
|
|
|
PID コントローラーのゲイン。
|
|
微分フィルター時定数。
|
|
次の離散時間
既定値: |
|
次の離散時間
既定値: |
|
システム入力のむだ時間。 |
|
システム出力のむだ時間。 |
|
サンプル時間。連続時間モデルの場合、 このプロパティを変更してもモデルの離散化やリサンプリングは行われません。 既定値: |
|
モデル内の時間変数、サンプル時間
このプロパティを変更しても他のプロパティには影響しないため、システム全体の動作が変更されます。 既定値: |
|
入力チャネル名。文字ベクトルとして指定します。このプロパティを使用してコントローラー モデルの入力チャネルに名前を付けます。たとえば、次のようにして、名前 C.InputName = 'error'; 省略形表記 以下を含めて、入力チャネル名はいくつかの用途をもちます。
既定値: 空の文字ベクトル ( |
|
入力チャネル単位。文字ベクトルとして指定します。このプロパティを使用して入力信号単位を追跡します。たとえば、次のようにして、濃度単位 C.InputUnit = '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
の使用目的は次のとおりです。
pid
コントローラー オブジェクトを既知の PID ゲインとフィルター時定数から作成する。
pidstd
コントローラー オブジェクトを標準形式 pid
コントローラー オブジェクトに変換する。
その他のタイプの動的システム モデルを pid
コントローラー オブジェクトに変換する。
PID コントローラーを特定のプラントに合わせて設計するには、pidtune
または pidTuner
を使用します。調整可能な PID コントローラーを制御設計ブロックとして作成するには、tunablePID
を使用します。
以下のようにして、pid
コントローラー オブジェクトの配列を作成します。
pid
コントローラーの配列では、各コントローラーに同じサンプル時間 Ts
と、離散積分器の式 IFormula
および DFormula
がなければなりません。
標準形式コントローラーを作成するか、または標準形式コントローラーに変換するには、 pidstd
を使用します。標準形式では、コントローラーの動作は以下のように、全体的な比例ゲイン Kp、積分時間と微分時間 Ti と Td、およびフィルター除数 N として表示されます。
連続時間 pid
コントローラーを離散化するには、以下の 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
を目標値に直接設定してコントローラーを離散化することができます (連続時間 PID コントローラーの離散化を参照)。ただし、この方法では離散化されたコントローラーの新しいゲインとフィルター定数値は計算されません。したがって、この方法で得られる連続時間と離散時間の pid
コントローラーの一致は、c2d
を使用した場合に比べて劣る可能性があります。