openfast icon indicating copy to clipboard operation
openfast copied to clipboard

Linearization results change between v2.5 and v2.6 -- OC4Semi

Open andrew-platt opened this issue 3 years ago • 0 comments

Bug description The linearization results for the OC4Semi case changed between v2.5 and v2.6. OF v2.6 introduced a revised HydroDyn with flexible platform capabilities and a new method of buoyancy calculation. The changes seen in modes 5 and 6 may be due to either a bug in that implementation, or a bug in the model itself (the HydroDyn model and input file changed slightly).

OC4Semi + MAP (v2.5)
01 ;    0.009 ;  0.0100 ; ED Platform horizontal sway translation DOF -
02 ;    0.009 ;  0.0100 ; ED Platform horizontal surge translation DOF -
03 ;    0.013 ;  0.0051 ; ED 2nd tower FA - ED 1st FLAP cos - ED Platform yaw rotation DOF -
05 ;    0.039 ;  0.0113 ; ED 1st tower FA - ED Platform pitch tilt rotation DOF -  - HD RdtnPtfmP10
06 ;    0.039 ;  0.0112 ; ED Variable speed generator DOF - ED Platform roll tilt rotation DOF -  - HD RdtnPtfmR10
08 ;    0.058 ;  0.0114 ; ED Platform vertical heave translation DOF -
OC4Semi + MAP (v2.6)
01 ;    0.009 ;  0.0100 ; ED Platform horizontal sway translation DOF -
02 ;    0.009 ;  0.0100 ; ED Platform horizontal surge translation DOF -
03 ;    0.013 ;  0.0066 ; ED 2nd tower FA - ED 1st FLAP cos - ED Platform yaw rotation DOF -
05 ;    0.047 ;  0.0025 ; ED Variable speed generator DOF - ED Platform roll tilt rotation DOF -  - HD RdtnPtfmSw12
06 ;    0.047 ;  0.0094 ; ED 1st tower FA - ED Platform pitch tilt rotation DOF -  - HD RdtnPtfmSg12
08 ;    0.058 ;  0.0114 ; ED Platform vertical heave translation DOF -

Further thoughts The linearization regression test as currently implemented did not catch this change as it does not calculate the eigenvalues. The regression test compares the A, B, C, and D matrices to a default level of 1E-5, but the actual changes that give rise to the frequency changes are much smaller (~1E-9). The regression test methodology should be updated to include the eigenanalysis to catch such changes. This could be done either by duplicating code from the python-toolbox (https://github.com/OpenFAST/python-toolbox/tree/main/pyFAST/linearization) or loading it as a submodule to the testing environment.

andrew-platt avatar Sep 10 '21 15:09 andrew-platt