Unexpected Yaw Rate Transients in 14_open_loop_control #484
Replies: 16 comments
-
|
It looks like you're starting the turbine at a non-zero yaw position and it is returning to 0. Note that I would also not start the maneuver at 0 seconds. There will be transients no matter what, but they appear to dissipate in a reasonable amount of time (~30 sec.) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
It's hard to tell what loads are due to transients and what is due to the maneuver that also starts at 0 degrees. It also appears that you're using the monopile version of the IEA-15MW. The substructure dynamics in SubDyn could also be the cause of the transients. I would ensure there is a non-zero value for the yaw inertia here. You might want to simplify your set up so there are no yaw maneuvers and pose the question in the OpenFAST or IEA forums. |
Beta Was this translation helpful? Give feedback.
-
|
Dear Dzalkind, For my case i want to test the 15MW in an onshore scenario, so things like SubDyn, Platform movement, ... are turned off. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Or would it be a better idea to just derive the position function to get the yaw rate function directly such that it can be given like this: olc.interp_timeseries('yaw_rate', yaw_times, yaw_rate, 'sigma') Or does the openloopcontroller function olc not accept yaw rate? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Hi Abel, The extra dynamics are due to stiffness and damping in the yaw degree of freedom in OpenFAST. I don't think it has to do with the open loop inputs. An asymmetrical pattern in loading for yawed turbines is typical, due to the rotation and wind shear. You can find this in previous reports and articles. I hope this helps. Best, Dan |
Beta Was this translation helpful? Give feedback.
-
|
Dear Dan @dzalkind , Thanks for the fast reply. With kind regards, |
Beta Was this translation helpful? Give feedback.
-
|
No, I don't think it's abnormal, but it would be good for your study to explore why this occurs. Generator torque variations can excite side-to-side motion. This is also where the rotor speed and tower mode can overlap and increase loading, so the controller will impact the loads in this region. |
Beta Was this translation helpful? Give feedback.
-
|
@dzalkind I first thought this was indeed the case, that the blade passing frequency aligned with the towers natural frequency. But in this input file a minimal rotation speed was given such that this couldn't be the case. I saw that it's also possible to just apply a speed exclusion zone, you think this might solve it? With kind regards, |
Beta Was this translation helpful? Give feedback.
-
|
Hi Abel, If the high side-to-side moments are occurring at specific rotor speeds, then an exclusion zone could be helpful. If the frequency of the side-to-side moments are creating generator speed and torque variations at that frequency, a notch filter could be helpful. I'm not sure what the cause of the loads that concern you are, so it's difficult for me to comment further. Best, Dan |
Beta Was this translation helpful? Give feedback.
-
|
Dear @dzalkind, I recently tested a 5MW case as well to see how that different wind speeds and yaw misalignments influence the tower and blade bending moments. Here i forgot to put a minimal rpm and got great peaks at 6 & 7 m/s with yaw misalignment of -20 and 20 degrees. I thus noticed that this was caused by the blade passing frequency aligning with the towers natural frequency. So now to prevent this from happening i applied a cut-in rpm of 6.9. I will give you as reference the TwrBsMxt before applying a cut-in rpm:
And after applying a cut-in rpm:
This looks to me like the same problem that the 15 MW case had. And I am eager to know why exactly this is the case (why are lower windspeeds of 6-7 m/s generating higher loads then higher windspeeds (11 m/s). With kind regards, |
Beta Was this translation helpful? Give feedback.
-
|
Side-to-side loads is most closely linked to generator torque, so I might investigated those variations. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
I don't think this is an issue with the ROSCO control software, so I'm going to convert this to a discussion post. Please feel free to continue the discussion there. I'm happy to answer questions you have about the controller and associated loads. |
Beta Was this translation helpful? Give feedback.












Uh oh!
There was an error while loading. Please reload this page.
-
Desired use case
At the moment i'm using the 14_open_loop_controller to generate any kind of yaw maneuver such that me and my team can study the effects of dynamic yawing on blade root and tower bending moments. However we encountered a weird bug, when using the olc.interp_series to apply any kind of yaw angle.
Description
When using the olc.interp_series for any kind of yaw angle maneuver, high yaw rates and accelerations are generated in the beginning of our simulations. This highly effects our computation time, because we need to wait a long time before the transients in the tower bending moment are gone, due to the bad damping of the tower.
My question for you guys is the following: Is there a way to prevent these high oscillations at the start of the simulation (thus prevent these high yaw rates and accelerations)?
Current behavior
Even though the yaw angle follows the given input nicely, the yaw rate (which communicates with OpenFAST) and yaw acceleration are not as expected and highly influence the applied loads and computation time.
Graphs of current behavior
Expected behavior
We would like to know where these high yaw rates and accelerations come from and how to mitigate this such that less big transients are generated and thus the computation time can be lowered.
The used code (edited 14_open_loop_control case)
Until now only static yaw angles are tested, this was done by slowly maneuvering to the desired yaw angle in the first seconds, staying in idle in the following seconds (to let transients die out) and then the real maneuver is applied.
`
Load a turbine, tune a controller with open loop control commands
In this example:
Parameters
dt = 0.01
t_ramp = 200.0
t_wait = 500.0
t_maneuver = 600.0
begin_maneuver = t_ramp + t_wait
Windspeed = 10
Simulation_time = t_ramp + t_wait + t_maneuver
final_yaw_angle_degree = 20
Python Modules
import os
import matplotlib.pyplot as plt
import numpy as np
from openfast_toolbox.io import FASTOutputFile
from openfast_toolbox.postpro import equivalent_load
import pandas as pd
ROSCO toolbox modules
from rosco import discon_lib_path
from rosco.toolbox import controller as ROSCO_controller
from rosco.toolbox import turbine as ROSCO_turbine
from rosco.toolbox import utilities as ROSCO_utilities
from rosco.toolbox.ofTools.fast_io import output_processing
from rosco.toolbox.inputs.validation import load_rosco_yaml
from rosco.toolbox.ofTools.case_gen.CaseLibrary import set_channels
from rosco.toolbox.ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper, runFAST_pywrapper_batch
from rosco.toolbox.ofTools.case_gen.CaseGen_General import CaseGen_General
def main():
this_dir = os.path.dirname(os.path.abspath(file))
tune_dir = '/data/leuven/366/vsc36692/miniconda3/envs/science/ROSCO/Examples/Test_Cases/IEA-15-240-RWT/IEA-15-240-RWT-Monopile'
......
`
Beta Was this translation helpful? Give feedback.
All reactions