-
I am currently struggling because our commercial software which we use to model torsional natural frequencies and forced response does not support time transient analysis. It seems that there is a possibility in ROSS for a 6dof shaft element, but I do not immediately see how I could run a torsional analysis using the ROSS package. Is it possible today? Could it be possible in the future? I'm trying to set up a generator short-circuit simulation of a directly coupled generator-flywheel-turbine-unit. So it could be a very simple model, maybe a 5-inertia lumped model would do. Any thoughts here? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
Hi @LeifParr ! |
Beta Was this translation helpful? Give feedback.
-
Hi, @LeifParr ! In the torsional analysis I carried out using Ross I was only interested in the system's harmonic response, so I used only the Transfer Matrix to calculate the system output. I made a simple code (attached) with a model similar to what you proposed, with 4 shaft elements connecting 5 lumped inertia elements. The code inputs sine excitation at node 0 and plots the torsional response at node 4, in radians. With that result you could then do any analysis you wish. import ross as rs
import matplotlib.pyplot as plt
import numpy as np
Nel = 4 # Number of shaft elements
shaft = [
rs.ShaftElement6DoF(
n=i,
L=0.05,
odl=0.05,
idl=0,
odr=0.05,
idr=0,
material=rs.materials.steel,
rotary_inertia=True,
gyroscopic=True,
)
for i in range(Nel)
]
disks = [rs.DiskElement6DoF(Id=1.7809,Ip=0.32956,m=32.59,n=0),
rs.DiskElement6DoF(Id=1.7809,Ip=0.32956,m=32.59,n=1),
rs.DiskElement6DoF(Id=1.7809,Ip=0.32956,m=32.59,n=2),
rs.DiskElement6DoF(Id=1.7809,Ip=0.32956,m=32.59,n=3),
rs.DiskElement6DoF(Id=1.7809,Ip=0.32956,m=32.59,n=4),]
# Bearings to be created only to fix X Y coordinates. Arbitrary coefficients
brg1 = rs.BearingElement6DoF(n=0,
kxx=[1e9], kxy=[0],
kyx=[0], kyy=[1e9],
cxx=[0], cxy=[0],
cyx=[0], cyy=[0],
frequency=None,)
brg2 = rs.BearingElement6DoF(n=4,
kxx=[1e9], kxy=[0],
kyx=[0], kyy=[1e9],
cxx=[0], cxy=[0],
cyx=[0], cyy=[0],
frequency=None,)
rotor = rs.Rotor(shaft,disks,[brg1,brg2])
f = 600.0
time_samples = 1001
node_in = 0 # node where torsional force will be applied
t = np.linspace(0, 16, time_samples)
F = np.zeros((time_samples, rotor.ndof))
# Input force time array
F[:, 6 * node_in + 5] = 10 * np.cos(f * t) # The "5" indicates the torsional DoF
response = rotor.time_response(0, F, t) # "0" stands for the speed, which is irrelevant for a purely torsional analysis
theta = response[2][:,5::6] # Gets the response only of the torsional DoF
node_out = 4 # Node to plot the response
plt.plot(t,theta[:,node_out])
# Use 'node_out + 5' to plot angular velocity vs time |
Beta Was this translation helpful? Give feedback.
Hi, @LeifParr !
In the torsional analysis I carried out using Ross I was only interested in the system's harmonic response, so I used only the Transfer Matrix to calculate the system output.
But you can use the .time_transient() method to perform this time transient analysis. The only limitation, I think, is that there are no native method for plotting the results. You will need to get the output data and make your own plots.
I made a simple code (attached) with a model similar to what you proposed, with 4 shaft elements connecting 5 lumped inertia elements. The code inputs sine excitation at node 0 and plots the torsional response at node 4, in radians. With that result you could then do…