关于 pump-performance-db
pump-performance-db 是面向泵选型与分析的技能,介绍如何查询制造商泵曲线和规格、解析数据并建立自定义泵库。内容涵盖数据获取、曲线数字化及维护实践。
主要功能
- 01查询制造商泵曲线与规格
- 02解析 PDF、Excel 和 CSV 数据
- 03数字化性能曲线
- 04创建自定义泵数据库
- 05验证并维护泵数据
适用场景
- 01按流量和扬程筛选泵型
- 02从产品数据表提取曲线
- 03整理专有泵数据
- 04更新并校验泵数据库
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ soljourner/ claude-engineering-skills --skill pump-performance-db安装后在 Claude Code 中输入/pump-performance-db确认已加载。
附带文件query-examples.pyreference.md
详细介绍
泵性能数据库
从 Grundfos、KSB 和其他主要泵制造商获取泵曲线和规格。本技能提供查询泵性能数据、解析制造商数据库以及创建自定义泵库的方法。
泵数据库概述
泵性能数据库包含泵选型和分析所需的关键信息:
- 性能曲线:流量(Q)与扬程(H)的关系
- 效率曲线:效率与流量的关系
- NPSH 要求:必需汽蚀余量与流量的关系
- 功率曲线:功耗与流量的关系
- 泵曲线:多个叶轮直径和转速
- 物理规格:尺寸、重量、连接类型
- 运行限制:温度、压力、流体兼容性
- 选型数据:型号、制造材料
制造商资源
Grundfos Product Center
网站:https://product-selection.grundfos.com/
功能:
- 完整的产品目录
- WebCAPS 在线选型工具
- 可下载的产品数据
- 性能曲线导出
- 3D CAD 模型
- 泵配置工具
数据访问:
- 基于 Web 的选型界面
- 带曲线的 PDF 数据表
- Excel 导出功能
- API 访问(有限,需合作伙伴资格)
- 桌面软件:Grundfos Product Center(离线)
典型数据格式:
- 曲线数据通常采用专有格式
- PDF 数据表需要解析或数字化
- 部分 Excel 导出文件包含表格数据
KSB EasySelect
网站:https://www.ksb.com/en-us/products-and-solutions/tools-services/easyselect
功能:
- 丰富的泵目录
- 根据工作点进行选型
- 多种泵类型(离心泵、容积式泵)
- 性能曲线可视化
- 技术文档
数据访问:
- 基于 Web 的选型工具
- 可下载的 PDF 数据表
- 直接导出数据的功能有限
- 提供桌面应用程序
Flowserve Pump Selector
功能:
- 工业泵选型
- 定制设计泵
- 丰富的 API 和工艺泵目录
- 材料选型指南
数据访问:
- 联系当地代表进行选型
- PDF 技术资料
- 针对特定应用的定制报价
- 在线选型工具有限
ITT/Goulds 选型工具
网站:https://www.gouldspumps.com/
功能:
- 工业和商用泵选型
- 集成 i-ALERT 状态监测
- 性能曲线数据
- 针对特定应用的泵系列
数据访问:
- Goulds Pump Expert 软件(可下载)
- 在线产品目录
- PDF 资料和曲线
- 定制选型技术支持
其他制造商资源
- Xylem/Bell & Gossett:System Syzer Web 工具
- Armstrong:Pump Manager 软件
- Wilo:Wilo-Select 在线选型
- Sulzer:Blue Box 在线配置器
- Pentair:AquaSuite 选型软件
- Ebara:E-COMS 选型软件
网页抓取注意事项
法律与道德方面的注意事项
抓取制造商网站之前:
- 查看服务条款(ToS)
- 检查 robots.txt 限制
- 遵守速率限制
- 考虑申请 API 访问权限
- 确认数据使用是否符合许可要求
技术方法
PDF 解析:
# Extract curve data from PDF datasheets
import pdfplumber
import re
import numpy as np
# Digitize performance curves from images
from scipy.interpolate import interp1d
网页抓取工具:
- 使用 BeautifulSoup 解析 HTML
- 使用 Selenium 处理大量依赖 JavaScript 的网站
- 使用 Requests 访问类似 API 的接口
- 使用 Tabula 提取 PDF 表格
挑战:
- 动态内容加载
- 身份验证要求
- CAPTCHA 验证系统
- 网站结构频繁变化
- 数据以图像格式提供,需要进行 OCR 或数字化处理
API 访问
商业 API
大多数主要制造商不提供公共 API。访问 API 通常需要:
- 合作协议:OEM 或经销商合作关系
- 企业许可:大规模采购协议
- 软件集成:使用制造商 SDK 构建应用程序
替代数据源
第三方聚合平台:
- 泵选型软件(例如 Selecore、PumpBase)
- 行业数据库(需要订阅)
- 工程软件集成(AFT、PIPE-FLO)
开放数据项目:
- 研究机构
- 大学泵数据库
- 社区贡献的库
数据格式与解析
典型泵数据结构
{
"model": "CR 10-5",
"manufacturer": "Grundfos",
"type": "Vertical Multistage Centrifugal",
"impeller_diameter": 116, # mm
"speed": 2900, # rpm
"stages": 5,
"performance_curve": {
"flow": [0, 2, 4, 6, 8, 10, 12], # m³/h
"head": [48, 47, 45, 42, 38, 32, 24], # m
"efficiency": [0, 45, 62, 70, 72, 68, 55], # %
"power": [0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.7] # kW
},
"npsh_required": {
"flow": [0, 2, 4, 6, 8, 10, 12],
"npsh": [0.5, 0.6, 0.8, 1.2, 1.8, 2.6, 3.6] # m
},
"specifications": {
"min_flow": 0, # m³/h
"max_flow": 12, # m³/h
"max_head": 48, # m
"max_pressure": 16, # bar
"max_temperature": 120, # °C
"connection_size": "DN 32/25",
"materials": {
"casing": "Cast Iron",
"impeller": "Stainless Steel",
"shaft": "Stainless Steel"
}
}
}
解析表格数据
从 Excel/CSV 中:
import pandas as pd
# Read manufacturer data export
df = pd.read_excel('pump_data.xlsx', sheet_name='Performance')
# Extract curve data
flow = df['Flow_m3h'].values
head = df['Head_m'].values
efficiency = df['Efficiency_pct'].values
从 PDF 表格中:
import tabula
# Extract tables from PDF
tables = tabula.read_pdf('datasheet.pdf', pages='all')
performance_data = tables[0] # First table
曲线数字化
手动数字化:
- 使用 WebPlotDigitizer(https://automeris.io/WebPlotDigitizer/)
- 将坐标导出为 CSV
- 导入 Python/Excel
自动化方法:
# Image processing for curve extraction
import cv2
from skimage import morphology
import matplotlib.pyplot as plt
# Read curve image
img = cv2.imread('pump_curve.png', 0)
# Threshold and extract curve points
# (Implementation depends on image quality)
创建自定义泵数据库
数据库结构
SQLite 数据库示例:
CREATE TABLE manufacturers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
website TEXT
);
CREATE TABLE pump_models (
id INTEGER PRIMARY KEY,
manufacturer_id INTEGER,
model_number TEXT NOT NULL,
pump_type TEXT,
speed_rpm INTEGER,
stages INTEGER,
impeller_diameter_mm REAL,
FOREIGN KEY (manufacturer_id) REFERENCES manufacturers(id)
);
CREATE TABLE performance_curves (
id INTEGER PRIMARY KEY,
pump_id INTEGER,
flow_m3h REAL,
head_m REAL,
efficiency_pct REAL,
power_kw REAL,
npsh_m REAL,
FOREIGN KEY (pump_id) REFERENCES pump_models(id)
);
CREATE TABLE specifications (
id INTEGER PRIMARY KEY,
pump_id INTEGER,
spec_name TEXT,
spec_value TEXT,
spec_unit TEXT,
FOREIGN KEY (pump_id) REFERENCES pump_models(id)
);
JSON 数据库格式
{
"database_version": "1.0",
"last_updated": "2025-11-07",
"manufacturers": [
{
"id": "grundfos",
"name": "Grundfos",
"pumps": [
{
"model": "CR 10-5",
"type": "vertical_multistage",
"performance": { ... },
"specifications": { ... }
}
]
}
]
}
以编程方式添加泵数据
import sqlite3
import json
class PumpDatabase:
def __init__(self, db_path='pump_database.db'):
self.conn = sqlite3.connect(db_path)
self.create_tables()
def add_pump(self, manufacturer, model, pump_type, curve_data, specs):
"""Add a new pump to the database"""
cursor = self.conn.cursor()
# Get or create manufacturer
cursor.execute(
"INSERT OR IGNORE INTO manufacturers (name) VALUES (?)",
(manufacturer,)
)
cursor.execute(
"SELECT id FROM manufacturers WHERE name = ?",
(manufacturer,)
)
mfg_id = cursor.fetchone()[0]
# Insert pump model
cursor.execute("""
INSERT INTO pump_models
(manufacturer_id, model_number, pump_type, speed_rpm, stages)
VALUES (?, ?, ?, ?, ?)
""", (mfg_id, model, pump_type,
specs.get('speed'), specs.get('stages')))
pump_id = cursor.lastrowid
# Insert performance curve points
for i, flow in enumerate(curve_data['flow']):
cursor.execute("""
INSERT INTO performance_curves
(pump_id, flow_m3h, head_m, efficiency_pct, power_kw)
VALUES (?, ?, ?, ?, ?)
""", (pump_id, flow, curve_data['head'][i],
curve_data['efficiency'][i], curve_data['power'][i]))
self.conn.commit()
添加专有泵数据
数据收集方法
-
制造商数据表:
- 下载 PDF 数据表
- 提取曲线数据(必要时进行数字化)
- 记录规格参数
-
工厂测试数据:
- 见证测试报告
- 性能验证数据
- 实际性能与保证性能对比
-
现场测量数据:
- 已安装泵的性能
- 在役效率
- 性能退化跟踪
-
定制/改装泵:
- 切削后的叶轮
- VFD 在不同转速下运行
- 特殊配置
数据整理
# Directory structure for proprietary data
proprietary_pumps/
├── manufacturer_name/
│ ├── model_series/
│ │ ├── model_variant_1.json
│ │ ├── model_variant_2.json
│ │ └── datasheets/
│ │ ├── model_variant_1.pdf
│ │ └── model_variant_2.pdf
│ └── metadata.json
└── custom_pumps/
├── project_name/
│ ├── pump_1.json
│ └── test_data.csv
└── metadata.json
泵数据的版本控制
# Include metadata for tracking
{
"model": "CR 10-5",
"data_version": "2.1",
"last_updated": "2025-11-07",
"source": "Grundfos Product Center 2025",
"verified": true,
"verification_date": "2025-10-15",
"notes": "Updated efficiency curve based on factory test data"
}
最佳实践
-
数据验证:
- 确认曲线数据符合物理规律
- 检查是否存在不连续或错误
- 尽可能与多个来源的数据进行比较
-
单位管理:
- 使用统一单位存储数据(优先使用 SI)
- 记录单位约定
- 提供单位换算工具
-
插值:
- 查询曲线时使用适当的插值方法
- 避免超出曲线范围进行外推
- 标注插值数据点与实际数据点
-
更新与维护:
- 跟踪制造商更新
- 对数据库更改进行版本控制
- 归档已弃用的型号
-
文档:
- 规范标注所有数据来源
- 记录假设和限制
- 为关键选型保留审计跟踪记录
示例工作流
泵选型工作流
- 定义需求:流量、扬程、流体性质
- 查询数据库:搜索合适的泵
- 筛选结果:按类型、尺寸、效率筛选
- 评估性能:检查曲线上的工作点
- 验证 NPSH:确保吸入条件充足
- 查看规格参数:材料、温度和压力等级
- 生成报告:记录选型依据
数据库维护工作流
- 监控制造商更新:检查是否有新型号/数据
- 下载新数据:获取最新数据表
- 解析并验证:提取并验证曲线数据
- 更新数据库:添加新型号,更新现有型号
- 版本控制:提交更改并附上说明
- 通知用户:记录重大更改
局限性和注意事项
- 制造商数据的版权:尊重知识产权
- 数据准确性:关键选型需向制造商核实
- 公差:公布的曲线存在制造公差
- 运行条件:曲线适用于特定流体(通常为水)
- 特定应用:特殊应用请咨询制造商
- 保修影响:非官方数据可能导致保修失效
相关技能
pump-curves:处理性能曲线pump-selection:系统化泵选型流程hydraulic-analysis:系统曲线和工作点分析npsh-analysis:净正吸入压头计算
评论
支持 Markdown