## OpenFast 2nd order Linearization

Provide feedback, request enhancements, and get help with wind-turbine computer-aided engineering tools.

Moderators: Bonnie.Jonkman, Jason.Jonkman

Saishuai.Dai
Posts: 6
Joined: Wed Mar 25, 2020 4:17 pm
Organization: University of Strathclyde
Location: UK-Glasgow

### OpenFast 2nd order Linearization

Hi Jason

After reading some posts and a quick scan of the user guide, my understanding of the FAST/OpengFast linearization capability is that, at the current stage, only FAST V7 is able to do a 2nd order Linearization (e.g. output MCK matrix). Whether the above is correct or have I missed something? It would be apricated if you can help to clarify this. If the above statement is correct, is there any plan of implementing the 2nd order linearization into a future OpenFast version?

The 2nd order linearization is pretty handy to calculate a floating platform mass matrix when only system and wind turbine information is known. What I am currently doing is getting the MCK matrix from the FASTV7, apply the result to OpenFast afterwards. It would be nice if OpenFast itself can preform the 2nd order linearization.

Best Regards
David

Jason.Jonkman
Posts: 5882
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

### Re: OpenFast 2nd order Linearization

Dear David,

The linearization of FAST v7 was limited in its ability to linearize anything other than the structural equations of motion. OpenFAST linearization also supports linearization of the hydrodynamics, aerodynamics, etc., which have equations that do not involve second time derivatives. So, the intent is for the OpenFAST linearization to focus on the generation of first-order systems (with equations that involve second time derivatives converted to first order states).

That said, the mass matrix for the structural system can often be inferred from other matrices generated through the linearization process. E.g., for the six platform degrees of freedom of ElastoDyn, which has inputs (u) that are loads (forces/moments, F) and outputs (y) that are accelerations (a), it is understood that:

Code: Select all

`F = M*a`

or equivalently

Code: Select all

`a = M^-1*F`

and from the linearization process

Code: Select all

`dy = D*du`

implies that

Code: Select all

`M^-1 = D`

or

Code: Select all

`M = D^-1`

That is, the 6x6 rigid-body mass matrix (M) of ElastoDyn can be found by taking the matrix inverse of the 6x6 subset of the input-transmission matrix (D), associated with the 6 platform load inputs and 6 platform acceleration outputs.

And once you have M, you can derive the stiffness (K) and damping (C) matrices from the state matrix (A) because A often has the form;

Code: Select all

`A = [ 0, I; -M^-1*K, -M^-1*C ]`

I hope that helps.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Saishuai.Dai
Posts: 6
Joined: Wed Mar 25, 2020 4:17 pm
Organization: University of Strathclyde
Location: UK-Glasgow

### Re: OpenFast 2nd order Linearization

Dear Jason

Thanks for your detailed and clear explanation, that really helps!

Best Regards
David