Using Linearised FAST for Controls

Hi helpful NREL people.

While I’m reasonably comfortable with quite a few control things, I’ve not used State Space matrices before.

All the literature that I read mentions A, B, C and D matrices, but not Dd or Bd.

I’ve applied GetMats to my *.lin file, but I’m not sure how to apply different control approaches to my linearised system. The Matlab help isn’t proving to be that helpful either.

Do you know of anyone that has done this before and written an idiots guide to what they did?

I’m being lazy, I’d like to think I’m smart enough to go off and read up a lot and figure it out myself, but would much rather I could plagiarize :slight_smile: someone else’s work.

Thanks for your help.


Dear Alec,

Linearized disturbance-input matrices Bd and Dd show up in the controls field of “Disturbance Accommodating Control (DAC).” In the case of FAST, the wind is considered a “disturbance” on the plant (wind turbine) with known form (e.g., uniform + shear) but unknown magnitude. One goal of DAC is to minimize the effect of the disturbance on the output of the plant. There are many NREL papers by Alan Wright et al on this subject. See, for example, the controls report found here:

Best regards,


Thanks Jason. Exactly what I was after.


Hi Jason

Alan’s report cites quite a few other reports, many written by himself. I’ve had a quick rummage around the NREL site, but I haven’t been able to find where I can download them.

In particular, I’m after:

  1. Wright, A. D., “Modern Control Design for Flexible Wind Turbines,” NREL
    Report No. TP-500-35816, Golden, CO: National Renewable Energy Laboratory,

Can you help please?



Dear Alec,

All NREL reports can be found in our publications database:

Best regards,

Thanks Jason

Sorry for more questions on a report that isn’t yours…

Alan put some Matlab code in the appendices of the report. The code uses some functions that are not included in the report.

I realise that the code there isn’t released on the normal area, but is it all stored anywhere else besides the appendix of the report?



Hi Alex, could you tell me which functions specifically and perhaps I can track them down, thanks!


Hi Paul

Thanks for offering to help.

Looking at Appendix B.1 of “Advanced Control Design for Wind Turbines Part I: Control Design, Implementation, and Initial Tests A.D. Wright and L.J. Fingersh, March 2008”

There are some (I think 2) lines of code that rely on functions.

These functions are:

Read_linfile, which I’ve replace with GetMats from the MBC3 code. However, I suspect that GetMats and Read_linfile create some slightly different variables…

Avgxop. This might have been replaced/incorporated into the MBC release of functions, but I’m not sure.

The variable az_statenum doesn’t seem to be created by GetMats either, or maybe it is with a different name, but I can’t guess at it.

After that it looks like everything else would be ok.


Hi. I´m reading the Alan´s document and I also have the same problem. Do you have the “Read_linfile” and “Avgxop” functions?