mcpField
P
pump-performance-db

pump-performance-db

github.com/soljourner其他9539 次安装51 周前更新
代码仓库

关于 pump-performance-db

pump-performance-db 是面向泵选型与分析的技能,介绍如何查询制造商泵曲线和规格、解析数据并建立自定义泵库。内容涵盖数据获取、曲线数字化及维护实践。

主要功能

  1. 01查询制造商泵曲线与规格
  2. 02解析 PDF、Excel 和 CSV 数据
  3. 03数字化性能曲线
  4. 04创建自定义泵数据库
  5. 05验证并维护泵数据

适用场景

  1. 01按流量和扬程筛选泵型
  2. 02从产品数据表提取曲线
  3. 03整理专有泵数据
  4. 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

网站:https://www.flowserve.com/

功能:

  • 工业泵选型
  • 定制设计泵
  • 丰富的 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 通常需要:

  1. 合作协议:OEM 或经销商合作关系
  2. 企业许可:大规模采购协议
  3. 软件集成:使用制造商 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
曲线数字化

手动数字化:

自动化方法:

# 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()

添加专有泵数据

数据收集方法
  1. 制造商数据表:

    • 下载 PDF 数据表
    • 提取曲线数据(必要时进行数字化)
    • 记录规格参数
  2. 工厂测试数据:

    • 见证测试报告
    • 性能验证数据
    • 实际性能与保证性能对比
  3. 现场测量数据:

    • 已安装泵的性能
    • 在役效率
    • 性能退化跟踪
  4. 定制/改装泵:

    • 切削后的叶轮
    • 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"
}

最佳实践

  1. 数据验证:

    • 确认曲线数据符合物理规律
    • 检查是否存在不连续或错误
    • 尽可能与多个来源的数据进行比较
  2. 单位管理:

    • 使用统一单位存储数据(优先使用 SI)
    • 记录单位约定
    • 提供单位换算工具
  3. 插值:

    • 查询曲线时使用适当的插值方法
    • 避免超出曲线范围进行外推
    • 标注插值数据点与实际数据点
  4. 更新与维护:

    • 跟踪制造商更新
    • 对数据库更改进行版本控制
    • 归档已弃用的型号
  5. 文档:

    • 规范标注所有数据来源
    • 记录假设和限制
    • 为关键选型保留审计跟踪记录

示例工作流

泵选型工作流
  1. 定义需求:流量、扬程、流体性质
  2. 查询数据库:搜索合适的泵
  3. 筛选结果:按类型、尺寸、效率筛选
  4. 评估性能:检查曲线上的工作点
  5. 验证 NPSH:确保吸入条件充足
  6. 查看规格参数:材料、温度和压力等级
  7. 生成报告:记录选型依据
数据库维护工作流
  1. 监控制造商更新:检查是否有新型号/数据
  2. 下载新数据:获取最新数据表
  3. 解析并验证:提取并验证曲线数据
  4. 更新数据库:添加新型号,更新现有型号
  5. 版本控制:提交更改并附上说明
  6. 通知用户:记录重大更改

局限性和注意事项

  • 制造商数据的版权:尊重知识产权
  • 数据准确性:关键选型需向制造商核实
  • 公差:公布的曲线存在制造公差
  • 运行条件:曲线适用于特定流体(通常为水)
  • 特定应用:特殊应用请咨询制造商
  • 保修影响:非官方数据可能导致保修失效

相关技能

  • pump-curves:处理性能曲线
  • pump-selection:系统化泵选型流程
  • hydraulic-analysis:系统曲线和工作点分析
  • npsh-analysis:净正吸入压头计算

评论

支持 Markdown