QUESTION Debugging car handling and suspension

Discussion in 'Car Models | Physics' started by Alfrink, Dec 13, 2019.

  1. Alfrink

    Alfrink New Member

    Joined:
    Mar 6, 2019
    Messages:
    2
    Likes Received:
    1
    Hey! I've been trying to port a car I made in Automation to Assetto Corsa for a while now, but haven't managed to actually make it somewhat enjoyable to drive. After browsing through my .ini's trying to find the issue for way too long, I decided to put this up and hope that someone could give me a direction of what mistakes I might have made.

    The two main symptoms are terrible understeer overall, as well as the brakes locking up way too fast without actually braking very hard. That tells me that the issue is no front end grip. However, I can't find why that might be.

    My
    [HEADER]
    VERSION=2

    [BASIC]
    WHEELBASE=2.400 ; Wheelbase distance in meters
    CG_LOCATION=0.30 ; Front Weight distribution in percentage

    [ARB]
    FRONT=13000 ; Front antiroll bar stiffness. in Nm
    REAR=18000 ; Rear antiroll bar stiffness. in Nm


    [FRONT]
    TYPE=DWB ; Suspension type. DWB Double Wish Bones. STRUT McPherson strut
    BASEY=-0.020 ; Distance of CG from the center of the wheel in meters. Front Wheel Radius+BASEY=front CoG. Actual CG height =(FWR+FBasey)+(RWR+Rbasey))/CG_LOCATION%
    TRACK=1.54 ; Track width in meters (from pivot 3D placement of the 3d model of a wheel)
    ROD_LENGTH=0.025 ; push rod length in meters. positive raises ride height, negative lowers ride height.
    HUB_MASS=80 ; Front sprung mass
    RIM_OFFSET=0.0105
    WBCAR_TOP_FRONT=0.350, 0.100, 0.110 ; Top front car side wishbone attach point
    WBCAR_TOP_REAR=0.350, 0.100, -0.110 ; Top rear car side wishbone attach point
    WBCAR_BOTTOM_FRONT=0.400, -0.100, 0.010 ; Bottom front car side wishbone attach point
    WBCAR_BOTTOM_REAR=0.400, -0.100, -0.210 ; Bottom rear car side wishbone attach point
    WBTYRE_TOP=0.120, 0.100, -0.0108 ; Top tyre side wishbone attach point
    WBTYRE_BOTTOM=0.090, -0.110, 0.0067 ; Bottom tyre side wishbone attach point
    WBCAR_STEER=0.4000, -0.050, 0.068 ; Steering rod car side attach point
    WBTYRE_STEER=0.120, -0.050, 0.0836 ; Steering rod tyre side attach point
    TOE_OUT=-0.0005 ; Toe-out expressed as the length of the steering arm in meters
    STATIC_CAMBER=-1.0 ; Static Camber in degrees. Actual camber relative to suspension geometry and movement, check values in game
    SPRING_RATE=37000 ; Wheel rate stiffness in Nm. Do not use spring value but calculate wheel rate
    PROGRESSIVE_SPRING_RATE=0 ; progressive spring rate in N/m/m
    BUMP_STOP_RATE=90000 ; bump stop spring rate
    BUMPSTOP_UP=0.05 ; meters to upper bumpstop from the 0 design of the suspension
    BUMPSTOP_DN=0.04 ; meters to bottom bumpstop from the 0 design of the suspension
    PACKER_RANGE=0.07 ; Total suspension movement range, before hitting packers
    DAMP_BUMP=3000 ; Damper wheel rate stiffness in N sec/m in slow speed compression
    DAMP_FAST_BUMP=2500 ; Damper wheel rate stiffness in N sec/m in fast speed compression
    DAMP_FAST_BUMPTHRESHOLD=0.10 ; Damper bump slow/fast threshold in seconds
    DAMP_REBOUND=4200 ; Damper wheel rate stiffness in N sec/m in slow speed rebound
    DAMP_FAST_REBOUND=2500 ; Damper wheel rate stiffness in N sec/m in fast speed rebound
    DAMP_FAST_REBOUNDTHRESHOLD=0.10 ; Damper rebound slow/fast threshold in seconds


    [REAR]
    TYPE=DWB
    BASEY=-0.020 ; Distance of CG from the center of the wheel in meters. Rear Wheel Radius+BASEY=Rear CoG Actual CG height =(FWR+FBasey)+(RWR+Rbasey))/CG_LOCATION%
    TRACK=1.54
    ROD_LENGTH=0.030
    HUB_MASS=80
    RIM_OFFSET=0.001
    WBCAR_TOP_FRONT=0.500, 0.040, 0.150
    WBCAR_TOP_REAR=0.500, 0.040, -0.150
    WBCAR_BOTTOM_FRONT=0.500, -0.150, 0.150
    WBCAR_BOTTOM_REAR=0.500, -0.150, -0.150
    WBTYRE_TOP=0.140, 0.110, -0.0047
    WBTYRE_BOTTOM=0.140, -0.150, 0.0772
    WBCAR_STEER=0.500, -0.160, -0.055
    WBTYRE_STEER=0.140, -0.150, -0.070
    TOE_OUT=-0.0001
    STATIC_CAMBER=-1.0
    SPRING_RATE=30000
    PROGRESSIVE_SPRING_RATE=0
    BUMP_STOP_RATE=90000
    BUMPSTOP_UP=0.045
    BUMPSTOP_DN=0.035
    PACKER_RANGE=0.07
    DAMP_BUMP=2900
    DAMP_FAST_BUMP=2400
    DAMP_FAST_BUMPTHRESHOLD=0.10
    DAMP_REBOUND=4100
    DAMP_FAST_REBOUND=2400
    DAMP_FAST_REBOUNDTHRESHOLD=0.10

    [GRAPHICS_OFFSETS]
    WHEEL_LF=-0.0 ;Left front graphical offset of the wheel positioning in the x axis (width). + is left - is right movement
    SUSP_LF=-0.0 ;Left front graphical offset of the suspension positioning in the x axis (width). + is left - is right movement
    WHEEL_RF=0.0 ; Right front as above
    SUSP_RF=0.0 ; Right front as above
    WHEEL_LR=-0.0 ; Left rear as above
    SUSP_LR=-0.0 ; Left rear as above
    WHEEL_RR=0.0 ; Right rear as above
    SUSP_RR=0.0 ; Right rear as above

    [DAMAGE]
    MIN_VELOCITY=30 ; MINUMUM VELOCITY TO START TAKING DAMAGE
    GAIN=0.0006 ; AMOUNT OF STEER ROD DEFLECTION FOR IMPACT KMH
    MAX_DAMAGE=0.05 ; MAXIMUM AMOUNT OF STEER ROD DEFLECTION ALLOWED
    DEBUG_LOG=1 ; ACTIVATES DAMAGE DEBUG IN THE LOG
    is based the formula k car, which wasn't particularly helpful as its suspension setup is quite different from what I need for a road car. I looked around in various threads in this forum and found occasional bits and pieces of what I'd have to change. For example, the formula k car doesn't actually steer very much even on full lock. Changing this didn't help too much as I just get understeer when turning in more, even at 10kph; the turning circle of my car is way too large. I also used the Content Manager showroom to try to replicate the front suspension setup of the Mazda MX5, and while I felt like it improved things a bit, handling is still nowhere near realistic.



    My
    [HEADER]
    VERSION=10

    [COMPOUND_DEFAULT]
    INDEX=0

    [FRONT]
    NAME=Street
    SHORT_NAME=ST
    WIDTH=0.2150
    RADIUS=0.32000
    RIM_RADIUS=0.2415
    ANGULAR_INERTIA=1.5080
    DAMP=491
    RATE=237300
    DY0=1.6000
    DY1=-0.0440
    DX0=1.5520
    DX1=-0.0450
    WEAR_CURVE=__cm_tyre_wearcurve_front_0.lut
    SPEED_SENSITIVITY=0.003473
    RELAXATION_LENGTH=0.07881
    ROLLING_RESISTANCE_0=10
    ROLLING_RESISTANCE_1=0.0010211
    ROLLING_RESISTANCE_SLIP=4748
    FLEX=0.00077109
    CAMBER_GAIN=0.112
    DCAMBER_0=1.16
    DCAMBER_1=-14
    FRICTION_LIMIT_ANGLE=8.36
    XMU=0.28
    PRESSURE_STATIC=31
    PRESSURE_SPRING_GAIN=8066
    PRESSURE_FLEX_GAIN=0.44
    PRESSURE_RR_GAIN=0.51
    PRESSURE_D_GAIN=0.0038
    PRESSURE_IDEAL=38
    FZ0=2437
    LS_EXPY=0.8409
    LS_EXPX=0.9120
    DY_REF=1.250
    DX_REF=1.270
    FLEX_GAIN=0.0250
    FALLOFF_LEVEL=0.87
    FALLOFF_SPEED=4
    CX_MULT=1.02
    RADIUS_ANGULAR_K=0.0155
    BRAKE_DX_MOD=0.05
    __CM_SOURCE_ID=anderlink_sport

    [REAR]
    NAME=Street
    SHORT_NAME=ST
    WIDTH=0.2350
    RADIUS=0.32000
    RIM_RADIUS=0.2415
    ANGULAR_INERTIA=1.5440
    DAMP=493
    RATE=252804
    DY0=1.6163
    DY1=-0.0440
    DX0=1.5683
    DX1=-0.0450
    WEAR_CURVE=__cm_tyre_wearcurve_rear_0.lut
    SPEED_SENSITIVITY=0.003417
    RELAXATION_LENGTH=0.07888
    ROLLING_RESISTANCE_0=10
    ROLLING_RESISTANCE_1=0.0010175
    ROLLING_RESISTANCE_SLIP=4754
    FLEX=0.00067656
    CAMBER_GAIN=0.114
    DCAMBER_0=1.16
    DCAMBER_1=-14
    FRICTION_LIMIT_ANGLE=7.97
    XMU=0.28
    PRESSURE_STATIC=31
    PRESSURE_SPRING_GAIN=8512
    PRESSURE_FLEX_GAIN=0.44
    PRESSURE_RR_GAIN=0.52
    PRESSURE_D_GAIN=0.0038
    PRESSURE_IDEAL=39
    FZ0=2794
    LS_EXPY=0.8548
    LS_EXPX=0.9287
    DY_REF=1.251
    DX_REF=1.271
    FLEX_GAIN=0.0254
    FALLOFF_LEVEL=0.87
    FALLOFF_SPEED=4
    CX_MULT=1.02
    RADIUS_ANGULAR_K=0.0085
    BRAKE_DX_MOD=0.05
    __CM_SOURCE_ID=anderlink_sport

    [THERMAL_FRONT]
    SURFACE_TRANSFER=0.0134
    PATCH_TRANSFER=0.00027
    CORE_TRANSFER=0.0003675
    INTERNAL_CORE_TRANSFER=0.006013
    FRICTION_K=0.05771
    ROLLING_K=0.21
    PERFORMANCE_CURVE=__cm_tyre_perfcurve_front_0.lut
    GRAIN_GAMMA=0.9622
    GRAIN_GAIN=0.40
    BLISTER_GAMMA=1.0000
    BLISTER_GAIN=0.399628904147325
    COOL_FACTOR=2.79
    SURFACE_ROLLING_K=0.99720

    [THERMAL_REAR]
    SURFACE_TRANSFER=0.0140
    PATCH_TRANSFER=0.00027
    CORE_TRANSFER=0.0003791
    INTERNAL_CORE_TRANSFER=0.005260
    FRICTION_K=0.04794
    ROLLING_K=0.20
    PERFORMANCE_CURVE=__cm_tyre_perfcurve_rear_0.lut
    GRAIN_GAMMA=0.9603
    GRAIN_GAIN=0.40
    BLISTER_GAMMA=1.0000
    BLISTER_GAIN=0.376930068176741
    COOL_FACTOR=2.93
    SURFACE_ROLLING_K=0.99730

    [__CM_FRONT_ORIGINAL]
    NAME=Street
    SHORT_NAME=ST
    WIDTH=0.2150
    RADIUS=0.32000
    RIM_RADIUS=0.2415
    ANGULAR_INERTIA=1.5947
    DAMP=494
    RATE=264715
    DY0=1.6000
    DY1=-0.0440
    DX0=1.5520
    DX1=-0.0450
    WEAR_CURVE=__cm_tyre_wearcurve_anderlink_soft.lut
    SPEED_SENSITIVITY=0.003382
    RELAXATION_LENGTH=0.07891
    ROLLING_RESISTANCE_0=10
    ROLLING_RESISTANCE_1=0.0010154
    ROLLING_RESISTANCE_SLIP=4763
    FLEX=0.00063226
    CAMBER_GAIN=0.115
    DCAMBER_0=1.16
    DCAMBER_1=-14
    FRICTION_LIMIT_ANGLE=7.74
    XMU=0.28
    PRESSURE_STATIC=31
    PRESSURE_SPRING_GAIN=8798
    PRESSURE_FLEX_GAIN=0.44
    PRESSURE_RR_GAIN=0.52
    PRESSURE_D_GAIN=0.0038
    PRESSURE_IDEAL=39
    FZ0=3056
    LS_EXPY=0.8642
    LS_EXPX=0.9396
    DY_REF=1.252
    DX_REF=1.271
    FLEX_GAIN=0.0258
    FALLOFF_LEVEL=0.87
    FALLOFF_SPEED=4
    CX_MULT=1.02
    RADIUS_ANGULAR_K=0.0085
    BRAKE_DX_MOD=0.05
    __CM_SOURCE_ID=anderlink_sport

    [__CM_THERMAL_FRONT_ORIGINAL]
    SURFACE_TRANSFER=0.0145
    PATCH_TRANSFER=0.00027
    CORE_TRANSFER=0.0003883
    INTERNAL_CORE_TRANSFER=0.004678
    FRICTION_K=0.04211
    ROLLING_K=0.20
    PERFORMANCE_CURVE=__cm_tyre_perfcurve_anderlink_soft.lut
    GRAIN_GAMMA=0.9588
    GRAIN_GAIN=0.40
    BLISTER_GAMMA=1.0000
    BLISTER_GAIN=0.312763480012729
    COOL_FACTOR=3.03
    SURFACE_ROLLING_K=0.99728

    [__CM_REAR_ORIGINAL]
    NAME=Street
    SHORT_NAME=ST
    WIDTH=0.2350
    RADIUS=0.32000
    RIM_RADIUS=0.2415
    ANGULAR_INERTIA=1.7126
    DAMP=497
    RATE=280412
    DY0=1.6163
    DY1=-0.0440
    DX0=1.5683
    DX1=-0.0450
    WEAR_CURVE=__cm_tyre_wearcurve_anderlink_soft.lut
    SPEED_SENSITIVITY=0.003342
    RELAXATION_LENGTH=0.07890
    ROLLING_RESISTANCE_0=10
    ROLLING_RESISTANCE_1=0.0010138
    ROLLING_RESISTANCE_SLIP=4778
    FLEX=0.00059223
    CAMBER_GAIN=0.117
    DCAMBER_0=1.16
    DCAMBER_1=-14
    FRICTION_LIMIT_ANGLE=7.51
    XMU=0.28
    PRESSURE_STATIC=31
    PRESSURE_SPRING_GAIN=9123
    PRESSURE_FLEX_GAIN=0.44
    PRESSURE_RR_GAIN=0.53
    PRESSURE_D_GAIN=0.0038
    PRESSURE_IDEAL=39
    FZ0=3369
    LS_EXPY=0.8757
    LS_EXPX=0.9524
    DY_REF=1.252
    DX_REF=1.272
    FLEX_GAIN=0.0265
    FALLOFF_LEVEL=0.87
    FALLOFF_SPEED=4
    CX_MULT=1.02
    RADIUS_ANGULAR_K=0.0093
    BRAKE_DX_MOD=0.05
    __CM_SOURCE_ID=anderlink_sport

    [__CM_THERMAL_REAR_ORIGINAL]
    SURFACE_TRANSFER=0.0151
    PATCH_TRANSFER=0.00027
    CORE_TRANSFER=0.0004008
    INTERNAL_CORE_TRANSFER=0.003927
    FRICTION_K=0.03624
    ROLLING_K=0.19
    PERFORMANCE_CURVE=__cm_tyre_perfcurve_anderlink_soft.lut
    GRAIN_GAMMA=0.9568
    GRAIN_GAIN=0.40
    BLISTER_GAMMA=1.0000
    BLISTER_GAIN=0.3050326450832
    COOL_FACTOR=3.15
    SURFACE_ROLLING_K=0.99702
    have been generated using the Content Manager tyre machine learning feature, having used info of all street tyres in the game. Widths are 215 front, 235 rear. According to the tyre debug app, the front tyres grain every corner, all the time, no matter the tyre temperatures.

    I attached the car with its sfx folder removed for filesize reasons. The current version doesn't have visible wheels, but that shouldn't functionally change anything.

    Thank you to anyone who'll be taking a look at this.

    suspension.PNG
     

    Attached Files:

    Last edited: Dec 13, 2019
  2. garyjpaterson

    garyjpaterson Member

    Joined:
    Jun 28, 2017
    Messages:
    97
    Likes Received:
    99
    Ok I had a quick look, changed a few things and I think it drives pretty nice, but with plenty room to tweak to how you like it.
    Its still inherently understeery in steady state, as most street cars are and should be. But it'll rotate if you want it to, on power with TC off.
    I'll list things I changed below, also note I was using the Alfa Romeo 4C as a bit of a reference, as its also a small, mid engined sports car.

    • Tyres - more or less fine to kunos street tyre standards, except the thermals kept them from getting much heat. I wouldn't worry about the graining, thats just because they are running slightly under optimal temps, but plenty of AC cars do the same.
    • Steer Lock - 400 degrees seems far too little for a street car. I made it 900 degrees with ~16 steering ratio, so similar to most street cars.
    • Inertia - i reduced this a bit, as you have to remember the 'dimensions' you use to create the polar inertia assumes the car is a solid dense mass, which it's not. It should be a bit more eager to change direction now.
    • Centre of Gravity - height seems too low, ~0.31m vs ~0.44m of the alfa 4c
    • Weight Distribution - too far back imo for this mid-engined car at 30%f. I moved it to 42% front. I also fixed the graphics offset (visual only) now that the physics is more correct.
    • Suspension Geometry - no real use copying other cars, as they all have their own restrictions to work around (so might have funky geometry to get around a packaging constraint or something). So what I did was try and make it as neutral and benign as possible, for example making the roll centres similar front and rear, minimising bumpsteer front/rear etc. You can then go on and tweak things in small increments to change different characteristics, maybe add some anti-dive/lift/squat, change roll centre heights, increase/decrease ackerman angle, camber gain, tweak caster etc. Plenty of things you can do if you fancy it.
    • Springs/Dampers Setup - again similar idea as above, just making it a safe base to get started on. So the ride frequency is pretty even front/rear (~2hz i think). I also set the ride height to make sure the suspension (when static) matches the actual geometry you input by default. So alignment changes should match pretty close ingame with what you enter in the setup/.ini files. Dampers were setup to be very conservative, 0.3 bump, 0.6 rebound or something like that front and rear.
    • Also note I made the setup.ini have very wide ranges from min to max for each value - this is useful in the development stages so you can edit the setup ingame and not be limited. When its time to finalise the car later, you can reduce those or remove stuff you dont want to be edited.
    • Electronics - the slip ratio limit for both TC and ABS was VERY low, which is why the ABS was kicking in all the time even with low braking force. I increased both to something more reasonable, both will of course still kick in when you push.
    • Brakes - reduced max braking force a bit, again this will help avoid the locking, though they are still plenty powerful enough to lock as they should. I also made it cockpit adjustable which is something I like to have when in development, but of course you can turn that off again once finished.
    • Differential - you had the diff lock set incorrectly - you had actual percentages instead of ratios. It should range from 0-1, not 0-100. So your 40 and 20 were both maxing out at 1 (100%), which wont help with the understeer issue. Its now set to what you wanted initially, 0.4/0.2 power/coast respectively, you can tweak this in the setup menu to feel how it affects the car.
    Outside of the physics, i modelled a new 3d collider. Also I grabbed the driving position from the Alfa 4c as its a reasonable fit - though if you do ever model a interior, let me know and I can make a custom driving position/steering animation to suit.

    Here is the upload of the version I tweaked, just remember to backup your old one first just incase you dont like it! It has no SFX again to save upload size:
    https://www.dropbox.com/s/mj8emov4mix34uw/anderlink_sport.7z?dl=0

    Excuse all the apps in the way, but just showing its pretty playful if you want it to be :)
    [​IMG]
     
    pyge, Alfrink and luchian like this.
  3. luchian

    luchian Administrator Staff Member

    Joined:
    Jun 3, 2014
    Messages:
    3,007
    Likes Received:
    1,493
    :eek:
     
  4. Alfrink

    Alfrink New Member

    Joined:
    Mar 6, 2019
    Messages:
    2
    Likes Received:
    1
    Hey garyjpaterson! Thank you so much for all the work you put into this, it's a lot more than I was hoping for. I'll be starting to change what I have right now using your descriptions point by point in a bit, as I want to learn from the process and copy-paste as little as possible (,although I will probably copy the suspension setup, for instance).

    Regarding the weight balance, I had that fixed already in a version I made yesterday but had no time to update this post. The reason for this was that I got confused about suspension placement and why it would move around with the center of gravity, which is why I changed the center of gravity from .45 (where it should be according to Automation) to this horrible value to get the suspension in line with where the wheels are supposed to be. I wasn't aware that there are offsets for this until yesterday. :p

    Thanks for offering your help regarding seating position and animation! I might be going to try to model a simple interior, however my blender skills are very 'meh' and it probably wouldn't be worth to make someone else put too much effort into it. The model I included in this version is from the car I made in Automation, plus a few scaling changes, re-arranging the individual parts and setting the thing up to work in AC in general. A self-made body model for this car exists but is not nice to look at. :D

    Again, thank you lots for your effort! It's a huge help to me.
     
    garyjpaterson likes this.
  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