Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
EPlanVisualizer
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
嵇洲
EPlanVisualizer
Commits
22002153
Commit
22002153
authored
Mar 18, 2026
by
fenghen777
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs: 添加仿真数据变量命名与处理规则文档
parent
51d18ad1
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
123 additions
and
0 deletions
+123
-0
仿真数据变量命名与处理规则.md
docs/仿真数据变量命名与处理规则.md
+123
-0
No files found.
docs/仿真数据变量命名与处理规则.md
0 → 100644
View file @
22002153
# 仿真数据变量命名与处理规则
## 1. 后端数据生成(OpenModelica 默认规则)
后端使用
**OpenModelica 编译器默认的 CSV 导出**
,前端
`exportToModelica()`
未声明
`output`
变量,因此 OpenModelica 导出所有非
`protected`
变量。
### 变量命名格式
| 格式 | 含义 | 示例 |
|------|------|------|
|
`实例名.v`
| 组件级压降 |
`resistor_1.v`
|
|
`实例名.i`
| 组件级电流 |
`resistor_1.i`
|
|
`实例名.p.v`
| 正极端口电位 |
`ground_1.p.v`
|
|
`实例名.p.i`
| 正极端口电流 |
`ground_1.p.i`
|
|
`实例名.n.v`
| 负极端口电位 |
`resistor_1.n.v`
|
|
`实例名.n.i`
| 负极端口电流 |
`resistor_1.n.i`
|
|
`time`
| 仿真时间轴 |
`time`
|
### 实例名生成规则
由
`modelicaExporter.js`
中
`exportToModelica()`
决定:
1.
取映射表的
`modelName`
首字母小写作为
`baseName`
(如
`Resistor`
→
`resistor`
)
2.
按
`baseName`
分组计数,附加序号:
`resistor_1`
,
`resistor_2`
, ...
3.
无映射时用符号 label 转 camelCase + 序号
### 各元件输出变量
| 元件 | 端口数 | 组件级变量 | 端口级变量 |
|------|--------|-----------|-----------|
| Resistor | 双端口 (p, n) |
`.v`
`.i`
|
`.p.v`
`.p.i`
`.n.v`
`.n.i`
|
| Capacitor | 双端口 (p, n) |
`.v`
`.i`
|
`.p.v`
`.p.i`
`.n.v`
`.n.i`
|
| VoltageSource | 双端口 (p, n) |
`.v`
`.i`
|
`.p.v`
`.p.i`
`.n.v`
`.n.i`
|
| IdealSwitch | 双端口 (p, n) |
`.v`
`.i`
|
`.p.v`
`.p.i`
`.n.v`
`.n.i`
|
| Ground | 单端口 (p) | 无 |
`.p.v`
`.p.i`
|
> **注意**:OpenModelica 的 alias elimination 优化可能会移除冗余变量(如 `n.v == p.v` 时只保留一个)。
---
## 2. 前端数据传递(无修改)
数据流:
`后端 CSV`
→
`api.js`
→
`useProjectStore`
→
`SimResultsModal`
-
后端响应字段:
`resp.data.csv_data`
(原始 CSV 字符串)
-
Store 保存:
`csvData: resp.data?.csv_data || ''`
-
前端
**不修改数据值**
,仅解析 CSV 为列式数组
---
## 3. 前端显示处理
### 3.1 变量过滤
`SimResultsModal.jsx`
第 100 行,隐藏包含
`.p.`
或
`.n.`
的中间端口变量:
```
js
.
filter
((
v
,
i
)
=>
i
!==
xIdx
&&
!
/
\.\b[
pn
]\b\.
/
.
test
(
v
.
name
))
```
-
✅ 保留:
`resistor_1.v`
,
`resistor_1.i`
(组件级)
-
❌ 隐藏:
`resistor_1.p.v`
,
`resistor_1.n.i`
(端口级)
-
⚠️ 例外:
`ground_1.p.i`
仍然显示(Ground 无组件级变量,且正则需要两段
`.p.`
才匹配)
### 3.2 中文翻译 (`toChinese()`)
变量名自动翻译为中文显示,原始数据不变。
**组件名映射**
(
`COMP_CN`
):
| 英文 | 中文 |
|------|------|
|
`resistor`
| 电阻 |
|
`capacitor`
| 电容 |
|
`inductor`
| 电感 |
|
`voltagesource`
| 电压源 |
|
`currentsource`
| 电流源 |
|
`ground`
| 接地 |
|
`diode`
| 二极管 |
|
`switch`
/
`idealswitch`
| 开关 |
|
`transformer`
| 变压器 |
|
`opamp`
| 运放 |
**物理量映射**
(
`QTY_CN`
):
| 缩写 | 中文 |
|------|------|
|
`v`
| 电压(V) |
|
`i`
| 电流(A) |
**端口映射**
(
`PORT_CN`
):
| 缩写 | 中文 |
|------|------|
|
`p`
| 正极 |
|
`n`
| 负极 |
### 3.3 翻译示例
| 原始变量名 | 显示名称 |
|-----------|---------|
|
`time`
| 时间(s) |
|
`resistor_1.v`
| 电阻1 电压(V) |
|
`resistor_1.i`
| 电阻1 电流(A) |
|
`ground_1.p.v`
| 接地1 正极电压(V) |
|
`ground_1.p.i`
| 接地1 正极电流(A) |
|
`idealSwitch_1.v`
| idealSwitch1 电压(V) |
|
`voltageSource_1.i`
| 电压源1 电流(A) |
|
`der(capacitor_1.v)`
| d/dt 电容1 电压(V) |
> `idealSwitch` 未命中 `COMP_CN`(key 为 `switch` 而非 `idealswitch`),故保留英文原名。
---
## 4. 涉及源文件
| 文件 | 职责 |
|------|------|
|
`src/utils/modelicaExporter.js`
| 生成 .mo 模型,决定实例名 |
|
`src/utils/modelMapping.js`
| 符号类型 → Modelica 模型/端口映射 |
|
`src/hooks/useProjectStore.js`
| 接收后端 CSV 并存储 |
|
`src/components/SimResults/SimResultsModal.jsx`
| CSV 解析、变量过滤、中文翻译、图表渲染 |
|
`src/components/SimResults/LiveChart.jsx`
| 实时数据同样使用
`toChinese()`
翻译 |
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment