Initial pitch with bladed-style dll

Hi,

I would like to know how i can start with a initial pitch angle when i am using bladed-style dll? I am not using the method of sending pitch angles to the actuator. Rather i am using pitch rates. Everything is working fine. But i do not know how i can start with a initial pitch angle. When i set the anle in elastodyn, the angle sinks in one step to 0 degree. I think the reason is the dll.

Have someone an idea and can help me?

Best regards
Kemal

Dear Kemal,

Well, I would guess the problem is in your DLL. Setting the initial (nonzero) pitch angle in ElastoDyn is correct, but it sounds like your controller is overriding this and stepping it to zero degrees.

Best regards,

But how can it be overwritten when I am using pitchrates to change the pitchangle? I am setting only the following channels:

avrSWAP(55) = 0 ! Pitch override: 0=yes
avrSWAP(35) = 1 ! Generator contactor status: 1=main (high speed) variable-speed generator
avrSWAP(56) = 0 ! Torque override: 0=yes
avrSWAP(47) = torque ! Demanded generator torque
avrSWAP(10) = 1 ! 1=pitchrate actuator
avrSWAP(42) = pitchrate_a!demanded_pitchrate
avrSWAP(43) = pitchrate_b!demanded_pitchrate
avrSWAP(44) = pitchrate_c!demanded_pitchrate

Do you see something wrong?

Dear Kemal,

Looking at the Bladed-DLL interface in FAST / OpenFAST (BladedInterface.f90), it appears that the interface only supports pitch-angle actuation (avrSWAP(10)=0). I would suggest changing your controller to use pitch-angle actuation or change the BladedInterface.f90.

Best regards,

Hi,

I already changed the line “dll_data%avrSWAP(10) = 0” to “dll_data%avrSWAP(10) = 1” in the file “BladedInterface.f90”. Or what change do you mean?

Best regards
Kemal

Dear Kemal,

I mean that the BladedDLLInterface.f90 file was not developed to support pitch-rate actuation; the BladedDLLInterface.f90 source file does not use pitch-rate commands when avrSWAP(10) is set to 1. You’ll have to modify the source code of BladedDLLInterface.f90 so that the pitch-rate commands are used (likely integrating the pitch-rate commands to calculate the pitch-angle command).

Best regards,

Hi,

do you remember this topic [url]Bladed dll]?

I change the file to use pitchrates and it is running very well. But what change is necessary to can start with an initial angle?

Best regards
Kemal

Dear Kemal,

Thanks for jogging my memory :stuck_out_tongue:.

To ensure that the initial pitch angle is used, you should initialize the integrated pitch angle to the initial pitch, i.e., in SUBROUTINE BladedInterface.f90/BladedInterface_Init() include:

dll_data%BlPitchCom = p%BlPitchInit

Best regards,

Dear Jason,

I appreciate the work you’ve done. I recently wanted to add the wind speed increased by the platform motion to the hub center wind speed. I made two changes in BladedInterface.F90 of OpenFAST v3.4.1.
line 986(SUBROUTINE Fill_avrSWAP): from dll_data%avrSWAP(27) = u%HorWindV to dll_data%avrSWAP(27) = u%HorWindV + 90.00.004COS(t)
line1128(SUBROUTINE Fill_CONTROL_vars):from dll_data%HorWindV = u%HorWindV to dll_data%HorWindV = u%HorWindV + 90.00.004COS(t)
As you can see, I want to use 90.00.04COS(t) to represent the change in wind speed caused by the pitch motion of the platform. But when I compared the simulation results before and after the modification, I found that they were exactly the same. I do not know why this is, could you please help to check whether there is a problem in my program statement or I modify in the wrong position.

Thanks a lot!
Best regards,
Lei Xue

1688394445948

Dear @Lei.Xue,

What DISCON controller are you using when running OpenFAST and does this controller make use of this HorWindV input to the controller? If not, I can why the results would not change after your change to the source code.

FYI: It is quite rare for a a wind turbine controller to make use of a direct wind speed measurement for typical operational control.)

Also note that extended Bladed controller interface already supports passing the platform motions directly from OpenFAST to the DISCON controller. For example, the platform pitch angle and rate are passed via avrSWAP(1005) and avrSWAP(1011), respectively. For more information, see the documentation on the extended Bladed interface here: 4.2.11.2. Extended Bladed Interface — OpenFAST v3.5.0 documentation. With these additions to the avrSWAP array, it is likely that you would not need to directly change the OpenFAST source code to achieve the effect you want (of calculating the relative speed between wind and platform motion). But you’d still need to ensure your user-specified DISCON controller has the control logic you want.

Best regards,