DSI Academy
Todos los artículos
circuitos electricos y ecuaciones diferenciales

Programa para simular circuitos electricos y MATHEMATICA

4 de marzo de 2014 · Actualizado: 10 de septiembre de 2023

Programa para simular circuitos electricos. Software de simulación:  MATHEMATICA. Aplicaciones de Ecuaciones Diferenciales en Circuitos Eléctricos

Un circuito RLC combina resistencia, inductancia y capacitancia: su corriente puede oscilar o amortiguarse según los valores. Aquí lo simulamos con Mathematica y te dejo el equivalente en Python (gratis) que integra la ecuación de 2º orden, para que lo compruebes sin pagar licencia. Con los datos del ejercicio ($ R = 50\,\Omega$, $ L = 0.1\,H$, $ C = 5\times10^{-4}\,F$, $ E(t) = 110\,\mathrm{sen}\,377t$) verás la corriente transitoria extinguirse y quedar la estacionaria de 60 Hz.

Con esto podrás comprobar todos tus ejercicios resueltos de circuitos eléctricos RLC en serie, con lo que podrás aumentar tu confianza en tus resultados.

El código aquí utilizado está pensado para servirte en la solución de cualquier problema que involucre una ecuación diferencial lineal de 2º orden no homogénea de coeficientes constantes, así como en cualquier problema de Circuitos eléctricos RLC simples conectados en serie.

El modelado de un circuito eléctrico proviene de la aplicación básica de las leyes de Kirchoff como lo vimos en el artículo Circuitos Eléctricos y Ecuaciones Diferenciales, así como de conocer las relaciones entre los diferentes componentes del mismo al variar en el tiempo, las más básicas se pueden ver en la Tabla 1, del artículo citado.

Comenzamos retomando el ejemplo visto en el artículo: Circuitos Eléctricos y Ecuaciones Diferenciales, el cual es descrito en la Figura 1.

circuito electrico mixto
Figura 1. Circuito Eléctrico RLC conectado en serie.

El código en MATHEMATICA paso a paso es:

Datos:

Clear["Global`*"]
es = 110 (*Volts*)
frec = 60 (*Hertz*)
velAngular = Round[2*Pi*frec, 1] // N;
volE[t_] = es*Sin[velAngular t];
capac = 500 *10^-6(*micro faradios*)// N
lind = 100 *10^-3(*mH*)// N
resist = 50(*ohms*)// N

Luego modelamos el circuito según Kirchoff (ver artículo: Circuitos Eléctricos y Ecuaciones Diferenciales), el cual nos da una Ecuación Diferencial Lineal de 2º orden no homogénea:

\begin{equation*} L \frac{d^2 {I}}{d{t}^2} +{R} \frac{d{I}}{d{t}} + \frac{1}{C} {I}= E' ( t) \end{equation*} (1)

La cual modelamos en MATHEMATICA como sigue:

eq0 = lind*itr''[t] + resist*itr'[t] + (1/capac)*itr[t] == volE'[t];

La solución buscada es (ver el artículo, Circuitos Eléctricos y Ecuaciones Diferenciales):

\begin{equation*} {I}={I}_{{tr}} +{I}_{{ps}} \end{equation*} (2)

La cual se obtiene resolviendo los sistemas: Homogéneo Asociado y no Homogéneo.

En MATHEMATICA dichos sistemas se resuelven con los siguientes códigos.

Programa para simular circuitos electricos. Solución del Sistema Homogéneo asociado mediante el método para ecuaciones homogéneas con coeficientes constantes

eq1 = lind*itr''[t] + resist*itr'[t] + (1/capac)*itr[t] == 0;
eqSh = DSolve[eq1, itr[t], t] // Expand

El resultado obtenido es:

{itr[t] -> 0. + E^(-456.155 t) C[1] + E^(-43.8447 t) C[2]}}

Donde, itr[t] es la corriente transitória

El cual representa la solución:

\begin{equation*} {I}_{{tr}} = C_1 e^{- 43.8447 t} + C_2 e^{- 456.155 t} \end{equation*} (3)

Ahora, para encontrar la corriente periódica estacionaria, resolvemos el sistema no homogéneo.

Programa para simular circuitos electricos. Solución del sistema no homogéneo mediante el método de coeficientes indeterminados

eq0 = 0.1*ips''[t] + 50*ips'[t] + 2000*ips[t] == volE'[t];

OJO: Los coeficientes numéricos (en vez de las variables que utilizamos como coeficientes en el apartado de datos y en las definiciones de las primeras 2 ecuaciones escritas en MATHEAMTICA), son simplemente el resultado de aplicar los valores descritos en el apartado de datos a la ecuación  (1).  :-)

  1. Primero encontramos el conjunto fundamental de soluciones para la forma ($A*Sin(\omega t)$, el porqué de este paso se describe en el artículo: Circuitos Eléctricos y Ecuaciones Diferenciales), que según el método de coeficientes indeterminados, es:
\begin{equation*} {I}_{{ps}} = A \cos 377 t + B {sen} 377 t \end{equation*} (4)

y en MATHEMATICA es:

ips[t_] = A*Cos[377*t] + B*Sin[377*t]

2. Ahora, según el método de los coeficientes indeterminados, derivamos la ecuación anterior, que representa el conjunto fundamental de soluciones y lo sustituimos en la ecuación (1), para encontrar el sistema de ecuaciones que nos permita, a su vez, encontrar los coeficientes indeterminados. Dicho sistema de ecuaciones lo encontramos con MATHEMATICA con el siguiente código:

eq0 = 0.1*ips''[t] + 50*ips'[t] + 2000*ips[t] == volE'[t] // N // Simplify

Resultando:

(-41470. - 12212.9 A + 18850. B) Cos[377. t] + (-18850. A - 12212.9 B) Sin[377. t] == 0

Lo que implica

$( - 12212.9 A + 18850 B) \cos 377 t + ( - 12212.9 B - 18850 A) {sen} 377 t = ...$

$ = 41470 \cos 377 t + 0 {sen} 377 t$

Ecuación que al igualar sus miembros, se obtiene el sistema de ecuaciones algebraicas que necesitamos resolver:

\begin{eqnarray*} \\ - 12212.9 A + 18850 B & = & 41470 \\ - 12212.9 B - 18850 A & = & 0 \\ \end{eqnarray*}

3. Por último resolvemos el sistema de ecuaciones algebraicas resultantes de la ecuación anterior, para encontrar los coeficientes indeterminados. Para esto, utilizamos en MATHEMATICA el siguiente código:

cvals = Solve[-12212.9*A + 18850*B == 41470 && -12212.9*B - 18850*A ==0]

Resultando:

{{A -> -1.00395, B -> 1.54954}}

Por lo que la solución particular buscada es:

\begin{equation*} {I}_{{ps}} = - 1.00395 \cos 377 t + 1.54954 {sen} 377 t \end{equation*} (5)

Para convertir la función resultante en una función únicamente representada por seno (como típicamente ocurre para el voltaje suministrado a un circuito de corriente alterna), utilizamos el conocimiento de que:

\begin{eqnarray*} A \cos {\omega}t + B {sen} {\omega}t = C {sen} ( {\omega}t -{\delta}) \end{eqnarray*} (6)

Ecuación que está marcada como la número (23) del artículo: Circuitos y Ecuaciones Diferenciales, donde se explica su origen.

Además vimos que:

\begin{equation*} C = \sqrt{A^2 + B^2} \end{equation*} (7)
A = -1.00394772191131;
B = 1.5495430698710537;
c = Sqrt[A^2 + B^2]
alpha = ArcTan[A/B]

Por lo que, la solución buscada es:

\begin{equation*} {I}_{{ps}} = 1.84635 \cos ( 377 t - 0.995899) \end{equation*} (8)
ips[t] /. cvals[[1]]
itot[t_] = C1*Exp[-456.15529 t] + C2*Exp[-43.8447 t] - 1.00394772191131 Cos[377 t] + 1.5495430698710537 Sin[377 t]

o escrito en forma convencional:

\begin{equation*} {I}_{{tot}} = C_1 e^{- 43.8447 t} + C_2 e^{- 456.155 t}+1.84635 \cos ( 377 t - 0.995899) \end{equation*} (9)

Por último, para encontrar los valores de $C_{1}$ y $C_{2}$, derivamos esta última ecuación (9) y la sustituimos en la ecuación (1), considerando los valores iniciales para este ejercicio, los cuales según el planteamiento del problema descrito en el artículo: Circuitos Eléctricos y Ecuaciones Diferenciales, son:

$I(0)=0$

y de: $Q(0)=0$ y $LI^{'}\left ( 0 \right )+RI\left ( 0 \right )+\frac{1}{C}Q\left ( 0 \right )=E\left ( 0 \right )$, obtenemos que:

$I^{'}(0)=0$

para de nuevo obtener un sistema de dos ecuaciones con dos incógnitas que nos lleve a poder despejar los valores de  $C_{1}$ y $C_{2}$.

Para esto, en MATHEMATICA procedemos de la siguiente manera:

e1 = itot[t]
e2 = itot'[t]
e1C = Evaluate[e1 /. t -> 0]
e2C = Evaluate[e2 /. t -> 0]
stot = Solve[e1C == 0 && e2C == 0]

El resultado obtenido es:

{{C1 -> 1.31008, C2 -> -0.306133}}

Por lo que el resultado final es:

La corriente total del Circuito es:

\begin{equation*} {I}_{{tot}} = 1.31008 e^{- 43.8447 t} - 0.306133 e^{- 456.155 t}+1.84635 \cos ( 377 t - 0.995899) \end{equation*}

El código de MATHEMATICA para graficar el Voltaje de Suministro($E(t)=E_{0} Sen(\omega t)$) y La Corriente resultante ($Itot(t)=I_{tr}+I_{ps} = I_{0}Sin(\omega t)$), es:

Clear["Global`*"]
VolE[t_] = 5*Sin[377 t];
CorrI[t_] = 3*Cos[377 t - 0.574897];
pE = Plot[VolE[t], {t, 0, Pi/80}, PlotStyle -> {Red}];
pI = Plot[CorrI[t], {t, -0.00259, Pi/80}, PlotStyle -> {Blue}];
Plot[{VolE[t], CorrI[t]}, {t, 0, Pi/80}, PlotStyle -> {Red, Blue},AxesLabel -> {t, {"I0","E0"}}, Ticks -> {}, {}}]
Show[pE, pI, PlotRange -> {{-0.004, Pi/80}, {-5, 6}},AxesLabel -> {t, {"I0","E"}}, Ticks -> {{}, {}}]

NOTA: es posible que el cortar y pegar los códigos de MATHEMATICA se omitan algunos paréntesis o sea necesario arreglar espacios que se generar entre los argumentos de los comandos; es por eso que lo más recomendable es teclear (letra por letra) los códigos.


Ecuaciones Diferenciales Aplicaciones e IA

¿Encontraste la información que buscabas?

Así, al desarrollar tu intuición y confianza cuando estés estudiando ecuaciones diferenciales, obtendrás cada vez mejores resultados, más rápidos y más fácilmente. Para esto necesitas preparar tu mente, por eso te invito a leer el artículo La técnica perfecta para aprender ecuaciones diferenciales, da click aquí, y practicar con varios ejercicios, de manera que luego, al estudiar los conceptos a fondo tengas toda la información necesaria y verás como todo se aclara, pues tu mente entenderá con facilidad los conceptos más abstractos.

Contáctame

Simúlalo también en Python (gratis, sin Mathematica)

Mathematica es de pago; este código en Python (numpy + scipy + matplotlib, gratis) integra numéricamente la ecuación del circuito RLC, $ 0.1\,i'' + 50\,i' + 2000\,i = 41470\cos(377t)$, y comprueba la amplitud de la corriente estacionaria y las raíces características.

import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt

# Datos del circuito RLC en serie (los mismos del ejercicio)
R = 50.0          # resistencia [ohm]
L = 0.1           # inductancia [henry]
C = 5e-4          # capacitancia [farad]
E0 = 110.0        # voltaje de la fuente [volt]
w = 2 * np.pi * 60   # frecuencia angular [rad/s]  (~377)

# Ecuacion del circuito:  L*i'' + R*i' + (1/C)*i = w*E0*cos(w t)
def rlc(t, y):
    i, di = y
    return [di, (w * E0 * np.cos(w * t) - R * di - (1.0 / C) * i) / L]

sol = solve_ivp(rlc, [0, 0.2], [0.0, 0.0], dense_output=True, max_step=1e-4, rtol=1e-8)
t = np.linspace(0, 0.2, 4000); i = sol.sol(t)[0]

plt.figure(figsize=(8, 4)); plt.plot(t, i)
plt.xlabel("t [s]"); plt.ylabel("i(t) [A]"); plt.title("Corriente i(t) en el circuito RLC (110 V, 60 Hz)")
plt.grid(True, alpha=0.3); plt.tight_layout(); plt.show()

estable = i[t > 0.15]
print(f"Amplitud estacionaria ~ {(estable.max() - estable.min()) / 2:.3f} A")
print(f"Raices caracteristicas: {np.round(np.roots([L, R, 1 / C]), 2)}")

Tras el arranque, la parte transitoria (raíces $ -43.8$ y $ -456.2$) se extingue y queda la corriente estacionaria de amplitud $ \approx 1.85\,A$. Cambia $ R$, $ L$ o $ C$ y verás el circuito pasar de sobreamortiguado a oscilatorio. Mismo resultado que Mathematica, gratis.

Preguntas frecuentes

¿Necesito Mathematica para simular un circuito RLC?

No. Python con numpy, scipy y matplotlib (gratis) integra la misma ecuación de 2º orden y reproduce la corriente i(t) del circuito RLC en serie.

¿El circuito RLC oscila o se amortigua?

Depende de las raíces de la ecuación auxiliar. Aquí son reales y negativas (−43.8 y −456.2): es sobreamortiguado, sin oscilación libre; solo queda la oscilación forzada de 60 Hz.

¿Cuál es la amplitud de la corriente estacionaria?

Aproximadamente 1.85 A, valor que coincide tanto en la solución analítica como en la simulación numérica en Python.

¿El resultado de Python coincide con el de Mathematica?

Sí: ambos resuelven L·i'' + R·i' + (1/C)·i = E'(t), así que la corriente i(t) es la misma.

Te invito a que me contactes aquí para cualquier sugerencia sobre la página y si tienes una duda en particular sobre el tema tratado, por favor, deja tu comentario al final de esta página. Que estés bien. ;-)

15 comentarios de la comunidad

Preguntas y aportes reales de lectores a lo largo de los años. Se conservan tal como se publicaron originalmente.

  • hector5 de agosto de 2014

    En si, que representan las lineas, roja y azul en la grafica?

    • Manuel Alejandro Vivas Riverol6 de agosto de 2014

      Hola Hector Gracias por tu interés Las graficas Roja y Azul Representan al defasamiento entre el voltaje y la corriente para el circuito analizado en este problema. Te dejo una gráfica mas clara: Si quieres ver una explicación mas detallada del desarrollo de este ejercicio, dale click al siguiente link: Circuito Eléctrico Mixto Saludos

      • hector7 de agosto de 2014

        Muchas gracias.

  • Juan Harrison12 de abril de 2015

    Hola, me gustaría felicitarte por tu aportación a este campo. Y preguntarte una duda, ¿que comandos utilizas para ponerle nombres a las gráficas como las que muestras en tus figuras?

    • Manuel Alejandro Vivas Riverol13 de abril de 2015

      Hola Juan. Utilizo la opción "Drawing Tools", en el menú "Graphics" del menú principal. Saludos y muchas gracias por tu comentario.

  • Erika Sanchez22 de junio de 2016

    Hola, disculpa con respecto a la gráfica de la corriente total cuál es?? Pues esa gráfica que se presenta al final es respecto al voltaje y a la solución de la ecuación particular.. pero la gráfica de la corriente total? Cual sería? Por favor publicala lo más antes posible. Gracias

    • Manuel Alejandro Vivas Riverol26 de junio de 2016

      Gráfica respecto del Voltaje (en rojo) y la Corriente (en azul) Saludos

  • Juan Jesus25 de febrero de 2018

    el software mathematicas donde se puede conseguir? saludos y gracias

    • Manuel Alejandro Vivas Riverol26 de febrero de 2018

      Hola Juan, Lo puedes conseguir online: busca en Internet: Wolfram MATHEMATICA, para poder comprarlo. Saludos

  • William Levine18 de octubre de 2020

    Buenas noches, estoy haciendo un proyecto de un circuito exactamente igual que este y no puedo encontrar las constantes C1 y C2. No tengo ningún software del cual podría auxiliarme. Me podria ayudar a encontrar las constantes con algun metodo por favor? Me urge

    • Manuel Alejandro Vivas Riverol19 de octubre de 2020

      Revisa éste enlace William: Circuito RLC, click aquí. Saludos

  • Danna20 de diciembre de 2020

    DISCULPE QUISIERA SABER CUAL ES EL DATO DE velocidad ANGULAR?

    • Manuel Alejandro Vivas Riverol20 de diciembre de 2020

      Danna, buenas noches. puedes ver el desarrollo completo a mano en el siguiente artículo: Circuito mixto (RCL), donde: $\omega = 377$ que es la velocidad angular o frecuencia natural, recuerda que: $I = A\cos{\left(\omega t + \phi\right)}$ Saludos

  • Fernandez24 de febrero de 2021

    Disculpe con que programa lo esta realizando

    • Manuel Alejandro Vivas Riverol24 de febrero de 2021

      Con MATHEMATHICA Fernández

Únete a la conversación

Cargando…