How can I make an animating plot moving with the speed I predefined?

3 vues (au cours des 30 derniers jours)
Jiwoo
Jiwoo le 19 Juil 2023
Commenté : Jiwoo le 21 Juil 2023
Hello, I am trying to make a simple simulation of a robot following straight lines. I am using a plot function and I would like to know how to make the robot in the plot move with the speed I want (ex. 2 m/s or 5 m/s)
Thank you!
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 19 Juil 2023
One way would be to update the coordinates of the robot according to the velocity after each iteraion.

Connectez-vous pour commenter.

Réponse acceptée

Benjamin Kraus
Benjamin Kraus le 19 Juil 2023
This is a very basic/crude example, but it shows some basic concepts:
y0 = 0; % Starting location
v0 = 100; % Starting velocity
a = -10; % Acceleration
p = plot(0, y0, 'o');
xlim([0 25])
ylim([0 600])
drawnow
t0 = datetime(); % Get the starting time.
tnow = t0;
while (tnow - t0 < minutes(1) && p.YData >= 0)
t = seconds(tnow-t0); % How much time has passed?
p.XData = t;
p.YData = y0 + v0*t + 0.5*a*t.^2;
drawnow
tnow = datetime(); % Get the current time
end
  2 commentaires
Benjamin Kraus
Benjamin Kraus le 19 Juil 2023
Once you get that working, you may want to look into either timer or backgroundPool so you can run the simulation without blocking the MATLAB command window (for example Background Processing).
Jiwoo
Jiwoo le 21 Juil 2023
Thank you for your clear explanation!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Simulation dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by