LabVIEW PID and Fuzzy Logic Toolkit API Reference

PID VI

  • 更新日2023-02-21
  • 13分で読める

PID VI

1つ上のパレット: PID VI

インストールパッケージ: 開発システム

単純なPIDアプリケーション、または効率的なアルゴリズムを必要とする高速制御アプリケーション用のPIDアルゴリズムを使用してPIDコントローラを実装します。このPIDアルゴリズムは、積分器アンチワインドアップ付きの制御出力レンジ制限機能と、PIDゲイン変更時のバンプレス制御出力機能を備えています。単一の制御ループを実装するには、このVIのDBLインスタンスを使用します。並列マルチループ制御を実装するには、DBL配列インスタンスを使用します。

詳細  サンプル

 ブロックダイアグラムに追加  パレットで検索

PID (DBL)

出力範囲には、制御出力を強制する範囲を指定します。デフォルト範囲は–100から100で、フルスケールのパーセントで指定した値に対応します。 この範囲は、制御システムに合わせて変更できます。たとえば、パーセントからパーセントではなく、工学単位から工学単位に関連付けることができます。このVIは、指定された最小値または最大値でコントローラ出力が飽和したときに、積分器アンチワインドアップを実装します。
出力上限には、コントローラ出力の最大値を指定します。デフォルトは100です。
出力下限には、コントローラ出力の最小値を指定します。デフォルトは-100です。
設定値は、制御されているプロセス変数の設定値または目標値を指定します。
プロセス変数には、制御されているプロセス変数の測定値を指定します。この値は、フィードバック制御ループのフィードバック値と同じです。
PIDゲインには、コントローラの比例ゲイン、積分時間、微分時間パラメータを指定します。
比例ゲイン(Kc)にはコントローラの比例ゲインを指定します。デフォルトは1です。 PIDコントローラを定義する式で、 KCは比例ゲインを表します。
積分時間(Ti, min)には、積分時間(分)を指定します。デフォルトは0.01です。
積分時間(Td, min)には、微分時間(分)を指定します。デフォルトは0です。
dt (s)には、このVIが呼び出されるループサイクル時間または間隔を秒数で指定します。dt (s)がゼロ以下の場合、このVIは、分解能1 msの内蔵タイマーを使用して、前回呼び出し以降の時間を計算します。dt (s)が1 ms未満である必要がある場合は、値を明示的に指定してください。デフォルトは-1です。
再初期化?には、統合されたエラーなど、コントローラの内部パラメータを再初期化するかどうかを指定します。アプリケーション全体を再起動せずに、制御ループを停止して再開することが必要な場合は、再初期化?をTRUEに設定します。デフォルト値はFALSEです。
出力は、制御するプロセスに適用するPIDアルゴリズムの制御出力を返します。このVIが無効な入力を受け取った場合、出力NaNを返します。
dt出力(s)は、実際の時間間隔(秒)を返します。dt出力(s)は、dt (s)の値、または計算された間隔(dt (s)を–1に設定した場合)を返します。

PID(DBL配列)

出力範囲には、制御出力を強制する範囲を指定します。デフォルト範囲は-100から100で、フルスケールのパーセントで指定した値に対応します。 この範囲は、制御システムに合わせて変更できます。たとえば、パーセントからパーセントではなく、工学単位から工学単位に関連付けることができます。このVIは、コントローラ出力が現在の最小値または最大値で飽和したときに、積分器アンチワインドアップを実装します。

出力範囲は、以下の要素のクラスタの配列です。
出力上限には、コントローラ出力の最大値を指定します。デフォルトは100です。
出力下限には、コントローラ出力の最小値を指定します。デフォルトは-100です。
設定値は、制御されているプロセス変数の設定値または目標値を指定します。このVIは、設定値入力配列のサイズをプロセス変数入力配列のサイズに一致するように変更します。
プロセス変数には、制御されているプロセス変数の測定値を指定します。この値は、フィードバック制御ループのフィードバック値と同じです。
PIDゲインは、以下の要素のクラスタの配列です。
比例ゲイン(Kc)にはコントローラの比例ゲインを指定します。デフォルトは1です。 PIDコントローラを定義する式で、 KCは比例ゲインを表します。
積分時間(Ti, min)には、積分時間(分)を指定します。デフォルトは0.01です。
積分時間(Td, min)には、微分時間(分)を指定します。デフォルトは0です。
dt (s)には、このVIが呼び出されるループサイクル時間または間隔を秒数で指定します。dt (s)がゼロ以下の場合、このVIは、分解能1 msの内蔵タイマーを使用して、前回呼び出し以降の時間を計算します。dt (s)が1 ms未満である必要がある場合は、値を明示的に指定してください。デフォルトは-1です。
再初期化?には、統合されたエラーなど、コントローラの内部パラメータを再初期化するかどうかを指定します。アプリケーション全体を再起動せずに、制御ループを停止して再開することが必要な場合は、再初期化?をTRUEに設定します。デフォルト値はFALSEです。
出力は、制御するプロセスに適用するPIDアルゴリズムの制御出力を返します。このVIは、プロセス変数入力配列のサイズを元に出力配列の長さを決定します。
dt出力(s)は、実際の時間間隔(秒)を返します。dt出力(s)は、dt (s)の値、または計算された間隔(dt (s)を–1に設定した場合)を返します。

互換性

設定値は、制御されているプロセス変数の設定値または目標値を指定します。
プロセス変数には、制御されているプロセス変数の測定値を指定します。この値は、フィードバック制御ループのフィードバック値と同じです。
PIDパラメータは、各コントローラの更新されたPIDゲインパラメータが含まれているクラスタです。更新された値は、他のPID VIで使用することができます。
比例ゲイン(Kc)にはコントローラの比例ゲインを指定します。デフォルトは1です。 PIDコントローラを定義する式で、 KCは比例ゲインを表します。
積分時間(Ti, min)には、積分時間(分)を指定します。デフォルトは0.01です。
積分時間(Td, min)には、微分時間(分)を指定します。デフォルトは0です。
手動制御には、自動?がFALSEのときの制御出力の値を指定します。
オプションには、PID制御の設定を指定します。
最小SPには、設定値の範囲の下限をパーセント値または工学単位で指定します。
最高SPには、設定値の範囲の上限をパーセント値または工学単位で指定します。
最小出力には、出力範囲の下限をパーセント値または工学単位で指定します。
最高出力には、出力範囲の上限をパーセント値または工学単位で指定します。
保持には、コントローラがプロセス変数の変更を無視して、積分演算を停止するかどうかを指定します。保持をTRUEに設定すると、出力は前回の値を保持します。デフォルトはFALSEです。
自動?には、自動制御と手動制御のどちらを使用するかを指定します。自動?がFALSEの場合、このVIは自動制御を使用します。自動?がFALSEの場合、このVIは手動制御を使用します。このVIは、手動制御から自動制御へのバンプレス転送を使用します。デフォルトはTRUEです。

このVIは、自動?入力配列のサイズをプロセス変数入力配列のサイズと一致するように変更します。
比例バンドは、PIDパラメータ入力の比例値が比例ゲイン(Kc)と比例バンド(PB)のどちらであるかを示します。デフォルトはFALSEで、比例値が比例ゲインであることを意味します。変換レートはKc = 100/PBです。
逆動作には、制御を逆動作と順動作のどちらにするかを指定します。デフォルトはTRUEで、入力が設定値より大きい場合に出力が減少することを意味します。
ベータには、設定値トラッキングの妨害拒否への相対強調を指定します。ほとんどのアプリケーションでデフォルト値の1が適切です。プロセスロード変更のような、妨害拒否への強調を指定するには、0から1の間の小さい値を使用することができます。 VIは、この値を2つの自由度アルゴリズムで使用します。
線形性には、エラー応答の線形性を指定します。線形性の有効範囲は、0~1です。1の場合は通常の線形応答、0.1の場合はほぼ放物線状の応答になります。 VIはこの値を非線形の誤差と非線形ゲイン係数の計算に使用します。
dt (s)には、このVIが呼び出されるループサイクル時間または間隔を秒数で指定します。dt (s)がゼロ以下の場合、このVIは、分解能1 msの内蔵タイマーを使用して、前回呼び出し以降の時間を計算します。dt (s)が1 ms未満である必要がある場合は、値を明示的に指定してください。デフォルトは-1です。
反復は、ループの現在の反復です。 このパラメータをWhileループの反復端子に配線します。
出力は、制御するプロセスに適用するPIDアルゴリズムの制御出力を返します。このVIが無効な入力を受け取った場合、出力NaNを返します。

PIDの詳細

この多態性VIのDBL配列インスタンスは、マルチループPID制御アプリケーションで使用することができます。この場合、プロセス変数入力により、出力配列の長さが決まります。他の入力配列は、プロセス変数入力と同じである必要はありません。このVIは、以下のように他の入力配列をプロセス変数入力と同じ長さに変更します。

  • 入力配列がプロセス変数入力よりも長い場合、入力配列はプロセス変数入力の長さで切り捨てられます。配列内の追加値は使用されません。
  • 入力配列がプロセス変数入力よりも短い場合は、サイズがプロセス変数入力のサイズに一致するまで、入力配列の最後の値が繰り返されます。

こうすることで、各出力計算に使用する必要がある入力を、このVIに渡す配列で繰り返し指定する必要がなくなります。その代わりに、各出力計算に使用する単一値を配列に含めることができます。

サンプル

PIDVIの使用サンプルは、labview\examples\control\PIDディレクトリにあるGeneral PID Simulator VIで参照できます。

 サンプルを開く  関連サンプルを検索

Log in to get a better experience