Tutorial - Modelling

OpenTorsion is a Python library for torsional vibration analysis. OpenTorsion includes tools for creating shaft-line finite element models and running torsional vibration analyses.

OpenTorsion’s modelling method is based on the shaft-line finite element method [1]. Torsional vibration models are created using lumped elements with inertia, stiffness and damping. Elements supported in openTorsion include Shaft, Disk and Gear, defined in their respective classes. The elements are then combined into an Assembly, which represents a system model. Below, an example system is modelled using openTorsion.

import opentorsion as ot

# Creating 4 shaft elements using stiffness values
# Syntax: ot.Shaft(node 1, node 2, Length [mm], outer diameter [mm], stiffness [Nm/rad])
shaft1 = ot.Shaft(0, 1, L=None, odl=None, k=25e+6)
shaft2 = ot.Shaft(1, 2, L=None, odl=None, k=25e+6)
shaft3 = ot.Shaft(2, 3, L=None, odl=None, k=25e+6)
shaft4 = ot.Shaft(3, 4, L=None, odl=None, k=25e+6)

# Creating a hollow shaft using dimension and material parameter values
# Syntax: ot.Shaft(node 1, node 2, Length [mm], outer diameter [mm], inner diameter [mm], shear modulus [Pa], density [kg/m^3])
shaft5 = ot.Shaft(5, 6, L=400, odl=80, idl=40, G=79e9, rho=7850)

# Creating 5 disk elements
# Syntax: ot.Disk(node, inertia [kgm^2])
disk1 = ot.Disk(0, I=100)
disk2 = ot.Disk(1, I=10)
disk3 = ot.Disk(2, I=50)
disk4 = ot.Disk(3, I=10)
disk5 = ot.Disk(4, I=80)
disk6 = ot.Disk(6, I=80)

# Creating a gear element
# Gears consist of a parent gear and one or more child gear
# Syntax: ot.Gear(node, inertia [kgm^2], gear radius [mm], parent)
gear1 = ot.Gear(4, I=2, R=50, parent=None)  # parent gear
gear2 = ot.Gear(5, I=5, R=150, parent=gear1)  # child gear

# Adding the elements to lists corresponding to an element type
shafts = [shaft1, shaft2, shaft3, shaft4, shaft5]
disks = [disk1, disk2, disk3, disk4, disk5, disk6]
gears = [gear1, gear2]

# Syntax: ot.Assembly(shaft_elements, disk_elements, gear_elements)
assembly = ot.Assembly(shaft_elements=shafts, disk_elements=disks, gear_elements=gears)

# Assembly can be visualized using openTorsion plotting tools.
plot_tools = ot.Plots(assembly)  # initialize plot tools
plot_tools.plot_assembly()
Visualization of assembly.

References