question

Kyle Y avatar image
1 Like"
Kyle Y asked Ben Wilson edited

how to simulate a KIVA agv project that contain over 20 KIVA agvs?

Hi Everyone, I am plan to simulate a project that contain 20 KIVA agvs, I am quite doubt how to simulate it? because there are so many KIVA agv, how to control them in the model? Thank you!

FlexSim 18.2.3
agv
· 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.

Joerg Vogel avatar image Joerg Vogel commented ·

Please take a look into the A* module. The properties contain options that you can use to build the system.

0 Likes 0 ·
Kyle Y avatar image Kyle Y Joerg Vogel commented ·

Hi Vogel, thank you for your information. But how to control assign task to these 20 KIVA dynamically? I suppose there will be some control method, am I correct?

0 Likes 0 ·
Joerg Vogel avatar image
1 Like"
Joerg Vogel answered Kyle Y commented

The logic to prevent deadlocks is the challenge. AStar let you build the model. You can set the travel option in 90 degrees angles only. You can set the rotate time. Collisions of Taskexecuters are prevented. But deadlocks are still occurring. You need only 3 or 4 Taskexecuters meeting at the same grid point to get a deadlock. Sometimes you are lucky and one of the TaskExecuter is empty and will get later a job that unlocks the situation.

There isn't a system-in-built-logic that optimizes the system. It is your job to build the logic.

My approach would be to divide the hole grid into smaller areas. I allow the entry in an area by a taskexecuter only if the travel path doesn't collide with the path of another traveler in motion. Inactive or waiting Taskexecuters will force active Taskexecuters to take a detour or if this detour will last to long the inactive taskexecuter gets a job to travel to a waiting area or he checks if an alternative travel to a corner of the blocked area is possible. I would build a priority system into the logic that defines which taskexecuter is allowed to push other taskexecuters to areas or force them to wait. If in the area or in surrounding areas the conditions change the logic reviews the priority states of all involved taskexecuters in the nearby areas or the logic reviews only the Taskexecuters in a critical state.

Taskexecuters get in a waiting area only new jobs if their position is at the border of the waiting Taskexecuters.

Assigning new jobs is another optimize challenge. The in-built logic pushes new jobs to the first available taskexecuter. Other simple strategies are round robin or random. An optimized strategy push the available taskexecuters of a cluster of nearby areas to a list. Then the logic pulls the taskexecuter which is nearest to the loading location. The logic can evaluate if the taskexecuter can reach the location by passing through populated areas. The list can also contain Taskexecuters that will finish their current job in a short time interval. Then the logic will choose the Taskexecuters that needs the shortest time to reach the loading position.

In my opinion a single question isn't suited to answer all challenges. If you need further help, please come back and ask new questions dealing with a smaller problem in your model, that you describe in the context of the complex model.

· 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.

Kyle Y avatar image Kyle Y commented ·

Thank you. I got your point.

0 Likes 0 ·
Jordan Johnson avatar image
3 Likes"
Jordan Johnson answered Ben Wilson edited

As far as creating a grid network for travelling, the AStar module is the way to go.

As far as controlling the model, I would use Process Flow. I would put all the available AGVs on a list, and have tasks pull those AGVs from the list, possibly using a query. All you have to do then is tell the AGV to travel to wherever the item is. AStar will handle the routing and collisions.

· 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.

David C22 avatar image David C22 commented ·

hi,can you send the model using Process Flow to my email [email protected],thank you very much

0 Likes 0 ·
Ben Wilson avatar image Ben Wilson ♦♦ David C22 commented ·

Hi @David C22, there is no model to send. It was a suggestion to use process flow.

If you are trying to build a model and need help learning process flow, I suggest starting with the tutorials:

https://docs.flexsim.com/en/Tutorials/ProcessFlow/Tutorial1UsingSharedAssets/UsingSharedAssetsOverview/

As you go through the tutorials, or begin work on your model, if you have any questions, searching Answers is definitely the best place to start. However, if you can't find exactly the answer you need, commenting on a years-old question that already has an accepted answer is not a good way to get community participation. Instead, create your own new question. In your new question you can link back to older questions when they are relevant.

Please see our community best practices for more helpful tips on using this Question-and-Answer format community.

0 Likes 0 ·