Diferencia entre revisiones de «Circuitos eléctricos RL (grupo 12)»
(→Cálculo analítico) |
|||
| Línea 26: | Línea 26: | ||
===Método de Euler=== | ===Método de Euler=== | ||
| − | El método de Euler se basa en aproximar el valor de la función a la tangente en cada punto, cuanto más cercanos cojamos los puntos, mayor será la aproximación al resultado real, haciéndolo más exacto. En matlab tendra el siguiente codigo, definiendo ''h'' y observando que por este método la ''h'', es decir, el paso de discretizacion temporal debe ser muy pequeño | + | El método de Euler se basa en aproximar el valor de la función a la tangente en cada punto, cuanto más cercanos cojamos los puntos, mayor será la aproximación al resultado real, haciéndolo más exacto. En matlab tendra el siguiente codigo, definiendo ''h'' y observando que por este método la ''h'', es decir, el paso de discretizacion temporal debe ser muy pequeño. |
{{matlab|codigo= | {{matlab|codigo= | ||
clear all | clear all | ||
| Línea 48: | Línea 48: | ||
% extremadamente pequeno ralentizaria el programa | % extremadamente pequeno ralentizaria el programa | ||
}} | }} | ||
| + | ===Método del trapecio=== | ||
| + | |||
| + | Otro método aproximado para la resolución de problemas de valor inicial es el llamado método del trapecio que es mas exacto que el de Euler. Se basa en la aproximación al área de un trapecio y después de hacer los cálculos oportunos (hay que despejar la solución ya que con este método queda de forma implícita). | ||
| + | {{matlab|codigo= | ||
| + | |||
| + | clear all | ||
| + | R=5; L=0.2; E=10; | ||
| + | t0=0; tN=1; | ||
| + | i0=0; | ||
| + | N=1/0.0000001; h=(1-0)/N; | ||
| + | ii=i0; | ||
| + | i(1)=ii; | ||
| + | for n=1:N | ||
| + | tn=t0+h*n; | ||
| + | t(n+1)= tn+h; | ||
| + | ii=((1-(h*R)/(2*L))*ii+h*E/L)/(1+((h*R)/(2*L))); | ||
| + | i(n+1)=ii; | ||
| + | end | ||
| + | x=t0:h:tN; | ||
| + | plot(x,i,'x','r*')}} | ||
Revisión del 21:38 2 mar 2013
El circuito eléctrico mas simple esta compuesto de una resistencia, un inductor o bobina y una fuente de alimentación.
- En una resistencia R, la Ley de Ohm establece:
[math]i(t)={V(t)\over R}[/math]
- En un inductor L la Ley de Faraday dice:
[math] V(t)=L\cdot i'(t)[/math] Donde i(t) es la intensidad de corriente, V(t) el voltaje, R la resistencia y L la inductancia o bobina. Las leyes de Kirchoff dicen:
- Ley de corrientes: En cada nodo, la suma de corrientes que entra es igual a la que sale.
- Ley de tensiones: En cada ciclo cerrado, la suma de diferenciales de potencias es nula.
Contenido
1 Ecuación diferencial
2 En t=0 cerramos el circuito
2.1 Cálculo analítico
Al suponer que en tiempo 0 cerramos el circuito, estamos definiendo nuestra condición inicial, i(0)=0, convirtiendo la ecuación en un problema de valor inicial. Para representarla, primero debemos resolverla analíticamente, es decir, a mano. Una vez tenemos la solución en función del tiempo, podemos proceder a su representación con el siguiente código matlab.
clear all
t=[0:0.0000001:1];
i= (-10/5)*exp((-5/0.2)*t)+10/5;
plot(t,i,'r*')2.2 Método de Euler
El método de Euler se basa en aproximar el valor de la función a la tangente en cada punto, cuanto más cercanos cojamos los puntos, mayor será la aproximación al resultado real, haciéndolo más exacto. En matlab tendra el siguiente codigo, definiendo h y observando que por este método la h, es decir, el paso de discretizacion temporal debe ser muy pequeño.
clear all
E=10;
R=5;
L=0.2;
t0=0; tN=1;
h=0.0000001;
N=1/0.0000001;
i0=0;
ii=i0;
i(1)=ii;
for n=1:N
ii=ii+h*[(-R/L)*ii + E/L];
i(n+1)=ii;
end
x=t0:h:tN;
plot(x,i,'x','r*')
% El paso de discretizacion debe ser muy pequeno para que el error no se
% acumule y el metodo sea estable. Sin embargo, un paso de discretizacion
% extremadamente pequeno ralentizaria el programa2.3 Método del trapecio
Otro método aproximado para la resolución de problemas de valor inicial es el llamado método del trapecio que es mas exacto que el de Euler. Se basa en la aproximación al área de un trapecio y después de hacer los cálculos oportunos (hay que despejar la solución ya que con este método queda de forma implícita).
clear all
R=5; L=0.2; E=10;
t0=0; tN=1;
i0=0;
N=1/0.0000001; h=(1-0)/N;
ii=i0;
i(1)=ii;
for n=1:N
tn=t0+h*n;
t(n+1)= tn+h;
ii=((1-(h*R)/(2*L))*ii+h*E/L)/(1+((h*R)/(2*L)));
i(n+1)=ii;
end
x=t0:h:tN;
plot(x,i,'x','r*')