def test_RC_ivp(self): """Lcapy: check RC IVP""" a = Circuit(""" C 1 0 C v0 R 1 0""") self.assertEqual(a.is_ivp, True, "Initial value problem incorrect") self.assertEqual(a.R.I, -a.C.I, "R + C current different") self.assertEqual(a.R.V, a.C.V, "R + C voltage different") self.assertEqual(a.C.I(s), sympify('-v0 / (s * R + 1 / C)'), "C current wrong")
def test_RL_ivp(self): """Lcapy: check RL IVP""" a = Circuit(""" L 1 0 L i0 R 1 0""") self.assertEqual(a.is_ivp, True, "Initial value problem incorrect") # Note, a positive current through an inductor is from the # positive node to the negative node. self.assertEqual(a.R.I, -a.L.I, "R + L current different") self.assertEqual(a.R.V, a.L.V, "R + L voltage different") self.assertEqual(a.L.I(s), sympify('i0 / (s + R / L)'), "L current wrong")
from lcapy import s, sympify, j, sqrt zeta = sympify('zeta_', real=True) omega0 = sympify('omega0', real=True) p1a = -omega0 p1b = -omega0 H = p1a * p1b / ((s - p1a) * (s - p1b)) G = H / s #g = G.partfrac().inverse_laplace(causal=True).simplify() #h = H.partfrac().inverse_laplace(causal=True).simplify() g = G.inverse_laplace(causal=True) h = H.inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace('^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j a = sympify('alpha') tau = sympify('tau') H = (s + 1 / tau) / (s + 1 / (a * tau)) / a G = H / s g = G.inverse_laplace(causal=True) h = H.inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j a1 = sympify('alpha_1') b1 = sympify('beta_1') o1 = sympify('omega_1') H = (a1**2 + o1**2) * (s + b1) / ((s + a1 + j * o1) * (s + a1 - j * o1)) / b1 G = H / s g = G.partfrac().inverse_laplace(causal=True).simplify() h = H.partfrac().inverse_laplace(causal=True).simplify() def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j a = sympify('alpha') b = sympify('beta_') H = (s + b) / (s + a) G = H / s g = G.inverse_laplace(causal=True) h = H.inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace('^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j a1 = sympify('alpha_1') o1 = sympify('omega_1') H = 2 * a1 * s / ((s + a1 + j * o1) * (s + a1 - j * o1)) G = H / s g = G.partfrac().inverse_laplace(causal=True).simplify() h = H.partfrac().inverse_laplace(causal=True).simplify() def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j a = sympify('alpha') H = a / (s + a) G = H / s g = G.inverse_laplace(causal=True) h = H.inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j, sqrt a1 = sympify('alpha_1', real=True) a2 = sympify('alpha_2', real=True) H = (s**2 + a1 * a2) / ((s + a1) * (s + a2)) G = H / s g = G.partfrac().inverse_laplace(causal=True) h = H.partfrac().inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace('^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j, sqrt zeta = sympify('zeta_', real=True) omega0 = sympify('omega0', real=True) p1a = -zeta * omega0 + j * omega0 * sqrt(1 - zeta**2) p1b = -zeta * omega0 - j * omega0 * sqrt(1 - zeta**2) alpha1 = sympify('alpha_1', real=True) omega1 = sympify('omega_1', real=True) p1a = -alpha1 + j * omega1 p1b = -alpha1 - j * omega1 H = p1a * p1b / ((s - p1a) * (s - p1b)) G = H / s g = G.partfrac().inverse_laplace(causal=True) h = H.partfrac().inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)').replace('/', ' / ') return s print(topy(g))
from lcapy import s, sympify, j a1 = sympify('alpha') b1 = sympify('beta_') H = a1 * (s + b1) / (b1 * (s + a1)) G = H / s g = G.partfrac().inverse_laplace(causal=True) h = H.partfrac().inverse_laplace(causal=True) def topy(expr): s = str(expr) s = s.replace('**', '^').replace('_', '').replace('*', ' * ').replace( '^', '**').replace('Heaviside(t)', '(t >= 0)') return s print(topy(g)) print(topy(h))
from lcapy import s, sympify, j alpha1 = sympify('alpha_1') omega1 = sympify('omega_1') alpha2 = sympify('alpha_2') s1a = alpha1 + j * omega1 s1b = alpha1 - j * omega1 s2 = alpha2 H = 1 / ((s - s1a) * (s - s1b) * (s - s2)) h = H.inverse_laplace()