{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from sympy import *\n", "#from sympy.abc import *\n", "init_printing(use_latex=True)\n", "\n", "from sympy import symbols\n", "from sympy.physics.mechanics import ReferenceFrame, Point, dynamicsymbols" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Sistemas de referencia." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se definen los distintos sistemas de referencia:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#ejes tierra\n", "Earth = ReferenceFrame(\"Earth\", latexs=['\\mathbf{i_{e}}', '\\mathbf{j_{e}}', '\\mathbf{k_{e}}'])\n", "#ejes horizonte local\n", "Hor = ReferenceFrame(\"Hor\", latexs=['\\mathbf{i_{h}}', '\\mathbf{j_{h}}', '\\mathbf{k_{h}}'])\n", "#ejes cuerpo\n", "Body = ReferenceFrame(\"Body\", latexs=['\\mathbf{i_{b}}', '\\mathbf{j_{b}}', '\\mathbf{k_{b}}'])\n", "#ejes viento\n", "Wind = ReferenceFrame(\"Wind\", latexs=['\\mathbf{i_{w}}', '\\mathbf{j_{w}}', '\\mathbf{k_{w}}'])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Orientaci\u00f3n del sistema ejes cuerpo respecto al sistema de ejes horizonte local." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Los sistemas de referencia se orientan mediante los \u00c1ngulos de Euler seg\u00fan el convenio de Tait-Bryan $zyx$ ($321$)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\psi =$ \u00e1ngulo de gui\u00f1ada del avi\u00f3n.\n", "\n", "$\\theta =$ \u00e1ngulo de cabeceo del avi\u00f3n.\n", "\n", "$\\phi =$ \u00e1ngulo de balance del avi\u00f3n." ] }, { "cell_type": "code", "collapsed": false, "input": [ "psi, theta, phi = dynamicsymbols('psi, theta, phi')\n", "Body.orient(Hor, 'Body', (psi, theta, phi), 'ZYX')\n", "L_bh = Body.dcm(Hor)\n", "L_bh" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left[\\begin{smallmatrix}{}\\cos{\\left (\\psi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} & \\sin{\\left (\\psi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} & - \\sin{\\left (\\theta{\\left (t \\right )} \\right )}\\\\\\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\cos{\\left (\\psi{\\left (t \\right )} \\right )} - \\sin{\\left (\\psi{\\left (t \\right )} \\right )} \\cos{\\left (\\phi{\\left (t \\right )} \\right )} & \\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\sin{\\left (\\psi{\\left (t \\right )} \\right )} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\psi{\\left (t \\right )} \\right )} & \\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\\\\\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\sin{\\left (\\psi{\\left (t \\right )} \\right )} + \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\psi{\\left (t \\right )} \\right )} & - \\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\psi{\\left (t \\right )} \\right )} + \\sin{\\left (\\psi{\\left (t \\right )} \\right )} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\cos{\\left (\\phi{\\left (t \\right )} \\right )} & \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\end{smallmatrix}\\right]$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAA0BAMAAADF8OzJAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCrIkSZdrvd\nZs2J+k1wAAAQMUlEQVR4Ae1cX6isVRVfnnPmzjjnnusFjV6ihosZ+nQIMyKDgYwsswazf/7BQXpQ\nH3IsQnpIjxJX0KSLSaUUTBc1uGEIKkIhHkihl+J0wTeDIxbiQ5dLcVOf7Pdbe+/v23t965sZPcM9\nPri5M3t/s37fWr+11pmZ75zft6/I0sadyRMXq3hsphequTsJS4XCTNQ+j0RJdOFzihid/MSWnkSi\n1V5LDfmxd/6znNCdAfz08dDF2o7I1Q3H18D60DQgaCZqf8YrKSwoiUzx0IXPCabvXBIRfmJ0soyR\n02LIGbVceeedw3L+FV9YRliR9RH8sHtYHBrKhSIrQxwV41la/6XQf8rKUIjan3E0hQWl0D0s2jjB\n9OyhkWBqSyx52+uc02LIGbXsXPH5w3LBXgOm8+/n4kY8sLhpJNfjB+epZItzbyryqDxNROeMmoHa\n30FK0sFHABZtnGA6d7q+SWhLYkvPIYacUUuEXFti955jCvfhgcXleI8NRZ7hS9lYn7BCfyVidVvN\nRO3LuDZGBSV0Dk9YtHGC6abRwR1CWxJbWgoZLYacUUuE3GP3Vo58V04cH/X/cQl8bUvvIpkeHGLx\no789LP2pyAm8fOSiYf/Ex+XJkzg+iI/WXXkLiO6v3xjSTNRZH+DbeUHuuuD4WCndO+7Li+CWcyoy\nA+0/yHlbmPLElk7b0GJIU0sTco/du1luXt/sbN8r38cPwq6snDfCBwwW8hreXGORy0QODA4MnpYb\neoPuQOSr+OJ44xdniDi0qWaizvog35uk+1/SBKXBmT4+zcmt5pRnRtOpR24fYcoSWz5rQ4shy1ra\nkHvrXveMyNdE/nj3z7+BT5+n5Ic/lenqBAt5U4/lAZG7R7J2WtZ/9/anRsLjczY3tok4b6KHXJ71\nQb7o3hm5jRy6397uy6fJreZUZEbT+fIKpyyx5bMuaWnIspY25N661zst8neRW3svvIVujUUeWtvq\nc9E7rO9F/tD+TGTjsBw49sA7WyJHWaH1HULvARWY+cN11gf5onun2T1QOndwJX5lwKLmVGRG05vy\nPKcsseWxXv0TBq5nDS2GLGtpQ+6te128xfje+yK/zNfwLvpLX37MRX/8Le0m8r17ou+9xya8JLgK\n3ZM7FPpEZ6LlGFtKZ+GYfFP3QOng1rS7Q241pyIzmk53D3PKEls+T0OLIcta2pB7657cKtet73Q/\n9BlZx1X3tsjT/e6Ai3OnA9kYiJzE996xzvR5uePrxwTdvQHfLZNnFProipqJOuuDfFP3QGl9c4rv\nbSwyTnlmNL2Oi2NMWWLLZ21oMWRZSxtyj91beXQgRy6efPLEJ+D4JZFvPvGkLnq3DeXAlsgtOLr4\nuKwc+eXqJccn+CnHl+AjeB3Qo4+pmaizPsC3c/ux6//X/8gmKXVuu21HuWWcisyA+dKvFJEntnTa\nhhZDolIzQu6xe0UCbNwP+AoXeJPhsctFNvqoEkdA0EzUvg5S6m6CQuS263CKpjh5iS09hRhrRi0R\ncpndw6envMw0uBD5HH5piM3SY316KiwDgmag9nmA0saIHJSbz0lNEeEntvQkYsgZtVxu93o7IviH\nayc+d8b4IOVRMR4MR4qgmah9HqC0oRSUm88p0tbJT2zpScSQM2q53O7JpSkFLvojkcfTC9W8OgxL\nhcJM1D6PREl04XOKGJ38xJaeRKLVXssld2/pGXzgcHYFlvm9NzvSB9blV8Dt3p0xTneCxaYngKsF\nRiJXAwjP+UiIoFgDQ5gzFsEljM7trpQNQyh/l3fKrIIAZUaEaCzXR8AnTzNwCVIFaynBArwTxERb\nqxWije2Yh8q5vAy7hi9cjY/XnWCpELTMEX713D7O0wU8JCfB1SthiuZ2nMLoouLTcFWxUt646NXZ\n5R0s0wyC7HTkTij+N3KPuDS11igBUgy4avAJmDykXqy34IimqRL3645k3euNicNQjRx/CaGUXIjN\nFYKWOcIvELgmCU4OqdB+IV9J42hazMEpjJjIx3FVsVLeg8Df560ImWaQlaHoyJ1Q/De59wKqfm6t\nkYEUwcobCfKQ0DkyUiWOHhkuivt5Zln3qrj3c4Vq9aZtYjMs1JpnCL9AYEBo5yLo0a6KvghOMYHP\nLFdko1XA3CKSK4I6egVpqP+wUPxHzNzHOl3nQz3NrFGgUwTj7QbOUF+DjFQTB0gU93NW+W/rnWH0\n/BxnFH7dis0VApY5wi8QGPepk6hHFyr6tTRjzMNVmMDHc1WxIm9WC/Pqdi7cFwjV0WvIM4yA84Y6\n8WQV/03uje611ii6waQQivZ1sKIEWcgW3oWvKO4XmaX3HpTv6093X/3yRThjG4+TNz8spdicIw4G\nrRnIXGs2InoQ2gGNmEpFNxKyizO+Ip+GKyr2Oe+Niy4eglUukhtE0NFryAkkW0L6FP/L3MNfj3JO\nfo0KQR4QG6wqgQkpDm/rK4j7eWbV73tUvjun5e7NQ5uytou3xM7gBkrJOKQ+vjqWHJG0ZiJfU6sn\nogehHU4iBk7CMBKyh7OCfOJjXeWsyOb5lc5LnH3etKiOnkGQnXFC8Z8Z1j5QDzDPOdFB4pThckHe\nC7Y6hh8OE9LhLdZXFPezaFX3ulC+2b3RgalQzn1CBuubDxRic4ZIWnMp/FoRPQjtcBL1aKJ1GAnZ\nw1lfiY91ZXj3xyvyNOOcN0nCvUEEHT2DgJ+BUPwvhfbQvZwTHSROWawz5a0GjWBVCUxIj7fxlcT9\nOhpqmT45oXyze8LujUVe7ODuoqO52CwZImnNQPYOw8euquRWRA9CO5xEDGCfpYg8MhKyg2sI8olP\n7Up/DtCigvfB4XXyIvnfAzPePmRWIoKOnkH42VBCKP4zw9rH9069eurUTp6fX6PeaXOrgYr2WTDy\nCaMM6fBu+Irifs0KjmL31qB8p+5BzpUP94ZfKcXmHJG05lL4tSJ6ENqvwu8NQWhnFjqMhOzhrK/E\nx7rKWYHNOZOfrG2Tfy2SG0TQ0TMI2mQgFP/L3ON7b1LfJEAHiVMdqxDkCVHRPgtWlcCEdHg3fEVx\nv46GWsburUL5Tt3rbIv8ZqX7eik254ikNQOZac1WRA9Ce61Hbwy0dyJGQvZw1lfiE8NVrnJWZLMz\nuGtC/rVIbhBBR88gJ/G9XSZP8b/MPX7vHatvEqCDxKmO1bjVQEX7LNi74N3wFcX9LFrdPSjf33y7\n88L4t39W4Xvl98dHVJ1rsZnaeIWAxRF+jYgehHZAozh8YCt2z0jILs74Snysq4LVSyKX/PHjRri3\niKCjAxpTg/pvICr+F7mH7hU3CcBB4lTXSApBHhAbrCqBCenwbviK4n4WreperGuYnsTU52NHj3eb\nYnO0zBB+FUGhPUIPNZ2o80VwxGR82lwpmym8kj/GbjMkLaqj1xCgihEtkTasCBe7l+MIyzjtNmMp\nDRNMfeVudE1fUzxqUg2czyp9cqqX9LSOxZU8wCc3fjJRu4YArpaUFKwElYOIl/lSgALTcKInLIID\npuZDP74r8F7bglPy93nTsjHCUwVpEA8Wm/u59JgPwmpObo2awd4z78jXsnK719uJGvmD5OuKzWrB\n1SSQKo8DZAYRtIpCO2OFGUwyz8PBxTwIXYHNRpwxebzJt4Q0iGtKOF1pez4YIWRec3JxzWCogjfm\n8w6FxrmGVfqNofBKOZdjdYinx/ERMeJRPtSCF4ikFSAzEiI4AabpRM9YBJcwOre7qrR95e/yTpkF\nKCBN4hGisVwfIdHkaQYuQapgLSVYgHeCmGhu90wjPjh8v1bgg+69XzuzCC+3e3fGM7sTLDbxCdrw\npBa+2g7RcyJOJ3qBMzOSpwUgIRjcNPnUThN3nRGuGTHp1LPuDFB/yZWe4LJP5BcIliAe9+RmgRrQ\nTU1l7d1o69hGE4cK5lMc6OJqXOztJBPnHFdJwoQAaYbVzVsgenmuweCmDEaHVUCK0LzW1Zm+mhHV\nxKt9XTRYbWzDxNGOq6KBULELvyVYzqfJPRSRl8IpP4c0TM7NDFn3emMljctpOEpadq7k6n6bgHmW\n0xQPLDJIjy9j4M9PYcA8Z783PUHlpKND7Xvdwy9XFebC6L6aqoDKfRByUGIrwwoUFwph97DIQ24F\ne1kGB1emV+zCXxkGH/Vzg09TN9fcF6iBczND1r0q5P1czdSNe1MgKIRikYu9/BUnHzDP2e+tnkKs\nqJs31G6FLCDTa2DlPsh06oa7oHnfCDSwQfUPmKdy5sE8Zxs+mRW78FuCDTI+Td2cRUz1Lgjh1TQA\n8W5myLpXaL2uti7XRm/rEyycvd6pexluzn5v9YRScr4c09Dd645o9+WYQqMmpxRQBe1SX3+G9nw8\nxwO4IzYPGbtXlsHB1dFAWoV4OFrdVuJusJJPg7vmHutdECLPOBDJu5khda+Ulz1t3Sji3l5v/ZOA\nwTn7vY+UG9mNbu7tdXfl95RZHlC28et4qa+fAM7o1O72ev2jUFkGD5dHO4gP9HIXvhPM8gn6+ruv\ngbeLPXbPar2ObmwUcW+vt3bP4Jr7vXONmiJcivVeZHp2MA+4ttvQ1y8DxOjU3vZ6/SuUKYOHy6OB\nvNmF7wTzdPNCp1+wBt4u9tg9o/U6urGUiri31xuNQKVKXJKEs/3euUZNDTtp1DMgnvyOUGHkASFe\nW50aEYpN6IB42+u1e6YMHi6PBtdmF74TzPJRff091IAb53num/jOwoRItcZQar2etm4UcWevd5Cg\nDa653zvXqHl1+mLU8XuHQWd3UZke3INSX+z27o3F6tR4gzR06ofWtsz2+gOnTn301L+Nyu5twzfp\nmV34TjDLhynOu3eAb0dbJm8Xe3zvGa3X0Y3FKOLOXu/w3jO45n7vObo5G2ohnvyOGoSRB4SObXVq\nuGvo1M72en3v2TI4uDzaVY1d+E4wywc/YM0Ek06fbYu3NfB2scfuGXnZ042NIu7t9dZPToNr7vee\no5t7e909+T32rpTqO019/SSA+SZ0QLzt9do9WwZnG75Jz+zCd4I5en9zM3/S6WfcquDtYk/dy5Xz\nl3CR1tDWxSji3l5v7Z7BOfu9Z+vm3l53V35P7csDckO80ddvAc5q3t72el5zWsnbweXRDo7sLnwv\nmOET9PV3XwPnZgZX33sS+fb52NEC7TZ1Y1pUNjaQdT2hformOB2CAc6KQVMWqw2i++FrN4T5g9yn\neHDG2G1GVJO3vR7dKwZdeLgaFAnNCzbFGTWfJvdFa1C5qaqE917jf3hkD+boxshUNWr9JUkqabkh\nQceKhAmKOJHlgKmORfHZhSwk09MxuK9thRnP8NV0x/RexkM/KVSnD5hjfC0bbbgMEvKKjtqCrW3h\nDDoLuSFFOxasAU4LbmKV9H94bPzvqhSF8a+h5GZBH4watRV7M4gugePQqTNu2chex2qFZHyAIaxl\nNHRqyN5mVOlx0XJnAE9ZABfTU0cU891gG8mZr/fDCjeL1CByqijr/65K5+W4NB4aJTcDqYXH7RBF\nR5xO/ZEnZSdPC0DmyfQaMXHX+XEvYtKpZ90ZULjSE1z2ifwCwRKEfuxIbhaoAd3kVP4PVQnJMeR1\n0hsAAAAASUVORK5CYII=\n", "prompt_number": 4, "text": [ "\u23a1 cos(\u03c8(t))\u22c5cos(\u03b8(t)) sin(\u03c8(t)\n", "\u23a2 \n", "\u23a2sin(\u03c6(t))\u22c5sin(\u03b8(t))\u22c5cos(\u03c8(t)) - sin(\u03c8(t))\u22c5cos(\u03c6(t)) sin(\u03c6(t))\u22c5sin(\u03c8(t))\u22c5sin(\n", "\u23a2 \n", "\u23a3sin(\u03c6(t))\u22c5sin(\u03c8(t)) + sin(\u03b8(t))\u22c5cos(\u03c6(t))\u22c5cos(\u03c8(t)) -sin(\u03c6(t))\u22c5cos(\u03c8(t)) + s\n", "\n", ")\u22c5cos(\u03b8(t)) -sin(\u03b8(t)) \u23a4\n", " \u23a5\n", "\u03b8(t)) + cos(\u03c6(t))\u22c5cos(\u03c8(t)) sin(\u03c6(t))\u22c5cos(\u03b8(t))\u23a5\n", " \u23a5\n", "in(\u03c8(t))\u22c5sin(\u03b8(t))\u22c5cos(\u03c6(t)) cos(\u03c6(t))\u22c5cos(\u03b8(t))\u23a6" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Orientaci\u00f3n del sistema ejes viento respecto al sistema ejes horizonte local." ] }, { "cell_type": "code", "collapsed": false, "input": [ "chi, gamma, mu = dynamicsymbols('chi, \\gamma, mu')\n", "Wind.orient(Hor, 'Body', (chi, gamma, mu), 'ZYX')\n", "L_wh = Wind.dcm(Hor)\n", "L_wh" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left[\\begin{smallmatrix}{}\\cos{\\left (\\gamma{\\left (t \\right )} \\right )} \\cos{\\left (\\chi{\\left (t \\right )} \\right )} & \\sin{\\left (\\chi{\\left (t \\right )} \\right )} \\cos{\\left (\\gamma{\\left (t \\right )} \\right )} & - \\sin{\\left (\\gamma{\\left (t \\right )} \\right )}\\\\\\sin{\\left (\\gamma{\\left (t \\right )} \\right )} \\sin{\\left (\\mu{\\left (t \\right )} \\right )} \\cos{\\left (\\chi{\\left (t \\right )} \\right )} - \\sin{\\left (\\chi{\\left (t \\right )} \\right )} \\cos{\\left (\\mu{\\left (t \\right )} \\right )} & \\sin{\\left (\\gamma{\\left (t \\right )} \\right )} \\sin{\\left (\\chi{\\left (t \\right )} \\right )} \\sin{\\left (\\mu{\\left (t \\right )} \\right )} + \\cos{\\left (\\chi{\\left (t \\right )} \\right )} \\cos{\\left (\\mu{\\left (t \\right )} \\right )} & \\sin{\\left (\\mu{\\left (t \\right )} \\right )} \\cos{\\left (\\gamma{\\left (t \\right )} \\right )}\\\\\\sin{\\left (\\gamma{\\left (t \\right )} \\right )} \\cos{\\left (\\chi{\\left (t \\right )} \\right )} \\cos{\\left (\\mu{\\left (t \\right )} \\right )} + \\sin{\\left (\\chi{\\left (t \\right )} \\right )} \\sin{\\left (\\mu{\\left (t \\right )} \\right )} & \\sin{\\left (\\gamma{\\left (t \\right )} \\right )} \\sin{\\left (\\chi{\\left (t \\right )} \\right )} \\cos{\\left (\\mu{\\left (t \\right )} \\right )} - \\sin{\\left (\\mu{\\left (t \\right )} \\right )} \\cos{\\left (\\chi{\\left (t \\right )} \\right )} & \\cos{\\left (\\gamma{\\left (t \\right )} \\right )} \\cos{\\left (\\mu{\\left (t \\right )} \\right )}\\end{smallmatrix}\\right]$$" ], "metadata": {}, "output_type": "pyout", "png": "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\n", "prompt_number": 5, "text": [ "\u23a1 cos(\\gamma(t))\u22c5cos(\u03c7(t)) sin\n", "\u23a2 \n", "\u23a2sin(\\gamma(t))\u22c5sin(\u03bc(t))\u22c5cos(\u03c7(t)) - sin(\u03c7(t))\u22c5cos(\u03bc(t)) sin(\\gamma(t))\u22c5sin(\n", "\u23a2 \n", "\u23a3sin(\\gamma(t))\u22c5cos(\u03c7(t))\u22c5cos(\u03bc(t)) + sin(\u03c7(t))\u22c5sin(\u03bc(t)) sin(\\gamma(t))\u22c5sin(\n", "\n", "(\u03c7(t))\u22c5cos(\\gamma(t)) -sin(\\gamma(t)) \u23a4\n", " \u23a5\n", "\u03c7(t))\u22c5sin(\u03bc(t)) + cos(\u03c7(t))\u22c5cos(\u03bc(t)) sin(\u03bc(t))\u22c5cos(\\gamma(t))\u23a5\n", " \u23a5\n", "\u03c7(t))\u22c5cos(\u03bc(t)) - sin(\u03bc(t))\u22c5cos(\u03c7(t)) cos(\\gamma(t))\u22c5cos(\u03bc(t))\u23a6" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Orientaci\u00f3n del sistema ejes cuerpo respecto al sistema ejes viento." ] }, { "cell_type": "code", "collapsed": false, "input": [ "beta, alpha = dynamicsymbols('beta, alpha')\n", "Body.orient(Wind, 'Body', (-beta, alpha, 0), 'ZYX')\n", "L_bw = Body.dcm(Wind)\n", "L_bw" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left[\\begin{smallmatrix}{}\\cos{\\left (\\alpha{\\left (t \\right )} \\right )} \\cos{\\left (\\beta{\\left (t \\right )} \\right )} & - \\sin{\\left (\\beta{\\left (t \\right )} \\right )} \\cos{\\left (\\alpha{\\left (t \\right )} \\right )} & - \\sin{\\left (\\alpha{\\left (t \\right )} \\right )}\\\\\\sin{\\left (\\beta{\\left (t \\right )} \\right )} & \\cos{\\left (\\beta{\\left (t \\right )} \\right )} & 0\\\\\\sin{\\left (\\alpha{\\left (t \\right )} \\right )} \\cos{\\left (\\beta{\\left (t \\right )} \\right )} & - \\sin{\\left (\\alpha{\\left (t \\right )} \\right )} \\sin{\\left (\\beta{\\left (t \\right )} \\right )} & \\cos{\\left (\\alpha{\\left (t \\right )} \\right )}\\end{smallmatrix}\\right]$$" ], "metadata": {}, "output_type": "pyout", "png": "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\ngg==\n", "prompt_number": 6, "text": [ "\u23a1cos(\u03b1(t))\u22c5cos(\u03b2(t)) -sin(\u03b2(t))\u22c5cos(\u03b1(t)) -sin(\u03b1(t))\u23a4\n", "\u23a2 \u23a5\n", "\u23a2 sin(\u03b2(t)) cos(\u03b2(t)) 0 \u23a5\n", "\u23a2 \u23a5\n", "\u23a3sin(\u03b1(t))\u22c5cos(\u03b2(t)) -sin(\u03b1(t))\u22c5sin(\u03b2(t)) cos(\u03b1(t)) \u23a6" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Orientaci\u00f3n de los ejes horizonte local con respecto a los ejes tierra." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como los ejes horizonte local son paralelos a los ejes tierra con origen en el punto subavi\u00f3n en todo momento por definici\u00f3n:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Hor.orient(Earth, 'Body', (0, 0, 0), 'ZYX')\n", "Hor.dcm(Earth)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left[\\begin{smallmatrix}{}1 & 0 & 0\\\\0 & 1 & 0\\\\0 & 0 & 1\\end{smallmatrix}\\right]$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAmBAMAAACSfx5LAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAEO+Zu3ZEIjKr3VSJZjmw\nvZAAAAEmSURBVDgRjZIxbsJAEEW/EjkgrEgWB7CQEVUa2lClIG2UA1CkclqO4BMgjkBDmTsgcRIa\npNyCGe8fmxmnyBb+Wj/vrvfpY1rNAYzf5AFsNl08VlWBqU7HrweN51O+7+OBEHkLJw0uAhkBllu8\nCGQEuCvwI5AxhMcENSLcYqEwRYBlg6tARoCTr/S3KXo4kxXIlu09GQZHq99Ppedz0YdBfTMYHaRU\np9ggpXrFBmnTKzZIm4TBLW0SBrcyVZs9vHdLmwa9W9q0M5Ni+yFKJeTMIG0in+nJwS2lesW2Ur8f\njP/BuzbLDsm/rfRtpn+Dvs28kUHf5gCp2vu3lRTv/XfQtTls69scoG9zgL7N9G9n+jbTv8By/T5Q\nri+y9UeBp/r7Tziqa9wAn3ht/FgpAOgAAAAASUVORK5CYII=\n", "prompt_number": 9, "text": [ "\u23a11 0 0\u23a4\n", "\u23a2 \u23a5\n", "\u23a20 1 0\u23a5\n", "\u23a2 \u23a5\n", "\u23a30 0 1\u23a6" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Ecuaciones generales del movimiento." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se utilizar\u00e1n ahora los teoremas de cantidad de movimiento y momento cin\u00e9tico para obtener las ecuaciones del movimiento del avi\u00f3n:\n", "\n", "$$\\boldsymbol{\\mathbf{F}}=m\\cdot\\frac{d\\mathbf{\\boldsymbol{V}}}{dt}$$ (se ha despreciado la variaci\u00f3n de la masa)\n", "\n", "$$\\boldsymbol{G}=\\frac{d\\boldsymbol{h}}{dt}=\\boldsymbol{I}\\boldsymbol{\\omega}$$ \n", "\n", "Estas ecuaciones se proyectan sobre el sistema de ejes cuerpo con la doble ventaja de que, en ellos, no var\u00eda el tensor de inercia y adem\u00e1s debido a la simetr\u00eda que aparece en todos los aviones convencionales habr\u00e1 t\u00e9rminos de dicho tensor que sean cero." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sympy.physics.mechanics import inertia\n", "I_x, I_y, I_z, J_xz = symbols('I_x, I_y, I_z, J_xz')\n", "I = inertia(Body, I_x, I_y, I_z, 0, 0, -J_xz)\n", "I" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$I_{x} \\mathbf{i_{b}}\\otimes \\mathbf{i_{b}} - J_{xz} \\mathbf{i_{b}}\\otimes \\mathbf{k_{b}} + I_{y} \\mathbf{j_{b}}\\otimes \\mathbf{j_{b}} - J_{xz} \\mathbf{k_{b}}\\otimes \\mathbf{i_{b}} + I_{z} \\mathbf{k_{b}}\\otimes \\mathbf{k_{b}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "I_x*(Body.x|Body.x) - J_xz*(Body.x|Body.z) + I_y*(Body.y|Body.y) - J_xz*(Body.z|Body.x) + I_z*(Body.z|Body.z)" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "F_x, F_y, F_z = dynamicsymbols('F_x, F_y, F_z')\n", "L, M, N = dynamicsymbols('L, M, N')\n", "u, v, w = dynamicsymbols('u, v, w')\n", "p, q, r = dynamicsymbols('p, q, r')\n", "\n", "F = F_x * Body.x + F_y * Body.y + F_z * Body.z\n", "G = L * Body.x + M * Body.y + N * Body.z\n", "V = u * Body.x + v * Body.y + w * Body.z\n", "W = p * Body.x + q * Body.y + r * Body.z" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "F = (V.dt(Body)) + (W ^ V)\n", "F" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$(q{\\left (t \\right )} w{\\left (t \\right )} - r{\\left (t \\right )} v{\\left (t \\right )} + \\dot{u})\\mathbf{i_{b}} + (- p{\\left (t \\right )} w{\\left (t \\right )} + r{\\left (t \\right )} u{\\left (t \\right )} + \\dot{v})\\mathbf{j_{b}} + (p{\\left (t \\right )} v{\\left (t \\right )} - q{\\left (t \\right )} u{\\left (t \\right )} + \\dot{w})\\mathbf{k_{b}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "(q*w - r*v + u')*Body.x + (-p*w + r*u + v')*Body.y + (p*v - q*u + w')*Body.z" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "G = ((I & W).dt(Body)) + (W ^ (I & W))\n", "G" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$(I_{x} \\dot{p} - I_{y} q{\\left (t \\right )} r{\\left (t \\right )} - J_{xz} \\dot{r} + \\left(I_{z} r{\\left (t \\right )} - J_{xz} p{\\left (t \\right )}\\right) q{\\left (t \\right )})\\mathbf{i_{b}} + (I_{y} \\dot{q} + \\left(I_{x} p{\\left (t \\right )} - J_{xz} r{\\left (t \\right )}\\right) r{\\left (t \\right )} - \\left(I_{z} r{\\left (t \\right )} - J_{xz} p{\\left (t \\right )}\\right) p{\\left (t \\right )})\\mathbf{j_{b}} + (I_{y} p{\\left (t \\right )} q{\\left (t \\right )} + I_{z} \\dot{r} - J_{xz} \\dot{p} - \\left(I_{x} p{\\left (t \\right )} - J_{xz} r{\\left (t \\right )}\\right) q{\\left (t \\right )})\\mathbf{k_{b}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "(I_x*p' - I_y*q*r - J_xz*r' + (I_z*r - J_xz*p)*q)*Body.x + (I_y*q' + (I_x*p - J_xz*r)*r - (I_z*r - J_xz*p)*p)*Body.y + (I_y*p*q + I_z*r' - J_xz*p' - (I_x*p - J_xz*r)*q)*Body.z" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Relaciones cinem\u00e1ticas angulares." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Body.ang_vel_in(Hor)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$(- \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\dot{\\psi} + \\dot{\\phi})\\mathbf{i_{b}} + (\\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\dot{\\psi} + \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\dot{\\theta})\\mathbf{j_{b}} + (- \\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\dot{\\theta} + \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\dot{\\psi})\\mathbf{k_{b}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "(-sin(theta)*psi' + phi')*Body.x + (sin(phi)*cos(theta)*psi' + cos(phi)*theta')*Body.y + (-sin(phi)*theta' + cos(phi)*cos(theta)*psi')*Body.z" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "ang_vel = Body.ang_vel_in(Hor)-(p * Body.x + q * Body.y + r * Body.z)\n", "solve([ang_vel.args[0][0][i] for i in range(3)],[diff(phi),diff(theta),diff(psi)])" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\begin{Bmatrix}\\frac{d}{d t} \\phi{\\left (t \\right )} : p{\\left (t \\right )} + q{\\left (t \\right )} \\sin{\\left (\\phi{\\left (t \\right )} \\right )} \\tan{\\left (\\theta{\\left (t \\right )} \\right )} + r{\\left (t \\right )} \\cos{\\left (\\phi{\\left (t \\right )} \\right )} \\tan{\\left (\\theta{\\left (t \\right )} \\right )}, & \\frac{d}{d t} \\psi{\\left (t \\right )} : \\frac{\\cos{\\left (\\phi{\\left (t \\right )} \\right )}}{\\cos{\\left (\\theta{\\left (t \\right )} \\right )}} \\left(q{\\left (t \\right )} \\tan{\\left (\\phi{\\left (t \\right )} \\right )} + r{\\left (t \\right )}\\right), & \\frac{d}{d t} \\theta{\\left (t \\right )} : q{\\left (t \\right )} \\cos{\\left (\\phi{\\left (t \\right )} \\right )} - r{\\left (t \\right )} \\sin{\\left (\\phi{\\left (t \\right )} \\right )}\\end{Bmatrix}$$" ], "metadata": {}, "output_type": "pyout", "png": "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\n", "prompt_number": 15, "text": [ "\u23a7d d \n", "\u23a8\u2500\u2500(\u03c6(t)): p(t) + q(t)\u22c5sin(\u03c6(t))\u22c5tan(\u03b8(t)) + r(t)\u22c5cos(\u03c6(t))\u22c5tan(\u03b8(t)), \u2500\u2500(\u03c8(t)\n", "\u23a9dt dt \n", "\n", " (q(t)\u22c5tan(\u03c6(t)) + r(t))\u22c5cos(\u03c6(t)) d \n", "): \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500, \u2500\u2500(\u03b8(t)): q(t)\u22c5cos(\u03c6(t)) - r(t)\u22c5sin(\u03c6(t)\n", " cos(\u03b8(t)) dt \n", "\n", " \u23ab\n", ")\u23ac\n", " \u23ad" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }