# equipment-crawler **Repository Path**: ruogu-coder/equipment-crawler ## Basic Information - **Project Name**: equipment-crawler - **Description**: 11111111111111111111111111 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-01 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能制造设备维护分析与预测系统 ## 项目简介 本项目是一个基于 Python 的智能制造设备维护分析与预测系统。通过 **网络爬虫技术** 从本地数据源网页采集设备运行数据,结合 **机器学习算法** 进行故障预测和维护优化,实现对工业设备的智能化运维管理。 ### 核心亮点 - 🕷️ **真实爬虫采集** - 使用 BeautifulSoup 从 HTML 数据源页面爬取数据 - 🤖 **机器学习预测** - 随机森林模型预测设备故障时间 - 📊 **可视化分析** - 丰富的图表展示设备状态和分析结果 - 📈 **健康指数体系** - 多维度传感器数据综合评估设备健康状态 ## 功能模块 ### 1. 数据采集 (data_crawler.py) - 启动本地 Web 服务器托管数据源页面 - 使用 BeautifulSoup + requests 爬取 HTML 表格数据 - 自动解析设备信息、传感器数据、故障记录、维护记录 - 支持端口自动切换,避免端口冲突 ### 2. 数据预处理 (data_preprocessing.py) - **异常值处理** - IQR 方法检测和修复传感器异常值 - **健康指数构建** - 基于多传感器加权计算设备综合健康指数 - **故障模式识别** - K-Means 聚类识别故障前传感器特征模式 - **时序特征提取** - 提取趋势、峰值、变化率等时序统计特征 ### 3. 数据分析 (data_analysis.py) - **性能退化分析** - 线性回归分析健康指数退化趋势 - **预警信号识别** - 隔离森林检测异常传感器状态 - **维护策略探索** - 分析维护频率、效果和成本效益 - **剩余寿命预估** - 基于退化速率估算 RUL ### 4. 数据可视化 (data_visualization.py) - 设备运行状态监控图(温度、振动、压力、电流、转速) - 故障分布饼图(类型、严重程度、设备分布) - 维护效果对比柱状图 - 设备健康状态热力图 - 传感器数据相关性分析图 ### 5. 预测与建议 (prediction.py) - **故障预测模型** - 随机森林分类器预测是否会发生故障 - **故障时间预测** - 随机森林回归器预测距离故障的小时数 - **维护计划优化** - 根据风险等级自动生成维护计划 - **效率提升分析** - 估算预测性维护带来的成本节约 ## 项目结构 ``` equipment-crawler/ ├── main.py # 主程序入口(交互式菜单) ├── config.py # 全局配置(阈值、路径、参数) ├── web_server.py # 本地 Web 服务器 ├── data_crawler.py # 网页爬虫模块 ⭐ ├── data_preprocessing.py # 数据预处理模块 ├── data_analysis.py # 数据分析模块 ├── data_visualization.py # 数据可视化模块 ├── prediction.py # 预测与建议模块 ├── generate_html.py # HTML 数据源生成工具 ├── requirements.txt # Python 依赖包 ├── .gitignore # Git 忽略配置 ├── README.md # 项目说明文档 ├── web/ # 数据源网页目录 │ └── index.html # 设备数据 HTML 页面 ⭐ ├── data/ # 数据目录 │ ├── raw/ # 爬取的原始数据 (CSV) │ └── processed/ # 预处理后数据 (CSV) └── output/ # 输出目录 ├── figures/ # 可视化图表 (PNG) └── reports/ # 分析报告 (Markdown) ``` ## 快速开始 ### 环境要求 - Python 3.8+ - Windows / Linux / MacOS ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 运行程序 **方式一:使用 Jupyter Notebook(推荐)** ```bash jupyter notebook 智能制造设备维护分析系统.ipynb ``` **方式二:命令行运行** ```bash python main.py ``` ### 3. 选择功能 ``` ============== 智能制造设备维护分析与预测系统 ============== 请选择运行模式: [1] 完整运行 (数据采集 → 预处理 → 分析 → 可视化 → 预测) [2] 仅数据采集 (从HTML爬取数据) [3] 仅数据预处理 [4] 仅数据分析 [5] 仅数据可视化 [6] 仅预测与建议 [7] 启动数据源Web服务器 [0] 退出 请输入选项 [0-7]: ``` ### 4. 查看结果 - **图表**: `output/figures/` 目录 - **报告**: `output/reports/` 目录 - **数据**: `data/processed/` 目录 ## 输出文件 ### 图表输出 (output/figures/) | 文件名 | 说明 | |--------|------| | 设备运行状态监控图_EQ*.png | 各设备多传感器监控仪表板 | | 故障分布饼图.png | 故障类型、严重程度分布 | | 维护效果对比柱状图.png | 维护类型成本与效果对比 | | 设备健康状态热力图.png | 全设备健康指数时序热力图 | | 传感器相关性分析图.png | 传感器参数相关性矩阵 | | 特征重要性分析图.png | 故障预测模型特征重要性 | | 设备效率提升对比图.png | 优化前后利用率对比 | ### 报告输出 (output/reports/) | 文件名 | 说明 | |--------|------| | analysis_report.md | 设备性能退化与预警分析报告 | | prediction_report.md | 故障预测与维护优化建议报告 | ### 数据输出 (data/) | 目录 | 文件 | 说明 | |------|------|------| | raw/ | equipment_info.csv | 设备基本信息 | | raw/ | sensor_data.csv | 传感器原始数据 | | raw/ | fault_records.csv | 故障记录 | | raw/ | maintenance_records.csv | 维护记录 | | processed/ | sensor_processed.csv | 预处理后传感器数据 | | processed/ | health_scores.csv | 设备健康指数 | | processed/ | fault_patterns.csv | 故障模式特征 | | processed/ | time_series_features.csv | 时序统计特征 | ## 技术栈 | 类别 | 技术 | |------|------| | **Web 爬虫** | requests, BeautifulSoup4, lxml | | **数据处理** | pandas, numpy, scipy | | **机器学习** | scikit-learn (RandomForest, IsolationForest, KMeans) | | **数据可视化** | matplotlib, seaborn | | **Web 服务** | http.server (Python 内置) | ## 核心算法 | 算法 | 应用场景 | 模块 | |------|----------|------| | IQR 异常检测 | 传感器数据清洗 | data_preprocessing.py | | K-Means 聚类 | 故障模式识别 | data_preprocessing.py | | 隔离森林 | 异常状态预警 | data_analysis.py | | 线性回归 | 退化趋势分析 | data_analysis.py | | Savitzky-Golay 滤波 | 时序数据平滑 | data_analysis.py | | 随机森林分类器 | 故障发生预测 | prediction.py | | 随机森林回归器 | 故障时间预测 | prediction.py | ## 数据说明 本项目使用 **本地 HTML 数据源** 模拟真实工业数据中心: | 项目 | 说明 | |------|------| | 设备数量 | 10 台 (EQ001 - EQ010) | | 设备类型 | 数控机床、工业机器人、注塑机、压铸机、冲压机 | | 数据时间跨度 | 近 30 天(基于当前日期动态生成) | | 传感器采样 | 每台设备每天 12 个采样点 | | 传感器参数 | 温度、振动、压力、电流、转速 | | 故障类型 | 电气故障、机械故障、液压故障、温度异常、振动异常、磨损故障 | | 维护类型 | 预防性维护、纠正性维护、预测性维护、紧急维修 | ### 更新数据源 如需生成新的数据,运行: ```bash python generate_html.py ``` 这将根据当前日期生成近 30 天的模拟数据到 `web/index.html`。 ## 工作流程 ``` ┌─────────────────┐ │ web/index.html │ ← HTML 数据源页面 └────────┬────────┘ │ 爬虫采集 ▼ ┌─────────────────┐ │ data_crawler │ → data/raw/*.csv └────────┬────────┘ │ 预处理 ▼ ┌─────────────────┐ │ data_preprocess │ → data/processed/*.csv └────────┬────────┘ │ ┌────┴────┐ ▼ ▼ ┌───────┐ ┌───────────┐ │分析 │ │可视化 │ → output/figures/*.png └───┬───┘ └───────────┘ │ ▼ ┌─────────────────┐ │ prediction │ → output/reports/*.md └─────────────────┘ ``` ## 注意事项 1. **首次运行** 请选择完整运行(选项 1),确保数据采集和预处理完成 2. **中文显示** 需安装 SimHei 或 Microsoft YaHei 字体 3. **端口占用** Web 服务器默认使用 8000 端口,如被占用会自动切换 4. **数据依赖** 各模块有依赖关系,需按顺序执行或使用完整运行 ## 扩展开发 ### 添加新的传感器类型 1. 修改 `config.py` 中的 `SENSOR_THRESHOLDS` 和 `HEALTH_WEIGHTS` 2. 更新 `generate_html.py` 生成对应数据 3. 在各模块中添加新传感器的处理逻辑 ### 接入真实数据源 1. 修改 `data_crawler.py` 中的 URL 和解析逻辑 2. 或直接将 CSV 数据放入 `data/raw/` 目录