Developing wind turbine controllers
Hundreds of engineers work together to create and maintain the hardware and software that controls a modern wind turbine. Each team within that group has a specific responsibility and must ensure that their own contribution works flawlessly together with the parts the other teams supply.
Wind turbines come in several different base models and customers have a very large degree of configuration freedom. All in all this means tens or hundreds of variants they must ensure the controller software works on.
Nothing may be allowed to fail, neither current turbine models nor older turbines commisioned decades ago.
How do you test this?
How do you as a software developer perform regression testing of wind turbine controller software? You could have a physical wind turbine of every model and variant available, but equipping each and every team with a hundred wind turbines isn't really economically feasible. It wouldn't be too practical either, as making a wind turbine do exactly what you want to test your controller software isn't really easy. After all, it's not simple to make the wind blow exactly like you need it to...
The solution: A wind turbine simulator.
A model of the sensor and activator environment a real 1000 channel wind turbine controller lives in must be created. The controller and its IO is physical HW, and the environment must be a combination of software (where possible) and hardware (where necessary).
Parameterized & modular
The model must be parameterized and modular to allow any turbine profile to be simulated from the selection of modules.
Manual & automated
An operator must have complete live model parameter and signal visualization, as well as be able to override any signal in the system for fault injection and debugging in manual mode.
The simulator must also offer a complete API for automation, such that automated regression testing can be performed in conjunction with a build server without human interaction.
Headless, robust and performant
Since some simulation scenarios can run for several days the simulator must be able to run headless, it must be very robust so simulations do not have to be restarted, and it must be very performanent as we're talking 1000+ data channels where some have micro- and even nanosecond specifications.
To ensure proper performance and flexibility we chose to base the simulator on an NI quad-core PXI controller and multiple R-series FPGA PXI cards.
Besides the PXI-chassis and its IO, the complete wind turbine controller and its IO, a simulator also contains selected wind turbine components in real hardware. All in all almost one ton of electronics, miles of cabling, and thousands of interconnects.
Real-Time & FPGA
With such strict requirements on timing and resilience a proper real-time system was a given. Dynamic loading on multiple FPGAs, more than 30 real-time models, and a flexible configuration system enables a single simulator to act as any of the many wind turbine profiles necessary.
This application has really stretched LabVIEW real-time to its limits and a number of worldwide firsts have been achieved throughout development, but it has also illustrated how versatile and powerful LabVIEW is.
An OO LabVIEW API was created for use in TestStand to enable automation. TestStand can then be envoked manually for scripted execution or by command line from a BI system for full automation.
A wind turbine for every developer
More or less at least. Siemens Wind Power can now employ dozens of simulators where the same number of wind turbines for development simply wouldn't be possible. In the works are full software versions of the simulator as well, which will truly move wind turbine simulation into the virtual domain.
Improved quality and reliability
The modularity of the model and the parameterization of the simulator architecture allows the simulator to assume any profile. Combine this with the automation API and you have an extremely versatile tool both for R&D to try new things on, and to verify that the old don't break. Verifying wind turbine controller software has now become a hundred times faster and less expensive than ever before.
Secure upgrade path
LabVIEW and NI ensures that the simulator hardware can easily be upgraded when higher performance becomes necessary and when new technologies become available, without having to rewrite all the code. We could very easily switch from PXI to NI cRIO if we wanted to for instance.