Hi

I require guidance in getting partial derivatives and hydrodynamic damping for 5MW OC3 in above rated wind. I want to compute linear model as given in **Sink or Swim: A Tutorial on the Control of Floating Wind Turbines** Sink or Swim: A Tutorial on the Control of Floating Wind Turbines | IEEE Conference Publication | IEEE Xplore

The linear model statespace form as per this paper for 2DoF is

with the parameters

I want help in getting these parameters for above rated wind speed using OpenFast

Thanks

Regards

Muhammad Sharjil

Dear @Muhammad.Sharjil,

I’m not familiar with this paper, but from what I can tell, the states are the generator speed, platform-pitch angle, and platform-pitch rate, and the control inputs are the blade-pitch angle and generator torque; is that correct?

You can use an OpenFAST linearization or a system identification approach to derive the linearized coefficients. OpenFAST allows you to enable only the generator and platform-pitch DOFs (`GenDOF`

= `PtfmPitch`

= TRUE; other DOFs = FALSE), although you’ll have to eliminate the generator-azimuth state to convert the 4-state model to a 3-state model, as has been discussed in other topics on this forum. To obtain pitch and torque in the linearization output, you can set `LinInputs`

= 1 when linearizing and ignore the other inputs that you don’t need.

Best regards,

Hi Jonkman

Thanks for the response. I am sorry for not mentioning the whole inputs and output.

u = [Blade Pitch, Generator Torque]’

x = [omega, phi, phidot]’

I have obtained the linear model for OC3 by enabling linearization in OpenFAST.

However, the 2 DoF model (GenDOF = True and PtfmPDOF = True). I also eliminated generator-azimuth state.

However, the model was giving ptfm frequency as 0.11rad/sec instead of 0.2rad/sec.

However, I have gone through similar post which mentioned to put PtfmPDOF=True and PtfmSgDOF=True and GenDOF=True.

Now I want to extract the partial derivates required to analytically build this 2 dof model as stated in the above mentioned paper.

I also want to compute Dphi to (hydrodynamic damping) for computing the condition of presence of Non-Minimum Phase Zeros.

I also want to compute Jrot and Jphi.

Kindly guide me on how to get these parameters.

Thanks

Regards,

Muhammad Sharjil

Hello @Muhammad.Sharjil,

I was lead author on the paper you linked, so hopefully I can help you with your question. The 2-DOF model in the paper was constructed from two separate parts: the linearization of the aerodynamic functions T_aero and F_aero and the platform approximated as a linear mass-spring-damper. The gradients of the aerodynamic functions were identified using OpenFAST linearization with the platform disabled, and separately the platform model parameters were identified without aerodynamics. Using this approach allows you to construct the model by putting these parameters into matrix equation you posted above, and it allows this regardless of the complexity of the platform (at the time the paper was written, OpenFAST linearization was giving incorrect values for complex platforms defined in SubDyn). Linearizing everything together with multiple generator and platform DOFs would only give you the resulting matrices but not the component parameters, still this may be necessary in some cases.

We identified the aerodynamic gradients by linearizing with only `GenDOF=True`

and all other DOFs `False`

. We also used `FrozenWake=True`

in AeroDyn. After linearizing at every operating point of interest, and post-processing the data to get the state-space matrices between all states, inputs, and outputs, the aerodynamic function gradients can be extracted as individual terms from these matrices. For T_aero, we used the A and B matrix elements at the row index for the variable speed generator DOF state and the column index for the same state and input channels for horizontal wind speed and collective blade pitch. For F_aero, we used the C and D matrix elements at the row index for the rotor thrust output channel and the same column indices as the state and inputs used for T_aero. These values may have some of the other parameters baked in (e.g. rotor inertia) and may be in different units than you expect, so double check the differences between the channels in the OpenFAST model and the signals in the simplified model. You can check these gradient values against quasi-static gradients derived from the Cp and Ct surfaces, which should differ in predictable ways. These are computed by the ROSCO toolbox. The rotor inertia can be found in the ElastoDyn summary output file.

For the platform identification, we ran simulations with a sweep of different initial platform pitch offsets and without input wind and waves to examine the frequency and decay rate of the platform settling from each initial condition, and then fit an approximate second-order model to the data with two parameters for natural frequency and damping ratio. You can relate these two parameters to K_phi and D_phi if you know J_phi. This is a *very* approximate solution, as the platform dynamics are often quite nonlinear and would differ when the rotor is under aerodynamic load. I would suggest validating the resonant frequency of the identified platform model by looking at a power spectral density of the platform pitch under a turbulent wind simulation near rated. There should be a noticeable peak near the resonant frequency. The damping ratio may be more difficult to fit to the nonlinear platform decay, but I would recommend erring on the side of underestimating rather than overestimating the hydrodynamic damping so that a controller you design using the model will be more robust. For the purpose of identifying the presence of NMPZs, using this simplified model will only reliably give an approximate range of wind speed operating points with NMPZs from the maximum predicted range with D_phi=0 to some realistic-seeming damping ratio based on the decay. This 1-DOF platform model also won’t be accurate if your platform has multiple in-plane DOFs with similar resonant frequencies, as coupling between these DOFs can significantly change the eigenfrequencies and eigenmodes in the full-order system. In this case, linearizing in OpenFAST with the generator along with more platform DOFs would be more accurate but also won’t be easy to analyze in terms of the component parameters above. You should be able to find platform mass and inertia parameters from the model documentation if you are using an open design, for the OC3 it looks like they are here.

I will emphasize that this simplified model is only an approximation to the higher-order system, and it was made to prioritize interpretability for use in (robust) control design over fidelity. There are other approaches in the literature for defining a platform model that includes more than a single DOF, and I would recommend looking into these approaches if this 2-DOF model is too inaccurate to be useful in this application.

Best regards,

1 Like

Hi David

Thanks a lot for the detailed response. You have explained quite extensively about how to proceed with 2-DOF model based on the mentioned paper.

I have some queries:

The platform identification was done using OpenFAST? If yes, that which degree of freedom were enabled (I suppose only pitching movement would be enabled)? Did you take the whole inertia of platform+tower+RNA for computation of platform identification or just only platform?

Thanks

Regards,

Muhammad Sharjil