メインコンテンツ

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

piddata

R2026a

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

    説明

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

    例

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

    例

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

    例

    例

    すべて折りたたむ

    通常は、pidtune や getBlockValue などの別の関数によって取得したコントローラーから係数を抽出します。この例では、乱数の係数をもつ 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
    Model Properties
    

    等価な並列形式 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 離散積分器の式を IFormula と DFormula の両方に使用して、係数値を計算します。

    通常は、プラント モデルの配列の 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
    

    入力引数

    すべて折りたたむ

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

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

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

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

    出力引数

    すべて折りたたむ

    sys が pid コントローラー オブジェクトの場合、出力 Kp は sys の Kp 値と等しくなります。

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

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

    sys が pid コントローラー オブジェクトの場合、出力 Ki は sys の Ki 値と等しくなります。

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

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

    sys が pid コントローラー オブジェクトの場合、出力 Kd は sys の Kd 値と等しくなります。

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

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

    sys が pid コントローラー オブジェクトの場合、出力 Tf は sys の Tf 値と等しくなります。

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

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

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

    ヒント

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

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

    バージョン履歴

    R2010b で導入

    参考

    | |