You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ross/rotor_assembly.py
+19Lines changed: 19 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -567,6 +567,24 @@ def flatten(l):
567
567
self.G0=G0
568
568
self.Ksdt0=Ksdt0
569
569
570
+
# Calculation of overall rotor transverse (diametral) inertia (includes only DOFs located at the shaft element DOF, excludes point masses that are outside the shaft).
571
+
# This is only calculating Iyy. Assuming Ixx is the same.
572
+
# First, set up a vector corresponding to rigid body rotation of the entire rotor
573
+
v=np.zeros([self.ndof])
574
+
fori, elminenumerate(self.shaft_elements):
575
+
dofs=list(elm.dof_global_index.values())
576
+
y0=elm.dof_mapping()["y_0"]
577
+
a0=elm.dof_mapping()["alpha_0"]
578
+
y1=elm.dof_mapping()["y_1"]
579
+
a1=elm.dof_mapping()["alpha_1"]
580
+
581
+
v[dofs[y0]] =-(nodes_pos_l[i] -self.CG) # y
582
+
v[dofs[y1]] =-(nodes_pos_r[i] -self.CG) # y
583
+
v[dofs[a0]] =1# alpha
584
+
v[dofs[a1]] =1# alpha
585
+
# Then, use the vector to compute diametral aka transverse inertia of the entire rotor.
0 commit comments