martes, 8 de abril de 2014

simulación doble masa

function doblemasa

% declara variables
x1d=5;
x2d=20;
time=0:1/10:120;
condicionesiniciales=[x1d+10 0 x2d+20 0];

y=0*time;

% desarrolla las ecuaciones diff rk 4 orden
[t,x]=ode45(@fk,time,condicionesiniciales);


% graficas

for i=1:length(time)

pause(1/1000)  
    plot(x(i,1)+x1d,0,'ko','Markersize',10,'MarkerFaceColor','green');
    hold all;
    plot(x(i,3)+x2d,0,'ko','Markersize',10,'MarkerFaceColor','red');
    hold off;
    xlabel('DistanciaX(Metros)');
    ylabel('DistanciaY(Metros)');
    grid on;
    axis([-50, 50,-2, 2]);
    drawnow
end

end

function rk=fk(t,x)
m=1;
k1=2;
k2=2;
b=1;
rk=[x(2);-(k1/m)*x(1)-(k2/m)*(x(1)-x(3))-(b/m)*(x(2)-x(4));x(4);-(k2/m)*(x(3)-x(1))-(b/m)*(x(4)-x(2))];
end

No hay comentarios:

Publicar un comentario