When I plot f towards time amplitude is increasing I don't know why. It should be constant. what's wrong?

1 Ansicht (letzte 30 Tage)
f(1)=10; %% Ratation angle (Rad)
w(1)=0; %% Angular velocity (Rad/sec)
E(1)=0; %% Angular acceleration
t(1)=0; %% Time vector (sec)
dt=0.001;
N=10000;
%% The main code
for i= 1:N
t(i+1)=t(i)+dt;
E(i)=-f(i);
w(i+1)=w(i)+E(i)*dt;
f(i+1)=f(i)+w(i)*dt;
end
plot(t,f);

Akzeptierte Antwort

Matt J
Matt J am 10 Sep. 2020
Bearbeitet: Matt J am 10 Sep. 2020
I don't see why f should be constant, but nor is it monotonically increasing. Once I fix your initialization code, I see a sine-like wave:
clear
N=10000;
[f,w,E,t]=deal(zeros(1,N));
f(1)=10;
dt=0.001;
%% The main code
for i= 1:N
t(i+1)=t(i)+dt;
E(i)=-f(i);
w(i+1)=w(i)+E(i)*dt;
f(i+1)=f(i)+w(i)*dt;
end
plot(t,f);
  3 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming 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!

Translated by