자켓 반응기가 정상 상태에서는 온도를 잘 유지하다가, 냉각수 공급 압력이 떨어질 때마다 ±4 °C씩 흔들렸다. 온도 루프 하나, 자켓 리턴 라인의 제어 밸브 하나. 밸브는 최선을 다하고 있었지만, 반응기 질량이 충분히 식거나 데워져 측정 온도가 움직일 무렵이면 외란은 이미 몇 분 전 일이었다. 이 루프는 항상 한참 전에 일어난 일을 보정하고 있었다.
이것이 바로 캐스케이드 제어가 존재하는 이유이고, 밸브와 내가 실제로 신경 쓰는 변수 사이에 측정 가능한 빠른 외란이 끼어 있는 루프라면 내가 캐스케이드를 꺼내는 이유다.
캐스케이드가 실제로 무엇인가
두 개의 PID 루프를 쌓는다. 마스터(primary)는 느리고 중요한 변수 — 반응기 온도 — 를 제어한다. 그 출력은 밸브 위치가 아니다. 슬레이브의 엔지니어링 단위로 표현된 슬레이브(secondary)의 설정값이다. 슬레이브는 빠른 변수 — 냉각수 유량, 또는 자켓 온도 — 를 제어하고, 그 루프가 밸브를 움직인다.
핵심은 이거다. 슬레이브는 외란을 보고, 그 외란이 마스터의 측정값에 도달하기 훨씬 전에 그것을 죽인다. 냉각수 공급 압력이 처지면 자켓 유량이 떨어지고, 유량 루프가 몇 초 안에 밸브를 열며, 반응기 온도는 거의 아무것도 못 느낀다. 내부 루프가 없으면 같은 외란이 반응기 열질량 전체를 통과해 전파되어야 하고, 단일 온도 루프는 그제서야 무슨 일이 일어났는지 알게 된다.
이것이 수고할 값어치가 있으려면 세 가지가 필요하다.
- 쫓고 있는 외란에 반응하는 측정 가능한 2차 변수(유량, 자켓 온도, 헤더 압력).
- 2차 루프가 1차보다 뚜렷하게 빨라야 한다. 흔한 경험칙은 내부 루프가 폐루프 응답 기준으로 대략 3–5배 빨라야 한다는 것이다. 그렇지 않으면 캐스케이드는 아무것도 사주지 않으면서 유지보수할 루프만 하나 늘린다.
- 2차 변수가 외란 경로 안, 즉 밸브와 1차 측정값 사이에 있어야 한다. 유량 루프는 신경 쓰는 외란이 유량 오차로 나타날 때만 도움이 된다.
내부 루프를 먼저 — 외부는 수동으로 두고 시운전한다
이 부분이 어떤 튜닝 디테일보다도 사람들을 많이 넘어뜨린다. 튜닝은 안에서 밖으로 한다.
마스터를 **수동(manual)**으로 두어 출력이 고정되고 슬레이브 설정값이 움직이지 않게 한다. 이제 슬레이브를 독립 루프로 튜닝한다. 설정값을 계단 입력하고, 유량(또는 자켓 온도) 응답을 보며, 빠르고 약간 공격적인 응답이 되도록 튜닝한다. 유량 루프는 거의 전부 P와 I이고 미분은 거의 안 쓴다 — 유량 측정은 노이즈가 많고 D는 그걸 증폭할 뿐이다. 액체 유량 루프라면 적분시간 1–3초 정도가 전형적이다. 깔끔하게 추종하게 만들고 약간의 오버슈트는 감수하라. 완벽한 내부 응답보다 속도가 더 중요하다.
슬레이브가 설정값을 단단히 잡은 다음에야 마스터를 자동으로 전환하고 튜닝한다. 마스터는 느리게 튜닝한다 — 슬레이브에 비해 굼떠야 두 루프가 상호작용하며 사냥(hunting)을 시작하지 않는다. 마스터를 슬레이브만큼 빠르게 튜닝하면 둘이 싸우고, 감쇠가 부족한 단일 루프처럼 보이는 느린 진동이 나온다. 그러면 사람들이 슬레이브를 둔감하게 만드는데, 이건 거꾸로이고 상황을 더 악화시킨다.
마스터를 먼저 튜닝하고 있는 자신을 발견하면 멈춰라. 마스터의 프로세스 게인은 폐루프 슬레이브가 어떻게 거동하느냐에 전적으로 달려 있고, 슬레이브를 튜닝하기 전까지 그것은 존재하지 않는다.
모두가 잊는 부분: 두 루프에 걸친 windup
시운전 몇 주 뒤, 보통 기동이나 이상 상황에서 나타나는 실패 모드가 이것이다.
마스터의 출력은 슬레이브로 보내는 설정값 요청이다. 슬레이브가 그것을 지킬 수 없을 때 무슨 일이 일어나는가? 밸브가 이미 100% 열려 있거나, 슬레이브가 수동이거나, 운전원이 슬레이브를 로컬로 두었다. 마스터는 계속 온도 오차를 보고, 계속 적분하며, 그 출력 — 요청된 유량 설정값 — 은 슬레이브가 결코 도달하지 못할 터무니없는 값으로 windup 한다. 상황이 회복되면 마스터는 정상적인 동작을 하기 전에 그 값을 전부 풀어야 한다. 큰 오버슈트, 긴 회복. 단일 루프의 reset windup 문제와 똑같은데, 한 단계 위에 숨어 있을 뿐이다.
해법은 두 루프 사이의 external reset(back-calculation) 되먹임이다. 슬레이브가 자신의 실제 작동 설정값(또는 "네 요청을 추종하지 못하고 있다"는 플래그)을 마스터로 되먹이고, 마스터의 적분기는 자기 출력이 받아들여졌다고 가정하는 대신 그 값을 쓴다. 슬레이브가 포화하거나 수동으로 떨어지면 마스터는 갈 곳 없는 요청에 대해 적분하기를 멈춘다. 웬만한 PLC와 DCS의 PID 블록은 이 기능을 노출한다 — TRK/track 입력, back-calculation(BC) 입력, 또는 "initialize" 기준값이다. IEC 61131-3 라이브러리에서는 보통 하류 블록에서 배선하는 피드백 핀이다. 이걸 써라. external reset 없는 캐스케이드는 나쁜 날을 기다리는 windup 사고다.
Bumpless transfer도 여기서 중요하다. 운전원이 슬레이브를 수동에서 캐스케이드(마스터 추종)로 전환할 때, 마스터의 출력이 현재 슬레이브 설정값 위치로 초기화되지 않으면 밸브가 튄다. 위와 같은 초기화 배선이다 — 마스터가 전환 순간 슬레이브의 실시간 설정값에서 자기 출력을 시드한다.
HMI에서의 모드 처리
운전원은 캐스케이드를 깔끔하게 보고 조작할 수 있어야 하며, 멀쩡하던 제어가 무너지는 곳이 대개 여기다.
슬레이브는 보통 세 가지 모드를 가진다. 수동(운전원이 밸브를 직접 지정), 자동(운전원이 유량 설정값을 지정), 캐스케이드(설정값이 마스터에서 온다). 현재 모드를 페이스플레이트에 명확히 보여라 — 운전원이 캐스케이드라고 생각하는데 슬레이브가 자동에 앉아 있으면 마스터 출력은 무시되고 있고, 온도가 흘러가기 전까지 아무도 알아채지 못한다. 슬레이브가 캐스케이드를 벗어나면 마스터 페이스플레이트에도 명확히 표시하라. 프로세스 관점에서 마스터는 이제 개루프이고, 그 출력 숫자는 무의미하다.
슬레이브가 수동인데 마스터를 자동에 두고 운전 중이라고 부르게 두지 마라. 그것은 캐스케이드가 아니다 — 아무도 움직여 달라고 하지 않는 밸브에 대고 조용히 windup 하는 온도 적분기일 뿐이다.
굳이 하지 않아도 될 때
캐스케이드는 공짜가 아니다. 루프 둘, 튜닝 세트 둘, 새벽 3시에 설명할 게 더 많다. 2차 변수가 1차만큼 느릴 때(속도 분리가 없으니 이득도 없다), 외란 경로에 측정 가능한 중간 변수가 없을 때, 실제로 마주하는 외란이 단일 루프가 이미 잘 처리하는 부하 변동일 때는 건너뛰어라. ±4 °C 흔들림이 공급 압력 이상이 아니라 설정값 변경 때문이었다면 캐스케이드는 아무것도 못 했을 것이다 — 설정값에 대한 피드포워드가 더 나은 도구였을 것이다.
캐스케이드는 딱 한 가지에서 값어치를 한다. 측정할 수 있는 빠른 외란이 밸브와 당신이 안정적으로 유지해야 하는 변수 사이에 놓여 있을 때다. 이 기하 구조를 제대로 잡고, 안에서 밖으로 튜닝하고, reset 되먹임을 마스터로 배선하라. 그러면 외부 루프는 마침내 5분 전의 유령을 쫓기를 멈춘다.