Files
ExperionCrawler/docs/측류추출-운전제안-사용매뉴얼.md
windpacer 7c26aa7361 feat: Phase II auto-write (WriteGuard, audit, auth) + WO-2~7 완료
Phase II:
- FfOperatorAction entity + ff_operator_action DDL/DbSet
- IFeedforwardWriteGuard + FeedforwardWriteGuard (SP bounds, grade C, transient, NaN)
- IFeedforwardAuditService + FeedforwardAuditService (raw ADO insert/query)
- FeedforwardSupervisor.AutoWriteAsync (per-stream OPC UA after Tick, rate-limited)
- FeedforwardConfigStore: advisory_only now read/writes DB, sp_node_id column
- FeedforwardController: auth (X-Kb-Token) on config/delete/write/audit;
  POST write/{id}/{key} manual SP write; GET audit; write results in MapColumn
- ff.js: token header, auto-write badge, per-stream write result, spNodeId, advisoryOnly
- ff.css: .ff-write-badge, .ff-write, .ff-write-err, .ff-wg-blocked
- Program.cs: register audit (Scoped) + write guard (Singleton)

WO-2~7 (build 0W/0E, test 22/22):
- PCT monitor, θ auto-tune, slow bias, front position indicator,
  total reflux recovery, config form expansion
2026-05-31 20:30:06 +09:00

225 lines
13 KiB
Markdown
Raw 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.
# 측류추출 운전제안 (Advisory) — 운전원 사용 매뉴얼
> **대상**: C-6111 측류추출 증류탑 운전원
> **화면 위치**: 좌측 메뉴 **「유량 권장(FF)」** 탭 (⚖️)
> **한 줄 요약**: 이 화면은 **권장값을 보여줄 뿐, 어떤 SP도 자동으로 쓰지 않습니다.** 실제 설정 변경·전환류 실행은 **항상 운전원이 DCS에서 직접** 합니다.
---
## 0. 가장 먼저 알아둘 것 (안전 원칙)
| 원칙 | 의미 |
|:--|:--|
| **읽기 전용(Advisory)** | 이 시스템은 계산한 **권장 SP를 화면에 표시만** 합니다. DCS로 자동 쓰기 **하지 않습니다**. |
| **인가는 운전원** | 권장값을 채택할지 말지는 **운전원 판단**. 화면값을 보고 DCS에서 직접 입력합니다. |
| **전환류도 "권장"** | 전환류 모드의 "ARM"·"복귀중" 표시도 **권장/안내**입니다. 실제 드로우 차단·전량 환류는 운전원이 DCS에서 실행합니다. |
| **흐리게 표시 = 신뢰 낮음** | 행이 흐리거나 등급이 B/C면 그 권장값은 **참고만**. 과도·데이터 노후·물질수지 불일치 신호입니다. |
---
## 1. 화면 한눈에 보기
탭에 들어가면 컬럼별 **카드**가 나옵니다. 카드는 위에서 아래로:
```
┌─ C-6111 ──────────────── FEED 1000 · 12:34:56 ─┐
│ [전환류 권장 ⚠] 전환류 권장(ARM 대기): 물질수지(12%) [전환류 ARM] │ ← ① 모드 줄(상황 발생 시만)
│ 과도상태: FEED 이동 — 권장값 정착 대기 │ ← ② 과도 배너(과도 시만)
│ ┌─스트림 표────────────────────────────────┐ │
│ │ 스트림 태그 역할 PV 권장SP Δ 추세 신뢰│ │ ← ③ 스트림별 권장
│ │ P ficq-6118 Commanded 780 950 +170 ▲ A │ │
│ │ R ficq-6113 Commanded 623 760 +137 ▲ A │ │
│ │ D ficq-6114 LevelDriven 20 20 B │ │
│ │ B ficq-6116 LevelDriven 30 30 B │ │
│ └──────────────────────────────────────────┘ │
│ 물질수지: 정상 · V_loss 0.5 · V_loss(MA) 0.3 · 수율 95% │ ← ④ 물질수지
│ ti-6111b 81.2 PCT 80.9 · ti-6111c 80.1 · ti-6111d 79.5 │ ← ⑤ 온도(PCT)
│ θ 제안 (passive): P ↑62s ↓58s conf 0.7 — 운전원 수동 반영 │ ← ⑥ θ 자동튜닝 제안
│ 프론트: 프론트 상승(경비물 혼입 위험) → 환류↑ 권장 │ ← ⑦ 프론트(sweet-spot)
│ LevelDriven(D·B)은 레벨 제어(LIC)가 SP를 결정… │ ← 안내문
└──────────────────────────────────────────────┘
```
---
## 2. 스트림 표 읽는 법 (③)
| 열 | 의미 | 운전원 행동 |
|:--|:--|:--|
| **스트림** | P=제품(측류) · R=환류 · D=탑정 경비물 · B=탑저 중비물 | — |
| **태그** | 해당 유량계 | — |
| **역할** | `Commanded`=권장SP 계산함 / `LevelDriven`=레벨제어(LIC)가 결정 / `Monitor`=감시만 | LevelDriven은 권장 SP를 따로 주지 않음(기대치만) |
| **PV** | 현재 유량 측정값 | — |
| **권장 SP** | 시스템이 제안하는 설정값 | **참고 후 DCS에서 직접 입력** |
| **Δ** | 권장 SP 현재 PV | 클수록 권장과 현재 차이가 큼 |
| **추세** | ▲ 상승 / ▼ 하강 / 변화없음 | 권장값이 올라가는 중인지 |
| **신뢰** | A(견고)·B(한계)·C(취약) **색상**: 초록/주황/빨강 | **B·C는 참고만.** 마우스를 올리면 **강등 사유** 표시 |
| **K~** (신뢰 아래 작은 글씨) | 관측된 비율(K_obs) 장기추세 | 설정 K와 크게 다르면 계절 보정 검토 |
> **신뢰 등급이 떨어지는 이유**(마우스 올리면 표시): "PV 신선도 불량"(데이터 노후) / "과도 상태" / "압력 불안정" / "물질수지 불일치". → 이럴 땐 권장값을 **그대로 믿지 말 것**.
---
## 3. 과도 상태 배너 (②)
- **FEED 이동 / 압력 불안정 / 정착 대기** 중엔 노란 배너가 뜨고, 스트림 행이 흐려집니다.
- 의미: **지금은 권장값이 안정되지 않았다.** 외란이 가라앉을 때까지 기다립니다.
- 운전원: 과도 중엔 권장값 채택을 **보류**하고, 배너가 사라진 뒤(정착) 판단합니다.
---
## 4. 물질수지 줄 (④)
| 표시 | 의미 |
|:--|:--|
| **물질수지: 정상** | FEED ≈ D+P+B. 균형 양호 |
| **V_loss** | 순간 손실(FEED 유출 합). 순간값은 노이즈가 커서 **참고만** |
| **V_loss(MA)** | 장기 평균 손실. **추세 판단은 이 값으로** (전환류 트리거도 이 값 기반) |
| **수율** | 제품(P)/FEED ×100% |
| 물질수지: **불일치(계측 점검)** | FEED와 유출 합이 3% 넘게 안 맞음 → **계측 점검** + 관련 스트림 신뢰 강등 |
---
## 5. 온도 / PCT (⑤)
- `ti-6111b 81.2 PCT 80.9` = 트레이 온도 **원값(raw)**과 **압력보정온도(PCT)**.
- **PCT**: 진공 변동(≈0.5°C/torr)의 영향을 제거한 온도. 진공이 흔들려도 PCT는 평탄 → **조성 변화를 더 잘 반영**.
- 운전원: raw가 출렁여도 **PCT가 안정적이면 조성은 안정**. PCT가 추세적으로 움직이면 프론트(⑦) 확인.
---
## 6. θ 자동튜닝 제안 (⑥)
- `θ 제안 P ↑62s ↓58s conf 0.7` = 정상 운전 데이터로 추정한 **전달지연(θ) 제안값** + 신뢰도(conf 0~1).
- **자동 반영 안 됨.** conf가 높을 때(예 0.5 이상) 참고해, 설정에서 θ_up/θ_dn을 **운전원이 수동 입력**.
- conf가 낮거나 표시 안 됨 = 외란 부족 → 무시.
---
## 7. 프론트(sweet-spot) 위치 (⑦)
증류탑에서 제품 순도가 가장 높은 "최적 추출 지점"의 위치 추세입니다.
| 표시 | 의미 | 권장 조치 |
|:--|:--|:--|
| **정상(프론트 안정)** | sweet-spot 유지 중 | 유지 |
| **프론트 상승(경비물 혼입 위험) → 환류↑ 권장** | 가벼운 성분이 제품단으로 내려올 위험 | **환류 증대** 검토(정석) |
| **프론트 하강 → boilup↑·환류↓ 권장** | 무거운 성분이 올라올 위험 | boilup(스팀) 증대 검토 |
> 단일 생온도 기반이면 신뢰가 낮을 수 있습니다(C등급). 차온·분석계가 있으면 우선합니다. **권장 문구일 뿐, SP는 바뀌지 않습니다.**
---
## 8. 전환류(Total Reflux) 평형복귀 모드 (①) ★ 중요
컬럼 균형이 **심각하게 무너졌을 때**, "제품·원료·경비물·중비물 배출을 모두 멈추고 전량 환류로 평형을 회복"하는 정석 대응을 안내합니다.
### 8.1 모드 줄에 뜨는 것
| 표시 | 색 | 의미 |
|:--|:--|:--|
| (없음) | — | 정상(Normal). 균형 양호 |
| **전환류 권장 ⚠** + `[전환류 ARM]` 버튼 | 빨강 점멸 | 균형붕괴 신호가 지속됨 → **운전원 판단 대기** |
| **전환류 복귀중 ●** + `[취소(정상복귀)]` | 주황 | 전환류 권장 상태 진행 중 |
| **복귀 램프 ●** + `[취소]` | 파랑 | 평형 회복 → 정상으로 점진 복귀 중 |
모드 줄 옆 작은 글씨에 **사유**가 표시됩니다: 예) `물질수지(12%) 프론트드리프트` — 어떤 신호로 발동했는지.
### 8.2 발동 조건(트리거)
아래 중 **하나라도** 설정한 시간만큼 **지속**되고 과도상태가 아니면 "전환류 권장"이 뜹니다:
1. **물질수지**: |V_loss(MA)| / FEED 가 임계(기본 10%) 초과
2. **프론트 드리프트**: sweet-spot이 크게 이탈
3. **차압(ΔP) 플러딩**: 탑 차압이 상한 초과 (태그 설정 시)
### 8.3 운전원 절차
```
① "전환류 권장 ⚠" 표시 확인 → 사유 읽기(물질수지/프론트/ΔP)
② 현장·DCS로 상황 교차 확인
③ 타당하면 [전환류 ARM] 클릭 → 모드가 "전환류 복귀중"으로 전환
(자동무장이 꺼져 있으면 ARM 없이는 진행되지 않음 — 안전장치)
④ ★ 실제 조작은 운전원이 DCS에서: 제품(P)·원료(F)·D·B 배출 차단, 환류(R) 전량
(시스템은 권장 SP를 0/최대로 표시할 뿐, 자동으로 쓰지 않음)
⑤ 평형 회복되면 "복귀 램프" → 자동으로 "정상" 안내로 복귀
⑥ 잘못 떴거나 중단하려면 [취소(정상복귀)] 클릭 → 즉시 Normal
```
> **오발동 방지**: 순간값이 아니라 **장기 평균(V_loss MA)** 이 지속 초과해야 발동하며, 과도상태 중엔 발동하지 않습니다. 그래도 **최종 판단은 운전원**입니다.
---
## 9. 설정 변경 (관리자/엔지니어)
**「설정 ▾」** 버튼 → 컬럼 **「편집」** 또는 **「+ 컬럼」** → 모달.
### 9.1 컬럼 기본 설정
컬럼명·활성·Feed/압력 태그·Scan 주기·각종 필터(τ)·과도 임계·Stale(데이터 유효시간) 등. 각 칸에 설명이 붙어 있습니다.
### 9.2 온도 / θ 자동튜닝 섹션
| 항목 | 설명 |
|:--|:--|
| 온도 태그(콤마구분, 상→하) | PCT 모니터 대상. 비우면 온도기능 off |
| 감도트레이 태그 | 프론트 위치 지표. 비우면 상-하 차온 사용 |
| dT/dP | 압력보정 계수. 0이면 생온도 |
| P_ref | 압력 기준점. 비우면 자동 시드 |
| 스팀 OP 태그 | θ 추정 정확도용(예 `tica-6111a.op`) |
| θ 자동튜닝 | 체크 시 θ 제안 표시(자동반영 아님) |
| 바이어스 MA 창 | K_obs·V_loss 장기평균 창(기본 6h) |
### 9.3 전환류 평형복귀 섹션 (붉은 박스) — **균형붕괴 트리거 수정 위치**
| 항목 | 설명 | 운전원 조정 |
|:--|:--|:--|
| 전환류 복귀 기능 사용 | 이 기능 on/off | |
| 자동 무장 | 체크 해제 시 **운전원 ARM 필요**(권장: 해제) | |
| **불균형 트리거 비율** | |V_loss(MA)|/Feed 가 이 값 초과 지속 시 권장 (0.10=10%) | **민감도 조절** |
| **트리거 지속(초)** | 이 시간 연속 지속돼야 발동(기본 600=10분, 오발동 방지) | **민감도 조절** |
| 평형 대기(초) | 전환류 중 평형 회복 연속 만족 시간(기본 1800) | |
| 복귀 램프(초) | 정상 복귀 시 점진 복원 시간(기본 600) | |
| 전환류 중 Feed 권장값 | 보통 0(차단) | |
| 차압(ΔP) 태그 / 플러딩 상한 | 플러딩 트리거(선택) | |
> **"균형 심각붕괴 트리거를 운전원이 바꿀 수 있나?"** → **예.** 위 **불균형 트리거 비율**과 **트리거 지속(초)** 를 조정하면 됩니다. 값을 키우면 둔감(덜 자주 발동), 줄이면 민감(자주 발동). 저장 후 다음 계산 주기부터 적용됩니다.
### 9.4 스트림 표
각 스트림의 역할·K·θ·τ·SP한계·Rate·환류 외에:
- **전환류R**: 전환류 시 "전량 환류" 대상 스트림 체크(보통 R)
- **복귀SP**: 전환류 시 이 스트림 권장값(비우면 0=차단)
저장하면 즉시 반영됩니다. 다시 「편집」을 열어 값이 유지되는지 확인하세요.
---
## 10. 자주 묻는 질문
**Q. 권장 SP를 누르면 자동으로 적용되나요?**
A. 아니요. 화면은 표시만 합니다. **DCS에서 직접 입력**하세요.
**Q. 전환류 ARM을 누르면 밸브가 닫히나요?**
A. 아니요. 모드가 "복귀중"으로 바뀌고 권장값이 갱신될 뿐입니다. **실제 차단/환류는 운전원이 DCS에서** 합니다.
**Q. 신뢰 등급이 자꾸 B/C로 떨어집니다.**
A. 등급에 마우스를 올려 사유를 확인하세요(데이터 노후/과도/압력불안정/물질수지). 원인 해소 시 A로 돌아옵니다.
**Q. θ 제안이 안 보입니다.**
A. θ 자동튜닝이 꺼져 있거나, 외란이 부족해 신뢰도가 낮은 것입니다. 정상이며, 외란이 쌓이면 표시됩니다.
**Q. 전환류가 너무 자주/드물게 권장됩니다.**
A. 설정 → 전환류 섹션의 **불균형 트리거 비율·지속(초)** 를 조정하세요(§9.3).
**Q. 화면 갱신 주기는?**
A. 약 3초. 값이 안 보이면 브라우저 새로고침(Ctrl+F5) 후 탭 재진입.
---
## 부록. 용어
- **Advisory(보조지표)**: 자동 제어 없이 권장만 하는 방식.
- **PCT(압력보정온도)**: 진공 변동 영향을 뺀 온도.
- **θ(전달지연)**: FEED 변화가 해당 스트림에 도달하는 시간 지연.
- **V_loss / V_loss(MA)**: 물질수지 손실 / 그 장기평균.
- **프론트(front)**: 탑 내부에서 제품 순도가 최고인 지점의 위치.
- **전환류(Total Reflux)**: 제품·배출을 멈추고 전량 환류로 탑을 재평형시키는 회복 운전.
- **ARM**: 전환류 권장을 운전원이 승인(무장)하는 동작.
</content>