question

Yokota T avatar image
2 Likes"
Yokota T asked Yokota T commented

Accuracy of Conveyor Speed

Hello all,

I am modeling a conveyor that carries small items. In that model, I found a behavior that is questionable.

As shown in the figure below, Source1 generates one 25mm square Box per second. And the speed of the conveyor is set to 25mm/s. In this case, I assumed that Source1 would continue to generate boxes without being blocked, but when I run the simulation, Source1 can be blocked.

For comparison, I put one 250mm square box per second into a 250 mm/s conveyor, and in this case, the source was never blocked.

1684203897084.png


From this result, I assume that there are significant figures for the conveyor speed.

Please explain this behavior. Thank you in advance.


conveyor_calc_accuracy_test.fsm

FlexSim 23.0.8
conveyors
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Jordan Johnson avatar image
2 Likes"
Jordan Johnson answered Yokota T commented

This seems to be correct behavior. It deals with precision issues and with something called "tiny dist".

First, the precision issues. Take a look at this FlexScript:

string.fromNum(0.025, 20) // evaluates to 0.02500000000000000139

and

string.fromNum(0.25, 20) // evaluates to 0.25000000000000000000

The value 0.25 can be exactly represented as a double. The value 0.025 cannot.

The following logic happens:

  1. The Source generates an item and attempts to send it to the conveyor.
  2. The conveyor checks if there is enough room. If there were no precision issues (as is the case for the second conveyor) then the answer would always be yes, there is exactly enough space. However, for the first conveyor, the answer might be no, because of precision issues.
  3. If the answer is no, the the source must schedule an event in the future for when there will be enough space. Again, precision is an issue. Technically, that event should be in zero time. But if it is in zero time, then we get into an infinite loop, because there still would not be enough room on the conveyor. The solution is that FlexSim adds enough time for a small gap, in addition to the entry space requirement. The small gap is a "tiny dist".
  4. While the source waits for item to move a "tiny dist", it stays in the blocked state.

So one answer is to either increase the inter-arrival time or decrease the item size, so that you can never get a "false wait" due to precision errors.

In addition, the Snap Threshold setting on the Conveyor System contributes to the calculation of "tiny dist". If you make that value very small, you'll have less block time on the Source, since the extra gap will be smaller. But don't use a zero, or FlexSim will crash badly. The UI prohibits values smaller than 0.01 mm.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Yokota T avatar image Yokota T commented ·

@Jordan Johnson , Thanks for the explanation. I understand the cause and how to deal with it.

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Yokota T commented

I can partly confirm this. I build same rank node structure of conveyor 1 and 2 system. I changed 25_mm box size to 0.0249 and then to 0.025. A block state does not occur. conveyor-calc-accuracy-test_not-confirmed-JV.fsm

Edit I: change values:

  • from "0.0249" to "0.025" then you don't get blocked states.
  • from "0.0249" to 0.0250" then you get blocked states.
  • from "0.025" with a blocked state present to "0.025" the block state stays.

it is quite weird.

Edit II: Test with a model settings decimal precision of 5:

  • from "0.024999" to "0.02500" > no blocked state
  • from "0.024999" to "0.025" > blocked state
  • from "0.024999" to "0.025000" > blocked state

· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
Decimal precision changes nothing - it's just for display purposes.

The 3rd small box created is always delayed by 0.008 seconds, as are subsequent boxes - which looks like a bug.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Jason Lightfoot ♦♦ commented ·

Update: sizes and speeds of 15.625, 31.25, 62.5,125, 250mm do not exhibit any blocked time. This information has been sent to the dev team for consideration.

0 Likes 0 ·
Yokota T avatar image Yokota T Jason Lightfoot ♦♦ commented ·

@Joerg Vogel , @Jason Lightfoot

Thank you for taking the trouble to perform the additional verification.

0 Likes 0 ·