← 전체 글
SCADA/약 14분 읽기/ 조회

스플릿 레인지 제어: 스플릿 지점에서 두 밸브를 덜컹거림 없이 넘겨주기

하나의 PID로 가열 밸브와 냉각 밸브를 함께 구동하는 건 단순해 보이지만, 전환 지점 근처에서 루프가 멈추거나 헌팅한다. 스플릿 지점 설정, 오버랩 제거, 두 구간 사이의 게인 점프를 다루는 방법.

SCADA제어PLC시운전문제 해결

반응기 자켓에는 가열용 증기 밸브와 냉각용 냉수 밸브가 있었고, 둘 다 하나의 온도 컨트롤러로 구동됐다. 문서상으로는 교과서적인 스플릿 레인지였다. 컨트롤러 출력 0–50%는 냉각 밸브를 열고, 50–100%는 증기 밸브를 연다. 그런데 실제로는 온도가 설정값보다 1도쯤 낮은 곳에 앉아 끝내 도달하지 못했고, 유틸리티 요금은 엉망이었다. 두 밸브 포지셔너에 스코프를 걸어 보니 답은 분명했다. 50% 부근에서 냉수 밸브가 아직 8% 열려 있는데 증기 밸브는 이미 열리기 시작하고 있었다. 루프는 가열과 냉각을 동시에 하고 있었고, 컨트롤러는 그 오버랩이 가장 심한 바로 그 지점에 출력을 태연히 붙들고 있었다.

이것이 스플릿 레인지 제어의 전부다. 개념은 하찮을 만큼 간단하다. 하나의 컨트롤러 출력을 둘(또는 그 이상)의 최종 제어 요소로 부챗살처럼 펼치고, 각 요소가 출력 스팬의 한 구간을 담당하게 한다. 문제는 전부 그 이음매에 산다.

스플릿이란 실제로 무엇인가

컨트롤러 출력(CO)이 0–100%로 움직인다. 그 스팬을 잘라 각 조각을 밸브에 배정하고, 밸브마다 신호 특성화기(characterizer)를 두어 그 조각을 다시 해당 요소의 전체 0–100% 스트로크로 되돌려 스케일링한다. 전형적인 가열/냉각 구성은 이렇다.

  • CO 0–50% → 냉각 밸브가 100% → 0%로 움직임 (CO=0에서 완전 개방, CO=50에서 폐쇄)
  • CO 50–100% → 가열 밸브가 0% → 100%로 움직임 (CO=50에서 폐쇄, CO=100에서 완전 개방)

따라서 CO=50에서는 (명목상) 두 밸브 모두 닫혀 있고 공정은 관성으로 흘러간다. 50 아래에서는 냉각, 위에서는 가열이다. 컨트롤러는 밸브가 둘이라는 사실을 알지도 신경 쓰지도 않는다. 컨트롤러가 보는 것은 출력 하나와 PV 하나뿐이다. 스플릿 레인지 로직은 전부 PID 블록 하류에 있으며, 대개 한 쌍의 스케일링/특성화 블록(DCS의 SPLTR 또는 CHARC 블록, 또는 PLC라면 스케일-후-클램프 렁 두 개)으로 구현된다.

pH 제어도 같은 패턴이다. 한쪽 절반은 산, 다른 절반은 가성소다다. 압력 제어는 공급 밸브와 벤트 밸브로 같은 일을 한다. 공정 변수를 양방향으로 밀어야 하는데 단일 요소로는 둘 다 할 수 없는 곳이면 어디든, 스플릿 레인지가 값싼 답이다.

스플릿 지점은 50%가 아니다

기본값은 전환점을 50%에 두는 것이고, 그건 대개 틀렸다. 스플릿 지점은 공정이 정상 상태에서 대부분의 시간을 실제로 머무는 곳에 놓여야 한다. 반응이 발열이라 반응기가 평생 약간의 냉각을 필요로 한다면, 스플릿을 60%나 70%에 두어 정상 운전 출력이 냉각 밸브 구간 안쪽에 여유 있게 자리 잡고 조절할 공간을 갖게 하라. 그래야 동특성이 다른 두 밸브 사이를 작은 외란에도 오가는 이음매 바로 위에 출력이 걸터앉지 않는다.

스플릿 지점에 눌러앉는 것이 내가 가장 자주 보는 실패다. CO가 전환점 주위로 몇 퍼센트씩 진동하면, 매 사이클마다 한 밸브에서 다른 밸브로 제어권이 넘어간다. 두 밸브는 게인도, 스트로크 속도도, 설치 특성도 다르다. 그래서 넘어갈 때마다 루프 거동이 바뀌고, 한쪽에서는 멀쩡하던 튜닝이 반대쪽에서는 채터링한다.

오버랩과 갭: 독을 고르고, 튜닝으로 없애라

실제 밸브는 정확히 같은 신호에서 착좌하지 않는다. 이음매에서 두 가지가 잘못된다.

  • 오버랩 — 스플릿 근처에서 두 밸브가 모두 조금씩 열려 있다. 가열과 냉각을 동시에 하고, 유틸리티를 태우며, 컨트롤러에게 그것이 숨기 좋아하는 부드럽고 게인 낮은 구간을 준다(위의 내 반응기). 낭비이고, 0을 지나는 바로 그 지점에서 루프를 굼뜨게 만든다.
  • 갭(데드밴드) — 스플릿 주위의 출력 대역에서 어느 밸브도 아무것도 하지 않는다. 루프는 그 대역을 지나는 동안 개루프가 되고, CO가 갭을 벗어날 때까지 PV가 표류하다가, 밸브가 확 열리며 오버슈트한다. 주기적 헌팅이다.

이 둘 사이 선택은 두 특성화기 절점을 어디에 두느냐로 정해진다. 나의 기본값은 오버랩이 아니라 의도적인 작은 갭이다. 가열과 냉각을 동시에 하는 것이 거의 언제나 더 비싼 실수이기 때문이고, 적당한 갭이 앗아가는 약간의 응답 속도는 튜닝으로 되찾을 수 있기 때문이다. 다만 갭은 어떤 개루프 대역도 부담이 되는 빠르고 타이트한 루프(압축기 서지, 일부 압력 작업)에서는 정말로 나쁘다. 거기서는 오버랩, 또는 더 나아가 밸브 위치 제어가 이긴다. 이것은 실제 밸브로 현장에서 튜닝하는 물리적 노브다. 벤치 수치는 금속이 실제로 어디서 착좌하는지 알려주지 않는다. CO를 천천히 램프시키며 (지령 신호가 아니라) 두 포지셔너 피드백을 트렌드로 걸고 실제 전환점을 읽어라.

게인 점프, 사람들이 잊는 부분

스플릿이 완벽하더라도, 가열 측 공정 게인이 냉각 측과 같은 경우는 드물다. 자켓으로 들어가는 증기 밸브와 같은 자켓으로 들어가는 냉수 밸브의 공정 게인은 몇 배씩 차이 날 수 있다. 하나의 PID 튜닝 세트가 양쪽 절반 모두에 맞을 수는 없다. 냉각에 맞게 날카롭게 튜닝하면 가열에서 불안정해지고, 반대도 마찬가지다.

내가 손대는 순서대로 방안은 이렇다.

  1. 밸브를 특성화하여 각 밸브가 자기 구간에서 대략 선형인 설치 게인을 내게 하라. 게인 불일치의 절반은 사실 밸브 특성(냉수용 선형 밸브와 전혀 다르게 거동하는 등비율 증기 밸브)이고, 이를 특성화기에서 고치는 것은 공짜다.
  2. PID에 게인 스케줄링 — 스플릿 아래에 한 세트, 위에 다른 세트의 튜닝 상수. 요즘 컨트롤러는 대부분 이를 직접 지원한다. 두 공정이 진짜로 다를 때의 정직한 해법이다.
  3. 루프를 아예 분리 — 가열과 냉각을 별도 컨트롤러로 두고 두 설정값 사이에 오프셋을 주며, 서로 싸우지 않도록 조율한다. 설정은 더 많지만 두 측의 동특성이 극단적으로 다를 때는 하나의 루프를 고문하는 것보다 깔끔하다.

둘을 평균 내어 하나의 어중간한 튜닝으로 만들려 하지 마라. 한쪽에서는 굼뜨고 다른 쪽에서는 신경질적인 루프가 나오고, 운전원들은 결국 수동으로 돌리게 된다.

시운전 체크리스트

인계 전에 확인할 가치가 있는 몇 가지.

  • 고장 방향. 신호 상실 시 각 밸브는 어느 쪽으로 가는가? 증기는 대개 닫히는 쪽으로, 냉각은 공정을 무엇이 보호하느냐에 따라 열리거나 닫히는 쪽으로 고장나야 한다. 포지셔너 고장 동작과 특성화기의 0% 끝단이 일치해야 한다. 그렇지 않으면 통신 두절이 당신을 위험한 곳에 세워둔다.
  • 동작 방향. 공정에 맞게 컨트롤러 동작(정동작/역동작)을 먼저 맞추고, 각 특성화기가 자기 밸브를 올바른 방향으로 보내는지 확인하라. 출력을 올리면 냉각 밸브가 열리도록 스플릿을 배선하기 쉽다. 반대로 되면 루프가 폭주한다.
  • 이음매에서 덜컹거림 없이. CO를 수동으로 스플릿 지점을 통과하도록 램프시키며 두 피드백을 지켜보라. 한 밸브가 다른 밸브로부터 넘겨받을 때 전체 가열/냉각 부하에 점프 없이 매끄러워야 한다.
  • 클램프하고, 한 구간이 넘어가지 않게 하라. 각 특성화기 출력은 0과 100에서 단단히 클램프돼야 한다. 냉각 계산이 살짝 음수로 가게 하는 연산 오류는, 아날로그 출력 블록이 범위 초과를 어떻게 처리하느냐에 따라 밸브를 랩어라운드시키거나 끝단에 붙여버릴 수 있다.
  • 안티 와인드업은 여전히 적용된다. 한 밸브가 완전히 열려 포화됐는데도 PV가 움직이지 않으면, 포화된 여느 루프처럼 PID 적분기가 와인드업한다. 그리고 여기서는 회복하기 전에 반대쪽 절반으로 깊숙이 감긴다. 외부 리셋이나 백 캘큘레이션이 컨트롤러 자신의 0–100%가 아니라 실제 밸브 한계에서 공급되도록 하라.

한 가지만 기억한다면 이것이다. 시운전 중 스플릿 지점 주위에서 두 포지셔너 피드백에 스코프를 걸고, 정상 운전에서도 한동안 트렌드로 지켜보라. 굼뜨든, 헌팅하든, 비싸든 거의 모든 스플릿 레인지 불만은 이음매에서 잘못된 그림으로 드러나며, 그것은 컨트롤러 페이스플레이트만으로는 보이지 않는다.