Difference between revisions of "User:Dsekercioglu/MEA"
Jump to navigation
Jump to search
Dsekercioglu (talk | contribs) |
Dsekercioglu (talk | contribs) (Fixed the wikitable) |
||
Line 35: | Line 35: | ||
! Brute Force | ! Brute Force | ||
! Fast Accurate MEA | ! Fast Accurate MEA | ||
− | |||
− | |||
|- | |- | ||
| 11.0 | | 11.0 | ||
Line 43: | Line 41: | ||
| 0.8958173020564033 | | 0.8958173020564033 | ||
| 0.8958173020565081 | | 0.8958173020565081 | ||
− | |||
− | |||
|- | |- | ||
| 11.5 | | 11.5 | ||
Line 51: | Line 47: | ||
| 0.8360222463105106 | | 0.8360222463105106 | ||
| 0.8360222462765713 | | 0.8360222462765713 | ||
− | |||
− | |||
|- | |- | ||
| 12.0 | | 12.0 | ||
Line 59: | Line 53: | ||
| 0.7853981633891073 | | 0.7853981633891073 | ||
| 0.7853981633902923 | | 0.7853981633902923 | ||
− | |||
− | |||
|- | |- | ||
| 12.5 | | 12.5 | ||
Line 67: | Line 59: | ||
| 0.7416704288178478 | | 0.7416704288178478 | ||
| 0.7416704288001901 | | 0.7416704288001901 | ||
− | |||
− | |||
|- | |- | ||
| 13.0 | | 13.0 | ||
Line 75: | Line 65: | ||
| 0.703330828084537 | | 0.703330828084537 | ||
| 0.7033308280352042 | | 0.7033308280352042 | ||
− | |||
− | |||
|- | |- | ||
| 13.5 | | 13.5 | ||
Line 83: | Line 71: | ||
| 0.6693206919818205 | | 0.6693206919818205 | ||
| 0.669320691948796 | | 0.669320691948796 | ||
− | |||
− | |||
|- | |- | ||
| 14.0 | | 14.0 | ||
Line 91: | Line 77: | ||
| 0.638865144210421 | | 0.638865144210421 | ||
| 0.638865144223163 | | 0.638865144223163 | ||
− | |||
− | |||
|- | |- | ||
| 14.5 | | 14.5 | ||
Line 99: | Line 83: | ||
| 0.6113785029510655 | | 0.6113785029510655 | ||
| 0.6113785029690175 | | 0.6113785029690175 | ||
− | |||
− | |||
|- | |- | ||
| 15.0 | | 15.0 | ||
Line 107: | Line 89: | ||
| 0.586406643219448 | | 0.586406643219448 | ||
| 0.5864066432158043 | | 0.5864066432158043 | ||
− | |||
− | |||
|- | |- | ||
| 15.5 | | 15.5 | ||
Line 115: | Line 95: | ||
| 0.5635900430367358 | | 0.5635900430367358 | ||
| 0.5635900430387886 | | 0.5635900430387886 | ||
− | |||
− | |||
|- | |- | ||
| 16.0 | | 16.0 | ||
Line 123: | Line 101: | ||
| 0.5426391022263398 | | 0.5426391022263398 | ||
| 0.5426391022493595 | | 0.5426391022493595 | ||
− | |||
− | |||
|- | |- | ||
| 16.5 | | 16.5 | ||
Line 131: | Line 107: | ||
| 0.5233170954861992 | | 0.5233170954861992 | ||
| 0.5233170954933015 | | 0.5233170954933015 | ||
− | |||
− | |||
|- | |- | ||
| 17.0 | | 17.0 | ||
Line 139: | Line 113: | ||
| 0.5054280633854913 | | 0.5054280633854913 | ||
| 0.5054280633707354 | | 0.5054280633707354 | ||
− | |||
− | |||
|- | |- | ||
| 17.5 | | 17.5 | ||
Line 147: | Line 119: | ||
| 0.4888080038530859 | | 0.4888080038530859 | ||
| 0.48880800383339884 | | 0.48880800383339884 | ||
− | |||
− | |||
|- | |- | ||
| 18.0 | | 18.0 | ||
Line 155: | Line 125: | ||
| 0.47331833170002513 | | 0.47331833170002513 | ||
| 0.4733183317049672 | | 0.4733183317049672 | ||
− | |||
− | |||
|- | |- | ||
| 18.5 | | 18.5 | ||
Line 163: | Line 131: | ||
| 0.45884093498067674 | | 0.45884093498067674 | ||
| 0.4588409349816298 | | 0.4588409349816298 | ||
− | |||
− | |||
|- | |- | ||
| 19.0 | | 19.0 | ||
Line 171: | Line 137: | ||
| 0.4452743791524153 | | 0.4452743791524153 | ||
| 0.44527437914716245 | | 0.44527437914716245 | ||
− | |||
− | |||
|- | |- | ||
| 19.5 | | 19.5 |
Revision as of 18:54, 24 September 2017
- Thanks Xor. I found a bug with the orbital one which gave 2 times more advancing velocity and fixed the calculation.
- After brute force MEA calculations, I realised that moving perpendicular wasn't the best option to maximise the MEA. I found a function with polynomial regression which works very well.
- Old Brute Force MEA
double highestMea; for (int a = 0; a < 360000; a++) { // For higher accuracy. Normal value is 360. double angle = Math.toRadians(a / 1000.0); double mea = Math.asin(Math.sin(angle) / (bulletSpeed / 8 - Math.cos(angle) / 2)); if (mea > highestMea) { highestMea = mea; } } return highestMea;
- This function is slow because of many iterations.
- Fast Accurate MEA
- By using WolframAlpha and Polynomial Regression, I found a function which gives very close results to the Brute Force MEA.
double x = bulletSpeed; double a = 4.626248824E-7; double b = -4.203721619E-5; double c = 1.571662957E-3; double d = -3.085855208E-2; double e = 3.337262571E-1; double f = -2.893934846E-1; double angle = a * Math.pow(x, 5) + b * Math.pow(x, 4) + c * Math.pow(x, 3) + d * Math.pow(x, 2) + e * x + f; return = Math.asin(Math.sin(angle) / (bulletSpeed / 8 - Math.cos(angle) / 2));
- Here are some results.
BulletSpeed/Type | Traditional | Perfect Orbit | Brute Force | Fast Accurate MEA |
---|---|---|---|---|
11.0 | 0.8143399421265254 | 0.7272727272727273 | 0.8958173020564033 | 0.8958173020565081 |
11.5 | 0.7693273435231462 | 0.6956521739130435 | 0.8360222463105106 | 0.8360222462765713 |
12.0 | 0.7297276562269663 | 0.6666666666666666 | 0.7853981633891073 | 0.7853981633902923 |
12.5 | 0.694498265626556 | 0.64 | 0.7416704288178478 | 0.7416704288001901 |
13.0 | 0.6628738236501358 | 0.6153846153846154 | 0.703330828084537 | 0.7033308280352042 |
13.5 | 0.634273648122496 | 0.5925925925925926 | 0.6693206919818205 | 0.669320691948796 |
14.0 | 0.6082455789102096 | 0.5714285714285714 | 0.638865144210421 | 0.638865144223163 |
14.5 | 0.5844300733415584 | 0.5517241379310345 | 0.6113785029510655 | 0.6113785029690175 |
15.0 | 0.5625362445438555 | 0.5333333333333333 | 0.586406643219448 | 0.5864066432158043 |
15.5 | 0.5423253027748484 | 0.5161290322580645 | 0.5635900430367358 | 0.5635900430387886 |
16.0 | 0.5235987755982989 | 0.5 | 0.5426391022263398 | 0.5426391022493595 |
16.5 | 0.5061899196266034 | 0.48484848484848486 | 0.5233170954861992 | 0.5233170954933015 |
17.0 | 0.4899573262537283 | 0.47058823529411764 | 0.5054280633854913 | 0.5054280633707354 |
17.5 | 0.47478007356550933 | 0.45714285714285713 | 0.4888080038530859 | 0.48880800383339884 |
18.0 | 0.4605539916813224 | 0.4444444444444444 | 0.47331833170002513 | 0.4733183317049672 |
18.5 | 0.44718874522671376 | 0.43243243243243246 | 0.45884093498067674 | 0.4588409349816298 |
19.0 | 0.43460552560736715 | 0.42105263157894735 | 0.4452743791524153 | 0.44527437914716245 |
19.5 | 0.42273520519034663 | 0.41025641025641024 | 0.43253095218979704 | 0.43253095218741416 |
- As you can see it gives higher results than Perfect orbit and Traditional MEA and very accurate according to the results.
- Pros
- It is fast.
- It is accurate.
- You can also get the best lateral/advancing velocity because it calculates the retreat angle first.
- Cons
- Robot velocity is fixed to 8.
- Hard to interpret or improve.
- The max value you can enter is 19.7 and the min value you can enter is 11.