IEA-15-240-RWT-UMaineSemi linearization

Good morning @Jason.Jonkman ,
Sorry to further reply, I’ve performed different test to try understand the problem. The previous results with the free decay where obtained with AeroDyn activated. I tried to also deactivate it( keeping only ElastoDyn, MAP++, HydroDyn and Inflow file), the result in damping extraction was 2% for a wind speed of 10 m/s. (with small variations if radiation was mantained or not)
I attach the decay of the platform pitch.


With AeroDyn I just had 2 main peaks and 3 smaller peaks in the decay before stabilizing almost completely.(with also a equilibrium point shifted from the 0).

Since the previous results of the linearization and my model seem solid, I’m wondering if and where I could introduce an error(I performed the same approach on 5MW DeepCWind and still the same problem occurs).
I give you also additional informations about my linearizations: ElastoDyn,InflowWind,AeroDyn,ServoDyn,HydroDyn and MAP++ all activated and the results it’s giving me just a matrix 4x4 wind rotor speed, its derivative, platform pitch, its derivative.
Sorry again for the disturb.

Dear @Leonardo.Facelli,

I’m sorry, but I don’t really understand what your question is.

Best regards,

Dear @Jason.Jonkman ,
I try to explain it better. As already mentioned in this section, I’ve created a simplified model of the IEA-15-240-RWT-UMaineSemi considering only rotor , platform pitch and its derivative as dofs. At the same time I’ve also performed the linearization from openfast to perform a comparison in term of damping ratio of the platform pitch for each wind speed. The results were very close.
After this first step, I wanted to extract the same information (damping ratio) by doing free decay simulations with openfast, in which in each test the wind speed was varied and still water. (same initial condition of the platform pitch and also the only dof activated). As example the first test was initial platform pitch of 10deg, wind speed equal to 5 m/s (inflowind, aerodyn, elastodyn, map, hydrodyn activated). The duration of the simulation has been set to 600s.
I’ve then extract the damping by using the logarithmic decrement. The result was that in this case it was half of the ones I found in my model and from the linearizations.
So my question would be if you could help me in finding out if my free decay tests are set in the wrong way. Or simply, give me a feedback on the correctness of the tests (if doing them it’s really giving me the overall damping: structural + aerodynamic).
Thank you very much for your patience and availability.

Dear @Leonardo.Facelli,

Can you clarify how you extracting the linear damping from the free-decay? Do the damping coefficients you are extracting from the free-decay results depend on the amplitude of oscillation from one cycle to the next?

Does your model include hydrodynamic quadratic (viscous) drag, that cannot well be captured by the linear model?

Best regards,

Dear @Jason.Jonkman ,
The matlab function I’m using for the damping is the following:
function [B, Td, locs, pks] = CompDamping_v2(t, th, fsamp, Method, Npks, manual)

if Method == 0
    
    % Find main signal period
    [Y, ~, freq]  = fft_trasform(detrend(th, 'constant'), length(th), 1/fsamp);
    [pksH, pksF] = findpeaks(Y, freq);
    [~, maxI]    = max(pksH);
    pksF        = pksF(maxI);
    Th          = 1/pksF;
    
    % Exclude initial part
    if th(1) > 0
        th = -th;
    end
    
    % Find peaks in the selected time history
    Ths = 0.85 * Th;  % Minimum distance between consecutive peaks
    [pks, locs] = findpeaks(th, t, 'MinPeakDistance', Ths);
    
    % Discards local minima and keep only maxima
    logical = pks < 0;
    pks(logical)  = [];
    locs(logical) = [];
    
    % Start selecting peaks from the middle
    % Startpoint = floor(length(pks) / 8 );
    
    if length(pks) < Npks
        Npks = length(pks);
    end
    
    pks = pks(1 : Npks);
    locs = locs(1 : Npks);
    
    % Average signal period [s]
    Td  = mean(diff(locs));
    omd = 2 * pi / Td; % Damped frequency [rad/s]
    
    % Linear
    delta = 1 / Npks * log(pks(1) / pks(end));
    h     = 1 / sqrt(1 + (2 * pi / delta)^2);
    
    % Natural period
    omn = omd / sqrt(1 - h^2);
    Tn  = 2 * pi / omn;
    
    % Linear and quadratic
    if Npks > 2
        delta = zeros(1, Npks - 1);
        p = zeros(1, Npks - 1);
        for ii = 2:Npks
            delta(ii - 1) = log(pks(ii) / pks(ii - 1));
            p(ii - 1) = -(4 * pi / Tn) * delta(ii - 1) / sqrt(pi^2 + delta(ii - 1)^2);
        end
        PP = polyfit(16 / 3 * pks(2:Npks) / Td, p, 1);
        p1 = PP(2); % Intercept, linear
        p2 = PP(1); % Slope, quadratic
    else
        p1 = 0;
        p2 = 0;
    end
    
    % Output damping
    B = [h p1 p2]';
    
    if th(1) < 0
        pks = -pks;
        th  = -th;
    end
    
    figure(100); plot(t, th); hold on; plot(locs, pks, 'or');
else   
    ss_time = 30;
    y_inf     = mean(th(end - ss_time * fsamp:end));
    y_inf_std = std(th(end - ss_time * fsamp:end));
    
    figure(100)
    plot(t, th)
    hold on
    yline(y_inf, '--');
    yline(y_inf + y_inf_std, '-.');
    yline(y_inf - y_inf_std, '-.');

Yes the results depend slightly on the amplitude of oscillation: ex with 10 m/s, if the initial platform pitch is -1.5deg the damping is 15.59%, if 6deg 15.77% and if 15deg 16.92%.

Concerning my model, the damping term has been extracted always with the same method: free decay with no waves and no wind and initial pitch condition and the function I’ve shared. So it should have both radiation and quadratic drag terms.

Best regards,

Dear @Leonardo.Facelli,

Thanks for clarifying, but you haven’t said what values you are setting in the CompDamping_v2() function call, and which outputs you are extracting. Regardless, I would assume that you are extracting “h”, which seems to average across multiple peaks in the free decay, and so, somehow combines the linear damping and quadratic drag into some effective linear damping coefficient. This could be part of the problem because the linearized model is likely not properly capturing the quadratic drag in the linear damping extracted and the linear damping extracted from free-decay includes some contribution from quadratic drag.

Best regards,

Dear @Jason.Jonkman ,
thank you for the reply. Since the free decay it’s considering also the additional term of quadratic drag, I’d expect the damping ratio to be greater then that of the linearized system. But the results shows the opposite. Could the linearization tool overestimate somehow the damping ratio?

Dear @Leonardo.Facelli,

As I mentioned before, the hydrodynamic quadratic drag is not represented properly by the linearized model, so, this could lead to misleading results from the linear model.

To check your approach, I would suggest eliminating hydrodynamic quadratic drag from both the linearized model and from free decay and see if the results agree then. If so, you’ll have isolated the issue to the quadratic drag.

Best regards,

Dear all,

I am currently working on obtaining a linearized model of the IEA 15 MW floating wind turbine (submersible platform) in Region 3, across wind speeds from 12 m/s to 20 m/s. The goal is to analyze the right-half-plane zeros and the associated phase drop in the Bode plot from pitch angle to generator speed, particularly around the pitch-related dynamics.

I performed the linearization using MoorDyn for platform modeling. However, I am observing noticeable discrepancies in the frequencies seen in the system Bode plot compared to expected/reference values. Specifically:

Platform pitch mode: ~1.9 rad/s (expected ≈ 2.15 rad/s)

Tower fore-aft mode: ~2.1 rad/s (expected ≈ 3.5 rad/s)

This deviation seems significant, and I would like to understand the possible causes.

I included all DOF for linearization. How can I ensure that the natural frequencies from the linearized model match the frequencies given in the technical report of the submersible turbine? Thanks in advance.

Dear @Nitin.Sivakumar,

You haven’t said much about your OpenFAST model set up for linearization, but if the model is not producing the results you expect, I would generally suggest to simplify the model and build complexity in steps.

I’m also not sure how much the OpenFAST model of the IEA Wind 15-MW RWT atop the VolturnUS semisumbersible has changed since the technical report was published, but it may be better to compare your linearization solution against equivalent time-domain simulations to check consistency between the linearized and time-domain models.

Best regards,