Unexpected behavior with From Workspace block in Simulink

1 vue (au cours des 30 derniers jours)
Thomas Marullo
Thomas Marullo le 29 Mai 2013
The From Workspace block for Simulink is supposed to output data based on the time column in the variable. I have a model at a sample rate 5 times faster than the From Workspace, ie: 0.05 for Data, 0.001 for Model.
When I record the data from the From Workspace block at the Model sample rate of 0.001, I mostly see the data repeated 5 times but sometimes I see it repeated 6 times followed by 4 times for the next. This creates errors in my calculations because the expected data is wrong:
ie, 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 2 <- extra "2" 3 3 3 3 too little "3" 4 4 4 4 4

Réponse acceptée

Kaustubha Govind
Kaustubha Govind le 29 Mai 2013
(I presume you meant that 0.01 is your model's sample rate, because 0.05 is 50 times 0.001, not 5 times)
This looks like an floating-point/accuracy issue - 0.05*3 is slightly larger than 0.01*15:
>> format hex
>> 0.01*15
ans =
3fc3333333333333
>> 0.05*3
ans =
3fc3333333333334
Which is why, for the 15th sample, the previous data point (=2) is used.
Perhaps you can adjust the time column of the imported variable so that it is multiples of 0.01 instead of 0.05?
  2 commentaires
Thomas Marullo
Thomas Marullo le 29 Mai 2013
Sorry, you are indeed correct. From Workspace block is 0.005000000000000 and model sample rate is 1.000000000000000e-03. I think your recommendation of changing the From Workspace block to be multiples of the model sample rate is a good method.
Thomas Marullo
Thomas Marullo le 29 Mai 2013
I also tried using 0.04 as my From Workspace timing and 0.01 as my model sample rate and I had the same problems at step 40. I didn't think there would be a problem using this case since,
>> 0.01*40
ans =
3fd999999999999a
>> 0.04*10
ans =
3fd999999999999a

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Event Functions dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by