=== 민감단온도(T_C) 전환복귀제어 (작업플랜 구현) ===
- FeedforwardModels: TempLowLimit, TcReturnRebTarget/Band, TcReturnDeltaAdRef/Band 추가
- FeedforwardEngine: sigTLow (T_C 하한 트리거, -1e9=비활성) + 온도기반 복귀게이트(tcRecovered)
-> Recovering→Returning 전이: mbRecovered(물질수지) OR tcRecovered(reb-A+ΔT+T_C)
- FeedRampCalculator: 하강 램프 전면 구현 (RateUpPerMin/RateDnPerMin 분리, θ_up/θ_dn 분기, floor clamp)
- FeedRampExecutorService: 하강 램프 step 방향 지원
- FeedforwardConfigStore: 신규 6개 컬럼 SELECT/INSERT/UPDATE
- Hc900DbContext: temp_low_limit, tc_return_reb_target/band, tc_return_delta_ad_ref/band
- FeedforwardController: API 노출 + feed-ramp start/cancel/status
=== SteamAdvisor ===
- SteamAdvisorController: steam map 로드/시각화/제품매칭/온도프로파일
- steam.js, steam.html: SteamAdvisor 전용 UI 패널
=== Feed Ramp 실행 ===
- FeedRampExecutorService: BG service (BackgroundService)
- FeedRampJobStore: in-memory job store
- FfTrackingStore: ramp tracking DB
- FeedforwardSupervisor/WriteGuard: SP 쓰기 advisory + rate-limit
=== 분석 스크립트 ===
- gen_temp_profiles.py: 컬럼 온도 프로파일 기준 산출 → c{prefix}_tempref.json
- export_plotdata.py: analysis 결과 plot data export
- gen_instrument_ranges.py: 계기 범위 생성
- c6111_extract.py: C-6111 추출/운전모드 분류
- run_column.py: 전체 분석 파이프라인
=== Web UI ===
- ff.js/ff.html/ff.css: 전환류 상태기계 UI, TagBrowser, config save
- fast.js: Fast 조작 패널
- trend.js, pb.js, llmchat.js: 각 패널 확장
2.5 KiB
2.5 KiB
작업지시서 — STEAM SP를 FF 추종 프레임에 통합 (2026-06-06)
설계
docs/학습형제어-오퍼레이터모방-플랜.md, 메모리learned-control-operator-imitation.md. 관련docs/작업지시서-operator-assist-웹패키징.md(웹 시각화는 그쪽).
목적
SteamAdvisor(steam=f(feed,product,T_C)→OP)를 기존 FF 추종-WriteGuard 파이프에 한 행으로 통합. FF가 FEED·STREAM SP는 제안하나 STEAM 제안이 비어있음(SteamOp를 모니터로만 읽음) — 그 빈자리를 채움.
현 자산 (재활용, 중복금지)
ColumnConfig.SteamOpTag(이미 존재, TICA-x111A.OP),PvSnapshot.SteamOp(읽기만).FeedforwardSupervisor(advisory 생성),FeedforwardWriteGuard(SP/OP 쓰기 보호),FfTrackingStore(추종/로깅), 개별 follow 토글.SteamAdvisor.Predict(feed,product,tC)→{RecOp, RecSteam, Confidence, Ood, Mode}(완성).
단계
- 모델 합류:
AdvisoryResult에SteamRecommendedOp/SteamRecommendedFlow/SteamConfidence/SteamOod추가.FeedforwardSupervisor가 PvSnapshot의 feed(FICQ-x101)/product(x118)/T_C(TI-x111C)로SteamAdvisor.Predict호출 → advisory에 실음. - SP→밸브 연계: RecOp =
SteamOpTag(TICA-x111A.OP) write 대상. 현장 MANUAL → TICA를 MAN 유지하고 OP 직접 write(온도PID 미경유, 현장 불신 존중). RecSteam은 표시용. - 추종선택+안전: STEAM도 stream처럼 "추종 ON/OFF" 1행 추가.
FeedforwardWriteGuard에 SteamOp 쓰기 대상 등록(rate-limit·클램프·데드밴드). OOD/비-PROD → 추종 자동 보류(폴백). 기본 advisory_only. - 로깅:
FfTrackingStore에 권장OP vs 실제OP 기록(shadow 신뢰리포트). - 컬럼별 모델: ColumnConfig에
SteamModelPath추가(컬럼별 c{prefix}_model.json). 6-1차 first-cut.
검증기준
- 6-1차 advisory에 STEAM 행 표시(권장OP+신뢰도). 추종 OFF시 write 0.
- 추종 ON + in-envelope: WriteGuard 통과해 OP write, rate-limit 준수.
- OOD/STARTUP: "범위밖→수동" 폴백, write 차단.
주의
- ★closed-loop 강제 금지(메모리: 조건 실변동중). 오퍼레이터 승인·개별 follow 존중.
- TICA MAN 모드 확인 후 OP write(AUTO면 온도SP 경유 — 별 옵션).
- range는 realtime PV_HighRange/LowRange live(xlsx 하드코딩 금지).
- 6차만 C3 online → first-cut 6차. 9·10차(C4 미연결)는 백테스트만.
권장순서
①AdvisoryResult+Supervisor 합류 → ②WriteGuard 등록+follow 토글 → ③UI 행 → ④로깅. ①②는 웹패키징과 독립 병행 가능.