How to use external simulation time in simulink?

7 views (last 30 days)
Hello :)
I have sensors and pumps that are connected to a board which has a tcp connection to simulink. Since round times from simulink to the board and back are too long and flickers a little, the control algorithm is executed on the board. It sends data back to simulink after every execution (20 ms) and a time stamp at which the data was sent. I would like to use this time stamp as simulation time to have the data shown correctly in a scope even if they arrived with different latency or maybe even different order. Is there any way to achieve that?

Answers (1)

Fangjun Jiang
Fangjun Jiang on 4 Mar 2021
USE "XY Graph" block. X is the received time, Y is the received data.
  2 Comments
Jan Theiss
Jan Theiss on 16 Mar 2021
Edited: Jan Theiss on 16 Mar 2021
That solves the problem of displaying it correctly. But what if other blocks should use that as their simulation time to calculate other things? Maybe by using a shorter sim interval and delay the simulation so that it matches the received time?
It is a little hard to me to find the right way between discrete simulation of continous signals...
Fangjun Jiang
Fangjun Jiang on 16 Mar 2021
That is the "latency" you have to deal with. You can slow down the simulation on the computer or "wait" for the message coming from TCP/IP. But there is no other way better than reducing this "latency" directly if possible.

Sign in to comment.

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!