{"id":4858,"date":"2017-05-06T09:35:36","date_gmt":"2017-05-06T14:35:36","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1001\/?p=4858"},"modified":"2026-04-05T23:23:47","modified_gmt":"2026-04-06T04:23:47","slug":"fracciones-parciales-hs-sympy","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u04\/fracciones-parciales-hs-sympy\/","title":{"rendered":"4.3 H(s) - Fracciones parciales y factor exp(-a*s) 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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"hstransferencia\">1. H(s) - Funci\u00f3n de transferencia<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: Kuo 3.2.2 p78<\/p>\n\n\n\n<p>La funci\u00f3n de transferencia de un sistema lineal invariante con el tiempo se define como la transformada de Laplace de la respuesta al impulso, con todas las condiciones iniciales iguales a cero.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"206\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2023\/09\/SistemaEntradaEstadoCero01.png\" alt=\"Sistema Entrada Estado Cero esquema\" class=\"wp-image-13849\" style=\"width:512px;height:auto\" \/><\/figure>\n\n\n\n<p>Funci\u00f3n de transferencia H(s):<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"113\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/05\/FuncionTransferenciaHs_concepto.png\" alt=\"Funci\u00f3n Transferencia Hs concepto\" class=\"wp-image-20827\" \/><\/figure>\n\n\n\n<p>Suponga que H(s) denota la funci\u00f3n de transferencia de un sistema con una entrada y una salida, con entrada x(t) y salida y(t) y respuesta al impulso h(t). Entonces la funci\u00f3n de transferencia H(s) se define como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">H(s) = \\mathscr{L} [h(t)] = \\frac{P(s)}{Q(s)}<\/span>\n\n\n\n<p>Las propiedades de la funci\u00f3n de transferencia resumidas son:<\/p>\n\n\n\n<p>1. La funci\u00f3n de transferencia est\u00e1 definida solamente para un sistema lineal invariante con el tiempo. No est\u00e1 definida para sistemas no lineales<\/p>\n\n\n\n<p>2. La funci\u00f3n de transferencia entre una variable de entrada y una variable de salida de un sistema est\u00e1 definida como la transformada de Laplace de la respuesta al impulso. Es decir, la funci\u00f3n de transferencia entre un par de variables de entrada y salida es la relaci\u00f3n entre la transformada de Laplace de la salida y la transformada de Laplace de la entrada<\/p>\n\n\n\n<p>3. Todas las condiciones iniciales del sistema son iguales a cero.<\/p>\n\n\n\n<p>4. La funci\u00f3n de transferencia es independiente de la entrada del sistema<\/p>\n\n\n\n<p>5. La funci\u00f3n de transferencia de un sistema en tiempo cont\u00ednuo se expresa solo como una funci\u00f3n de la variable compleja s. No es funci\u00f3n de la variable real, tiempo, o cualquier otra variable que se utilice como la variable independiente.<\/p>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"fraccionesparciales\">2. Fracciones parciales en dominio s<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>:&nbsp;Lathi ejemplo 4 p330, Hsu literal C. p112<\/p>\n\n\n\n<p>Las fracciones parciales facilitan usar la Transformada Inversa de Laplace al presentar la expresi\u00f3n de 's', H(s), X(s) o Y(s) como una suma de t\u00e9rminos m\u00e1s simples. Los t\u00e9rminos de las fracciones parciales permiten analizar los t\u00e9rminos por medio de los polos del denominador. La expresi\u00f3n suma de t\u00e9rminos buscada antes de usar la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u04\/transformada-laplace-tabla\/\" data-type=\"post\" data-id=\"1344\">tabla de Transformada Inversa de Laplace<\/a> tiene la forma:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{P(s)}{Q(s)} = \\frac{ceros(1)}{s - polos(1)}+\\frac{ceros(2)}{s - polos(2)}+\\text{ ... } <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\text{ ... }+\\frac{ceros(n)}{s - polos(n)}+ganancia(s)<\/span>\n\n\n\n<p>Cuando se presentan funciones de transferencia con t\u00e9rminos exponenciales <code>sym.exp(-a*s)<\/code>, las instrucciones para polinomio <code>sym.apart()<\/code> para fracciones parciales <code>sym.factors()<\/code> se encuentran limitadas por tener t\u00e9rminos <code>sym.exp(-a*s)<\/code>. Se propone crear una funci\u00f3n que agrupe los t\u00e9rminos por cada t\u00e9rmino <code>sym.exp(-a*s)<\/code> y aplique a cada grupo fracciones parciales o factores.<\/p>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"polosnorepetidos\">3. Fracciones parciales con Polos reales no repetidos<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Hsu problema 3.17a p137, Lathi ejemplo 4.3a p338, Oppenheim ejemplo 9.9 p671<\/p>\n\n\n\n<p>El ejemplo muestra como separar el sistema mostrado en partes m\u00e1s simples usando fracciones parciales:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{2s+4}{s^2 +4s+3}<\/span>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo- Desarrollo anal\u00edtico con el m\u00e9todo de Heaviside para fracciones parciales<\/h3>\n\n\n\n<p>Las ra\u00edces para el polinomio Q del denominador son -1 y -3, por lo que se crea la expresi\u00f3n general como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s)= 2\\frac{s+2}{(s+1)(s+3)} = \\frac{k_1}{s+1} + \\frac{k_2}{s+3}<\/span>\n\n\n\n<p>Se aplica el m\u00e9todo de \"cubrir\" de Heaviside para encontrar el valor de k<sub>1<\/sub> , consiste en cubrir el t\u00e9rmino (s+1) y evaluar la expresi\u00f3n con s=-1.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1= 2\\frac{s+2}{\\cancel{(s+1)}(s+3)}\\Bigg|_{s=-1 }= 2\\frac{(-1)+2}{((-1)+3)} = 2\\frac{1}{2} = 1<\/span>\n\n\n\n<p>de forma semejante se procede para el valor de k<sub>2<\/sub>,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_2= 2\\frac{s+2}{(s+1)\\cancel{(s+3)}} \\Bigg|_{s=-3 }= 2\\frac{(-3)+2}{((-3)+1)} = 2\\frac{-1}{-2} = 1<\/span>\n\n\n\n<p>teniendo el resultado de las fracciones parciales,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{1}{s+1} + \\frac{1}{s+3}<\/span>\n\n\n\n<p>usando la tabla de transformadas de Laplace<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h(t) = \\Big( e^{-t} + e^{-3t} \\Big) \\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Fracciones parciales con Sympy-Python<\/h3>\n\n\n\n<p>Para la expresi\u00f3n de la funci\u00f3n de transferencia, con <strong>Sympy<\/strong> se crean los polinomios del numerador <strong>Ps<\/strong> y denominador <strong>Qs<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># INGRESO<\/span>\ns = sym.Symbol(<span style=\"color: #008000\">'s'<\/span>)\nPs = 2*s + 4  <span style=\"color: #ff0000\"># 1+0*s cuando es constante<\/span>\nQs = s**2 + 4*s + 3\n\nHs = Ps\/Qs<\/code><\/pre>\n\n\n\n<p>Usar H(s)=P(s)\/Q(s) permite disponer de una sola expresi\u00f3n de 's' y obtener las fracciones parciales con <strong><code>sym.apart()<\/code><\/strong>. En los ejercicios por bloques, las fracciones parciales representan como bloques en paralelo.<\/p>\n\n\n\n<p>Otra forma de expresar H(s) es mediante los factores que usan P_polos y Q_ceros usando la instrucci\u00f3n <code><strong>sym.factors<\/strong>()<\/code>. En los ejercicios por bloques, los factores se representan como bloques en serie.<\/p>\n\n\n\n<p>Las fracciones parciales facilitan obtener la inversa de la transformada de Laplace con <strong>t\u00e9rminos m\u00e1s simples<\/strong> que pueden ser usados con <code>sym.inverse_laplace_transform(term_suma,s,t)<\/code>, o para usar la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u04\/transformada-laplace-tabla\/\" data-type=\"post\" data-id=\"1344\">tabla de Transformadas de Laplace<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>H(s):\n  2\u22c5s + 4   \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2          \ns  + 4\u22c5s + 3\n\n H(s) como fracciones parciales \n  1       1  \n\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\ns + 3   s + 1\n\n H(s) como factores de polos y ceros  \n   2\u22c5(s + 2)   \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(s + 1)\u22c5(s + 3)\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>Algoritmo en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Fracciones parciales de H(s) con Sympy\n# Ps es numerador, Qs es denominador\nimport sympy as sym\n\n# INGRESO\ns = sym.Symbol('s')\nt = sym.Symbol('t', real=True)\n\nPs = 2*s + 4\nQs = s**2 + 4*s + 3\n\n# Ps = 2*s**2+5 \n# Qs = s**2 + 3*s + 2\n\n# Ps = 8*s+10\n# Qs = (s+1)*((s+2)**3)\n\n# Ps = 6*(s+34)\n# Qs = s*(s**2+10*s+34)\n\nHs = Ps\/Qs\n\n# PROCEDIMIENTO\n# fracciones parciales\nHs_fp = sym.apart(Hs,s)\n\n# factores\nHs_fc = sym.factor(Hs,s)\n\n# SALIDA\nprint('H(s):')\nsym.pprint(Hs)\nprint('\\n H(s) como fracciones parciales ')\nsym.pprint(Hs_fp)\nprint('\\n H(s) como factores de polos y ceros  ')\nsym.pprint(Hs_fc)\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"gradosigualespq\">4. Fracciones parciales con grados iguales de P y Q<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi ejemplo 4.3b p338, Hsu ejercicio 3.20 p140, Oppenheim ejemplo 9.36 p716<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{2s^2 +5}{s^2 +3s+2}<\/span>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Desarrollo anal\u00edtico con el m\u00e9todo de Heaviside para fracciones parciales<\/h3>\n\n\n\n<p>Se observa que los grados de P y Q son iguales, por lo que se toma como ganancia el coeficiente de mayor grado en el numerador. Se obtiene la ra\u00edz del denominador Q y se reescribe como<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{2s^2+5}{(s+1)(s+2)} = 2 + \\frac{k_1}{s+1} +\\frac{k_2}{s+2}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1 = \\frac{2s^2+5}{\\cancel{(s+1)}(s+2)} \\Bigg|_{s=-1} = \\frac{2(-1)^2+5}{((-1)+2)} = 7<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_2 = \\frac{2s^2+5}{(s+1)\\cancel{(s+2)}}\\Bigg|_{s=-2} = \\frac{2(-2)^2+5}{((-2)+1)} = -13<\/span>\n\n\n\n<p>obteniendo:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = 2 + \\frac{7}{s+1} -\\frac{13}{s+2}<\/span>\n\n\n\n<p>El cambio al dominio de tiempo se realiza t\u00e9rmino a t\u00e9rmino usando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u04\/transformada-laplace-tabla\/\" data-type=\"post\" data-id=\"1344\">tabla de transformadas de Laplace<\/a><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(t) = 2 \\delta (t) +\\big( 7 e^{-t} -13 e^{-2t} \\big) \\mu (t) <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Desarrollo con Sympy-Python<\/h3>\n\n\n\n<p>Al algoritmo del ejercicio anterior se modifica solo el bloque de ingreso con las expresiones para numerador y denominador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ps = 2*s**2+5 \nQs = s**2 + 3*s + 2\n\nHs = Ps\/Qs<\/code><\/pre>\n\n\n\n<p>con lo que se obtiene el resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>H(s):\n     2      \n  2\u22c5s  + 5  \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2          \ns  + 3\u22c5s + 2\n\n H(s) como fracciones parciales \n      13      7  \n2 - \u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\n    s + 2   s + 1\n\n H(s) como factores de polos y ceros  \n       2       \n    2\u22c5s  + 5   \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(s + 1)\u22c5(s + 2)\n&gt;&gt;&gt; <\/code><\/pre>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"polosrepetidos\">5. Fracciones parciales con ra\u00edces repetidas<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi ejemplo 4.3d p342<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{8s+10}{(s+1)(s+2)^3}<\/span>\n\n\n\n<p>la forma de la expresi\u00f3n para el algoritmo es<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ps = 8*s+10\nQs = (s+1)*((s+2)**3)\n\nHs = Ps\/Qs<\/code><\/pre>\n\n\n\n<p>por lo que el modelo de fracciones parciales es:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{k_1}{s+1}+\\frac{k_2}{(s+2)^3}-\\frac{k_3}{(s+2)^2}-\\frac{k_4}{s+2}<\/span>\n\n\n\n<p>El desarrollo anal\u00edtico se deja como tarea para comprobar sus resultados con el algoritmo. Use el m\u00e9todo de \"cubrir\" de Heaviside para obtener las fracciones parciales.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{2}{s+1}+\\frac{6}{(s+2)^3}-\\frac{2}{(s+2)^2}-\\frac{2}{s+2}<\/span>\n\n\n\n<p>Se usa el ejemplo, para comprobar el algoritmo de las secciones anteriores, obteniendo los resultados siguientes,<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>H(s):\n    8\u22c5s + 10    \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n               3\n(s + 1)\u22c5(s + 2) \n\n H(s) como fracciones parciales \n    2        2          6         2  \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\n  s + 2          2          3   s + 1\n          (s + 2)    (s + 2)         \n\n H(s) como factores de polos y ceros  \n  2\u22c5(4\u22c5s + 5)   \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n               3\n(s + 1)\u22c5(s + 2) \n&gt;&gt;&gt;<\/code><\/pre>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"poloscomplejo\">6. H(s) con Fracciones parciales y polos de tipo complejo<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi ejemplo 4.3c p340<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{6(s+34)}{s(s^2+10s+34)}<\/span>\n\n\n\n<p>la forma de la expresi\u00f3n para el algoritmo es<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ps = 6*(s+34)\nQs = s*(s**2+10*s+34)\n\nHs = Ps\/Qs<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Desarrollo anal\u00edtico<\/h3>\n\n\n\n<p>Se simplifica la expresi\u00f3n de H(s) usando las ra\u00edces reales en las fracciones parciales de la forma:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{6(s+34)}{s(s^2+10s+34)} = \\frac{k_1}{s} + \\frac{As+B}{s^2+10s+34}<\/span>\n\n\n\n<p>usando el m\u00e9todo de Heaviside, se obtiene k<sub>1<\/sub><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1 = \\frac{6(s+34)}{\\cancel{s}(s^2+10s+34)}\\Big|_{s=0} =\\frac{6(0+34)}{(0^2+10(0)+34)} = \\frac{6(34)}{34}=6<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{6(s+34)}{s(s^2+10s+34)} = \\frac{6}{s} + \\frac{As+B}{s^2+10s+34}<\/span>\n\n\n\n<p>se simplifican las fracciones al multiplicar ambos lados por s(s<sup>2<\/sup>+10s+34)<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 6(s+34) = 6(s^2+10s+34) + (As+B)s <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 6s+204 = 6s^2+60s+204 + A s^2+Bs<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 6s+204 = (6+A)s^2+(60+B)s+204<\/span>\n\n\n\n<p>Se puede observar que 6+A=0, por lo que A=-6.<br>Tambi\u00e9n se tiene que 60+B=6, por lo que B=-54<br>quedando la expresi\u00f3n como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{6}{s} + \\frac{-6s-54}{s^2+10s+34}<\/span>\n\n\n\n<p>Observando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u04\/transformada-laplace-tabla\/\" data-type=\"post\" data-id=\"1344\">tabla de transformadas de Laplace<\/a> se compara la expresi\u00f3n con las filas 12c y 12d se usan los par\u00e1metros de:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{As+B}{s^2+2as+c}<\/span>\n\n\n\n<p>A= -6, B=-64, a=5, c = 34<br>y se calculan:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> b = \\sqrt{c-a^2} = \\sqrt{34-(5)^2} = 3 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> r = \\sqrt{\\frac{A^2 c +B^2 -2ABa}{c-a^2}}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> r = \\sqrt{\\frac{(-6)^2 (34) +(-64)^2 -2(-6)(-64)(5)}{(34)-(5)^2}}=10<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\theta = \\tan ^{-1} \\Bigg( \\frac{(-6)(5)-(-64)}{(-6)\\sqrt{34-(5)^2}} \\Bigg) = -0.9272<\/span>\n\n\n\n<p>con lo que se puede escribir la transformada inversa de Laplace para h(t) como<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h(t) = [6+10e^{-5t}\\cos (3t--0.9272)] \\mu (t)<\/span>\n\n\n\n<p>o la otra forma de expresi\u00f3n usando la fila 12d de la tabla<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Desarrollo con Sympy-Python<\/h3>\n\n\n\n<p>Incorporando las instrucciones para identificar si el denominador tiene ra\u00edces complejas, se asignan los valores de los par\u00e1metros necesarios en un diccionario de variables, obteniendo como resultado,<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>H(s):\n    6\u22c5s + 204     \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \u239b 2            \u239e\ns\u22c5\u239ds  + 10\u22c5s + 34\u23a0\n\n H(s) como fracciones parciales \n    6\u22c5(s + 9)      6\n- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\n   2               s\n  s  + 10\u22c5s + 34    \n\n H(s) como factores de polos y ceros  \n    6\u22c5(s + 34)    \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \u239b 2            \u239e\ns\u22c5\u239ds  + 10\u22c5s + 34\u23a0\n&gt;&gt;&gt;<\/code><\/pre>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"retrasotiempo\">7. Con suma de t\u00e9rminos y exponenciales de retraso en tiempo<\/h2>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H(s) = \\frac{s+2}{s-1}+ \\frac{e^{-2s}}{s-2} <\/span>\n\n\n\n<p>la expresi\u00f3n para el algoritmo se escribe como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hs = ((s+2)\/(s-1)) + sym.exp(-2*s)\/(s-2)<\/code><\/pre>\n\n\n\n<p>Para el segundo t\u00e9rmino que tiene un exponencial, no se puede aplicar directamente la instrucci\u00f3n <code>sym.apart(Hs,s)<\/code> al no ser reconocida como tipo polinomio. Para continuar se debe separar el t\u00e9rmino <code>sym.exp()<\/code> del resto de la expresi\u00f3n, y se podr\u00e1 aplicar fracciones parciales a esa parte, para luego volver a poner el t\u00e9rmino.<\/p>\n\n\n\n<p>Para facilitar el desarrollo del algoritmo, se recomienda empezar a analizar una expresi\u00f3n mas simple, como solamente el segundo t\u00e9rmino de la suma.<\/p>\n\n\n\n<p>Implementando una funci\u00f3n para tratar este asunto en la parte de fracciones parciales y en el c\u00e1lculo de polos, se obtiene el resultado,<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>H(s):\n         -2*s\ns + 2   e    \n----- + -----\ns - 1   s - 2\n\n H(s) en fracciones parciales \n             -2*s\n      3     e    \n1 + ----- + -----\n    s - 1   s - 2<\/code><\/pre>\n\n\n\n<p>Al aplicar fracciones parciales se tendr\u00e1n t\u00e9rminos m\u00e1s simples para obtener la Transformada Inversa de Laplace. Separando los t\u00e9rminos con e<sup>(-as)<\/sup>y aplicando fracci\u00f3n parcial al resultado se multiplica por el exponencial. Se deber\u00e1 recordar estas operaciones realizadas cuando se calculan los polos de la expresi\u00f3n donde se agrupan los t\u00e9rminos.<\/p>\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/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=\"algoritmofracciones\">8. Algoritmo - Fracciones Parciales para F(s) con exponencial s o retraso en tiempo<\/h2>\n\n\n\n<p>Se crea una funci\u00f3n para realizar las fracciones parciales agrupadas por t\u00e9rminos exp<sup>(-as)<\/sup> y aplicar a esta expresi\u00f3n separada en factores de suma la transformada de Laplace desde la tabla.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X(s) = \\frac{s+2}{s-1} + \\frac{e^{-2s}}{s-2} <\/span>\n\n\n\n<pre class=\"wp-block-code\"><code>Fs = ((s+2)\/(s-1)) + sym.exp(-2*s)\/(s-2)<\/code><\/pre>\n\n\n\n<p>se aplica a la expresi\u00f3n sin sym.exp()<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X(s) = 1+\\frac{3}{s-1} + \\frac{e^{-2s}}{s-2} <\/span>\n\n\n\n<pre class=\"wp-block-code\"><code> F(s): \n         -2\u22c5s\ns + 2   \u212f    \n\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\ns - 1   s - 2\n\n H(s) como fracciones parciales \n             -2\u22c5s\n      3     \u212f    \n1 + \u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\n    s - 1   s - 2\n\n H(s) como factores de polos y ceros  \n         -2\u22c5s\ns + 2   \u212f    \n\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\ns - 1   s - 2\n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>Algoritmo en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Fracciones parciales separadas por sym.exp(-a*s)\n# Factores de polos y ceros separados por sym.exp(-a*s)\nimport sympy as sym\n\n# INGRESO\nt = sym.Symbol('t', real=True)\ns = sym.Symbol('s')\n\nFs = ((s+2)\/(s-1)) + sym.exp(-2*s)\/(s-2)\n#Fs = (1\/s)*(1-sym.exp(-2*s))\n \n#Hs = sym.exp(s)\/s - 2*sym.exp(-s)\/s + sym.exp(-3*s)\/s\n#Xs = 2*sym.exp(-s)\/s - 2*sym.exp(-3*s)\/s\n#Fs = Hs*Xs\n \n#Fs = -sym.exp(-5*s - 10)\/(3*s + 6) + 4\/(3*s + 6)\n\n#Fs = ((s+2)\/(s-1)) + sym.exp(-2*s)\/(s-2)\n\n#Ps = 6*(s+34)\n#Qs = s*(s**2+10*s+34)\n#Fs = Ps\/Qs\n\n#Fs = (2*s**2+5)\/(s**2+3*s+2)\n#Fs = (2*s+4)\/(s**2+4*s+3)\n\n# PROCEDIMIENTO\ndef apart_s(Fs):\n    '''expande Fs en fracciones parciales\n       considera t\u00e9rminos con sym.exp multiplicados\n    '''\n    # convierte a Sympy si es solo constante\n    Fs = sym.sympify(Fs)\n    \n    # simplifica operaci\u00f3n H(s)*x(s)\n    Fs = sym.expand_power_exp(Fs)\n    Fs = sym.expand(Fs, powe_exp=False)\n    # reagrupa Fs\n    term_sum = sym.Add.make_args(Fs)\n    Fs_0 = 0*s\n    for term_k in term_sum:\n        term_k = sym.simplify(term_k)\n        term_k = sym.expand_power_exp(term_k)\n        Fs_0 = Fs_0 + term_k\n    \n    # tabula sym.exp(-s) en lista_exp\n    lista_exp = list(Fs_0.atoms(sym.exp(-s)))\n    if len(lista_exp)&gt;0: # elimina constantes\n        for k in lista_exp:\n            if not(k.has(s)): # es constante\n                lista_exp.remove(k)\n\n    # separados por lista_exp\n    separados = sym.collect(Fs_0,lista_exp,evaluate=False)\n    \n    # fracciones parciales\n    Fs_fp = 0\n    for k in separados:\n        Fs_k = sym.apart(separados&#x5B;k],s)\n        Fs_fp = Fs_fp + k*Fs_k\n    return(Fs_fp)\n\ndef factor_exp(Fs):\n    '''expande Fs en factores por sym.exp(-a*s)\n       considera t\u00e9rminos con sym.exp multiplicados\n    '''\n    # convierte a Sympy si es solo constante\n    Fs = sym.sympify(Fs)\n    \n    # simplifica operaci\u00f3n H(s)*x(s)\n    Fs = sym.expand_power_exp(Fs)\n    Fs = sym.expand(Fs, powe_exp=False)\n    # reagrupa Fs\n    term_sum = sym.Add.make_args(Fs)\n    Fs_0 = 0*s\n    for term_k in term_sum:\n        term_k = sym.simplify(term_k)\n        term_k = sym.expand_power_exp(term_k)\n        Fs_0 = Fs_0 + term_k\n    \n    # tabula sym.exp(-s) en lista_exp\n    lista_exp = list(Fs_0.atoms(sym.exp(-s)))\n    if len(lista_exp)&gt;0: # elimina constantes\n        for k in lista_exp:\n            if not(k.has(s)): # es constante\n                lista_exp.remove(k)\n\n    # separados por lista_exp\n    separados = sym.collect(Fs_0,lista_exp,evaluate=False)\n    \n    # factores por lista_exp\n    Fs_fc = 0\n    for k in separados:\n        Fs_k = sym.factor(separados&#x5B;k],s)\n        Fs_fc = Fs_fc + k*Fs_k\n    \n    return(Fs_fc)\n\nFs_fp = apart_s(Fs)\nFs_fc = factor_exp(Fs)\n\n# SALIDA\nprint('\\n F(s): ')\nsym.pprint(Fs)\nprint('\\n H(s) como fracciones parciales ')\nsym.pprint(Fs_fp)\nprint('\\n H(s) como factores de polos y ceros  ')\nsym.pprint(Fs_fc)\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=\"#hstransferencia\">H(s)<\/a><\/p>\n\n\n\n<p><a href=\"#fraccionesparciales\">fracciones parciales<\/a><\/p>\n\n\n\n<p><a href=\"#polosnorepetidos\">polos reales no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#gradosigualespq\">grados iguales P y Q<\/a><\/p>\n\n\n\n<p><a href=\"#polosrepetidos\">polos reales repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#poloscomplejo\">polos complejos<\/a><\/p>\n\n\n\n<p><a href=\"#retrasotiempo\">exponencial s \/retraso t<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmofracciones\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>H(s) fracciones parciales polos reales no repetidos grados iguales P y Q polos reales repetidos polos complejos exponencial s \/retraso t algoritmo 1. H(s) - Funci\u00f3n de transferencia Referencia: Kuo 3.2.2 p78 La funci\u00f3n de transferencia de un sistema lineal invariante con el tiempo se define como la transformada de Laplace de la respuesta al [&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-4858","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\/4858","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=4858"}],"version-history":[{"count":10,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4858\/revisions"}],"predecessor-version":[{"id":24015,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4858\/revisions\/24015"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}