Advanced Question Using external aerodynamics engines

Hurricane

Grinfeld Aerospace guy
Joined
Sep 16, 2011
Messages
211
Reaction score
0
Points
0
Hello everyone again! :hello:

As some of you may know, I am currently working on a project [called 'Arrowhead'], a SSTO.
In my endeavor to make the Arrowhead as completely realistic as possible, I decided to take some measures, one of them is trying to get the most realistic aerodynamic data source I could find, that being X-Plane's Blade Element Theory engine [as far as I understood, Orbiter uses a lookup engine].
Now my question is, can I disable Orbiter's default aerodynamics engine and use an external, more realistic one [perhaps one that I will design] by any means: a module, a part of the vessel's .dll/.cfg file?

~Thanks in advance, Oz. :tiphat:
 
Short answer: no.

Long answer: kind of. If you keep your surface velocity 0 each frame as far as orbiter is concerned, Orbiter's aerodynamics engine will get out of the way. You can just use the change in velocity of your ship each frame in order to calculate gravity's effect on the ship, and then manually move the ship to a new location each frame by keeping track of the actual velocity vector on your own. I did something like this with a "bullet" vessel that was designed to go very fast down low in order to keep it from getting a plasma trail, but I didn't integrate it with an external aerodynamics engine.
 
AFAIK you can.

You can disable atmospheric influence on the craft in custom dll, read atmospheric data and then add correct forces computed by your model. It will be probably difficult but not impossible I think.
 
So can I, or Can't I?
If I read Hielor correctly, then I only can if I "cheat" Orbiter's engine.
But if I read Loru correctly, then I can do it much more easily....:huh:
 
Wouldn't defining an airfoil and then having it's aerodynamic function return all coefficients as 0 do it?
 
Wouldn't defining an airfoil and then having it's aerodynamic function return all coefficients as 0 do it?

You have also take care about cross sections, supress drag etc. But that's possible.
 
You have also take care about cross sections, supress drag etc. But that's possible.


Cross sections are irrelevant. Orbiter asks you to provide a function that returns a coefficient of lift, drag and moment. If you set all of them to 0, all aerodynamic forces and moments would become 0.

I think that could work, then you could use AddForce to implement your own aerodynamic forces.
 
Cross sections are irrelevant. Orbiter asks you to provide a function that returns a coefficient of lift, drag and moment. If you set all of them to 0, all aerodynamic forces and moments would become 0.

I think that could work, then you could use AddForce to implement your own aerodynamic forces.

Still it's possible to do :D
 
Wouldn't defining an airfoil and then having it's aerodynamic function return all coefficients as 0 do it?

What do you mean?

Also, let me tell you how X-Plane calculates forces acting upon the aircraft:
1. It breaks it up to hundreds of pieces
2. It computes lift, drag & moment acting upon each piece
2a. Fuselage and bodies are calculated normally, based on given data, mainly sideslip (from the sim itself) and Cd (predefined)
2b. Wings and stabilizers are more complicated: each flight surface has a defined airfoil, which in turn has a defined set of parameters, such as Cd, Cl and Cm, reynolds number, and thickness ratio... X-Plane uses this 2D data and models the 3D force based upon it, I don't fully remember. The main limitation to that approach is that with spacecrafts, the Reynolds Number changes >radically< during different phases of the flight because of the radical change in atmospheric conditions and velocity.​
3. It adds all of the forces together and then divides that by the mass of the craft to get the actual forces
4. It repeats it 15 times per second.

This, in a nutshell, is how X-Plane does that.
My thought was to use a simplified version of that engine (on the tip of the fork):
look at the shape of the vehicle (frontal cross-section, planform area, etc.), compute it using aerodynamics formulas and then apply it to the vessel.
 
What do you mean?

Also, let me tell you how X-Plane calculates forces acting upon the aircraft:

Here's how Orbiter does it:

You use CreateAirfoil3 function to create either a horizontal or vertical airfoil. As one of the arguments, the function takes a pointer to another, user defined aerodynamic function. That function is given parameters such as current Mach number, Raynolds number, angle of attack and pointer to the vessel. That function calculates coefficients of lift, drag and moment, acting on the airfoil. You can define many airfoils, the forces and moments of each are summed and applied to the vessel.

If you define a single vertical and a single horizontal airfoil and have their aerodynamic functions return 0 for coefficients of lift, drag and moment, Orbiter will apply no aerodynamic forces to the vessel. That essentially circumvents Orbiter's aerodynamic system.

You can then create your own aerodynamic model and apply the forces yourself, by calling AddForce.


You can find more information in Orbiter\Orbitersdk\doc\API_Reference.pdf
 
OK, I'll look further into it when I'll actually be comfortable with C++.
Thanks for everything, Oz. :tiphat:
 
Last edited:
Back
Top