Está en la página 1de 2

SOLUCIÓN DE SISTEMA DE ECUACIONES DIFERENCIALES EN SCILAB

ode : Ordinary Differential Equations y = ode(y0, t0, t, f)

𝑦0 : 𝐶𝑜𝑛𝑑𝑖𝑐𝑖𝑜𝑛𝑒𝑠 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑒𝑠 (𝑃𝑜𝑠𝑖𝑐𝑖ó𝑛 𝐼𝑛𝑖𝑐𝑖𝑎𝑙 𝑥0 , 𝑅𝑎𝑝𝑖𝑑𝑒𝑧 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑣0 )

𝑡0 : 𝑇𝑖𝑒𝑚𝑝𝑜 𝐼𝑛𝑖𝑐𝑖𝑎𝑙
𝑡: 𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑐á𝑙𝑐𝑢𝑙𝑜 (𝑣𝑒𝑐𝑡𝑜𝑟 𝑑𝑒 𝑖𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜)
𝑓 = 𝐿𝑎𝑑𝑜 𝑑𝑒𝑟𝑒𝑐ℎ𝑜 𝑑𝑒 𝑙𝑎 𝑒𝑐𝑢𝑎𝑐𝑖ó𝑛 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑙

Modelo:
𝑑𝑥
= 𝑓(𝑡, 𝑥)
𝑑𝑡
𝑠. 𝑎. 𝑥 (0) = 𝑥0
Ejemplo:
𝑑𝑦
= 𝑅0 ∗ 𝑦
𝑑𝑡
𝑦(0) = 0
Para un modelo de movimiento amortiguado forzado Masa-Resorte

𝑑2 𝑥 𝑑𝑥
𝑓 (𝑡) = 𝑚 + 𝑏 + 𝑘𝑥
𝑑𝑡 2 𝑑𝑡
𝑑𝑥 𝑑𝑣
Se sabe que 𝑣 = 𝑎= , se remplaza en la ecuación
𝑑𝑡 𝑑𝑡

𝑑𝒗
𝑓 (𝑡) = 𝑚 + 𝑏 𝒗 + 𝑘𝑥
𝑑𝑡
𝑑𝒗 (𝑓(𝑡) − 𝑏 𝒗 − 𝑘𝒙)
=
𝑑𝑡 𝑚
Se forma el siguiente sistema de ecuaciones:
𝑑𝑥
=𝑣
𝑑𝑡
𝑑𝒗 (𝑓(𝑡) − 𝑏 𝒗 − 𝑘𝒙)
=
𝑑𝑡 𝑚
Resumiendo
𝑑𝑥
𝑣
𝑑𝑡
[ ]=[ (𝑓 (𝑡 ) − 𝑏 𝒗 − 𝑘𝒙)]
𝑑𝑣
𝑚
𝑑𝑡
𝑑𝑿
[ ] = 𝐹 (𝑡, 𝑿)
𝑑𝑡
Donde 𝑋 = ( 𝑥 ; 𝑣) Luego 𝑥 = 𝑋(1) ; 𝑣 = 𝑋 (2)
Ejercicio

Una masa de 0.500 𝑘𝑔 se encuentra sujeta a un resorte de constante 10 𝑁/𝑚 y se impulsa por una fuerza externa 𝑓 (𝑡) =
100𝑠𝑒𝑛 (𝜋𝑡). Además, existe un rozamiento 𝑏. La fuerza impulsora comienza a actuar cuando el resorte se encuentra
estirado −10 𝑐𝑚 y se mueve con rapidez 8.0 𝑐𝑚/𝑠. Determine la posición en cualquier instante para los casos en los que
la constante de amortiguamiento es a) 𝑏 = 8.0 𝑁 ∙ 𝑠/𝑚 b) 𝑏 = 5.0 𝑁 ∙ 𝑠/𝑚, c) 𝑏 = 1.0 𝑁 ∙ 𝑠/𝑚.

Solución del caso (a)


Clc
clear
//**********************************
// SE DEFINE LA ECUACIÓN DIFERENCIAL
function dXdt=F(t, X)
k=10 // Constante de elasticidad
b=8 // Constante de amortiguamioento
m=0.5 // Masa del oscilador
f=1/2 // Frecuencia del oscilador
F1=0 // Componente en Fase de la fuerza
F2=100 // Componente en desfase de Fuerza
f_t=F1*cos(2*%pi*f*t) + F2*sin(2*%pi*f*t)
dXdt=[X(2);(f_t-b*X(2)-k*X(1))/m]
endfunction
//**********************************
xi=-10 // POSICIÓN INICIAL
vi=8 // VELOCIDAD INICIAL
Ti=0; // DEFINE EL TIEMPO INICIAL
t=0:0.1:10; // DEFINIR EL VECTOR TIEMPO
Solucion = ode([xi;vi],Ti,t,F); // LLAMA LA FUNCIÓN
plot(t,Solucion(1,:),'-b') // GRAFICA LA POSICIÓN
plot(t,Solucion(2,:),'-r') // GRAFICA LA VELOCIDAD
title('Soluci.on Ejercicio (a)', 'fontsize',5)

Solución del caso (b)


Clc
clear
//**********************************
// SE DEFINE LA ECUACIÓN DIFERENCIAL
function dXdt=F(t, X)
k=10 // Constante de elasticidad
b=5 // Constante de amortiguamioento
m=0.5 // Masa del oscilador
f=1/2 // Frecuencia del oscilador
F1=0 // Componente en Fase de la fuerza
F2=100 // Componente en desfase de Fuerza
f_t=F1*cos(2*%pi*f*t) + F2*sin(2*%pi*f*t)
dXdt=[X(2);(f_t-b*X(2)-k*X(1))/m]
endfunction
//***********************************
xi=-10 // POSICIÓN INICIAL
vi=8 // VELOCIDAD INICIAL
Ti=0; // DEFINE EL TIEMPO INICIAL
t=0:0.1:10; // DEFINIR EL VECTOR TIEMPO
Solucion = ode([xi;vi],Ti,t,F); // LLAMA LA FUNCIÓN
plot(t,Solucion(1,:),'-b') // GRAFICA LA POSICIÓN
plot(t,Solucion(2,:),'-r') // GRAFICA LA VELOCIDAD
title('Soluci.ón Ejercicio (b)', 'fontsize',5)

También podría gustarte