Distance from time and velocity vectors..HELP
28 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
so i have 2 vectors:
time = [0,10,15,20,30,59,62,125];
velocity = [0,56.40,97.23,136.25,226.16,403.86,440.44,1265.23];
how would i get distance for each time interval? i tried using
distance = trapz(velocityChange,timeChange);
like this:
time = [0,10,15,20,30,59,62,125];
velocity = [0,56.40,97.23,136.25,226.16,403.86,440.44,1265.23];
distance = zeros(size(time)-1);
for i=1:length(time)
for ii=1:length(velocity)
for x=1:1:7
velocityChange = velocity(1,(x+1))-velocity(1,x);
timeChange = time(1,(x+1))-time(1,x);
distance(x) = trapz(velocityChange,timeChange)
%%distance = velocity*time%%
end
end
end
i want distance as a matrix but i get
distance = [ 0 0 0 0 0 00 ] basically a 0 matrix
and i get the overall distance of all the points how do i get the individual distance for each time interval?
0 Kommentare
Antworten (1)
kowshik Thopalli
am 26 Nov. 2017
trapz
cannot be used here because you are passing only one value for x and y. Moreover direct integration is not the right thing because acceleration is not constant. Instead, what you can do is fit a line (linear regression) between time and velocity.The slope of the line is the acceleration. You can then use d= 0.5*acceleration*((delta_time)^2) to get the distance traveled here for each time interval.
close all;
scatter(time,velocity);
grid on; hold on;
b1=time'\velocity';% linear regression;
%b1=acceleration
vcalc1=b1*time;
plot(time,vcalc1,'r-');grid on;
%%to get distance between each time interval
time_diff=diff(time); % diff- successive differentiation. No need of loop
d= 0.5*a.*(time_diff.^2);
%%output
d =
449.28 112.32 112.32 449.28 3778.4 40.435 17832
0 Kommentare
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!