Main Content

pidstddata2

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

説明

[Kp,Ti,Td,N,b,c] = pidstddata2(sys) は、動的システム sys で表される標準形式 2-DOF PID コントローラーの比例ゲイン Kp、積分時間 Ti、微分時間 Td、フィルター除数 N、および設定点の重み bc を返します。

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

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

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

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

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

すべて折りたたむ

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

rng('default');    % for reproducibility
C2 = pidstd2(rand,rand,rand,rand,rand,rand);

PID 係数、フィルター除数および設定点の重みを抽出します。

[Kp,Ti,Td,N,b,c] = pidstddata2(C2);

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

C2 = pid2(2,3,4,10,0.5,0.5)
C2 =
 
                       1                s    
  u = Kp (b*r-y) + Ki --- (r-y) + Kd -------- (c*r-y)
                       s              Tf*s+1 

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

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

[Kp,Ti,Td,N,b,c] = pidstddata2(C2);

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

Ti
Ti = 0.6667
Td
Td = 2

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

次の行列 A、B、C、D は、標準形式の 2-DOF PID コントローラーを表す離散時間状態空間モデルを形成します。

A = [1,0;0,0.5];
B = [0.1,-0.1;-0.25,0.5];
C = [4,400];
D = [220,-440];
sys = ss(A,B,C,D,0.1)
sys =
 
  A = 
        x1   x2
   x1    1    0
   x2    0  0.5
 
  B = 
          u1     u2
   x1    0.1   -0.1
   x2  -0.25    0.5
 
  C = 
        x1   x2
   y1    4  400
 
  D = 
         u1    u2
   y1   220  -440
 
Sample time: 0.1 seconds
Discrete-time state-space model.

モデルの PID 係数、フィルター除数および設定点の重みを抽出します。

[Kp,Ti,Td,N,b,c,Ts] = pidstddata2(sys);

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

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

rng('default');
C2 = pidstd2(rand(2,3),rand(2,3),0,10,rand(2,3),0);

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

[Kp,Ti,Td,N,b,c] = pidstddata2(C2);

各出力は、それ自体が 2 行 3 列の配列です。たとえば、Ki を調べます。

Ti
Ti = 2×3

    0.2785    0.9575    0.1576
    0.5469    0.9649    0.9706

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

[Kp21,Ti21,Td21,N21,b21,c21] = pidstddata2(C2,2,1);

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

Ti21
Ti21 = 0.5469

入力引数

すべて折りたたむ

標準形式の 2-DOF PID コントローラー。pidstd2 コントローラー オブジェクト、動的システムのモデルまたは動的システムの配列として指定します。syspidstd2 コントローラー オブジェクトではない場合、これは、標準形式で記述できる有効な 2-DOF PID コントローラーを表す 2 入力 1 出力のモデルでなければなりません。

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

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

出力引数

すべて折りたたむ

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

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

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

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

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

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

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

sys で表される標準形式 2-DOF PID コントローラーの比例項での設定点の重み。スカラーまたは配列として返されます。

sys で表される標準形式 2-DOF PID コントローラーの微分項での設定点の重み。スカラーまたは配列として返されます。

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

R2015b で導入