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_displacementEPMC ROM for constant displacement rather than constant force.
tmdsimpy.VibrationSystem.epmc_resEPMC residual method that each line of epmc_bb solves as the Uwxa input.
tmdsimpy.VibrationSystem.hbm_resHBM residual method that each row of FRC_reconstruct approximates a solution to the input Uw of this function.
tmdsimpy.Continuation.continuationMethod of obtaining solutions to EPMC at multiple points to create the epmc_bb input to this function.
tmdsimpy.postprocess.continuation.linear_interpMethod 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.