{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Elastoplastic SDOF system\n", "#### March 2020, By Amir Hossein Namadchi\n", "This is an OpenSeesPy simulation of a simple SDOF system with elastoplastic behavior mentioned in *Dynamics of Structures* book by *Ray W. Clough* and *J. Penzien*. This example has been solved in the book, so the result obtained here can be compared with the reference." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![EPSDOF](imgs/SDOFElastoPlastic.PNG)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import openseespy.opensees as ops\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "## Units\n", "inch = 1 # inches\n", "kips = 1 # KiloPounds\n", "sec = 1 # Seconds\n", "\n", "lb = kips*(sec**2)/inch # mass unit (derived)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Model specifications are defined as follows:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "m = 0.1*lb # Mass\n", "k = 5.0*(kips/inch) # Stiffness\n", "c = 0.2*(kips*sec/inch) # Damping\n", "dy_p = 1.2*inch # Plastic state displacment\n", "alpha_m = c/m # Rayleigh damping ratio\n", "\n", "# Variation of p(t) in tabular form\n", "load_history = np.array([[0, 0],\n", " [0.1, 5],\n", " [0.2, 8],\n", " [0.3, 7],\n", " [0.4, 5],\n", " [0.5, 3],\n", " [0.6, 2],\n", " [0.7,1],\n", " [0.8, 0]\n", " ])\n", "\n", "# Dynamic Analysis Parameters\n", "dt = 0.01\n", "time = 1.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis\n", "Let's wrap the whole part in a function so that different material behavior could be passed to the function:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def do_analysis(dt, time, material_params):\n", " ops.wipe()\n", " ops.model('basic','-ndm',1,'-ndf',1)\n", " time_domain = np.arange(0, time, dt)\n", "\n", " # Nodes\n", " ops.node(1,0.0,0.0)\n", " ops.node(2,0.0,0.0)\n", "\n", " ops.uniaxialMaterial(*material_params)\n", " ops.element('zeroLength', 1, *[1,2], '-mat', 1, '-dir', 1)\n", " ops.mass(2, m)\n", " ops.rayleigh(alpha_m, 0.0, 0.0, 0.0)\n", "\n", " ops.fix(1,1)\n", " ops.timeSeries('Path', 1,\n", " '-values', *load_history[:,1],\n", " '-time', *load_history[:,0])\n", " ops.pattern('Plain', 1, 1)\n", " ops.load(2, 1)\n", " \n", " # Analysis\n", " ops.constraints('Plain')\n", " ops.numberer('Plain')\n", " ops.system('ProfileSPD')\n", " ops.test('NormUnbalance', 0.0000001, 100)\n", " ops.algorithm('ModifiedNewton')\n", " ops.integrator('Newmark', 0.5, 0.25)\n", " ops.analysis('Transient')\n", " \n", " time_lst =[0] # list to hold time stations for plotting\n", " response = [0] # response params of node 2 \n", " \n", "\n", " for i in range(len(time_domain)):\n", " ops.analyze(1, dt)\n", " time_lst.append(ops.getTime())\n", " response.append(ops.nodeDisp(2,1))\n", " \n", " print('Done with ', material_params,'!')\n", " \n", " return {'time_list':np.array(time_lst),\n", " 'd': np.array(response)}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For comparison (similar to the book), elastic analysis is also inculded:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done with ['ElasticPP', 1, 5.0, 1.2] !\n", "Done with ['Elastic', 1, 5.0] !\n" ] } ], "source": [ "epp = do_analysis(dt, time, ['ElasticPP', 1, k, dy_p]) # Elastic-Perfectly Plastic\n", "els = do_analysis(dt, time, ['Elastic', 1, k]) # Elastic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualization" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(7,5))\n", "plt.plot(epp['time_list'], epp['d'], color = '#fe4a49', linewidth=1.75, label = 'Nonlinear (EPP)')\n", "plt.plot(els['time_list'], els['d'], color = '#2ab7ca', linewidth=1.75, label = 'Linear (Elastic)')\n", "plt.ylabel('Displacement (inch)', {'fontname':'Cambria', 'fontstyle':'italic','size':14})\n", "plt.xlabel('Time (sec)', {'fontname':'Cambria', 'fontstyle':'italic','size':14})\n", "plt.xlim([0.0, time])\n", "plt.legend()\n", "plt.grid()\n", "plt.yticks(fontname = 'Cambria', fontsize = 14)\n", "plt.xticks(fontname = 'Cambria', fontsize = 14);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Closure\n", "Results obtained here with the OpenSeesPy, totally agree with the ones in the book." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "-
Clough, R.W. and Penzien, J., 2003. Dynamics of structures. Berkeley. CA: Computers and Structures, Inc.\n", "
" ] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }