Issue with ROSCO floating feedback term

Hi all,

I am trying to use ROSCO through the python toolbox, coupled with a hydrodynamic model of a FOWT. I can successfully call the ROSCO controller through the control_interface class. However, when I use the call_controller function and pass the fore-aft nacelle acceleration of the FOWT into the NacIMU_FA_Acc argument it seems to have no effect. I ran a coupled simulation of the FOWT operating at rated wind speed with no waves with NacIMU_FA_Acc = 0, and NacIMU_FA_Acc = the nacelle acceleration, and the output blade pitch from ROSCO is the same each time (results of these two simulations are attached below).

Below are some snippets from my code for reference:
nac_FA_pos[i] = current_Hub_Pos[0] # X (surge) coordinate of the turbine hub
nac_FA_vel[i] = (nac_FA_pos[i] - nac_FA_pos[i - 1]) / dt # nacelle fore-aft velocity
nac_FA_accel[i] = (nac_FA_vel[i] - nac_FA_vel[i - 1]) / dt # nacelle fore-aft acceleration

genTorque[i], pitch[i] = controller_int.call_controller(Time, dt, pitch[i - 1], genTorque[i - 1], genSpeed[i], GenEff / 100, rotorSpeed[i], WindSpeed, NacIMU_FA_Acc=nac_FA_accel)

where i is the index corresponding to the current time step in the simulation

Sim 1 (NacIMU_FA_Acc = 0)

Sim 2 (NacIMU_FA_Acc = the nacelle acceleration)

I would hugely appreciate any help you can offer!

best,
Jackson

Hi Jackson,

There are two “flavors” of floating feedback in ROSCO (designated by Fl_Mode in the DISCON.IN file). One uses the translational acceleration (FA_Acc) and the other uses rotational acceleration (NacIMU_FA_Acc). I would ensure that you’re using the correct mode for the signal that you’re sending to ROSCO.

I would also ensure that the signal you’re sending to ROSCO is being read properly here. You can print the LocalVars using a LoggingLevel of 2. Please note the difference in indexing between Fortran and Python.

We haven’t yet developed a simplified model for the nacelle acceleration like you have, so I’m a little short on specific help here. If you find something that might benefit the community, we’d be happy to help you integrate it into the code.

Please let us know if you have further questions.

Best, Dan

Dan,

Sounds good, thank you for the advice.