제어 공학에서 오랜 기간 왕좌를 지켜온 PID(Proportional-Integral-Derivative) 제어와 차세대 제어 알고리즘으로 주목받는 ADRC(Active Disturbance Rejection Control, 능동 장해 거부 제어)는 각각의 뚜렷한 철학과 장단점을 가지고 있습니다.
두 제어 방식의 핵심 개념, 성능 비교, 그리고 앞으로의 제어 트렌드를 상세히 정리해 드립니다.
1. PID vs ADRC 핵심 개념 이해
PID 제어: “과거와 현재의 오차만 보고 달린다”
PID는 시스템의 수학적 모델 없이도, 제어 대상의 ‘출력 값’과 ‘목표 값’의 오차(Error)만을 바탕으로 제어 입력을 생성합니다.
- P (비례): 현재 오차에 비례해 제어 (속도 결정)
- I (적분): 누적된 과거 오차를 제거 (정상상태 오차 제거)
- D (미분): 오차의 변화 추세를 보고 미래를 예측 (오버슈트 억제)
💡 한계: 시스템 내부에 급격한 외란(Disturbance)이 발생하거나, 모터의 부하가 갑자기 바뀌는 등 ‘동적 특성 변화’가 생기면 PID는 이에 즉각 대응하지 못하고 오차가 커진 후에야 사후 약방문식으로 제어를 시작합니다. 또한 미분(D) 성분은 센서 노이즈를 증폭시키는 고질적인 문제가 있습니다.
ADRC 제어: “외란을 실시간으로 감시하고 즉시 상쇄한다”
중국과학원 한징칭(Han Jingqing) 교수가 제안한 ADRC는 “모델의 불확실성과 외부 외란을 실시간으로 추정하여 제어 신호에서 빼버리면, 시스템은 단순한 적분기 형태로 변한다”는 철학에서 출발합니다. 핵심은 ESO(Extended State Observer, 확장 상태 관측기)입니다.
- 확장 상태 관측기 (ESO): 시스템의 내부 상태뿐만 아니라, ‘수학적 모델의 오류’와 ‘외부 외란’을 하나의 ‘총체적 외란(Total Disturbance)’이라는 새로운 상태 변수로 정의하고 실시간 추정합니다.
- 외란 상쇄: ESO가 외란을 알아내는 즉시, 제어 입력에서 그만큼을 상쇄(Feedforward 방식)시켜 버립니다.
- 선형 피드백: 외란이 사라진 깨끗한 시스템에 단순한 에러 피드백을 적용합니다.
2. 두 제어 방식의 정밀 비교 (어떤 게 우세한가?)
결론부터 말씀드리면 “제어 성능과 강인성(Robustness) 측면에서는 ADRC가 압도적으로 우세하지만, 구현의 단순함과 범용성 측면에서는 여전히 PID가 우세하다”고 볼 수 있습니다.
| 비교 항목 | PID 제어 | ADRC 제어 | 우세 승자 |
|---|---|---|---|
| 외란 대응 능력 | 오차가 발생한 후 제어 (느림) | ESO를 통해 외란을 실시간 상쇄 (매우 빠름) | ADRC |
| 모델 의존도 | 없음 (완전 블랙박스 가능) | 대략적인 시스템 차수만 알면 됨 | 무승부 |
| 매개변수 튜닝 | 3개 (Kp,Ki,Kd) / 직관적임 | ESO 대역폭, 제어기 대역폭 등 2~3개 (대역폭 기반 튜닝으로 발전하여 생각보다 쉬움) | 무승부 (최신 LADRC 기준) |
| 센서 노이즈 영향 | 미분(D) 항이 노이즈를 증폭시킴 | ESO가 필터 역할을 하여 노이즈에 강함 | ADRC |
| 연산 복잡도 | 매우 낮음 (MCU 자원 거의 안 먹음) | 관측기(ESO) 상태 방정식을 풀어야 하므로 연산량 많음 | PID |
| 산업계 범용성 | 전 세계 산업계의 90% 이상 사용 | 고성능 임베디드 장비를 중심으로 급격히 확산 중 | PID |
왜 ADRC가 우세한가? (예시)
모터 제어를 예로 들면, 로봇 팔이 물건을 집어서 갑자기 무게(부하)가 늘어나는 상황이 발생했을 때:
- PID: 속도가 떨어지고 나서야 Ki 항이 서서히 차올라 모터 출력을 높입니다. (응답 지연, 오버슈트 발생 가능)
- ADRC: 부하가 걸리는 순간 ESO가 이를 ‘외란’으로 즉시 감지하여 한두 스텝 만에 모터 전류를 올려버립니다. 속도 저하가 거의 발생하지 않습니다.
3. 앞으로의 제어 방식은 어디로 가는가?
앞으로의 제어 패러다임은 “PID의 점진적 세대교체”와 “지능형 제어의 융합”으로 요약할 수 있습니다.
① 하드웨어 성능 향상으로 ADRC의 급부상
과거에는 ADRC의 복잡한 행렬 연산과 관측기 루프를 저가형 MCU(마이크로컨트롤러)에서 돌리기 부담스러웠습니다. 하지만 최근 하드웨어(Cortex-M 시리즈, ESP32, RP2040 등)의 성능이 비약적으로 상승하면서 ADRC를 탑재하기 매우 유리해졌습니다.
- 텍사스 인스트루먼트(TI) 사의 모터 제어 칩셋에는 이미 InstaSPIN-MOTION이라는 이름으로 ADRC 기술이 내장되어 상용화되었습니다.
- 드론(Betaflight 등 프레임워크), 정밀 CNC, 서보 드라이브, 스마트 가전(인버터 컴프레서) 등 외란이 많고 정밀 제어가 필요한 영역에서 PID를 빠르게 대체하고 있습니다.
② 데이터 기반 및 AI와의 융합
전통적인 제어 이론에 딥러닝이나 강화학습(Reinforcement Learning)을 융합하는 시도가 활발합니다.
- AI 기반 자동 튜닝: PID나 ADRC의 파라미터를 사람이 맞추는 것이 아니라, AI가 시스템의 거동을 보고 실시간으로 최적의 파라미터(Gain)를 찾아주는 방식입니다.
- 신경망 외란 관측기: ADRC의 핵심인 ESO 자리에 딥러닝 모델을 넣어 복잡한 비선형 외란을 예측하는 연구가 진행 중입니다.
③ 현실적인 공존: PID는 죽지 않는다
ADRC가 아무리 좋아도 밸브 제어, 단순 온조기, 유량 제어처럼 빠른 응답이 필요 없고 정밀도가 적당해도 되는 수많은 산업 현장에서는 여전히 PID가 굳건히 자리를 지킬 것입니다. 싸고, 직관적이며, 유지보수가 편하기 때문입니다.
요약
- 현재: 단순하고 범용적인 제어는 여전히 PID가 지배하고 있지만, 고성능·강인 제어가 필요한 곳에서는 한계에 부딪히고 있습니다.
- 미래: 시스템의 성능을 극대화해야 하는 정밀 제어 분야(로봇, 드론, 전기차 모터 등)에서는 외란 저항성이 압도적인 ADRC가 사실상의 표준(Standard)으로 자리 잡아가고 있습니다.
💡 여기서 잠깐! 실무 엔지니어링 팁
앞서 PID와 ADRC의 이론적인 개념을 비교해 보았는데요. 이번에는 실제 임베디드 현업이나 DIY 프로젝트에 적용할 때 꼭 알아야 할 현실적인 실무 포인트 4가지를 짚고 넘어가겠습니다.
1. ADRC는 쓰기 어렵다? 편견을 깨버린 ‘LADRC’의 등장
“관측기(ESO)에 행렬식에… 수식이 너무 복잡해서 현업에서 못 쓰겠다” 하시는 분들이 많습니다. 실제로 한징칭 교수가 처음 제안한 초창기 ADRC는 비선형 수식이 많아 튜닝해야 할 파라미터가 10개가 넘어 다들 고개를 저었죠.
하지만 가오(Gao) 교수가 이를 선형화한 LADRC(Linear ADRC)를 발표하면서 판도가 완전히 바뀌었습니다.
- 복잡한 파라미터를 단 2개로 압축: 최신 LADRC는 관측기 대역폭(ωo)과 제어기 대역폭(ωc)이라는 딱 두 가지만 조절하면 튜닝이 끝납니다.
- 직관적인 튜닝: 시스템의 주파수 대역폭만 슥슥 조절하면 되기 때문에, 어설프게 Kp,Ki,Kd 세 개를 붙잡고 수십 번 밤새워 튜닝하는 PID보다 오히려 셋팅이 훨씬 직관적이고 빠릅니다.
2. 하드웨어 리소스, 내 칩(MCU)에서 돌아갈까?
제어 알고리즘을 고를 때 가장 중요한 건 결국 “내가 가진 하드웨어 성능으로 커버가 되느냐”입니다.
- PID 제어: 코드 몇 줄이면 끝납니다. 이산화(Discretization) 과정도 매우 간단해서 아주 저렴한 8비트 아두이노(AVR 계열) 칩에서도 넘치도록 가볍게 돌아갑니다.
- ADRC 제어: 매 루프마다 내부 상태 방정식 오차를 계산하고 예측하는 연산(오일러 적분 등)이 포함되기 때문에 소수점(Floating Point) 연산이 끊임없이 일어납니다.
🛠️ 실무 팁: 따라서 연산 성능이 떨어지는 8비트 MCU보다는, 하드웨어 **FPU(부동소수점 연산 장치)**가 탑재된 32비트 MCU(예: Cortex-M4 시리즈, ESP32, RP2040 등) 환경에서 구현하는 것을 적극 권장합니다. 최근에는 워낙 고성능 MCU가 저렴하게 잘 나와서 하드웨어 제약은 거의 사라진 편입니다.
3. 직관적인 비유로 이해하는 두 방식의 차이
이해를 돕기 위해 우리가 매일 타는 ‘자동차 운전’으로 두 제어 방식을 비유해 보겠습니다.
- PID 제어는 ‘운전면허 시험장 코스’를 도는 것과 같습니다. 바람도 안 불고 노면도 고른 완벽한 통제 환경이라면, 엑셀과 브레이크만 적당히 밟아도 자율주행 차가 선을 넘지 않고 완벽하게 목적지까지 달립니다.
- ADRC 제어는 ‘돌풍이 몰아치는 대관령 고갯길’을 달리는 것과 같습니다. 차가 코너를 돌 때 갑자기 측면에서 강한 돌풍이 불면, 차가 차선 밖으로 밀려나기 전에 운전자가 본능적으로 핸들을 반대 방향으로 확 꺾어 버리죠(외란 상쇄). 외란이 발생해도 차체는 거의 흔들리지 않고 중심을 유지하며 안정적으로 주행하게 됩니다.
4. 이미 구축된 오픈소스 생태계와 상용화 트렌드
“이 좋은 걸 나 혼자 맨땅에 헤딩하며 코딩해야 하나?” 걱정하실 필요 없습니다.
이미 GitHub 등에 Alternative PID, Arduino ADRC, LADRC C++ 같은 키워드로 검색해 보면 잘 짜여진 오픈소스 라이브러리를 쉽게 찾을 수 있습니다. 또한, 오픈소스 드론 플라이트 콘트롤러(PX4, Betaflight)나 로봇 운영체제(ROS) 진영에서도 이미 외란에 강한 ADRC 알고리즘이 메인 제어기로 녹아들고 있는 추세입니다.
칩 제조사들도 발 빠르게 움직이고 있습니다. 모터 제어 칩의 명가인 텍사스 인스트루먼트(TI) 사의 모터 제어 IC 라인업에는 이미 InstaSPIN-MOTION이라는 이름으로 ADRC 기술이 칩 내부에 하드웨어적으로 탑재되어 상용화되어 있습니다.
🏁 결론: 나의 프로젝트에는 무엇을 골라야 할까?
과거에는 연산량 부담 때문에 그림의 떡이었던 ADRC였지만, 이제는 32비트 고성능 MCU를 누구나 수천 원에 구하는 시대가 되었습니다.
내가 만드는 자동화 장비나 IoT 기기가 ‘갑작스러운 부하 변동이 많고, 외부 노이즈나 바람 같은 환경 변수에 민감한 영역(드론, 정밀 서보 모터, 로봇 팔 등)’에 속한다면, 이제 익숙했던 PID를 잠시 내려놓고 차세대 표준으로 자리 잡고 있는 ADRC(LADRC)를 적용해 보시는 건 어떨까요? 여러분의 장비가 한 차원 더 스마트해지는 것을 경험하실 수 있을 것입니다.


답글 남기기
댓글을 달기 위해서는 로그인해야합니다.