question

Joe Hugan avatar image
0 Likes"
Joe Hugan asked Joe Hugan commented

Transporter Speed Question

I have a model where a transporter is approaching an intersection. Depending on the state of the intersection, the transporter may need to stop. I can use a pre-arrival event for a decision point on an AGV network to tell the vehicle to stop but the condition at the intersection may change while the vehicle is decelerating. If this is the case, I need to stop the deceleration and start accelerating again. If I could force a speed change to a non-zero condition, I could incrementally check the state of the intersection but I can only find a way to stop the vehicle. The acceleration and deceleration of these vehicles takes a long time so I need to do this without coming to a stop at a decision. Pre-arrival works well when I check a state and tell the vehicle to stop. If the intersection is in the proper state, the vehicle moves through without any speed change. Any ideas how to conditionally change the speed of a vehicle to a non-zero value?

FlexSim 19.0.2
transporterspeed change
· 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.

Joe Hugan avatar image Joe Hugan commented ·

@Jörg Vogel - The vehicle is a transporter on the new AGV network not using a node network. Does your comment apply to this as well? I am not sure how to find that in the tree but I understand the approach you are suggesting. The acceleration and deceleration data for the transporter could make the math a bit tricky.

0 Likes 0 ·
anthony.johnson avatar image
1 Like"
anthony.johnson answered Joe Hugan commented

I'm not sure of the exact circumstances of your model, but I created a sample model that shows two scenarios that do this. The first scenario I redirect the AGV to the control point as its final destination. Note that the end speed of the travel task is the max speed of the AGV. The AGV system models non-zero endspeeds by finishing the task before the AGV actually arrives at the control point. Thus when I redirect it to the control point as its final destination, it will immediately finish its current travel task and then start decelerating to stopped. In this case, to start it up again before he stops, I just give it a new task.

In the second scenario, I redirect the AGV with REDIRECT_AND_WAIT, meaning he should stop at the control point and wait to be redirected again. In this case, to redirect it again before it stops, I call the redirect() method again, and it'll start back up.

testagvredirect.fsm

Regarding Jordan's response, yes, OnPreArrival is based on the deceleration of the AGV. So if you make the AGV start decelerating based on a first OnPreArrival, no further OnPreArrival events will happen because the AGV is decelerating to stop. Don't know if that applies in your situation.


testagvredirect.fsm (28.2 KiB)
· 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.

Joe Hugan avatar image Joe Hugan commented ·

Thanks - this should help. I will try this tomorrow. The scenario is a very large (think semi truck) carrier that is decelerating while heading toward a switch that is in the wrong position. While it is decelerating, the switch finishes moving into the correct position. I need to stop the long deceleration process and start accelerating again. If I can check the status of the switch "occasionally" it should be sufficient for the modeling. I will let you know how it goes.....

0 Likes 0 ·
Jordan Johnson avatar image
0 Likes"
Jordan Johnson answered Jordan Johnson commented

As far as I know, there isn't a simple way to do this. The only way I can think to approach it would be to use a sequence of control points approaching the intersection. The first one would check to see if the AGV needs to stop. If so, it would instruct the AGV to stop. As the AGV slows down, it could encounter the control points further in the sequence. Those would have code that checks if the AGV is stopping, and if so, check the intersection state again. If the intersection is clear, then they could redirect the AGV to a destination through the intersection. I think you can do this in OnPreArrival.

The downside is that you would need to add additional "checkpoints" to control how often the AGV checks the intersection. But I don't see a way around that, because I don't think you can change an AGV's travel between control points.

· 2
5 |100000

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

Joe Hugan avatar image Joe Hugan commented ·
@jordan.johnson

I guess my question would be that if an AGV that is decelerating encounters a Pre-Arrival event of another decision point that wants it to accelerate for a new destination, does the prior stop need to be completed before the vehicle can increase speed?

0 Likes 0 ·
Jordan Johnson avatar image Jordan Johnson ♦♦ Joe Hugan commented ·

Okay, I tried to do what I was telling you, and I don't think it works. I didn't realize that the OnPreArrival fires according to the deceleration of the AGV; it is fired so that if you set the new destination to the CP you are pre-arriving at, there is enough distance to stop.

So if you are slowing down to stop at a CP, I don't think there's any way to interrupt it using OnPreArrival, since any PreArrival of previous CPs would have already fired. I tried changing the AGV's destination in an OnArrival trigger, but that didn't work either.

Maybe @anthony.johnson has some additional insights for you.

0 Likes 0 ·