Trouble in getting analytic and numeric solution for integrating sine wave
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello everyone,
I'm trying to get coordinates for a robot movement from a sine wave. Now I changed the length of one period and the last and most important plot looks aweful. Does anyone can explain what's wrong in my code? I'm using Matlab R2020b for academic use.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/645495/image.png)
clear;
% Distance
t = 0.05; % Frequency
A = 50; %Amplitude
x = 0:t:10*pi;
y = A*sin(x); %It's all good if I leave sin(x), but when I want to change the duration of one period, like 2x
%the plot looks like in the picture.
T = (1:length(x))*t;
figure(1)
plot(T,y,'.')
xlabel('time')
ylabel('distance')
%%
vel = gradient(y)./gradient(x);
figure(2)
plot(T,vel,'.')
xlabel('time')
ylabel('velocity')
%%
acc = gradient(vel)./gradient(x);
figure(3)
plot(T,acc,'.')
xlabel('time')
ylabel('acceleration')
acc = acc';
%xlswrite('Acceleration.xlsx',acc);
acc = acc';
%%
%velocity Cosinus Figure
v = zeros(1,length(acc));
v(1,1) = A * cos(0);
l_v = 1:length(acc);
for i = 2:length(l_v)
v(i) = ((acc(i)+acc(i-1))/2) * t + v(i-1);
end
figure(4)
scatter(T,v,'.')
xlabel('time')
ylabel('velocity')
v = v';
%xlswrite('Velocity.xlsx',v);
v = v';
%%
%distance Sinus Figure
s = zeros(1,length(v));
s(1,1) = sin(0);
for i = 2:length(acc)
s(i) = ((v(i)+v(i-1))/2) * t + s(i-1);
end
figure(5)
scatter(T,s,'.')
xlabel('time')
ylabel('distance')
s = s';
%xlswrite('idealwaves.xlsx',s)
3 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!