# 零碳智慧管控平台 **Repository Path**: hedgerow/energy_control_system ## Basic Information - **Project Name**: 零碳智慧管控平台 - **Description**: 太阳能多维联供能源系统零碳智慧管控平台是面向太阳能富集区的零碳建筑场景,运用先进的负荷、能耗与碳排放预测模型和热电设备分布式控制技术,实现在源荷随机波动条件下,集、蓄、用多段智慧能源系统管控平台的开发。该平台具有可视化展示、机电设备监控、用能统计、能耗预测、碳排放、能源成本等模块,能够实现用能统计分析、预测评估分析、设备运行控制、优化调度决策等功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-24 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 太阳能多维联供能源系统零碳智慧管控平台 ## 项目介绍 太阳能多维联供能源系统零碳智慧管控平台是面向太阳能富集区的零碳建筑场景,运用先进的负荷、能耗与碳排放预测模型和热电设备分布式控制技术,实现在源荷随机波动条件下,集、蓄、用多段智慧能源系统管控平台的开发。 该平台采用前后端分离架构,后端使用Python Flask框架提供RESTful API服务,前端使用现代化的HTML/CSS/JavaScript技术栈,结合Chart.js实现丰富的数据可视化功能。 ## 核心功能模块 ### 1. 角色管理与权限控制 - **多角色支持**:支持管理员(manager)和普通用户(user)两种角色 - **角色切换功能**:管理员可以临时切换到普通用户视图,体验大屏界面 - **权限控制**:基于角色的页面访问控制,确保数据安全 - **登录重定向**:根据用户角色自动跳转到对应界面 ### 2. 能源运行态势大屏 - **全屏可视化**:专为普通用户设计的全屏能源监控界面 - **关键指标展示**:实时显示总用电量、总用热量、碳排放总量、能源成本等关键指标 - **趋势图表**:能源消耗趋势图、能源构成分析图、碳排放趋势图 - **实时数据更新**:支持30秒自动刷新,确保数据实时性 - **全屏切换**:支持进入/退出全屏模式,优化观看体验 - **角色切换**:管理员可快速返回管理界面 ### 3. 能源概览模块 - **总览仪表盘**:展示系统整体能源消耗概览,包括总用电量、总用热量、碳排放总量和能源成本等关键指标 - **趋势分析**:支持同比、环比数据分析,提供能源消耗趋势可视化 - **实时监控**:实时显示能源系统运行状态和关键性能指标 - **能源构成**:展示不同类型能源的占比情况,包括太阳能、传统能源等 ### 4. 能耗统计模块 - **能源趋势图**:展示能源消耗的时间趋势变化,支持日、周、月、全部时间范围选择 - **负荷分析构成图**:展示不同类型能源的占比情况,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源统计数据 - **报表导出**:支持将能源统计数据导出为报表格式 ### 5. 能耗预测模块 - **能耗预测图**:展示未来能源消耗的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能耗预测数据 - **报表导出**:支持将能耗预测数据导出为报表格式 ### 6. 碳排放模块 - **碳排放趋势图**:展示碳排放量的时间趋势变化,支持日、周、月、全部时间范围选择 - **碳排放预测图**:展示未来碳排放量的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看碳排放数据 - **报表导出**:支持将碳排放数据导出为报表格式 ### 7. 能源成本模块 - **能源成本图**:展示能源成本的时间趋势变化,支持日、周、月、全部时间范围选择 - **电价图**:展示电价的时间趋势变化,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源成本数据 - **报表导出**:支持将能源成本数据导出为报表格式 ### 8. 能源负荷模块 - **能源负荷预测图**:展示能源负荷的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源负荷数据 - **报表导出**:支持将能源负荷数据导出为报表格式 ### 9. 电价管理模块 - **价格监控**:监控和分析电价变化趋势,支持峰谷电价分析 - **电价预测**:提供电价预测功能,优化用电策略降低成本 - **购售电分析**:分析购电价格和售电价格数据 - **成本优化**:基于电价策略优化能源使用成本 ### 10. 热泵监控模块 - **设备状态**:监控热泵设备运行状态和性能参数 - **制热量监控**:实时显示热泵制热量数据和趋势 - **效率分析**:提供热泵效率分析(COP值),监控热泵性能系数 - **温度监控**:监控热泵温度输出数据,支持运行参数优化 - **性能评估**:热泵设备性能评估和优化建议 ### 11. 光伏设备模块 - **发电监控**:监控光伏发电功率和发电量数据 - **效率分析**:分析光伏设备发电效率和性能 - **功率趋势**:展示光伏发电功率变化趋势 - **热功率监控**:监控光伏热功率输出情况 - **系统性能**:光伏系统整体性能评估 - **光伏热效率**:监控光伏热效率和温度数据 ### 12. 水泵监控模块 - **性能监控**:监控水泵性能数据,包括流量、扬程、功率等参数 - **效率分析**:分析水泵运行效率和性能曲线 - **功率流量**:展示水泵功率-流量关系图表 - **状态监控**:实时监控水泵运行状态和参数 - **水泵状态图表**:可视化展示水泵运行状态 ### 13. 电力调度模块 - **优化调度**:电力系统优化调度,提供电力负荷分析 - **调度计划**:创建和管理电力调度计划 - **策略优化**:支持电力调度策略优化,实现电力系统经济运行 - **实时控制**:电力系统实时调度和控制功能 ### 14. 热力调度模块 - **热力优化**:热力系统优化调度,提供热负荷分析 - **调度管理**:创建和管理热力调度计划 - **策略制定**:支持热力调度策略优化,实现热力系统高效运行 - **系统协调**:热力系统与其他能源系统的协调控制 ### 15. 储能系统监控模块 - **电池健康**:监控电池系统健康状态和性能参数 - **SOC监控**:实时显示电池荷电状态(SOC)数据和趋势 - **功率监控**:监控电池充放电功率数据和趋势 - **效率分析**:分析电池系统运行效率和性能 ### 16. 热储能系统监控模块 - **热储效率**:监控热储能系统效率和性能参数 - **热量监控**:实时显示热储能系统热量数据和趋势 - **温度监控**:监控热储能系统温度数据和趋势 - **性能评估**:热储能系统性能评估和优化建议 ### 17. 设备监控模块 - **设备状态概览**:监控热泵、水泵等关键机电设备运行状态,包括运行中设备、待机设备和故障设备的数量和比例 - **设备详细列表**:展示各类设备(空气源热泵、水泵、光伏发电设备、光伏制热设备、蓄电池、储热罐等)的详细运行状态、能耗数据和操作入口 - **设备参数图表**:根据设备类型动态显示相应参数图表,包括热泵制热量、温度输出、COP值,水泵功率流、效率,光伏发电功率、能量、效率,电池SOC、功率、健康状态,储热罐温度、热量、效率等 - **设备控制面板**:提供设备远程控制和参数调整功能,支持设备启停、运行模式切换、参数设定等操作 ## 技术栈 ### 后端技术栈 - **编程语言**: Python 3.12 - **Web框架**: Flask 2.2.5 (轻量级Web应用框架) - **数据库**: MySQL 8.0+ (关系型数据库) - **API设计**: RESTful API架构 - **数据交互**: JSON格式数据交换 #### 主要依赖库 - **数据库连接**: pymysql 1.1.0 (MySQL数据库连接驱动) - **数据处理**: pandas 2.2.2 (强大的数据分析和处理库) - **数值计算**: numpy 1.26.4 (科学计算和数值处理) - **跨域支持**: flask-cors 4.0.0 (跨域资源共享支持) - **日期处理**: datetime (内置日期时间处理) - **数学计算**: math (内置数学函数库) ### 前端技术栈 - **核心语言**: HTML5, CSS3, JavaScript (ES6+) - **构建工具**: Vite 5.4.19 (现代化构建工具) - **UI框架**: Tailwind CSS 3.3.5 (实用优先的CSS框架) - **图表可视化**: Chart.js 4.4.8 (强大的图表库) - **HTTP客户端**: axios 1.10.0 (Promise-based HTTP客户端) - **图标库**: Font Awesome 4.7.0 (矢量图标库) - **组件化**: Web Components (自定义元素组件) #### 前端特性 - **响应式设计**: 支持桌面端和移动端自适应 - **模块化开发**: 组件化架构,代码可复用性强 - **实时数据**: 支持实时数据更新和图表刷新 - **交互体验**: 丰富的用户交互和可视化效果 - **性能优化**: 代码分割和懒加载优化 ## 系统架构设计 本项目采用现代化的前后端分离架构设计,遵循分层架构原则,确保系统的高可维护性、可扩展性和高性能。 ### 整体架构 太阳能多维联供能源系统零碳智慧管控平台采用分层架构设计,自底向上分为基础设施层、数据层、业务逻辑层、服务层和表现层,各层职责清晰,相互独立又紧密协作。 ``` +--------------------------------------------------+ | 表现层 (前端) | | (HTML/CSS/JavaScript, Chart.js, Tailwind CSS) | +--------------------------------------------------+ | 服务层 (API) | | (Flask Blueprint 路由管理) | +--------------------------------------------------+ | 业务逻辑层 (Services) | | (能源概览、能耗统计、碳排放、能源成本等业务处理) | +--------------------------------------------------+ | 数据访问层 (Models) | | (数据模型定义与数据库交互) | +--------------------------------------------------+ | 数据层 (Database) | | (MySQL 数据存储) | +--------------------------------------------------+ | 基础设施层 (Infrastructure) | | (服务器、网络、操作系统等) | +--------------------------------------------------+ ``` ### 后端架构 后端采用清晰的分层设计,主要分为以下几个层次: #### 1. 路由层(Routes) - **职责**: 处理HTTP请求,调用相应的服务层处理业务逻辑,并返回响应结果 - **技术**: 采用Flask Blueprint机制进行模块化管理 - **特点**: 每个功能模块有独立的路由文件,便于维护和扩展 - **功能**: 请求验证、参数解析、响应格式化 #### 2. 服务层(Services) - **职责**: 处理核心业务逻辑,包括数据处理、计算和转换等 - **特点**: 每个功能模块有对应的服务类,提供清晰的业务接口 - **功能**: 数据聚合、业务计算、异常处理、事务管理 #### 3. 数据访问层(Models) - **职责**: 与数据库交互,执行数据的增删改查操作 - **技术**: 使用pymysql进行数据库操作 - **特点**: 提供统一的数据访问接口,封装数据库操作细节 - **功能**: SQL查询执行、数据映射、连接管理 #### 4. 工具层(Utils) - **职责**: 提供通用的工具函数和辅助功能 - **包含**: 数据库连接管理、数据导入导出、通用计算函数 - **特点**: 可复用性强,减少代码冗余 ### 前端架构 前端采用现代化的组件化设计,经过重构后实现了更好的代码组织和维护性。主要分为以下几个部分: #### 1. 页面层(Pages) - **包含**: 各个功能模块的页面组件 - **页面**: 仪表盘(dashboard)、设备监控(equipment)、用能统计(statistics)、能耗预测(prediction)、碳排放(carbon)、能源成本(cost)、能源负荷(energyload)、能源运行态势大屏(bigscreen)等 - **特点**: 每个页面独立开发,便于维护和测试 #### 2. 脚本层(Scripts)- 重构后 - **架构优化**: 实现了HTML与JavaScript的完全分离,提高代码可维护性 - **专用脚本**: 每个页面都有对应的专用脚本文件,便于功能扩展和调试 - **事件管理**: 使用事件监听器替代内联onclick属性,提高代码质量 - **模块化**: 脚本文件按功能模块组织,支持代码复用 #### 3. 角色管理实现 - **登录认证**: 基于用户角色(manager/user)的登录重定向机制 - **权限控制**: 页面访问权限验证,确保数据安全 - **角色切换**: 管理员可临时切换到用户视图,体验大屏界面 - **状态管理**: 使用localStorage存储用户角色和登录状态 - **无缝切换**: 角色切换时保持用户身份信息,支持快速返回 #### 2. 组件层(Components) - **包含**: 可复用的UI组件和图表组件 - **UI组件**: 导航栏(Navbar)、面包屑(Breadcrumb)等 - **图表组件**: 能源趋势图(EnergyTrendChart)、碳排放图(CarbonEmissionChart)、成本分析图(EnergyCostChart)、设备性能图(HeatPumpCopChart、PvEfficiencyChart、WaterPumpEfficiencyChart)等 - **特点**: 高度可复用,支持自定义配置 #### 3. 工具层(Utils) - **包含**: 前端工具函数和配置管理 - **功能**: 图表配置生成、数据格式化、API调用封装 - **特点**: 工具函数模块化,便于维护和测试 #### 4. 样式层(Styles) - **技术**: Tailwind CSS + 自定义样式 - **特点**: 响应式设计,支持多设备适配 - **功能**: 全局样式管理、主题定义、组件样式 ### 数据库设计 数据库使用MySQL关系型数据库,主要包含以下核心数据表: #### 1. 能源数据表 - **energy_consumption**: 存储能源消耗数据,包括时间戳、用电量、用气量等 - **carbon_data**: 存储碳排放数据,包括时间戳、碳排放量、运行费用等 - **load_prediction_output**: 存储负荷预测输出数据 #### 2. 设备数据表 - **pump_performance_data**: 存储水泵性能数据,包括流量、扬程、功率等 - **air_source_heat_pump_results**: 存储热泵运行结果数据 - **pv_equipment_data**: 存储光伏设备数据 #### 3. 调度数据表 - **power_scheduling_data**: 存储电力调度数据 - **thermal_scheduling_data**: 存储热力调度数据 - **scheduling_plans**: 存储调度计划数据 #### 4. 建筑数据表 - **campus2**: 存储园区建筑能耗数据 - **building_data**: 存储建筑基本信息数据 ### 数据流程 1. **数据采集**: 前端发送HTTP请求到后端API接口 2. **请求处理**: 后端路由层接收请求,进行参数验证和解析 3. **业务处理**: 路由层调用相应的服务层处理业务逻辑 4. **数据访问**: 服务层调用数据访问层获取或更新数据 5. **数据库操作**: 数据访问层与MySQL数据库交互,执行SQL操作 6. **响应返回**: 数据处理完成后,按照相反的顺序返回响应结果给前端 7. **前端渲染**: 前端接收数据后,使用Chart.js进行数据可视化渲染 ## 平台界面说明 ### 整体布局 平台界面采用现代化的响应式设计,整体布局分为顶部导航栏、侧边菜单栏、主内容区和底部页脚四部分,支持多设备自适应显示。 ``` +--------------------------------------------------+ | 顶部导航栏 | +--------+-----------------------------------------+ | | | | 侧边 | 主内容区 | | 菜单 | | | 栏 | | | | | +--------+-----------------------------------------+ | 底部页脚 | +--------------------------------------------------+ ``` ### 顶部导航栏 顶部导航栏包含以下元素: 1. **平台Logo和名称**:显示"太阳能多维联供能源系统零碳智慧管控平台"名称和闪电图标。 2. **搜索框**:提供设备或数据的快速搜索功能。 3. **通知图标**:显示系统通知和提醒。 4. **用户头像**:显示当前登录用户的信息。 5. **移动端菜单按钮**:在小屏幕设备上显示,用于展开或收起侧边菜单。 ### 侧边菜单栏 侧边菜单栏采用固定定位设计,包含以下功能模块: 1. **主菜单**: - 可视化展示:系统首页,展示能源概览和趋势图表。 - 机电设备监控:监控各类机电设备的运行状态和参数。 - 用能统计:提供能源消耗的统计分析和报表。 - 能耗预测:基于历史数据预测未来能源消耗趋势。 - 碳排放:展示碳排放数据和分析报告。 - 能源负荷:监控和分析系统能源负荷情况。 - 能源成本:分析能源使用成本和优化建议。 2. **系统管理**: - 系统设置:平台参数配置和管理。 - 用户管理:用户账户和权限管理。 ### 主内容区 主内容区采用响应式网格布局,根据不同功能模块展示不同的内容: 1. **可视化展示页面**: - 能源概览卡片:展示总用电量、总用气量、碳排放总量和能源成本等关键指标。 - 能源趋势图:展示能源消耗的时间趋势变化。 - 能源构成图:展示不同类型能源的占比情况。 - 碳排放图:展示碳排放的变化趋势。 - 能源预测图:展示未来能源消耗的预测结果。 - 能源成本图:展示能源成本的变化趋势。 - 电价图:展示电价的变化情况。 - 热泵制热量图:展示热泵的制热量数据。 - 热泵COP图:展示热泵的性能系数。 - 热泵温度输出图:展示热泵的温度输出数据。 2. **机电设备监控页面**: - **设备状态概览**:展示运行中设备、待机设备和故障设备的数量和比例,直观显示系统整体设备运行状况 - **设备详细列表**:以表格形式展示各类设备(空气源热泵、水泵、光伏发电设备、光伏制热设备、蓄电池、储热罐等)的详细运行状态、能耗数据和操作入口 - **设备类型筛选**:支持按设备类型(空气源热泵、水泵、光伏发电设备、光伏制热设备、蓄电池、储热罐)筛选查看 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看设备数据 - **设备参数图表**:根据选择的设备类型动态显示相应参数图表,包括: * 热泵设备:制热量图表、温度输出图表、COP值图表 * 水泵设备:功率流图表、效率图表、状态图表 * 光伏发电设备:功率图表、能量图表、效率图表 * 光伏制热设备:热功率图表、热效率图表、温度图表 * 蓄电池设备:SOC图表、功率图表、健康状态图表 * 储热罐设备:温度图表、热量图表、效率图表 - **设备控制面板**:提供设备远程控制和参数调整功能,支持设备启停、运行模式切换、参数设定等操作 - **报表导出**:支持将设备监控数据导出为报表格式 3. **用能统计页面**: - **能源趋势图**:展示能源消耗的时间趋势变化,支持日、周、月、全部时间范围选择 - **负荷分析构成图**:展示不同类型能源的占比情况,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源统计数据 - **报表导出**:支持将能源统计数据导出为报表格式 4. **能耗预测页面**: - **能耗预测图**:展示未来能源消耗的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能耗预测数据 - **报表导出**:支持将能耗预测数据导出为报表格式 5. **碳排放页面**: - **碳排放趋势图**:展示碳排放量的时间趋势变化,支持日、周、月、全部时间范围选择 - **碳排放预测图**:展示未来碳排放量的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看碳排放数据 - **报表导出**:支持将碳排放数据导出为报表格式 6. **能源成本页面**: - **能源成本图**:展示能源成本的时间趋势变化,支持日、周、月、全部时间范围选择 - **电价图**:展示电价的时间趋势变化,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源成本数据 - **报表导出**:支持将能源成本数据导出为报表格式 7. **能源负荷页面**: - **能源负荷预测图**:展示能源负荷的预测结果和趋势,支持日、周、月、全部时间范围选择 - **时间范围选择**:支持按时间范围(今日、本周、本月、全部)筛选查看能源负荷数据 - **报表导出**:支持将能源负荷数据导出为报表格式 ### 底部页脚 底部页脚包含以下信息: 1. **版权信息**:显示"© 2025 西安建筑科技大学. 保留所有权利."。 2. **帮助链接**:提供帮助中心、文档和联系我们等链接。 ### 界面特点 1. **响应式设计**:支持不同屏幕尺寸的设备,包括桌面、平板和手机。 2. **现代化UI**:采用Tailwind CSS框架,界面美观、简洁、易用。 3. **数据可视化**:使用Chart.js库,提供丰富的图表类型和交互功能。 4. **主题定制**:支持自定义主题颜色和样式,满足不同用户的审美需求。 5. **交互友好**:提供流畅的动画效果和直观的用户交互体验。 ## 环境设置 ### 1. 安装依赖 #### 后端依赖 ```bash # 进入backend目录 cd backend # 安装Python依赖 pip install -r requirements.txt ``` #### 前端依赖 ```bash # 进入frontend目录 cd frontend # 安装Node.js依赖 npm install ``` ### 2. MySQL数据库设置 #### 安装MySQL 1. 下载并安装MySQL服务器:[MySQL官方网站](https://www.mysql.com/downloads/) 2. 安装完成后,确保MySQL服务正在运行 #### 配置数据库 1. 打开MySQL命令行或其他数据库管理工具 2. 创建数据库用户(如果需要): ```sql CREATE USER 'root'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 3. 创建数据库: ```sql CREATE DATABASE energy_control_system; USE energy_control_system; ``` #### 配置文件说明 数据库配置信息集中在 `backend/config.py`文件中,主要配置项包括: - host: localhost - user: root - password: 123456 - database: energy_control_system - port: 3306 - charset: utf8mb4 - connect_timeout: 10 如需修改数据库连接配置,请直接编辑 `backend/config.py`文件。 ## 项目部署与运行指南 ### 环境要求 #### 系统要求 - **操作系统**: Windows 10/11, Linux (Ubuntu 18.04+), macOS 10.15+ - **内存**: 最低8GB,推荐16GB - **存储**: 最低10GB可用空间 #### 软件要求 - **Python**: 3.8+ (推荐3.9.7) - **Node.js**: 16.14.0+ (推荐LTS版本) - **MySQL**: 8.0+ (推荐8.0.28) - **Git**: 2.30+ (用于版本控制) ### 快速启动 项目提供了便捷的一键启动脚本,简化部署流程: ```bash # 使用start.bat脚本快速启动(Windows系统) start.bat # 或者手动执行以下步骤 ``` #### 备份与恢复 ```bash # 数据库备份 mysqldump -u energy_user -p energy_control_system > backup_$(date +%Y%m%d).sql # 数据库恢复 mysql -u energy_user -p energy_control_system < backup_file.sql ``` ## 项目结构 ``` energy_control_system/ ├── .gitignore # Git忽略文件配置 ├── README.md # 项目说明文档 ├── backend/ │ ├── app.py # Flask应用主入口 │ ├── config.py # 应用配置文件 │ ├── requirements.txt # Python依赖清单 │ ├── routes/ # API路由层 │ │ ├── __init__.py │ │ ├── battery_routes.py # 电池API路由 │ │ ├── carbon_prediction_routes.py # 碳预测API路由 │ │ ├── carbon_routes.py # 碳排放API路由 │ │ ├── electricity_price_routes.py # 电价API路由 │ │ ├── energy_cost_routes.py # 能源成本API路由 │ │ ├── energy_load_routes.py # 能源负荷API路由 │ │ ├── energy_overview_routes.py # 能源概览API路由 │ │ ├── energy_prediction_routes.py # 能源预测API路由 │ │ ├── energy_statistics_routes.py # 能源统计API路由 │ │ ├── heat_pump_routes.py # 热泵API路由 │ │ ├── heat_storage_tank_routes.py # 热储能API路由 │ │ ├── login_routes.py # 登录API路由 │ │ ├── power_scheduling.py # 电力调度API路由 │ │ ├── pv_equipment_routes.py # 光伏设备API路由 │ │ ├── pv_thermal_routes.py # 光伏热API路由 │ │ ├── thermal_scheduling.py # 热力调度API路由 │ │ └── water_pump_routes.py # 水泵API路由 │ ├── services/ # 业务逻辑层 │ │ ├── __init__.py │ │ ├── battery_service.py # 电池业务逻辑 │ │ ├── carbon_prediction_service.py # 碳预测业务逻辑 │ │ ├── carbon_service.py # 碳排放业务逻辑 │ │ ├── energy_cost_service.py # 能源成本业务逻辑 │ │ ├── energy_load_service.py # 能源负荷业务逻辑 │ │ ├── energy_overview_service.py # 能源概览业务逻辑 │ │ ├── energy_prediction_service.py # 能源预测业务逻辑 │ │ ├── energy_statistics_service.py # 能源统计业务逻辑 │ │ ├── heat_pump_service.py # 热泵业务逻辑 │ │ ├── heat_storage_tank_service.py # 热储能业务逻辑 │ │ ├── login_service.py # 用户登录与权限业务逻辑 │ │ ├── power_scheduling_service.py # 电力调度业务逻辑 │ │ ├── pv_equipment_service.py # 光伏设备业务逻辑 │ │ ├── pv_thermal_service.py # 光伏热业务逻辑 │ │ ├── thermal_scheduling_service.py # 热力调度业务逻辑 │ │ └── water_pump_service.py # 水泵业务逻辑 │ └── utils/ # 工具函数层 │ ├── __init__.py │ ├── database.py # 数据库操作工具 │ ├── database_tools.py # 数据库工具集 │ ├── heat_storage_tank_importer.py # 热储能数据导入工具 │ ├── import_heat_pump_data.py # 热泵数据导入工具 │ └── import_pump_performance_data.py # 水泵性能数据导入工具 ├── data/ # 数据存储层,保留原始数据,实际调用的是MySQL数据库中的数据 │ ├── buildings/ # 建筑数据 │ │ ├── 住宅建筑1数据.xlsx # 住宅建筑1数据 │ │ ├── 住宅建筑2数据.xlsx # 住宅建筑2数据 │ │ ├── 办公建筑数据.xlsx # 办公建筑数据 │ │ ├── 商业建筑1数据.xlsx # 商业建筑1数据 │ │ ├── 商业建筑2数据.xlsx # 商业建筑2数据 │ │ └── 园区2数据.xlsx # 园区2数据 │ ├── out/ # 输出数据 │ │ ├── battery_results/ # 电池运行结果 │ │ │ └── battery_data.csv # 电池数据 │ │ ├── heat_pump_results/ # 热泵运行结果 │ │ │ └── heat_pump_training_data.xlsx # 热泵训练数据 │ │ ├── heat_storage_tank_results/ # 热储能运行结果 │ │ │ └── heat_storage_tank.csv # 热储能数据 │ │ ├── optimal_scheduling_results/ # 最优调度结果 │ │ │ ├── power_scheduling_result.json # 电力调度结果 │ │ │ └── thermal_scheduling_result.json # 热力调度结果 │ │ ├── photovoltaic_heating_results/ # 光伏加热结果 │ │ │ └── pv_thermal_dataset.xlsx # 光伏热数据集 │ │ ├── photovoltaic_power_results/ # 光伏发电结果 │ │ │ └── PV_Dataset.csv # 光伏数据集 │ │ ├── prediction_results/ # 预测结果数据 │ │ │ ├── carbon_prediction_output.json # 碳预测输出 │ │ │ ├── energy_prediction_output.json # 能源预测输出 │ │ │ └── load_prediction_output.json # 负荷预测输出 │ │ ├── solar_collector_results/ # 太阳能集热器结果 │ │ │ ├── PV_System_Data_20250918_110854.xlsx # 光伏系统数据 │ │ │ └── Solar_Collector_Data_20250918_105749.xlsx # 太阳能集热器数据 │ │ └── water_pump_results/ # 水泵运行结果 │ │ ├── efficiency_flow_curve.json # 效率流量曲线 │ │ ├── head_flow_curve.json # 扬程流量曲线 │ │ ├── power_flow_curve.json # 功率流量曲线 │ │ ├── power_prediction_analysis.json # 功率预测分析 │ │ ├── pump_charts_data.json # 泵图表数据 │ │ └── pump_performance_data.csv # 泵性能数据 │ ├── raw/ # 原始数据 │ │ └── power_scheduling_data.json # 电力调度原始数据 │ └── 未使用/ # 未使用的数据文件 │ ├── HeatPump_1.csv # 热泵数据1 │ ├── HeatPump_2.csv # 热泵数据2 │ ├── OptimizeData_1.csv # 优化数据1 │ ├── OptimizeData_2.csv # 优化数据2 │ ├── PT_Dataset.csv # PT数据集 │ ├── energy.csv # 能源数据 │ ├── environmental_energy_data.csv # 环境能源数据 │ └── solar_heatPump_system_data.xlsx # 太阳能热泵系统数据 ├── frontend/ │ ├── public/ # 静态资源目录 │ │ └── favicon.png # 网站图标 │ ├── src/ # 前端源代码 │ │ ├── components/ # 可复用组件 │ │ │ ├── Breadcrumb/ # 面包屑组件 │ │ │ │ ├── Breadcrumb.js # 面包屑主组件 │ │ │ │ └── index.js # 组件导出文件 │ │ │ ├── Chart/ # 图表组件 │ │ │ │ ├── BatteryHealthChart.js # 电池健康图表组件 │ │ │ │ ├── BatteryPowerChart.js # 电池功率图表组件 │ │ │ │ ├── BatterySocChart.js # 电池SOC图表组件 │ │ │ │ ├── BatteryVitChart.js # 电池电压电流温度图表组件 │ │ │ │ ├── CarbonEmissionChart.js # 碳排放图表组件 │ │ │ │ ├── CarbonPredictionChart.js # 碳排放预测图表组件 │ │ │ │ ├── ElectricityPriceChart.js # 电价图表组件 │ │ │ │ ├── EnergyCompositionChart.js # 能源构成图表组件 │ │ │ │ ├── EnergyCostChart.js # 能源成本图表组件 │ │ │ │ ├── EnergyLoadChart.js # 能源负荷图表组件 │ │ │ │ ├── EnergyPredictionChart.js # 能源预测图表组件 │ │ │ │ ├── EnergyTrendChart.js # 能源趋势图表组件 │ │ │ │ ├── HeatPumpCopChart.js # 热泵COP图表组件 │ │ │ │ ├── HeatPumpHeatOutputChart.js # 热泵制热量图表组件 │ │ │ │ ├── HeatPumpTemperatureOutputChart.js # 热泵温度输出图表组件 │ │ │ │ ├── HeatStorageEfficiencyChart.js # 热储能效率图表组件 │ │ │ │ ├── HeatStorageHeatChart.js # 热储能热量图表组件 │ │ │ │ ├── HeatStorageRealtimeChart.js # 热储能实时图表组件 │ │ │ │ ├── HeatStorageTemperatureChart.js # 热储能温度图表组件 │ │ │ │ ├── PvEnvironmentalAnalysisChart.js # 光伏环境分析图表组件 │ │ │ │ ├── PvIrradiancePowerChart.js # 光伏辐照度功率图表组件 │ │ │ │ ├── PvIvCharacteristicChart.js # 光伏IV特性图表组件 │ │ │ │ ├── PvTemperaturePowerChart.js # 光伏温度功率图表组件 │ │ │ │ ├── PvThermalHeatLossChart.js # 光伏热损失图表组件 │ │ │ │ ├── PvThermalPowerPerformanceChart.js # 光伏热功率性能图表组件 │ │ │ │ ├── PvThermalTemperatureEfficiencyChart.js # 光伏热温度效率图表组件 │ │ │ │ ├── WaterPumpEnergyConsumptionChart.js # 水泵能耗图表组件 │ │ │ │ ├── WaterPumpPerformanceCurveChart.js # 水泵性能曲线图表组件 │ │ │ │ ├── WaterPumpRealtimeChart.js # 水泵实时图表组件 │ │ │ │ ├── WaterPumpTrendChart.js # 水泵趋势图表组件 │ │ │ │ └── index.js # 图表组件导出文件 │ │ │ ├── Navbar/ # 导航栏组件 │ │ │ │ ├── Navbar.js # 导航栏主组件 │ │ │ │ └── index.js # 组件导出文件 │ │ │ └── energyOverview.js # 能源概览组件 │ │ ├── config.js # 前端配置文件 │ │ ├── pages/ # 页面组件 │ │ │ ├── bigscreen.html # 能源运行态势大屏页面 │ │ │ ├── carbon.html # 碳排放页面 │ │ │ ├── cost.html # 成本页面 │ │ │ ├── dashboard.html # 仪表盘页面 │ │ │ ├── energyload.html # 能源负荷页面 │ │ │ ├── equipment.html # 设备监控页面 │ │ │ ├── index.html # 首页(管理员管理界面) │ │ │ ├── login.html # 登录页面 │ │ │ ├── prediction.html # 预测页面 │ │ │ └── statistics.html # 统计页面 │ │ ├── scripts/ # 前端脚本 │ │ │ ├── app.js # 应用主脚本 │ │ │ ├── bigscreen.js # 大屏页面专用脚本 │ │ │ ├── dashboard.js # 仪表盘页面专用脚本 │ │ │ ├── equipment-selector.js # 设备选择器脚本 │ │ │ ├── index.js # 管理页面专用脚本 │ │ │ ├── login.js # 登录页面专用脚本 │ │ │ ├── main.js # 主脚本 │ │ │ └── router.js # 前端路由系统 │ │ ├── styles/ # 样式文件 │ │ │ └── main.css # 主样式表 │ │ └── utils/ # 前端工具函数 │ │ ├── charts/ # 图表工具函数 │ │ │ ├── batteryHealth.js # 电池健康图表工具 │ │ │ ├── batteryPower.js # 电池功率图表工具 │ │ │ ├── batterySOC.js # 电池SOC图表工具 │ │ │ ├── batteryVit.js # 电池电压电流温度图表工具 │ │ │ ├── carbonEmission.js # 碳排放图表工具 │ │ │ ├── carbonPrediction.js # 碳排放预测图表工具 │ │ │ ├── electricityPrice.js # 电价图表工具 │ │ │ ├── energyComposition.js # 能源构成图表工具 │ │ │ ├── energyCost.js # 能源成本图表工具 │ │ │ ├── energyLoad.js # 能源负荷图表工具 │ │ │ ├── energyPrediction.js # 能源预测图表工具 │ │ │ ├── energyTrend.js # 能源趋势图表工具 │ │ │ ├── heatPumpCop.js # 热泵COP图表工具 │ │ │ ├── heatPumpHeatOutput.js # 热泵制热量图表工具 │ │ │ ├── heatPumpTemperatureOutput.js # 热泵温度输出图表工具 │ │ │ ├── heatStorageEfficiency.js # 热储能效率图表工具 │ │ │ ├── heatStorageHeat.js # 热储能热量图表工具 │ │ │ ├── heatStorageRealtime.js # 热储能实时图表工具 │ │ │ ├── heatStorageTemperature.js # 热储能温度图表工具 │ │ │ ├── pvEnvironmentalAnalysis.js # 光伏环境分析图表工具 │ │ │ ├── pvIrradiancePower.js # 光伏辐照度功率图表工具 │ │ │ ├── pvIvCharacteristic.js # 光伏IV特性图表工具 │ │ │ ├── pvTemperaturePower.js # 光伏温度功率图表工具 │ │ │ ├── pvThermalHeatLoss.js # 光伏热损失图表工具 │ │ │ ├── pvThermalPowerPerformance.js # 光伏热功率性能图表工具 │ │ │ ├── pvThermalTemperatureEfficiency.js # 光伏热温度效率图表工具 │ │ │ ├── waterPumpEnergyConsumption.js # 水泵能耗图表工具 │ │ │ ├── waterPumpPerformanceCurve.js # 水泵性能曲线图表工具 │ │ │ ├── waterPumpRealtime.js # 水泵实时图表工具 │ │ │ └── waterPumpTrend.js # 水泵趋势图表工具 │ │ └── formatters.js # 数据格式化工具 │ ├── package.json # 项目配置和依赖声明 │ ├── postcss.config.js # PostCSS配置文件 │ ├── tailwind.config.js # Tailwind主配置文件 │ └── vite.config.js # Vite构建配置文件 └── start.bat # 项目启动脚本 ``` ## 项目结构说明 ### 整体架构设计 本项目采用前后端分离的架构设计,遵循MVC(Model-View-Controller)模式,确保代码的可维护性和可扩展性。 #### 后端架构(Backend) - **应用层(app.py)**: Flask应用主入口,配置路由和中间件 - **路由层(routes/)**: API接口定义,处理HTTP请求和响应 - **服务层(services/)**: 业务逻辑实现,包含各种能源管理服务 - **模型层(models/)**: 数据模型定义,与数据库表结构对应 - **工具层(utils/)**: 通用工具函数,支持数据库操作和数据导入 - **配置层(config.py)**: 应用配置管理,支持环境变量配置 #### 前端架构(Frontend) - **页面层(pages/)**: 各功能模块的页面组件,支持SPA路由 - **组件层(components/)**: 可复用UI组件,提高开发效率 - **脚本层(scripts/)**: 页面逻辑实现,采用模块化设计 - **样式层(styles/)**: CSS样式定义,基于Tailwind CSS框架 - **工具层(utils/)**: 前端工具函数,支持数据格式化和验证 #### 数据架构(Data) - **原始数据(raw/)**: 传感器采集的原始数据 - **处理数据(processed/)**: 经过预处理和特征工程的数据 - **输出数据(out/)**: 算法计算和模型预测的结果 - **元数据(metadata/)**: 数据字典和质量报告 #### 项目工具(Scripts & Docs) - **脚本工具(scripts/)**: 自动化脚本,支持数据库初始化和部署 - **文档资料(docs/)**: 项目文档,包含API接口和设计说明 ## 前端路由系统 项目前端采用基于Hash的路由系统,实现单页应用(SPA)的页面切换功能。路由系统的主要特点: 1. **路由配置**:在 `frontend/src/scripts/router.js`中定义路由映射关系。 2. **动态加载**:根据路由动态加载对应的页面内容,无需刷新整个页面。 3. **状态管理**:自动更新导航栏活动状态,高亮显示当前页面。 4. **错误处理**:提供404页面和错误处理机制,提升用户体验。 ## 注意事项 1. 确保在运行初始化脚本前已经正确安装并配置了MySQL服务器 2. 数据库配置信息集中在 `backend/config.py`中,如需修改请在此文件中更新 3. 如果遇到数据库连接问题,请检查MySQL服务是否正常运行以及配置信息是否正确 4. 项目结构已重构为模块化设计,便于维护和扩展 5. 前端路由系统基于Hash实现,确保服务器配置支持SPA应用 6. 启动脚本 `start.bat`已配置好环境变量,确保Node.js和Python路径正确 ## 最新功能更新 ### 角色管理与权限控制(新增) - **多角色支持**: 系统支持管理员(manager)和普通用户(user)两种角色 - **智能重定向**: 登录后根据用户角色自动跳转到对应界面 - **角色切换**: 管理员可临时切换到普通用户视图,体验大屏界面 - **权限验证**: 页面访问时进行角色权限验证,确保数据安全 ### 能源运行态势大屏(新增) - **全屏可视化**: 专为普通用户设计的全屏能源监控界面 - **实时数据**: 支持30秒自动刷新,确保数据实时性 - **关键指标**: 展示总用电量、总用热量、碳排放总量、能源成本等关键指标 - **趋势图表**: 能源消耗趋势图、能源构成分析图、碳排放趋势图 - **全屏切换**: 支持进入/退出全屏模式,优化观看体验 ### 前端代码重构(优化) - **架构优化**: 实现了HTML与JavaScript的完全分离,提高代码可维护性 - **脚本组织**: 创建专用脚本文件夹,每个页面都有对应的专用脚本文件 - **事件管理**: 使用事件监听器替代内联onclick属性,提高代码质量 - **模块化设计**: 脚本文件按功能模块组织,支持代码复用 ### 登录系统增强 - **角色识别**: 后端登录服务支持角色识别和重定向 - **状态管理**: 使用localStorage存储用户角色和登录状态 - **无缝切换**: 角色切换时保持用户身份信息,支持快速返回 ## 使用说明 ### 角色使用流程 1. **管理员登录**: 使用manager角色登录,进入管理界面(index.html) 2. **普通用户登录**: 使用user角色登录,进入大屏界面(bigscreen.html) 3. **角色切换**: 管理员可在管理界面点击"切换到大屏视图"按钮体验用户界面 4. **返回管理**: 在大屏界面点击"返回管理员视图"按钮返回管理界面 ### 大屏界面功能 1. **全屏模式**: 点击控制菜单中的"进入全屏"按钮切换全屏模式 2. **数据刷新**: 系统每30秒自动刷新数据,确保实时性 3. **趋势查看**: 支持查看能源消耗趋势、能源构成、碳排放趋势等图表 4. **时间显示**: 实时显示当前时间和数据更新时间 ## 联系方式 如有任何问题或建议,请联系项目团队。