Optimizer design

Optimizer design

laitriminh
Not applicable
299 Views
6 Replies
Message 1 of 7

Optimizer design

laitriminh
Not applicable

[ FlexSim 19.0.0 ]

Hi Flexsim community,

I'm having trouble using Optimize to find the optimal position for minimizing the total transportation distance of Transporter 1 and 2. My variables include the bon tam processor, Queue7, and Queue8.

I've tried various methods, such as separating each variable into x and y axes and adding constraints to prevent object overlap, but the results aren't as expected. Currently, I'm thinking of grouping all elements (bon tam, Queue7, and Queue8) into a specific coordinate and allowing them to move within the red area to achieve the optimal position.

However, I'm unsure how to proceed with this idea. I've attached the Flexsim file (version 2019) and images below. I'm hoping to receive assistance from experts. Thank you.

cai tien PA2.fsm1.png


0 Likes
Accepted solutions (1)
300 Views
6 Replies
Replies (6)
Message 2 of 7

moehlmann_fe
Advocate
Advocate
Accepted solution

Your results might differ from your expectation because Transporter2 is bound to a travel network. Its travel distance will be shortest if Queue8 is positioned above the connected network node and only get longer the farther the queue is placed away from the node. Maybe try adding additional network nodes connected to the queue so the transporter can choose the closest one.

To move the objects as a group you can move them in a plane (Visual Object) and then only move the plane. Make sure to update any Model.find() expressions that include these objects to the new path (Model.find("Plane/...").

Not part of your question, but it seems a little odd that the speed of all task executers gets updates every time any of them load or unload something. Is this by design?

1705306094371.png

Message 3 of 7

laitriminh
Not applicable

Thank you, Felix. I understand your point regarding Transporter2.

However, I haven't fully grasped the part about moving objects using Visual Object. Could you please provide a more detailed explanation?

Also, regarding the movement speed of task executers, I designed it to reflect real-world scenarios when loading and unloading.

0 Likes
Message 4 of 7

moehlmann_fe
Advocate
Advocate

If you drop an object from the library onto another object (in this case a plane), it will be placed inside that object and follow any location of that object.

capture1.png

To move objects into one another that are already in the model, use the "Edit Selected Objects" window (open in the top bar menu under "View").

capture2.png

cai-tien-pa2_1.fsm


I just thought it is weird that Transporter2 (and all other Task Executers) move slower because Transporter1 loaded something (as an example).

Message 5 of 7

laitriminh
Not applicable

I've understood the part about placing objects into another plane. Thank you, Felix.

As for controlling the speed of task executers, I've consulted the Flexsim community and initially thought it would work independently for each task executer during load and unload. Could you guide me on any alternative methods to independently limit the speed of task executers during load and unload? I appreciate your assistance, Felix.

0 Likes
Message 6 of 7

moehlmann_fe
Advocate
Advocate

In an Event-triggered Source (or a Wait for Event activity) you can assign the "Event Object" (the object that the triggering event belongs to) to a label on the token.

capture1.png

That way you can identify which member of the group triggered the event and use the reference to only change that objects speed.

capture2.png

Alternatively, you could set the speed change up in each objects own triggers.

capture3.png

Message 7 of 7

laitriminh
Not applicable

Thank you so much, Felix.

0 Likes