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:

  1. Define stiffnesses such that k1/m1 = k2/m2 (this is worst case, or very near)

  2. Excite M, bounding frequency range of interest

  3. Recover maximum interface acceleration: A (accel of m1)

  4. Recover maximum interface force on m2: F

  5. Compute 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

See also

ntfl(), ctdfs(), sefl()

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')
../../_images/pyyeti-frclim-stdfs-1.png