SDK Question No lift on horizontal airfoil

birdman

New member
Joined
Nov 29, 2016
Messages
13
Reaction score
0
Points
0
Hello again :tiphat:

I'm trying to resolve or understand an issue I have with the airfoils.
Again... I don't seem to understand them very well.

At the moment I'm trying to model, a rotationally symmetrical blunt reentry vehicle like the Soyuz or Apollo capsule, which control their range by change in roll angle.

In an older thread of mine I generally asked how the CreateAirfoil API works out.

At the moment I'm debugging and found out that I only get a drag vector, but result for my lift vector is V(0, 0, 0) for my horizontal airfoil.
I guess the drag vector is generated by the Orbiter legacy drag calculations.

The vertical one works fine. For both of them I used the same calculations. I guessed that it would be the same for a rotationally symmetrical airfoil.

At an thread from 2008 I found an aerodynamic modelling for an apollo capsule. The programmer used only a vertical airfoil. And I'm starting to ask myself if I really do need a horizontal airfoil.

I also tried to use code from other users to create the airfoils and the coefficient calculations behind it. Still a V(0, 0, 0) vector for lift.


So to summarize my questions:
Question 1:
Is it right that I expect a non zero lift vector for my horizontal airfoil?

Question 2:
Do I need a horizontal airfoil for a blunt, rotationally symmetrical reentry vehicles which control by changing their roll angle?

Question 3:
If I set the parameter S = 0 for the CreateAirfoil API. Is the projected vessel cross section calculated by Orbiter with reference to the mesh?



I guess that my code should be fine, since it works out for the vertical lift and I tested it with code from other programmers.

With debug strings I also made sure that the values for *cm, *cl, *cd are calculated for my horizontal airfoil.

If you think that the error still seems to be in my code. I will post it here.

Thanks in advance for your help.
Have a good day!

Best regards
birdman
 

n72.75

Move slow and try not to break too much.
Orbiter Contributor
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
2,697
Reaction score
1,356
Points
128
Location
Saco, ME
Website
mwhume.space
Preferred Pronouns
he/him
Hello again :tiphat:

I'm trying to resolve or understand an issue I have with the airfoils.
Again... I don't seem to understand them very well.

At the moment I'm trying to model, a rotationally symmetrical blunt reentry vehicle like the Soyuz or Apollo capsule, which control their range by change in roll angle.

In an older thread of mine I generally asked how the CreateAirfoil API works out.

At the moment I'm debugging and found out that I only get a drag vector, but result for my lift vector is V(0, 0, 0) for my horizontal airfoil.
I guess the drag vector is generated by the Orbiter legacy drag calculations.

The vertical one works fine. For both of them I used the same calculations. I guessed that it would be the same for a rotationally symmetrical airfoil.

At an thread from 2008 I found an aerodynamic modelling for an apollo capsule. The programmer used only a vertical airfoil. And I'm starting to ask myself if I really do need a horizontal airfoil.

I also tried to use code from other users to create the airfoils and the coefficient calculations behind it. Still a V(0, 0, 0) vector for lift.


So to summarize my questions:
Question 1:
Is it right that I expect a non zero lift vector for my horizontal airfoil?

Question 2:
Do I need a horizontal airfoil for a blunt, rotationally symmetrical reentry vehicles which control by changing their roll angle?

Question 3:
If I set the parameter S = 0 for the CreateAirfoil API. Is the projected vessel cross section calculated by Orbiter with reference to the mesh?



I guess that my code should be fine, since it works out for the vertical lift and I tested it with code from other programmers.

With debug strings I also made sure that the values for *cm, *cl, *cd are calculated for my horizontal airfoil.

If you think that the error still seems to be in my code. I will post it here.

Thanks in advance for your help.
Have a good day!

Best regards
birdman

For a flat plate the lift coëfficient is 2*pi*(angle of attach) in a theoretical sense. Airfoils with no camber and no AoA induce no circulation on the fluid through which they flow.

Since there is no change momentum in the fluid there's no induced force (Newton's 2nd law).
 

birdman

New member
Joined
Nov 29, 2016
Messages
13
Reaction score
0
Points
0
For a flat plate the lift coëfficient is 2*pi*(angle of attach) in a theoretical sense. Airfoils with no camber and no AoA induce no circulation on the fluid through which they flow.

Since there is no change momentum in the fluid there's no induced force (Newton's 2nd law).

Hey n72.75,

thank you for your answer.
I'm well aware of this fact. I'm familiar with the basics of aerodynamics from my studies of aerospace engineering.
I guess it fails at the understanding of the parameter calling of the createairfoil command or the way orbiter calculates the wing area S.

So maybe the function calls will give additional information:

I'm getting a lift component from the following airfoil
Call of create airfoil for the vertical airfoil:

Code:
	hVertAirfoil = CreateAirfoil2(
		LIFT_VERTICAL,		// Creates Vertical Force
		dyn->CoP,			// Translation from CoG to CoP
		AerodynamicCoeff,
		2.142,			// [m] Chord length [1,Tab.5.4]
		0,				// [m²] Wing Area = 0 --> Orbiter calculates from mesh
		D1				// [m] Wing Span = Capsule Diameter [1,Tab.5.4]
		);



_V(0, 0, 0) Liftvector for the following airfoil. Same definitions same coefficient calculations.
Call of create airfoil for the horizontal airfoil

Code:
	hHoriAirfoil = CreateAirfoil2(
		LIFT_HORIZONTAL,		// Creates Horizontal Force
		dyn->CoP,				// Translation from CoG to CoP
		AerodynamicCoeff,
		2.142,				// [m] Chord length [1,Tab.5.4]
		0,					// [m²] Wing Area = 0 --> Orbiter calculates from mesh
		D1					// [m] Wing Span = Capsule Diameter [1,Tab.5.4]
		);


Definition of the lift coefficients:

Code:
/*	Normal Force Coefficient (Lift)
		for |aoa| = { 0, 5, 10, 15, 20, 25, 30 } deg 
	and for all reference mach numbers.										*/
const double	aero_ca[6][7]	=	{
/* |aoa|	0	5	10	15	20	25	30		deg*/
	{	0.00,	-0.04,	-0.06,	-0.07,	-0.06,	-0.04,	-0.02	},	// Ma = 0.60
	{	0.00,	-0.03,	-0.04,	-0.01,	0.01,	0.07,	0.14	},	// Ma = 0.95
	{	0.00,	-0.03,	-0.04,	0.00,	0.04,	0.09,	0.13	},	// Ma = 1.10
	{	0.00,	-0.03,	0.01,	0.08,	0.16,	0.26,	0.36	},	// Ma = 1.78
	{	0.00,	0.04,	0.09,	0.14,	0.18,	0.24,	0.31	},	// Ma = 2.52
	{	0.00,	0.03,	0.06,	0.09,	0.13,	0.19,	0.24	},	// Ma = 5.96
};

I use to get an AoA of about +- 3° to +-5° between the xz-plane and the airspeedvector. So I guess I should be getting a lifting force.
 

BrianJ

Addon Developer
Addon Developer
Joined
Apr 19, 2008
Messages
1,679
Reaction score
902
Points
128
Location
Code 347
Hi
Question 1:
Is it right that I expect a non zero lift vector for my horizontal airfoil?

Question 2:
Do I need a horizontal airfoil for a blunt, rotationally symmetrical reentry vehicles which control by changing their roll angle?

Question 3:
If I set the parameter S = 0 for the CreateAirfoil API. Is the projected vessel cross section calculated by Orbiter with reference to the mesh?
I'm not great at airfoils either, but here's what I think...

1. Yes, provided your lift-coefficient calculation gives it some lift. NOTE: for LIFT_HORIZONTAL the lift-coefficient should be calculated using slip-angle (beta) rather than angle-of-attack(aoa).

2. I would say yes. If the capsule yaws, while maintaining a zero aoa, it should generate some lift to left or right.

3. No. I'm pretty sure that if S = 0, Orbiter uses the given cross-sections of your vessel to calculate S. Thats the values in your SetCrossSections() function. See VesselAPI.h notes.

There are probably more aerodynamically accurate capsule add-ons available, but you can alway have a look at the Cargo Dragon code for an example of how I do it. I tried to make it roughly Apollo-like.

One thing that always bothered me is that Orbiter has no provision for an airfoil in the XY plane, which, to me, would seem the appropriate orientation for an airfoil for a capsule that travels with +/-Z axis pointing into the airstream. But it can probably be worked around by setting the right lift and drag coefficients for the airfoils.

Good luck,
Brian
 

birdman

New member
Joined
Nov 29, 2016
Messages
13
Reaction score
0
Points
0
Hey Brian J,

Thank you very much.
1. Yes, provided your lift-coefficient calculation gives it some lift. NOTE: for LIFT_HORIZONTAL the lift-coefficient should be calculated using slip-angle (beta) rather than angle-of-attack(aoa).

2. I would say yes. If the capsule yaws, while maintaining a zero aoa, it should generate some lift to left or right.

That's great. Than I'm not completely wrong!

3. No. I'm pretty sure that if S = 0, Orbiter uses the given cross-sections of your vessel to calculate S. Thats the values in your SetCrossSections() function. See VesselAPI.h notes.

I should keep it in my head that the mesh does not have any effect on the flight physics.
I now checked the crosssections and they are not handled correclty at the moment. I will have to fix this first to see if this may fix the issue.
But no crosssection equals zero, so in principal it should still generate lift.

There are probably more aerodynamically accurate capsule add-ons available, but you can alway have a look at the Cargo Dragon code for an example of how I do it. I tried to make it roughly Apollo-like.

One thing that always bothered me is that Orbiter has no provision for an airfoil in the XY plane, which, to me, would seem the appropriate orientation for an airfoil for a capsule that travels with +/-Z axis pointing into the airstream. But it can probably be worked around by setting the right lift and drag coefficients for the airfoils.

I guess I may have a look at it.

Thank you very much. That helped to fix at least one mistake in my code I had not on my mind =)
 

birdman

New member
Joined
Nov 29, 2016
Messages
13
Reaction score
0
Points
0
Now I have finally fixed the first error in my crosssection settings. But as more or less expected the problem of the "No lift" airfoil is still present.

Does someone have an idea how to check if at least the drag component is calculated correctly or if it's a legacy drag calculation?

I really don't understand why this isn't working out... :idk:
 
Top