• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSX Acceleration vector

Messages
4
Country
poland
Hello, first message here, sorry if I ask something obvious.

I use Simconnect to retrieve telemetry from FSX. I would like to know what is the total acceleration vector applied to the plane, in the plane referential.

BODY ACCELERATION X, Y and Z seem to be what I need, but it looks like something is missing.

For example, when the plane follows a parabolic curve (first nose down, then pulling the joystick), the plane experiences a strong and sustained acceleration upward in it's referential but there is nothing like this in BODY ACCELERATION...only a short and weak vertical acceleration.

Transforming WORLD ACCELERATION in plane coordinates using a rotation matrix did not give satisfying result either.

What are exactly WORLD and BODY acceleration vectors? What should I do to get the full acceleration vector?
 
If I have a time stamp then I can directly use plane coordinates and derivate two times to get full acceleration vector.

Is there a way to get such a time stamp for SimConnect data received? Tried with engine on time and absolute time but I do not manage to have a 100th of a second precision.
 
I guess that you use the SimConnect_RequestDataOnSimObject function to receive data values.

In that case you can specify a SIMCONNECT_PERIOD. For exemple the SIMCONNECT_PERIOD_SIM_FRAME specifies that the data should be sent every simulated frame, whether that frame is rendered or not. I think its the best you can achieve for your time stamp.

So if you request at this rate both position and FSx time in tagged format, this may work.

Hope this help.
 
Last edited:
Thank you for your help! I tried with SIMCONNECT_PERIOD_SIM_FRAME but it does not help with the time, because FSX does not output data regularly.

Sometimes FSX will stutter a little bit because it loads something and then delay between two sim frames changes completely, and it results in huge spikes if I attempt to derivate plane position to find acceleration. I mean even with SIMCONNECT_PERIOD_SIM_FRAME I can't assume delay is constant between two telemetry packets.

Best solution (apart from having the precise time in ms for data) would be to fully understand what is acceleration body and world, and rebuild the full acceleration vector from it.

I hope someone could help I can't find a way to do it, almost teached my PC to fly the hard way last friday :)
Sorry for my english.
 
Last edited:
I remember that the SDK say something about highest priority or so...

May be you could try to have a look at that...
Wether it's relevant or not, I don't know...

Good luck
 
I has been working A LOT on accelerations and velocities but on AI objects ...First of all you need to understand clearly what is WORLD and BODY velocities and accelerations:


WORLD velocities:
-----------------
Are the velocities relative to the WORLD XYZ axes, (north,east,vertical)...with these i mean NOT relative to the aircraft's body...now here comes the BODY velocities:


BODY velocities:
----------------
Are those velocities RELATIVE to the aircraft's BODY (XYZ axes relative to aircraft's BODY), the origin point is the aircraft's BODY so all displacement and velocities are relative to it's BODY (aircraft's object)...NOW...if you have the aircraft with a BANK angle (not level) and a PITCH (not level), velocities are ROTATED, in other words the BODY velocities retrieved via SIMCONNECT are velocities that has been applied Matrix transformations according to the aircraft's BODY rotation/orientation..so far is the results i has got from some experiments..it took me a while to understand that why BODY velocities were seemed to be very WEIRD....but i was missing that velocities vectors are according to what ROTATION that the aircaft body has...

...So...from now i suggest you to work with *WORLD* ACCELERATIONs and VELOCITIEs....working directly with BODY velocities will get you a lot of headaches...believe me...(of course...unless you exactly know what you are doing...)

You may try to calculate the hypotenuse of all WORLD XYZ ACCELERATIONs (extracted from a single SIM_PERIOD notification) for get the TOTAL WORLD ACCELERATION vector:

total_accel = sqrt(pow(accelX,2) + pow(accelY,2) + pow(accelZ,2));

**IT MAY GIVE YOU** (because i didn't tested this..) the TOTAL WORLD ACCELERATION in a single SIM_PERIOD notification...which is I think what you are looking for..

I hope this helps...


Manuel Ambulo
 
Last edited:
Thank you for help :)

Yes this is what I assumed: world acceleration is the acceleration in world referential and body acceleration is the acceleration in plane referential.

I built the matrix to convert from world to body referential (using heading, pitch, roll angles) and it works: when I multiply world acceleration vector with this matrix I get body acceleration vector :)

But the problem is still there when I consider world acceleration: If I "pilot" the plane to follow a parabolic curve (first nose down then pulling the stick) world acceleration Y does not show a sustained acceleration as it should.

Yesterday I logged world acceleration and world speed for a simple flight experiment and put it in a spreadsheet. I take off, make a full turn on the left, and crash (sorry) at the starting point.

If I integrate world speed X and Z, it gives me world position X and Z. When I plot this position, the result is exactly as expected: I can see the loop I made with the plane. So world speed X and Z are OK.

But world acceleration vector is totally different...when I integrate it, it does not give anything like world speed. World acceleration data is not at all the acceleration of the plane in world referential. And it is not the acceleration felt by the pilot because it does not contain the vertical acceleration one can feel in parabolic flight.

I have no idea what it is!?
 
Last edited:
Back
Top