pause() function not running in realtime

2 views (last 30 days)
Victor
Victor on 3 Mar 2024
Edited: Victor on 4 Mar 2024
I am working on a project that modelise the DC motor with the following state-space form:
Here is my code: ------------------------------------
------------------------ Result:
----------------------- My goal is that I want to plot the value of the velocity which is theta dot versus realtime, so I use the pause() function in each step to represent real time simulation. However, I notice that this the plot is way slower than the real time. I am aiming to use mfile only, not simulink. My questions: - I am new to state-space and transfer function. Can you check the result for me? :D - Why is the points on the plot slower than the real time? Can anyone explain for me? What should I do if I want to fix it. Thanks very much for any response. I am really appreciated :D
  1 Comment
VBBV
VBBV on 3 Mar 2024
Edited: VBBV on 3 Mar 2024
% after the for loop
hold on
yyaxis right
sys = ss(A,B,C,D)
step(sys)

Sign in to comment.

Answers (1)

VBBV
VBBV on 3 Mar 2024
Edited: VBBV on 3 Mar 2024
dt = 0.05
change the timestep size and try
  2 Comments
VBBV
VBBV on 3 Mar 2024
Edited: VBBV on 3 Mar 2024
use ss function https://in.mathworks.com/help/control/ref/ss.html to check/verify your results
Victor
Victor on 3 Mar 2024
Thank you alot! I tried 0.1 s and it is actually closed to real time.

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!