-
Notifications
You must be signed in to change notification settings - Fork 126
Open
Description
I was analyzing the following rotor:
To create the bearing supports, nodes are added to the rotor model. However, to determine the unbalance response at these nodes, the variable self.rotor.nodes_pos[node] is required. Since the bearing support nodes are not found in this variable, attempting to run the following code:
speed = Q_(np.arange(0, 3001, 5), "RPM").to('rad/s').m
n1 = 8
m1 = Q_(118672,'g.mm').to('kg.m').m
p1 = Q_(0,'rad')
n2 = 16
m2 = Q_(118672,'g.mm').to('kg.m').m
p2 = Q_(0,'rad')
nn = 4
damped_unb_resp_1st = rotor.run_unbalance_response(node=[n1, n2],
unbalance_magnitude=[m1, m2],
unbalance_phase= [p1, p2],
frequency=speed)
damped_unb_resp_1st.plot_magnitude(
probe=[#rs.Probe(node=nn, angle=Q_(0,'deg'), tag="DE Probe x"),
#rs.Probe(node=nn, angle=Q_(90,'deg'), tag="DE Probe y"),
rs.Probe(node=31, angle="major", tag="NDE Probe major"),
rs.Probe(node=32, angle="major", tag="DE Probe major"),
# rs.Probe(node=31, angle="minor", tag="NDE Probe minor"),
# rs.Probe(node=32, angle="minor", tag="DE Probe minor"),
],
amplitude_units="mm/s pkpk",
frequency_units="RPM",
)
Results in the following error:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[11], line 1
----> 1 damped_unb_resp_1st.plot_magnitude(
2 probe=[#rs.Probe(node=nn, angle=Q_(0,'deg'), tag="DE Probe x"),
3 #rs.Probe(node=nn, angle=Q_(90,'deg'), tag="DE Probe y"),
4 rs.Probe(node=31, angle="major", tag="NDE Probe major"),
5 rs.Probe(node=32, angle="major", tag="DE Probe major"),
6 # rs.Probe(node=31, angle="minor", tag="NDE Probe minor"),
7 # rs.Probe(node=32, angle="minor", tag="DE Probe minor"),
8 ],
9 amplitude_units="mm/s pkpk",
10 frequency_units="RPM",
11 )
File d:\dev_git\frf\ross\ross\results.py:3510, in ForcedResponseResults.plot_magnitude(self, probe, probe_units, frequency_units, amplitude_units, fig, **kwargs)
3465 def plot_magnitude(
3466 self,
3467 probe,
(...) 3472 **kwargs,
3473 ):
3474 """Plot forced response (magnitude) using Plotly.
3475
3476 Parameters
(...) 3508 The figure object with the plot.
3509 """
-> 3510 df = self.data_magnitude(probe, probe_units, frequency_units, amplitude_units)
3512 if fig is None:
3513 fig = go.Figure()
File d:\dev_git\frf\ross\ross\results.py:3351, in ForcedResponseResults.data_magnitude(self, probe, probe_units, frequency_units, amplitude_units)
3346 except:
3347 ru_e, rv_e = response[:, speed_idx][
3348 self.rotor.number_dof * node -3: self.rotor.number_dof * node + 2 -3
3349 ]
-> 3351 orbit = Orbit(node=node, node_pos=self.rotor.nodes_pos[node], ru_e=ru_e, rv_e=rv_e)
3352 amp, phase = orbit.calculate_amplitude(angle=angle)
3353 #amp, phase=self._calculate_amplitude_2(ru_e=ru_e, rv_e=rv_e,angle=angle)
IndexError: list index out of range
)
This was resolved with the change in the amplitude calculation function. The following figure compares the result of the new function with the one recorded by the report for the rotor in question.
Unbalance response for the 'major' from the report.
Unbalance response given by the new function.

Metadata
Metadata
Assignees
Labels
No labels