Main Content

pidstddata

標準形式 PID コントローラーのアクセス係数

説明

[Kp,Ti,Td,N] = pidstddata(sys) は、動的システム sys により表される標準形式 PID コントローラーの比例ゲイン Kp、積分時間 Ti、微分時間 Td、およびフィルター除数 N を返します。

  • syspidstd コントローラー オブジェクトである場合、各出力引数は sys の対応する係数となります。

  • syspidstd オブジェクトではない場合、各出力引数は sys と等価の標準形式 PID コントローラーの対応する係数となります。

  • sys が動的システムの配列の場合、各出力引数は sys と同じ次元の配列となります。

[Kp,Ti,Td,N,Ts] = pidstddata(sys) はサンプル時間 Ts も返します。pidstd オブジェクトではない離散時間 sys では、pidstddata が、既定の離散積分器の式 ForwardEulerIFormulaDFormula の両方に使用して係数値を計算します。離散積分器の式の詳細は、pidstd のリファレンス ページを参照してください。

[Kp,Ti,Td,N,Ts] = pidstddata(sys, J1,...,JN) は、sys におけるエントリのサブセットのデータを抽出します。ここで、sys は動的システムの N 次元配列です。インデックス J は、抽出する配列エントリを指定します。

すべて折りたたむ

通常は、pidtunegetBlockValue などの別の関数によって取得したコントローラーから係数を抽出します。この例では、乱数の係数をもつ標準形式 PID コントローラーを作成します。

rng('default');    % for reproducibility
C = pidstd(rand,rand,rand,rand);

PID 係数とフィルター除数を抽出します。

[Kp,Ti,Td,N] = pidstddata(C);

並列形式の PID コントローラーを作成します。

C = pid(2,3,4,10)
C =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = 2, Ki = 3, Kd = 4, Tf = 10
 
Continuous-time PIDF controller in parallel form.

等価な並列形式 PID コントローラーの係数を計算します。

[Kp,Ti,Td,N] = pidstddata(C);

いくつかの係数を調べ、これらが並列形式の係数と異なることを確認します。

Ti
Ti = 0.6667
Td
Td = 2

有効な標準形式 PID コントローラーを表す動的システムから係数を抽出します。

次の値は、標準形式の PID コントローラーを表す離散時間零点-極-ゲイン モデルを形成します。

zeros = [0.5 0.6];
poles = [1,-0.8];
gain = 1;
sys = zpk(zeros,poles,gain,0.1)
sys =
 
  (z-0.5) (z-0.6)
  ---------------
   (z-1) (z+0.8)
 
Sample time: 0.1 seconds
Discrete-time zero/pole/gain model.

モデルの PID 係数とフィルター除数を抽出します。

[Kp,Ti,Td,N,Ts] = pidstddata(sys);

離散時間システムでは、pidstddata が既定の ForwardEuler 離散積分器の式を IFormulaDFormula の両方に使用して、係数値を計算します。

通常は、プラント モデルの配列の pidtune を使用して、コントローラーの配列を取得します。この例では、標準形式 PI コントローラーの 2 行 3 列の配列を乱数値の Kp および Ti で作成します。

rng('default');    % for reproducibility
C = pidstd(rand(2,3),rand(2,3),0,10);

配列から係数を抽出します。

[Kp,Ti,Td,N] = pidstddata(C);

パラメーターも 2 行 3 列の配列になります。たとえば、Ti を調べます。

Ti
Ti = 2×3

    0.2785    0.9575    0.1576
    0.5469    0.9649    0.9706

配列のエントリ (2,1) の係数のみを抽出します。

[Kp21,Ti21,Td21,N21] = pidstddata(C,2,1);

これらの各出力はスカラーです。

Ti21
Ti21 = 0.5469

入力引数

すべて折りたたむ

標準形式の PID コントローラー。pidstd コントローラー オブジェクト、動的システム モデル、または動的システムの配列として指定します。syspidstd コントローラー オブジェクトでない場合は、標準 PID 形式で記述できる有効な PID コントローラーを表さなければなりません。それらのコントローラーについて、pidstddata は、sys と等価の標準形式コントローラーの KpTiTd、および N の値を返します。

モデル配列 sys から抽出するエントリのインデックス。正の整数として指定します。sys における配列の次元数と同じ数のインデックスを指定します。たとえば、sys が、pidstd コントローラーの 4 行 5 列の (2 次元) 配列か、または PID コントローラーを表す動的システム モデルであるとします。次のコマンドは、配列のエントリ (2,3) のデータを抽出します。

[Kp,Ti,Td,N,b,c,Ts] = piddstdata(sys,2,3);

出力引数

すべて折りたたむ

sys で表される標準形式 PID コントローラーの比例ゲイン。スカラーまたは配列として返されます。

  • syspidstd コントローラー オブジェクトである場合、KpsysKp 値となります。

  • syspidstd オブジェクトではない場合、Kpsys と等価の標準形式 PID コントローラーの比例ゲインとなります。

  • sys が動的システムの配列の場合、Kpsys と同じ次元の配列となります。

sys で表される標準形式 PID コントローラーの積分時定数。スカラーまたは配列として返されます。

  • syspidstd コントローラー オブジェクトである場合、TisysTi 値となります。

  • syspidstd オブジェクトではない場合、Tisys と等価の標準形式 PID コントローラーの積分時定数となります。

  • sys が動的システムの配列の場合、Tisys と同じ次元の配列となります。

sys で表される標準形式 PID コントローラーの微分時定数。スカラーまたは配列として返されます。

  • syspidstd コントローラー オブジェクトである場合、TdsysTd 値となります。

  • syspidstd オブジェクトではない場合、Tdsys と等価の標準形式 PID コントローラーの微分時定数となります。

  • sys が動的システムの配列の場合、Tdsys と同じ次元の配列となります。

sys で表される標準形式 PID コントローラーのフィルター除数。スカラーまたは配列として返されます。

  • syspidstd コントローラー オブジェクトである場合、NsysN 値となります。

  • syspidstd オブジェクトではない場合、Nsys と等価の標準形式 PID コントローラーのフィルター除数となります。

  • sys が動的システムの配列の場合、Nsys と同じ次元の配列となります。

pidstd コントローラー、動的システム sys または動的システムの配列のサンプル時間。スカラーとして返されます。

  • syspidstd コントローラー オブジェクトである場合、Tssysc 値となります。

  • syspidstd オブジェクトではない場合、Tssys と等価の標準形式 PID コントローラーのサンプル時間となります。

  • sys が動的システムの配列の場合、Tssys と同じ次元の配列となります。

バージョン履歴

R2010b で導入

参考

| |