Why are the simulation results different when using "Data Store" blocks instead of directly connected blocks and which result is the correct one?
1 view (last 30 days)
Show older comments
Michael Nöbauer
on 22 Apr 2015
Commented: Michael Nöbauer
on 22 Apr 2015
Hi all,
my problem is that when I'm comparing two apparently similar models with each other I get different simulation results. One model uses Data Store blocks (read, write and memory) and the other model is "hard wired". All other blocks remain the same and that is why I also expected the results to be the same or at least come close to each other.
I tried and used different solvers with different step sizes and also varied the function input parameters which also changed the outcome - with some settings the results come close to each other but with others they do not at all.
So why do the results differ from each other and how do I solve this problem?
Thx for your help, Michael
0 Comments
Accepted Answer
Titus Edelhofer
on 22 Apr 2015
Hi Michael,
Data Stores break up the sorting order. If you have e.g.
-> GainA -> GainB ->
you know, that GainA executes before GainB. But if you break up this line by data stores
-> GainA -> DataStoreWrite
and
DataStoreRead -> GainB
Simulink has the freedom to either compute the GainA->DataStoreWrite first or the DataStoreRead->GainB. Of course the latter would give different results (namely shifted by one time step).
I suggest to display the sorting order: menu Display->Blocks->Display Sorted Order to find out if this the case for your model.
Titus
More Answers (0)
See Also
Categories
Find more on Programmatic Model Editing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!