🎛️

【制御】PIDにFSMを入れるべき「10%」の根拠

に公開

はじめに

PID制御にFSM(有限状態機械)を重ねる設計は、
理屈では正しそうに見える一方で、現場では失敗例も多く見られます。

本記事では、

  • なぜ FSM を常時動かす設計が危険なのか
  • なぜ「10%のズレ」をFSM発動の閾値とするのか
  • なぜ Reliability Guard(B-Type)が必要なのか

を、商業製品として成立する視点から整理します。


基本方針(ここを間違えると全部壊れる)

制御階層は明確に分けるべきです。

  1. PIDは主制御(常時)
  2. FSMは例外処理(非常時)
  3. Reliability GuardはFSMの暴走止め

FSMは「賢い制御」ではありません。
FSMは保険です。


FSMを最初から入れる設計が壊れる理由

摩擦劣化や経年変化に対して、

  • FSMを常時切り替える
  • 微小な変化で状態遷移する

こうした設計は、ほぼ確実に次を引き起こします。

  • 波形の不連続
  • 制御の過補償
  • 状態遷移のチャタリング
  • 顧客からの「なんか挙動おかしくない?」という問い合わせ

劣化よりFSMの方が制御対象を壊す、という逆転現象です。


FSMは「いつ」発動すべきか?

答えは単純です。

PIDが「もういつものPIDじゃない」と言える時だけ

そのためには、
定量的なトリガーが必要です。


なぜ 10% なのか?

典型的な劣化モデルからの事実

今回の摩擦劣化モデルでは、

  • PID単体で運転を継続した場合
  • 約5年相当の劣化
  • 初期波形から おおよそ10%程度のズレが発生

以下のいずれかに明確な差が出ます。

  • 振幅
  • 位相(時間遅れ)
  • 制御エネルギー

これは「都合の良い数字」ではなく、
モデルから自然に出てきた値です。


10%とは何の10%か?

FSMのトリガー条件は OR条件とします。

以下のいずれかが 初期PID比で10%超

  • 振幅差
  • 位相(Δt)差
  • 制御エネルギー差

なぜ OR なのか?

AND条件は現場では遅すぎるからです。


想定外は、想定より早く来る

現実には、

  • 摩耗
  • 異物混入
  • 温度変化
  • 部分破損

などにより、

「モデル上の5年劣化」が
数か月で起きる

ことがあります。

OR条件でなければ、
FSMは間に合いません


B-Type(Reliability Guard)の役割

FSMは万能ではありません。

FSMが入ることで:

  • 制御が悪化する
  • 出力が不安定になる
  • 電流・電圧が増大する

こうしたケースは普通に起きます

そこで B-Type では:

  • FSMの制御量を制限
  • 効率・努力量を常時監視
  • 悪化時はPID優勢に戻す

つまり、

FSMすら信用しすぎない

という設計です。


商業的に見たとき、顧客はどう感じるか

顧客目線ではこうです。

  • 数年間、PIDだけで安定 → 問題なし
  • 明確な劣化が出た後に補正 → 納得できる
  • 初日から挙動が変わる → 不信感

10%ルールは、

  • 説明できる
  • 保証文書に書ける
  • クレーム対応できる

という点で、非常に重要です。


まとめ

  • PIDは主役
  • FSMは非常用
  • 10%はモデルに基づく現実的閾値
  • トリガーは OR 条件
  • Reliability GuardでFSMを制御する

FSMは知能ではありません。
FSMは保険であり、最後の手段です。


おわりに

もし FSM が day=0 から動いているなら、
それは PID設計が失敗している可能性が高い。

FSMが10%ズレたときにだけ動くなら、
それは 商業製品として正しい振る舞いです。

GitHubで編集を提案

Discussion