完成日期: 2026-01-26
- ✅ 多 KPI 支援:函數可返回字典,自動處理多個 KPI(thrust、max_q、drag、fuel_margin、heat_flux)
- ✅ Bootstrap CI 誤差估計:
bootstrap_confidence_interval()方法,計算 P90 的置信區間(例如 P90 = 3.01 ± 0.04 kN) - ✅ 參數相關性:支援 covariance 矩陣,使用多元高斯分佈進行相關採樣
- ✅ 固定 random seed:
random_seed參數確保可重現 - ✅ 參數截斷:
truncate選項,將 Gaussian 分佈截斷到合理範圍
verification_validation.py:UncertaintyPropagation.monte_carlo_analysis()(擴充)verification_validation.py:UncertaintyPropagation.bootstrap_confidence_interval()(新增)
- ✅ 多 KPI 敏感度分析:
multi_kpi_sensitivity()方法,對多個 KPI 分別計算敏感度 - ✅ 跨 KPI 排名:計算參數對所有 KPI 的平均重要性,找出整體主導參數
- ✅ 明示輸出 KPI:每個敏感度結果都標註「本敏感度只針對輸出 XXX」
verification_validation.py:SensitivityAnalysis.multi_kpi_sensitivity()(新增)
- ✅ 標準格式:Case ID / Input Hash / Model Version / Metric / Threshold / Result / Plot
- ✅ 報告生成器:
VVReportGenerator類,自動生成 JSON 和 Markdown 報告 - ✅ 輸入 Hash:自動計算輸入配置的 SHA256 hash
- ✅ 可追溯性:每個案例包含完整資訊
vv_report_generator.py: 全新模組
- ✅ log-log 斜率計算:
compute_convergence_order()方法 - ✅ 收斂階數驗證:自動檢查是否接近 4(RK4 期望值)
- ✅ R² 計算:評估擬合質量
verification_validation.py:ConvergenceTest.compute_convergence_order()(新增)
- ✅ 時間序列檢查:
energy_conservation_time_series()方法,計算max|ΔE/E|隨時間變化 - ✅ 完整指標記錄:時間、步長、初始條件、公式、門檻值
- ✅ 角動量時間序列:同樣支援時間序列檢查
verification_validation.py:ConservationCheck.energy_conservation_time_series()(新增)verification_validation.py:ConservationCheck.energy_conservation_no_thrust()(擴充)
- ✅ 標準表對照:US Standard Atmosphere 1976 標準值(多個高度點)
- ✅ 最大相對誤差:自動計算 T、p、rho 的最大相對誤差
- ✅ 誤差分佈:找出誤差最大的高度範圍
- ✅ 驗證通過判斷:自動判斷是否在 1% 容許誤差內
verification_validation.py:ReferenceCaseValidation.isa_validation()(新增)verification_validation.py:ReferenceCaseValidation.isa_reference_altitudes()(擴充)
- ✅ 自動提出改動:
propose_design_changes()方法,根據違反案例自動提出設計建議 - ✅ Trade-off 分析:每個建議都包含 pros/cons
- ✅ 迭代優化:
iterative_optimization()方法,自動迭代直到滿足裕度要求 - ✅ 設計建議分類:針對不同載荷類型(max-q、過載、彎矩、熱梯度)提供專門建議
load_cases.py:LoadCaseManager.propose_design_changes()(新增)load_cases.py:LoadCaseManager.iterative_optimization()(新增)
- ✅ 事件優先級:
event_priorities字典,定義事件優先級(數字越小優先級越高) - ✅ 同時事件處理:
handle_concurrent_events()方法,按優先級排序處理 - ✅ 事件定位精度:
check_event_timing_accuracy()方法,檢查時間誤差(< 1 ms) - ✅ 狀態連續性檢查:
check_state_continuity()方法,檢查事件處理後是否產生非物理跳變
event_system.py:EventDetector.handle_concurrent_events()(新增)event_system.py:EventDetector.check_event_timing_accuracy()(新增)event_system.py:EventDetector.check_state_continuity()(新增)event_system.py:EventDetector.event_priorities(新增)
- ✅ 物理一致性檢查:
check_physical_consistency()方法,在 ECI/ECEF 下同一物理情境得到的 KPI 是否一致 - ✅ 風場定義域一致性:
check_wind_frame_consistency()方法,風場在 NED 定義,轉到 ECI 計算是否一致 - ✅ 多 KPI 支援:支援多個 KPI 的一致性檢查
coordinate_time_system.py:ConsistencyChecker.check_physical_consistency()(新增)coordinate_time_system.py:ConsistencyChecker.check_wind_frame_consistency()(新增)
- ✅ 完整配置:
SimulationConfig類,包含所有必要資訊(random_seed、dt、初始條件等) - ✅ 配置 Hash:自動計算配置的 SHA256 hash
- ✅ 模型版本管理:
ModelVersionInfo類,記錄模型版本和資料 hash - ✅ Git commit 獲取:自動獲取當前 git commit
- ✅ 依賴版本:自動獲取 pip freeze 結果
- ✅ 輸出摘要:KPI + plots 記錄
- ✅ 回歸測試:
RegressionTest類,設置基準 KPI 和容許閾值,檢查模型更新後的變化
reproducibility.py: 全新模組
文件:
V_V_Report_v1.0.jsonV_V_Report_v1.0.md
內容:
- 10 個標準測試案例
- 標準格式:Case ID / Input Hash / Model Version / Metric / Threshold / Result
- 包含:兩體軌道、收斂性、ISA 比對等
文件:
UQ_Sensitivity_Report_v1.0.json
內容:
- Monte Carlo 多 KPI 分析(thrust、max_q、drag、fuel_margin)
- Bootstrap CI 誤差估計
- 多 KPI 敏感度分析
- 參數擾動設定與分佈
文件:
reproducible_pack/目錄Reproducible_Run_Pack_Spec_v1.0.md
內容:
- 完整配置(config.json)
- 模型版本與 hash
- Git commit 與依賴版本
- 輸出摘要
- 回歸測試基準
| 缺失項目 | 狀態 | 實現位置 |
|---|---|---|
| Monte Carlo 多 KPI | ✅ | verification_validation.py |
| Bootstrap CI | ✅ | verification_validation.py |
| 參數相關性 | ✅ | verification_validation.py |
| 固定 random seed | ✅ | verification_validation.py |
| 多 KPI 敏感度 | ✅ | verification_validation.py |
| V&V 標準格式 | ✅ | vv_report_generator.py |
| 收斂階數計算 | ✅ | verification_validation.py |
| 守恆時間序列 | ✅ | verification_validation.py |
| ISA 標準表比對 | ✅ | verification_validation.py |
| 載荷案例自動閉環 | ✅ | load_cases.py |
| 事件系統競合測試 | ✅ | event_system.py |
| 座標系物理一致性 | ✅ | coordinate_time_system.py |
| 可重現性包 | ✅ | reproducibility.py |
| 回歸測試 | ✅ | reproducibility.py |
from verification_validation import UncertaintyDistribution, UncertaintyPropagation
# 定義多 KPI 函數
def multi_kpi_calc(mdot, v_e, C_D, rho, ...):
return {
"thrust": mdot * v_e,
"max_q": 0.5 * rho * V * V,
"fuel_margin": (m - m_min) / m_min
}
# Monte Carlo 分析
mc_result = UncertaintyPropagation.monte_carlo_analysis(
multi_kpi_calc, uncertain_inputs, n_samples=1000,
random_seed=42, covariance=cov_matrix
)
# Bootstrap CI
ci_p90 = UncertaintyPropagation.bootstrap_confidence_interval(
kpi_data, 90, random_seed=42
)from verification_validation import SensitivityAnalysis
sens_multi = SensitivityAnalysis.multi_kpi_sensitivity(
multi_kpi_calc, base_inputs, perturbations,
["thrust", "max_q", "fuel_margin"]
)from load_cases import load_case_manager
# 評估載荷案例
violations = load_case_manager.evaluate_all_cases(q, n, M_bend, delta_T, t)
# 自動提出改動
proposals = load_case_manager.propose_design_changes(violations["all_cases"])
# 迭代優化
optimized = load_case_manager.iterative_optimization(initial_values)from reproducibility import reproducibility_pack, SimulationConfig
# 創建配置
config = SimulationConfig(
simulation_id="sim_001",
random_seed=42,
...
)
# 創建包
reproducibility_pack.set_config(config)
reproducibility_pack.register_model_version("aero", "1.0", aero_data, "CFD")
pack_result = reproducibility_pack.create_pack("reproducible_pack")所有缺失已補齊,程式碼現在具備:
- ✅ 完整的 V&V 框架(標準格式、10 個案例)
- ✅ 多 KPI 不確定度分析(Bootstrap CI、參數相關性)
- ✅ 多 KPI 敏感度分析(跨 KPI 排名)
- ✅ 收斂階數驗證(log-log 斜率)
- ✅ ISA 標準表比對(最大相對誤差、誤差分佈)
- ✅ 載荷案例自動閉環(自動改動、迭代優化)
- ✅ 事件系統競合測試(優先級、定位精度、連續性)
- ✅ 座標系物理一致性(ECI/ECEF、風場定義域)
- ✅ 可重現性包(完整 config、版本資訊、回歸測試)
三個工程報告已生成,可直接用於工程審查。
狀態: ✅ 所有缺失補齊完成