During my A-Levels, I completed this project as my EPQ, and achieved an A grade. The project involved the development of Python code to produce Blender animations that correctly represents the gear ratios on a Victorian Bath Stone crane I had previously modelled, from a given handle speed profile. It also involved the derivation of a formula for the crane that would represent the gear system, including the input handle force and angular acceleration, and each gear's moment of inertia. In future, the equation could be used to replace the need for a speed profile in the code, and instead take an input force of the handle to produce an animation with the correct operating speeds.
In order to understand the equations derrived, the crane's gear system was labelled as follows.
The following equation was derrived to represent the crane's gear setup for the force or torque provided by the quarryman. From this, I can then derive the angular acceleration of the handle axis. Using this, I would be able to edit my handle-axis Python script to work out the handle acceleration from defined and supplied values and apply the correct amount of rotation every second or even frame (30th of a second) for the most accuracy. As all the gear speeds are purely dependent on the handle speed, I would have to make few or no changes to my other scripts.
This investigation allowed me to understand how it was possible for these cranes to lift such heavy loads when being operated by two quarrymen. By calculating all the moments on inertia with estimated volumes and the density of iron, I was able to use my equation to calculate how much force would be required to hold a 5 tonne stone block by setting the acceleration to zero.
To complete the project, it invovled learning how to apply my A-level pyhics knowledge to learn simple and compound gearing mechanisms, and then furthering my knowledge of dynamic mechanical systems through maths and calculating accelerations. In terms of Computing, I learned how to apply my knowledge of Python programming to use in Blender by using its Python API.