오늘 끝나면
피드백 제어 (PID)
- ✓피드백 제어 (PID)의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 피드백이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
목표와 현재의 오차를 줄여 안정시키다 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
Physical AI · 07
피드백 제어
(PID)
목표와 현재의 차이를 오차라고 한다.
그 오차를 계속 재서 줄이는 것이 제어다.
드론이 안 떨어지는 것도, 온도가 일정한 것도 같은 원리다.
오차를 줄이는 루프
제어는 한 가지 질문에서 출발한다. 지금 목표에서 얼마나 벗어났나.
목표값을 setpoint, 측정값을 measured라고 한다.
둘의 차이가 오차다. error = setpoint − measured로 쓴다.
제어기는 이 오차를 보고 모터나 히터에 얼마나 힘을 줄지 정한다.
한 번 보정하고 끝나는 게 아니다. 보정하면 현실이 바뀌고, 그 결과를 다시 측정해 오차를 다시 계산한다.
측정과 오차 계산과 보정으로 이어지는 이 고리가 1초에 수십, 수백 번 돈다.
이렇게 출력을 다시 입력으로 되먹이는 구조를 피드백 루프라고 한다.
되먹임이 없으면 한 번 쏘고 끝이다. 바람이 한 번 불면 드론은 기운 채로 그대로 간다.
되먹임이 있으면 틀어질 때마다 스스로 끌어온다. 그게 안정의 정체다.
출력을 다시 입력으로 되먹여 오차를 계속 줄인다
P · I · D 세 항
오차 하나만 봐서는 부족하다. PID는 오차를 세 시각으로 나눠 본다.
P는 비례 항이다. 지금 오차에 비례해 밀어준다.
오차가 크면 세게, 작으면 살살 민다. 가장 직관적인 항이다.
그런데 P만 쓰면 목표 바로 밑에서 멈춘다. 잔류오차가 남는다.
I는 적분 항이다. 그동안 쌓인 오차를 누적해 더한다.
작은 오차도 오래 남으면 적분값이 커져 끝까지 밀어붙인다.
잔류오차를 0으로 지우는 것이 I가 하는 일이다.
D는 미분 항이다. 오차의 변화율, 즉 다가오는 속도를 본다.
목표에 빨리 근접하고 있으면 미리 힘을 빼 제동을 건다. 과속해서 넘어가는 것을 막는다.
이 셋을 합친 u = Kp·e + Ki·∫e + Kd·de/dt가 제어 출력이다.
지금 오차에 비례해 민다
혼자 쓰면 목표 밑에서 멈춰 잔류오차가 남는다
쌓인 오차를 끝까지 밀어 0으로 만든다
과하면 느리게 출렁인다(와인드업)
다가오는 속도에 제동을 건다(damping)
과하면 노이즈에 민감해진다
튜닝, 진동과 느림 사이
PID의 진짜 일은 세 게인 Kp·Ki·Kd의 크기를 맞추는 것이다. 이것을 튜닝이라고 한다.
게인이 너무 세면 오차에 과하게 반응해 목표를 넘긴다. 되돌리려다 또 넘긴다.
넘었다 줄었다 출렁이는 진동이 생긴다. 심하면 영영 안 가라앉는다.
게인이 너무 약하면 반응이 굼떠 목표까지 한참 기어간다.
안정적이긴 한데 느리다. 빠른 외란에 못 따라간다.
좋은 튜닝은 그 사이에 있다. 빠르게 올라가되 거의 안 넘기고 딱 붙는 상태다.
보통 P를 올려 속도를 잡고, D로 진동을 눌러 damping을 주고, I로 잔류오차를 지운다.
직접 튜닝해 보기
오른쪽은 관성 있는 시스템에 PID를 물린 시뮬레이터다.
파란 점선이 목표선, 검은 곡선이 현재값이다.
현재값은 0에서 출발해 목표선까지 올라가려 한다.
세 슬라이더를 움직이면 곡선 모양이 즉시 바뀐다.
게인을 키우면 목표를 넘었다 줄었다 출렁이는 진동이 나고, 너무 약하면 목표 밑에서 느리게 멈춰 잔류오차가 남는다.
P·I·D를 맞추면 빠르게 올라가 딱 붙는다.
드론의 고도, 항온기의 온도, 자동차의 크루즈 속도가 전부 이 곡선이다.
물리 시스템은 달라도 PID 한 묶음이면 같은 방식으로 다스려진다.
게인이 세다. 목표를 넘었다 줄였다 출렁인다. D를 키워 damping을 준다.
어디에나 도는 같은 원리
PID는 1900년대 초 배의 자동 조타에서 정리된 뒤, 지금도 산업 제어의 대다수를 차지한다.
드론은 자이로와 가속도 센서로 기울기를 재고, 네 모터의 회전수를 PID로 조절해 수평을 유지한다.
항온기는 온도 센서를 읽어 히터 출력을 PID로 조절해 설정 온도를 지킨다.
자동차 크루즈 컨트롤은 현재 속도와 목표 속도의 오차로 스로틀을 제어한다.
겉은 다 다르지만 속은 같은 루프다. 센서로 측정하고, 오차를 구하고, P·I·D로 보정하고, 다시 측정한다.
PID는 수식 한 줄로 도는 가장 단단한 제어의 기본기다.
Q. PID 제어에서 현재값이 목표를 넘었다 줄었다 심하게 진동한다. 가장 먼저 의심할 것은?
게인이 과한 것이다. 보통 P가 너무 크다.오차에 과하게 반응해 목표를 넘기고, 되돌리다 또 넘기길 반복하니 출렁인다.
처방은 둘이다. D를 키워 변화율에 제동(damping)을 걸거나, 전체 게인을 낮춘다.
반대로 너무 느리고 목표에 못 미치면 그때는 게인이 약한 것이다. P를 올리고 잔류오차는 I로 지운다.
| 시스템 | 측정 | 보정 |
|---|---|---|
| 드론 균형수평·고도 유지 | 자이로·가속도 | 4모터 회전수 |
| 항온기설정 온도 유지 | 온도 센서 | 히터 출력 |
| 크루즈목표 속도 유지 | 차속 | 스로틀 |