[CARSIM] Simulating temperatures - Follow up

Started by
5 comments, last by Doug Patterson 5 years, 7 months ago

Hi, A few months ago I was curious about how to simulate tire/brake temperature and such things.

At the end I had to figure it out by myself, and the first result seems to be convincing to me:

The https://en.wikipedia.org/wiki/Newton's_law_of_cooling is a good starting point for basic cool-down, and how to change temperature.

For heating up I could only use common sense, since these properties of tires are probably bigger secrets than actual Pacejka parameters :)
So at the end I used these parameters that are already calculated in the simulation:

Angular velocity, tire deflection, camber, CP velocity, slip vector and a whole bunch of coefficients (about 15 of them)

so for heating up, go for something like this:
ang_vel * deflection * rolling_coeff +
ang_vel * deflection * camber * camber_coeff +

slip_vector_len * deflection * friction_coeff

Also a fancy thing that can be added as brake discs can heat up to 800°C or more it affects the internal temperature, that increases pressure, that makes the tire spring more stiff :)

for cooling down I used a simple kind of heat transfer:
move velocity, spinning speed and some base cool down factor were used to determine the speed of how quick the tire temperature interpolates towards the air temperature, and towards the road temperature at the CP.
The whole equation is based on the temperature difference so the transition is not linear, and with a couple of parameters the speed can also be adjusted.

At the end I didn't only calculate a single temperature value but an array of them, one for the internal temperature and 32 for the tire thread, as the wheel rolls the current rotation angle can be used as an index to this array.
So relatively for free I have an effect of different wear and temperature over the tire, so a hard braking can ruin a certain area of the tire, and as it wears it changes the radius of the wheel, and changes a lots of things :)

 

For the brake disc heat up I used the brake_torque to increase heat and the above method to cool it down to air temperature.

 

Regarding tire wear, I used the same rolling and friction method scaling by some temperature-wear curve value, so different wear at various temperatures, overheating can melt down the rubber quickly...etc.

 

And finally how that whole thing affects the final simulation?
Using the wheel angle again to look up the properties at the CP, with a couple of pre-set curves (temperature-grip ratio, dirt-grip ratio, wear-grip ratio) I got a single scalar at the end, that goes into the tire formula (not scaling the final Fx/Fy, I scale some of the pacejka parameters instead)

 

And yes, since yesterday the tire can get dirty and my life is getting even more complicated :)

 

I hope I could give some idea to who is also into this topic, and if you are already an expert, please don't spare me with your ideas! :D

 

 

 

 

 

 

Advertisement

For brake heating, it might be simpler to think about it in terms of energy transfer.  The kinetic energy of the car is being dumped into the brakes as thermal energy (dKE_car = Q_brakes).  You could then take the amount of kinetic energy lost between the current and previous frame and equate that to the thermal energy gained by the brake rotors and pads.

0.5 * mass_car * (velocity_car^2) = mass_brakes * specific_heat * deltaTemp

 

There would be a lot of ballparking of the parameters and the efficiency of the energy transfer, but this would be a quick way to get a temperature change based on the lost kinetic energy of the car.

As for the cooling rate, you can use Max Planck's luminosity equation: P = e*sigma*A*T^4, where P = Power (energy lost per unit time), e = emissivity (0-1 with 1 being a perfect radiator), A = surface area, and T = temperature.  Since you're tracking the rotor temperature, you can see how much heat loss there is in a given frame using Q_brakes = P * dt and solving for the change in temperature.

22 hours ago, bmarci said:

Hi, A few months ago I was curious about how to simulate tire/brake temperature and such things.

At the end I had to figure it out by myself, and the first result seems to be convincing to me:

The https://en.wikipedia.org/wiki/Newton's_law_of_cooling is a good starting point for basic cool-down, and how to change temperature.

For heating up I could only use common sense, since these properties of tires are probably bigger secrets than actual Pacejka parameters :)
So at the end I used these parameters that are already calculated in the simulation:

Angular velocity, tire deflection, camber, CP velocity, slip vector and a whole bunch of coefficients (about 15 of them)

so for heating up, go for something like this:
ang_vel * deflection * rolling_coeff +
ang_vel * deflection * camber * camber_coeff +

slip_vector_len * deflection * friction_coeff

Also a fancy thing that can be added as brake discs can heat up to 800°C or more it affects the internal temperature, that increases pressure, that makes the tire spring more stiff :)

for cooling down I used a simple kind of heat transfer:
move velocity, spinning speed and some base cool down factor were used to determine the speed of how quick the tire temperature interpolates towards the air temperature, and towards the road temperature at the CP.
The whole equation is based on the temperature difference so the transition is not linear, and with a couple of parameters the speed can also be adjusted.

At the end I didn't only calculate a single temperature value but an array of them, one for the internal temperature and 32 for the tire thread, as the wheel rolls the current rotation angle can be used as an index to this array.
So relatively for free I have an effect of different wear and temperature over the tire, so a hard braking can ruin a certain area of the tire, and as it wears it changes the radius of the wheel, and changes a lots of things :)

 

For the brake disc heat up I used the brake_torque to increase heat and the above method to cool it down to air temperature.

 

Regarding tire wear, I used the same rolling and friction method scaling by some temperature-wear curve value, so different wear at various temperatures, overheating can melt down the rubber quickly...etc.

 

And finally how that whole thing affects the final simulation?
Using the wheel angle again to look up the properties at the CP, with a couple of pre-set curves (temperature-grip ratio, dirt-grip ratio, wear-grip ratio) I got a single scalar at the end, that goes into the tire formula (not scaling the final Fx/Fy, I scale some of the pacejka parameters instead)

 

And yes, since yesterday the tire can get dirty and my life is getting even more complicated :)

 

I hope I could give some idea to who is also into this topic, and if you are already an expert, please don't spare me with your ideas! :D

 

 

 

 

Very informative post that you've shared @bmarci regarding the braking element in a driving game. I've developed a couple games in the past, nothing to extreme. I develop software for Windows applications, and I'm pretty knowledgeable and versatile in an array of different languages but I have always wanted to learn a bit more about game development. After reading your post, its given me an idea for a game I might try creating. Not sure if it will work out, but this has given me the motivation to give it a shot.

 

 

T. Hill - JS Development 

On 8/29/2018 at 1:33 PM, Doug Patterson said:

For brake heating, it might be simpler to think about it in terms of energy transfer.  The kinetic energy of the car is being dumped into the brakes as thermal energy (dKE_car = Q_brakes).  You could then take the amount of kinetic energy lost between the current and previous frame and equate that to the thermal energy gained by the brake rotors and pads.

0.5 * mass_car * (velocity_car^2) = mass_brakes * specific_heat * deltaTemp

Yes, the loss of kinetic energy was one of my first thought, but my concern was I couldn't tell that what portion of the energy loss is due to braking. Velocity is changed by aerodynamics, tire friction or even collision. And to tell the contribution ratio  between brakes it seemed impossible :)

 

On 8/29/2018 at 1:33 PM, Doug Patterson said:

As for the cooling rate, you can use Max Planck's luminosity equation: P = e*sigma*A*T^4, where P = Power (energy lost per unit time), e = emissivity (0-1 with 1 being a perfect radiator), A = surface area, and T = temperature.  Since you're tracking the rotor temperature, you can see how much heat loss there is in a given frame using Q_brakes = P * dt and solving for the change in temperature.

Thanks, I'll give it a try!

 

 

On 8/29/2018 at 2:34 PM, EnergizerOne said:

Very informative post that you've shared @bmarci regarding the braking element in a driving game. I've developed a couple games in the past, nothing to extreme. I develop software for Windows applications, and I'm pretty knowledgeable and versatile in an array of different languages but I have always wanted to learn a bit more about game development. After reading your post, its given me an idea for a game I might try creating. Not sure if it will work out, but this has given me the motivation to give it a shot.

Hey, I'm glad if I can motivate people :)

On 8/29/2018 at 7:33 PM, Doug Patterson said:

For brake heating, it might be simpler to think about it in terms of energy transfer.  The kinetic energy of the car is being dumped into the brakes as thermal energy (dKE_car = Q_brakes).  You could then take the amount of kinetic energy lost between the current and previous frame and equate that to the thermal energy gained by the brake rotors and pads.

0.5 * mass_car * (velocity_car^2) = mass_brakes * specific_heat * deltaTemp

 

There would be a lot of ballparking of the parameters and the efficiency of the energy transfer, but this would be a quick way to get a temperature change based on the lost kinetic energy of the car.

As for the cooling rate, you can use Max Planck's luminosity equation: P = e*sigma*A*T^4, where P = Power (energy lost per unit time), e = emissivity (0-1 with 1 being a perfect radiator), A = surface area, and T = temperature.  Since you're tracking the rotor temperature, you can see how much heat loss there is in a given frame using Q_brakes = P * dt and solving for the change in temperature.

Using energy conservation is always a good approach.

But radiative cooling alone is probably fairly minor compared to convective cooling. Unless it is a racing game in vacuum.

10 hours ago, l0calh05t said:

Using energy conservation is always a good approach.

But radiative cooling alone is probably fairly minor compared to convective cooling. Unless it is a racing game in vacuum.

Good point about the convective cooling.  Brake ducts exist for a reason.  Let me see if I can formulate a simple algorithm rooted in the actual physics but hand-wavy enough to execute quickly...  

This topic is closed to new replies.

Advertisement