[Open-source] MIT open-source protocol, wind farm monitoring project, data storage uses time-series database
![[Open-source] MIT open-source protocol, wind farm monitoring project, data storage uses time-series database](https://yy123.ink/api/img/1782578876250-2rmojf.jpg)
1. Project Overview
This project is a simulated wind farm monitoring project, simulating a power plant, six wind turbines, data using random numbers in real-time inserted into the time series database, and then by websocket + quartz from the time series database to push to the interface display. The statistical information is stored in the relational database.
2. Open Source License
Licensed under MIT
3. Screenshots
1. Interface design





2. Performance testing
Provided time series database insertion performance testing: single label multi-data and multi-label multi-data.

4. Feature Overview
1. System design
1.1 Design goals
- Display the running data of the unit, such as the instantaneous power generation of the unit, the cumulative power generation, the power generation hours, the wind wheel and generator speed and wind speed, wind direction, etc., and display it in a intuitive way through wind rose diagram, curve or chart.
- Display the running state of the wind turbine.
- Display the faults that occur during the operation of each unit. When displaying faults, display the type and time of the fault, so that the operating personnel can handle and eliminate the fault in a timely manner, ensuring the safety and continuous operation of the wind turbine.
1.2 System design principles
- Scalability - The design of the system should meet the current environment's requirements and future application requirements for a certain period of time, and should be easy to extend and add, delete, and modify functional modules.
- From the technical development perspective and user requirements, the software structure itself should be able to integrate with other application systems, achieve information sharing and resource sharing.
- Interoperability - Support real-time database data interface, and implement data integration with ERP and other MIS systems through standard relational database interface (ODBC, OLE DB). The openness of the platform ensures that different functions can be cut from different data modules of the production management system to meet the needs of a specific task, achieving interoperability.
2. Data design
- Power plant information Power plant information includes power plant number, number of wind turbines, total installed capacity, etc.
- Wind turbine configuration information Wind turbine number, wind turbine brand, power, actual power, location (coordinates), belonging power plant, startup time, installation time, running status, etc.
- Wind turbine data statistics Statistics of wind speed, speed, power generation, power, deviation times, deviation angle, etc. for each wind turbine by year, month, day.
- Wind turbine fault record Wind turbine number, fault type, responsible person, handling status, handling time, description, etc. The fault type is mainly divided into blade fault, turning fault, generator fault, and other faults.
- Wind speed and direction interval statistics Information on wind speed and direction by continuous time to statistics the wind speed size and wind direction angle within a certain time period.
- Power interval statistics Power size by continuous time to statistics the specific power within a certain time period, and display it in a graphical line chart.
- Machine room real-time information Real-time statistics of machine room data. Wind turbine number, machine room temperature, machine room angle, gear box oil temperature, low speed axis temperature, high speed axis temperature, gear box oil pressure, AC voltage, generator output and frequency, power factor, instantaneous power, etc.
3. Menu design
3.1. Home page
3.2. Full field monitoring
- Wind turbine matrix Display wind turbines in a block matrix format, showing wind turbine summary information; Single machine overview: wind turbine overview, wind turbine overview.
- Wind turbine list Display wind turbine information in a list format.
- Full field map Display wind turbine graphics in a location graph format.
3.3. Data statistics
- Running data Display wind farm information.
- Power statistics Display 24-month daily power generation, monthly power generation, annual power generation in a column chart.
- Wind speed statistics Display wind speed interval rose chart for each direction.
- Wind direction statistics Display wind direction interval rose chart for each direction.
- Power curve Display power interval change curve statistics for wind farm in a day, month, year.
3.4. Report management
- Power statistics inquiry (day, month, year)
- Wind speed and direction statistics information inquiry (day, month, year)
- Wind turbine deviation statistics inquiry (day, month, year)
- Wind turbine alarm statistics inquiry (day, month, year)
3.5. Alarm management
- Alarm handling Display specific wind turbine alarm information, set handling. Can fill in handling information.
- Alarm statistics Inquiry wind turbine alarm times, including fault times, fault types, etc.
4. System function
4.1 Complete real-time data display
This system uses time series database system to implement remote monitoring and reception of all wind turbines, wind speed, power generation, etc. of the wind farm, making it possible for all levels of departments to understand the running state and power generation situation of the wind turbine in a timely manner. The following parameters can be summarized and displayed:
- Generator parameters: including AC voltage, generator output, generator output frequency, generator power factor, etc.
- Meteorological parameters: including wind speed, wind direction, etc.
- Unit status parameters: including wind wheel speed, generator speed, generator stator temperature, generator front and rear axle temperature, gear box oil temperature, gear box front and rear axle temperature, hydraulic system oil temperature, machine room temperature, etc.
4.2 Data statistics and inquiry
1) Historical Statistical Log Query: Query the statistical information of the wind turbine data based on the selected wind turbine and time period. 2) Historical Transient Log Query: Query the historical data records of the selected wind turbine within the specified time period. 3) Historical Fault Log Query: Query the fault status of the currently selected wind turbine within the query time period.
4.3 Powerful Wind Speed Line Chart and Wind Frequency Rose Chart
1) Real-time Wind Speed Line Chart: Statistically display the change of real-time wind speed in a line chart. 2) Wind Speed Rose Chart: Statistically display the frequency of wind speed in 16 directions and the size change frequency, making it clearer to display the maximum and minimum wind speed details. 3) Wind Direction Rose Chart: Display the number of times for each of the 16 wind directions under the time condition. 4) Average Wind Speed Statistics: Statistically display the average wind speed size and wind direction frequency for daily, monthly, and yearly periods.
4.4 Power Display
1) Power Segment Line Chart: Statistically display the duration and time proportion of specific power sizes. It can clearly display the maximum and minimum power values and their duration. 2) Average Power Statistics: Query the average power for daily, monthly, and yearly periods. 3) Real-time Power Line Chart: Statistically display the change of real-time power in a line chart.
5. Tech Stack
1, Database Design
1.1 Physical View

1.2 E-R Diagram

2, Project Structure
data ├── data-common // Utility class │ └── annotation // Custom annotation │ └── config // Global configuration │ └── constant // Common constant │ └── core // Core control │ └── enums // Common enumeration │ └── exception // Common exception │ └── json // JSON data processing │ └── utils // Utility class processing │ └── xss // XSS filtering processing ├── data-framework // Framework core │ └── aspectj // Annotation implementation │ └── config // System configuration │ └── datasource // Data authority │ └── manager // Asynchronous processing │ └── shiro // Permission control │ └── util // Common utility │ └── web // Front-end control ├── data-biz // Business code │ └── domain // Entity class │ └── mapper // mapper │ └── service // Service interface layer │ └── service // Service implementation layer │ └── manager // Asynchronous processing ├── data--admin // Backend service interface API │ └── web // Startup │ └── config // Configuration │ └── controller // Control layer │ └── core.config // Swagger configuration │ └── encoder │ └── quartz // Scheduled task │ └── socket // WebSocket ├── data--generator // Code generation ├── data--quartz // Scheduled task ├── data--system // System code
This project references RuoYi, and builds functions and data connections based on RuoYi.
A SpringBoot-based permission management system that is easy to read and understand, with a simple and beautiful interface. The core technology uses Spring, MyBatis, and Shiro without any other heavy dependencies. It can be run directly.
3, Database Installation
3.1 jar package
There is a TrendDB_API.jar in the lib folder of the project root directory or the TrendDB installation directory. Add it to your local Maven repository, with groupId and artifactId both set to TrendDB_API, and version set to 1.0. Run the following command in the directory where the jar is located:
mvn install:install-file -Dfile=TrendDB_API.jar -DgroupId=TrendDB_API -DartifactId=TrendDB_API -Dversion=1.0 -Dpackaging=jar
3.2. Real-time Database TrendDB Installation
TrendDB learning version installation and use (see READMD.md document for details)
3.3. Real-time Data
Run the TrendDBDataInit class in the data-admin module to initialize the data, provided that the database has been installed and TrendDB_API.jar has been successfully added to the Maven repository. After running, you can start trenddb_view.exe to view the tags.

4, TrendDB Introduction
Baidu Cloud Disk ppt preview and download (see READMD.md document for details)
Client:
