Untitled
%ESERCIZIO 5 m=0.250; %[kg] k=30; %[N/m] beta=1; %[Ns/m] %coefficiente di smorzamento y0=[-0.2;0]; %posizione iniziale, velocità iniziale nulla g=9.81; %[m/s^2] tspan= [0, 3]; [t, y]= ode45(@ode_sys, tspan, y0); %calcolare i rimbalzi della massa dopo 3 secondi bounces=0; %numero rimbalzi for i=2:length(t) %parto da 2 perchè sennò facendo i-1 verrebbe zero if y(i, 2) >0 && y(i-1, 2) <= 0 %rappresentano il secondo e il primo rimbalzo bounces = bounces +1; end end %altro metodo con sign %for i=2:length(t) %parto da 2 perchè sennò facendo i-1 verrebbe zero % if sign(y(i, 2)) > sign(y(i-1, 2)) <= 0 %rappresentano il secondo e il primo rimbalzo % bounces = bounces +1; % end %end figure; plot(t, y(:, 1), 'b-', 'LineWidth', 1.5); grid on; xlabel('Tempo (s)'); ylabel('Posizione (m)'); title('Oscillazione smorzate della massa'); fprintf('Numero di rimbalzi in 3 secondi: %d', bounces); %equazione del moto: y''=g-(k/m)y-(B/m)y' %--> y''+(B/m)y'+(k/m)y=g %--> y''+4y'+120y=9.81 %termine di smorzamento: B/m=4 %frequenza naturale al quadrato: k/m=120 %coefficiente di smorzamento--> function dydt= ode_sys(t,y) dydt= zeros(2,1); %vettore che contiene le derivate %y(1) è la posizione dydt(1)= y(2); %derivata prima--> velocità dydt(2)= g-(k/m)*y(1)-(beta/m)*y(2); %derivata seconda--> accelerazione end
Leave a Comment