Honeywell HC900을 Modbus TCP로 직접 폴링 → gRPC → C# 크롤러 → PostgreSQL. 기존 Experion OPC UA 데이터 경로를 HC900 직접 통신으로 대체. - industrial-comm/cpp: C++ Modbus 게이트웨이 (gRPC 서버) - src: C# .NET 8 ASP.NET Core 크롤러 + 웹 UI (3-Layer) - mcp-server: Python FastMCP (RAG/NL2SQL/P&ID) - 다중 컨트롤러(N-Controller) 지원 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
9.5 KiB
반도체 신너(PGMEA) 측류 추출 운전 - 전방먹임 비례 제어(Feedforward Ratio Control) 관계식
본 문서는 실제 석유화학 및 반도체 소재 공장의 DCS(분산제어시스템)나 APC(고급공정제어)에서 사용하는 '전방먹임 비례 제어(Feedforward Ratio Control)' 모델의 핵심 공식을 물질수지(Material Balance)와 열수지(Energy Balance) 관점에서 정리한 자료입니다.
0. 기호 정의 (Variables)
관계식의 명확성을 위해 다음과 같이 변수를 정의합니다. (단위: kg/h 또는 ton/h)
- F : 원료 투입량 (Feed)
- D : 탑 상부 제거량 (Distillate / Light Purge)
- B : 탑 하부 제거량 (Bottom / Heavy Blowdown)
- P : 탑 중간 제품 추출량 (Side Product)
- R : 탑 상부 환류량 (Reflux)
- S : 리보일러 스팀 공급량 (Steam)
1. 총 물질수지 관계식 (Total Material Balance)
증류탑으로 유입되는 총 질량과 유출되는 총 질량은 같아야 한다는 기본 법칙입니다.
F = D + P + B
이를 원료 투입량(F) 기준으로 제어하기 위해 각각의 **추출 비율 계수(K)**를 도입하여 DCS 제어식을 도출합니다.
- K_D : 원료 대비 상부 제거 비율 (D/F)
- K_P : 원료 대비 제품 수율 (P/F)
- K_B : 원료 대비 하부 제거 비율 (B/F)
[DCS 제어 설정식]
D = K_D × F P = K_P × F B = K_B × F
💡 추출 비율 계수(K) 산정 팁: 원료(Feed) 내의 불순물 분석 데이터에 따라 결정됩니다. 예를 들어 원료 내 경비물(수분 등)이 1%, 중비물이 1%이고 목표 PGMEA 회수율이 98%라면, K_D = 0.01, K_B = 0.01, K_P = 0.98로 초기 세팅 후 품질을 보며 미세 조정합니다. (단, K_D + K_P + K_B = 1을 만족해야 합니다.)
2. 환류량(Reflux) 관계식
환류량(R)은 상부 제거량(D)과 연동하며, 기-액 평형 조건을 유지하기 위한 **설계 환류비(R_f = R/D)**를 이용합니다.
R = R_f × D
위의 물질수지 제어식(D = K_D × F)을 대입하여, 최종적으로 원료 투입량(F)에 대한 관계식으로 풀면 다음과 같습니다.
[DCS 제어 설정식]
R = R_f × K_D × F
- 원료 투입량이 변하면 상부로 나가는 가스/액체 유량도 변하므로, 이에 비례하여 환류량(R)도 자동으로 조절되도록 로직을 구성합니다.
3. 스팀량(Steam) 관계식
스팀량(S)은 탑 내부에서 끓어 올라가야 하는 **총 증기량(V, Vapor Load)**과 직결됩니다. PGMEA를 액체(Liquid) 상태로 측류 추출한다고 가정할 때, 탑 상부로 올라가는 대략적인 필요 증기량은 다음과 같습니다.
V ≈ R + D
리보일러 스팀 공급량(S)은 이 증기량(V)을 만드는 데 필요한 잠열을 공급해야 하므로, 스팀-증기 비례 상수(α)를 적용합니다.
S = α × V = α × (R + D)
이 식에 앞서 구한 R과 D의 제어식을 대입하면, 최종적으로 원료 투입량(F) 기준의 스팀량 공식이 완성됩니다.
S = α × (R_f × K_D × F + K_D × F) = α × K_D × (R_f + 1) × F
상수들을 하나로 묶어 **K_S (스팀/피드 비례 계수)**로 단순화하면 DCS 식은 매우 간결해집니다.
[DCS 제어 설정식]
S = K_S × F
4. DCS 실제 적용을 위한 최종 로직 요약
실제 공장 제어실(DCS)에 알고리즘을 구현할 때는 원료 유량 계측기(FT)의 값을 실시간으로 받아 각 제어 밸브의 유량 설정치(SV)를 아래와 같이 자동 계산(Feedforward Ratio)하도록 연동합니다.
- 상부 Purge 밸브 설정치 (Distillate SV): D_SV = K_D × F
- 중간 제품 밸브 설정치 (Side Product SV): P_SV = K_P × F
- 하부 Blowdown 밸브 설정치 (Bottom SV): B_SV = K_B × F
- 상부 환류 밸브 설정치 (Reflux SV): R_SV = R_f × D
- 리보일러 스팀 밸브 설정치 (Steam SV): S_SV = K_S × F + f(ΔP) + Bias
⚠️ 현업 운전 시 필독 주의점 (Bias의 필요성)
이론적인 비례 관계식은 위와 같으나, 실제 현장에서는 탑 자체의 열손실(Heat Loss), 외기 온도 변화, 계측기 오차, 원료 공급 온도의 미세한 흔들림이 발생합니다.
따라서 DCS 로직을 설계할 때는 완전 비례식만 적용하기보다, 운전원이 공정 상태를 보며 미세 조정할 수 있도록 보정값(Bias) 튜닝 탭을 반드시 확보해야 합니다.
특히 스팀 제어의 경우, 앞서 언급한 탑 내부 차압[f(ΔP)]에 따른 감쇄(Override) 제어 알고리즘을 상기 스팀 설정식에 더하여(Cascade/Override 구조) 안전성을 이중으로 확보해야 합니다.
리플럭스량 계산 재검토
의문이 맞습니다. 리플럭스량 350 → 33으로 줄어드는 것은 공정적으로 문제가 있습니다.
🔍 문제점 분석
제 이전 계산에서 사용한 공식: R = R_f × D = 2.0 × 16.36 = 32.72
이 공식은 관계식 문서의 일반 증류탑 공식입니다. 하지만 측류 추출식(C-6111) 에는 적합하지 않습니다.
📐 측류 추출식에서의 리플럭스량
측류 추출식에서는 리플럭스량이 상부 제거량(D) 이 아니라 원료량(F) 또는 제품량(P) 과 연동됩니다.
| 구분 | 현재 운전 | 설계 기준 (R/F) | 설계 기준 (R/P) |
|---|---|---|---|
| 리플럭스량 (R) | 350 | — | — |
| 원료량 (F) | 818.13 | — | — |
| 제품량 (P) | 481.05 | — | — |
| R/F 비율 | 0.428 | 0.5~1.0 | — |
| R/P 비율 | 0.727 | — | 0.8~1.2 |
📊 올바른 리플럭스량 산출
현재 운전 상태의 R/F 비율(0.428)을 유지하거나, 설계 기준(R/F = 0.5~1.0) 적용:
| 시나리오 | 계산식 | 새 SP값 | 현재 SP |
|---|---|---|---|
| 현재 R/F 유지 | 0.428 × 818.13 | 350 | 350 |
| 설계 R/F = 0.5 | 0.5 × 818.13 | 409 | 350 |
| 설계 R/F = 0.8 | 0.8 × 818.13 | 655 | 350 |
| 설계 R/F = 1.0 | 1.0 × 818.13 | 818 | 350 |
💡 권고
- 리플럭스량 33은 너무 작음 — 컬럼 내 기-액 평형 유지 불가
- 현재 운전 상태(R=350, R/F=0.428)는 합리적 — 반도체 등급 PGMEA 증류에 적합한 범위
- 리플럭스량 조정 시 — R/F = 0.5~0.8 범위에서 점진적 조정 권장
📋 수정된 SP값 산출 (리플럭스량 제외)
| 태그명 | 역할 | 계산식 | 새 SP값 | 현재 SP |
|---|---|---|---|---|
| ficq-6114 | 경비물 제거량 (D) | 0.02 × 818.13 | 16.36 | 85.5 |
| ficq-6118 | 제품 추출량 (P) | 0.95 × 818.13 | 777.22 | 485 |
| ficq-6116 | 하부 제거량 (B) | 0.03 × 818.13 | 24.54 | 53.2 |
| ficq-6113 | 리플럭스량 (R) | 현재 R/F 유지 | 350 | 350 |
리플럭스량은 현재 상태를 유지하고, D/P/B만 조정하시기 바랍니다.
- 측류 추출식 C-6111 — 통합 유량 설정 공식 📐 기본 물질수지 F = D + P + B
F: 원료투입량 (kg/hr) P: 제품 추출량 (kg/hr) ← 주요 제어 변수 D: 경비물 제거량 (kg/hr) B: 하부 제거량 (kg/hr) 📐 분할 비율 (설계 기준) 항목 계수 비율 근거 P k_P 0.95 주 제품 fraction D k_D 0.02 경비물 fraction B k_B 0.03 중비물 fraction k_D + k_P + k_B = 1.00 📐 P 기준 환산식 설정값 공식 예 (P=777.2) F P ÷ k_P 777.2 ÷ 0.95 = 818.1 D (k_D/k_P) × P (0.02/0.95) × 777.2 = 16.36 B (k_B/k_P) × P (0.03/0.95) × 777.2 = 24.54 📐 환류량 (온도보정 포함) 외부 환류 (FICQ 계측값): R_ext = R_f × P
R_f: 제품기준 환류비 (설계 0.5~1.2) 현재 R_f = 350/777.2 = 0.45 내부 환류 (과냉각 보정): R_int = R_ext × (1 + c_p × ΔT / λ)
c_p: PGMEA 비열 (kJ/kg·K) λ: PGMEA 증발잠열 (kJ/kg) ΔT: T_top - T_reflux_drum (°C) = 컬럼 상부 온도 - 환류 drum 온도 보정계수 TCF = 1 + c_p × ΔT / λ 📐 컬럼 내부 실제 L/V 비 L/V = R_int / (R_int + P) 2. 실시간 데이터 적용 현재 컬럼 온도 Profile 태그 위치 PV (°C) TICA-6111A 최하부 (Reboiler) 79.6 TI-6111B 원료투입구 위 중부 79.1 TI-6111C 제품추출 노즐 근처 중상부 78.8 TI-6111D 상부 제품추출 노즐 근처 77.8 → 컬럼 상부 온도(T_top) = 77.8°C (TI-6111D) 현재 유량 현황 태그 역할 PV FICQ-6101 F (원료) 820.7 FICQ-6114 D (경비물) 17.4 FICQ-6118 P (제품) 784.0 FICQ-6116 B (하부) 25.2 FICQ-6113 R_ext (환류) 350.7 → P/F = 784/820.7 = 0.955 (설계 0.95와 일치 ✓) 온도보정 환류량 계산 PGMEA 물성치 (일반값, 실제 PGMEA 순도/압력에 따라 조정 필요): 물성 기호 값 비열 (액체) c_p 2.0 증발잠열 λ 330 c_p/λ 0.00606 ΔT를 추정할 환류 drum 온도 센서가 확인되지 않습니다. TI-6111D=77.8°C이므로, ΔT 시나리오별 결과: ΔT (°C) TCF R_int (R_f=0.8, P=777.2) R_int (R_f=0.45, P=777.2) 0 (포화) 1.000 622 350 5 1.030 641 361 10 1.061 660 371 15 1.091 679 382 20 1.121 697 392 권장 설정값 (R_f=0.8, ΔT=5°C 가정) 설정값 공식 계산값 현재 SP F (FICQ-6101) P ÷ 0.95 818.1 820 D (FICQ-6114) 0.02/0.95 × P 16.4 16.7 P (FICQ-6118) (기준) 777.2 777.2 B (FICQ-6116) 0.03/0.95 × P 24.5 24.54 R_ext (FICQ-6113) R_f × P 622 350 R_int (보정 후) 622 × 1.030 641 - ⚠️ 확인 필요 사항
- 환류 drum 온도 센서 (reflux drum TI) 태그를 찾지 못했습니다 — ΔT 확인 후 TCF 재계산 필요
- PGMEA 물성치(c_p, λ) 는 일반값입니다 — 실제 분석 데이터로 대체 권장
- R_f = 0.8은 설계 범위 내 첫 권장값 — 순도 결과 보며 0.5~1.2 범위에서 조정