""" Matemática para ingeniería electromecánica @author: Martín A. Alarcón Unidad N°2: Transformada de Laplace """ import sympy as sym #Libreria de Python para matemática simbólica t = sym.Symbol('t', real=True) #Variable temporal s = sym.Symbol('s') #Variable compleja a = sym.Symbol('a', real=True) #Constante u = sym.Heaviside(t) #Función escalon unitario u1 = sym.Heaviside(t-1) #Función escalon unitario desplazado """ Transforma de Laplace """ #Diferentes expresiones de f(t) #ft = sym.exp(-a*t)*u #Función en el dominio temporal a calcular su transformada #ft = sym.exp(-2*t)*u + sym.exp(-t)*sym.cos(3*t)*u #ft=t ft=(t**2)*sym.sin(t) #ft=t*sym.exp(-2*t)*sym.sin(t) #ft=(sym.exp(-2*t)-sym.exp(-3*t))/t Fs_L = sym.laplace_transform(ft,t,s) #Se calcula la TL Fs = sym.apart(Fs_L[0],s) # solo expresion print('\n f(t): Función en el dominio temporal (tiempo continuo)') sym.pprint(ft) print('\n F(s): Función en el dominio complejo o transformado') sym.pprint(Fs) """ Transformada inversa de Laplace """ Fsi = s/(s**2+3*s+2) #Función en el dominio transformado para calcular f(t) #Fsi = (6*s-4)/(s**2-4*s+20) #Fsi = (3*s+7)/(s**2-2*s-3) # convierte a Sympy si es solo constante Fsi = sym.sympify(Fsi) # separa exponenciales constantes Fsi = sym.expand_power_exp(Fsi) Fsi = sym.expand(Fsi,s) # terminos suma # Fracciones parciales if not(Fsi.has(sym.exp)): Fsi = sym.apart(Fsi,s) fti = sym.inverse_laplace_transform(Fsi,s,t) lista_escalon = fti.atoms(sym.Heaviside) fti = sym.expand(fti,t) # terminos suma fti = sym.collect(fti,lista_escalon) print('\n F(s)i: Función para calcular la inversa: f(t)') sym.pprint(Fsi) print('\n f(t)i: Función en el dominio temp. del cálculo de la inversa de Laplace') sym.pprint(fti) """ Método de fracciones parciales simples """ Ps = 2*s + 4 #Numerador de F(s) Qs = s**2 + 4*s + 3 #Denominador de F(s) #Ejemplo 1 #Ps=1 #Qs=(s+3)*(s-2) #Ejemplo 2 #Ps=s+1 #Qs=s**3+s**2-6*s #Ejemplo 3 #Ps=s**2+2*s+3Qs=(s+1)**3 #Ejemplo 4 #Ps=s+2 #Qs=s**5-2*s**4+s**3 Hs = Ps/Qs Hs_fp = sym.apart(Hs,s) #Fracciones simples Hs_fc = sym.factor(Hs,s) #Factores # SALIDA print('H(s): Función (cociente de polinomios en s) para hallar fracciones simples') sym.pprint(Hs) print('\n H(s) como fracciones parciales ') sym.pprint(Hs_fp) print('\n H(s) como factores de polos y ceros ') sym.pprint(Hs_fc)