Wind turbines require advanced control strategies to maximize power output and reduce the mechanical load on structural components. Model predictive control (MPC) is a promising strategy for wind turbine control because it can handle multivariable control problems while accounting for process constraints. Several studies have used numerical simulations to explore the use of MPC for wind turbines. To the best of our knowledge, our study is the first in the academic field of MPC for wind turbines to provide experimental MPC results from a full-scale field test in a multi-megawatt wind turbine.
We applied a rapid control prototyping (RCP) approach in which we modeled and simulated our MPC algorithm in MATLAB® and Simulink® and validated it in software-in-the-loop (SIL) and hardware-in-the-loop (HIL) tests. We then generated production code from the control model for a Bachman PLC and conducted field tests on a 3 MW wind turbine designed and operated by our colleagues at W2E Wind to Energy GmbH  (Figures 1 and 2).
Introducing the Wind Turbine Control Framework
We developed the Wind Turbine Control Framework (WTCF) to give each member of our team a consistent environment with shared active models, scripts, and path. For version control, we integrated the framework with Git via Simulink Projects.
The main layer model in the WTCF includes submodels for the plant and control system. We use model reference to organize the design hierarchically and enable modular development. The framework’s folder structure maps to the hierarchical structure of the models and submodels (Figure 3).
Modeling the Wind Turbine and MPC Algorithm
The wind turbine was represented in our framework with a nonlinear, reduced-order model that served as a plant model in initial system simulations and as an internal prediction model for our MPC algorithm. The reduced-order model included three submodels: one mechanical model for the wind turbine drivetrain dynamics, one mechanical model for the tower and turbine blade dynamics, and one model for the aerodynamics (Figure 4). We developed the two mechanical submodels using ordinary differential equations, with parameter values determined either from the actual wind turbine or from a multibody simulation through parameter identification. Within the reduced-order model, we used static maps for aerodynamic coefficients that relate wind speed to the forces and moments applied to the mechanical submodels of the turbine.
We designed the MPC algorithm to maximize power output, maintain operating limits, and mitigate dynamic mechanical loads, which can result from wind gusts or other conditions. Modeled in MATLAB and Simulink, the algorithm takes into account generator speed and electrical power as controlled variables to maximize output. The tower’s top acceleration represents the mechanical load and thus is used as additional controlled variable. The algorithm uses two manipulated variables to achieve its objectives: the pitch angle rate of the turbine and the generator torque. The latter is handled by the turbine’s generator-converter system and comprises an additional, faster control loop.
Running System Simulations, SIL Tests, and HIL Tests
We conducted closed-loop system simulations to validate the reduced-order turbine model and derive initial MPC algorithm parameters for use in SIL and HIL testing (Figure 5). The WTCF made it easy for us to replace the reduced-order model with more detailed models, including a multibody simulation model of the wind turbine developed using alaska/Wind software  and a second model developed using FAST software .
Using Embedded Coder®, we generated a dynamic link library (DLL) of the control system to run closed-loop tests against the existing automation system and plant model, which was developed in FLEX5, a simulation tool certified for use in the wind turbine industry. Both the FLEX5 and alaska/Wind plant models are validated by W2E against field test data , which showed that these models accurately represent the dynamics of the wind turbine. We ran SIL tests to verify that the compiled code for the MPC is functioning correctly, evaluate the MPC’s robustness, and test the integration between the MPC and the existing automation system of the wind turbine, which comprises the supervisory control, the safety system, and analysis functions.
We also ran SIL tests to evaluate the performance of the MPC algorithm against a conventional PID controller. The results showed that when the turbine was subjected to wind gusts, our MPC algorithm maintained significantly more stable power and generator torque than the PID controller while keeping the mechanical loads at the same level (Figure 6). These results confirm the MPC’s ability to deal with multiple control objectives at the same time.
To prepare for HIL tests, we used Simulink Coder™ with M-Target for Simulink to generate code from our MPC model for a Bachmann MH230 PLC. During the HIL tests, we used a PC to simulate the wind turbine plant, reusing the reduced-order Simulink model or the alaska/Wind or FAST model from our system simulations. These tests enabled us to verify the generated code for the MPC algorithm on the wind turbine’s PLC and validate the implementation in a hardware setup that included the automation system of the actual wind turbine.
Field Tests and Next Steps
The system simulations and extensive SIL and HIL testing we had performed gave us confidence that our controller would perform reasonably well on an actual wind turbine. Successfully running comprehensive tests in our simulation-based development environment gave us the confidence to test the MPC algorithm for the first time in W2E’s wind turbine in Rostock, Germany. The first results confirmed our expectations, as the MPC could operate the wind turbine in the partial load region without any further modifications of the controller. The successful field test was a major milestone for our research groups at RWTH and W2E, validating not only the MPC design and implementation but also the WTCF.
The field test established the proof of concept for our MPC system for the real 3 MW wind turbine in a full-scale field test and bridges the gap between the control design and field testing of MPC systems for wind turbines in the multi-megawatt range. During the test we identified several areas of potential improvement for the controller design. Our near-term plans included enhancing the MPC algorithm to improve power generation while further reducing fatigue loads on the turbine and extreme loads due to gusts by making the MPC algorithm more robust. In future research, we plan to develop more detailed prediction models based on physical modeling principles and machine learning algorithms. This research will open up new possibilities for considering additional control objectives related to grid compatibility and multi-physical wind turbine interactions in small wind farms.
We would like to thank all our colleagues from W2E Wind to Energy GmbH involved in the MPC test campaign for their support in commissioning the MPC system in the real wind turbine and conducting the field test. We also thank Bachmann electronic GmbH for their technical support and for providing an MH230 PLC module for preparing and conducting the field test.