How to transfer angular momentum between two flywheels?

• I
wheelman
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
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.

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.

wheelman
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.

Gold Member
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:
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.

Homework Helper
Gold Member
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.
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

Last edited:
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.

Lnewqban
Gold Member
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$$