Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

piddata

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

    説明

    [Kp,Ki,Tf] = piddata(sys) は PID ゲイン KpKiKd、および動的システムの sys で表される、並列形式コントローラーのフィルター時定数 Tf を返します。

    [Kp,Ki,Kd,Tf,Ts] = piddata(sys) はサンプル時間 Ts も返します。

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

    すべて折りたたむ

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

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

    PID ゲインとフィルター時定数を抽出します。

    [Kp,Ki,Kd,Tf] = piddata(C)
    Kp = 0.8147
    
    Ki = 0.9058
    
    Kd = 0.1270
    
    Tf = 0.9134
    

    PI コントローラーを標準形式で作成します。

    C = pidstd(2,3)
    C =
     
                 1      1 
      Kp * (1 + ---- * ---)
                 Ti     s 
    
      with Kp = 2, Ti = 3
     
    Continuous-time PI controller in standard form
    

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

    [Kp,Ki] = piddata(C)
    Kp = 2
    
    Ki = 0.6667
    

    微分フィルターをもつ有効な離散時間の並列形式 PID コントローラーを表す動的システムから係数を抽出します。

    H(z)=(z-0.5)(z-0.6)(z-1)(z+0.8)

    H = zpk([0.5 0.6],[1,-0.8],1,0.1);

    PID ゲインとフィルター時定数を抽出します。

    [Kp,Ki,Kd,Tf,Ts] = piddata(H)
    Kp = 0.4383
    
    Ki = 1.1111
    
    Kd = 0.0312
    
    Tf = 0.0556
    
    Ts = 0.1000
    

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

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

    rng('default');
    C = pid(rand(2,3),rand(2,3));

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

    [Kp,Ki] = piddata(C);

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

    Ki
    Ki = 2×3
    
        0.2785    0.9575    0.1576
        0.5469    0.9649    0.9706
    
    

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

    [Kp,Ki] = piddata(C,2,1)
    Kp = 0.9058
    
    Ki = 0.5469
    

    入力引数

    すべて折りたたむ

    syspid オブジェクトではない場合、それは並列 PID 形式で記述できる、有効な PID コントローラーを表現しなければなりません。

    モデル配列 sys から抽出するエントリのインデックス。正の整数として指定します。sys における配列の次元数と同じ数のインデックスを指定します。

    例: たとえば、sys が、pid コントローラーの 4 行 5 列の (2 次元) 配列か、または PID コントローラーを表す動的システム モデルであるとします。次のコマンドは、配列のエントリ (2,3) のデータを抽出します。

    [Kp,Ki,Kd,Tf,Ts] = piddata(sys,2,3);

    出力引数

    すべて折りたたむ

    syspid コントローラー オブジェクトの場合、出力 KpsysKp 値と等しくなります。

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

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

    syspid コントローラー オブジェクトの場合、出力 KisysKi 値と等しくなります。

    syspid オブジェクトではない場合、Kisys と等価な並列 PID コントローラーの積分ゲインとなります。

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

    syspid コントローラー オブジェクトの場合、出力 KdsysKd 値と等しくなります。

    syspid オブジェクトではない場合、Kdsys と等価な並列 PID コントローラーの微分ゲインとなります。

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

    syspid コントローラー オブジェクトの場合、出力 TfsysTf 値と等しくなります。

    syspid オブジェクトでない場合、Tfsys と等価な並列形式 PID コントローラーのフィルター時定数となります。

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

    動的システム sys のサンプル時間 Ts は常にスカラー値です。

    ヒント

    • syspid コントローラー オブジェクトでない場合、piddataKpKiKd、および sys と等価な並列形式コントローラーのフィルター時定数 Tf を返します。

    • 離散時間 sys の場合、piddata は等価な並列形式コントローラーのパラメーターを返します。このコントローラーは、ForwardEuler に設定された離散積分器の式 IFormulaDFormula をもちます。離散積分器の式の詳細は、pid のリファレンス ページを参照してください。

    バージョン履歴

    R2010b で導入

    参考

    | |