I How to transfer angular momentum between two flywheels?

AI Thread Summary
The discussion focuses on simulating the transfer of angular momentum between two flywheels in a car engine model. The initial setup involves an engine generating torque to spin a flywheel, which is then coupled to a clutch and transmission that transfers torque to the wheels. The key challenge is determining how to effectively transfer energy from the engine flywheel to the wheel flywheel while accounting for changes in angular velocity and energy losses due to clutch drag. A simplified model using conservation of angular momentum is proposed, but it is noted that this may not accurately reflect real-world mechanics. Ultimately, the simulation aims to realistically depict the dynamics of energy transfer in a vehicle's drivetrain.
wheelman
Messages
2
Reaction score
0
I am trying to build a simulation of a car engine and wheels for a game project.

My model is currently this:
Engine outputs a torque -> this spins up a flywheel over time (the physics step of 1/60s) -> the flywheel is coupled with the clutch and thus transmission -> the transmission multiplies the torque and passes it to the wheels -> the wheel's angular velocity also increases over time.

For the time being I am modeling the car's wheel as a single flywheel, so it is an interaction between two flywheels.

I am not sure if this is correct but it would allow me to simulate a proper clutch and allow the engine to rev as well as apply friction losses for the rpm lower over time.

I can input a torque into the flywheel and spin it up like this

flywheel_mass = 7.5 kg
flywheel_radius = 0.3 m
I = (7.5 * 0.3^2)/2 = moment of inertia

flywheel_angular_velocity_f = flywheel_angular_velocity_i + (input_torque * time / I)

for example, if I were to apply 300Nm for 1 second to a flywheel @ rest, the final velocity would be 888.89 rad/s

This is where I am stuck, how do I transfer the energy from the engine flywheel to the wheel?

As I need both decrease the velocity of the flywheel and increase the wheel velocity every 1/60s.

The wheel weighs 20kg and has a radius of 0.35 m and is at rest initially.

It has been about 5 years since I've done any physics, so I am out of my depth here (not sure if I even studied rotational motion in high school), thanks to anybody who managed to read my rambles.
 
Physics news on Phys.org
I think you should follow the energy flow through the system.
The engine converts fuel to RPM*torque and heat.
The clutch transferes torque and gets hot.
The driveline and wheels have rotational energy.
The wheels slip on the road.
The car body has kinetic energy, windage and friction.
The vehicle has potential energy.
Draw a diagram of all the energy flow in joules per second = power in watts.
 
Baluncore said:
I think you should follow the energy flow through the system.
The engine converts fuel to RPM*torque and heat.
The clutch transferes torque and gets hot.
The driveline and wheels have rotational energy.
The wheels slip on the road.
The car body has kinetic energy, windage and friction.
The vehicle has potential energy.
Draw a diagram of all the energy flow in joules per second = power in watts.
This is not useful to me as I am ignoring a lot of factors, I am just working on a model of two flywheels, one already spinning, and it needs to exert its kinetic energy into the other flywheel to get it up to speed.

I can't find any solutions on the internet.
 
If you have wheel 1 with moment of inertia ##I_1## initially spinning with angular velocity ##\omega_{1,b}## in isolation and you then attached that rigidly and without loss of energy to a wheel 2 with ##I_2## via a mass-less gear train with a gear ratio such that ##\omega_{1,a} = k \omega_{2,a}##, then conservation of angular moment before (b) and after (a) they have been clutched together means that ##\omega_{1,b} I_1 = \omega_{1,a} I_1 + k \omega_{2,a} I_2## which solves to $$\omega_{1,a} = \frac{I_1}{I_1 + k I_2}\omega_{1,b}.$$
(Edit: added b and a subscripts to make it clear what is before and what is after).

This is probably the simplest model you can get for transfer of angular momentum. A more realistic model would probably need to include gear train and clutch energy losses and gear train moment of inertia. Also, note that it fairly unrealistic to have an engine provide constant torque since all real-world engines inherently have a non-constant torque-RPM curve.

Later: After a bit of thinking, I believe this model is too simple to be useful, since it for some parameters require magic mechanics, i.e. it models a situation that is not mechanically possible. The original wording of the problem made me think "simplest thing must be conservation of angular momentum" and thus I modeled it as two isolated rotating wheels that does not exchange torques with anything else. That is, one wheel starts with all rotation, then some (magic) gears and clutch is briefly engaged to "distribute the angular momentum" and then disengaged again, and then two wheels are found rotating freely with their respective rotational speed. However, this assumes that it is even physically possible to match a geared rotation speed without exchanging torque with anything else, which I strongly suspect is impossible in general or will require a supporting structure which would then end up rotating as well. In any case, the above simple model allows for (non-physical) gain in rotational energy for high enough gear ratios when ##I_2 < I_1## which is a clear sign something is wrong.

So the short is, don't use this model for anything that has to be remotely realistic.
 
Last edited:
wheelman said:
This is not useful to me as I am ignoring a lot of factors, I am just working on a model of two flywheels, one already spinning, and it needs to exert its kinetic energy into the other flywheel to get it up to speed.
The engine and flywheel has an angular velocity, w1; a moment of inertia, M1; and so an energy content; E1 = 0.5 * M1 * w1^2
The driveline and wheels has an angular velocity, w2; a moment of inertia, M2; and so an energy content; E2 = 0.5 * M2 * w2^2
You apply clutch drag, which let us say is a fixed torque, T.
The energy lost from M1 is w1 * T * dt. You can compute the new E1 and the new w1.
The energy gained by M2 is w2 * T * dt. You can compute the new E2 and the new w2.
The clutch dissipates (w1 - w2) * T; so it gets hot.
When w1 = w2 the clutch stops slipping.
 
It seems to me that treating the engine as a flywheel will lead to a simulation that is far from reality: once the connection is completed, the rpm's of the engine will dramatically decrease.
The energy from the burning fuel is constantly being transferred to the wheels.
As the wheels go from zero to x angular velocity, more fuel is supplied to the engine in such a way that it can keep spinning around the rpm value where torque is maximum.
 
Engine loses RPM during clutch slip because there is no energy coming from fuel.
Here is some Basic code that works. There is slight error (< 1%) of total energy due to the simple method used for integration.
[CODE title="clutch simulation"]' Engine and flywheel have angular velocity, w1; Mass moment of inertia, M1;
' Driveline and wheels have angular velocity, w2; Mass moment of inertia, M2;
' apply clutch drag, let it be a fixed torque, ct;
' f = m * a; therefore, a = f / m;
' a = dv / dt; therefore, dv / dt = f / m;
' dv = dt * f / m; here it is, dw = dt * ct / M .
' angular energy; E = 0.5 * M * w^2
' clutch dissipates ( w1 - w2 ) * ct; so it gets hot
' check energy total; conservation of energy
'
Dim As Double dt = 1/15, t, st = 60 ' step, time, sim time all in seconds
Dim As Double M1 = 5, w1 = 2000, e1 = M1 * w1^2 ' initial engine and flywheel
Dim As Double M2 = 10, w2 = 0 , e2 = M2 * w2^2 ' initial drive-train and wheels
Dim As Double ct = 1000, de1, de2, dw1, dw2 ' clutch torque and delta energy
Dim As Double e3 = 0, de3, MJ ' clutch energy as heat, and total system energy

Dim As String f = " ####.### #####.## #####.## ###.###### ###.######"
Print " sec w1 w2 clutch MJ energy MJ "
t = 0
Do
t += dt ' simulation time in seconds
' change of ang vel w
dw1 = dt * ct / M1
dw2 = dt * ct / M2
' clutch heat
de3 = Abs( w1 - w2 ) * ct * dt
' new ang vel
If w1 > w2 Then ' engine drives
w1 -= dw1
w2 += dw2
Else ' engine brakes
w1 += dw1
w2 -= dw2
End If
' new energy
e1 = 0.5 * M1 * w1^2
e2 = 0.5 * M2 * w2^2
e3 += de3
MJ = ( e1 + e2 + e3 ) / 1e6 ' conservation of energy
Print Using f; t; w1; w2; e3 / 1e6; MJ
Loop until w1 < w2 ' When w1 = w2 the clutch stops slipping
' results
' sec w1 w2 clutch MJ energy MJ
' 0.067 1986.67 6.67 0.133333 10.000667
' 0.133 1973.33 13.33 0.265333 10.001333
' 0.200 1960.00 20.00 0.396000 10.002000
' 0.267 1946.67 26.67 0.525333 10.002667
' 0.333 1933.33 33.33 0.653333 10.003333
' 0.400 1920.00 40.00 0.780000 10.004000
' 0.467 1906.67 46.67 0.905333 10.004667
' 0.533 1893.33 53.33 1.029333 10.005333
' 0.600 1880.00 60.00 1.152000 10.006000
' 0.667 1866.67 66.67 1.273333 10.006667
' 0.733 1853.33 73.33 1.393333 10.007333
' 0.800 1840.00 80.00 1.512000 10.008000
' 0.867 1826.67 86.67 1.629333 10.008667
' 0.933 1813.33 93.33 1.745333 10.009333
' 1.000 1800.00 100.00 1.860000 10.010000
' 1.067 1786.67 106.67 1.973333 10.010667
' 1.133 1773.33 113.33 2.085333 10.011333
' 1.200 1760.00 120.00 2.196000 10.012000
' 1.267 1746.67 126.67 2.305333 10.012667
' 1.333 1733.33 133.33 2.413333 10.013333
' 1.400 1720.00 140.00 2.520000 10.014000
' 1.467 1706.67 146.67 2.625333 10.014667
' 1.533 1693.33 153.33 2.729333 10.015333
' 1.600 1680.00 160.00 2.832000 10.016000
' 1.667 1666.67 166.67 2.933333 10.016667
' 1.733 1653.33 173.33 3.033333 10.017333
' 1.800 1640.00 180.00 3.132000 10.018000
' 1.867 1626.67 186.67 3.229333 10.018667
' 1.933 1613.33 193.33 3.325333 10.019333
' 2.000 1600.00 200.00 3.420000 10.020000
' 2.067 1586.67 206.67 3.513333 10.020667
' 2.133 1573.33 213.33 3.605333 10.021333
' 2.200 1560.00 220.00 3.696000 10.022000
' 2.267 1546.67 226.67 3.785333 10.022667
' 2.333 1533.33 233.33 3.873333 10.023333
' 2.400 1520.00 240.00 3.960000 10.024000
' 2.467 1506.67 246.67 4.045333 10.024667
' 2.533 1493.33 253.33 4.129333 10.025333
' 2.600 1480.00 260.00 4.212000 10.026000
' 2.667 1466.67 266.67 4.293333 10.026667
' 2.733 1453.33 273.33 4.373333 10.027333
' 2.800 1440.00 280.00 4.452000 10.028000
' 2.867 1426.67 286.67 4.529333 10.028667
' 2.933 1413.33 293.33 4.605333 10.029333
' 3.000 1400.00 300.00 4.680000 10.030000
' 3.067 1386.67 306.67 4.753333 10.030667
' 3.133 1373.33 313.33 4.825333 10.031333
' 3.200 1360.00 320.00 4.896000 10.032000
' 3.267 1346.67 326.67 4.965333 10.032667
' 3.333 1333.33 333.33 5.033333 10.033333
' 3.400 1320.00 340.00 5.100000 10.034000
' 3.467 1306.67 346.67 5.165333 10.034667
' 3.533 1293.33 353.33 5.229333 10.035333
' 3.600 1280.00 360.00 5.292000 10.036000
' 3.667 1266.67 366.67 5.353333 10.036667
' 3.733 1253.33 373.33 5.413333 10.037333
' 3.800 1240.00 380.00 5.472000 10.038000
' 3.867 1226.67 386.67 5.529333 10.038667
' 3.933 1213.33 393.33 5.585333 10.039333
' 4.000 1200.00 400.00 5.640000 10.040000
' 4.067 1186.67 406.67 5.693333 10.040667
' 4.133 1173.33 413.33 5.745333 10.041333
' 4.200 1160.00 420.00 5.796000 10.042000
' 4.267 1146.67 426.67 5.845333 10.042667
' 4.333 1133.33 433.33 5.893333 10.043333
' 4.400 1120.00 440.00 5.940000 10.044000
' 4.467 1106.67 446.67 5.985333 10.044667
' 4.533 1093.33 453.33 6.029333 10.045333
' 4.600 1080.00 460.00 6.072000 10.046000
' 4.667 1066.67 466.67 6.113333 10.046667
' 4.733 1053.33 473.33 6.153333 10.047333
' 4.800 1040.00 480.00 6.192000 10.048000
' 4.867 1026.67 486.67 6.229333 10.048667
' 4.933 1013.33 493.33 6.265333 10.049333
' 5.000 1000.00 500.00 6.300000 10.050000
' 5.067 986.67 506.67 6.333333 10.050667
' 5.133 973.33 513.33 6.365333 10.051333
' 5.200 960.00 520.00 6.396000 10.052000
' 5.267 946.67 526.67 6.425333 10.052667
' 5.333 933.33 533.33 6.453333 10.053333
' 5.400 920.00 540.00 6.480000 10.054000
' 5.467 906.67 546.67 6.505333 10.054667
' 5.533 893.33 553.33 6.529333 10.055333
' 5.600 880.00 560.00 6.552000 10.056000
' 5.667 866.67 566.67 6.573333 10.056667
' 5.733 853.33 573.33 6.593333 10.057333
' 5.800 840.00 580.00 6.612000 10.058000
' 5.867 826.67 586.67 6.629333 10.058667
' 5.933 813.33 593.33 6.645333 10.059333
' 6.000 800.00 600.00 6.660000 10.060000
' 6.067 786.67 606.67 6.673333 10.060667
' 6.133 773.33 613.33 6.685333 10.061333
' 6.200 760.00 620.00 6.696000 10.062000
' 6.267 746.67 626.67 6.705333 10.062667
' 6.333 733.33 633.33 6.713333 10.063333
' 6.400 720.00 640.00 6.720000 10.064000
' 6.467 706.67 646.67 6.725333 10.064667
' 6.533 693.33 653.33 6.729333 10.065333
' 6.600 680.00 660.00 6.732000 10.066000
' 6.667 666.67 666.67 6.733333 10.066667
' 6.733 653.33 673.33 6.733333 10.067333
[/CODE]
 
Last edited:
Lnewqban said:
As the wheels go from zero to x angular velocity, more fuel is supplied to the engine in such a way that it can keep spinning around the rpm value where torque is maximum.
Once set, the fuel is not changed during the majority of the clutch engagement period because the clutch torque and RPM are stable, even though the vehicle is accelerating during that period.

The usual clutch engagement technique is to raise the engine RPM to a fixed speed, then gradually release the clutch while increasing the fuel to maintain the RPM. You quickly reach a situation where the drag on the clutch is balanced by the fuel supplied torque, with the RPM fixed. So during clutch engagement, following the torque to RPM curve of the engine is not really important.

The quickest take-off will probably be with engine RPM at the point of maximum torque. The limit in the lower gears will be moderated by tire slip.
 
  • Like
Likes Lnewqban
wheelman said:
flywheel_angular_velocity_f = flywheel_angular_velocity_i + (input_torque * time / I)
What you are doing here is using the equation ##\alpha = \frac{T}{I}##. The problem is that the angular acceleration doe not only depends on the inertia of the flywheel itself, but also the inertia of the other rotational components, and even the inertia of the entire vehicle accelerating itself!

So you have to see the vehicle as a whole and use ##F= m_e a## where ##m_e## is the equivalent mass.

The equivalent mass is about considering accelerating the mass of the vehicle itself plus accelerating the rotating masses within the vehicle.

For example, consider accelerating the vehicle of mass ##m##, its rotating wheels of inertia ##I_w## and radius ##r_w##, and let's say motors of inertia ##I_m## are connected to the wheels through a gear ratio ##G##. The force ##F## acting on the vehicle through the wheel relates to the wheel torque ##T_w## and angular acceleration ##\alpha_w## with:
$$F= ma$$
$$\frac{T_w}{r_w}=m\alpha_w r_w$$
Or:
$$\alpha_w = \frac{T_w}{m r_w^2}$$
So you can say that the equivalent vehicle inertia from the point of view of the wheel is ##I_{ve} = m r_w^2##.

Similarly, for relating the motor to the wheel we have:
$$T_m = I_m\alpha_m$$
$$\frac{T_w}{G} = I_mG\alpha_w$$
Or:
$$\alpha_w = \frac{T_w}{I_m G^2}$$
So you can say that the equivalent motor inertia from the point of view of the wheel is ##I_{me} = I_m G^2##.

Putting all together for the point of view of the wheel, the equivalent inertia ##I_e## is:
$$I_e = I_{ve} + I_w + I_{me}$$
Let's define ##I_e = m_e r_w^2## and put everything in the previous equation:
$$m_e r_w^2 = m r_w^2 + I_w + I_m G^2$$
Rearranging, you get:
$$m_e = m \left(1 + \frac{I_w}{m r_w^2} + G^2\frac{I_m}{m r_w^2}\right)$$
This represents the equivalent mass (inertia) the whole vehicle is under, such that the actual acceleration of the vehicle and its rotating components actually are:
$$a = \frac{F}{m_e}$$
$$\alpha_w = \frac{a}{r_w}$$
$$\alpha_m = G \alpha_w$$

More info here.
 
  • Like
Likes Lnewqban
Back
Top