[DIY 스마트팜] 외란에 무적이라는 ‘캐스케이드(Cascade) 이중 루프 제어’, 완벽 이해하기
자동화 현장이나 플랜트 공정 제어를 설계하다 보면 반드시 마주치는 숙제가 있습니다. 바로 "외란(Disturbance)을 어떻게 잡을 것인가?" 입니다.
가장 흔하게 쓰는 일반 PID 제어(싱글 루프)는 구조가 단순해서 좋지만, 시스템에 시간 지연(Delay)이 있거나 갑작스러운 외부 충격(외란)이 들이치면 뒤북을 치며 출렁이기 쉽습니다.
이때 제어공학에서 꺼내 드는 마스터키가 바로 캐스케이드(Cascade) 제어, 즉 이중 루프(Dual-loop) 제어입니다.
오늘은 이 캐스케이드 제어가 왜 외란에 강한지, 그리고 실제 현장에서 어떻게 구현하는지 아주 쉽게 정리해 보겠습니다.
1. 캐스케이드 제어란?
(반장과 행동대장 구조)
일반 PID 제어는 제어기 하나가 센서 하나만 바라보며 히터나 밸브를 혼자서 다 조절합니다.
혼자서 다 하려니 느리고 버거울 수밖에 없습니다.
반면 캐스케이드 제어는 PID 루프 2개를 직렬(종속) 구조로 연결합니다.
즉:
위쪽 루프 = 최종 목표 관리
아래쪽 루프 = 현장 실무 처리
로 역할을 분리하는 방식입니다.
■ 마스터 PID (Master / Outer Loop)
역할:
최종 관리자
반장 역할
감시 대상:
우리가 진짜 지키고 싶은 값
예: 챔버 내부 식물 주변 온도
행동:
최종 온도를 보고 슬레이브에게 명령함
예시:
"지금 챔버가 식었으니까 열풍 온도를 60도로 올려!"
즉,
마스터 PID의 출력값은 "히터 출력"이 아니라
"슬레이브 PID의 목표 온도(Setpoint)"가 됩니다.
■ 슬레이브 PID (Slave / Inner Loop)
역할:
현장 행동대장
작업반장 역할
감시 대상:
히터 바로 앞
열풍 출구 온도
밸브 직전 압력 등
행동:
마스터가 지시한 목표치를 초고속으로 맞춤
즉:
실제 PWM
SSR
밸브 개도율
같은 물리 출력은 슬레이브가 담당합니다.
2. 챔버 문이 열렸다!
외란 시나리오로 보는 차이점
겨울철 챔버를 생각해 보겠습니다.
챔버 문이 열리며 차가운 외부 공기(외란)가 들어옵니다.
냉기는 식물 주변 센서를 먼저 공격합니다.
① 일반 PID 제어의 한계
순서:
챔버 중앙 온도가 급락
PID가 히터 출력 100% 지시
하지만 히터가 달궈지는 데 시간 필요
열풍이 챔버 중앙까지 이동하는 데도 시간 필요
결국 반응이 늦음
그 결과:
온도가 크게 떨어짐
나중에 과하게 회복됨
오버슈트 발생
헌팅 발생
즉:
"이미 늦은 뒤에 반응하는 구조"
가 되어 버립니다.
② 캐스케이드 제어의 철통 방어
순서:
챔버 중앙 온도 하락 감지
마스터 PID가 슬레이브에게 명령
예:
"지금 당장 60도 열풍 만들어!"
슬레이브 PID는 히터 출구에서 초고속 제어 시작
히터 응답 지연을 슬레이브가 자체적으로 제거
매우 빠르게 열량 보상 수행
결과:
응답 속도 향상
외란 억제 강화
오버슈트 감소
안정성 향상
3. 캐스케이드가 외란에 강한 진짜 이유
많은 사람들이 이렇게 생각합니다.
"어차피 냉기가 식물을 먼저 때린 뒤에 마스터가 발견하는 거면 일반 PID랑 같은 거 아닌가?"
하지만 핵심은 거기에 있지 않습니다.
진짜 핵심은:
"구동계의 멍청함을 슬레이브가 전담 처리한다"
입니다.
일반 PID에서는:
히터 열용량
밸브 마찰
배관 압력 변화
SSR 응답 지연
같은 복잡한 물리 현상을
메인 PID 하나가 전부 처리해야 합니다.
그러면 느려질 수밖에 없습니다.
하지만 캐스케이드에서는:
슬레이브 PID가 구동계 바로 앞에서
초고속으로
작은 오차까지 실시간 보정합니다.
즉:
마스터 PID 입장에서는
히터 특성
밸브 특성
열 지연
같은 복잡한 내부 문제를 신경 쓸 필요가 없습니다.
오직:
"최종 온도가 떨어졌는가?"
만 판단하면 됩니다.
그래서 제어가 훨씬 깔끔해집니다.
4. PLC / 아두이노 구현 방법
의외로 엄청 단순하다
실제로 구현은 생각보다 어렵지 않습니다.
핵심은:
"첫 번째 PID 출력값을 두 번째 PID 목표값으로 넣는다"
입니다.
Pseudo Code
// 100ms 주기 제어 루프
//-----------------------------------
// [1] 마스터 PID
//-----------------------------------
float master_error =
target_chamber_temp - current_chamber_temp;
// 마스터 출력:
// 슬레이브가 따라갈 목표 열풍 온도
float master_output =
calculate_PID_Master(master_error);
//-----------------------------------
// [2] 슬레이브 PID
//-----------------------------------
float slave_setpoint = master_output;
float slave_error =
slave_setpoint - current_hotair_temp;
//-----------------------------------
// [3] 실제 히터 출력
//-----------------------------------
float heater_pwm =
calculate_PID_Slave(slave_error);
analogWrite(heaterPin, heater_pwm);
5. 현업에서 가장 많이 쓰이는 캐스케이드 예시
■ 온도 제어
마스터:
챔버 온도
슬레이브:
히터 출구 온도
대표 사용처:
반도체 장비
스마트팜
건조기
오븐
환경 챔버
■ 압력 + 유량 제어
마스터:
배관 압력
슬레이브:
밸브 유량
대표 사용처:
플랜트
화학 공정
수처리
■ 모터 속도 + 전류 제어
마스터:
속도 루프
슬레이브:
전류 루프
대표 사용처:
서보 시스템
인버터
CNC
6. 튜닝 순서가 중요하다
캐스케이드 제어에서 가장 중요한 실무 포인트:
"슬레이브부터 먼저 튜닝한다"
입니다.
순서:
슬레이브 PID 완성
슬레이브 응답속도를 충분히 빠르게 만듦
그 위에 마스터 PID 튜닝
왜냐하면:
마스터는 슬레이브를 믿고 명령하기 때문입니다.
슬레이브가 느리면:
전체 시스템도 느려짐
오히려 불안정해짐
실무에서는 보통:
슬레이브 응답속도
마스터 응답속도보다
최소 3~10배 빠르게
설계합니다.
7. 결론
일반 PID는 단순하고 좋습니다.
하지만:
열용량이 큰 시스템
긴 시간 지연
외란이 심한 환경
에서는 한계가 분명합니다.
이때 캐스케이드 제어를 사용하면:
외란 억제
응답 속도
안정성
오버슈트 감소
모든 면에서 훨씬 강력한 성능을 얻을 수 있습니다.
센서 하나와 PID 루프 하나가 더 들어가지만,
현업에서는 그 이상의 값어치를 하는 경우가 매우 많습니다.
특히:
스마트팜
챔버 제어
공정 제어
정밀 온도 제어
에서는 거의 필수급으로 사용되는 기법입니다.
댓글
댓글 쓰기