{"id":2397,"date":"2017-05-10T10:05:00","date_gmt":"2017-05-10T15:05:00","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1001\/?p=2397"},"modified":"2026-04-06T10:12:12","modified_gmt":"2026-04-06T15:12:12","slug":"laplace-ejercicio-resuelto-yshsxs-sympy","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u04\/laplace-ejercicio-resuelto-yshsxs-sympy\/","title":{"rendered":"4.5 Respuesta Y(s)=ZIR+ZSR con Sympy-Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\" data-type=\"internal\" data-id=\"#analitico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo y gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejercicio\">1. Ejercicio<\/h2>\n\n\n\n<p>Se presenta un ejercicio que integra los temas tratados en la Unidad 4 para el an\u00e1lisis del Sistema con Transformada de Laplace. El algoritmo se muestra como una referencia para adaptar en los ejercicios integradores usando las funciones resumidas en <strong><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/algoritmos-telg1001-py\/\" data-type=\"page\" data-id=\"17852\">telg1001.py<\/a><\/strong> .<\/p>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi Ejemplo 4.12 p361<\/p>\n\n\n\n<p>Resuelva la ecuaci\u00f3n diferencial de segundo orden<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> (D^2 + 5D + 6) y(t) = (D+1) x(t) <\/span>\n\n\n\n<p>para las condiciones iniciales y(0-)=2 y y'(0-)=1, cuando se presenta la entrada<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = e^{-4t} \\mu (t) <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\" data-type=\"internal\" data-id=\"#analitico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo y gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"analitico\">2. Desarrollo anal\u00edtico<\/h2>\n\n\n\n<p>La ecuaci\u00f3n diferencial del sistema, interpretando los operadores D por derivadas se muestra a continuaci\u00f3n.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\delta^2}{\\delta t^2}y(t) + 5\\frac{\\delta}{\\delta t}y(t) + 6y(t) = \\frac{\\delta^2}{\\delta t^2}x(t) + x(t) <\/span>\n\n\n\n<p>La ecuaci\u00f3n se representa en el dominio s de las transformadas de Laplace para usarlas en el algoritmo:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> s^2 Y(s) + 5s Y(s) + 6 Y(s) = s X(s) + X(s) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> (s^2 + 5s + 6)Y(s) = (s+1) X(s) <\/span>\n\n\n\n<p>con lo que se escribe la funci\u00f3n de transferencia H(s) que se ingresa para el an\u00e1lisis del algoritmo.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{X(s)}{Y(s)} = \\frac{s+1}{s^2 + 5s + 6} <\/span>\n\n\n\n<p>Se realizan las fracciones parciales para disponer de t\u00e9rminos suma m\u00e1s simples:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{2}{s+3} - \\frac{1}{s+2} <\/span>\n\n\n\n<p>Con lo que se observa que se disponen de dos polos reales no repetidos en -2 y -3 en el lado izquierdo del plano, adem\u00e1s de un cero en -1. Por lo que el sistema se considera estable.<\/p>\n\n\n\n<p>Se determina la ZIR entrada cero, con las condiciones iniciales dadas, se obtiene como t\u00e9rmino cero:<\/p>\n\n\n\n<p class=\"has-text-align-center\">2s + 11<\/p>\n\n\n\n<p>Al aplicar ZIR se obtiene en el dominio s:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> ZIR(s) = \\frac{-5}{s+3} + \\frac{7}{s+2} <\/span>\n\n\n\n<p>Al aplicar ZSR se obtiene en el dominio s:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> ZSR(s) = -\\frac{3}{2}\\frac{1}{s+4} + \\frac{2}{s+3} - \\frac{1}{2}\\frac{1}{s+2} <\/span>\n\n\n\n<p>Se deben sumar las respuestas ZIR+ZSR<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Y(s) = -\\frac{3}{2}\\frac{1}{s+4} - \\frac{3}{s+3} + \\frac{13}{2}\\frac{1}{s+2} <\/span>\n\n\n\n<p>Para el caso de x(t) se usa la transformada de Laplace con el algoritmo para obtener X(s), mostrando que se puede realizar directamente para t\u00e9rminos simples. Si la expresi\u00f3n es mas elaborada se usar\u00eda las funciones realizadas para f(t) con Sympy-Python<\/p>\n\n\n\n<p>Con el algoritmo se obtienen los siguientes resultados, con lo que se puede analizar la estabilidad del sistema usando la gr\u00e1fica de polos. No se observan polos en el lado derecho del plano RHP, por lo que el sistema es asint\u00f3ticamente estable, BIBO-estable.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"445\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/LTIC_Laplace_AlgoritmoIntegrador01_polos.png\" alt=\"LTI C Laplace Algoritmo Integrador 01 polos\" class=\"wp-image-19971\" \/><\/figure>\n\n\n\n<p>la gr\u00e1fica de H(s) junto a los polos:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"451\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/LTIC_Laplace_AlgoritmoIntegrador01_polos_Hs.png\" alt=\"LTI C Laplace Algoritmo Integrador 01 polos Hs\" class=\"wp-image-19972\" \/><\/figure>\n\n\n\n<p>la gr\u00e1fica de h(t) como respuesta al impulso,<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"442\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/LTIC_Laplace_AlgoritmoIntegrador01_ht.png\" alt=\"LTI C Laplace Algoritmo Integrador 01 ht\" class=\"wp-image-19973\" \/><\/figure>\n\n\n\n<p>la gr\u00e1fica de la se\u00f1al de entrada x(t) y la respuesta y(t) es:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"454\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/LTIC_Laplace_AlgoritmoIntegrador01_xh_y.png\" alt=\"LTI C Laplace Algoritmo Integrador 01 xh y\" class=\"wp-image-19974\" \/><\/figure>\n\n\n\n<p>Las expresiones para Y(s), H(s), an\u00e1lisis de estabilidad que entrega el algoritmo son:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> H(s) = P(s)\/Q(s):\n   s + 1    \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2          \ns  + 5*s + 6\n\nH(s) en factores\n     s + 1     \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(s + 2)\u22c5(s + 3)\n\n H_fp(s) en fracciones parciales\n  2       1  \n\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\ns + 3   s + 2\n\n h(t) :\n\/   -2*t      -3*t\\             \n\\- e     + 2*e    \/*Heaviside(t)\n\npolosceros:\nQ_polos : {-2: 1, -3: 1}\nP_ceros : {-1: 1}\n\nEstabilidad de H(s):\n n_polos_real : 2\n n_polos_imag : 0\n enRHP : 0\n unicos : 0\n repetidos : 0\n asintota : estable\n\n X(s): \n  1  \n-----\ns + 4\n\nRespuesta entrada cero ZIR H(s) y condiciones iniciales\nterm_cero : 2*s + 11\nZIR :\n    5       7  \n- ----- + -----\n  s + 3   s + 2\nyt_ZIR :\n\/   -2*t      -3*t\\             \n\\7*e     - 5*e    \/*Heaviside(t)\n\n ZSR respuesta estado cero:\nZSR :\n      3         2         1    \n- --------- + ----- - ---------\n  2*(s + 4)   s + 3   2*(s + 2)\nyt_ZSR :\n\/   -2*t                -4*t\\             \n|  e          -3*t   3*e    |             \n|- ----- + 2*e     - -------|*Heaviside(t)\n\\    2                  2   \/             \n\n Y(s)_total = ZIR + ZSR:\n      3         3         13   \n- --------- - ----- + ---------\n  2*(s + 4)   s + 3   2*(s + 2)\n\n y(t)_total = ZIR + ZSR:\n\/    -2*t                -4*t\\             \n|13*e          -3*t   3*e    |             \n|-------- - 3*e     - -------|*Heaviside(t)\n\\   2                    2   \/             \n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>Con los datos de H(s) y H(s) con fracciones parciales, se presentan dos formas de realizar el diagrama de bloques. El primer diagrama corresponde a H(s), mientras qu el segundo corresponde a la interpretaci\u00f3n de las fracciones parciales.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"581\" height=\"511\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/LTIC_Laplace_RespuestaTotal01Bloques.png\" alt=\"LTI C Laplace Respuesta Total 01 Bloques\" class=\"wp-image-19975\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\" data-type=\"internal\" data-id=\"#analitico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo y gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo\">3. Algoritmo en Python<\/h2>\n\n\n\n<p>Usando los bloques desarrollados en la\u00a0<span class=\"collapsing categories expand\"><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/ss-unidades\/#unidad4\">Unidad 4 Sistemas LTI \u2013 Laplace<\/a><\/span>\u00a0 y las funciones resumidas como <strong><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/algoritmos-telg1001-py\/\" data-type=\"page\" data-id=\"17852\">telg1001.py<\/a><\/strong> que pueden ser usados en cada pregunta, se agrupan y tiene como resultado:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Y(s) Respuesta total con entada cero y estado cero\n# Qs Y(s) = Ps X(s) ; H(s)=Ps\/Qs\n# https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/ss-unidades\/#unidad4\nimport sympy as sym\nimport matplotlib.pyplot as plt\nimport telg1001 as ss\n \n# INGRESO\ns = sym.Symbol('s')\nt = sym.Symbol('t', real=True)\nd = sym.DiracDelta(t)\nu = sym.Heaviside(t)\n \n# H(s) respuesta impulso\nPs = s+1\nQs = s**2 + 5*s + 6\nHs = Ps\/Qs\n#Hs = 1+0*s cuando es constante\n \n# X(s) Se\u00f1al de entrada\nxt = sym.exp(-4*t)*u\n \n# condiciones iniciales, &#x5B;y'(0),y(0)] orden descendente\nt0 = 0\ncond_inicio = &#x5B;1, 2] # estado cero no se usan\n \n# Grafica, intervalo tiempo &#x5B;t_a,t_b]\nt_a = -1 ; t_b = 10\nmuestras = 101  # 51 resolucion grafica\n \n# PROCEDIMIENTO\nHs_fp = ss.apart_s(Hs) # fracciones parciales\nHs_Qs2 = ss.Q_cuad_s_parametros(Hs_fp)\nHs_factor = ss.factor_exp(Hs) # considera exponenciales\n \npolosceros = ss.busca_polosceros(Hs)\nQ_polos = polosceros&#x5B;'Q_polos']\nP_ceros = polosceros&#x5B;'P_ceros']\n \nestable = ss.estabilidad_asintotica_s(Q_polos)\n \n# H(t) respuesta al impulso\nht = 0*s\nterm_suma = sym.Add.make_args(Hs)\nfor term_k in term_suma:\n    ht_k = sym.inverse_laplace_transform(term_k,s,t)\n    # simplifica log(exp()) ej: e**(-2s)\/(s**2)\n    if ht_k.has(sym.log):\n        ht_k = sym.simplify(ht_k,inverse=True)\n    ht  = ht + ht_k\nlista_escalon = ht.atoms(sym.Heaviside)\nht = sym.expand(ht,t) # terminos suma\nht = sym.collect(ht,lista_escalon)\n \n# PROCEDIMIENTO Respuesta ZIR, ZSR\nXs = ss.laplace_transform_suma(xt)\n \n# ZIR_s respuesta entrada cero de s\nsol_ZIR = ss.respuesta_ZIR_s(Hs,cond_inicio)\nZIR = sol_ZIR&#x5B;'ZIR']\nyt_ZIR = sol_ZIR&#x5B;'yt_ZIR']\n \n# ZSR respuesta estado cero, Y(s) a entrada X(s)\nsol_ZSR = ss.respuesta_ZSR_s(Hs,Xs)\nZSR = sol_ZSR&#x5B;'ZSR']\nyt_ZSR = sol_ZSR&#x5B;'yt_ZSR']\n \n# Respuesta total Y(s) y y(t)\nYs = ZIR + ZSR\nYs = ss.apart_s(Ys)\nyt = yt_ZIR + yt_ZSR\nlista_escalon = yt.atoms(sym.Heaviside)\nyt = sym.collect(yt,lista_escalon)\n \n# SALIDA\nprint(' H(s) = P(s)\/Q(s):')\nsym.pprint(Hs)\nprint(' H(s) en factores')\nsym.pprint(Hs_factor)\nprint(' H_fp(s) en fracciones parciales')\nsym.pprint(Hs_fp)\nif len(Hs_Qs2)&gt;0:\n    print('\\nH(s) par\u00e1metros cuadraticos:')\n    ss.print_resultado_dict(Hs_Qs2)\n \nprint('\\n h(t) :')\nsym.pprint(ht)\n \nprint('\\npolosceros:')\nss.print_resultado_dict(polosceros)\n \nprint('\\nEstabilidad de H(s):')\nfor k in estable:\n    print('',k,':',estable&#x5B;k])\n \nprint('\\n X(s): ')\nsym.pprint(Xs)\nprint('\\nRespuesta entrada cero ZIR H(s) y condiciones iniciales')\n \nif not(sol_ZIR == sym.nan): # existe resultado\n    ss.print_resultado_dict(sol_ZIR)\nelse:\n    print(' insuficientes condiciones iniciales')\n    print(' revisar los valores de cond_inicio&#x5B;]')\n \nprint('\\n ZSR respuesta estado cero:')\nss.print_resultado_dict(sol_ZSR)\n \nprint('\\n Y(s)_total = ZIR + ZSR:')\nsym.pprint(Ys)\nprint('\\n y(t)_total = ZIR + ZSR:')\nsym.pprint(yt)\n \n# Graficas polos, H(s), h(t) --------\netiq ='H' # X,H,Y\nfig_polos   = ss.graficar_Fs(Hs,Q_polos,P_ceros,\n                             f_nombre=etiq,solopolos=True)\nfig_polosHs = ss.graficar_Fs(Hs,Q_polos,P_ceros,\n                             muestras,f_nombre=etiq)\nfig_ht = ss.graficar_ft(ht,t_a,t_b,muestras,\n                        f_nombre=etiq.lower())\n# GRAFICAS y(t),x(t),h(t) ---------------------\nfig_ft = ss.graficar_xh_y(xt,ht,yt,t_a,t_b,muestras)\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#desarrollo\"><a href=\"#analitico\" data-type=\"internal\" data-id=\"#analitico\">anal\u00edtico<\/a><\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo y gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio anal\u00edtico algoritmo y gr\u00e1fica 1. Ejercicio Se presenta un ejercicio que integra los temas tratados en la Unidad 4 para el an\u00e1lisis del Sistema con Transformada de Laplace. El algoritmo se muestra como una referencia para adaptar en los ejercicios integradores usando las funciones resumidas en telg1001.py . Referencia: Lathi Ejemplo 4.12 p361 Resuelva [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-ss-unidades","format":"standard","meta":{"footnotes":""},"categories":[174],"tags":[],"class_list":["post-2397","post","type-post","status-publish","format-standard","hentry","category-ss-u04"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=2397"}],"version-history":[{"count":23,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2397\/revisions"}],"predecessor-version":[{"id":24083,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2397\/revisions\/24083"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=2397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=2397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=2397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}