8000 Defining structural damping ratio · petrobras ross · Discussion #1003 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Defining structural damping ratio #1003

rahultarale started this conversation in General
Discussion options

You must be logged in to vote

Replies: 1 comment

Comment options

To calculate the damping matrix $C$ of a rotor system, use the following:

$$ C_{r, r} ={2 \xi_r \omega_r} M_{r, r} $$

where:

  • $r$ corresponds to the $r^\text{th}$ degree of freedom, with $r = 1, 2, 3, ..., n_{\text{dofs}}$;
  • $\xi_r$ is the damping ratio the $r^\text{th}$ mode;
  • $\omega_r$ is the natural frequency of the $r^\text{th}$ mode;
  • $M_{r,r}$ is the mass matrix element corresponding to the $r^{\text{th}}$ mode.

In ROSS, the damping matrix can be implemented with the following script:

import scipy as sp
import numpy as np
import ross as rs

# Initialize the rotor system
rotor = ...
n = rotor.ndof

# Define the damping ratios for each mode
# Make sure the number of ratios matches the system's degrees of freedom (n)
damping_ratio = [...]

# Retrieve the mass matrix for the rotor system
M = rotor.M(0)

# Retrieve the stiffness matrix removing the cross-coupled coefficients 
# of bearing stiffness matrix
K_aux = rotor.K(0)
for elm in rotor.bearing_elements:
    dofs = list(elm.dof_global_index.values())
    # If 4 dof model:
    K_aux[np.ix_(dofs, dofs)] -= elm.K(0) * [[0, 1], [1, 0]]
    # If 6 dof model:
    # K_aux[np.ix_(dofs, dofs)] -= elm.K(0) * [[0, 1, 0], [1, 0, 0], [0, 0, 0]]
		
# Calculate the natural frequencies
evals, evectors = sp.linalg.eigh(K_aux, M)
wn = np.sqrt(evals)

# Initialize the damping matrix
C = np.zeros((n, n))

# Populate the diagonal elements of the damping matrix
for r in range(n):
    C[r, r] = 2 * damping_ratio[r] * wn[r] * M[r, r]

# Replace the rotor's damping matrix method with the custom one defined above
rotor.C = lambda frequency: C

# Run the unbalance response analysis
unbalance = rotor.run_unbalance_response(...)
You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants
0