规范仿真模型库并完善前端交互
归档仿真模型并补充组件目录、建模规范与校验。 完善控制台、默认节点、视图适配及前端自动化测试。
This commit is contained in:
1 parent
f7f1078911
commit
bbc88a6bbb
71 files changed
+4574
-806
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# System XML v2 协议
|
||||
|
||||
System XML v2 是 ReactFlow 建模前端与 PythonModels 仿真层之间的交换格式。v2 将物理端口与信号端口分开,并移除了物理连接中的方向语义。
|
||||
System XML v2 是 ReactFlow 建模前端与 `app.simulation` 仿真层之间的交换格式。v2 将物理端口与信号端口分开,并移除了物理连接中的方向语义。
|
||||
|
||||
## 基本约定
|
||||
|
||||
@@ -56,7 +56,7 @@ System XML v2 是 ReactFlow 建模前端与 PythonModels 仿真层之间的交
|
||||
|
||||
物理端口的流向由求解结果决定。一个名义出口的 `m_flow > 0` 表示该端口发生实际流入,可在结果层标记为倒流。
|
||||
|
||||
三通的三个端口当前保留 PythonModels 已有名称 `port_in/port_out1/port_out2`,但全部声明为 `bidirectional`,名称不构成方向约束。
|
||||
三通的三个端口当前保留仿真模型已有名称 `port_in/port_out1/port_out2`,但全部声明为 `bidirectional`,名称不构成方向约束。
|
||||
|
||||
## Connection
|
||||
|
||||
@@ -80,11 +80,11 @@ System XML v2 是 ReactFlow 建模前端与 PythonModels 仿真层之间的交
|
||||
|
||||
XSD 负责结构和基础枚举校验,端口注册、拓扑完整性与可求解性由模型校验层负责。
|
||||
|
||||
## PythonModels 编译接口
|
||||
## 仿真模型编译接口
|
||||
|
||||
`POST /api/reactflow/compile-model` 接收与工程保存、XML 导出相同的 ReactFlow 工程 JSON。它会执行以下操作:
|
||||
|
||||
1. 按 `node.data.modelType` 创建 PythonModels 组件实例,并写入 SI 参数。
|
||||
1. 按 `node.data.modelType` 创建 `app.simulation` 组件实例,并写入 SI 参数。
|
||||
2. 将前端端口声明与组件注册端口逐项比对。
|
||||
3. 按画布实际 `edges` 创建无方向物理连接,而不是按组件类型或拖入顺序推断拓扑。
|
||||
4. 检查端口存在性、物理域兼容性、重复连接和未连接端口。
|
||||
@@ -140,7 +140,7 @@ XSD 负责结构和基础枚举校验,端口注册、拓扑完整性与可求
|
||||
|
||||
## 第二阶段:XML 解析与校验
|
||||
|
||||
第二阶段已经实现从 System XML v2 回到 PythonModels 网络的完整入口。解析过程固定分为三层:
|
||||
第二阶段已经实现从 System XML v2 回到仿真网络的完整入口。解析过程固定分为三层:
|
||||
|
||||
| 层级 | `layer` | 负责内容 |
|
||||
|---|---|---|
|
||||
@@ -169,7 +169,7 @@ XSD 负责结构和基础枚举校验,端口注册、拓扑完整性与可求
|
||||
|
||||
- `POST /api/system-xml/validate`:无论成功与否都返回校验报告,便于编辑器实时显示问题。
|
||||
- `POST /api/system-xml/parse`:成功时返回规范化工程 JSON;失败时返回 HTTP `422` 和结构化诊断。
|
||||
- `POST /api/system-xml/compile-model`:成功时返回 PythonModels 网络、仿真设置和校验报告;失败时返回 HTTP `422`。
|
||||
- `POST /api/system-xml/compile-model`:成功时返回仿真网络、仿真设置和校验报告;失败时返回 HTTP `422`。
|
||||
- `POST /api/system-xml/simulate`:完成校验、编译、仿真准备、代数闭合、stream 传播和时间积分;成功时返回组件与端口时间序列,失败时返回 HTTP `422` 和仿真层诊断。
|
||||
|
||||
示例:
|
||||
@@ -182,13 +182,13 @@ Invoke-RestMethod `
|
||||
-InFile .\test\system.xml
|
||||
```
|
||||
|
||||
组件参数和端口定义集中在 `PythonModels/registry.py`。ReactFlow JSON 编译和 XML 语义校验共用该注册表,新增组件时必须先在这里登记参数范围、默认值和端口契约。
|
||||
组件参数和端口定义集中在 `app/simulation/registry.py`。ReactFlow JSON 编译和 XML 语义校验共用该注册表,新增组件时必须先在这里登记参数范围、默认值和端口契约。
|
||||
|
||||
## 第三阶段:XML 驱动仿真 MVP
|
||||
|
||||
第三阶段当前已经打通:
|
||||
|
||||
1. XML 中的组件、参数和无方向物理连接编译成 PythonModels 网络。
|
||||
1. XML 中的组件、参数和无方向物理连接编译成 `app.simulation` 网络。
|
||||
2. 仿真准备层检查未连接端口、方程数量、无储能代数孤岛和无阻力储能直连。
|
||||
3. SciPy 非线性最小二乘求解每个时刻的端口压力与质量流量。
|
||||
4. 根据求解后的实际流向迭代传播 `h_outflow`,并在三通处执行质量流量加权混合。
|
||||
|
||||
Reference in new issue
Block a user