Difference between revisions of "User:Dsekercioglu/MEA"

From Robowiki
Jump to navigation Jump to search
(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.