Solución de ecuación diferencial con ODE de Scilab
ODE (Ordinary Differential Equation Solver) es una rutina para resolver ecuaciones diferenciales ordinarias de esta manera usted puede dar solución rápida a una Ecuación diferencial que se encuentre despejada debidamente.
En este ejemplo veremos como dar solución a una ecuación diferencial ordinaria cuando se alienta un circuito RL en serie con una fuente de tensión de directa donde se estudiarán dos casos prácticos, uno sencillo donde únicamente se plasma la EDO y el otro será necesario usar una estrategia distinta usando un poco de programación propia de Scilab.
Caso 1 : Circuito RC Serie con fuente de corriente directa, conectar
En la figura 1 se muestra un circuito RC en serie conectado a una batería de 2000V (E), el valor del capacitor ( C ) y resistencia ( R ) son de 2000 Ω y 40 μF respectivamente. Este circuito al cerrar el interruptor la corriente empezará a fluir hasta llegar a cargar el capacitor de esta manera la corriente disminuirá hasta ser cero.

La EDO (Ecuación Diferencial Ordinaria) del circuito es :
La integral de la carga esta dada por :
Sustituyendo en la EDO (Ecuación Diferencial Ordinaria) del circuito se obtiene :
Diferenciando con respecto al tiempo se obtiene :
Despejando el diferencial de la corriente :
Ahora bien, necesitamos plasmar las condiciones iniciales que son :
- Al cerrar el interruptor la corriente iniciará su recorrido en la malla, por lo tanto la corriente inicial es E/R.
- El tiempo inicial es cero de esta manera al cerrar el interruptor empezará a correr el tiempo.
- El tiempo final será necesario para finalizar la simulación del circuito, usaremos 0.5 segundos.
Debemos entender que primero se obtiene la corriente eléctrica y luego esta corriente se sustituye en la EDO que no incluye la integral, despejando la carga se obtiene :
$$
\large q=C(E-Ri)
$$
El bloque de código siguiente describe todo el proceso para obtener la corriente y la carga, este código es un poco distinto pero se obtiene primero la corriente eléctrica y después la carga.
global C R E
C=0.00004;
R=2000;
E=200;
function ydot = EcuDif(t, y)
ydot=-y/(C*R)
endfunction
function q =Carga(y)
q=C*(E-(y*R))
endfunction
y0=200/2000;
t0=0.0;
t=0:0.01:0.5;
y = ode(y0,t0,t,EcuDif);
q =Carga(y)
scf(1)
plot(t,y,'Color','r','LineWidth',3)
legend('I[Amperios]')
xlabel('Tiempo (Segundos)','fontsize',2)
ylabel('Corriente [Amperios]','fontsize',2)
title('Corriente circuito RC con fuente de CD','fontsize',3)
xgrid
scf(2)
plot(t,q,'Color','b','LineWidth',3)
legend('q[Culombios]')
xlabel('Tiempo (Segundos)','fontsize',2)
ylabel('Carga q [Culombios]','fontsize',2)
title('Carga en circuito RC con fuente de CD','fontsize',3)
xgrid
La rutina ODE nos arroja la respuesta de la ecuación diferencial, una respuesta única como se muestra :
y = ode(y0,t0,t,f);
Corriendo la simulación se obtiene la corriente :
La carga del capacitor es :
Si analizamos un poco más el capacitor se ha cargado en un tiempo de 0.5 segundos. Si dividimos el resultado final de la carga obtenida entre la tensión dará como resultado los microfaradios del capacitor.