FVSDOF-SYS Example 1 - the natural vibration of the industrial press

Find the natural frequency of the system which consist of industrial press mounted on the rubber pad to isolate it from foundation. Consider the following compression of the rubber pad 5, 15, 25, 35, 45, 55 [mm].
SOLUTION: The industrial press and the rubber pad can be considered as spring mass system. To calculate the natural frequency \(f\) we have to calculate the natural angular frequency \(\omega_0\). The formula for calculating natural frequency \(f\) is: $$f = \frac{\omega}{2\pi}$$ The formula for calculating angular natural frequency: $$\omega = \sqrt{\frac{k}{m}}$$ where the \(k\) is the spring stiffness and the $m$ as is the mass of the object connected to the spring. However, in this example we do not have the mass or spring stiffness only compression \((\delta_{ST})\) of the rubber pad. The spring constant \(k\) can be expressed in terms of mass \(m\) in the following form: $$k = \frac{W}{\delta_{ST}} = \frac{mg}{\delta_{ST}},$$ where \(W\) is the weight of the mass \(m\), \(\delta_{ST}\) is the static deflection, and \(g\) is the standard gravity (standard gravitational acceleration) which is equal to 9.81 [m/s^2]. Inserting the spring stiffness into the equation for natural angular frequency the following expression is obtained: $$\omega = \sqrt{\frac{\frac{mg}{\delta_{ST}}}{m}} = \sqrt{\frac{g}{\delta_{ST}}}.$$ Now we have all necessary components (formulas) for solving the problem.
  • Compression of the rubber pad with 5[mm].
  • $$\delta_{ST} = 5 [mm] = 5\times 10^{-3}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{\mathrm{s}^2}\right]}{5\times 10^{-3}[\mathrm{m}]}}$$ $$\omega_n = 44.294 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{44.2945[\mathrm{s}^{-1}]}{2\pi} = 7.0497 [\mathrm{Hz}]$$
  • Compression of the rubber pad with 15 [mm]
  • $$\delta_{ST} = 15 [mm] = 1.5\times 10^{-2}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{s^2}\right]}{1.5\times 10^{-2}[\mathrm{m}]}}$$ $$\omega_n = 25.57 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{25.57}{2\pi} = 4.0701$$
  • Compression of the rubber pad with 25 [mm]
  • $$\delta_{ST} = 25 [mm] = 2.5\times 10^{-2}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{s^2}\right]}{2.5\times 10^{-2}}}$$ $$\omega_n = 19.809 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{19.809}{2\pi} = 3.1527$$
  • Compression of the rubber pad with 35[mm]
  • $$\delta_{ST} = 35 [mm] = 3.5\times 10^{-2}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{s^2}\right]}{3.5\times 10^{-2}}}$$ $$\omega_n = 16.7417 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{16.7417}{2\pi} = 2.66453$$
  • Compression of the rubber pad with 45 [mm]
  • $$\delta_{ST} = 45 [mm] = 4.5\times 10^{-2}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{s^2}\right]}{4.5\times 10^{-2}}}$$ $$\omega_n = 14.7648 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{14.7648}{2\pi} = 2.34989$$
  • Compression of the rubber pad with 55 [mm]
  • $$\delta_{ST} = 55 [mm] = 5.5\times 10^{-2}[\mathrm{m}]$$ The natural frequency in [Hz] is calculated using the expression: $$f = \frac{\omega_n}{2\pi}$$ where $$\omega_n = \sqrt\frac{g}{\delta_{ST}}$$ $$\omega_n = \sqrt{\frac{9.81\left[\frac{m}{s^2}\right]}{5.5\times 10^{-2}}}$$ $$\omega_n = 13.3553 [\mathrm{s}^{-1}]$$ The the natural angular frequency is calculated the natural frequency is equal to: $$ f_n = \frac{\omega_n}{2\pi} = \frac{13.3553}{2\pi} = 2.1255$$

    Calculation in Python

    To solve the problem in Python we need two libraries numpy library and matplotlib library for graphical representation of results. The numpy library in this example will be required for using pi number.
    import numpy as np
    import matplotlib.pyplot as plt
    To compute the results we will created three lists. First list will be deltaST in which we will crate numbers from 5 to 55 [mm] and automatically convert to [m] by dividing the values in [mm] by 1000.
    deltaST = [(5+10*i)*10**(-3) for i in range(0,6,1)]
    To print out the newly created list just type the following code:
    print("deltaST = {}".format(deltaST))
    The format is a built in Python function that will automatically convert any argument into string and insert it in curly brackets inside the string. The output of the previous code line is displayed below:
    deltaST = [0.005, 0.015, 0.025, 0.035, 0.045, 0.055]
    Now we need o calculate the natural angular frequency. To do this in one line of code we could use the equation of natural angular frequency and iterate over deltaST list elements.
    omega = [(9.81/deltaST[i])**(1/2) for i in range(len(deltaST))]
    The show the output of omega list type in the following code:
    print("omega = {}".format(omega))
    The output of previous code line is given below.
    omega = [44.294469180700204, 25.573423705088846, 19.809088823063014, 16.74173570110681, 14.764823060233402, 13.35528496003123]
    The natural frequency can be calculated in the same way.
    f = [(omega[i]/(2*np.pi)) for i in range(len(omega))]
    print("f = {}".format(f))
    To show the output of natural frequency type in the following code:
    print("f = {}".format(f))
    The output of the previous code line can be written as:
    f = [7.049683721740053, 4.070136794448342, 3.152714404336894, 2.6645299927692068, 2.349894573913351, 2.125559617789816]
    Now that everything is calculated we can display the \(omega_n\) and \(f\) using matplotlib library. Since the matplotlib is already imported we need to set the font to TimesNewRoman and set the font size in the matplotlib plot. Generally this is not necessary but we want to our plots to be properly formatted. Here is the code for setting things up.
    plt.rcParams["font.family"] = "Times New Roman"
    SMALL_SIZE = 20
    MEDIUM_SIZE = 22
    BIGGER_SIZE = 24
    plt.rc('font', size=SMALL_SIZE) # controls default text sizes
    plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title
    plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels
    plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels
    plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels
    plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize
    plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title
    The next step is to set the plot figure size. We will use the figure size of 12 by 8 inches. Then we will create the plot where we will set x as deltaST and y as omega, and the line will be red. The x axis will be labeled as \(\delta_{ST}\) and the y axis will be labeled as \(\omega_n\).
    plt.figure(figsize=(12,8))
    plt.plot([deltaST[i] for i in range(len(deltaST))], omega)
    plt.grid(True)
    plt.xlabel("$\delta_{ST}$ [m]")
    plt.ylabel("$\omega_n$ [1/s]")
    plt.title("$\omega_n$ vs $\delta_{ST}$ plot")
    plt.show()
    The result is given in the following Figure 1.
    2024-02-19T05:37:15.887835 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/
    Figure 1 - Natural angular frequency \(\omega_n\) versus static deflection \(\delta_{ST}\) plot
    Then we will plot the frequency versus deltaST also setting the delta ST in meters.
    plt.figure(figsize=(12,8))
    plt.plot([deltaST[i] for i in range(len(deltaST))], f)
    plt.grid(True)
    plt.xlabel("$\delta_{ST}$ [m]")
    plt.ylabel("$f$ [Hz]")
    plt.title("$f$ vs $\delta_{ST}$ plot")
    plt.show()
    The result is shown in following Figure 2.
    2024-02-19T05:37:16.007522 image/svg+xml Matplotlib v3.5.2, https://matplotlib.org/
    Figure 2 - Natural frequency \(f\) versus static deflection \(\delta_{ST}\) plot
    From Figure 1 and Figure 2 we can see as the static deflection value increases the natural angular frequency and the frequency tends to decrease. As seen form Figure 1 and 2 the natural angular frequency decreases from initial 44.29 to 13.35 [1/s]. The natural frequency decreases from initial 7 [Hz] to almost 2 [Hz] as the \(\delta_{ST}\) increases from 0.005 up to 0.055 [m].
    import numpy as np
    import matplotlib.pyplot as plt
    plt.rcParams["font.family"] = "Times New Roman"
    SMALL_SIZE = 20
    MEDIUM_SIZE = 22
    BIGGER_SIZE = 24
    plt.rc('font', size=SMALL_SIZE) # controls default text sizes
    plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title
    plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels
    plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels
    plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels
    plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize
    plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title
    deltaST = [(5+10*i)*10**(-3) for i in range(0,6,1)]
    print("deltaST = {}".format(deltaST))
    omega = [(9.81/deltaST[i])**(1/2) for i in range(len(deltaST))]
    print("omega = {}".format(omega))
    f = [(omega[i]/(2*np.pi)) for i in range(len(omega))]
    print("f = {}".format(f))
    plt.figure(figsize=(12,8))
    plt.plot([deltaST[i]*1000 for i in range(len(deltaST))], f)
    plt.grid(True)
    plt.xlabel("$\delta_{ST}$ [m]")
    plt.ylabel("$f$ [Hz]")
    plt.title("$f$ vs $\delta_{ST}$ plot")
    plt.show()

Nema komentara:

Objavi komentar