ユニット 5 / 9

制御システム設計支援

利益:

  • AI を使用して伝達関数、極零点、安定性の概念を分析および解釈する能力
  • AI提案によりPIDパラメータ設定を初期化し、シミュレーションとフィールド設定を通じて安全に改善する機能
  • AI の安定性と応答性の主張をボード線図/根軌跡と実際の応答で検証する機能

エンジンを一定の速度に保ち、炉のバランスを目標温度に保ち、ドローンを空中で安定させます。それらはすべて制御システムの問題です。制御設計は、伝達関数、極、零点、安定性基準、PID 調整などの数学を多用します。 AI はこの数学を強力に支援します。伝達関数を簡略化し、安定性解析を説明し、PID 初期値を提案し、Python シミュレーション コードを作成します。しかし、制御システムのパラメータが正しくないということは、単に「パフォーマンスが悪い」というだけではありません。発振、オーバーシュート、不安定性により実際の機器に損傷を与える可能性があります。この単元では、安定性解析で AI を使用する方法、シミュレーションとカスケード フィールド テストで PID を調整する理由、ボード線/根軌跡曲線を使用して AI の主張を検証する方法について説明します。

伝達関数、極性ゼロおよび安定性

システムの動的挙動は伝達関数 G(s) で表されます。分母の根 (極) がシステムの安定性を決定します。連続時間システムでは、すべての極が左半平面 (実部 < 0) 内にある場合、システムは安定します。 AIは伝達関数を単純化したり二極化することができますが、その結果を独自に確認する必要があります。

例: G(s) = 1 / (s² + 3s + 2) 分母根: s² + 3s + 2 = (s+1)(s+2) = 0 極: s = -1 および s = -2 → 両方とも左半平面内 → STABLE時間定数: τ1 = 1 s、τ2 = 0.5 s

ヒント: AI に伝達関数の極を見つけさせたら、特性方程式を自分で因数分解するか、Python (numpy.roots) で根を計算します。 AI は代数的単純化において符号と係数の誤りを犯す可能性があります。安定性の決定はこれらのルートに依存するため、エラーは高くつきます。

安定性の基準

極を直接見つけることが難しい場合は、Routh-Hurwitz 基準を使用して特性方程式の係数から安定性を決定します。 AI はこのテーブルを構築できます。最初の列に符号の変化(優柔不断符号)があるかどうかを確認します。周波数領域では、ボード線図のゲイン余裕と位相余裕がシステムの安定余裕を示します。正の十分なマージン (通常、位相マージン > 45°) は、設計が健全であることを示します。

PID チューニング: AI の推奨は暫定的なものであり、最終的な決定ではありません

PID コントローラーは、比例 (Kp)、積分 (Ki)、および微分 (Kd) の 3 つの項で構成されます。 AI は、初期値や Ziegler-Nichols などの手法を使用して、システム モデルに基づいた設定を推奨します。ただし、これらの値は出発点にすぎません。実際のシステムでは、モデルは完全に正確ではありません。摩擦、遅延、飽和、測定ノイズがあります。

PID項

効果

極端なところに行くとき

Kp(比例)

高速応答でエラーを軽減

発振、不安定

カイ(積分)

永続的なエラーをリセットします

オーバーシュート、積分ワインドアップ

Kd(導関数)

オーバーシュートを抑制し減衰させます

ノイズを増幅する

安全な調整アプローチは次のとおりです。まずシミュレーションで AI の提案を試し、ステップ応答を描画します。その後、リスクが低く、限定された条件で現場に徐々に実装します。オーバーシュート、整定時間、発振を観察しながら、項を 1 つずつ調整します。

import numpy as npfrom scipy import signal# システム: G(s) = 1/(s^2 + 3s + 2)、PID 初期値 AIdanKp, Ki, Kd = 10.0, 5.0, 2.0# PID: C(s) = Kp + Ki/s + Kd*snum_c = [Kd, Kp, Ki]den_c = [1, 0]# 開ループおよび閉サイクル G = signal.TransferFunction([1], [1, 3, 2])# ... 開ループ乗算と閉ループ フィードバックが確立されます# 閉ループ ステップ応答をプロットし、オーバーシュートと整定時間を測定します。 y = signal.step(signal.TransferFunction([Kd,Kp,Ki],[1,3+Kd,2+Kp,Ki]))overshoot = (y.max() - y[-1]) / y[-1] * 100print(f"オーバーシュート: %{overshoot:.1f}、安定値: {y[-1]:.3f}")

注意: AI が推奨する PID 値を完全な動作状態で直接適用すると、突然のオーバーシュートや発振によってモーター、バルブ、または機器にストレスがかかる可能性があります。常に、最初にシミュレーション、次に低リスクのフィールド テスト、そして段階的な改善の順序に従ってください。緊急停止と安全制限が有効になっていることを確認してください。

弱いプロンプト / 強いプロンプト

弱:「このモーターに PID 調整を行います。」(結果: コンテキストのない 3 つの数値。システムのダイナミクスと制約が分からない。)強:「伝達関数 G(s)=1/(s^2+3s+2) を持つシステムの PID 初期値を提案します。提供:- ジーグラー・ニコルズ法または同様の方法とその仮定を説明します。- 閉ループのステップ応答の予想されるオーバーシュートと整定時間を推定します。- これらの値シミュレーション開始のみです。現場での段階的な調整が必要であることに注意してください。モデルが実際のシステムから逸脱すると、値が変化することを強調してください。」

AI の主張の検証: ボード線と根軌跡曲線

AI が「この設定は安定していて高速です」と言ったら、これを 2 つのグラフでテストします。根軌跡は、ゲインの変化に応じて極がどのように移動するかを示します。極が右半平面に移動すると、システムは不安定になります。ボード線図はゲインと位相余裕を示します。 AI が推奨するゲインに対してこれらのマージンが依然として安全であることを視覚的に確認します。最も強力な検証は、実際のシステムのステップ応答を測定し、シミュレーションと比較することです。 2 つが一致する場合、モデルと設定は信頼できます。

ミニケース

自動化エンジニアは、AI からの PID 値を温度炉に適用します。シミュレーションでは応答は良好に見えます。しかし現場では、炉は目標温度をはるかに超えて振動し始めます。理由: 実際のオーブンの加熱遅延 (デッド タイム) がモデルに含まれていなかったためです。 AI は、ラグのない理想的なモデルを想定しました。エンジニアは、積分項を削除し、遅延補償を追加し、最初に低い設定値でテストすることにより、システムを安全に適合させます。教訓: AI の PID 推奨はモデルの精度に依存します。実際の遅れ、飽和、摩擦はフィールドで発生するため、段階的な調整が必要です。

よくある間違い

  • 極性/安定性を個別にチェックせずに AI の代数に依存します。
  • 完全な動作状態で PID 値を直接適用します。
  • モデル内のむだ時間、飽和、摩擦を無視します。
  • 測定ノイズを考慮せずに微分項を大きく選択します(ノイズが増幅されます)。
  • 積分ワインドアップと飽和制限を無視します。
  • シミュレーションが「良好」であるため、現場でテストせずに試運転します。

要約すると

  • 安定性はポールの位置によって決まります。左半面は安定、右半面は不安定です。
  • Routh-Hurwitz、ボード (ゲイン/位相余裕)、および根軌跡の安定性は検証ツールです。
  • AI の PID 推奨は出発点です。シミュレーション → リスクの低い現場 → 段階的な改善という順序になります。
  • 各 PID 項をやりすぎることの利点とリスクを知っておく必要があります。
  • AI の安定性に関する主張は、ボード線/根軌跡曲線と実際のステップ応答を使用してテストされます。
  • 実際のシステムのレイテンシと飽和には、理想的なモデルを超えたチューニングが必要です。

アプリケーションタスク

単純な 2 次システムを選択します (または独自のシステムのモデルを使用します)。伝達関数の極性とPIDの初期設定をAIに問い合わせます。次に、(1) numpy.roots を使用して極性を個別に検証します。(2) 閉ループのステップ応答をシミュレートし、オーバーシュートとセトリング時間を測定します。(3) Kp、Ki、Kd を 1 つずつ変更し、応答がどのように劣化するかを観察します。 AI による推奨が単なる始まりにすぎない理由を、あなた自身の観察を交えて説明してください。