ブログー制御AI関連ー

AI-PIDについて

2025年04月10日

【制御AI】AI-PIDについて

エイシングは4月15日(火)~4月17日(木)に東京ビッグサイトにて開催される、「第9回 AI・人工知能EXPO【春】」に出展いたします。
AI×制御というテーマで、弊社のAI-PIDに関連するデモ動画を展示予定です。
もしご興味を持っていただけましたら、是非足を運んでいただけますと幸いです。

さて、本記事では「第9回 AI・人工知能EXPO【春】」の開催前に技術ポイントを2回に分けてお伝えします。
今回はAI-PIDに関する技術的な説明と、その前提となるPID制御についてご説明します。
なお、PID制御についてご存じであれば「1. PID制御とは」は読み飛ばしていただいて構いません。

PID制御(比例・積分・微分制御)は、産業界をはじめ、ロボットや空調、
車のクルーズコントロールなど、幅広い分野で使われている基本的な制御手法です。
簡単に言うと、「目標値」と「現在の状態」のズレを調整して、システムを最適な状態に保つ制御手法です。

直感的な具体例:シャワーの温度調整

PID制御の概念をイメージしやすい例として、「シャワーの温度調整」を考えてみましょう。

  • お湯が熱すぎる場合 → 水を増やして冷やす
  • お湯がぬるすぎる場合 → お湯を増やして温める
  • 少し調整したら様子を見る(微調整しながら目標の温度に近づける)

このように、人は「温度のズレを見て調整する」ことを無意識に行っています。
実は、これと同じ考え方がPID制御にも使われています。

ここからは少し技術的な観点でPID制御の構造を見ていきましょう。

PID制御の数式

先ほどのシャワーの温度調整の例をもとに、PID制御の数式を見ていきましょう。

まずは数式で使用する変数を以下のように4つ定義するとします。

項目変数意味
制御出力\(y(t)\)実際のシャワーの温度 [℃]
目標値\(r(t)\)理想のシャワーの温度(目標値) [℃]
偏差\(e(t)\)偏差(目標と実測の温度差) [℃]
制御入力\(u(t)\)お湯のバルブの開度 [°](※1)

(※1)
実際のシャワーの温度調整機構は複雑であり、本稿ではその詳細には踏み込みません。
ここでは、お湯のバルブ開度を調整することで温度が変化するという単純なモデルを仮定しています。
また、制御理論における定義では、制御入力とはバルブ開度の指令値を意味し、
これに基づいてアクチュエータが動作し、実際のバルブ開度が変化する構成となります。
本記事では説明を簡潔にするため、バルブの開度(=制御入力)と温度の変化が直接的に対応しているものとしています。

ここで偏差は\(e(t) = r(t) – y(t)\)と表せます。

PID制御では、以下の流れで制御を行います。

  1. 制御出力\(y(t)\)をセンサなどで観測する
  2. 目標値\(r(t)\)と制御出力\(y(t)\)から偏差\(e(t)\)を計算する
  3. 偏差\(e(t)\)をもとに制御演算を行い、次の制御入力\(u(t)\)を決定する
  4. 決定した\(u(t)\)を制御対象に入力する

制御入力\(u(t)\)を決定するための制御演算は以下の式で行われます。

\[ u(t) = K_p e(t) + K_i \int^{t}_{0}e(\tau)d\tau + K_d \frac{d}{dt} e(t)\]

それでは、PID制御を構成する3つの要素、「比例制御」「積分制御」「微分制御」について、
それぞれ詳しく見ていきましょう。

①比例制御 (P制御)

\[K_p e(t)\]

この項は比例制御を表し、偏差に比例して制御入力を加える制御方式です。
\(K_p\)は比例ゲインと呼ばれ、偏差の大きさに対してどの程度の制御を加えるかを決める定数となります。
\(K_p\)が大きいほど、わずかな偏差にも敏感に反応し、制御入力\(u(t)\)を大きく変化させます。

例えば、理想のシャワー温度が40[℃]に対して実際の温度が35[℃]であれば、
偏差\(e(t)=+5\)となり、比例制御はお湯のバルブを開き、温度を上げようと働きます。
逆に、実際の温度が45[℃]の場合は、偏差\(e(t)=-5\)となり、お湯のバルブを閉じて温度を下げようと働きます。
これが比例制御の基本的な挙動です。

ただし、比例制御にはいくつか課題があります。

1つは制御出力が振動する「ハンチング」と呼ばれる現象です。
例えば、偏差が大きいためにバルブを一気に開いて温度を上げた結果、理想の40[℃]を超えてしまうと、
今度は冷やそうとしてバルブを閉じて温度が下がりすぎる…といった振動を繰り返す場合があります。

もう1つは「定常偏差」が残ることです。
偏差が小さくなると、それに比例して制御入力も小さくなり、バルブ開度がわずかに変化します。
しかし、わずかにバルブ開度が変化するだけでは、温度にほとんど影響が出ない場合があります。
その結果、わずかな偏差が残ったまま制御が止まり、目標とは異なる状態で釣り合ってしまうことが起こり得ますが、
このような偏差を「定常偏差」と呼び、比例制御ではこの定常偏差を完全にゼロにすることはできません。

定常偏差を解消するために導入されるのが、次に説明する積分制御(I制御)です。

②積分制御(I制御)

\[K_i \int^{t}_{0}e(\tau)d\tau\]

この項は積分制御を表し、過去の偏差(ズレ)を蓄積し、ズレが長く続くようであれば補正を強める制御方式です。
\(K_i\)は積分ゲインと呼ばれ、過去の偏差をどの程度重視するかを決める定数です。

例えば、目標温度が40[℃]に対して、実際の温度が39.5[℃]のまましばらく変わらない、
すなわち定常偏差が残っている状態を考えてみましょう。
このような場合、わずかな偏差でもその累積(積分)が増えていくことで、
制御入力が徐々に大きくなり、やがて偏差をゼロに近づけることができます。

積分制御にも注意すべき点があります。

偏差が長時間続くと積分項が際限なく増大し、制御が効きすぎてしまうことがあります。
このような現象は「積分飽和(integral windup)」と呼ばれ、
過剰な出力がオーバーシュート(目標値を超えてしまうこと)を引き起こす原因となります。

そのため、実際の制御では積分項に制限をかける「アンチワインドアップ(anti-windup)」
などの仕組みが用いられることもあります。
例えば積分項に上下限値を設ける、出力が飽和したときに積分を停止するなどの工夫が行われます。

次は、変化の速さに反応して補正を行う微分制御(D制御)について見ていきます。

③微分制御(D制御)

\[K_d \frac{d}{dt} e(t)\]

この項は微分制御を表し、偏差の変化の速さ(微分)に応じて制御入力を調整する制御方式です。
\(K_d\)は微分ゲインと呼ばれ、偏差の変化にどれだけ敏感に反応するかを決める定数です。

例えば、目標温度が40[℃]に対して、実際の温度が30[℃]→38[℃]と急激に上昇している状態を考えてみましょう。
このとき、比例制御だけでは偏差がまだ大きいため、「もっとバルブを開けて温度を上げよう」と指示し続けようとします。
その結果、目標値を行き過ぎてしまい、オーバーシュートを引き起こす可能性があります。

そこで、変化の速さを考慮した微分制御があれば、
「今、温度が急激に上昇している」という状況を検知し、その勢いを抑制するような力が働きます。
つまり、偏差の「増え方」に応じてブレーキをかけるようなイメージです。

微分制御は高周波のノイズに弱いという点に注意が必要です。
ノイズの大きさは微小であっても高周波であれば時間的に急な変化を含むため、
微分項がそれを急激な変化とみなして過剰に反応し、制御が不安定になる可能性があります。
そのため、実際の制御系では微分項にローパスフィルタをかけて
高周波のノイズ成分を除去するといった工夫がなされることがあります。

これまで見てきたように、PID制御は「比例制御」「積分制御」「微分制御」の3つの制御を組み合わせて構成されます。

  • 比例制御:偏差の大きさに応じて制御入力を加える
  • 積分制御:偏差の蓄積量に応じて補正を加える
  • 微分制御:偏差の変化に応じて補正を加える
    この3つを適切に組み合わせることで、応答速度・安定性・精度のバランスを取った制御が可能になります。

ただし、これらの制御をうまく機能させるためには各項のゲイン(\(K_p, K_i, K_d\))の調整が重要になります。
ゲインの設定が不適切だとハンチングやオーバーシュートが起こったり、システムの安定性が損なわれることがあります。

このように、PID制御はシンプルで汎用的な制御手法である一方で、実運用上はいくつか課題も抱えています。

次はPID制御の課題について見ていきます。

PID制御は前述の通り、シンプルかつ汎用性が高く、さまざまな産業用途で広く用いられていますが、
実運用においては次のような課題があります。

  • 外乱への対応の難しさ
  • 環境変化・機器劣化への適応性の低さ

外乱への対応の難しさ

制御対象に影響を与える外的要因のことを「外乱」と呼びます。
外乱は制御系の外側から作用し、システムの状態(特に制御出力)を乱すもので次のような例が挙げられます。

  • 工場内の搬送ラインで発生する振動、荷重のばらつき
  • モーター制御における負荷変動
  • 自動車の走行制御における風や路面状態

1.で見てきた通り、PID制御は偏差をもとに制御入力を決定します。
つまり、外乱が作用して出力が乱れてからでなければ、制御が働かないことを意味します。

例えばシャワーの温度制御において給湯器の水圧が急に下がった場合、
一時的にお湯の量が減り温度が下がりますが、PID制御はその温度変化をセンサが検知し、
偏差として現れるまでは制御ができません。

さらに、制御入力を加えてもその効果がすぐに出力に表れるとは限りません。
実際の制御対象の多くは「反応が遅い」性質を持っており、これを「遅れ系」と呼びます。
この性質を表すために、最も基本的なモデルとして1次遅れ系という数学モデルが使われます。

\[T \frac{d}{dt}y(t) + y(t) = Ku(t)\]

\(T\)は時定数と呼ばれ、変化の速さを表す指標であり、ステップ状の入力(たとえば急にバルブを開けたような操作)に対して、
出力が最終値の約63.2%に到達するまでの時間として定義されます(※2)。
すなわち、時定数が大きいほど反応がゆっくりになる、ということになります。

(※2)
時定数を「最終値の約63.2%に到達するまでの時間」と定義できるのは、1次遅れ系に限られます。
次回ご紹介する2次遅れ系やより複雑な系では、出力が振動を伴う場合もあるため、
このように時定数を定義することはできません。
その場合は「整定時間」や「立ち上がり時間」などの他の指標が用いられます。

また、\(K\)は入力に対する出力の大きさを表しています。

この式は、「制御入力を変えても、出力は時間をかけてゆっくりと変わる」という性質を表しています。
シャワーの例でいえば、お湯のバルブを少し開いたからといって、温度がすぐに反映されるわけではありません。
給湯器の反応や水流の変化に時間がかかるため、「バルブを開いた」効果が出力として現れるには時間差があるのです。

このような遅れがあると、外乱が起きた後に制御を始めても、その制御効果が現れる頃には、
すでに出力が大きく乱れてしまっているというケースが起こりえます。

このように、出力に対する制御の反応が遅れることが、
外乱に対する後手の補正では不十分になる原因となっています。

なお、ここで紹介した「1次遅れ系」は、入力に対して出力がなだらかに変化するような遅れを表しています。
しかし、制御対象によっては「むだ時間」と呼ばれる遅れも存在します。

むだ時間とは、制御入力を加えてからその影響が出力に反映されるまでにかかる時間的な遅れのことを指し、
以下のグラフの赤線のようなものとなります。

むだ時間があると、外乱が作用しても、それが出力に現れるまでに時間がかかるため、
偏差として検出されるのが遅れ、制御による補正もさらに遅れることになります。

このように、むだ時間は通常の遅れ以上に、外乱に対する制御の難しさを増大させる要因となります。

環境変化・機器劣化への適応性の低さ

制御対象は、時間とともに変化することがあります。
例えば、

  • 機器の摩耗、温度変化などにより、応答特性が変わる
  • 部品の劣化や経年変化などにより、同じゲインでは期待通りに動かなくなる

ことが考えられます。

先ほど紹介した1次遅れ系の式
\[T \frac{d}{dt}y(t) + y(t) = Ku(t)\]

において、例えば機器の劣化によってバルブの反応が鈍くなると、時定数\(T\)が大きくなることが考えられます。
時定数\(T\)が大きくなると、同じ制御入力\(u(t)\)を与えても、制御出力\(y(t)\)の変化がより遅くなり、
期待した応答が得られなくなります。

また、流量特性の変化などにより、\(K\)の値も変化することがあります。

このような場合、以前に調整した比例、積分、微分ゲインでは適切に制御できなくなり、再チューニングが必要になります。
しかし、この調整作業は時間や労力がかかり、場合によってはシステムの運用停止を伴うこともあります。

ここまで見てきたように、従来のPID制御は「外乱への対応の遅れ」や
「環境変化・機器劣化への適応性の低さ」といった課題を抱えています。
これらの課題を克服するためには、従来のように「ズレを見てから調整する」のではなく、
ズレが起きる前に予測し、事前に補正を行うようなアプローチが求められます。

こうした背景のもとで、私たちは予測器と補正器を既存のPID制御にアドオンする形で、
より高い適応性と頑健性を実現する「AI-PID」を提供しております。

次章では、このAI-PIDの概要と、その構成要素についてご紹介します。

AI-PIDとは機器や生産設備などで使用される制御処理(モーター制御、油圧制御など)に対して制御指令値をAIで補正する技術です。
制御対象の将来の制御出力を予測する予測器および補正器を従来のPID制御にアドオンすることで、
始動時の安定までの時間の短縮や、外乱による影響の軽減など、制御の安定性向上が可能となります。
予測器および補正器による補正値は、既存のPID制御を置き換えるものではなく、
PID制御による制御入力に補完する形で加えられます。

むだ時間とAI-PID

AI-PIDの有効性が特に発揮されるのが、前章で述べた「むだ時間」が存在する制御系です。
むだ時間は、制御入力を加えてから出力が変化し始めるまでの空白の時間です(詳しくは前章参照)。
このような遅れがあると、従来のPID制御では補正が後手に回ってしまうため、外乱の影響が大きくなりがちです。  

AI-PIDでは、むだ時間がない場合の制御出力の予測値をもとに、むだ時間の影響をあらかじめ補正することができます。
より具体的には、

  • むだ時間がなければ今得られていたはずの制御出力\(y(t+L)\)をAIが予測
    \(L\):むだ時間[s]
  • 予測値に基づいて補正値\(\Delta u(t)\)を決定
  • PID制御からの出力\(u_{PID}(t)\)に補正値を加えて最終的な制御入力\(u(t)\)を決定

\[u(t) = u_{PID}(t) + \Delta u(t)\]

ここで \(\Delta u(t)\) は、AIによって出力される補正値です。

このようにして、たとえ制御対象にむだ時間が存在したとしても、
あたかもむだ時間が存在しないかのような制御が可能になり、
結果として振動の収束を早めたり、外乱の影響を最小限に抑えることができる可能性があります。

これにより、AI-PIDは従来のPID制御では対応が難しかったシーンにも柔軟に適応できる制御技術となっています。

AI-PIDのメリットと注意点

AI-PIDには以下のような特徴があります。

  • リアルタイム性:
    弊社のエッジAIアルゴリズムを用いることで、マイクロ秒〜ミリ秒オーダーでの高速な予測が可能
  • 既存制御との親和性:
    PID制御を置き換えることなく、補正項としてアドオンする構成のため、既存システムへの適用が容易
  • 物理モデルフリー:
    制御対象の物理モデルを必要とせず、データに基づいて予測器を構築できるため、複雑な事前モデリングが不要

一方で、以下のような注意点もあります。

  • 未学習の状況への対応:
    学習データに含まれていない外乱や動作傾向に対しては、補正がうまくいかず不安定になる可能性
  • モデルの定期更新:
    機器の劣化や環境の変化により、予測器の精度が徐々に低下するため、定期的なモデル更新が必要

ただし、弊社のエッジAIは追加学習によるモデル更新が可能であり、こうした未学習状況への対応やモデルの定期更新が可能な仕組みも提供しています。


これまでPID制御について概要とその課題について見てきました。
また、弊社のAI-PIDの概要とその有効性についてもご紹介させていただきました。

次回はAI-PIDを適用した蛇行制御デモ機についてご紹介いたします。

執筆者:中堀 雅之(データサイエンスチーム)