After securing support from senior management, Vestas power system engineers established a new workflow for power plant control design that combines CI and Model-Based Design with MATLAB® and Simulink®.
When a grid code change is proposed or a customer requests a new feature or component, Vestas engineers create a set of formal requirements. Based on the requirements, one group develops test cases with Simulink and Simulink Test™ that will be used to verify the new feature, while a second group designs the new feature in Simulink and Stateflow®.
To create a system model for closed-loop simulations, engineers in this second group combine the control model with a Simulink model that captures the impedance and dynamic characteristics of the grid at the point of connection with the plant. Using a Simulink S-function, they incorporate a wind turbine model that is developed in a proprietary tool and packaged as a DLL by another Vestas group.
After running closed-loop simulations with this system model and running checks to ensure compliance with modeling standards based on MathWorks Automotive Advisory Board (MAAB) guidelines, the engineers check the control model into a Git repository. The model check-in triggers a Jenkins job that runs the test cases developed earlier with Simulink Test, as well as additional simulation-based tests created by the power engineers and another round of modeling guideline compliance checks.
If the control model passes all tests and checks, Jenkins invokes Embedded Coder® 1 to generate C++ code from the model. The generated C++ code is compiled into a DLL, which is then used in PSCAD to run simulations of the full plant and its control software.
Vestas uses these simulations to demonstrate to transmission system operators how the plant will perform when connected to the grid under normal conditions and in the presence of voltage drops, oscillations, and other disturbances. Finally, the generated code is tested on the target industrial control system before being deployed into production.