# Forces acting on wind turbine blade

raviteja111
Member

I have done simulation in Ansys fluent. At the initial position, turbine blades are at 0 degrees, at this position I have simulated the forces acting on the blades in the z-direction. I got a familiar result.

but when I change the blade angle to 30 degrees. forces are getting in minus(-) value.

can anyone explain what I have did a mistake?

## Answers

1/Insert and do not attach pictures

2/Aslo how are you defining the force report: you probably providing the direction to get the forces.

I have inserted the images. have a look at them?

That looks like the blades are pitched forwards rather than twisted?

yes blades are pitched and at the same time they regulate. at initial condition at 0 degrees I got force about 2500N but in the second case when I pitched the angle I got -273N.

What force vector did you use? Ie was it the right one?

You are forcing the blades to run by a specific rpm. What if the lift force on the blades is not enough to apply this moment? You get negative lift ... and negative thrust. In other words, may be it is working as a blower instead of a turbine.

Moreover can you review the angular speed and especially the the rotational axis direction?

257.54 rpm at rotational axis.

in Z-direction

This one rotating domain.

I am not sure because you have all right . Only the way the blades are twisted is not what I used to know. Are you sure about angular speed: might be creating negative lift. Have you till convergence of thrust monitor.

In the real world, we have some forces acting on the blades. How can we calculate those forces in a simulation? Is there any possibility to calculate the forces at that position?

Yes, forces and moment.

There is a function called Compute_Force_And_Moment defined in the wall header file. Unfortunately it is not mentioned in fluent documentation.

It would work in your case by calculating the moment around your turbine axis.

I will put it here once I am on my desk and I will let you know how to use.

Are you using CG motion?

No, I think. where should I mention it?

Ok, here is the idea but it will need some work from you

Instead of rotating your turbine with a constant rpm, use a user defined function to rotate it with the fluid forces. You can even apply a resisting torque and see how the speed will change. You need to write a user defined function. Calculate the moment on the turbine and rotate it according to the governing equation:

delta_omga / timestep * Moment_of_Inertia = sum_of_Torque

The user defined function will be something like this

`#include "udf.h"`

`#include "f_wall.h"`

`#include "dynamesh_tools.h"`

`double old_omega = 0;`

`DEFINE_CG_MOTION (turbine, dt, vel, omega, time, dtime)`

`{`

`double I = ---; // Moment of inertia`

`double T_load = 0; // You can add the resistance load here`

`if (!Data_Valid_P())`

`return;`

`NV_S (vel, =, 0.0);`

`NV_S (omega, =, 0.0);`

`double moment [ND_ND], cg[ND_ND], force [ND_ND];`

`Compute_Force_And_Moment(d, t, cg, force, moment, TRUE);`

`double Torque = moment[2];`

`double delta_omega = dtime*(Torque - T_load)/I;`

`old_omga += delta_omega;`

`omega[2]=old_omega;`

`#if RP_HOST`

`Message (" \n old_omega = %f, Moment = %f", old_omega, Torque);`

`#endif`

`}`

the compute Force and moment function will return the values of moment

Compile this function and then go to dynamic mesh and select your turbine and rigid body motion and udf ... and good luck!

Another way to go around the UDF is to use expression for the rpm

Here you need to define an expression for the thrust force

Then another conditional expression =1 if the thrust is positive and =-1 if the thrust is negative .. let's call domega

and a third expression of the turbine boundary angular velocity .. let's call it old_omega

Then make your rpm old_omega +domega

here fluent will increase your rpm by one every iteration until it has zero thrust

please let me know if it worked.

Thanks for the time you spent on my work.

I tried to compile this code in visual studio, it's showing 12 errors. I am so bad at c program. can you please suggest a way?