pyyeti.frclim.stdfs¶
- pyyeti.frclim.stdfs(mr, Q)[source]¶
Compute the normalized force limit for simple 2-DOF system.
- Parameters:
mr (scalar) – Mass ratio m2/m1; 0.0001 to 10 is reasonable.
Q (scalar to 2 element array_like) – Dynamic amplification factor, 1/2/zeta. If a scalar, the same value is used for both dampers. If a 2 element vector, it is [Q1, Q2] (see figure below).
- Returns:
nfl (scalar) – The normalized force limit for m2:
nfl = force_limit / (m2 * max(a1))
Notes
The simple 2-DOF system:
|---> a0 | |---> a1 |---> a2 |---------| | | | | k1 |-----| k2 |-----| | rigid |----\/\/\---| |----\/\/\---| | | base | | m1 | | m2 | | (M) |----| |-----| |----| |-----| | | | c1 |-----| c2 |-----| |---------| (Source) (Load)Analysis is done in the frequency domain. Methodology:
Define stiffnesses such that
k1/m1 = k2/m2(this is worst case, or very near)Excite M, bounding frequency range of interest
Recover maximum interface acceleration:
A(accel of m1)Recover maximum interface force on m2:
FCompute normalized force limit:
F / (A * m2)
Note: higher masses result in higher force limits.
For multi-dof systems, m1 and m2 can be defined as the modal mass in the frequency range of interest. Or, for more conservatism, m1 and m2 can be defined as the modal mass plus any residual mass.
The modal masses are defined relative to the interface point. See references [1] and [2] for more information.
References
Examples
Compute force limit for a s/c attached to a launch vehicle, where the interface acceleration specification level is 1.75 g and Q is assumed to be 10:
>>> from pyyeti import frclim >>> m1 = 710 # modal mass + residual mass of lv >>> m2 = 3060 # modal mass + residual mass of s/c >>> Q = 10 >>> spec = 1.75 >>> frclim.stdfs(m2/m1, Q) * m2 * 1.75 6393.1622...
Generate some curves showing the normalized force limit vs the mass ration for a few different damping values:
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from pyyeti import frclim >>> mr = np.geomspace(0.00001, 100, 100) >>> for Q in (10, 25, 50): ... nfl = [frclim.stdfs(i, Q) for i in mr] ... _ = plt.loglog(mr, nfl, label=f'Q={Q}') >>> _ = plt.legend() >>> _ = plt.xlabel('Mass ratio (Load/Source)') >>> _ = plt.ylabel('Normalized Force Limit')