I am working on developing a reduced order turbine model for use with an LQG control scheme. I want to use the state-space realization of the radiation memory effect in the model. First, I am attempting to validate the results of the linear model against OpenFAST. To do this I pull the linear matrices from the .ss file and simulate them in matlab using the state velocities from FAST. The OpenFAST simulation case is for the 5MW reference turbine on the OC4 Semi-submersible platform with 13m/s turbulent wind and no waves (wavemod = 0). I then compare the results. The matlab script and a couple of comparison graphs are attached. It is evident that the output of the linear model is not correct; however, when I run OpenFAST using the .ss file for radiation (and compare to the convolution method) the results are the same. How does FAST implement the .ss model? Is there a step I am missing?
% Compare Hydrodyn linearization to extraction from SS file
clear all; close all; clc;
%% ----- Load SS Model from .ss File ----- %%
[Arad,Brad,Crad,Drad] = getRadSS('C:\Umaine Google Sync\Masters Working Folder\Multibody FOWT Model\SS Fitting\marin_semi.ss');
csys = ss(Arad,Brad,Crad,Drad);
%% ----- Load in OpenFAST Simulation Results ----- %%
load('C:\Umaine Google Sync\Masters Working Folder\Multibody FOWT Model\FAST_Simulations\TurbulentWind_13mps\5MW_OC4Semi_WSt_WavesWN_FAST_Results.mat');
% Extract states & velocities
q = [sim_results.Q_Sg,sim_results.Q_Sw,sim_results.Q_Hv,sim_results.Q_R,sim_results.Q_P,sim_results.Q_Y];
qd = [sim_results.QD_Sg,sim_results.QD_Sw,sim_results.QD_Hv,sim_results.QD_R,sim_results.QD_P,sim_results.QD_Y];
%% ----- Simulate Linear System ----- %%
x1 = zeros(size(Arad,1),1);
[y1,t1] = lsim(csys,qd,sim_results.Time);
%% ----- Compare Results ----- %%
FAST_forces = [sim_results.B1RdtFxi';
sim_results.B1RdtFyi';
sim_results.B1RdtFzi';
sim_results.B1RdtMxi';
sim_results.B1RdtMyi';
sim_results.B1RdtMzi'];
for i = 1:size(y1,2)-1
figure
gca; hold on; box on;
plot(t1,y1(:,i),'DisplayName','SS-Fitting');
plot(sim_results.Time,FAST_forces(i,:),'DisplayName','OpenFAST');
xlabel('Time [s]')
ylabel('Hydro Force [N or N-m]')
title(sprintf('DOF %i',i));
legend
end