PID VIを使用してPIDアルゴリズムを実装する
- 更新日2023-02-21
- 7分で読める
以下のセクションでは、基本的なPID VI(PID上級、PID上級オートチューニング、上級オプションを使用するその他のVIを除く)がどのようにPIDアルゴリズムを実装しているか、およびPIDコントローラを実装するのに必要な前提と変換について説明します。LabVIEWでPIDコントローラを実装するには、入力信号をサンプリングして、積分動作と微分動作を離散化するアルゴリズムが必要です。
![]() |
メモ 以下の式は、PIDパレットのほとんどのVIに該当します。「PID上級」VIと「PID上級オートチューニング」VIは、高度なオプション機能が入った拡張計算式を使用します。 |
以下のシミュレーションダイアグラムは、基本的なPID VIで提供されるPID実装を表しています。

![]() |
メモ 上のようなシミュレーションダイアグラムを作成するには、LabVIEW Control Design and Simulation (制御系設計/シミュレーション) モジュールが必要です。しかし、PID VIを使用するとPIDコントローラを実装できます。PIDコントローラを作成するために、制御系設計/シミュレーションモジュールは必要ありません。 |
誤差計算
以下の式は、比例、積分、微分動作の計算に使用される現在の誤差を表します。

| ここで、 | kは時間k*tにサンプリングされた信号の指標 |
| eは現在の誤差 | |
| SPは設定値 | |
| PVはプロセス変数 |
比例動作
比例動作は、以下の式のとおり「コントローラゲイン x 誤差」です。

| ここで、 | Kcはコントローラゲイン |
| eは現在の誤差 |
PID VIは、比例要素をコントローラゲインで表現します。コントローラゲイン(Kc)と比例バンド(PB)の関係はKc = 100 / PBです。
積分動作(台形積分)
積分動作を離散化するには、前方差分、後退差分、台形近似(Tustin変換または双一次変換とも呼ばれる)など、複数のオプションがあります。PID VIは、PVやSPの急に変化したときに積分動作が急に変化するのを避けるために、以下の式で表される台形積分を使用します。

| 上の式で、 | ΔTはコントローラのサンプリング時間 |
微分動作
SPが急に変化すると、誤差eに微分動作が適用される結果、コントローラの出力が変動します。これらの変動は微分キックと呼ばれます。微分キックを避けるために、微分動作を誤差eには適用せず、PVにのみ適用することができます。以下の式は、PID VIにより実装した、微分キックを避ける微分動作を表します。

コントローラ出力
コントローラ出力は、以下の式が表すように、比例動作、積分動作、微分動作の総和です。
![]()
出力制限とアンチワインドアップアルゴリズム
実際のコントローラ出力は、制御出力で指定された範囲に制限されます。
| もし | ![]() |
ならば | ![]() |
および
| もし | ![]() |
ならば | ![]() |
PID VIは、アンチワインドアップに役立つ積分合計修正アルゴリズムを使用します。ワインドアップは、コントローラ出力の上限で発生します。誤差eが減少すると、コントローラ出力は減少し、ワインドアップ領域の外に出ます。積分合計修正アルゴリズムは、制御を手動モードから自動モードに切り替えたときやその他のパラメータを変更したときにコントローラ出力が急に変化するのを防ぎます。積分合計修正は、以下のように動作します。
| もし | ![]() |
ならば | ![]() |
上の式は、積分合計補正には値の変化に対する微分動作を考慮されないことを示しています。
デフォルトのPID値とゲインの変化
パラメータSP、PV、出力範囲のデフォルト範囲は、パーセント値に対応します。しかし、実際の工学単位を使用することができます。対応する範囲をこれに応じて調整してください。パラメータTiおよびTdは分で指定します。.
Whileループ内から一定のサイクル時間でPID VIを呼び出すことができます。すべてのPID VIは再入可能です。高レベルVIからの複数呼び出した場合、別々の異なるデータが使用されます。また、PID VIには、各チャンネルの入力を表す配列を提供する複数チャンネルモードがあります。
PIDゲインはいつでも変化します。変化が検出されると、PIDアルゴリズムは、出力を新しいパラメータと一定に保つために積分動作を調整することでバンプレス移行を試みます。これによりユーザがPIDパラメータを変更しようとしたときの出力の変化を防げ、ゲインスケジューリングに便利です。
ゲインスケジューリング
ゲインスケジューリングとは、測定された動作状態に基づいてユーザがコントローラパラメータを変更するシステムを指します。スケジューリング変数には、たとえば、設定値、プロセス変数、コントローラ出力、または外部信号などがあります。歴史的な理由から、微分時間または積分時間が変わってもゲインスケジューリングという用語を使用します。ゲインスケジューリングは、動作状態に応じて動的に変更するシステムを効果的に制御します。
「PIDゲインスケジューリング」VIを使用すると、ゲインスケジューリング用のPIDパラメータセットを無制限に定義できます。オートチューニングを使用することで、各スケジューリングのPIDパラメータを更新することができます。
追加






