3 - Gear Structural Analysis¶
System in Analysis¶
The complete example code is available
here.
The mechanical powertrain to be studied is the one described in the
2 - Complex External Torque
example.
The teeth of all gears must be verified for static bending and contact
stress with a safety factor 1.5.
Model Set Up¶
We want to deep dive the analysis on gears structural strength. In order to take into account these computation, we have to edit the gear definitions, to include some required data:
from gearpy.units import Length, Stress
gear_1 = SpurGear(name = 'gear 1',
n_teeth = 10,
inertia_moment = InertiaMoment(1, 'gcm^2'),
module = Length(1, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
gear_2 = SpurGear(name = 'gear 2',
n_teeth = 80,
inertia_moment = InertiaMoment(3100, 'gcm^2'),
module = Length(1, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
gear_3 = SpurGear(name = 'gear 3',
n_teeth = 10,
inertia_moment = InertiaMoment(4, 'gcm^2'),
module = Length(1.5, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
gear_4 = SpurGear(name = 'gear 4',
n_teeth = 60,
inertia_moment = InertiaMoment(5000, 'gcm^2'),
module = Length(1.5, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
gear_5 = SpurGear(name = 'gear 5',
n_teeth = 10,
inertia_moment = InertiaMoment(12, 'gcm^2'),
module = Length(2, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
gear_6 = SpurGear(name = 'gear 6',
n_teeth = 50,
inertia_moment = InertiaMoment(7600, 'gcm^2'),
module = Length(2, 'mm'),
face_width = Length(10, 'mm'),
elastic_modulus = Stress(200, 'GPa'))
See SpurGear
for more details on instantiation parameters.
Structural analysis is also available for
HelicalGear
and
WormWheel
(bending stress only).
All gears are made in steel, which yield stress is 250 MPa.
The remaining set up of the model stay the same.
Results Analysis¶
We can get a snapshot of the system at a particular time of interest:
powertrain.snapshot(target_time = Time(10, 'sec'),
torque_unit = 'mNm',
driving_torque_unit = 'mNm',
load_torque_unit = 'mNm')
Mechanical Powertrain Status at Time = 10 sec
angular position (rad) angular speed (rad/s) angular acceleration (rad/s^2) torque (mNm) driving torque (mNm) load torque (mNm) tangential force (N) bending stress (MPa) contact stress (MPa) pwm
motor 11510.286813 1375.840709 5.011918 0.058805 1.241126 1.182321 1.0
flywheel 11510.286813 1375.840709 5.011918 0.058805 1.241126 1.182321
gear 1 11510.286813 1375.840709 5.011918 0.058805 1.241126 1.182321 0.236464 0.117644 15.128545
gear 2 1438.785852 171.980089 0.626490 0.423395 8.936107 8.512712 0.223403 0.051239 14.704783
gear 3 1438.785852 171.980089 0.626490 0.423395 8.936107 8.512712 1.135028 0.37646 27.559369
gear 4 239.797642 28.663348 0.104415 2.286335 48.254979 45.968644 1.072333 0.169807 26.787411
gear 5 239.797642 28.663348 0.104415 2.286335 48.254979 45.968644 4.596864 1.143499 48.712974
gear 6 47.959528 5.732670 0.020883 10.288508 217.147407 206.858899 4.342948 0.532224 47.348488
We can get a more general view of the system by plotting the time variables and focus the plot only on interesting elements and variables. We can also specify a more convenient unit to use when plotting torques:
powertrain.plot(figsize = (10, 10),
elements = [gear_1, gear_2, gear_3, gear_4, gear_5, gear_6],
angular_position_unit = 'rot',
torque_unit = 'mNm',
variables = ['driving torque', 'load torque', 'torque', 'tangential force', 'bending stress',
'contact stress'])
We can appreciate how the torques, forces and stresses vary over time,
and in particular there is a peak in some variables at the beginning of
the simulation.
We can see that the torques, forces and stresses are low in the first
gears, and increase in the last gears, so we can draw a more clean plot
and focus on the last two gears only:
powertrain.plot(figsize = (8, 8),
elements = [gear_5, gear_6],
angular_position_unit = 'rot',
torque_unit = 'mNm',
variables = ['driving torque', 'load torque', 'torque', 'tangential force', 'bending stress',
'contact stress'])
The maximum contact stress is about 135 MPa on the gear 6 resulting in
a safety factor about 1.85, higher than the target 1.5. The bending
stresses are even lower on all gears.
We can consider these gears correctly designed for the considered
application.