Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import pretty_plots # script to set up LaTex and increase line-width and font size\n",
"import scipy.fftpack\n",
"\n",
"pretty_plots.setdefaults()\n",
"pi=np.pi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ME 3263 Introduction to Sensors and Data Analysis (Fall 2018)\n",
"\n",
"## Lab #3 Measuring Natural Frequencies\n",
"\n",
"\n",
"### What are natural frequencies\n",
"\n",
"In free vibration (i.e., no external forcing), structural components\n",
"oscillate at specified frequencies or combinations of frequencies. Since\n",
"these vibrations are unforced, the associated frequencies are referred\n",
"to as natural frequencies; it's how the system vibrates if left to\n",
"behave on its own. In contrast, driven linear systems vibrate at the\n",
"driving frequency. An amplification of the response (called resonance)\n",
"occurs when the driving frequency coincides with one of the natural\n",
"frequencies. In short, the system is driven at a frequency at which it\n",
"likes to vibrate. Large amplitude oscillations are the result. So it is\n",
"important to know what the natural frequencies are *a priori* so you can\n",
"avoid driving the system into resonance."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In lab 2, we used the Euler-Bernoulli beam equation to describe static deflection of a cantilever beam. Here, we will use the Euler-Lagrange dynamic beam equation to account for inertial effects. The Euler-Lagrange beam equation relates bending stiffness and density as such\n",
"\n",
"$\\frac{\\partial^2}{\\partial x^2}\\left(EI\\frac{\\partial^2 w}{\\partial\n",
"x^2}\\right)=-\\mu\\frac{\\partial^2 w}{\\partial^2 t} +q(x)$ (1)\n",
"\n",
"where $E$ is the Young's modulus of the beam, $I$ is the second moment of area of the beam's cross-section, $\\mu$ is the mass per unit length of the beam, $q(x)$ is the applied load, and $w=w(x,t)$ is the displacement of the neutral axis that is a function of $x$-distance along beam-and $t$-time. \n",
"\n",
"Calculating the natural frequencies ignores the applied load $q(x)$ and if the cross-section is constant, Equation 1 becomes\n",
"\n",
"$EI\\frac{\\partial^4 w}{\\partial\n",
"x^4}=-\\mu\\frac{\\partial^2 w}{\\partial^2 t}$. (2)\n",
"\n",
"The full solution requires evaluation of the partial differential equation. We will use the derived mode shapes and natural frequencies for a cantilever beam [\\[1\\]](https://en.wikipedia.org/wiki/Euler%E2%80%93Bernoulli_beam_theory#Example:_Cantilevered_beam). The solution for $w(x,t)$ is as such\n",
"\n",
"$w(x,t)=\\sum_{n=1}^{\\infty}(A_{n}\\cos\\omega_{n}t+B_{n}\\sin\\omega_{n}t)\n",
"\\left(\\cosh\\beta_n x-\\cos\\beta_n x+\n",
"\\frac{\\cos\\beta_n L + \\cosh\\beta_n L}{\\sin\\beta_n L+\\sinh\\beta_n L}\n",
"\\left(\\sin\\beta_n x -\\sinh\\beta_n x\\right)\\right)$ (3)\n",
"\n",
"where the formula $\\cosh(\\beta_n L)\\cos(\\beta_n L) +1 =0$ defines the constants $\\beta_n$, $L$ is the length of the beam, and $A_n$ and $B_n$ are constants derived from initial conditions. In the experiment, you will deliver an impulse to the cantilever specimens. An impulse will only require $\\sin(t)$ components, so $A_n$=0 for all n. The beam will vibrate similar to the following video [Beam vibrations](https://photos.app.goo.gl/t5a79MEz7PrM9vhf7). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Measuring natural frequencies\n",
"\n",
"In this lab, you will measure the first 3 natural frequencies of a rectangular beam and a turbine blade, parts 1 and 2, respectively. \n",
"Your goal is \n",
"to measure the free response time series data using a strain gage and accelerometer. With this data, you will\n",
"determine the first natural frequency in two ways: (i) by peak counting in the\n",
"time domain (which gives a very rough estimate of $\\omega_n$); and (ii) by a\n",
"formal frequency domain analysis (fast Fourier transform or FFT). For the\n",
"rectangular beam, you have analytical expressions for the natural frequencies\n",
"and you can confirm that you're doing everything properly by getting the\n",
"analytical frequencies to agree with the experimental frequencies.\n",
"\n",
"In the second part of Lab 3, you will determine the natural\n",
"frequencies of an actual, commercial compressor blade from a jet engine.\n",
"A cut-away of an engine is shown in Figure 1a and one of our compressor\n",
"blades is shown in Figure 1b. In engine operation, excitation is\n",
"provided by the stationary stators directly upstream of the blade row.\n",
"Wakes from these stators can create periodic excitation that may lead to\n",
"a resonance condition, which reduces engine performance and contributes\n",
"to blade deterioration (fatigue). Indeed, as the engine starts and\n",
"speeds up, the blades will go through resonances in a way similar to the\n",
"shaker excitation experiment mentioned above."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![a](./figure_01a.png) ![b](./figure_01b.png)\n",
"\n",
"**Figure 1: a) Cut out of jet engine, showing the rotating blades and the stationary stators, b) an individual Pratt & Whitney compressor blade to be tested in the lab.**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Measuring vibrational modes has two components, the frequency and the amplitude. The amplitude of vibration can be determined by taking the difference between the maximum and minimum measurements. Measuring the frequency requiresmore attention. Consider 10 oscillations of a cos-wave of 1-Hz with amplitude of 1 a.u. (aribitrary units). Now, take N measurements over the given timeframe from 0-10 seconds. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'a.u.')"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"N=20\n",
"t_collect=10 # time to collect data\n",
"t=np.linspace(0,t_collect,1000)\n",
"y=np.cos(2*pi*t)\n",
"tsample=np.linspace(0,10,N+1)\n",
"ysample=np.cos(2*pi*tsample)\n",
"plt.plot(t,y,label='signal')\n",
"plt.plot(tsample,ysample,'o-',label='measure')\n",
"plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
"plt.xlabel('time (s)')\n",
"plt.ylabel('a.u.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For N=20, it would appear that we can capture a minimal example of our signal (just the peaks occuring at 1 Hz). Collecting data for N=20 over 10 seconds is equivalent to sampling at 20 samples/10 seconds = 2 Hz. This is called the Nyquist rate which is given as such\n",
"\n",
"$f_{Nyquist}=2f_{signal}$. (4)\n",
"\n",
"In Equation 4, the Nyquist rate (also Shannon Sampling) [\\[2\\]](./jerri_1977-shannon_sampling.pdf)[\\[3\\]](./nyquist.pdf), $f_{Nyquist}$, is the minimum sampling rate necessary to capture the signal at frequency, $f_{signal}$. Try changing N<20 and consider the apparent signal frequencies. \n",
"\n",
"If you try N=11 in the above python code, you will see a phenomenon called \"aliasing\" or the \"wagon-wheel effect\" [\\[3\\]](http://www.onmyphd.com/?p=aliasing). When you look at the measured signal, it appears to have a frequency of 1 cycle/10 seconds = 0.1 Hz. This phenomenon is called the wagon-wheel effect because it is noticeable when recording spinning objects like a wagon wheel [or turbine](https://www.youtube.com/watch?v=vIsS4TP73AU). The wheel spins at a given frequency and the camera records at another frequency. When the ratio of the wheel frequency to camera recording frequency reaches certain values the wheel appears to stop, spin slower, or even backwards. \n",
"\n",
"Experimentally, we avoid aliasing by sampling above the Nyquist rate from equation 4. This poses a chicken and the egg problem. In order to measure the frequency, we need to double the measured frequency and measure the frequency. The result is that we cannot trust measured frequencies below half of the sampling frequency. We use a method called the fast Fourier transform to compare amplitudes measured at different frequencies.\n",
"\n",
"The fast Fourier transform (FFT) is a numerical implementation of the Fourier transform [\\[4\\]](./cooley_and_tukey-FFT.pdf). A Fourier transform of the function introduced earlier, $\\cos(2\\pi t)$, is two dirac delta functions at 1 Hz and -1 Hz. The FFT, if the sampling is well above the Nyquist rate, will produce two peaks, one at 1 Hz and another at the $f_{sampling} - 1Hz$, where $f_{sampling}$ is the sampling frequency. The signal is produced in the previous example with 1000 data points using `linspace(0,10,1000)`. In the next block of code we can compare different numbers of data points collected and the effect on the FFT results. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 5)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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nqvV1dXRG264YXIu11x55ZVTZ86cOWPKlClnrF+/vto6ft11102aOXPmjJkzZ8546623ynKdi7QVG0Ws376Pe5/dyf7WHo6vLeemi05lyVmT+j0nCIIwVPz0T7vrv/urt6b2RWIegEMdfWXf/dVbUwH+7sNTB9yL9dxzz23fsWNHxebNmysWLlzY3d/49evXV7e0tHjffPPNt48cOeJtbGw8s729/dXNmzdX7Nixo+LNN998e/369dU33njj5GeeeSan9oAinKOE9dv3ccsTr9MTjgKwr7WHmx9/jXcOdgDwyPPvE4rG4udueeJ1ABFPQRDyyonf3DA312v6IjHPbevfmHbb+jemZRr3wd2Lk/vdxqmrq4veeuutu6+99tqpb7755tv9PbOhoSF633337bW2a2pqIgC//vWvq88777x2gCVLlnR88YtfTOnL2x8inKOEe5/dGRdNi1A0xg/+d5fr+J5wlHuf3SnCKQhC0bBw4cLuE044oe/RRx+NL/s9+uijdWvXrnUsA956663NllX61ltvlV1zzTVTly1b1gxw9OhR3/z58/u1WDMhwjlK2N/aMyTXCIIgjGR+8pOf7D7rrLNmXHXVVYcBrr766parr77aNfD00UcfrXv44YcbVq1atc8S0rFjx0Z27dqV87qmHRHOUcLxteXscxHCMp8R3xWKxFyvEQRByCeZ3KmQusYJEPB5Yv/6qdN3D2aN06KhoSF61VVXHX7ggQcm3n777XvTWZxHjhzxrl27tu7FF198137uE5/4RMfNN988CTi4fv366nPPPbc91zmIcI4SbrroVG5ct4NoLJGDXO73ctelZwLwL2tfxXaKcr+Xmy46dainKQhCiWOJ4wPPvTvpcEdf2bjqQOiG80/elw/RtFi5cuXBBx54YCKktzivu+66SS+88MKYKVOmxKv/7Nmz542FCxd2z549u3vBggUnAzzyyCM5lyQcNf04582bp0u9Vu2S72/m1T1tANRV+Pn2p2fG1zAv++ELbNltZPXUVvhZYTsnCELpopTaqrWeN5h77Nix44PZs2cfydecRgs7duxomD179onJx0uhyn3RUFOecMvfd8VshzCeNnFMfPvr558soikIglAgRDhHEV19kfh2ZZnTy14ZSOx3hZzRt4IgCEL+EOEcRXTahTPgFM4qm5DaxwmCIAj5RYRzFNEVSghi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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Y = 2/1000*np.fft.fft(y)\n",
"freq = np.linspace(0,1000/t_collect,len(Y))\n",
"plt.figure()\n",
"for N in range(20,50,10):\n",
" tsample=np.linspace(0,10,N+1)\n",
" ysample=np.cos(2*pi*tsample)\n",
" Ysample= 2/N*np.fft.fft(ysample)\n",
" freqsample = np.linspace(0,N/t_collect,len(Ysample))\n",
"\n",
" plt.plot(freqsample, np.abs(Ysample),'o-',label='N=%i'%N)\n",
"plt.plot(freq, np.abs(Y) ,label='signal')\n",
"plt.xlabel('frequency (Hz)')\n",
"plt.ylabel('Amplitude (a.u.)')\n",
"plt.title(r'FFT of $\\cos(2\\pi t)$ 10-s collection')\n",
"plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
"plt.xlim((0,5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the figure plotted above, for N=20, $f_{sampling}=20/10~s=2~Hz$, for N=30, $f_{sampling}=30/10~s=3~Hz$, for N=40, $f_{sampling}=40/10~s=4~Hz$. The Nyquist rate is $2~Hz$. For each sampling rate above the Nyquist rate we see two peaks, $1~Hz$ and $f_{sampling}-1~Hz$. As a rule of thumb, do not trust any peaks you find above $f_{sampling}/2$. The FFT calculation produces the same amplitude in either direction from the point $f_{sampling}/2$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Part 1 - Rectangular beam dynamics\n",
"\n",
"Use the physical dimensions of your beam and calculated modulus from Lab #1. Calculate the first\n",
"three natural frequencies of a cantilever beam using the formula\n",
"\n",
"$\\omega_i=\\beta_i^2\\sqrt{\\frac{EI}{\\bar{m}L^4}}$ (5)\n",
"\n",
"where the $i^{th}$ natural frequency, $\\omega_i$ is given in\n",
"rad/s,$\\beta_1=1.875104$, $\\beta_2=4.694091$, $\\beta_3=7.854757$, $\\bar{m}$ is\n",
"the mass per unit length, $E$ is Young's modulus, and $I$ is the second moment\n",
"of area of the beam. Ensure that the units of $\\omega_i$ are rad/s e.g. 1/s.\n",
"\n",
"As an example, the function `natural_frequency(i,E,I,mbar,L)` returns the $i^{th}$ natural frequency of a cantilever beam given \n",
" Youngs modulus, `E`,second moment of area, `I`, mass per unit length, `mbar`=density*(cross-sectional area), and Length, `L`. An example for aluminum is given with a cross-section of $12\\times4$ mm in the cell following the function definition."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def natural_frequency(i,E,I,mbar,L):\n",
" '''returns the i^th natural frequency of a cantilever beam with \n",
" Youngs modulus, E \n",
" second moment of area, I\n",
" mass per unit length, mbar=density*(cross-sectional area)\n",
" Length, L'''\n",
" # solutions to cosh(pi*x)*cos(pi*x)+1=0 are saved in beta array below\n",
" # first 19 mode shapes are solved\n",
" beta=np.array([ 1.87510407, 4.69409113, 7.85475744, 10.99554073,\n",
" 14.13716839, 17.27875953, 20.42035225, 23.5619449 ,\n",
" 26.70353756, 29.84513021, 32.98672286, 36.12831552,\n",
" 39.26990817, 42.41150082, 45.55309348, 48.69468613, \n",
" 51.83627878, 54.97787144, 58.11946409])\n",
" if i>len(beta):\n",
" print('Error: choose a natural frequency less than %i'%(len(beta)))\n",
" omega=np.NaN\n",
" else:\n",
" omega=beta[i-1]**2*np.sqrt(E*I/(mbar*L**4))\n",
" return omega\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"the 1st natural frequency is 812 Hz\n",
"the 2nd natural frequency is 5087 Hz\n",
"the 3rd natural frequency is 14245 Hz\n"
]
}
],
"source": [
"E=70E3 # 70,000 MPa=70,000 N/mm^2\n",
"b=12\n",
"t=4\n",
"I=b*t**3/12 # second moment of area for rectangular cross-section (mm^4)\n",
"mbar=2700/1000**3/1000*b*t # 2700 kg/m^3*(1/1000^3 m^3/mm^3)*(1/1000 kg/g)*(cross-section area) -> mbar [kg/m]\n",
"L=400 # length in mm\n",
"\n",
"f1=natural_frequency(1,E,I,mbar,L)\n",
"f2=natural_frequency(2,E,I,mbar,L)\n",
"f3=natural_frequency(3,E,I,mbar,L)\n",
"print('the 1st natural frequency is %1.0f Hz'%(f1*2*np.pi)) \n",
"print('the 2nd natural frequency is %1.0f Hz'%(f2*2*np.pi)) \n",
"print('the 3rd natural frequency is %1.0f Hz'%(f3*2*np.pi)) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, use the LabView program provided to take data from the strain gage. \n",
"Use a sampling frequency at least twice as large as the highest\n",
"frequency you're trying to capture (this is the Nyquist limit). You can do this\n",
"estimation in a trial-and-error fashion as you carry out the analysis that\n",
"follows.\n",
"\n",
"Begin recording data. Make sure that when you apply an impact to your\n",
"beam that you get a decaying vibration on your LabView time series plot.\n",
"Measuring the frequency: you'll do this in two ways:\n",
"\n",
"1. Estimate the $1^{st}$ natural frequency from the decaying\n",
" oscillation. The time between the peaks is the oscillation period,\n",
" relate this to the frequency as \n",
"\n",
" $\\omega=1/T~Hz$\n",
"\n",
"2. Second, use a frequency domain approach: the\n",
" Fast Fourier Transform (FFT). \n",
"\n",
"In the second approach, you need to explore 'windowing' and 'low-pass\n",
"filtering' your data. You should do this all in LabView. Try to\n",
"investigate the following:\n",
"\n",
"1. Use a Hanning window. Windowing allows us to\n",
" smooth the edges of the data recorded [\\[6\\]](./harris-1978.pdf).\n",
"\n",
"2. Use a low-pass filter in your experiment.\n",
" Low-pass filtering allows us to eliminate unwanted high frequencies\n",
" due to various effects including *aliasing*. You need to change the\n",
" cut-off frequency values and see the effects in FFT analysis.\n",
" The frequency content above the cut-off frequency will\n",
" be filtered out, which is why we can call this procedure 'low-pass\n",
" filtering'. But be careful about making this too low as it may throw\n",
" out the frequencies that you're trying to measure. Strike the beam\n",
" and identify the first, second, third natural frequencies. Compare these to your theoretical\n",
" predictions. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Part 2 - Measuring Blade Natural Frequencies\n",
"\n",
"Here you do not have analytical predictions for the frequencies. You will obtain experimental estimates of the frequencies but you\n",
"won't have anything as reference. The\n",
"accelerometers are pre-mounted on the compressor blade. Do not move it.\n",
"Do not strike the accelerometer with the hammer; this will\n",
"damage the accelerometer. Simply strike the blade and use your same\n",
"program from Part 1. Determine the first, second, and third natural frequencies. Use the same techniques from\n",
"Part 1 (cycle counting, FFT, sampling rate, windowing, low-pass\n",
"filtering, etc.)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# References\n",
"\n",
"1. [https://en.wikipedia.org/wiki/Euler-Bernoulli_beam_theory](https://en.wikipedia.org/wiki/Euler%E2%80%93Bernoulli_beam_theory#Example:_Cantilevered_beam)\n",
"\n",
"2. Jerri, A. J. (1977). The Shannon sampling theorem—Its various extensions and applications: A tutorial review. Proceedings of the IEEE, 65(11), 1565-1596.\n",
"\n",
"3. Nyquist, H. (1928). Certain topics in telegraph transmission theory. Transactions of the American Institute of Electrical Engineers, 47(2), 617-644.\n",
"\n",
"4. [http://www.onmyphd.com/?p=aliasing](http://www.onmyphd.com/?p=aliasing)\n",
"\n",
"5. Cooley, J. W., & Tukey, J. W. (1965). An algorithm for the machine calculation of complex Fourier series. Mathematics of computation, 19(90), 297-301.\n",
"\n",
"6. Harris, F. J. (1978). On the use of windows for harmonic analysis with the discrete Fourier transform. Proceedings of the IEEE, 66(1), 51-83."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}