Files
ExperionCrawler/docs/운전원교육-FF-스트림파라미터-해설.md

240 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (여유)
```