DataLens 是一个单文件、纯前端的工业控制性能分析工具。不需要安装、不需要联网、不需要服务器,用现代浏览器打开 index.html 就能用。它通过可视化监控指标、控制手段与法规红线之间的动态关系,把过度控制的空间直接折算成经济效益。
| 你想完成的事 | 交付成果 |
|---|---|
| 快速体验工具 | 打开 index.html,内置排放控制示例数据自动加载 |
| 分析自己的数据 | Excel 整理后另存为 CSV,点击导入数据 |
| 移植到新场景 | 改几个 JSON 配置字段,一行代码都不用碰 |
- 零依赖:单个 HTML 文件,Plotly.js v3.3.1 内嵌,无需任何外部资源。
- 100% 离线:数据不上传、不联网,全部在浏览器本地处理,可断网使用。
- CSV 导入:纯 JavaScript 解析,无第三方库依赖,自动识别并跳过表头。
- 数据与配置分离:换数据不动配置,换配置不动数据。
- 3 个预设场景:保守、默认、激进,一键切换全部参数。
- 6 个可调参数:常用参数高亮,高级参数默认折叠。
- 4 个实时 KPI:每次拖动滑块自动重算,瞬间刷新。
- 双层互动图表:Plotly 驱动,支持缩放、悬停、导出 PNG。
- 操作指引面板:可折叠,新用户三步上手。
- 下载
index.html,用 Chrome、Edge 或 Firefox 打开。 - 内置排放控制示例数据(241 条分钟级数据,10:00 至 14:00),开箱即体验。
- 点击预设场景按钮(保守、默认、激进),观察图表和 KPI 的变化。
- 分析自己的数据:在 Excel 中整理好,另存为 CSV,点击 导入数据。
时间,指标值,控制量,整点标记
2025-07-11 10:00:00,21.67,0.0,1
2025-07-11 10:01:00,22.34,0.16,0
2025-07-11 10:02:00,23.85,0.30,0| 列 | 含义 | 格式 | 说明 |
|---|---|---|---|
| 第 1 列 | 时间戳 | YYYY-MM-DD HH:MM:SS |
分钟级或小时级均可 |
| 第 2 列 | 监控指标值 | 数字 | 如 NOx 浓度、氧纯度、温度 |
| 第 3 列 | 控制量 | 数字 | 如喷氨量、阀门开度、加药量 |
| 第 4 列 | 整点标记 | 1 / 0,或 是 / 空 |
标记每个小时窗口的起点 |
首行可以是中文或英文表头,程序自动识别并跳过。
配置文件只管理界面显示文字和滑块默认值,不含数据:
{
"siteName": "某燃气电厂",
"section": "脱硝控制性能分析",
"pollutant": "NOx",
"pollutantUnit": "mg/m³",
"regulator": "脱硝剂",
"regulatorShort": "喷氨量",
"regulatorUnit": "kg/h",
"regulatoryLimit": 50,
"sliders": {
"trigger": { "label": "NOx 触发线", "val": 40, "min": 35, "max": 50, "unit": "mg/m³" },
"spray": { "label": "喷氨识别阈值", "val": 2, "min": 0.5, "max": 20 },
"discount": { "label": "节药折扣系数", "val": 15, "min": 5, "max": 30, "unit": "%" }
}
}所有页面文字(KPI 卡片、图表标签、说明文字)自动跟随 pollutant 和 regulatorShort 字段变化。换个场景,改几个 JSON 字段就行。
示例文件见 examples/emission-control/(NOx 脱硝场景)和 examples/air-separation/(氧纯度场景)。
| 概念 | 图表表现 | 含义 |
|---|---|---|
| 触发线 | 橙色虚线 | 低于此线视为安全区,安全区还在控制则有优化空间 |
| 法规上限 | 红色点线 | 硬天花板,小时均值不能超过 |
| 预算线 | 灰色虚线 | 物理约束,当前小时还剩多少余额可以用 |
| 期望控制目标 | 红色实线 | 基于触发线加预算动态计算的核心参考曲线 |
| 节药空间 | 绿色竖条 | 指标已低于触发线但仍施加控制的区域,打折后是可实现节约量 |
任何「监控指标 + 控制手段 + 法规红线」的工业场景都能用:
| 行业 | 监控指标 | 控制手段 | 红线 |
|---|---|---|---|
| 环保 / 电力 | NOx 浓度 (mg/m³) | 喷氨量 / 脱硝剂用量 | 50 |
| 空分 | 氧纯度 (%) | 空压机导叶开度 / 功率 | 99.5 |
| 锅炉 | 排烟温度 (°C) | 给煤量 / 送风量 | 150 |
| 化工 | 反应温度 (°C) | 冷却水阀门开度 | 200 |
| 水处理 | 出水 COD (mg/L) | 加药泵频率 / 流量 | 30 |
| 钢铁烧结 | SO₂ 浓度 (mg/m³) | 脱硫剂用量 | 35 |
| 水泥窑 | 颗粒物排放 (mg/m³) | 收尘器功率 | 10 |
以空分装置为例:
- 整理 CSV 数据:4 列,时间、氧纯度、导叶开度、整点标记。
- 修改 JSON 配置:
pollutant改成"氧纯度",regulatorShort改成"导叶开度",regulatoryLimit改成99.5。 - 打开
index.html,导入 CSV,加载 JSON,完成。
DataLens/
├── index.html # 主程序(单文件,即开即用)
├── moisture-analyzer.html # 水分数据分析页面
├── README.md # 中文文档(本文件)
├── README.en.md # English documentation
├── LICENSE # MIT 开源协议
├── .gitignore
└── examples/
├── emission-control/ # 排放控制场景(NOx 脱硝示例)
│ ├── data.csv # 241 条分钟级数据(10:00 至 14:00)
│ └── config.json # 显示配置
└── air-separation/ # 空分装置场景(氧纯度控制示例)
├── data.csv # 11 条模拟数据
└── config.json # 显示配置
Q: 为什么用 CSV 而不是直接读 Excel? A: 为了保持零依赖。CSV 是通用交换格式,Excel、WPS、Numbers 都能直接另存为 CSV。纯 JS 解析 CSV 只需二十行代码,解析 .xlsx 需要引入 500KB 以上的第三方库。
Q: 数据安全吗? A: 完全安全。所有数据在浏览器本地处理,不会上传到任何服务器。你可以断网使用,数据不会离开你的电脑。
Q: 图表能导出吗? A: Plotly 工具栏自带截图按钮(相机图标),点击即可导出 PNG 图片。
Q: 可以自定义小时窗口大小吗?
A: 当前版本默认按 60 分钟滚动窗口计算。如果要改成其他窗口(如 30 分钟、24 小时),修改 computeWindow 函数中的 60 和 59 两个常量即可。
Chrome 90+ · Edge 90+ · Firefox 90+ · Safari 15+
MIT,可随意使用、修改、分发。