発行済み 2026-05-14
パーキンソン病患者のように、自分が丹精込めて作ったロボットアームが何かを掴むと震え続ける状況に遭遇したことはありませんか?それとも、自分で作ったドローンのジンバルが風で左右に揺れ、まるで災害映画を撮影しているかのように写真がぼやけてしまったかも?
その背後にはステアリングギアの「頭脳」であることが多く、その制御プログラムに問題がある。さらに、ステアリングギアの強さと精度を制御する核となるアルゴリズム、つまりPID調整が適切に調整されていませんでした。この 3 文字を見て怖がらないでください。それは理解できない魔法ではなく、極めて繊細な「バランス技術」である。今日は、最も一般的に使用されるものを取り上げますサーボ例として、ロボットを「ぴくぴく」から「スムーズ」に変えるためのPID調整の秘密を徹底的に解析します。
記事作成のヒント:比例係数
ステアリングギアがどのように機能するかを理解する必要があります。 「90度の位置に回転してください」という指示を与えます。内部のモーターが狂ったように回転し、それによってギアセットと出力シャフトを駆動します。同時に、「ポテンショメータ」と呼ばれるセンサーが常にシャフトの実際の角度を検出します。実際の角度が静止している場合 90 度に達していない場合、コントローラーはモーターに 1 秒あたり数ユニットの最大出力で正方向に動作するよう促します。目標位置を超えたら、反転して戻らなければなりません。絶妙な調整機構が無いと、目標位置付近で飛び跳ねを繰り返してしまいます。これが私たちが目にする「ジッター」現象です。
PID 制御は、この「反復水平ジャンプ」問題に対処するための特別なスキルです。 P、I、D はそれぞれ比例、積分、微分の略称です。 3 人は専門家グループのようなもので、力を合わせて「PWM 信号」コマンドを送信し、ステアリングギアにどれだけの力を加えてどの方向に回転させるかを指示します。
まず、チームの最も重要で重要なメンバーである比例係数 (略して P と呼ばれます) を見てみましょう。それが実行する作業は、現在のエラーに基づいて出力の強度を判断するという、最も単純かつ直接的かつ大まかな特徴を持っています。では、何をエラーと呼ぶのでしょうか?いわゆる誤差は、「現在の角度」から「目標の角度」を引いた差です。 90 度回転する予定で、現在 0 度にいるとすると、誤差は 90 度になります。 P の関数は次のとおりです。出力は誤差に比例係数を乗算したものに等しくなります。係数が大きいほど出力も大きくなります。
たとえば、ロボットは足を機敏に持ち上げることができる必要があります。 P 値を小さくしすぎると、柔らかい麺で石をこじ開けるようになります。が受け取ったコマンドは、サーボそれは「ゆっくり優しく持ち上げる」ことです。その結果、足が全く上がらなくなったり、動きがナマケモノのように遅くなったりします。 P 値の設定が大きすぎると、腕に止まった蚊と戦うために全力を尽くすように要求されるようなものになります。力が非常に大きすぎます。ときサーボほぼ90度に近づいているのに、猛スピードで突進し、上限にドーンと突き当たって跳ね返り、また突進して激しい揺れを引き起こす。適切な比例係数を使用すると、サーボはパワーの 80% を使用してターゲットに向かって素早く走り、近づくときに減速することができます。
Q/A: 比例係数が大きすぎるとサーボはどうなりますか?

A: 激しく振動したり、鋭い音を立てたり、力のオーバーシュートにより目標位置で前後に振動します。ひどい場合にはギアが破損する恐れがあります。
したがって、PID 調整の最初のステップは、単独で戦い、P のみを調整することです。I と D を両方とも 0 に設定します。P 値を小さい値から大きい値まで徐々に大きくし、同時にステアリング ギアのフィードバックに注意してください。明らかな進化の過程を目撃するでしょう。P が非常に小さい場合、動きは遅く、常にターゲットに到達する数度手前にあります (これを「静的差」と呼びます)。 P が大きくなるほど動きは速くなりますが、目標点付近では弱い揺れが発生します。 Pがさらに増加すると、揺れは激化し、激しい振動に発展します。スイートスポットは通常、振動がわずかに揺れ始めているがまだ制御不能になっていない臨界値の直前に現れます。この感覚を覚えておいてください。これはその後のすべてのデバッグの基礎となります。
記事作成のプロンプトワード: 必須項目
ただし、P だけではすぐにボトルネックに遭遇します。たとえば、ロボットが重い物体を保持している場合は、サーボを緩めずに 90 度に保つ必要があります。重力の影響により、継続的な誤差が発生します。 P 制御には、誤差が大きいほど必要な労力も大きくなるという特性があります。しかし、この重力に対抗するには継続的な「修正力」が必要です。しかし、誤差が極端に小さい場合は、与える力も非常に小さいため、サーボが正確に90度に到達できず、89.5度の位置で止まってしまう場合があります。これが前述の「静的エラー」です。
このとき、チームの 2 人目のエキスパート、ポイント担当者、I がデビューする番でした。 Iの役は、非常に記憶力の良い会計士のような役です。そのタスクは、過去のすべてのエラーを合計することです。エラーが続く限り、この累積合計は増加し続けます。次に、この「総勘定元帳」にも係数が乗算され、最終的な出力コマンドに追加されます。
この仕組みは本当にすごいですね!重力によりステアリングギアが89.5度になると、0.5度のわずかな誤差が生じます。このとき、P は重力に抵抗しにくい弱い力しか出力できません。ただし、0.5度の誤差は覚えておきます。 1 秒後には 0.5 度が蓄積されて 1. 度になり、2 秒後には 1.5 度になるなど、蓄積された値は増加し続け、追加の力の出力も増加し続けます。最終的には、この常に存在する「余分な推力」が重力の影響を正確に克服し、サーボを強制的に正確な 90 度に押し込み、この角度でロックします。
Q/A: 積分項はどのような問題を解決できますか?
A: 静的エラーを排除します。 It provides continuous force by accumulating small deviations, allowing the steering gear to resist external interference and ultimately reach the precise position.
However, I is also a dangerous character. I値の設定が大きすぎる場合や、電源投入直後にI値が0にならないなどシステムに初期誤差がある場合、累積加算値が急激に拡大し、サーボに大きな「過補正」力が出力され、「積分飽和」と呼ばれる激しいオーバーシュートや長時間にわたる激しい発振が発生します。もっと一般的な状況は、ロボット アームが何かに引っかかってエラーが常に発生し、狂ったように蓄積されてしまうというものです。障害物が突然消えると、この大きな累積力が瞬時に解放され、サーボが飛び出すように飛び出すため大変危険です。
記事執筆のヒント: 微分項
現時点では、P を駆動するとサーボはすぐに反応し、I の助けを借りて正確に位置決めされ、かなり良好に見えます。しかし、急速に変化する特定のシナリオに直面した場合には、依然として不十分であると感じる可能性が非常に高くなります。ドローンが強風の中でホバリングしているか、レーシングロボットが緊急停止して瞬時に方向転換する必要があると想像してください。この時、私もPさんも反応が少し「遅い」ように思えました。それは「後から」調整されたからです。私たちに必要なのは、先を読む力です。
これはチーム内のシンクタンクで、微分項、略して D と呼ばれます。 Dの役割は預言者のようなものです。現在のエラーの大きさや、過去に蓄積されたエラーの数は気にしません。気にするのは 1 つのことだけです。それは、エラーがどれだけ速く変化するかです。誤差の変化率、つまり「誤差の傾き」を計算します。 , ステアリングギアが目標から急速に逸脱するなど、誤差が急速に拡大している場合、D はこの状況を止めるために非常ブレーキのように大きな逆力を出力します。誤差が非常に速い速度で縮小している場合、つまりサーボがターゲットに向かって高速で動いている場合、D は逆方向の力も出力し、オーバーシュートを防ぐために事前に「ブレーキを踏みます」。
賢い比喩を使ってみましょう。あなたは友人に会うために車を運転します。 P はアクセルを制御することを指し、アクセルを踏むほど深く踏み込みます。赤信号を待っているときは、停止線からの距離をなくすためにゆっくりと車を前にスライドさせます。これは一種の操作です。待機段階での動作。 D、前方に赤信号が見えたらアクセルを戻し、軽くブレーキを踏みます。これはそのような動作動作です。すでに発生したエラーを修正することではなく、エラーの発生を防ぐことであることは明らかです。
ステアリングギア制御の分野では、D の役割は非常に重要です。過大なPや外部衝撃による「オーバーシュート」や「発振」を大幅に抑制します。たとえば、点から点へ素早く移動する必要があるロボット アームがあります。 D がない場合は、酔っ払いのようにターゲット ポイントに「ガチャン」と当たって跳ね返されるようなものになる可能性があります。しかし、適切なDを加えると、目標地点に近づくときに優雅に減速し、羽のように静かに倒れることができます。
Q/A: 微分項の主な機能は何ですか?
A: オーバーシュートや発振を抑えます。誤差の傾向を予測して事前にブレーキをかけることで、ステアリングギアに「予測性」を与え、動作をよりスムーズにします。
これまでに、PID の専門家チームが完成しました。 Pは「現在」の力を担い、Iは「過去」の説明を制御し、Dは「未来」の傾向を制御します。 3人とも、 などの高性能サーボを使用しています。キロパワーサーボと付属のデバッグソフトウェアにより、チューナーのようにあらゆるパラメーターを非常に繊細に調整できます。
もちろん、紙から得られるものは最終的には十分に深いものではありません。実際のデバッグ プロセスは、多くの場合、古典的なプロセスに従って実行されます。私たちはこのプロセスを「3 段階安定化法」と呼んでいます。
ステップ 1: I と D をゼロに設定します。 0 から始めて、サーボが等しい振幅のわずかな連続振動を生成し始めるまで、P の値をゆっくりと増加させます。この P 値を覚えておき、それを半分にして、この半分の値を開始 P 値として使用します。この「振動の P 値」はシステムの重要な特性です。
2 番目のステップでは、1 番目のステップの P 値を維持し、I 値を 0 からゆっくりと増加させ、サーボが外力 (指でサーボ アームを回すなど) によって妨害された後、サーボが静的な差を解消し、振動なくすぐに元の位置に戻ることができるまで I を増加させます。揺れが大きい場合は大きすぎるということですので、小さくしてください。
Q/A: PID デバッグの正しい順序は何ですか?
A: まず P を臨界振動に調整してから半分に減らし、次に I を調整して静的な差異を除去し、最後に D を調整して余震を抑制し、PID 順序で段階的に最適化します。
3 つのステップで、まず最初のステップでは、P と私がサーボを対応する位置に迅速かつ正確に到達させました。ただし、わずかな「うなずき」や「余震」が残る場合があります。次に 2 番目のステップとして、この時点で D 値を 0 から増加させます。D が増加するにつれて、最後の小さな揺れが非常に早く消え、全体のアクションが非常に鮮明でクリーンになります。最後に、3 番目のステップでは注意してください。 D値が大きすぎるとサーボの応答が鈍くなり、高周波の悲鳴を上げて終了してしまうこともあります。
ほぼすべての分野の一流の人々が暗黙のうちに理解している重要なポイントを共有します。つまり、完璧な PID は厳密な数値のセットではなく、バランスを達成するための芸術的な方法です。すべての状況に適用できる「万能のパラメーター」はありません。サーボの負荷、応答速度の要件、さらには環境の温度変化に基づいて動的に調整する必要があります。学生が取り組むプロジェクトにおいては、「純粋な理論で決まる最適な状態」を追求することよりも、「機能を満たし、安定性を維持すること」を追求することが重要です。予想される調整範囲をわずかに超えて動きますが、決してスタックしないロボットは、理論的に正確ではあるが頻繁に激しく振動するロボットよりもはるかに効果的です。
行動の提案 :
この時点で、すぐにロボットを手に取り、サーボ デバッグ ソフトウェアを起動してください。 P 値から始めて、いわゆる「3 ステップ法」を使用して、各パラメーターの変化を個人的に体験します。まず携帯電話を使用して現在のジッター状況をスローモーション ビデオで記録し、次に各ラウンドで調整する P/I/D 値と対応する効果を書き留めます。信じてください。「てんかん」状態のロボットをスムーズかつ自然に調整できるように個人的に調整すると、既製のコードでは得られない大きな達成感を感じるでしょう。今日から、ジッターに別れを告げ、サーボがすべてのコマンドを真に理解できるようにします。
更新時間:2026-05-14