The controls aren't really all that complicated. More or less broken down, what was needed was:
A way to "Turn On" or "Turn Off" a wind turbine. When a wind turbine is turned on, a brake is released. When it is turned off, a brake is set (the brake is normally closed)
Now, when turned on, the wind turbine will cycle between 2 modes: Standby and online. In standby mode, the wind turbine is just waiting to be spooled up by the wind. Once the wind gets the blades moving, you must monitor the alternator rpm, and connect it to the grid as it crosses the generators syncronous speed (which in our case was around 1800 rpm). Of course, the phase of the alternator will likely not match the phase of the grid at this time. Slamming it to the grid will cause a lot of distortion on the line and could cause a brownout as well. For this reason, we use PWM to slowly connect it to the line. Depending on how fast the rpm is approaching synchronous speed, calculations are performed to command the SCR firing board to cut the turbine to the line as slowly as possible, while not letting it overspeed (as you can see from one of the settings screens, we set our overspeed to 1900 RPM). For reference, the power compand wants the THD on the line to be less than 4% while syncing the turbine to the line. Given how fast the RPM can spool up and only having about 100 RPM leadway, you can see how catching this in time and keeping the distortion down in the process can be very hard. I was somehow lucky enough to get this right on the first try! (I think this was just good luck)
Once connected to the grid, you must determine when to disconnect from the grid (again softly with PWM). Once the RPM goes below syncronous for an adjustable amount of time, then you disconnect from the grid (otherwise the mill will motor and use electricity from the grid). This cycling between standby and online will happen indefinitely.
Then, while running, fault conditions are monitored. Faults such as over rpm of the alternator, excessive windspeed, line voltage/frequency deviation, etc. When this happens the turbine is disconnected from the grid (if it were connected), and the brake is set. Once the fault condition clears a timer commences, after which the turbine is put back into standby mode, free to spool back up and connect to the grid.
Lastly, there are Trip conditions. They are similar to faults, except they don't reset themselves, and require an operator to manually restart the turbine. Examples of trips are:
Sensed bad anemometer (if there is alternator RPM yet no windspeed reading, then it is likely that the anemometer is bad)
Sensed bad encoder (a sudden loss of reading while connected to the grid, or no reading when windspeed is beyond a certain threshhold)
Sensed bad brake (brake is set yet there is still an alternator RPM reading)
Vibration (Possible ice on blades)
While it sounds simple, it is actually much more involved than one would think. What made it nice to tune in is that every setpoint was made to be adjustable from the touchscreen. That way I didn't have to reprogram something every time something needed tweaked. There are 5 settings screens per wind turbine, and over 30 other operational screens per turbine.
There is also an engineering screen which shows number of relay cycles, runtime hours, etc, as well as a test screen when various inputs and outputs can be overridden.
Also, after a power outage, the turbine will be returned to the last state it was in before the loss of power.
One more interesting statistic - each unit, even with my markup, is actually cheaper than their older analogue units!
I actually made a manual for the unit for them to distribute to their customers. I'll post it on here when i get home from work. It give a better idea of how everything works.