Quickstart ===== See :doc:`installation`, if you have not yet installed *openTorsion*. OpenTorsion can be used by creating a shaft-line finite element model. Example: Calculating the eigenfrequencies, mode shapes and a Campbell diagram with a shaft-line finite element model of a windmill [#Sop2011]_. .. code:: bash import opentorsion as ot k1 = 3.67e8 # Turbine shaft stiffness k2 = 5.496e9 # Rotor stiffness J1 = 1e7 # Turbine inertia J2 = 5770 # Rotor inner inertia J3 = 97030 # Rotor outer inertia # Elements are initiated and added to corresponding list shafts, disks = [], [] disks.append(ot.Disk(0, J1)) shafts.append(ot.Shaft(0, 1, None, None, k=k1, I=0)) disks.append(ot.Disk(1, J2)) shafts.append(ot.Shaft(1, 2, None, None, k=k2, I=0)) disks.append(ot.Disk(2, J3)) # An assembly is initiated with the lists of powertrain elements assembly = ot.Assembly(shafts, disk_elements=disks) # Calculation of the eigenfrequencies of the powertrain omegas_undamped, omegas_damped, damping_ratios = assembly.modal_analysis() # Print eigenfrequencies. # The list contains each eigenfrequency twice: e.g. eigenfrequencies = [1st, 1st, 2nd, 2nd, 3rd, 3rd, ...] print("Eigenfrequencies: ", omegas_undamped.round(3)) # Initiate plotting tools calling Plots(assembly) plot_tools = ot.Plots(assembly) # Plot eigenmodes, input number of eigenmodes plot_tools.plot_assembly() plot_tools.plot_eigenmodes(modes=3) plot_tools.plot_campbell(frequency_range_rpm=[0, 300], num_modes=2) See more :doc:`opentorsion.examples` and :doc:`tutorials`. .. rubric:: References .. [#Sop2011] J. Sopanen, V. Ruuskanen, J. Nerg and J. Pyrhonen, "Dynamic Torque Analysis of a Wind Turbine Drive Train Including a Direct-Driven Permanent-Magnet Generator," in IEEE Transactions on Industrial Electronics, vol. 58, no. 9, pp. 3859-3867, Sept. 2011, doi: 10.1109/TIE.2010.2087301.