Unexpected behavior with From Workspace block in Simulink

조회 수: 5 (최근 30일)
Thomas Marullo
Thomas Marullo 2013년 5월 29일
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

채택된 답변

Kaustubha Govind
Kaustubha Govind 2013년 5월 29일
(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
Thomas Marullo
Thomas Marullo 2013년 5월 29일
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 2013년 5월 29일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Import and Export에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by