These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
 

A 3D numerical simulation of Missile dynamics: If ship velocity stacks

Author
Qiuqiu Da
NHL Corp
#1 - 2013-07-23 02:04:00 UTC
If a ship's velocity stacks to the missile it launched, what will happen?
Well, this question leads to a discussion in the Chinese Language channel these days, so I decide to do some 'research' on it. The main purpose is to analyze the following problems:
1 The behavior of a velocity stacked missile
2 The possible new tactics
3 The complexity of the missile dynamics if the ship's velocity stacked.
4 Balance problem


At first I will introduce the main idea of the stacked velocity briefly.
As we all know that, in the New Eden, the space-time is similar with the Newton's one: the absolute space, time, and also the motion. A solar system itself is a frame of reference, something like ether. However this frame seems not a inertia one, for the Galileo's principle of relativity fails, at least, to the missiles. The missile acts like this: after the launch, the missile will accelerate very quickly to a max, and a "absolute" velocity, and flies towards the target. For example, a standard light missile has a max velocity, 3750m/s, relative to the "absolute" space-time. The movement of the ship will not affect this "absolute" velocity, and this situation remind us another scene in some other RPG games: A running magician fires a fireball and his movement will not affect that ball. Well, a missile has its own dynamic systems, but is it should be the reason to ignore the movement of the ship? To answer this question, the research introduces a numerical methods to simulate a combat, and try to find out some useful results.

Before all the simulation, we first introduce the basic model of the simulation. I try to use the information from the New Eden as much as possible during the whole research.
It seems that the definitions of the s,v,a (bold means a vector) should be the same as that in earth, great. Then we will use some physics.
Image a situation between two ships, A and B. A flies in a fixed direction and B try to approach A, then A locks B and a missile C is launched and approaches B. These process introduce many dynamics so we will analyze it in detail.
A point in the absolute space-time is marked as the reference point thus a frame of reference is established. Definition:
rA(t), rB(t), rC(t) are the postions of the A,B,C
vA(t),vB(t),vC(t) are the velocity of the A,B,C
aA(t),aB(t),aC(t) are the acceleration of the A,B,C
Then we consider the dynamics. Since B approaches A is similar with C approach B, we first discuses the former one.
http://data.whicdn.com/images/69282899/large.jpg


At time t0, we have aA(t0),aB(t0), so at time t1,we will get vA(t1)=vA(t0)+aA(t0)dt, vB(t1)=vB(t0)+aB(t0)dt. We know that B tries to approach A, so during the acceleration, B must towards A. In addition, B may try to predict rA(t1) so it may adjust its direction according to the aA(t),vA(t),rA(t) from observation. So, B predicts: vA(t1)=vA(t0)+ aA(t0)dt and rA(t1)=rA(t0)+vA(t0)dt+0.5*aA(t0)dt^2.
Since A flies in a fixed direction, the following is to calculate B's direction, of course it should be from rB(t0) to the rA(t1), and should be the normalized unit vector in this direction, rBA(t0)_hat. And obviously, rBA(t0)_hat_adjust=(rA(t1)-rB(t0))/| rA(t1)-rB(t0)|, this is also the direction the velocity vector will be adjust to. Similar with above, the present direction of the velocity is rBA(t0)_hat =(rA(t0)-rB(t0))/| rA(t0)-rB(t0)|
http://data.whicdn.com/images/69282917/large.jpg

Qiuqiu Da
NHL Corp
#2 - 2013-07-23 02:13:26 UTC
Then we should consider the acceleration of the starship. In the eve-wiki, there is a formula:
http://wiki.eveonline.com/en/wiki/Acceleration

Vt=Vmax(1-exp((-t*10^6)/(IM)))

where Vmax is the max speed, I is the inertia modifier and M is mass by Kg. This give us the speed of a ship so we can calculate the acceleration by differential.

a=Vmax*10^6* exp((-t*10^6)/(IM))/(IM)
a here is not a vector but the |a(t)|.

At time t0,the direction of the velocity is rBA(t0)_hat and at time t1 it will be rBA(t1)_hat. Thus, the direction of the acceleration of B should be aB(t0)=(W)/|W|, where W is vB(t1) rBA(t0)_hat_adjust- vB(t0) rBA(t0)_hat.
In the simulation, the a will decree quickly, and unfortunately, I didn't find the Rotation formula, so when a is too little to adjust the direction, the new direction will apply to the missile instead.

The program is written in Matlab, and will be posted at the end of the post, anyone can run it by Matlab, or maybe Mathematics.

Here I give some examples while the ships' velocity is stacked.

A-Tengu B-Wolf C-Heavy Assault Missile
ia=0.31; ma=8201000 Kg; Vamax=600 m/s;
ib=3.456;mb=1309000 Kg; Vbmax=900 m/s;
ic=5.22012569356;mc=1000 Kg; Vcmax=3500 m/s;
All data are obtained in game or database.

the postions of A and B, the fixed direction of A are random at the beginning, missile C will be launched at t=10seconds.

Here is some 3D pictures and 3D animation snaps.
The Blue one is A, the Red one is B, and the Green one is C
The 3D trajectories

http://data.whicdn.com/images/69282937/large.jpg



n this situation, we can see B catches up with A finally but also be hit by C

http://data.whicdn.com/images/69282958/large.jpg

http://data.whicdn.com/images/69282978/large.jpg

http://data.whicdn.com/images/69283003/large.jpg

http://data.whicdn.com/images/69283018/large.jpg

http://data.whicdn.com/images/69283028/large.jpg

At the beginning, A and C are flying together before launch. And then, C is launched and flying towards B, then hit. I keep C fly until the flight time exhausted so I can calculate the flight length. Finally, B catches up A.
I especially care about two results of the simulation: the flight length of the missile(the actual range) and the Max speed of it.
I compared 10 times between two situations: the ship's velocity stacked and not stacked in random initial conditions, and get these results.
Missile: Heavy Assault Missile
VaMax=700m/s VcMax=3500m/s missile flight time=5seconds (so the theoretical range should be 17500m)
simulation dt=0.001 seconds


Stacked:
simulation missile actual range missile actual Max speed
1 16726 3349
2 16866 3377
3 18892 3782
4 13838 2771
5 12798 2563
6 14764 2938
7 18722 3756
8 19209 3846
9 13071 2619
10 12430 2489
Average 15732 3149


Yes, we can see that, although the Vcmax is all the same, but the actual max speed and range are changed, due to the velocity stack.
In the simulations without velocity stack, all the results are the same:
missile actual range: 15856
missile actual Max speed: 3175

Look into the velocity stacked simulations, it is easy to find that, when the target is in front of the ship, the missile will get a bonus on missile's velocity, but when the target is behind the ship, there will be punishment.


In fact, there is another way to explain this result by analytical method.
Simply, let's consider it in 2D situation.
The velocity of a missile will be stacked by that of ship, if we ignore the acceleration process(it is very short, will be explained below ), the missile itself can be seen as an object which is doing the linear motion with a uniform speed(ignore the movement of the target) Vm.
Now another velocity of ship, Vs stacks to it, then the final velocity is V=Vm+Vs*Cos(w), where w is angle between the directions of two velocity.
So the theoretical range is (Vm+Vs*Cos(w))*T ,where T is flight time of the missile
To plot this function while w belongs to [0,2pi], we will find out some interesting result.

http://data.whicdn.com/images/69283059/large.jpg

(1)Vm=3500m/s Vs=0m/s T=5s Nothing new, just like what it does in New Eden
(2)Vm=3500m/s Vs=500m/s T=5s Something interesting, although the change is not obviously.
(3) Vm=3500m/s Vs=1500m/s T=5s The range changed a lot.
(4) Vm=3500m/s Vs=3500m/s T=5s We can see that at the bottom of the ship, the range is 0, which means, if your target is right behind you at 180 degree and not change its direction, then your missile will just 'stop' at the place where you launch it, whether the missile hit the target or not totally depend on the IQ of the target-maybe it will hit the missile . The simulation of this situation is blow, and in the process, the missile is launched but never move.
http://data.whicdn.com/images/69283079/large.jpg

(5) Vm=3500m/s Vs=7000m/s T=5s Very huge advantages in the front, however, the missile may never hit the target behind the ship: the missile will just fly toward you, by a speed at (Vs-Vm)

Qiuqiu Da
NHL Corp
#3 - 2013-07-23 02:16:09 UTC
Now we can see some amazing result.
But how it happens?
Let us talk about the acceleration dynamics in the New Eden.
As we know, the formula Vt=Vmax(1-exp((-t*10^6)/(IM))) determines the velocity of an object in acceleration. Here is some data of the missiles and the acceleration line:

Cruise Missiles: Mass1,250 kg Inertia Modifier: 0.000144498003785 x marked as blue
Heavy Missiles: Mass1,000 kg Inertia Modifier:0.000144498003785 x marked as green

Torpedo: Mass1,500 kg Inertia Modifier: 500 x marked as red
Heavy Assault Missile: Mass1,000 kg Inertia Modifier: 5.22 x marked as black

http://data.whicdn.com/images/69283093/large.jpg

In the picture(Y axis is uniformed to ration), the long-range missiles almost have the Max speed but the short-range combat missile will spend some time to accelerate.
So that remind us another question: the max speed of a missile? But relative to what?

Since we mentioned before, that the reference of frames is the solar systems, in fact, this maybe the only way to establish a frame in 3D programs, and someother thing like the location in a space( 3 very long numbers) also indicates this fact, but the speed of missile still not that clear.


Yes, we can say that the max speed is relative to the absolute space, but there is a logical problem. Image we have a ship with a max speed 10K m/s relative to the absolute space, and it launches a missile which has a max speed 7K m/s relative to the absolute space, then, the principle of relativity disappeared. The missile stays in the cargo hold with a 10K m/s speed, after the launch, the engine decelerates the missile to 7K m/s? If it is, why do we need such an engine? Or the missile suddenly stop to 0 m/s and then accelerate to 7K m/s? If the missile has the power to decelerate from 10K m/s to 0, why not it accelerate from 0 to 10K m/s, and if it is, is its max speed still 7K m/s? Or, in fact, there is on dynamics in the server, when a missile launches, system just set the max speed value to it?
I know, anyway, this is a game, maybe we should demand too much. I can accept a spaceship-shaped magician launches missile-like fireball, but, if possible, why not make the game more funny and more reasonable?
If we define the max speed of a missile is relative to the spaceship, that is , the spaceship's velocity will affect the missile, the definition will be more reasonable and some new tactics might be available.


2 The possible new tactics
A. Kick ASS will become true
After velocity stacked, the ass of a missile ship will be a weakness, especially in high speed. Such a ship has limited fire range in the bottom or even have no ability to attack the threats from behind, except it change the direction and face to them. A combat between two missile ships will be a true dogfight because they all try to kick the other's ass for the front has a missile speed advantage while the ass just opposite. A turret-armed ship will also do this for the same reason. Orit will not be a good way for a missile ship, the short-range missile combat may change a lot.
B. High speed launch might be possible.
A high speed ship may "throw" a missile out to give the missile a high initial speed then obtain a longer range or a faster hit. AB and MWD may become more useful to missile ships. More effective missile snipe may become true.
C. Ship speed control to achieve multiple hits.
A skilled pilot could launch his missiles like this: launch the 1st missile at a low ship speed, and then accelerate the ship, launch the 2nd one at a high ship speed. If the 2nd one can catch up with the 1st one just on time, target will suffer 2X DPH damage, or higher DPS damage.
D. More New attempts.


3 The complexity of the missile dynamics if the ship's velocity stacked.
I am not sure additional complexity to New Eden's server, but in my programs, only few codes needs to be modified to open/close velocity stack and no more complexity added. In fact, all the dynamics are not changed, except the initial velocity.

4 Balance problem
Some may argue that missile could have longer range, in fact, it not always. For some PVE players, this change almost do nothing to them. For PVP players, to get the bonus means more skill, experience, practice, and a trained brain. In general, missile is not buffed because in most of the time , the average results of the missiles will not change, just like what shown in section.1, the only change is, advantage and disadvantage of missiles in different situations are more obviously.
Missile ships will get a bonus in front, but a weakness behind ass. To gain higher speed in order to achieve a high-speed missile attack also means limited equipment(more slots will be used to increase speed), a larger signature radius, lack of defense, and more difficult in control. A combat will become more challenging if someone want to use high-speed missile ship.

At last, thanks to all the friends in Chinese Channel!! Big smile
Qiuqiu Da
NHL Corp
#4 - 2013-07-23 02:18:49 UTC
Appendix:
About the program. I am not a professional programmer, so the following code maybe awful to professionals, for my limited level.
I use Matlab to write and run the codes, without using vector form. No sub-function, so the codes to calculate 'approach process' appears twice, totally copy and paste. No optimization so some code seems stupid. I also save all the data at every ti, in order to plot and analyses. Anyway, fortunately, it works. So, I post it here for anyone who may interest.
This 90s simulation in accuracy dt=0.001 cost about 2.2s on my computer, I7 3770K@4GHz, single core.
In fact, if we ignore the detail dynamics, use a modified Vt acceleration formula Vt=Vship+Vmax(1-exp((-t*10^6)/(IM))) , is also enough to represent the scene, with little deviation.


=========
system say there are htmls in my code Shocked
i will post it in pics soon
Qiuqiu Da
NHL Corp
#5 - 2013-07-23 02:30:45 UTC
Qiuqiu Da
NHL Corp
#6 - 2013-08-03 03:47:36 UTC
So, Noboby like this idea?
well.....
Kid Delicious
Caldari Provisions
Caldari State
#7 - 2013-08-03 04:20:10 UTC
Provide an abstract at the top of thought you're trying to present. This might be good, but I stopped reading and started skimming in the first paragraph (chinese threads?).
Whitehound
#8 - 2013-08-03 05:57:41 UTC  |  Edited by: Whitehound
The Great Chinese Wall of Text.

One question: what happens when I orbit another ship with 4000 m/s and fire missiles at it assuming missiles having an inertia?

Will the missiles spiral outwards or only slowly inwards due the centrifugal force?

Loss is meaningful. Therefore is the loss of meaning likewise meaningful. It is the source of all trolling.

Erutpar Ambient
The Scope
Gallente Federation
#9 - 2013-08-03 06:05:36 UTC
What happens when you are moving away from your target at 5000m/s and your missile velocity is 5000m/s.

I assume it wasn't addressed in your wall of text because it was TL;DR....
Rowells
Pator Tech School
Minmatar Republic
#10 - 2013-08-03 06:08:26 UTC
I read the first part and then my brain started to hurt when I saw the maths. I don't mean to be rude but a TL;DR would be really helpful for those of us that are numerically challenged. However from what I read at the start it does seem like an interesting concept. Also applaud your thorough research into the idea, don't see such in depth posts like this that often here.