ross.Crack#

class ross.Crack(rotor, n, depth_ratio, crack_model='Mayes', cross_divisions=None)#

Model a crack on a given shaft element of a rotor system. The Gasch and Mayes models are based on Linear Fracture Mechanics, while the Flex models are based on an equivalent beam model from 3D finite element computations.

Contains transversal crack models [Gasch, 1993] and [Mayes and Davies, 1984]. The reference coordenate system is:

  • x-axis and y-axis in the sensors’ planes;

  • z-axis throught the shaft center.

Parameters:
rotorross.Rotor

Rotor object.

nfloat

Number of shaft element where crack is located.

depth_ratiofloat

Crack depth ratio related to the diameter of the crack container element. A depth value of 0.1 is equal to 10%, 0.2 equal to 20%, and so on.

crack_modelstring, optional

Name of the chosen crack model. The available types are: “Mayes”, “Gasch”, “Flex Open” and “Flex Breathing”. Default is “Mayes”.

cross_divisions: float, optional

Number of square divisions into which the cross-section of the cracked element will be divided in the analysis conducted for the Flex Breathing model.

Attributes:
shaft_elemross.ShaftElement

A 6 degrees of freedom shaft element object where crack is located.

K_elemnp.ndarray

Stiffness matrix of the shaft element without crack.

Konp.ndarray

Stiffness of the shaft with the crack closed (equivalent to the shaft without crack).

Kcnp.ndarray

Stiffness of the shaft including compliance coefficients according to the crack depth.

forcesnp.ndarray

Force matrix due to crack. Each row corresponds to a dof and each column to a time.

Returns:
A crack object.

References

[Gas93]

R Gasch. A survey of the dynamic behaviour of a simple rotating shaft with a transverse crack. Journal of sound and vibration, 160(2):313–332, 1993.

[MD84]

IW Mayes and WGR Davies. Analysis of the response of a multi-rotor-bearing system containing a transverse crack in a rotor. Journal of Vibration, Acoustics, Stress, and Reliability in Design, 106(1):139–145, 1984.

Examples

>>> rotor = rs.rotor_example_with_damping()
>>> fault = Crack(rotor, n=18, depth_ratio=0.2, crack_model="Gasch")
>>> fault.shaft_elem
ShaftElement(L=0.03, idl=0.0, idr=0.0, odl=0.019,  odr=0.019, material='Steel', n=18)

Methods

__init__(rotor, n, depth_ratio, crack_model='Mayes', cross_divisions=None)#
flex_breathing(ap)#

Prepare crack geometry parameters for the Flex Breathing model. The resistant area and inertia moments are determined iteratively, considering which parts of the crack are open or closed under local stress. These are then used to compute the element stiffness.

Returns:
Knp.ndarray

Stiffness matrix of the cracked element.

flex_open(ap)#

Prepare crack geometry parameters for the Flex Open model. Assuming the crack remains fully open during rotation, the resistant area and inertia moments are determined based on the crack depth and angular position. These are then used to compute the element stiffness.

Returns:
Knp.ndarray

Stiffness matrix of the cracked element.

gasch(ap)#

Stiffness matrix of the shaft element with crack in rotating coordinates according to the breathing model of Gasch. This model is based on Linear Fracture Mechanics.

Returns:
Knp.ndarray

Stiffness matrix of the cracked element.

mayes(ap)#

Stiffness matrix of the shaft element with crack in rotating coordinates according to the breathing model of Mayes. This model is based on Linear Fracture Mechanics.

Returns:
Knp.ndarray

Stiffness matrix of the cracked element.

run(node, unb_magnitude, unb_phase, speed, t, **kwargs)#

Run analysis for the system with crack given an unbalance force.

System time response is simulated considering weight force.

Parameters:
nodelist, int

Node where the unbalance is applied.

unb_magnitudelist, float

Unbalance magnitude (kg.m).

unb_phaselist, float

Unbalance phase (rad).

speedfloat or array_like, pint.Quantity

Rotor speed.

tarray

Time array.

**kwargsoptional

Additional keyword arguments can be passed to define the parameters of the Newmark method if it is used (e.g. gamma, beta, tol, …). See ross.utils.newmark for more details. Other keyword arguments can also be passed to be used in numerical integration (e.g. num_modes). See Rotor.integrate_system for more details.

Returns:
resultsross.TimeResponseResults

For more information on attributes and methods available see: ross.TimeResponseResults

static validate_depth_ratio(depth_ratio, crack_model)#

Validate the maximum allowed crack depth ratio for each crack model. Each crack model has a specific upper limit for the relative depth of the crack. This function raises a ValueError if the input value exceeds the supported range.

Parameters:
depth_ratiofloat

Crack depth ratio related to the diameter of the crack container element. A depth value of 0.1 is equal to 10%, 0.2 equal to 20%, and so on.

crack_modelstring, optional

Name of the chosen crack model. The available types are: “Mayes”, “Gasch”, “Flex Open” and “Flex Breathing”. Default is “Mayes”.

Raises:
ValueError

If depth_ratio exceeds the supported limit for the given model.