게시됨 2026-05-14
공들여 만든 로봇 팔이 파킨슨병 환자처럼 무언가를 잡을 때 계속 흔들리는 상황을 겪어본 적이 있나요? 아니면 직접 제작한 드론 짐벌이 바람에 좌우로 흔들리고 마치 재난영화를 찍는 것처럼 사진이 흐릿하게 찍힌 건 아닐까?
그 뒤에는 스티어링 기어의 '브레인'이 있는 경우가 많고, 그 제어 프로그램에 문제가 있는 경우가 많다. 게다가 조향장치의 강약과 정확성을 제어하는 핵심 알고리즘, 즉 PID 조정도 제대로 조정되지 않았다. 이 세 글자에 겁먹지 마세요. 그것은 이해할 수 없는 마법이 아니라, 극도로 섬세한 '밸런스 기술'이다. 오늘은 가장 일반적으로 사용되는서보 기구예를 들어, 로봇이 "트위칭"에서 "부드러움"으로 바뀔 수 있도록 PID 조정의 비밀을 철저하게 분석하는 것입니다.
기사 작성 팁: 비례계수
우리는 스티어링 기어가 어떻게 작동하는지 이해해야 합니다. 당신은 "90도 위치로 회전하라"는 명령을 내립니다. 내부의 모터가 미친 듯이 회전하여 기어 세트와 출력 샤프트를 구동합니다. 동시에 "전위차계"라고 불리는 센서는 항상 샤프트의 실제 각도를 감지합니다. 실제 각도가 여전히 90도에 도달하지 않은 경우 컨트롤러는 모터가 초당 몇 단위의 최대 출력 전력으로 앞으로 작동하도록 메시지를 표시합니다. 목표 위치를 초과하면 다시 반전해야 합니다. 절묘한 조정 메커니즘이 없으면 대상 위치 근처 영역에서 앞뒤로 반복적으로 점프합니다. 이것이 바로 우리가 보는 "지터" 현상입니다.
PID 제어는 이러한 "반복적인 수평 점프" 문제를 처리하는 특별한 기술입니다. P, I, D는 각각 비례(Proportion), 적분(Integral), 미분(Differential)의 약어입니다. 세 사람은 마치 전문가 그룹과도 같이 협력하여 스티어링 기어에 얼마나 많은 힘을 사용해야 하는지, 어느 방향으로 회전해야 하는지 알려주는 "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도 위치에 머무를 수 있습니다. 이는 앞서 언급한 "정적 오류"입니다.
이때 팀의 두 번째 전문가인 포인트 아이템 아이(I)가 데뷔할 차례였다. 제가 맡은 역할은 기억력이 굉장히 좋은 회계사 같은 역할이에요. 그 임무는 과거의 모든 오류를 합산하는 것입니다. 오류가 지속되는 한 이 누적 합계는 계속 증가합니다. 그런 다음 이 "총계정원장"에도 계수를 곱하여 최종 출력 명령에 추가합니다.
이 메커니즘은 정말 놀랍습니다! 조향기어가 중력으로 인해 89.5도에 도달하면 0.5도 정도의 미미한 오차가 발생합니다. 이때 P는 이를 위해 약한 힘만을 출력할 수 있어 중력에 저항하기 어렵다. 하지만 0.5도의 오차는 기억하겠습니다. 1초가 지나면 0.5도가 누적되어 1.도가 되고, 2초가 지나면 1.5도가 되는 식으로 됩니다. 누적된 값은 계속 증가하며, 추가 힘 출력도 계속 증가합니다. 결국 이 항상 존재하는 "추가 추력"은 중력의 영향을 정확하게 극복하여 서보를 강제로 정확한 90도까지 밀고 이 각도에서 잠그게 됩니다.
Q/A: 적분항은 어떤 문제를 해결할 수 있나요?
A: 정적 오류를 제거합니다. 작은 편차를 축적하여 지속적인 힘을 제공함으로써 조향 기어가 외부 간섭에 저항하고 궁극적으로 정확한 위치에 도달할 수 있도록 합니다.
하지만 나도 위험한 캐릭터다. I 값을 너무 크게 설정하거나 전원을 켜자마자 0이 아닌 등 시스템에 초기 오류가 있는 경우 누적된 합계가 급격히 증가하여 서보가 엄청난 "과수정" 힘을 출력하게 되어 "적분 포화"라고 하는 심각한 오버슈트 및 장기간의 격렬한 진동이 발생합니다. 더 일반적인 상황은 로봇 팔이 무언가에 걸려 있고 오류가 항상 존재하며 미친 듯이 누적되는 것입니다. 장애물이 갑자기 사라지면 이 거대한 누적된 힘이 순간적으로 방출되어 서보가 튀어나온 것처럼 날아가게 되는데 이는 매우 위험합니다.
기사 작성을 위한 팁: 차등 용어
이때 우리 서보는 P가 구동되면 즉시 반응하고, I의 도움으로 정확하게 위치를 잡아주는 모습이 꽤 괜찮아 보입니다. 그러나 급변하는 특정 시나리오에 직면하면 여전히 부적절하다고 느낄 가능성이 매우 높습니다. 드론이 강한 바람 속에서 맴돌고 있거나 레이싱 로봇이 비상 정지를 하고 즉시 방향을 바꿔야 한다고 상상해 보세요. 이때 P와 나 둘 다 반응이 조금 '느린' 것 같았다. '나중에' 조정되었기 때문입니다. 우리에게 필요한 것은 예측하는 능력입니다.
이것은 차등 용어, 줄여서 D라고 불리는 팀 내 싱크탱크입니다. D의 역할은 선지자와 같습니다. 현재 오류가 얼마나 큰지, 과거에 얼마나 많은 오류가 누적되었는지는 중요하지 않습니다. 이는 오류가 얼마나 빨리 변하는지에만 관심이 있습니다. 오류의 변화율, 즉 "오류의 기울기"를 계산합니다. , 조향 기어가 목표에서 빠르게 벗어나는 등 오류가 급격히 확대되는 경우 D는 비상 브레이크와 같은 엄청난 역력을 출력하여 이러한 상황을 중지합니다. 매우 빠른 속도로 오차가 줄어들면, 즉 서보가 고속으로 목표를 향해 이동하는 경우 D도 반대 방향으로 힘을 출력하고 미리 "브레이크를 밟아" 오버슛을 방지합니다.
영리한 은유를 사용해보자. 당신은 친구를 만나기 위해 운전하고 있습니다. P는 액셀을 제어하는 것을 의미하며, 더 멀리 갈수록 더 깊게 밟습니다. 나는 빨간불을 기다리고 있을 때 정지선과의 거리를 없애기 위해 차를 천천히 앞으로 밀어냅니다. 이것은 일종의 작업입니다. 대기 단계에서의 행동; D, 전방에 빨간불이 보이면 액셀에서 발을 떼고 브레이크를 가볍게 밟습니다. 이것은 그러한 작동 동작입니다. 이미 발생한 오류를 수정하는 것이 아니라 오류가 발생하지 않도록 방지하는 것임을 분명히 해야 합니다.
스티어링 기어 제어 분야에서 D의 역할은 매우 중요합니다. 과도한 P나 외부 충격으로 인한 '오버슈트', '진동'을 대폭 억제할 수 있습니다. 예를 들어, 지점 간 빠르게 이동해야 하는 로봇 팔이 있습니다. D가 없으면 술고래처럼 목표 지점에 "꽝" 소리를 내며 튕겨나가는 것과 같을 수 있습니다. 하지만 적절한 D를 추가하면 목표 지점에 가까워질 때 우아하게 감속하여 깃털처럼 부드럽게 떨어질 수 있습니다.
Q/A: 미분항의 주요 기능은 무엇입니까?
A: 오버슈트 및 진동을 억제합니다. 오류 추세를 예측하고 미리 제동하여 스티어링 기어에 "예측 가능성"을 부여하고 동작을 보다 원활하게 만듭니다.
지금까지 PID 전문가팀이 완성되었습니다. P는 '현재'의 힘을 갖고, 나는 '과거'의 기록을 관리하며, D는 '미래'의 추세를 제어합니다. 세 사람은 다음과 같은 고성능 서보를 사용합니다.kpower서보와 함께 제공되는 디버깅 소프트웨어를 사용하면 튜너처럼 모든 매개변수를 매우 섬세하게 조정할 수 있습니다.
물론, 종이에서 얻는 것은 궁극적으로 충분히 깊이 느껴지지 않습니다. 실제 디버깅 프로세스는 종종 고전적인 프로세스에 따라 수행됩니다. 우리는 이 과정을 '3단계 안정화 방법'이라고 부릅니다.
1단계: I와 D를 0으로 설정합니다. 0부터 시작하여 서보가 동일한 진폭의 약간 연속적인 진동을 생성하기 시작할 때까지 P 값을 천천히 늘립니다. 이 P 값을 기억한 다음 절반으로 나누고 이 절반 값을 시작 P 값으로 사용합니다. 이 "진동의 P값"은 시스템의 핵심 특성입니다.
두 번째 단계에서는 첫 번째 단계의 P 값을 유지하고 I 값을 0부터 천천히 증가시키며, 서보가 정적 차이를 제거하고 외부 힘(손가락으로 서보 암을 돌리는 등)에 의해 방해를 받은 후 진동 없이 신속하게 원래 위치로 돌아갈 수 있을 때까지 I를 증가시킵니다. 흔들림이 크다면 내가 너무 크다는 뜻이므로 줄여주세요.
Q/A: PID 디버깅의 올바른 순서는 무엇입니까?
A: 먼저 P를 임계 진동으로 조정한 다음 절반으로 줄인 다음 I를 조정하여 정적 차이를 제거하고 마지막으로 D를 조정하여 여진을 억제하고 PID 순서에 따라 단계별로 최적화합니다.
세 단계에 걸쳐 우선 첫 번째 단계에서 P와 저는 여러분의 서보가 빠르고 정확하게 해당 위치에 도달하도록 했습니다. 그러나 여전히 약간의 "끄덕거림"이나 "여진"이 있을 수 있습니다. 그런 다음 두 번째 단계인 이때 D 값을 0에서 증가시키면 D가 증가함에 따라 마지막 작은 흔들림이 매우 빠르게 사라지고 전체 동작이 매우 선명하고 깨끗해집니다. 마지막으로 세 번째 단계에서는 조심하세요. D 값이 너무 크면 서보 응답이 느려지고 심지어 고주파 비명을 지르며 종료됩니다.
거의 모든 분야의 최고들이 암묵적으로 이해하는 핵심 사항을 여러분과 공유하겠습니다. 즉, 완벽한 PID는 단단하고 빠른 숫자의 집합이 아니라 균형을 이루는 예술적인 방법입니다. 모든 상황에 적용되는 "일률적인 매개변수"는 없습니다. 서보의 부하, 응답 속도 요구 사항, 심지어 환경의 온도 변화에 따라 동적으로 조정해야 합니다. 학생들이 수행하는 프로젝트에 있어서는 '순수한 이론에 의해 결정되는 최적의 상태'를 추구하는 것보다 '만족스러운 기능과 안정성을 유지하는 것'을 추구하는 것이 더 중요합니다. 예상되는 조정 범위를 약간 벗어나 움직이지만 결코 멈추지 않는 로봇은 이론적으로는 정확하지만 종종 격렬하게 진동하는 로봇보다 훨씬 더 효과적입니다.
조치를 위한 제안 :
이 순간, 즉시 로봇을 집어 들고 서보 디버깅 소프트웨어를 시작하십시오. P 값부터 시작하여 "3단계 방법"을 사용하여 각 매개변수의 변화를 직접 경험해 보세요. 먼저 휴대폰을 사용하여 슬로우 모션 비디오로 현재의 지터 상황을 기록한 다음 각 라운드에서 조정하는 P/I/D 값과 해당 효과를 기록합니다. 저를 믿으십시오. "간질" 상태의 로봇을 직접 부드럽고 자연스럽게 조정하면 기성 코드가 줄 수 없는 엄청난 성취감을 느낄 것입니다. 오늘부터 지터와 작별하고 서보가 모든 명령을 실제로 이해할 수 있도록 하십시오.
업데이트 시간:2026-05-14