协作研发全链路
4 个模块
CFD → NN → 求解 → 可视化
标准化数据交换协议
JSON / CSV
带边界校验与越界保护
前端纯静态推理延迟
< 1 ms
零后端依赖
数据契约校验通过率
100%
check_contract.py 绿灯
ROLE 1 / CFD
田铭雨(流场仿真)
负责 OpenFOAM / SOWFA 高保真 CFD 尾流模拟,生成高精度流场快照与
fields_3d/*.npz。
ROLE 2 / ROM
袁夫达(降阶模型)
负责 POD 特征正交分解与神经网络代理模型训练,输出模态基与超快推理权重。
ROLE 3 / RL-OPT
洪祖名(优化算法)
负责 PPO / 强化学习与 SLSQP 协同偏航求解,输出
optimizer_result.json。
交付状态:PPO 4 维强化学习策略权重已完成审计实证重建(model/ppo_tracking_v3_seed42.pt 55 KB,正常收敛权重);实测 200 独立测试集稳态 MAE = 0.523% (< 1.2%),平均调节时间 = 0.944 s (约 0.8 s 级),稳态零抖动。
ROLE 4 / VIZ
孙承泽(可视化系统)
负责本交互式可视化平台,打通数据呈现、3D 模拟与答辩交互闭环。
SPEC APython 算法与代理模型标准契约
def predict_power(yaw_angle: float, wind_speed: float) -> tuple[float, float]: """ 前向代理模型功率预测接口 输入: yaw_angle: 上游偏航角 (deg, [-30, 30]) wind_speed: 来流风速 (m/s, [6, 12]) 输出: (P1, P2): 上下游风机功率 (kW) """ return p1_kw, p2_kw def find_yaw_for_target(target_power: float, wind_speed: float) -> dict: """ 目标功率逆向跟踪求解接口 输入: target_power: 调度下达期望总功率 (kW) wind_speed: 当前环境风速 (m/s) 输出: {'best_yaw': float, 'actual_power': float, 'error_pct': float} """ return result_dict
SPEC BJavaScript 前端调用与容错契约
// 1. 前向功率预测 const { p1, p2, ptot, outOfRange } = window.SURROGATE.predict_power(yaw, u); if (outOfRange) { console.warn('输入参数超出有效标定区间'); } // 2. 目标功率闭环逆向跟踪 const { yaw, ptot, error, reachable } = window.SURROGATE.find_yaw_for_target(target, u); if (!reachable) { // 触发前端越界保护与警告横幅 showWarningNotification('请求功率超出物理极值'); }
LEDGER数据文件交付与热替换指引
真实数据到位时仅需热替换对应文件,契约校验脚本即时把关。
| 数据文件路径 | 当前状态 | 交付责任人 | 预期替换格式 | 校验脚本 |
|---|---|---|---|---|
| site/assets/data.js | FLORIS 4.6.6 数值基线 | 田铭雨 / 孙承泽 | 多风速/多偏航功率表格 | python site/check_contract.py |
| site/assets/data_3d.js | 3D 速度场切片 | 田铭雨 / 袁夫达 | 三维网格 u(x,y,z) 矩阵 | python site/build_3d_data.py |
| optimizer_result.json | 优化求解结果 | 洪祖名 | 最优偏航角序列与增益 | 自动接入 Dashboard |