Forum

Please or Register to create posts and topics.

Secondary development of QBlade

PreviousPage 2 of 2

Hi David

I’m sorry to have to ask you again.

1. About gammaBoundFixedPointIteration () function calculation, whether it will take off the function caused by vortex lattice’s shed vortex and trailing vortex induced velocity of impact?

2. I think if the simulation is steady, the simulaiton time should converge quickly, and this process will be directly turned into a process of looking up the table (cl AoA), that is to say, the airfoil and polar data can be obtained, and then the blade bound circulation  can be immediately known. Moreover, since the simulation is steady, the bound circulation will converge to a certain value and remain unchanged, is this correct?

3.I saw the code for the blade bound circulation calculation process, but it was all combined with Qt language, which made it difficult for me to read. I wonder if your code can be implemented by removing Qt functions? That is, the blade data is supplied directly instead of drawing in the GUI and reading the Qt data.

Thanks!

BR,

Roby

Hi Roby,

I will try to answer you questions even though they are a bit hard to understand (possibly due to autotranslate?).

  1. Both shed and trailing vorticity are accounted for. However the induced velocity of the wake itself is not part of the iteration, only the blade self induction is.
  2. The initial circulation distribution is taken from the previous timestep. If the simulation is completely steady, that is rpm and inflow velocity are constant and the wake is fully developed the iteration converges already at the first step.
  3. The function gammaBoundFixedPointIteration() does not contain any rendering of GUI functionality. Also the use of Qt specific classes is minimal. However, the iteration is working on the underlying data structure  of QBlade’s obejcts, which is is quite specific. But the general procedure and mehods should be quite easily recoverable from the QBlade source.

Best regards,

David

Hi David

I got the answer I wanted through your answer, thank you again.

Also in the process of simulation, the strutIterationLoop in calcBladeCirculation function, as well as CalcDynamicStrutCoefficients, CalcStrucCirculation is not all about solving structural velocities (the velocities transmitted by towers, or platforms). If I just think about the rotor aerodynamics, can I just delete these functions?

BR,

Roby

Quote from robytian on 23. May 2023, 03:19

Hi David

I got the answer I wanted through your answer, thank you again.

Also in the process of simulation, the strutIterationLoop in calcBladeCirculation function, as well as CalcDynamicStrutCoefficients, CalcStrucCirculation is not all about solving structural velocities (the velocities transmitted by towers, or platforms). If I just think about the rotor aerodynamics, can I just delete these functions?

BR,

Roby

In addition, as you mentioned earlier, only blade induction is part of the iteration, while wake induction is not. Can I understand that the update of the bound circulation on the blade is not affected by the wake of the shedding vortex lattice?

Hi Roby,

the *Strut* functions that you mention actually calculate the aerodynamic coefficnets for struts that can be part of a VAWT definition. For a HAWT you dont need these functions.

Regarding the wake induction: The influence of the wake on the blade veliocities is taken into account, but during the iteration the free wake induction is only calculated once (before the first iteration) and is not part of the iteration itself which only updates the bound blade (and strut) induction.

BR,

David

Hi David

Thank you for your quick reply.

BR,

Roby

Quote from David on 30. May 2023, 09:32

Hi Roby,

the *Strut* functions that you mention actually calculate the aerodynamic coefficnets for struts that can be part of a VAWT definition. For a HAWT you dont need these functions.

Regarding the wake induction: The influence of the wake on the blade veliocities is taken into account, but during the iteration the free wake induction is only calculated once (before the first iteration) and is not part of the iteration itself which only updates the bound blade (and strut) induction.

BR,

David

Hi David

Where does this free wake induction, which is used at the beginning of the first iteration of the bound circulation, come from? Is it the induced velocity calculated by the Bio-Savart law generated here by the shed vortex and the trailing vortex? But if there is no bound circulation before the first iteration, what about the wake generated?

BR,

Roby

Uploaded files:
  • You need to login to have access to uploads.

Hi Roby,

this is simply initialized as zero. You can easily find this info yourself by searching the source code for the appearance of this variable (or others) in QTCreator.

BR,

David

Hi David

The input (blade data) before the iteration computation begins. Do these inputs need to be read in combination with user clicks and Settings in the GUI interface? Or the user in the GUI Settings will form a file, code from the file.

If the whole process is read from Qt, is there any way to re-run the whole process without Qt? That means maybe I need to rewrite the input based on the airfoil data, right?

BR,

Roby

Hi Roby,

check out this info on the Data Structure in QBlade. If you want to build your own code you will probably use your own data structure (for blades and polars) and rather use the implementation of the fixed point iteration within QBlade as a guidance.

I strongly suggest to go through Arne van Garrels report: “Development of a Wind Turbine Aerodynamics Simulation Module“, which explains the complete algorithm for the fixed point iteration of the bound circulation very clearly and is in my mind better suited to be used as guidance.

BR,

David

PreviousPage 2 of 2