Forum
Important Notice for New User Registrations
To combat an increasing number of spam and bot registrations, we now manually approve all new user registrations. While this may cause a delay until your account is approved, this step is essential to ensure the quality and security of this forum.
To help us verify your registration as legitimate, please use a clear name as user name or an official email address (such as a work, university, or similar address). If you’re concerned that we may not recognize your registration as non-spam, feel free to email us at with a request to approve your username.
Secondary development of QBlade
Quote from robytian on 22. May 2023, 13:59Hi 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 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
Quote from David on 22. May 2023, 18:08Hi Roby,
I will try to answer you questions even though they are a bit hard to understand (possibly due to autotranslate?).
- 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.
- 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.
- 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 Roby,
I will try to answer you questions even though they are a bit hard to understand (possibly due to autotranslate?).
- 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.
- 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.
- 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
Quote from robytian on 23. May 2023, 03:19Hi 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
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 30. May 2023, 08:49Quote from robytian on 23. May 2023, 03:19Hi 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?
Quote from robytian on 23. May 2023, 03:19Hi 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?
Quote from David on 30. May 2023, 09:32Hi 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 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
Quote from robytian on 30. May 2023, 13:37Quote from David on 30. May 2023, 09:32Hi 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
Quote from David on 30. May 2023, 09:32Hi 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.
Quote from David on 30. May 2023, 20:49Hi 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 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
Quote from robytian on 1. June 2023, 08:14Hi 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 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
Quote from David on 1. June 2023, 11:51Hi 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
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