Jump to content
Sign in to follow this  
[frl]myke

Missile settings: a mystery

Recommended Posts

Ok, i'm experimenting with missile settings, mainly to get a better accuracy in speed and range. And lads, this is pure guesswork. Forget the BIWIKI, the infos there are inaccurate if not even wrong.

I've collected some data to find out how speed and range could be calculated, taking realworld data as source. But i'm more confused than before.

Maybe someone from you can see some relations between setting and how they calculate.

First setting: maxSpeed

Seems this config entry is useless for missiles.

Fixed values for:

- thrust = 100

- thrusttime = 10

Values tested: 8

From 100 to 800, 100 stepwidth.

Outcome: regardless if maxSpeed was 100 or 800 (or inbetween), the resulting speed was always between 904.128 and 904.285 m/s.

Same was with setting "airFriction".

thrust = 100

thrusttime = 10

maxSpeed = 500

Testresult:

-0.000001 = 463.505m/s

-0.00001 = 463.767m/s

-0.0001 = 463.841m/s

-0.001 = 463.383m/s

-0.01 = 463.241m/s

-0.1 = 463.647

-1 = 463.288m/s

-10 = 463.366m/s

As you see, no influence through airFriction.

The first setting that had a real effect was thrusttime. It influences topspeed aswell as range.

Settings: thrust = 100; airFriction = -0.00005 (BIS default); maxSpeed = 500;

Results (first row being thrusttime, second is reached maxspeed and third is reached distance):

1 = 84m/s = 1315 meter

2 = 162m/s = 2323 meter

3 = 230m/s = 3081 meter

4 = 287m/s = 3763 meter

5 = 335m/s = 4352 meter

6 = 373m/s = 4875 meter

7 = 405m/s = 5389 meter

8 = 429m/s = 5828 meter

And finally, thrust.

Settings here: thrusttime = 10; maxSpeed = 500; rest as BIS default:

10 = 67.842m/s

20 = 129.19m/s

30 = 184.782m/s

40 = 235.36m/s

50 = 281.568m/s

60 = 323.947m/s

70 = 362.966m/s

80 = 399.077m/s

90 = 432.599m/s

100 = 464.263m/s

120 = 520.032m/s

140 = 570.93m/s

160 = 615.788m/s

180 = 655.848m/s

200 = 693.453m/s

250 = 774.226m/s

300 = 843.511m/s

400 = 958.785m/s

500 = 1054.72m/s

600 = 1138.49m/s

700 = 1212.95m/s

800 = 1280.95m/s

900 = 1343.63m/s

1000 = 1401.69m/s

As you see, it is not linear. Doubling a value doesn't double the speed.

Sadly i really suck at math so i can't figure out how to get accurate (more or less) config values for speed (thrust) and range. If anyone can help, does see how this could be calculated, any help would be welcome.

If some more data has to be evaluated, let me know.

To remember: what i need is a way to get accurate (as close as possible) config values based on known speed and range.

FYI: did you know that BIS Sidewinder flies with ~Mach 6? The real thing has about Mach 2.5.

Edited by [FRL]Myke

Share this post


Link to post
Share on other sites

Mando might know.

I have some background in physics and math, might be able to help if all else fails.

Share this post


Link to post
Share on other sites

@Evil Echo

that i'm asking for help already means that "all else failed". :D

AFAIK Mandoble doesn't deal with those config settings. If i'm correct he works with vector and velocity commands.

:EDITH:

Just to make it clear. What i need is some kind of formula where i can insert desired speed and range and it spits out respective values for thrust and thrusttime.

So i know that a AIM-9M reaches Mach 2.5 (2.5 * 343m/s = 857.5m/s) and reaches 17700 meters, what are the (more or less) corract config values for this?

Edited by [FRL]Myke

Share this post


Link to post
Share on other sites

Oh my.... :ghostface:

I'll see what I can do - have access to reference tomes on ballistics, but still need to reverse-engineer what BIS uses for their model.

One thing comes to mind - sideAirFriction vs AirFriction in the config. Also, I know many missiles use two-motors, one for initial boost and another to sustain. So the thrust phase might be much shorter than you believe.

Edited by Evil_Echo

Share this post


Link to post
Share on other sites
Oh my.... :ghostface:

I'll see what I can do - have access to reference tomes on ballistics, but still need to reverse-engineer what BIS uses for their model.

One thing comes to mind - sideAirFriction vs AirFriction in the config. Also, I know many missiles use two-motors, one for initial boost and another to sustain. So the thrust phase might be much shorter than you believe.

AFAIK there are only very few dual motors missiles. Most have single solid-fuel rocket motors. However, since ArmA 2/OA doesn't have dual-motor simulation it is meaningless anyway.

But did a test with sideAirFriction and it was quite interesting. Basic missile settings where:

	thrust = 100;
	maxSpeed = 500;
	thrustTime = 10;
	timeToLive = 30;

Varied sideAirFriction from 0.2 to 0.9 in steps of 0.1.

I've recorded reached max speed, reached distance and time it needed from firing until max speed is reached (acceleration time):

config = speed = distance = acc. time

0.2 = 462.99 = 6633.25 = 7.89999

0.3 = 395.36 = 5222.48 = 7.7

0.4 = 348.197 = 4338.14 = 7.7

0.5 = 312.898 = 3721.55 = 7.7

0.6 = 284.842 = 3245.12 = 7.5

0.7 = 263.047 = 2934.62 = 7.6

0.8 = 243.933 = 2652.5 = 7.5

0.9 = 228.22 = 2406.71 = 7.4

Results were reproducable with a fluctuation about +-1% for all values.

So it seems that it turns out to be very complicated as acceleration, max speed and flightrange are in some crude relations in thrust, thrusttime and sideAirFriction.

Share this post


Link to post
Share on other sites
Myke;1680845']

So i know that a AIM-9M reaches Mach 2.5 (2.5 * 343m/s = 857.5m/s) and reaches 17700 meters' date=' what are the (more or less) corract config values for this?[/quote']

Beware with real numbers, max envelop numbers for range and speed are usually corresponding with very high altitudes and firing speeds (of the plane) where air friction is quite small, the missile engine doesnt need external oxigen to work and its effectiveness is maximized and also its thrustless and practical range is maximized too, even more if the target is well below the firing unit. So, take these max performance numbers with a grain of salt and try to downgrade them to normal A2 operational altitudes (nothing close to 40K feet).

Share this post


Link to post
Share on other sites

Good to see we have a handle on the friction issue now. Those numbers start to make sense to me.

The reason behind your issue with doubling of some values is related to the physics. Most people learn about acceleration in high school, but you only get taught the case that ignores friction. For good reason too, you need good skills in calculus to deal with the more complicated cases. Which is what this is and why doubling some numbers does not lead to doubling the final speed - friction eats up more power at higher speeds.

---

Additional. What was the mass of the missile you are using during testing?

Edited by Evil_Echo

Share this post


Link to post
Share on other sites
Beware with real numbers, max envelop numbers for range and speed are usually corresponding with very high altitudes and firing speeds (of the plane) where air friction is quite small, the missile engine doesnt need external oxigen to work and its effectiveness is maximized and also its thrustless and practical range is maximized too, even more if the target is well below the firing unit. So, take these max performance numbers with a grain of salt and try to downgrade them to normal A2 operational altitudes (nothing close to 40K feet).

Aye, nonetheless i need a way to get desired config values, regardless if it's "real data" or scaled down. At the very end, missiles should correspond with the real thing at least when it comes to ranges in the emaning that a AMRAAM does have higher engagement distances than a AIM-9 series.

And even then, i guess a rather "slow" AIM-9M with speed of Mach 2.5 would fit better into the "small worlds of ArmA 2" than the Mach 6 as it is by BIS default. With these speeds, you don't have time to react.

Besides this, larger ranges for missiles down't mean you can lock them as far as those are vehicle settings, not weapon or ammo settings.

And not forgetting the ultrareal implementation from BIS allows missiles to drift even backwards.....speak about realism with Maruk and Suma. ;)

:EDITH:

Additional. What was the mass of the missile you are using during testing?

The mass was/is 46kg. Testobject was a AGM-114, fired from a AH-1Z in hovering mode.

:EDITH2:

Just remembered, did once a test with different masses, based on a Ch-29. I've varied it from 0.001 (1 gram) to 20000 (20 tons) and couldn't see any difference in acceleration, speed or range. The only mass setting that had an effect was mass 0 (no mass). With zero mass, the missile didn't accelerated nor did it slow down after engine burnout. It kept the inertial speed given by the firing plane over the whole timeToLive distance. So i excluded any effect of mass to flight behaviour.

Edited by [FRL]Myke

Share this post


Link to post
Share on other sites

I've done some tests with classes with different relevant values (thrust, sideairfriction) and the approximate differential equation of rocket/missile motion seems to be:

v = v + thrust*dt - 0.0022*sideairfriction*dt*v^2

(there's also the vertical gravity component, probably just g*dt, but i didn't go into it).

I didn't verify the formula in Matlab yet, only with a script, so can't guarantee its accuracy. But it's in the ballpark.

Edited by Q1184

Share this post


Link to post
Share on other sites
I've done some tests with classes with different relevant values (thrust, sideairfriction) and the approximate differential equation of rocket/missile motion seems to be:

v = v + thrust*dt - 0.0022*sideairfriction*dt*v^2

(there's also the vertical gravity component, probably just g*dt, but i didn't go into it).

I didn't verify the formula in Matlab yet, only with a script, so can't guarantee its accuracy. But it's in the ballpark.

Excellent...but...i feel ashamed that i have to ask...could you translate this for me? It looks like some sort of chinese to me. Not your fault, just be aware that you're talking to a mathematic idiot. :D

Share this post


Link to post
Share on other sites
Myke;1681238']Excellent...but...i feel ashamed that i have to ask...could you translate this for me? It looks like some sort of chinese to me. Not your fault' date=' just be aware that you're talking to a mathematic idiot. :D[/quote']

From a coder point of view, dt would be your timestep size.

From a math/physics POV, it's a form of differential equation. dv(t)/dt + 0.0022*sideairfriction*v(t)^2 - thust = 0.

I use Maple vs Matlab, but should be able to grind that just fine.

Edited by Evil_Echo

Share this post


Link to post
Share on other sites
From a coder point of view, dt would be your timestep size.

From a math/physics POV, it's a form of differential equation. I use Maple vs Matlab, but should be able to grind that just fine.

Oookay...if it was your goal to confuse me more...mission accomplished. ;)

Share this post


Link to post
Share on other sites

Sorry - this kind of math does cause insanity at times.

The good news is that the solution to that equation leads to a "simple" form.

velocity(t) = (tanh(t*sqrt(sidefriction*thrust)) * sqrt(sidefriction*thrust) ) / sidefriction

which when plotted gives a nice velocity curve that rises in nearly a straight line for a while and then levels off to a near flat line. Using your numbers - at about 10 seconds. So this is looking good ( aside from your confusion, but bear with us ).

Now just give us a bit of time to solve the formula in another way so that it we can get your thrust values or sidefriction for you.

Edited by Evil_Echo

Share this post


Link to post
Share on other sites
Sorry - this kind of math does cause insanity at times.

The good news is that the solution to that equation leads to a "simple" form.

velocity(t) = (tanh(t*sqrt(sidefriction*thrust)) * sqrt(sidefriction*thrust) ) / sidefriction

which when plotted gives a nice velocity curve that rises in nearly a straight line for a while and then levels off to a near flat line. Using your numbers - at about 10 seconds. So this is looking good ( aside from your confusion, but bear with us ).

Now just give us a bit of time to solve the formula in another way so that it we can get your thrust values or sidefriction for you.

Mate, a formula would be more than nice :D

I'm sorry for being such a mathematic idiot and i have to say thanks for your patience with me. I really try my best.

Share this post


Link to post
Share on other sites

No problem friend. Have faith, we'll get something good for you. I'm just sorry for being slow.

Share this post


Link to post
Share on other sites
No problem friend. Have faith, we'll get something good for you. I'm just sorry for being slow.

No worries, I'm writing the config so i can just insert correct values afterwards. Actually i have ~900 lines written of the config.cpp so i'm halfway done with. ;)

Share this post


Link to post
Share on other sites

Ok - more good news.

I figure you have a couple of known values and just want the other value to fit the performance.

Let's assume you know....

  • Max speed - a common number in the literature and really what you're trying to fit the config to match.
  • Burn time - again a common number to locate or easy value to assume. More on that later...

What you need then are the sideAirFriction and/or thrust values. The friction value is relatively constant across missile types since it represents the geometry. You can vary this a bit to tune the steering, but let's aim for the thrust numbers.

So I take my fancy ( and confusing :D ) formula from before and try to solve for the thrust. And the answer is quite ugly, I'll spare your sanity by not showing you that.

But I don't need the general solution. We're looking at the thrust needed to get us to the top speed for this missile. Which means I can borrow a trick from calculus and get what is called the limit. Which is NOT ugly at all and does not even mention the burn time ( after all - I'm asking for the max speed at time infinity - well after the motor has stopped firing ).

That answer is...

V = sqrt(0.022*thrust*sideAirFriction) / (0.022 * sideAirFriction )

Very cool. We can solve that for the values we need.

If you know the value of thrust and want the friction...

sideAirFriction = thrust / ( 0.022 * V^2 )

and if you want the thrust, having already picked a friction value to use...

thrust = 0.0022 * V^2 * sideAirFriction

I'd use the 2nd formula and just fiddle with the sideFriction to get appropriate maneuvering characteristics. Anyway - hope this helps.

Share this post


Link to post
Share on other sites

Aye Evil Echo, this gives nearly good values to start with. As you say, some fiddling around and a little trial and error but not as much as without this formula.

I have to say, the missile simulation in A2/OA is fucked up. I'm sure even BIS programmers don't know how it works. How else would you explain that BIS Sidewinders have a topspeed of Mach 6? Realistic would be Mach 2.5. The fastest Missile is the AIM-54 with Mach 5, using gravitational acceleration to reach this speed (top down attack).

So getting these settings right is IMHO more than only cosmetics as a slower (and therefor more realistic) AA missile would leave more time to countermeasures and maneuvres. Right now, once a launch is deteted, the missile is already almost at your position.

But i'm going OT.

Another thing i've encountered which is interesting: acceleration time seems to be roughly 3/4 of the thrusttime.

So thrusttime = 10 means that the missile takes ~7.5 seconds to reach top speed. With thrusttime = 40 it takes nearly 30 seconds.

Dosn't really help to get a realistic flight behaviour. Missiles accelerates much faster than that, taking range into account. So at the end, it is back to guesswork. Not because the formula, this is really excellent and brings me a huge step forward, but because the simulation of missiles is so horrible.

Share this post


Link to post
Share on other sites

I can't say whether the simulation is terrible or not without being able to read the source code for it or at least the internal notes on it. All we know is that our knowledge is incomplete and it appears the stock configuration are not always in agreement with publications of the RL specs.

In the best of worlds we'd either have better info or the ability to define our own simulations. Sadly we cannot right now and do the best we can with what we have.

I'm glad the formula helped. If we keep plugging away, perhaps you, I, Mando, Q1184 all can figure out more details that can be of use.

Share this post


Link to post
Share on other sites

It seems to me that the thrust in these configs is just a force expressed as mass * expected acceleration (and you already have the mass).

Acceleration time should be the time required to reach max speed while you have internal thrust or while you have the help of the gravity. That means that even if you have a thrust time of 1 minute, you might be accelerating for just 10 seconds before reaching maximum speed for a particular air density and drag factor of the missile cross section. And that would mean that max speed factor is effectively there, but probably it is compensated with altitude, considering the decrease of air density. So might be that maxspeed config value is just max speed at sea level, which would explain why you can exceed that speed firing the missile at 1000m.

Share this post


Link to post
Share on other sites
which would explain why you can exceed that speed firing the missile at 1000m.

I would agree with you if tests didn't proved this already wrong...or horribly f***ed up:

maxSpeed 100 = 904.224m/s measured topspeed

maxSpeed 800 = 904.174m/s measured topspeed

It seems to me that the thrust in these configs is just a force expressed as mass * expected acceleration (and you already have the mass).

If you mean mass as a theoretical number, yes, this i have...or Wikipedia has it. :D

If you mean mass that is applied to the model, then i have to tell you that this mass has no effect on flight behaviour. Regardless if it's 20 tons or 1 gram, acceleration aswell as topspeed or flightpath after engine burnout isn't affected at all.

That means that even if you have a thrust time of 1 minute, you might be accelerating for just 10 seconds before reaching maximum speed for a particular air density and drag factor of the missile cross section.

I highly doubt it that such factors are taken into consideration but i will do some tests with different altitudes.

@Evil Echo

hope you got me right, you are a great help and remaining problems aren't caused by your explenation but by the horrible config issues with A2/OA.

Share this post


Link to post
Share on other sites

Well, then no idea what these factors are (MMA is there for a reason :p )

Share this post


Link to post
Share on other sites

In the case of rockets maxSpeed is used to tell AI how high to aim in order to hit. I do not know whether this has any effect on AI firing missiles.

Share this post


Link to post
Share on other sites
Myke;1683243']

...

@Evil Echo

hope you got me right' date=' you are a great help and remaining problems aren't caused by your explenation but by the horrible config issues with A2/OA.[/quote']

I got it, no problems. Just hoping we all can find more answers for you somehow.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×