LabVIEW PID and Fuzzy Logic Toolkit API Reference

制御方法を設計する

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

制御方法を設計するときには、物理プロセスと制御要素(バルブや測定など)を入れたフローチャートを作成します。また、プロセスからのフィードバックと必要な計算も記入します。次に、PID VIをLabVIEWの数学および論理のVIおよび関数を使用してフローチャートからLabVIEWブロックダイアグラムを作成することができます。

以下の画像は制御フローチャートの例を示しています。

以下の画像は、これに対応するLabVIEWブロックダイアグラムを示しています。

上の画像で、FTは流量トランスミッタ、LTはレベルトランスミッタ、LCは制御レベル、SPは設定値です。この単純化したVIに不足しているのは、ループチューニングパラメータと自動から手動への切り替えだけです。

入力と出力は、DAQデバイス、FieldPoint I/Oモジュール、GPIB 計測器、またはシリアルI/Oポートにより行えます。ポーリングレートはリアルタイムで調整できます。潜在的なポーリングレートは、ハードウェア、VIの数とグラフィカルな複雑性によってのみ制限できます。

タイミングを設定する

PID」VIと「PID進み/遅れ」VIは時間依存です。VIは、サイクル時間制御器に与えられた値dt、または「PID」VIに組み込まれているようなタイムキーパーからタイミング情報を取得します。dtがゼロ以下の場合、VIは毎回LabVIEWに呼び出されるたびに新しいタイミング情報を計算します。呼び出されるたびに、VIは前回の呼び出しからの経過時間を測定して、その差を計算に使用します。WhileループからVIを呼び出す場合、LabVIEWの1つを使用します タイミングVIと機能により、かなり規則的なタイミングを実現でき、内部のタイムキーパーが変動を補正します。しかし、「ティックカウント(ms)」関数の分解能は1 msに制限されています。

dtが正の秒数の場合、VIは経過時間に関係なく、その値を計算に使用します。集録ハードウェアを使用してコントローラ入力またはリアルタイムアプリケーションのタイミングを測定するときのような高速ループでこの方法を使用することをお勧めします。PID VIでタイミングを使用する方法については、labview\examples\control\PIDディレクトリにあるサンプルVIを参照してください。

関連サンプルを検索

メモ  NI-DAQmxをインストールした場合は、labview\examples\DAQmx\Control\Control.llbディレクトリにある関連サンプルも見ることができます。

制御理論では、制御システムは、物理プロセスの最速時定数よりも約10倍速いレートで物理プロセスをサンプリングすることが必要とされています。たとえば、小さなシステムの温度制御ループでは60秒の時定数が一般的です。この場合、約6秒のサイクルタイムで十分です。これより速くしてもパフォーマンスは向上しません。すべての制御VIをあまりに高速に実行すると、LabVIEWアプリケーションの応答時間が遅くなることがあります。

ループ内のVIは、すべて同じサイクルタイムで繰り返しごとに1回実行されます。複数のVIを異なるサイクルタイムで実行して、データをそれらのVI間で共有するには、カスケードでの例のように、VIを独立したタイミングをもつWhileループに分割する必要があります。以下のブロックダイアグラムは、2つの独立したタイミングをもつWhileループのあるカスケードを表しています。

グローバル変数は、ループA内の「PID」VIの出力をループBの「PID」VIのプロセス変数入力に渡します。両方のWhileループを同じブロックダイアグラムに配置することも、別々のVIに配置することもできます。この他に必要なデータを2つの追加のグローバル変数またはローカル変数を使用して、2つの間で他の必要なデータの受け渡しを2つのWhileループ間で行うには、追加のグローバルまたはローカル変数を使用します。

VIのフロントパネルに頻繁に表示の更新が必要な画像がなければ、PID VIはキロヘルツ(kHz)レートで実行できます。しかし、マウス操作やウィンドウのスクロールなどはこれらのレートの妨げになります。

Log in to get a better experience