CVT behavior in BeamNG

Discussion in 'General Discussion' started by PriusRepellent, May 24, 2019.

  1. PriusRepellent

    PriusRepellent
    Expand Collapse

    Joined:
    Mar 19, 2018
    Messages:
    198
    For a while, the Sunburst 1.8 CVT was pretty problematic in BeamNG. It did not behave anything like an economy CVT at all (i.e. it would never drop RPMs fast enough with low throttle, S mode didn't work, and fuel economy wasn't where it should be either). I tested it again after some updates and now the Sunburst's CVT behaves VERY similarly to how the CVT in my real life car does (a 2014 Honda Civic). The S mode even engine brakes just like it does in my Civic, and at similar RPMs. Anyone who thinks Beam isn't making progress needs to look a little closer, because it really is.
     
    • Like Like x 2
    • Agree Agree x 2
  2. Michaelflat

    Michaelflat
    Expand Collapse

    Joined:
    Jul 10, 2014
    Messages:
    1,607
    I feel like the CVT doesn't use enough engine torque and is slightly too revvy..
     
    • Agree Agree x 5
  3. PriusRepellent

    PriusRepellent
    Expand Collapse

    Joined:
    Mar 19, 2018
    Messages:
    198
    If you were to floor it in a car with a CVT IRL, and said car had its peak power output close to redline, then the car revs to near redline (I have a car like this, where peak power is at 6500 rpm, redline is 6700). However, I do agree that the CVT may need more adjusting but it has been improved significantly.
     
    • Like Like x 1
  4. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    The problem with this CVT(and other "smart" transmission) is that the aggression is always 0.75 when stopped. This makes the Sunburst(DCT&CVT) want to rev up to 3000+ RPM before upshift when pulling away, even with low throttle.
     
    • Like Like x 1
  5. fufsgfen

    fufsgfen
    Expand Collapse

    Joined:
    Jan 10, 2017
    Messages:
    6,781
    I wonder if that could be because of what Capt. Kirk mentioned that at idle thorttle is 15% that gives 90% of torque or then it just is hardcoded to be 0.75 at idle, haven't checked. Either way, it probably is for easier get go as people tend to drive bit hard compared to IRL driving, not really sure about that either, but usually there is a reason behind every choice devs have made, but that reason is not always obvious when not knowing all the variables involved.

    What I know is that CVT indeed has improved really a lot, with current tune CVT is quite enjoyable to use for normal sensible driving.
     
    • Agree Agree x 1
  6. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    This is, of course coded, because the shiftlogic is using the accelerator padal, not engine power to adjust aggression value. You can test this by shutting down the engine while cruising, then floor it, then the gearbox will still downshift
     
    • Agree Agree x 1
  7. fufsgfen

    fufsgfen
    Expand Collapse

    Joined:
    Jan 10, 2017
    Messages:
    6,781
    Hard coded means that something has set value, for example variable1 = 0.75 instead of having variable1 = electrics.values.throttle which again would be affect by if idle throttle is set to be 0.15 in jbeam, but as value can be changed it is not hard coded.

    From lua folder one can probably find how it is set to be.
     
  8. Michaelflat

    Michaelflat
    Expand Collapse

    Joined:
    Jul 10, 2014
    Messages:
    1,607
    The issue is that some cars require more throttle to get their torque than others.. but the agression factor transmissions are constant, eg. half throttle will produce quite a high agression factor..

    The setup at the moment uses less torque than is necessary, so that when it shifts up a gear, the next gear can then use full torque of the engine, and thus the power is relatively constant despite the large drop in engine revs (and available power).. In a CVT this is not necessary since you don't need to account for the next gear, hence you might aswell use full torque (most of it, not fuel enriched torque) to propel the car, instead of leaving some in reserve for the next gear..

    That means that at all rev ranges full torque is used, say 4000rpm you feather the throttle to get to 4000RPM now in the CVT, it uses like 50% of engine torque, ridiculous really..

    If we could use the old 'hydraulic' simulation (not agression factor) and instead use the agression value to not be (throttle position)^3 but rather say (tp)^2 or some other index value (that is obviously greater than 1) then that would be brilliant..
     
  9. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    The modern aggression value is too high, there's two problems about it.
    1. Rapidly adjusting throttle increase aggression, if the throttle is stationary the aggression is throttle. Therefore, the aggression is always no less than throttle value. Both "aggressionSmoothingUp/Down" and "gearboxDecisionSmoothingUp/Down" only adjust how fast the changing speed aggression value and they don't matter the final aggression value.
    For example the RPM is 3000 if you apply 50% throttle constantly, if you don't move the throttle, it'll upshift at 3000RPM regardless of the "aggressionSmoothing" and the "gearboxDecisionSmoothing" values. There's no shift map graph adjustment. So you cannot do this (the picture below) in BeamNG
    22222222222222.jpg
    2. The non-aggressive shiftlogic effectively only a kickdown. If you set false to "useSmartAggressionCalculation" Then the "lowShiftUp/DownRPM" works in 0-90% throttle.
    Even if you apply the same throttle constantly, the non-aggressive shiftlogic is still always upshift earlier than the aggressive shiftlogic

    Therefore the CVT still rev higher than real life even if you decrease/increase the "aggressionSmoothingUp/Down" and "gearboxDecisionSmoothingUp/Down"
    You can make the CVT to low RPM by setting the "useSmartAggressionCalculation" to false, however the S mode won't work if you do this(see attachment)
     

    Attached Files:

    #9 default0.0player, May 25, 2019
    Last edited: May 25, 2019
    • Like Like x 1
  10. btcb48

    btcb48
    Expand Collapse

    Joined:
    Aug 4, 2013
    Messages:
    51
    Towards the end of the "vehicleController" LUA, the initial (and possibly "resting") drivingAggression value is set to 0.75. This was the first thing I changed as it also affected the smart automatics.

    00's CVTs (and even today's CVTs tbh) don't have particularly adaptive logic in D. They would always "shift up" to keep RPM as low as possible on throttle lift. The Gavrils should too, but I digress.

    A minor contributor to high RPM behaviour in the Sunburst CVT is the ratio spread and diff ratio not matching up to the IRL mechanical inspiration (regardless of compensating for the variance in driven tire diameter between the 2). The lockup clutch behaviour is not ideal either.

    Anecdote time! The only adaptive program in a CVT's D mode that I've experienced recently was ratio holding logic on a long, steep downhill, Speed and RPM linearly and slowly increased a while after releasing all pedals. This was largely inadequate because RPM had already dropped on initial lifting.

    So I switched to manual mode because avoiding the faintest whiff of brakes was a personal goal. DFCO meant that no fuel was used and it's a rental so...
    And the concern that brake failure = massive crash. Tiny brakes for a narrow body but otherwise heavy North American-size MPV.
     
  11. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    I didn't drive a CVT vehicle IRL so I can only guess the behavior.
    The torque converter lockup right before starting to change the gear ratio(upshift), not at a constant RPM but depends on speed/throttle
    The transmission only downshift if the engine is more than 80% loaded, low-mid throttle the RPM stays low, mid-high throttle the engine always loaded and the RPM increase incrementally.
    The S or L mode increase(or maximize if there's more than one) engine breaking and keeping the RPM in the power band
    Driver uses the M mode to control the target RPM via a lever/knob/switch. He/she can maintain a steady speed downhill by increase/decrease the RPM when the hill steepen/shallowen.
     
    • Like Like x 1
  12. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    As shown, CVT still revs higher than a DCT BeamNGdrive-016038498-RELEASE-x642019_5_2614_26_09.png BeamNGdrive-016038498-RELEASE-x642019_5_2614_28_37.png
     
  13. default0.0player

    default0.0player
    Expand Collapse

    Joined:
    Nov 30, 2018
    Messages:
    546
    The shiftlogic is depends on the aggressionCoef, which is aggression^2. Thus with smart aggression the shift is (throttle*1.333)^2, the non-aggression is (throttle^3)^2
    The aggression value is wheelspeed <1 then 0.75
    Manual mode is a bit hard to implement, something about setting a target RPM regardless of throttle?

    I made this, hope to solve the RPM too high problem. Also the torque converter lockup at a fairly low speed.
     

    Attached Files:

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice