Skip to content
RFrftools.io
Motor Control2026年3月21日6分で読める

チーグラー・ニコルズ PID 調整:ゲインへのオープンループ

プロセスゲイン、デッドタイム、時定数を使用して、チーグラー・ニコルスの PID 調整について学習します。実際のモーター制御値を使った例を紹介します。無料のオンライン電卓。

目次

PID チューニングが依然として重要である理由

PID コントローラーはどこにでもあります。真面目な話、リフローオーブンのサーマルループからブラシレスDCモーターの速度制御まで、あらゆるものを制御します。モデル予測制御のような派手な新しい制御戦略が次々と登場しているにもかかわらず、従来のPIDは依然として王様です。なぜ?動作しますし、基本的なマイクロコントローラに実装するのは非常に安価で、チューニングがうまくいくと美しく動作します。

秘訣はそのチューニングにあります。PIDの設定が適切でないと、酔っ払いの綱渡りのように振動したり、反応が非常に遅くなったりするので、手動で制御したほうがよいでしょう。誰かがゲインを推測しただけで 40°C オーバーシュートするサーマルコントローラーを見たことがあります。0201パッシブで埋め尽くされたボードをリフローさせようとする場合はあまり良くありません。

Ziegler-Nicholsオープンループ方式では、プロセスゲインKK、デッドタイムLL、時定数τ\tauという3つの主要なプロセス特性に基づいて、エンジニアは確実で反復可能な出発点を得ることができます。1942年から使われていますが、当て推量に頼る必要がないため、今でも使われています。1 回のテストを実行し、3 つのパラメーターを測定し、それらを数式に組み込むと、通常は 80% の達成率を示すベースラインが得られます。

オープンループステップ応答法

ゲームプランは次のとおりです。システムをオープンループにして、アクチュエータにステップチェンジ (モータードライバーへの電圧ステップなど) をかけ、プロセス変数に何が起こるかを記録します。その S 字型の応答曲線から、3 つの重要なパラメーターを抽出します。

1つ目はプロセスゲインKKです。つまり、入力ステップごとに得られる出力の変化量です。1ボルトあたりのRPM、デューティサイクルあたりの摂氏パーセンテージなど、システムが話す単位は何でもかまいません。ヒーターのPWMを 0% から 50% に上げて、最終的に温度が 75°C 上昇した場合、デューティ・サイクル当たり 1.5°C のプロセス・ゲインが得られます。

次はデッドタイムLLです。何かが動き始めるまでの遅延を秒単位で測定したものです。これはまったくのラグです。入力を変更しても、イライラする瞬間は何も起こりません。その後、システムが起動し、応答を開始します。デッドタイムはファストコントロールの敵です。持っている量が多いほど、チューニングはより保守的になります。

最後に、時定数τ\tauがあります。これは、最初の遅延が始まった後、最終値の約 63% に達するまでにかかる時間です。これは一次システム理論に基づいています。指数応答は、1 つの時定数を過ぎると最終値の 63.2% に達します。実際には、S カーブの変曲点に接線を引き、それが最終値線と交差する位置を確認して、応答が始まった時点まで測定します。

これら 3 つの数値を集めると、チーグラー・ニコルズが P、PI、およびフル PID コントローラーの直接式を渡します。その利点は、基礎となる物理について知る必要がないということです。それが対流損失を伴う熱質量であろうと、逆起電力ダイナミクスを伴うモーターであろうと関係ありません。ステップ応答がすべてを教えてくれます。

チーグラー・ニコルズの公式

PID コントローラー の場合、従来の開ループ調整規則は次のようになります。
Kp=1.2τKLK_p = \frac{1.2\,\tau}{K\,L}
Ti=2LT_i = 2L
Td=0.5LT_d = 0.5L
これにより、標準形式の比例ゲインKpK_p、積分時間TiT_i、微分時間TdT_dが得られます。ただし、最近のコントローラーのほとんどはパラレル (ISA) 形式を使用しているため、以下を変換する必要があります。
Ki=KpTiK_i = \frac{K_p}{T_i}
Kd=KpTdK_d = K_p \cdot T_d
PI のみのコントローラー (微分作用によって解決される問題よりも問題が多くなるノイズの多いシステムで有用)
KpPI=0.9τKLK_p^{\text{PI}} = \frac{0.9\,\tau}{K\,L}
TiPI=L0.3=3.33LT_i^{\text{PI}} = \frac{L}{0.3} = 3.33L
PI チューニングの方が保守的であることに注意してください。比例ゲインが低く、積分時間が長くなります。これは意図的なものです。リードを補償するデリバティブ条件がないと、安定性を維持するためには少し後回しにする必要があります。

これらの計算式は、1/4 減衰比を目標としています。つまり、各オーバーシュートは前回よりも約 25% 小さくなります。アグレッシブですが、通常はしっかりとした出発点となります。システムを削岩機に変えなくても、それなりの速度が得られます。ほとんどのエンジニアはここからデチューンすることになりますが、ゼロから始めるよりはずっと良いです。

使用例:DC モーター速度制御

これを具体的に作ってみましょう。コンベヤーベルトに搭載された 24 V ブラシ付き DC モーター用の速度コントローラーを設計していると想像してみてください。PWM を 0% から 20% にステップアップし、タコメータエンコーダで速度を追跡します。表示される内容は次のとおりです。

ステップの 0.15 秒後にモーターが動き始めます。それがあなたのデッドタイムです →L=0.15sL = 0.15\,\text{s}。電気時定数、機械的慣性の克服など何でもあり得ます。理由は気にしない。ただそこにあるだけだ。

速度はt=0.15+0.8=0.95st = 0.15 + 0.8 = 0.95\,\text{s}の最終値の 63% に達しました。0.15 秒で応答し始めたので、時定数はτ=0.8s\tau = 0.8\,\text{s}です。これはおそらく、システムの機械的慣性と粘性減衰が支配していると考えられます。

20% のデューティ・サイクルで最終速度は600 RPMに落ち着きます。プロセスゲインはK=60020=30RPM/%K = \frac{600}{20} = 30\,\text{RPM/\%}です。少なくともこの動作範囲では、直線的で素晴らしいです。

次に PID 式に代入します。

Kp=1.2×0.830×0.15=0.964.5=0.2133K_p = \frac{1.2 \times 0.8}{30 \times 0.15} = \frac{0.96}{4.5} = 0.2133
Ti=2×0.15=0.3sT_i = 2 \times 0.15 = 0.3\,\text{s}
Td=0.5×0.15=0.075sT_d = 0.5 \times 0.15 = 0.075\,\text{s}
並列形式への変換:
Ki=0.21330.3=0.711s1K_i = \frac{0.2133}{0.3} = 0.711\,\text{s}^{-1}
Kd=0.2133×0.075=0.016sK_d = 0.2133 \times 0.075 = 0.016\,\text{s}
PI のみの制御の場合 (正直なところ、実際のモーターから始めると思います):
KpPI=0.9×0.830×0.15=0.724.5=0.16K_p^{\text{PI}} = \frac{0.9 \times 0.8}{30 \times 0.15} = \frac{0.72}{4.5} = 0.16
TiPI=3.33×0.15=0.5sT_i^{\text{PI}} = 3.33 \times 0.15 = 0.5\,\text{s}
これらは PID コントローラーのチューニング (Ziegler-Nichols) 計算機ですぐに確認できます。毎回手作業で算術演算を行う手間が省けます。

実際のシステムに関する実践的なヒント

PI から始めて D を追加するかもしれません。 センサーノイズは、微分項の価値よりも問題を起こすことがよくあります。微分作用によってエンコーダの量子化ノイズが 50 Hz のバズに増幅され、機械アセンブリ全体が鳴り響くのを見たことがあります。PI から始めて、安定性を確認し、より速い外乱の抑制やより厳密なトラッキングが必要な場合にのみ微分関数を追加してください。多くの場合、そうは行いません。 Ziegler-Nicholsは出発点です。 4分の1減衰法では、特にオーバーシュートが高価で危険なシステムでは、必要以上にオーバーシュートが発生する可能性があります。ほとんどのエンジニアはKpK_pを計算値から 20 ~ 30% 減らし、速度と滑らかさのバランスをとるためにTiT_iを微調整します。私は普段、比例ゲインに0.7を掛けて、どんな感じになるか見てみます。後でいつでも上げることができます。 サンプルレートは重要です。 制御ループが 1 kHz で動作し、デッドタイムが 150 ミリ秒であれば、問題ありません。50 Hz では、大まかな微分作用が得られますが、あまり役に立たない可能性があります。経験則では、サンプル周期は微分時定数の少なくとも 5 ~ 10 倍速いはずです。そうしないと、サンプル間のノイズが増幅されるだけです。上記のTd=0.075T_d = 0.075s のモーターの例では、少なくとも 7.5 ms ごと、つまり 130 Hz 以上をサンプリングする必要があります。 アンチワインドアップは重要です。 積分項では、モーターのデューティサイクルがすでに 100% になっているが、設定値がまだ高い場合など、飽和時に誤差が累積されます。アンチワインドアップ保護がないと、積分器は巻き上げを続け、誤差が最終的に逆転すると、積分項がほどけるまでに永遠に時間がかかるため、大幅なオーバーシュートが発生します。クランプや逆算を行わないと、コンベアベルトが部品を部屋のあちこちに飛ばす危険性があります。 実際の条件下で再調整 プロセス特性は、負荷、温度、電源電圧、その他多数の変数によって変化します。モーターの有効時定数は、負荷を下げると増加します。ヒーターのゲインは、周囲温度が変化すると変化します。最悪の場合の操作点で調整するか、少なくともゲインがその点でも機能することを確認してください。空という特徴付けをしたシステムは、実際に有用な処理を行っているときには、まったく異なる動作をする可能性があります。 非線形性に注意してください チーグラー・ニコルス法では、システムが操作点を中心として適度に線形であることを前提としています。アクチュエータが飽和したり、デッドバンドが大きかったり、動作条件によってプロセスゲインが大きく変化したりする場合は、ゲインスケジューリングや適応制御が必要になることがあります。1 組の PID ゲインでできることは限られています。

いつ別の方法を使うべきか

チーグラー・ニコルズでは、一次プラスデッドタイム (FOPDT) モデルを仮定しています。これは多くの工業プロセスにとってかなり良い近似値ですが、すべてではありません。ヒーター、ヒートスプレッダー、熱質量を備えたカスケード熱システムのように、時定数が複数ある複雑なシステムでは、コーエンクーンやリレーの自動調整などの方法の方が適している場合があります。Cohen-Coon は、デッドタイムと時定数の比が大きいプロセスをより適切に処理します。

プロセスが本番稼働中であるか、大きなステップによって何かが損傷するなどの理由でステップテストを安全に行えない場合は、クローズドループの識別方法またはソフトウェアの自動チューニングを検討してください。一部のコントローラーには自動調整ルーチンが組み込まれており、リレーフィードバックテストを行ってシステムを制御しながら特性評価を行います。

デッドタイムが最小で非常に高速なシステムでは、極配置やその他のモデルベースの手法を使用するとよりよい結果が得られる場合があります。しかし正直なところ、直面するであろう組込み制御の問題の 90% については、Ziegler-Nichols が少し手作業で微調整すれば問題解決に近づきます。

試してみてください

ステップ応答データを入手し、KKLLτ\tauを抽出し、PIDチューニング計算機を起動してください。PI と PID のパラメーターが計算されるので、システムに適した方法を選択できます。ブックマークしておけば、思った以上に使えます。オシロスコープのトレースをじっと見つめて、なぜコントロールループが鳴っているのか不思議に思うたびに、ここから始めることができます。

関連記事