Page 4 of 4 FirstFirst ... 234
Results 46 to 56 of 56

Thread: Thrusters explained in one simple table (Rating and Mass)

  1. #46
    Originally Posted by jgm View Post (Source)
    It would be great if someone could work out the formula for speed given the min/optimal/max ratio and weight values that are now showing up in the outfitting screen.
    That would be fantastic. I was never really thrilled with the formula I came up because it relied on arbitrary and weird special values to fit the curve, which I think can't possibly be how FD actually designed it. It yielded a good enough match to measured values for regular thrusters, but I'm definitely hoping someone will figure out how to use the newly exposed min/opt/max multiplier values to model the speed modifier of all thrusters, both regular and enhanced.

  2. #47
    I've been thinking about the "real" formula and it occurred to me that perhaps we've been overthinking things.

    What if the multipliers just do what they say on the tin?

    Hypothesis:
    • The minimum multiplier is the multiplier to base speed you get when you are at maximum mass.
    • The optimum multiplier is the multiplier to base speed you get when you are at optimum mass.
    • The maximum multiplier is the multiplier to base speed you get when you are at minimum mass.
    • There exists a function f(x) such that f(massmin) = multipliermax, f(massopt) = multiplieropt and f(massmax) = multipliermin.


    After playing about with the outfitting screen I think that indeed f(x) is just a standard quadratic y = ax2 + bx + c which we can solve using standard methods by plugging in the three values (massmin, multipliermax), (massopt, multiplieropt) and (massmax, multipliermin).

    For the performance enhanced thrusters things are a bit more complicated. I haven't been able to come up with a formula that didn't include a bit of a fudge. It looks like the curve is exponential y = a + be-cx with the parameters found by plugging in (massmin, multipliermax * 1.1678), (massopt, multiplieropt * 1.0839) and (massmax, multipliermin). Note the magic numbers which scale the curve.

    My Courier with 3A Performance Enhanced Thrusters, dirty drive tuned with mass values 68.89, 88.58, 196.84 (all -0.158%) and multipliers 0.93, 1.19, 1.42 (all +3.45%) showed a speed of 464m/s in outfitting when I got below minimum mass, 363m/s at close to optimum mass and 261m/s at close to maximum mass.

    The base speed is 280m/s which means that 464 is approximately base times 1.65, which happens to be 1.6 (which other research has already shown to be the final multiplier for unmodified enhanced thrusters) times 1.0345. And 1.65 is the modified maximum multiplier 1.42 by 1.1678, just as 1.6 is the normal maximum 1.37 by 1.1678. Similarly the factor 1.0839 for optimum mass. So that's where my magic numbers come from.

    Sample shonky code:
    Code:
    #!/usr/bin/python
    
    import argparse
    import numpy as np
    import sys
    from scipy.optimize import curve_fit
    
    thrusters = {
      '3P': { 'mass': [70, 90, 200], 'mul': [90, 115, 137], 'fudge': [1, 1.0839, 1.1678] },
      '3A': { 'mass': [60, 120, 180], 'mul': [96, 100, 116], 'fudge': [1, 1, 1] },
      '3B': { 'mass': [55, 110, 165], 'mul': [93, 100, 113], 'fudge': [1, 1, 1] },
      '3C': { 'mass': [50, 100, 150], 'mul': [90, 100, 110], 'fudge': [1, 1, 1] },
      '3D': { 'mass': [45, 90, 145], 'mul': [86, 100, 106], 'fudge': [1, 1, 1] },
      '3E': { 'mass': [40, 80, 120], 'mul': [83, 100, 103], 'fudge': [1, 1, 1] },
      '2P': { 'mass': [50, 60, 120], 'mul': [90, 115, 137], 'fudge': [1, 1.0839, 1.1678] },
      '2A': { 'mass': [36, 72, 108], 'mul': [96, 100, 116], 'fudge': [1, 1, 1] },
      '2B': { 'mass': [33, 66, 99], 'mul': [93, 100, 113], 'fudge': [1, 1, 1] },
      '2C': { 'mass': [30, 60, 90], 'mul': [90, 100, 110], 'fudge': [1, 1, 1] },
      '2D': { 'mass': [27, 54, 81], 'mul': [86, 100, 106], 'fudge': [1, 1, 1] },
      '2E': { 'mass': [24, 48, 72], 'mul': [83, 100, 103], 'fudge': [1, 1, 1] }
    }
    
    def quadratic(x, a, b, c):
      return (a * x) + b * (x ** 2) + c
    
    def exponential(x, a, b, c):
      return a + (b * np.exp(-c * x))
    
    def apply_modifier(value, mod):
      if mod == 0:
        return value
      elif mod > 0:
        return value * mod
      else:
        return value * (1.0 + mod)
    
    parser = argparse.ArgumentParser(description='Speed.')
    parser.add_argument('-m', '--mass', type=float)
    parser.add_argument('-s', '--speed', type=float, default=100)
    parser.add_argument('-b', '--boost', type=float, default=100)
    parser.add_argument('-O', '--mass-mod', type=float, default=1)
    parser.add_argument('-M', '--multiplier-mod', type=float, default=1)
    parser.add_argument('thruster')
    args = parser.parse_args()
    thruster = thrusters[args.thruster]
    speed = args.speed
    boost = args.boost
    mod_mul = args.multiplier_mod
    mod_mass = args.mass_mod
    min_mul, opt_mul, max_mul = map(lambda m: apply_modifier(m / 100.0, mod_mul), thruster['mul'])
    min_mass, opt_mass, max_mass = map(lambda m: apply_modifier(m, mod_mass), thruster['mass'])
    mass = max(min_mass, args.mass)
    fudge = thruster['fudge']
    
    s = (float) (mass - min_mass) / (max_mass - min_mass)
    m = (float) (opt_mass - min_mass) / (float) (max_mass - min_mass)
    o = (float) (opt_mul - min_mul) / (float) (max_mul - min_mul)
    x = [0, m, 1]
    y = [max_mul * fudge[2], opt_mul * fudge[1], min_mul * fudge[0]]
    func = quadratic if opt_mul == 1 else exponential
    
    p, m = curve_fit(func, x, y)
    multiplier = func(s, *p)
    print '%s mass %.2f/%.2f/%.2f mul %.2f/%.2f/%.2f ship %.2fT mul %.2f -> speed %d boost %d' % (args.thruster, min_mass, opt_mass, max_mass, min_mul, opt_mul, max_mul, mass, multiplier, speed * multiplier, boost * multiplier)


    Running the script with the loadout I described above:
    Code:
    $ ./speed --mass 65.47 --mass-mod -0.0158 --multiplier-mod 1.0345 --speed 280 --boost 380 3P
    3P mass 68.89/88.58/196.84 mul 0.93/1.19/1.42 ship 68.89T mul 1.66 -> speed 463 boost 628
    Predicted speed is 463. Actual speed shown in outfitting is 464.

    Other speeds shown in outfitting and predicted by the script are as follows. 3P means class 3 performance enhanced and 3P* means the same with engineer mods.

    Thrusters Ship mass Predicted Actual
    3P* 68.47 463 464
    3P* 68.97 462 463
    3P* 69.47 459 460
    3P* 69.97 455 457
    3P* 70.97 448 451
    3P* 71.47 445 447
    3P* 71.97 442 444
    3P* 72.47 439 441
    3P* 74.47 426 430
    3P* 76.47 415 419
    3P* 77.47 410 413
    3P* 78.47 404 408
    3P* 80.47 394 398
    3P* 82.47 385 388
    3P* 84.47 376 379
    3P* 84.97 374 377
    3P* 85.77 371 374
    3P* 86.47 371 371
    3P* 88.47 361 363
    3P* 90.47 354 355
    3P* 92.47 347 348
    3P* 96.47 336 335
    3P* 174 263 261
    3P 65.47 447 448
    3E 65.47 287 284
    3D 62.47 291 291
    3C 65.47 299 299
    3B 68.47 305 306
    3A 65.47 319 319
    2P 62.97 330 330
    2D 61.47 271 274
    2C 62.97 277 277
    2B 64.47 281 281
    2A 62.97 288 288

    The numbers aren't perfect but they're close. Perhaps someone smarter than me can nail them down for good.

  3. #48
    Some good work here. Does anyone have a decent list of mass and max speed readings from 2.1 for one or more given sets of thrusters that I can play with to see if I can find a suitable formula?

  4. #49
    Here's a copy-paste from my research spreadsheet, hopefully it's parseable for you. This data is for the Class 3 Enhanced Thruster, and it covers the full range from minimum to maximum outfitting mass for that thruster, but two different hulls were necessary to do it: the Asp Scout can't get light enough to hit the low end, and the Imperial Courier can't get heavy enough to hit the high end.

    So, the first column is the ship, the second column is the total loadout mass (including cargo and fuel), the third column is the "base" speed of the ship hull, and the fourth column is the actual observed top speed with 4 pips to engines. I didn't measure *every* 1T mass increment, but I did the measurements in order of decreasing mass (by jettisoning 1T of cargo repeatedly) so wherever there is a gap in the mass tonnage sequence, you can assume that the observed speed remained the same as the next higher measured mass value (or more likely, was some decimal value that the in-game UI rounded to appear the same as the next higher value).


    SHIP MASS BASE SPEED
    Asp Scout 200 220 198
    Asp Scout 199 220 198
    Asp Scout 198 220 198
    Asp Scout 197 220 198
    Asp Scout 196 220 198
    Asp Scout 195 220 198
    Asp Scout 194 220 198
    Asp Scout 193 220 198
    Asp Scout 192 220 198
    Asp Scout 191 220 198
    Asp Scout 190 220 198
    Asp Scout 189 220 198
    Asp Scout 188 220 198
    Asp Scout 187 220 198
    Asp Scout 186 220 198
    Asp Scout 185 220 198
    Asp Scout 184 220 198
    Asp Scout 183 220 198
    Asp Scout 182 220 198
    Asp Scout 181 220 198
    Asp Scout 180 220 198
    Asp Scout 179 220 198
    Asp Scout 178 220 198
    Asp Scout 177 220 198
    Asp Scout 176 220 198
    Asp Scout 175 220 198
    Asp Scout 174 220 198
    Asp Scout 173 220 198
    Asp Scout 172 220 198
    Asp Scout 171 220 198
    Asp Scout 170 220 198
    Asp Scout 169 220 198
    Asp Scout 168 220 198
    Asp Scout 167 220 198
    Asp Scout 166 220 199
    I. Courier 172 280 252
    I. Courier 168 280 253
    I. Courier 160 280 253
    I. Courier 156 280 254
    I. Courier 152 280 255
    I. Courier 148 280 256
    I. Courier 146 280 257
    I. Courier 144 280 258
    I. Courier 142 280 259
    I. Courier 140 280 260
    I. Courier 138 280 261
    I. Courier 137 280 262
    I. Courier 136 280 262
    I. Courier 135 280 263
    I. Courier 134 280 264
    I. Courier 133 280 265
    I. Courier 132 280 265
    I. Courier 131 280 266
    I. Courier 130 280 267
    I. Courier 129 280 268
    I. Courier 128 280 269
    I. Courier 127 280 270
    I. Courier 126 280 271
    I. Courier 125 280 272
    I. Courier 124 280 273
    I. Courier 123 280 274
    I. Courier 122 280 276
    I. Courier 121 280 277
    I. Courier 120 280 278
    I. Courier 119 280 280
    I. Courier 118 280 281
    I. Courier 117 280 282
    I. Courier 116 280 284
    I. Courier 115 280 286
    I. Courier 114 280 287
    I. Courier 113 280 289
    I. Courier 112 280 291
    I. Courier 111 280 293
    I. Courier 110 280 295
    I. Courier 109 280 297
    I. Courier 108 280 299
    I. Courier 107 280 301
    I. Courier 106 280 303
    I. Courier 105 280 305
    I. Courier 104 280 308
    I. Courier 103 280 310
    I. Courier 102 280 313
    I. Courier 101 280 315
    I. Courier 100 280 318
    I. Courier 99 280 321
    I. Courier 98 280 324
    I. Courier 97 280 327
    I. Courier 96 280 330
    I. Courier 95 280 333
    I. Courier 94 280 336
    I. Courier 93 280 339
    I. Courier 92 280 343
    I. Courier 91 280 346
    I. Courier 90 280 350
    I. Courier 89 280 354
    I. Courier 88 280 358
    I. Courier 87 280 362
    I. Courier 86 280 366
    I. Courier 85 280 370
    I. Courier 84 280 374
    I. Courier 83 280 379
    I. Courier 82 280 383
    I. Courier 81 280 388
    I. Courier 80 280 393
    I. Courier 79 280 398
    I. Courier 78 280 403
    I. Courier 77 280 408
    I. Courier 76 280 413
    I. Courier 75 280 419
    I. Courier 74 280 424
    I. Courier 73 280 430
    I. Courier 72 280 436
    I. Courier 71 280 442
    I. Courier 70 280 448
    I. Courier 69 280 448
    I. Courier 68 280 448
    I. Courier 67 280 448
    I. Courier 66 280 448
    I. Courier 65 280 448

  5. #50

    Google Docs based engineered speed calculator, for your feedback and fun!

    Sorry for necroing this thread. It ain't too old, and I based my Google Doc engineered speed calculator on the excellent work of all the previous posters.

    Here you go (link), and please help me validating with your builds!

    Fly safe, and slowly

  6. #51
    Originally Posted by Cliffson View Post (Source)
    The Engineer upgrade multiplies all three multipliers up b the same amount. so if you roll a +25%, a standard A rated drive will apply 1.125 minimum multiplier, 1.25 optimum multiplier and 1.45 maximum multiplier. (original values .90,1.00,1.16)
    When you make a engineer upgrade and improve the optimal multiplier, it's applied to all three multipliers, but, if you improve your optimal mass then it's affect to all three mass attributes?

  7. #52
    Originally Posted by Shemuev View Post (Source)
    When you make a engineer upgrade and improve the optimal multiplier, it's applied to all three multipliers, but, if you improve your optimal mass then it's affect to all three mass attributes?
    Yes the masses are all affected by the same roll. Usually downwards, which is bad

  8. #53
    Many people only consider pitch, roll, yaw, max speed and boost speed when looking at a ship's agility profile. There are other important stats including: forward acceleration, lateral acceleration, backwards acceleration. For the clipper it has absolutely horrible lateral acceleration and backwards acceleration. This makes thruster usage hard, and stopping hard.

  9. #54
    Originally Posted by furrycat View Post (Source)
    Yes the masses are all affected by the same roll. Usually downwards, which is bad
    Thx CMDR!

    Another one more question:

    If my ship mass are between minimum mass and optimal mass, the multiplier is absolute or progressive between maximum multiplier and optimal multiplier?

  10. #55
    Originally Posted by Shemuev View Post (Source)
    If my ship mass are between minimum mass and optimal mass, the multiplier is absolute or progressive between maximum multiplier and optimal multiplier?
    Linearly interpolated. See this guide.

    Frontier have stated that the multiplier is also linearly interpolated between optimal and minimal when the mass is above optimal mass but several people have tested and found that that doesn't seem to be true at least for the Enhanced Performance thrusters. It's closer to exponential; I don't think anyone has been able to generalise the formula. Standard thrusters do seem to be linearly interpolated though.

  11. #56
    Originally Posted by furrycat View Post (Source)
    Linearly interpolated. See this guide.

    Frontier have stated that the multiplier is also linearly interpolated between optimal and minimal when the mass is above optimal mass but several people have tested and found that that doesn't seem to be true at least for the Enhanced Performance thrusters. It's closer to exponential; I don't think anyone has been able to generalise the formula. Standard thrusters do seem to be linearly interpolated though.
    Frontier has stated this, but actual in-game experimental testing has proven that this statement is *not correct*. If you actually measure ship speed at various mass levels, it is very clear to see that the speed curve is *not* linear, not only for Enhanced thrusters but also for all standard thrusters.

    Refer to this thread and also this one for more details on that.

Page 4 of 4 FirstFirst ... 234