# 风电监测系统 **Repository Path**: ciil/wind-power-monitoring-system ## Basic Information - **Project Name**: 风电监测系统 - **Description**: 基于ruoyi框架的风电监测系统, 需要新增: 1,设备健康管理模块; 2,环境监测模块; 3,安全监控模块; 4,远程控制模块; 5,能源管理模块 6,智能预测与优化模块。 - **Primary Language**: Java - **License**: EPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-02-21 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 基于ruoyi 框架的 大规模风电场监控系统 风电场内总共有196台风机,其中包含三菱2.5MW风机、三菱1.0MW风机、南瑞1.0MW风机,总装机容量为199MW,项目共分两期实施完成。 ##技术 基于ruoyi 框架 这个仓库名为`windiot`,是视云风电物联网监控系统相关的代码仓库,以下是对其主要内容的介绍: ### 1. 系统概述 这是一个风电物联网监控系统,主要用于监控风电机组的运行数据、状态及故障信息等,并通过各种图表直观展示。 ### 2. 系统设计 - **设计目标** - 显示机组运行数据,如发电功率、发电量、转速、风速风向等,并用风玫瑰图、曲线或图表展示。 - 显示风电机组运行状态。 - 显示机组故障信息,包括故障类型和发生时间。 - **设计原则** - **可扩展性**:满足当前及未来需求,方便功能扩展,可灵活增减模块,能与其他应用系统集成。 - **互操作性**:支持实时数据库接口,通过标准关系数据库接口实现数据集成,平台开放可裁剪功能。 ### 3. 数据设计 - **电厂信息**:包含电厂编号、风机总数、总装机量等。 - **风机配置信息**:如风机编号、品牌、功率、位置、所属电厂、启动安装时间、运行状态等。 - **风机数据统计**:对风速、转速、发电量等按年月日统计。 - **风机故障记录**:包括风机序号、故障类型(叶片、转向、发电机、其他故障)、负责人、处理状态和时间等。 - **风速风向区间统计信息**:按持续时间统计风速大小和风向角。 - **功率区间统计**:统计某时间段功率并以折线图显示。 - **机舱实时信息**:统计机舱温度、角度、齿轮箱油温度等实时数据。 ### 4. 菜单设计 - **主页** - **全场监控** - 风机矩阵:块状矩阵排列风机,显示概要信息及单机概况。 - 风机列表:列表形式展示风机信息。 - 全场地图:以位置图形显示风机。 - **数据统计** - 运行数据:显示风场信息。 - 电量统计:柱状图显示24个月日、月、年发电量。 - 风速统计:玫瑰图显示风速区间。 - 风向统计:玫瑰图显示风向持续时间。 - 功率曲线:曲线图显示功率区间变化。 - **报表管理**:电量、风速风向、风机偏航、风机报警统计查询(日月年)。 - **报警管理** - 报警处理:显示报警信息并可填写处理信息。 - 警报统计:查询警报次数、故障类型等。 ### 5. 系统功能 - **完整实时数据展现**:采用时序数据库系统远程监视和汇总风电场运行情况,展示电机、气象、机组状态等参数。 - **数据统计与查询**:包括历史统计日志、瞬态日志、故障日志查询。 - **强大的风势折线与风频玫瑰图**:实时风速折线图、风速玫瑰图、风向玫瑰图、平均风速统计。 - **功率展示**:功率分段折线图、平均功率统计、瞬时功率实时折线图。 ### 6. 项目结构 - 包含多个模块,如`data-common`、`data-admin`、`data-generator`、`data-biz`、`data-quartz`等,各模块有自己的`pom.xml`文件,是基于Maven管理的项目。 - 包含`sql`文件夹,其中有`iot.sql`文件,可能是数据库脚本。 - 有`bin`文件夹,包含一些批处理脚本,如`clean.bat`、`package.bat`、`run.bat`等。 - `doc`文件夹中有`windData.pdm`(可能是数据库建模文件)和`若依环境使用手册.docx`。 # RuoYi 框架 RuoYi 是一个基于 Spring Boot 开发的开源 Java 快速开发平台,以下是关于 RuoYi 框架的详细介绍: ### 1. 框架特点 - **功能丰富** - 提供了一系列常见的企业级应用开发所需的基础功能模块,如用户管理、角色管理、菜单管理、部门管理等,能帮助开发者快速搭建企业级应用的基础架构。 - 集成了多种实用的工具,例如代码生成器,可以根据数据库表结构自动生成前后端代码,极大地提高了开发效率。 - **技术选型先进** - 后端采用 Spring Boot 作为核心框架,结合 Spring Cloud 可以方便地构建微服务架构。同时使用 MyBatis 作为 ORM 框架,简化数据库操作。 - 前端采用 Vue.js 作为主流的 JavaScript 框架,配合 Element UI 组件库,提供了美观、易用的用户界面。 - **易于扩展** - 遵循模块化设计原则,各个功能模块之间相对独立,开发者可以根据项目需求方便地添加、修改或删除模块。 - 提供了丰富的接口和配置选项,方便与第三方系统进行集成。 - **安全可靠** - 具备完善的权限管理系统,通过角色和权限的分配,实现对不同用户的精细化权限控制,确保系统数据的安全性。 - 对用户输入进行严格的验证和过滤,防止常见的安全漏洞,如 SQL 注入、XSS 攻击等。 ### 2. 框架结构 - **后端结构** - **controller 层**:负责接收前端发送的请求,调用 service 层的方法进行业务处理,并将处理结果返回给前端。 - **service 层**:主要实现业务逻辑,调用 dao 层的方法进行数据的增删改查操作。 - **dao 层**:使用 MyBatis 进行数据库操作,通过 Mapper 接口和 XML 文件实现 SQL 语句的映射。 - **entity 层**:定义数据库表对应的实体类,用于封装数据。 - **前端结构** - **views 文件夹**:存放页面文件,采用 Vue 单文件组件的形式,每个页面组件负责渲染一个特定的页面。 - **api 文件夹**:定义与后端接口交互的 API 函数,使用 axios 进行 HTTP 请求。 - **store 文件夹**:使用 Vuex 进行状态管理,存储和管理应用的全局状态。 ### 3. 配置文件 - `application.yml`:这是 Spring Boot 的核心配置文件,包含了数据库连接信息、服务器端口、日志配置等重要信息。例如在你提供的项目配置文件中,配置了项目名称、版本、版权年份、服务器端口、日志级别等信息。 - `pom.xml`:Maven 项目的配置文件,管理项目的依赖和构建信息。 ### 4. 代码示例(以用户管理为例) - **后端代码示例(Java)** - **Controller 层** ```java @RestController @RequestMapping("/system/user") public class SysUserController extends BaseController { @Autowired private ISysUserService userService; @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/list") public TableDataInfo list(SysUser user) { startPage(); List list = userService.selectUserList(user); return getDataTable(list); } } ``` - **Service 层** ```java @Service public class SysUserServiceImpl implements ISysUserService { @Autowired private SysUserMapper userMapper; @Override public List selectUserList(SysUser user) { return userMapper.selectUserList(user); } } ``` - **Mapper 层** ```java public interface SysUserMapper { List selectUserList(SysUser user); } ``` - **前端代码示例(Vue)** ```vue ``` ### 5. 应用场景 - **企业管理系统**:可以快速搭建企业内部的管理系统,如员工管理、考勤管理、财务管理等。 - **数据统计与分析系统**:利用其数据统计和报表功能,开发各类数据统计与分析系统,如销售数据分析、生产数据监控等。 - **项目管理系统**:实现项目的进度管理、任务分配、资源管理等功能。