Dear Jason,
I think I have found the problem, which is the mass matrix.
To obtain the accelerations according to the inertial coordinate system, having the loads oriented in this reference system, the mass matrix must also be referred to the inertial reference system.
Starting from the mass matrix in the center of mass (M_cg), I pass to the mass matrix on the SWL (M_swl), through the procedure already discussed in OC3-Hywind RAOs - #21 by Jason.Jonkman, with
M_swl = inv(TransMat ^ T )* M_cg * inv(TransMat).
In TransMat I entered the instantaneous position of the center of mass in the inertial coordinate system.
Limiting myself to using this transformation alone, which made me obtain the erroneous Mx trend discussed above, I however noticed that for the lower right quadrant (the one containing the inertia matrix) it was wrong, as it was oriented according to the system of axes fixed to the structure, instead of in the inertial reference system.
I therefore thought that, in order to obtain the exact matrix in the inertial frame, it was first necessary to rotate the inertia matrix in the inertial frame and then transport it from the cg to the swl. The equation used was
I_cg (inertial_frame) = R * I_cg (fixed_to_struct_frame) * R ^ T,
with R being the Euler matrix. Obtained the new M_cg matrix, equal to M_cg but with the inertia matrix rotated, I then carried out the transport with the usual formula M_swl = inv(TransMat ^ T) * M_cg * inv(TransMat).
Now I get almost overlapping momentum patterns (Figure 1), but not precise enough to guarantee overlapping y and rx (Figure 2).
I use, for the comparison in Figure 1:
- Hydrodynamics loads directly from OutData (HydroFx & Co.)
- Mooring loads directly from OutData (Fx[1] … & Co. forces in x, y, z direction for every line, from which moments Mx, My, Mz for each line is calculated using the instant position of the fairlead basing on the positions of the platform, where the positions are the ones in the OutData)
- Aerodynamics loads obtained starting from RotAeroFx & Co. in OutData, through the transforms discussed at the beginning of this topic
- Gravity restoring moment and Non linear loads calculated using positions and speeds in OutData
So, each load used to create the Total loads is a load that is taken directly from the OutData of FAST or derived from the outputs in OutData.
For this reason these differences should not exist, since M*a = Total Loads is an identity.
However, the problems could be 2, always located in the mass matrix:
- The construction of the mass matrix as described above is incorrect
- Since I have put Overhang, Precone and other geometric quantities of the turbine to 0, the center of mass and the inertia matrix, and therefore the initial mass matrix may have changed. However I use Mcg and the position of the center of mass given to you in the post linked above, so this could be the error here.
I hope I have clarified the current problem.
Best regards,
Lorenzo.