Question Aerodynamics- Lift Vector

Buck Rogers

Major Spacecadet
Joined
Feb 26, 2013
Messages
1,194
Reaction score
1,571
Points
128
I've worked with airfoils and "understand" (most of) the concepts behind it, but I'm breaking my head on a simple capsule!
So back to basics:

If I have a footbal (elipsoid) and spin it around it's Z axis the lift vector should remain constant.
This should also be easy to simulate in Orbiter.
So I make a football and give it simple symmetrical airfoils, but no matter what I do the lift vector spins around the Z axis, even though it has positive lift at all AOA?
Here is the data for Vesselbuilder
Code:
EMPTY_MASS = 0.5
VSIZE = 1
PMI = 0.16 0.16 0.10
CSECTIONS = 1.17 1.17 0.78
GRAVITYGDAMP = 0
ROTDRAG = 0.01 0.01 0.01

;<-------------------------AIRFOILS DEFINITIONS------------------------->

AIRFOIL_0_ID = 0
AIRFOIL_0_NAME = V_Airfoil_0
AIRFOIL_0_ORIENTATION = 0
AIRFOIL_0_REF = 0 0 0
AIRFOIL_0_C = 1.5
AIRFOIL_0_S = 1.1775
AIRFOIL_0_A = 1
AIRFOIL_0_POINT_0_AOA = -180
AIRFOIL_0_POINT_0_CL = 0.5
AIRFOIL_0_POINT_0_CM = 0
AIRFOIL_0_POINT_1_AOA = -90
AIRFOIL_0_POINT_1_CL = 1
AIRFOIL_0_POINT_1_CM = 0
AIRFOIL_0_POINT_2_AOA = 0
AIRFOIL_0_POINT_2_CL = 0.5
AIRFOIL_0_POINT_2_CM = 0
AIRFOIL_0_POINT_3_AOA = 90
AIRFOIL_0_POINT_3_CL = 1
AIRFOIL_0_POINT_3_CM = 0
AIRFOIL_0_POINT_4_AOA = 180
AIRFOIL_0_POINT_4_CL = 0.5
AIRFOIL_0_POINT_4_CM = 0

AIRFOIL_1_ID = 1
AIRFOIL_1_NAME = H_Airfoil_1
AIRFOIL_1_ORIENTATION = 1
AIRFOIL_1_REF = 0 0 0
AIRFOIL_1_C = 1.5
AIRFOIL_1_S = 1.1775
AIRFOIL_1_A = 1
AIRFOIL_1_POINT_0_AOA = -180
AIRFOIL_1_POINT_0_CL = 0.5
AIRFOIL_1_POINT_0_CM = 0
AIRFOIL_1_POINT_1_AOA = -90
AIRFOIL_1_POINT_1_CL = 1
AIRFOIL_1_POINT_1_CM = 0
AIRFOIL_1_POINT_2_AOA = 0
AIRFOIL_1_POINT_2_CL = 0.5
AIRFOIL_1_POINT_2_CM = 0
AIRFOIL_1_POINT_3_AOA = 90
AIRFOIL_1_POINT_3_CL = 1
AIRFOIL_1_POINT_3_CM = 0
AIRFOIL_1_POINT_4_AOA = 180
AIRFOIL_1_POINT_4_CL = 0.5
AIRFOIL_1_POINT_4_CM = 0
If anyone can tell me what airfoils I need (and what I'm missing) to simulate a spinning football (capsule) I'd be greatly relieved!
0588.jpg
 
What is your understanding,what the coordinates of the airfoil definition are?
 
In the case of a football, the center. So the lift vector shouldn't change when spinning on the Z axis?
 
In the case of a football, the center. So the lift vector shouldn't change when spinning on the Z axis?

I won't tell you if you are wrong or right, so don't worry, this is not a test, especially no reason to answer my questions with a question. The test is your add-on, if it behaves like you expect, we have all passed.

So, you really mean its in the center? What direction is up?
 
I've worked with airfoils and "understand" (most of) the concepts behind it, but I'm breaking my head on a simple capsule!
So back to basics:

If I have a footbal (elipsoid) and spin it around it's Z axis the lift vector should remain constant.
This should also be easy to simulate in Orbiter.
So I make a football and give it simple symmetrical airfoils, but no matter what I do the lift vector spins around the Z axis, even though it has positive lift at all AOA?
Here is the data for Vesselbuilder
Code:
EMPTY_MASS = 0.5
VSIZE = 1
PMI = 0.16 0.16 0.10
CSECTIONS = 1.17 1.17 0.78
GRAVITYGDAMP = 0
ROTDRAG = 0.01 0.01 0.01

;<-------------------------AIRFOILS DEFINITIONS------------------------->

AIRFOIL_0_ID = 0
AIRFOIL_0_NAME = V_Airfoil_0
AIRFOIL_0_ORIENTATION = 0
AIRFOIL_0_REF = 0 0 0
AIRFOIL_0_C = 1.5
AIRFOIL_0_S = 1.1775
AIRFOIL_0_A = 1
AIRFOIL_0_POINT_0_AOA = -180
AIRFOIL_0_POINT_0_CL = 0.5
AIRFOIL_0_POINT_0_CM = 0
AIRFOIL_0_POINT_1_AOA = -90
AIRFOIL_0_POINT_1_CL = 1
AIRFOIL_0_POINT_1_CM = 0
AIRFOIL_0_POINT_2_AOA = 0
AIRFOIL_0_POINT_2_CL = 0.5
AIRFOIL_0_POINT_2_CM = 0
AIRFOIL_0_POINT_3_AOA = 90
AIRFOIL_0_POINT_3_CL = 1
AIRFOIL_0_POINT_3_CM = 0
AIRFOIL_0_POINT_4_AOA = 180
AIRFOIL_0_POINT_4_CL = 0.5
AIRFOIL_0_POINT_4_CM = 0

AIRFOIL_1_ID = 1
AIRFOIL_1_NAME = H_Airfoil_1
AIRFOIL_1_ORIENTATION = 1
AIRFOIL_1_REF = 0 0 0
AIRFOIL_1_C = 1.5
AIRFOIL_1_S = 1.1775
AIRFOIL_1_A = 1
AIRFOIL_1_POINT_0_AOA = -180
AIRFOIL_1_POINT_0_CL = 0.5
AIRFOIL_1_POINT_0_CM = 0
AIRFOIL_1_POINT_1_AOA = -90
AIRFOIL_1_POINT_1_CL = 1
AIRFOIL_1_POINT_1_CM = 0
AIRFOIL_1_POINT_2_AOA = 0
AIRFOIL_1_POINT_2_CL = 0.5
AIRFOIL_1_POINT_2_CM = 0
AIRFOIL_1_POINT_3_AOA = 90
AIRFOIL_1_POINT_3_CL = 1
AIRFOIL_1_POINT_3_CM = 0
AIRFOIL_1_POINT_4_AOA = 180
AIRFOIL_1_POINT_4_CL = 0.5
AIRFOIL_1_POINT_4_CM = 0
If anyone can tell me what airfoils I need (and what I'm missing) to simulate a spinning football (capsule) I'd be greatly relieved!
View attachment 39297

Are you trying to get aerodynamic forces acting on a spinning ellipsoid, or trying to apply rotational aerodynamic forces on an ellipsoid? The former is going to require some terrible hacks to get into Orbiter, where the latter can be done with clever airfoil assignment.

You can only define airfoils in the +/- Y and +/-X directions relative to the vessel. The lift vectors will rotate with the vessel relative to an external frame of reference. If you want a rotating ellipsoid but a lift vector that always remains stationary relative to the external frame of reference you basically will have to rotate your mesh relative to the vessel coordinate system.
 
@Urwumpe Not feeling like Turing is behind the curtain:). Your being very cryptical?
If I were making a wing then the coordinates of the aeronymanic force I would place a little behind and above the wing center (or combined lift area) on the vertical aerofoils and with different horizontal values would expect changes in lift on the Z axis.
You seem to be implying you've noticed a critical error (conceptually on my part), which is highly likely and why I thought I'd post, please tell.
Are you trying to get aerodynamic forces acting on a spinning ellipsoid, or trying to apply rotational aerodynamic forces on an ellipsoid?
The former. I think I've seen addons with hacks in that direction. Does that mean one can't simulate a simple football in Orbiter?(no touchdown:()

How would one recommend setting up the aerofoils for a capsule addon?
 
Well, I wanted to lure you into the direction of thinking about lift and drag and how they are related to the direction of airflow. And I think, you learn better by figuring it out yourself. Which also helps that I don't understand your original expectation, except as seeing that its obviously wrong. :cool:
 
related to the direction of airflow
you mean like this?
behind and above
learn better by figuring it out yourself
Totally agree, that's why I like orbiter, but sometimes (especially if one gets stuck) it is nice to have a little advice from someone that understands the material better than I do (so basically anyone) :) as a sanity check if it's my understanding of physics, orbiter, or both.
Which also helps that I don't understand your original expectation, except as seeing that its obviously wrong
I'm sorry, this is still a little too cryptic? But thank you for your input anyway.:)
 
You probably have to go into the hard theory, there's probably no coincidence that a football has such a distinct shape and has to be shot with in a way that allow it to spin in a controlled fashion. My guess is that this whole US football technique somehow generates lift, allowing the ball to fly longer. Probably works with Rugby too. Could have been a Mythbusters experiment 😅

Even in soccer, which is really the 'simple' case because the ball is a spheroid, it seems (and I often heard, as a rumor) that the angular momentum the player 'gives' to the ball has a direct consequence on the way it behaves in the air.

Orbiter does simulate spin stabilization, I remember when the feature was added, so that part should work.
 
Last edited:
Well, where is "ABOVE" the airflow? Its just a vector, after all. Without a second vector or point, everything perpendicular to it can be in a plane, right?
 
You probably have to go into the hard theory, there's probably no coincidence that a football has such a distinct shape and has to be shot with in a way that allow it to spin in a controlled fashion. My guess is that this whole US football technique creates lift, allowing the ball to fly longer. Probably works with Rugby too. Could have been a Mythbusters experiment

From my experience, not much more lift as any other ball or a rugby egg. Throwing it spinstabilized just makes it easier to catch, though a small bit of lift might explain how I was able to damage three ceiling lights in a row with one....
 
The former. I think I've seen addons with hacks in that direction. Does that mean one can't simulate a simple football in Orbiter?(no touchdown:()
Everything can be simulated, but to what degree of accuracy and how much effort you want to put into it to get that accuracy are the only questions. If I had to do it, I'd probably look up some lift and drag data for spinning ellipsoids, maybe from NASA, and try to apply that with some airfoil definitions, and then rotate the mesh in vessel coordinates to get the spinning visual. There isn't a way to integrate aerodynamic forces on an arbitrarily shaped vessel in Orbiter. That generally requires computational fluid dynamics modeling which is very complicated and far too computationally expensive to do in real time during the simulation (I am an engineer and worked with this sort of modeling for many years).
How would one recommend setting up the aerofoils for a capsule addon?
Those are set up just like any other vessel with lifting surfaces. Capsules, though blunt, do generally have lift when pitched. Pitching is used in real space capsules to control rate of re-entry into the atmosphere. Basic airfoils can be defined in the vessel X and Y directions to mimic the capsule aerodynamics. They are basically vessels that fly backwards with very low lift airfoils.
 
If I have a footbal (elipsoid) and spin it around it's Z axis the lift vector should remain constant.
This should also be easy to simulate in Orbiter.
So I make a football and give it simple symmetrical airfoils, but no matter what I do the lift vector spins around the Z axis, even though it has positive lift at all AOA?

This is unfortunately not as easy as it would seem to simulate in Orbiter.

The problem is not specifically a problem with Orbiter or the way it handles forces, but rather is a limitation of the Airfoil class.

The Airfoil class (CreateAirfoil3, etc.) really expects aerodynamic force to be applied by something that looks like a wing, or a vertical stabilizer. So with your ellipsoid what you want is symmetrical lift and drag that varies with pitch only, but not with roll. The problem is that the Airfoil class is only capable of applying forces in the "lift" and "drag" direction (along a vector that is normal or collinear with the flow over the surface).

This is a problem because "roll" needs to be simulated as a combination of "pitch" and "yaw" (or rather the components projected in to the pitch and yaw direction), this also has the unfortunate effect of making it hard to define aerodynamic behavior near +/-90° yaw and or pitch because of the singularities at those points.


There are other options though:

  • You can forgo the Orbiter airfoil model entirely, and use the AddForce function to make your own model.

  • You can do what NASSP does, and "project" the airflow coordinate system into a coordinte system that works with Orbiter's:

(This code is under GPL2) reference: https://github.com/orbiternassp/NAS...es/ProjectApollo/src_csm/saturnmesh.cpp#L1005

C++:
/***************************************************************************
  This file is part of Project Apollo - NASSP
  Copyright 2004-2005 Jean-Luc Rocca-Serra, Mark Grant

  ORBITER vessel module: generic Saturn base class
  Saturn mesh code

  Project Apollo is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  Project Apollo is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with Project Apollo; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

  See http://nassp.sourceforge.net/license/ for more details.

  **************************************************************************/


//....
void CSMAeroAxisSymmetricalCoeff(double aoa_T, double Kn, double &C_M, double &C_A, double &C_NY)
{
    //From the CSM Data Book, table 5-6.
    static const double alpha_arr[19] = { 0, 10 * RAD, 20 * RAD, 30 * RAD, 40 * RAD, 50 * RAD, 60 * RAD, 70 * RAD, 80 * RAD, 90 * RAD, 100 * RAD, 110 * RAD, 120 * RAD, 130 * RAD, 140 * RAD, 150 * RAD, 160 * RAD, 170 * RAD, 180 * RAD };
    static const double C_A_free[19] = { 2.41,2.72,2.97,3.08,3.06,2.84,2.4,1.72,0.88,0.01,-0.84,-1.3,-1.6,-2.08,-2.31,-2.36,-2.26,-2.05,-1.96 };
    static const double C_N_free[19] = { 0,0.43,1.06,1.84,2.68,3.51,4.23,4.73,4.97,5.01,5.07,4.86,4.39,3.7,2.89,2.08,1.29,0.49,0 };
    static const double C_A_cont[19] = { 0.54,0.55,0.57,0.61,0.66,0.69,0.69,0.65,0.56,0.46,0.28,0.01,-0.31,-0.65,-0.97,-1.22,-1.41,-1.52,-1.69 };
    static const double C_N_cont[19] = { 0,0.28,0.69,1.17,1.66,2.1,2.48,2.72,2.81,2.78,2.55,2.2,1.77,1.32,0.89,0.54,0.24,0.06,0 };

    //Calculated for CG location X=950, Y=0, Z=0 inches
    static const double C_M_cg_free[19] = { 0,0.0440, -0.1436, -0.4349, -0.7318, -0.9010, -1.0068, -0.9859, -0.8778, -0.7682, -0.9437, -1.0544, -1.0481, -0.9350, -0.6710, -0.2369,  0.3820, -0.0115, 0 };
    static const double C_M_cg_cont[19] = { 0,0.0977,  0.1069,  0.0230, -0.1085, -0.2520, -0.3901, -0.5021, -0.5803, -0.6476, -0.6132, -0.5379, -0.4219, -0.2707, -0.1247,   0.0206, 0.0981,  0.0145, 0 };

    int i;
    for (i = 0; i < 18 && alpha_arr[i + 1] < aoa_T; i++);
    double f = (aoa_T - alpha_arr[i]) / (alpha_arr[i + 1] - alpha_arr[i]);

    if (Kn > 10.0)
    {
        //Free flow
        C_A = C_A_free[i] + (C_A_free[i + 1] - C_A_free[i]) * f;
        C_NY = C_N_free[i] + (C_N_free[i + 1] - C_N_free[i]) * f;
        C_M = C_M_cg_free[i] + (C_M_cg_free[i + 1] - C_M_cg_free[i]) * f;
    }
    else if (Kn < 0.01)
    {
        //Continuum flow
        C_A = C_A_cont[i] + (C_A_cont[i + 1] - C_A_cont[i]) * f;
        C_NY = C_N_cont[i] + (C_N_cont[i + 1] - C_N_cont[i]) * f;
        C_M = C_M_cg_cont[i] + (C_M_cg_cont[i + 1] - C_M_cg_cont[i]) * f;
    }
    else
    {
        //Mix
        double g = (Kn - 0.01) / 9.99;
        C_A = g * (C_A_free[i] + (C_A_free[i + 1] - C_A_free[i]) * f) + (1.0 - g)*(C_A_cont[i] + (C_A_cont[i + 1] - C_A_cont[i]) * f);
        C_NY = g * (C_N_free[i] + (C_N_free[i + 1] - C_N_free[i]) * f) + (1.0 - g)*(C_N_cont[i] + (C_N_cont[i + 1] - C_N_cont[i]) * f);
        C_M = g * (C_M_cg_free[i] + (C_M_cg_free[i + 1] - C_M_cg_free[i]) * f) + (1.0 - g)*(C_M_cg_cont[i] + (C_M_cg_cont[i + 1] - C_M_cg_cont[i]) * f);
    }

    //sprintf(oapiDebugString(), "aoa_T %lf Kn %lf C_M %lf C_A %lf C_NY %lf i %d", aoa_T*DEG, Kn, C_M, C_A, C_NY, i);
}

void CSMAeroVertCoeff(VESSEL *v, double aoa, double M, double Re, void *context, double *cl, double *cm, double *cd)
{
    //Calculate unit airspeed vector
    VECTOR3 vec;
    v->GetAirspeedVector(FRAME_LOCAL, vec);
    vec = unit(vec);

    //Calculate axis symmetric angles
    double cos_alpha, sin_alpha, alpha, phi_A, C_L, C_D, cos_phi_A;

    cos_alpha = vec.z;
    alpha = acos(vec.z);
    sin_alpha = sin(alpha);
    phi_A = atan2(vec.x, -vec.y);
    cos_phi_A = cos(phi_A);

    //Calculate Knudsen number
    double Kn = M / Re * 1.482941286; //Knudsen number. Factor is sqrt(1.4*pi/2)

    double C_A, C_NY, C_M;
    CSMAeroAxisSymmetricalCoeff(alpha, Kn, C_M, C_A, C_NY);

    //Calculate total lift and drag coefficients
    C_L = cos_alpha * C_NY - sin_alpha * C_A;
    C_D = sin_alpha * C_NY + cos_alpha * C_A;

    double fact = sqrt(vec.y*vec.y + vec.z*vec.z);
    *cl = 0.0; //C_L * cos_phi_A*fact; //TBD: Use lift when full drag gets used, too
    *cd = C_D;
    *cm = C_M * cos_phi_A;

    //TBD: Remove when RTCC takes drag into account properly
    *cd = (*cd)*0.05;
   
    //sprintf(oapiDebugString(), "C_L %lf C_D %lf cos_phi_A %lf fact %lf cl %lf cd %lf cm %lf", C_L, C_D, cos_phi_A, fact, *cl, *cd, *cm);
    //sprintf(oapiDebugString(), "Vertical: aoa %lf aoa_T %lf phi_A %Lf M %lf Re %lf Kn %lf CD %lf CL %lf CM %lf", aoa*DEG, alpha*DEG, phi_A*DEG, M, Re, Kn, *cd, *cl, *cm);
}

void CSMAeroHorizCoeff(VESSEL *v, double aoa, double M, double Re, void *context, double *cl, double *cm, double *cd)
{
    //Calculate unit airspeed vector
    VECTOR3 vec;
    v->GetAirspeedVector(FRAME_LOCAL, vec);
    vec = unit(vec);

    //Calculate axis symmetric angles
    double cos_alpha, sin_alpha, alpha, phi_A, C_L, sin_phi_A;

    cos_alpha = vec.z;
    alpha = acos(vec.z);
    sin_alpha = sin(alpha);
    phi_A = atan2(vec.x, -vec.y);
    sin_phi_A = sin(phi_A);

    //Calculate Knudsen number
    double Kn = M / Re * 1.482941286; //Knudsen number. Factor is sqrt(1.4*pi/2)

    double C_A, C_NY, C_M;
    CSMAeroAxisSymmetricalCoeff(alpha, Kn, C_M, C_A, C_NY);

    //Calculate total lift coefficient
    C_L = cos_alpha * C_NY - sin_alpha * C_A;

    double fact = sqrt(vec.x*vec.x + vec.z*vec.z);
    *cl = 0.0;    //-C_L * sin_phi_A*fact; //TBD: Use lift when full drag gets used, too
    *cd = 0;    //Total drag is applied in other airfoil function
    *cm = C_M * sin_phi_A;

    //sprintf(oapiDebugString(), "C_L %lf sin_phi_A %lf fact %lf cl %lf cm %lf", C_L, sin_phi_A, fact, *cl, *cm);
    //sprintf(oapiDebugString(), "Horizontal: beta %lf aoa_T %lf phi_A %lf M %lf Re %lf Kn %lf CD %lf CL %lf CM %lf", aoa*DEG, alpha*DEG, phi_A*DEG, M, Re, Kn, *cd, *cl, *cm);
}

//....

CreateAirfoil3(LIFT_VERTICAL, _V(0, 0, 0), CSMAeroVertCoeff, NULL, 154.0*0.0254, 129.4*0.3048*0.3048, 0.1);
CreateAirfoil3(LIFT_HORIZONTAL, _V(0, 0, 0), CSMAeroHorizCoeff, NULL, 154.0*0.0254, 129.4*0.3048*0.3048, 0.1);

//....

  • Or, once Orbiter 2024 release, you could use the new airfoil model:
AirfoilCoeffFuncEx2, and VESSEL::CreateAirfoil4 which allows you to specify aerodynamic coeffiicient functions as function of: aoa, yaw, and roll at the same time, or as a just a vector function (the vector function may be more useful for lookup functions) .
 
Or, once Orbiter 2024 release, you could use the new airfoil model:
AirfoilCoeffFuncEx2, and VESSEL::CreateAirfoil4 which allows you to specify aerodynamic coeffiicient functions as function of: aoa, yaw, and roll at the same time, or as a just a vector function (the vector function may be more useful for lookup functions) .
I cannot wait for this. I made a Cessna 172 add-on way way back in the day and had to build my own airfoil models to allow it to stall and spin. This would make that sort of modeling much easier.
 
Thanks, saves me trying to bend what won't bend. I thought one could maybe adjust the co.s and get close.
I guess in short, me want :)

Also would it make sense (considering capsules being so common) to have an airfoil function (or fallback thereof) that if only one airfoil is defined it defaults to an object with symmetries on 2 axis and applies it in 360°?
 
Also would it make sense (considering capsules being so common) to have an airfoil function (or fallback thereof) that if only one airfoil is defined it defaults to an object with symmetries on 2 axis and applies it in 360°?
For capsules you would typically have two airfoils, one for the pitch axis and the other for the yaw axis.

As for the aerodynamics of spinning (American) footballs, the intent of the spin isn't to develop lift (though it does produce some, but not necessarily upwards, see next paragraph), but to gyroscopically stabilize the ball so it goes through the air point-first, reducing drag and hence increasing the distance of the throw. If the spinning ball is pitched to the incoming air it will get a lift contribution from that.

Spinning can drag air around the body, causing a pressure differential normal to the direction of motion and axis of rotation. This is called the Magnus effect. This effect causes the unusual flight of a curve ball in baseball, the hook of a soccer ball, or flight of a badly sliced golf ball, and has been used for lifting/sailing forces on rotating cylinders for locomotion. This effect can be modeled, but you would need to find experimental data correlating the force to the spin rate, angle of attack, etc.. and try to bake that into your aerodynamics. This force isn't generally going to be left-right or up-down relative to the ball/vessel, so modeling it with an airfoil isn't going to work well. You probably would need to use add_force and determine the direction based on pitch, yaw, and rotation rate. I hope you like math and vector cross products because they would be needed for this.
 
For capsules you would typically have two airfoils, one for the pitch axis and the other for the yaw axis.
Yes, and both are identical

The problem is, as n72.75 says:
symmetrical lift and drag that varies with pitch only, but not with roll
which looks like is only solvable in code, preferably with the new airfoil function.
I have an airfoil setup for the capsule but wasn't happy with it because of the discrepency with roll/bank, the lift vector inverts, even though the visual model doesn't actually change AOA (this should only be affected by pitch).
 
Yes, and both are identical

The problem is, as n72.75 says:

which looks like is only solvable in code, preferably with the new airfoil function.
I have an airfoil setup for the capsule but wasn't happy with it because of the discrepency with roll/bank, the lift vector inverts, even though the visual model doesn't actually change AOA (this should only be affected by pitch).

I'm still not entirely clear on the problem(s) you are trying to solve. Are you trying to model a capsule, or a spinning football? If the latter, are you trying to determine the lift produced by the spinning / Magnus effect, or simply the lift force on a body spinning on an axis that is at a nearly constant angle to the incoming wind? Do you have any data on lift forces on ellipsoids / footballs? Space capsules and footballs fly at radically different speeds and compressibility can affect all these things.
 
My apologies to all for any confusion:)
I thought by simplifying the situation I'd make it easier for myself and others to resolve.

Simulating a spinning football correctly with Magnus effect would be a nice "little" project, but I know that would be no trivial task, and is not required.
The issue is far more mundane.

Very simply, I would like to have a capsule that with 0 pitch and 0 AOA can rotate/bank around it's Z axis without changing it's lift vector.
 
Very simply, I would like to have a capsule that with 0 pitch and 0 AOA can rotate/bank around it's Z axis without changing it's lift vector.

Then give it no lift, only drag. 😉
 
Back
Top