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.

Please or Register to create posts and topics.

How to achieve the direct control of rotational speed (RPM) with DLL interface functions in MATLAB?

Hello, recently I am trying to use MATLAB to make automatic calculation in series, and the controlled inputs types/values can be general during the simulation. Now I think I can resort to setPowerLawWind/setTurbinePosition_at_num/setControlVars_at_num functions to set the wind velocity/shaft tilt angle/collective pitch angle in time, but how to set the customized rotational speed at each simulation step by using DLL interface functions? I found setInitialConditions_at_num/setRPMPrescribeType_at_num functions, which don’t seem to be sufficient to provide direct control of RPM. Do you have some suggestions to achieve this goal? Thank you very much!

Hi Chen,

currently, the only options to influence turbine RPM in the SIL are:

  • Setting the time-constant RPM in the “Simulation Input File (.sim),” which defines the simulation.
  • Dynamically changing the applied generator torque during the simulation, which indirectly affects the RPM.

In the next release, we will include a setRPM_at_num() function, allowing direct control over a prescribed RPM dynamically during the simulation loop.

BR,

David

Chen has reacted to this post.
Chen
Quote from David on 3. October 2024, 14:52

Hi Chen,

currently, the only options to influence turbine RPM in the SIL are:

  • Setting the time-constant RPM in the “Simulation Input File (.sim),” which defines the simulation.
  • Dynamically changing the applied generator torque during the simulation, which indirectly affects the RPM.

In the next release, we will include a setRPM_at_num() function, allowing direct control over a prescribed RPM dynamically during the simulation loop.

BR,

David

Hello David,

Thank you very much for answering this question. May I ask when the next release can publish? I think setRPM_at_num() function will be much of convinience. Thank you.

Hello Chen,

the next release will happen sometime later this month (October ’24).

Until then, what you could also do to set the RPM is to use the “Simulation Input File”, with which you can prescribe a time varying RPM.

BR,

David

Quote from David on 3. October 2024, 18:57

Hello Chen,

the next release will happen sometime later this month (October ’24).

Until then, what you could also do to set the RPM is to use the “Simulation Input File”, with which you can prescribe a time varying RPM.

BR,

David

Thanks David. By the way, when I set the initial turbine position by using setTurbinePosition_at_num() function in MATLAB, I found that the simulation results did not change compared with those calculated from default turbine position values. However, if I set turbine position initially in QBlade GUI, the position satisfied my expectation. So I wonder why.

Now I think I met the same problem that João Muralha had also met. During the initialization, the turbine position values were forced to be zero.

Best Regards,

Chen

Hi Chen,

I have confirmed that when you call setTurbinePosition_at_num() before initializeSimulation(), the initial turbine position is correctly set to the values specified in the setTurbinePosition_at_num() function. I’ve double-checked this, and everything is working as expected.

When you store the project and re-open it in the GUI, you’ll notice that the turbine appears displaced. However, the “global position” values in the simulation definition dialog will not reflect this new position. These values are based on the initial turbine definition specified in the .sim or .qpr file and are not affected by the dynamic changes made when calling setTurbinePosition_at_num().

Best regards,

David

 

Scroll to Top