v6 실험1: 진행 상황 중간 정리¶
- Date: 2026-04-14
- Status: Batch 0+1 완료, Batch 2 P1 미완
- TODO:
todos/track-b_ver6_fl_advanced.md(실험1 실행 계획 섹션) - Goal analysis:
report/version6/lab-leader/v6_0414_exp1_goal_analysis.md
1. 완료된 작업¶
Batch 0+1 (사전 작업 5건 중 4건 완료)¶
| ID | 작업 | Status | 결과 |
|---|---|---|---|
| P0 | PAPE 정의 통일 | ✅ 완료 | 이미 compute_pape() 호출로 통일되어 있음 (추가 작업 불필요) |
| P4 | pwlf 패키지 설치 | ✅ 완료 | pwlf 2.5.2 이미 설치됨 |
| P5 | TOU 시간대 매핑 유틸 | ✅ 완료 | classify_tou_period(), get_kepco_tou_prices() 이미 구현됨 (optimization.py) |
| P2 | BESSParams 스케일링 검증 | ✅ 완료 | report/version6/exp-expert/v6_0414_bess_params_validation.md |
| P1 | 6 methods 예측값 추출 | ✅ 스크립트 작성 완료 | v6_0414_prediction_extraction.py (224 tests passed, 미실행) |
P2 핵심 결론 (BESSParams)¶
- 현재 cap_per_hh=12.0kWh → ceiling effect 확인 (Apt30에서 142% 에너지 커버리지)
- 추천: cap_per_hh=5.0kWh (usable 4.0kWh, max_power=1.25kW)
- Cross-HH mean 에너지 커버리지 27% → PAPE 차이가 비용으로 분화
- 민감도 분석: 2.0 / 5.0 / 12.0 kWh 세 시나리오 실행
- 분석 스크립트:
experiments/ess_simulation/v6_0414_bess_params_analysis.py
UMass 가구별 피크 통계 (P2에서 확인)¶
| 가구 | Daily Peak Mean (kW) | P95 (kW) | High-price Energy (kWh/day) |
|---|---|---|---|
| Apt6 | 3.83 | 6.07 | ~20 |
| Apt15 | 1.63 | 3.19 | ~11 |
| Apt30 | 1.10 | 2.13 | ~7 |
| Apt51 | 2.34 | 5.39 | ~15 |
| Apt88 | 3.89 | 6.42 | ~22 |
2. 미완료 작업 (다음 세션 시작점)¶
P1: 6 methods 재학습 + 예측값 저장 스크립트 [스크립트 완료, 실행 대기]¶
스크립트 완료: experiments/ess_simulation/v6_0414_prediction_extraction.py
- 224 tests passed, 문법 검증 완료
- GPU 실행 필요 (method당 5-15분, 전체 ~60분 예상)
# 전체 실행
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py
# 특정 method만
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py --methods scratch,fedavg
# 기존 결과 건너뛰기
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py --skip-existing
6 methods: scratch, local, fedavg, fedavg_ft_10, fedavg_ft_50, fedprox, feddf 출력:
outputs/ess_simulation/exp1_pape_cost/predictions/
{method}_{household}.npz # keys: predictions, targets, mean, std
metrics_summary.csv # method, household, mse, mae, pape, monthly_pape, hr
주의사항:
- fedavg와 fedavg_ft를 모두 실행 시 FedAvg 학습이 2회 실행됨 (독립 trainer)
- 전체 재학습 (수정된 v6 코드 반영), 기존 체크포인트 미사용
P3: Window→ESS 파이프라인 (P1 완료 후)¶
스크립트: experiments/ess_simulation/v6_0414_pape_cost_data_gen.py
핵심 설계 (A→B→C):
Step A: schedule = PulpBessSolver.solve(forecast, prices) → p_ch, p_dis
Step B: actual_grid = actual_load + p_ch - p_dis (고정 스케줄 적용)
Step C: actual_cost = sum(actual_grid * prices)
파라미터:
- BESSParams(cap_per_hh=5.0, c_rate=0.25)
- TOU: get_kepco_tou_prices() 사용
- 민감도: cap_per_hh = [2.0, 5.0, 12.0]
Batch 3-4 (P3 완료 후)¶
v6_0414_exp1a_monotonicity.py— Spearman rho + scatter (H1)v6_0414_exp1b_threshold.py— Piecewise regression (H2)v6_0414_exp1c_hr_complement.py— Partial correlation (H3)v6_0414_exp1_summary.py— 종합 figure
3. 의존성 그래프 (현재 상태)¶
[✅] P0 (PAPE 통일)
[✅] P4 (pwlf 설치)
[✅] P5 (TOU 유틸)
[✅] P2 (BESSParams → 5.0kWh)
[✅] P1 (스크립트 작성 완료)
↓
[⏳] P1 실행 (GPU) ←── 다음 세션 최우선
↓
[ ] P3 (ESS 파이프라인) ←── P1 실행 완료 후
↓
[ ] 실험1a/1b/1c (분석) ←── P3 완료 후
↓
[ ] 실험1 종합
4. 다음 세션 액션 아이템¶
- 즉시:
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py실행 (GPU, ~60분) - P1 실행 완료 후: P3 ESS 파이프라인 작성 (
v6_0414_pape_cost_data_gen.py) — engineer - P3 완료 후: Batch 3 실험 스크립트 1a/1b/1c (exp-expert)
- 실험 완료 후: 종합 figure + H1/H2/H3 판정