tmdsimpy.roms.epmc.constant_force

tmdsimpy.roms.epmc.constant_force(epmc_bb, Ndof, h, Fl=None, w=None, zeta=None, phiH_Fl_real=None, phiH_Fl_imag=None)

Reduced order model based on EPMC to capture constant forcing responses.

Parameters:
epmc_bb(M, Nhc*Ndof+3) numpy.ndarray

Each row corresponds to an EPMC solution at a given amplitude level. The first Nhc*Ndof entries of each row are the displacements of the harmonics in h (all of the first harmonic component, then all of next etc.). The last three entries of each row are frequency (rad/s), xi in EPMC formulation (coefficient in front of mass matrix to create a damping matrix), and log10(modal amplitude). Harmonic displacements must be multiplied by the modal amplitude to get the physical displacements except for displacements corresponding to the zeroth harmonic.

Ndofint

Number of degrees of freedom in the EPMC solution.

hnumpy.ndarray, sorted

Array of the harmonics used to calculate epmc_bb, must be sorted.

Fl(Nhc*Ndof) numpy.ndarray or None, optional

External constant excitation to be considered. If None, then phiH_Fl_real and phiH_Fl_imag must be provided. The default is None.

wNone, float, or (M,) numpy.ndarray, optional

Alternative natural frequencies to use instead of those provided in epmc_bb. If provided, it is also used in calculating the fraction of critical damping (if zeta is not provided). Units should be rad/s. If a numpy.ndarray, the order corresponds to entries in epmc_bb. The default is None.

zetaNone, float, or (M,) numpy.ndarray, optional

Alternative modal damping (fraction of critical) to use rather than calculating it from the epmc_bb. If a numpy.ndarray, the order corresponds to entries in epmc_bb. The default is None.

phiH_Fl_realNone, float, or (M,) numpy.ndarray, optional

Real component of the complex product between the conjugate or Hermitian transpose of the mode shape and the forcing vector (considering on the 1st harmonic). Should only be provided when Fl=None. If a numpy.ndarray, the order corresponds to entries in epmc_bb. The default is None.

phiH_Fl_imagNone, float, or (M,) numpy.ndarray, optional

Imaginary component of the complex product between the conjugate or Hermitian transpose of the mode shape and the forcing vector (considering on the 1st harmonic). Should only be provided when Fl=None. If a numpy array, the order corresponds to entries in epmc_bb. The default is None.

Returns:
FRC_reconstruct(Mout,Nhc*Ndof+1) numpy.ndarray

Reconstructed Frequency Response Curve (FRC) based on the EPMC solution. Each row corresponds to a different forcing frequency. The first Nhc*Ndof columns are harmonic displacements in the same order as epmc_bb, but in physical displacement coordinates. The last column is the forcing frequency in rad/s.

modal_amplitude(Mout,) numpy.ndarray

Modal amplitude at output FRC points. This is linear scale modal amplitude not the log10 scale that modal amplitude is taken as input in epmc_bb.

modal_phase(Mout,) numpy.ndarray

Modal phase at the output FRC points.

See also

constant_displacement

EPMC ROM for constant displacement rather than constant force.

tmdsimpy.VibrationSystem.epmc_res

EPMC residual method that each line of epmc_bb solves as the Uwxa input.

tmdsimpy.VibrationSystem.hbm_res

HBM residual method that each row of FRC_reconstruct approximates a solution to the input Uw of this function.

tmdsimpy.Continuation.continuation

Method of obtaining solutions to EPMC at multiple points to create the epmc_bb input to this function.

tmdsimpy.postprocess.continuation.linear_interp

Method that can be used to interpolate epmc_bb to more points to get a higher resolution output ROM.

Notes

EPMC is the Extended Periodic Motion Concept (EPMC). The number of harmonic components is Nhc = tmdsimpy.utils.harmonic.Nhc(h)

The fraction of critical damping from an EPMC backbone can be calculated as zeta = epmc_bb[:, -2] / (2*epmc_bb[:, -3]).

The complex mode shape is represented as psi = U1c + 1j*U1s where U1c and U1s are the first harmonic cosine and sine respectively

Only 1st harmonic forcing is considered.

EPMC was proposed in [1] and a ROM without phase information is given in [2]. Full derivation is available in [3], [4].

It is not possible to request specific forcing frequencies, rather the output is the forcing frequencies that are calculated directly to give the amplitudes in epmc_bb. To get more frequency resolution, consider increasing the resolution of epmc_bb either by finding more points or by linearly interpolating to upsample.

If providing phiH_Fl_real and phiH_Fl_imag, to get the correct phase information, the mode shape and force must be represented in the complex form as phi = phi_cos - 1j*phi_sin and Fl = Fl_cos - 1j*Fl_sin.

References

[1]

Krack, M. 2015. “Nonlinear Modal Analysis of Nonconservative Systems: Extension of the Periodic Motion Concept.” Computers & Structures 154:59–71. https://doi.org/10.1016/j.compstruc.2015.03.008.

[2]

Schwarz, S., L. Kohlmann, A. Hartung, J. Gross, M. Scheel, and M. Krack. 2020. “Validation of a turbine blade component test with frictional contacts by phase-locked-loop and force-controlled measurements”. Journal of Engineering for Gas Turbines and Power 142.5. issn: 0742-4795. https://doi.org/10.1115/1.4044772.

[3]

Porter, J. H., and M. R. W. Brake. Under Review. “Efficient Model Reduction and Prediction of Superharmonic Resonances in Frictional and Hysteretic Systems.” Mechanical Systems and Signal Processing. arXiv:2405.15918.

[4]

Porter, J. H. 2024. Modal Interactions and Jointed Structures. PhD Thesis. Rice University.