{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Dynamic Testing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to measure the dynamical characteristics of a SDOF building system,\n", "i.e., its mass, its damping coefficient and its elastic stiffness.\n", "\n", "To this purpose, we demonstrate that is sufficient to measure the steady-state\n", "response of the SDOF when subjected to a number of harmonic excitations with\n", "different frequencies.\n", "\n", "The steady-state response is characterized by its amplitude, $ρ$ and the phase\n", "delay, $θ$, as in $x_{SS}(t) = ρ \\sin(ωt − θ)$.\n", "\n", "A SDOF structural system is excited by a vibrodyne that exerts a harmonic force\n", "$p(t) = p_o\\sin ωt$, with $p_o = 2.224\\,{}$kN at different frequencies, and we can\n", "measure the steady-state response parameters for two different input frequencies,\n", "as detailed in the following table.\n", "\n", "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
$i$$ω_i$ (rad/s)$ρ_i$ (μm)$θ_i$ (deg) $\\cos θ_i$$\\sin θ_i$
116.0183.015.00.96600.2590
225.0368.055.00.57400.8190
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Determination of $k$ and $m$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start from the equation for steady-state response amplitude,\n", "\n", "$$\\rho=\\frac{p_o}{k}\\frac{1}{\\sqrt{(1-\\beta^2)^2+(2\\zeta\\beta)^2}}$$\n", "\n", "where we collect $(1-\\beta^2)^2$ in the radicand in the right member,\n", "\n", "$$\\rho=\\frac{p_o}{k}\\frac{1}{1-\\beta^2}\\frac{1}{\\sqrt{1+[2\\zeta\\beta/(1-\\beta^2)]^2}}$$\n", "\n", "but the equation for the phase angle,\n", "$\\tan\\vartheta=\\frac{2\\zeta\\beta}{1-\\beta^2}$, can be substituted in\n", "the radicand, so that, using simple trigonometric identities, we find that\n", "\n", "$$\\rho=\\frac{p_o}{k}\\frac{1}{1-\\beta^2}\\frac{1}{\\sqrt{1+\\tan^2\\vartheta}}=\n", "\\frac{p_o}{k}\\frac{\\cos\\vartheta}{1-\\beta^2}.$$\n", "\n", "With $k(1-\\beta^2)=k-k\\frac{\\omega^2}{k/m}=k-\\omega^2m$ and using a\n", "simple rearrangement, we eventually have\n", "\n", "\n", "
\n", "$\\displaystyle{k-\\omega^2m=\\frac{p_o}{\\rho}\\cos\\vartheta.}$\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "from scipy import matrix, sqrt, pi, cos, sin, set_printoptions\n", "\n", "p0 = 2224.0 # converted from kN to Newton\n", "rho1 = 183E-6 ; rho2 = 368E-6 # converted from μm to m\n", "w1 = 16.0 ; w2 = 25.0 \n", "th1 = 15.0 ; th2 = 55.0\n", "d2r = pi/180.\n", "cos1 = cos(d2r*th1) ; cos2 = cos(d2r*th2)\n", "sin1 = sin(d2r*th1) ; sin2 = sin(d2r*th2)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. -256.]\n", " [ 1. -625.]]\n", "[[ 11738901.84517425]\n", " [ 3466396.72403458]]\n" ] } ], "source": [ "# the unknowns are k and m\n", "# coefficient matrix, row i is 1, omega_i^2\n", "coeff = matrix(((1, -w1**2),(1, -w2**2)))\n", "# kt i.e., know term, cos(theta_i)/rho_i * p_0\n", "kt = matrix((cos1/rho1,cos2/rho2)).T*p0\n", "print(coeff)\n", "print(kt)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " k m wn2 wn\n", "17478092.3899 22418.7130654 779.620682905 27.9216883964\n" ] } ], "source": [ "k_and_m = coeff.I*kt\n", "k, m = k_and_m[0,0], k_and_m[1,0]\n", "wn2, wn = k/m, sqrt(k/m)\n", "print(' k m wn2 wn')\n", "print(k, m, wn2, wn)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Determination of $\\zeta$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the previously established relationship for $\\cos\\vartheta$, we\n", "can write $\\cos\\vartheta=k(1-\\beta^2)\\frac{\\rho}{p_o}$, from the\n", "equation of the phase angle (see above), we can write $\\cos\\vartheta =\n", "\\frac{1-\\beta^2}{2\\zeta\\beta}\\sin\\vartheta$, and finally\n", "\n", "$$\\frac{\\rho k}{p_o}=\\frac{\\sin\\vartheta}{2\\zeta\\beta},\n", "\\quad\\text{hence}\\quad\n", "\\zeta=\\frac{p_o}{\\rho k}\\frac{\\sin\\vartheta}{2\\beta}$$\n", "\n", "Lets write some code that gives us our two wstimates" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "15.7028177716 15.8171824682\n" ] } ], "source": [ "z1 = p0*sin1/rho1/k/2/(w1/wn)\n", "z2 = p0*sin2/rho2/k/2/(w2/wn)\n", "print(z1*100, z2*100)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Experimental approximation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have seen that our two estimates for $\\zeta$ are sligtly different, this is due to\n", "the fact that every measurement is slightly approximated...\n", "\n", "One can partly obviate using a number of measurements larger, or even much larger, than\n", "the number of parameters s/he's trying to determine.\n", "\n", "In our case, for each set of $M$ observations (an observation for us is a set of three values, $\\omega_i, \\rho_i, \\theta_i$) we can write a linear equation in the $N=2$ unknowns $k$ and $m$ so that, with $b_i = p_o \\cos\\theta_i/\\rho_i$, we can write\n", "\n", "$$Ax-b=0$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "$Ax-b=0$ is a set of $M$ equations in $NThe usual name of the procedure that I have sketched is, of course, _\"Least Squares Parameter Estimation\"_.\n", "\n", "We'll deal again with the derivative of a quadratic form in the future... " ] } ], "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.7.6" } }, "nbformat": 4, "nbformat_minor": 1 }