I am using FAST (along with ‘aerodyn’) to do some parametric load calculations. I want to incorporate aerodynamic asymmetries that can arise through production or assembly tolerance of rotor blades. For the same, I want to have a deviation of +/- 0.3 degrees in pitch angle for a 3-Bladed NREL machine from the current optimum values based on torque and pitch control [i.e. blade 1 at (0+optimum) degrees, blade 2 at (-0.3+optimum) degrees and blade 3 at (0.3+optimum) degrees at any point of time]. I am using discon.dll file for the control prepared by Jason Jonkman for NREL 5 MW machine. I have limited knowledge on controls or compiling a new .dll file for this purpose.
How (or if) is it possible to have a new ‘discon.dll’ file which incorporates this effect?
A nearly identical question has already been answered on this forum–please see the forum topic found here for an answer to your question: simulate pitch offset with FAST.
I read the previous post on this topic, but am not really sure which parameters to change in the PitchCntrl() Subroutine. I don’t want to mess up the whole control logic. I have a Fortan file PitchCntrl_ACH.f90 which contains this routine, but I don’t have sufficient knowledge here on what needs to be changed to incorporate pitch error and compiled in order to get a new Bladed dll control file.
Could you maybe, tell what exactly needs to be altered in source code or a right path forward?
You can introduce the pitch error either within an updated DISCON.dll or within the user PitchCntrl routine.
If you want to introduce the pitch error in an existing PitchCntrl routine, simply place the following logic at the end of the routine (before the RETURN):
where BlPitchCom( represents the blade-pitch angle commands for each blade calculated from within the routine (based on the actual control logic) and Error( represents the blade-pitch angle error for each blade. Note that all blade-pitch angles are in FAST’s internal units of radians (not degrees).
The process for introducing the pitch error in the DISCON.dll file is similar. However, you should make sure that FAST’s BladedDLLInterface.f90 source file, which contains the interface to the GH Bladed DLL, is set up to accept individual blade-pitch control from the DLL. You can do this by setting the value of parameter Ptch_Cntrl to 1 (the default is Ptch_Cntrl = 0 for collective blade-pitch control).
Thanks a lot for your guidance. I did manage to compile a new DISCON.dll file with pitch offsets.
But do I have to compile FAST again with updated BladedDLLInterface.f90 (for individual pitch control) and generate a new DLL for FAST (using all other source codes for FAST) or did you mean something else when you said
Yes. In the current version of FAST, you must set parameter Ptch_Cntrl to 1 within MODULE BladedDLLParameters of the BladedDLLInterface.f90 source file in order to have FAST accept individual blade-pitch-control commands from a GH Bladed-style DISCON.dll. This change to BladedDLLInterface.f90 will require a recompile of FAST.
We are working on a new version of FAST whereby the GH Bladed-style controller DLL is built-in option of FAST and where many of the parameters that control the interface to the DLL (like Ptch_Cntrl) are specified within a FAST input file. More information on this new version of FAST will be forthcoming.