# Feedforward Advisory — 스트림 파라미터 해설 ## 운전원 교육 자료 > 대상: C-6111 PGMEA 측류추출 증류탑 — 각 스트림(P/R/D/B)별 파라미터 의미와 튜닝 기준 --- ## 1. 스트림 역할 (Role) | Role | 의미 | 적용 스트림 | 동작 방식 | |:-----|:------|:-----------|:---------| | **Commanded** | FF가 SP를 직접 계산 | **P**(주생성물), **R**(환류) | Deadtime → Lag → RateLimit → 권장SP | | **LevelDriven** | 레벨 제어기가 SP 결정, FF는 기대치만 제시 | **D**(유출액), **B**(탑저) | K × Feed, deadtime/lag 없음, 참고용 | | **Monitor** | 모니터링만, 권장 SP 없음 | (향후 확장) | SP 계산 안 함, PV만 표시 | --- ## 2. 공통 파라미터 ### 2.1 K (TargetCoeff) — 목표 계수 **정의**: Feed 대비 해당 스트림의 목표流量 비율. ``` P_stream 권장SP = K × FeedFilter출력 (Commanded, lag/rate 적용 후) D/B_stream 기대치 = K × FeedFilter출력 (LevelDriven, 즉시 반영) R_stream 권장SP = K × P_stream 권장SP (환류, P 경유) ``` **C-6111 기본값**: | 스트림 | K | 근거 | |:------|:---|:------| | P=0.95 | 측류 95% 추출 | 주생성물이 Feed의 95% | | R=0.80 | 환류비 R/P=0.8 | P 대비 80% 환류 | | D=0.02 | 유출액 2% | 드럼 퍼지량 | | B=0.03 | 탑저 3% | 바텀 드로우량 | **튜닝**: K의 합이 1.0을 넘으면 물질수지 불일치. K_P + K_D + K_B = 1.0이 이상적 (R은 환류라 수지에 포함 안 됨). ### 2.2 Grade (Confidence) — 신뢰도 등급 | Grade | 의미 | Auto-write | 운전원 대응 | |:------|:-----|:-----------|:-----------| | **A** | K/θ/τ가 잘 튜닝됨, 권장값 신뢰 가능 | ✅ 허용 | 권장값을 SP로 채택 가능 | | **B** | 튜닝 불확실성 있음, 참고용 | ❌ 금지 | 운전원 판단 필요, SP 채택 시 주의 | | **C** | 모델 신뢰 불가, 진단 우선 | ❌ 금지 | 사용하지 말 것, 엔지니어 진단 요청 | --- ## 3. Commanded 스트림 전용 파라미터 (P, R) Commanded 스트림은 Feed 변화가 권장SP에 반영될 때까지 **3단계 지연**을 거칩니다: ``` FeedFilter출력 → [Deadtime θ] → [Lag τ] → [RateLimit] → 권장SP ``` ### 3.1 θ_up / θ_dn (ThetaUpSec / ThetaDnSec) — Deadtime (불감시간) **정의**: Feed 변화가 해당 스트림에 실제로 영향을 미치기까지의 **순수 지연 시간(초)**. | 방향 | 파라미터 | 의미 | |:-----|:---------|:------| | Feed 증가 | θ_up | 상승 응답까지 걸리는 시간 | | Feed 감소 | θ_dn | 하강 응답까지 걸리는 시간 | **비대칭 deadtime**: θ_up과 θ_dn을 다르게 설정 가능 (상승/하강 응답 특성이 다른 공정용). **C-6111 기본값**: P=60초 (상승/하강 동일). Feed 변화가 C-6111 탑을 거쳐 측류 추출점에 도달하는 시간. **물리적 의미**: 칼럼 내 액체 홀드업, 트레이/패킹을 통과하는 시간, 응답 지연. ### 3.2 τ (TauSec) — Lag 시정수 (1차 지연) **정의**: Deadtime 이후 Feed 변화가 지수적으로 정착하는 **시정수(초)**. 1차 저역통과필터의 τ. ``` Lag출력 = Lag출력 + (입력 - Lag출력) × ts / τ ts=Scan, τ=900초: 1τ(900초) 후 63% 도달 2τ(1800초) 후 86% 도달 3τ(2700초) 후 95% 도달 (≈ 정상상태) ``` **C-6111 기본값**: P=900초(15분). 측류 추출 응답이 느린 이유: - 칼럼 내 액체 홀드업 완료 시간 - 물질 이동(mass transfer) 속도 - 온도/조성 평형 도달 시간 ### 3.3 Rate_up / Rate_dn (RateUpPerMin / RateDnPerMin) — 변화율 제한 **정의**: 권장SP가 **분당 최대 몇 단위까지 변할 수 있는지** 제한. ``` |권장SP(t) - 권장SP(t-1)| ≤ Rate × ts / 60 ``` **C-6111 기본값**: - P: up=30/min, dn=60/min (상승보다 하강 2배 빠름) - R: up=30/min, dn=30/min (대칭) **용도**: SP가 급격히 변하는 것을 방지 — DCS의 PID 제어기가 추종 가능한 범위로 제한. ### 3.4 θ vs τ vs Rate — 차이 이해 | 구분 | 성격 | 영향 | 단위 | |:-----|:-----|:-----|:------| | **θ (Deadtime)** | 순수 지연 | Feed 변화 후 아무 반응 없음 | 초 | | **τ (Lag)** | 지수적 정착 | 변화가 서서히 나타남 | 초 | | **Rate** | 변화율 제한 | SP의 기울기 제한 | /분 | **직관적 비유 (온수 샤워)**: - **θ**: 핸들 돌린 후 물이 뜨거워질 때까지 걸리는 시간 - **τ**: 뜨거워지는 속도 (급격/완만) - **Rate**: 핸들을 1초에 얼마나 돌릴 수 있는지 제한 --- ## 4. LevelDriven 스트림 전용 파라미터 (D, B) LevelDriven은 단순 비례이므로 deadtime/lag/rate 파라미터가 **의미 없음** (0으로 설정): ``` 기대치 = K × FeedFilter출력 → deadtime 없음, lag 없음, rate 제한 없음 ``` ### 4.1 LevelTag — 레벨 태그 **정의**: 해당 LevelDriven 스트림을 구동하는 **레벨 제어기의 태그명**. | 스트림 | LevelTag | 레벨 제어기 | 의미 | |:------|:---------|:-----------|:------| | D | lica-6113 | D-6113 환류버퍼드럼 레벨 | 유출액 = 드럼 레벨로 제어 | | B | li-6111 | C-6111 탑저 레벨 | 탑저 = 칼럼 바텀 레벨로 제어 | **LevelDriven 기대치와 실제 SP의 관계**: ``` FF 기대치 = K × Feed (참고용) 실제 DCS SP = LIC 출력 (레벨 제어기가 결정) ``` FF는 "Feed가 이만큼이면 D/B에 이 정도 flow가 필요할 것이다"는 **기대치**만 제시. 실제 SP는 레벨 제어기가 결정하므로, FF 기대치는 **운전원이 레벨 제어가 정상인지 확인하는 보조지표**. --- ## 5. RefluxFromProduct — P 경유 환류 (R 스트림) **정의**: R(환류)이 P(주생성물) 권장SP를 기준으로 비례 계산되는지 여부. ``` RefluxFromProduct = true: R_rec = K_R × P_rec (P의 deadtime/lag/rate을 상속받음) RefluxFromProduct = false: R_rec = (K_R × FeedFilter출력 → 독자적인 deadtime/lag/rate) ``` **C-6111 기본값**: R=true (P 경유). 이유: - 환류량은 주생성물량에 비례 - P의 지연 특성(θ=60, τ=900)을 자연스럽게 상속 - 독립 계산 시 P와 R이 서로 다른 시점에 변동 → 불안정 --- ## 6. SP 제한 (SpMin / SpMax) **정의**: 권장SP가 가질 수 있는 **최소값/최대값**. ``` 권장SP = Clamp(계산값, SpMin, SpMax) ``` **C-6111 기본값**: - P: 0 ~ 9999 (사실상 무제한, Range만 0~9999) - R: 0 ~ 9999 - D: 0 ~ 9999 - B: 0 ~ 9999 **용도**: - 펌프 최소 유량 보호 (SpMin > 0) - 배관/계기 최대 유량 초과 방지 (SpMax) - 운전 범위를 물리적 한계 내로 제한 --- ## 7. C-6111 기본값 종합표 | 파라미터 | P | R | D | B | 단위 | 비고 | |:---------|:--|:--|:--|:--|:----|:-----| | **Role** | Commanded | Commanded | LevelDriven | LevelDriven | — | | | **K** | 0.95 | 0.80 | 0.02 | 0.03 | — | D+B = Feed의 5%, P = 95% | | **θ_up** | 60 | — | — | — | 초 | P만 deadtime 적용 | | **θ_dn** | 60 | — | — | — | 초 | | | **τ** | 900 | — | — | — | 초 | P만 lag 적용 | | **Rate_up** | 30 | — | — | — | /분 | 상승 변화율 제한 | | **Rate_dn** | 60 | — | — | — | /분 | 하강 (2배 빠름) | | **SpMin** | 0 | 0 | 0 | 0 | — | | | **SpMax** | 9999 | 9999 | 9999 | 9999 | — | | | **Grade** | A | A | B | B | — | D/B는 레벨 제어 의존, B 등급 | | **RefluxFromProduct** | — | true | — | — | — | R은 P 경유 | | **LevelTag** | — | — | lica-6113 | li-6111 | — | 구동 레벨 태그 | --- ## 8. 튜닝 가이드 ### K 조정 ``` K 합 체크: K_P + K_D + K_B = 1.0 (이상적) 현재: 0.95 + 0.02 + 0.03 = 1.00 ✅ K_P 증가 → P 권장 SP 상승 → R(환류)도 상승 (RefluxFromProduct=true) K_B 증가 → B 기대치 상승 → 탑저 드로우 증가 ``` ### θ/τ 조정 ``` θ가 너무 작음 → Feed 변화에 SP가 너무 빨리 반응 (불안정) θ가 너무 큼 → 응답 지연, Feed 변화 후 오래 기다려야 함 τ가 너무 작음 → SP가 급변, DCS PID가 추종 못 할 수 있음 τ가 너무 큼 → SP 정착까지 너무 오래 걸림 (30분+) 튜닝 방법: Feed step 테스트 → 실제 PV 응답 곡선에서 θ와 τ 측정 ``` ### Rate 조정 ``` Rate_up/dn이 너무 작음 → SP 변화가 너무 느려서 Feed 변화를 따라가지 못함 Rate_up/dn이 너무 큼 → SP가 급변, DCS 밸브가 추종 못 할 수 있음 적정값: DCS PID의 최대 추종 변화율 × 0.8 (여유) ```