Jump to content

Vehicle with Driver


dsturrock
 Share

Recommended Posts

People often want to model two or more vehicles or entities moving together. There are a few components to this:

1) Seizing the resource appropriately - can be done in processes, but often best done within the vehicle object to make the modeling easier. Here, a vehicle has 4 properties added to support use of an operator.

VehicleWithDriver3.PNG.af7302e278865b5359ccaac6a152b3d2.PNG

2) Animating them moving together - the picture below shows use of a second queue animated on the custom vehicle.

3) In some cases, you also need the "driver" to be shown moving. The Attached Animation Speed illustrated below, accomplishes that.

VehicleWithDriver1.thumb.PNG.cf847fd1a1e3273586406e6790cd450b.PNG

 

I have attached a model that uses a custom vehicle object to model a wheelchair which is "driven" (pushed) by a person to pick up a patient.VehicleWithDriver2.thumb.PNG.eb45808a1e191c55e827f7a0e23b76b4.PNG

*********** FOR VERSION 190 AND EARLIER *************************************

VehicleWithDriver.spfx

You could use the same approch, possibly with just animation changes, to model something like a truck or forklift that requires a driver.

In fact, I just added a second model to that same project that illustrates use in manufacturing (e.g. a lift truck and driver).VehicleWithDriver.spfx

VehicleWithDriver.spfx

***********************************************************************************

************** FOR VERSION 191 AND LATER  ***********************************

VehicleX3.spfx

VehicleWithDriver_VehicleX3_Examples.spfx

For more information on the update, see the post below.

***********************************************************************************

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...
  • 4 weeks later...

i was wondering if VechilceX1 could carry different objects.

For example carry driver (worker1), the paramedic (worker2) and patient(ModelEntity) from an accident.


Can they all be bunched up on VX1 and sent on to where ever I need them? If thats not possible, what would be the way to implement that?

Link to comment
Share on other sites

  • 1 year later...

In your Vehicle Properties window, those fields you have highlighted do not seem to be on my Simio version. There does not seem to be a dropdown I am missing either. Could the version of Simio have changed? Trying to do exactly this example with a piece of equipment (an entity in my model) being moved with a tug like tool that is driven by a worker.

 

See attached for my Vehicle Properties window. 

Thanks, Michael

Vehicles Properties Window.PNG

Link to comment
Share on other sites

Michael,

VehicleX is a Custom Object (Subclass of Vehicle) with several Definitions, Processes, etc. created by (I'm assuming) Dave. This is why you aren't seeing some of those Properties in your Vehicle Properties window. You may download the "VehicleWithDriver.spfx" file provided above and explore it further.

Happy modeling,

Adam

Link to comment
Share on other sites

Hello

I am working on the road transportation problem and I use the vehicles. I have a couple of questions about the vehicle's features and usage. 1) How can I define an Off Shift for the vehicles? 2) How can I extract the total amount of times or distances that a vehicle is traveling empty (without load)? 3) Is there any way to create any response regarding the average performance of all the vehicles used (i.e. average idle time of the vehicles) to perform an experiment? 

 Thanks,

Amin

Link to comment
Share on other sites

2) How can I extract the total amount of times or distances that a vehicle is traveling empty (without load)?

you should subclass the vehicle and create a list containing all the loadstus(string)

image.png.d11a6c56ce23b6b2f0ede76f0ad51505.png

and in its process logic( like OnRiderLoaded, RideStation.Exited....) you need to assign its loadstatus appropriately.

then you can get the results using a pie chart:

 

image.png

 

Edited by jzhou
Link to comment
Share on other sites

Hello

I mean each vehicle select its next load based on its unique strategy. for example, we define different entity priority lists for different each vehicles. I am trying to differentiate the behavior of the vehicles to select the next load. 

Regards

Amin

Link to comment
Share on other sites

  • 7 months later...

********************* FOR VERSION 191 AND LATER *******************************

 

In Sprint 191, a change was made to the Seize step's On Seized Process and the Release step's On Released Process which impacted the Token Associated and Context Objects. This change effects the logic in VehicleX. For use in Simio versions 190 and earlier, please use the files at the top of this thread.

Attached is an updated VehicleX (now VehicleX3) for use in Simio 191 and later, as well as the updated examples using VehicleX3. 

VehicleX3 now will reject an Entity's Transport Request if an operator is not available for that vehicle. This prevents entities from seizing and waiting for an unmanned vehicle. 

 

***************************************************************************************

 

 

 

 

VehicleX3.spfx VehicleWithDriver_VehicleX3_Examples.spfx

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi, I recently downloaded this model and I'm trying to understand how the vehicle with operator object was implemented. What are the relevant processes created and how would I go about creating my own? I tried understanding the vehicle properties in the Definitions tab, but there were many and I don't know how to start understanding what each does.

 

Thanks!

Link to comment
Share on other sites

Hi Alberto, 

I recommend you take a look at a standard Vehicle object and compare the VehicleX3 to see the updates that were made. Only 6 new Properties were added to the standard Vehicle to make VehicleX3. The numerous other Properties were inherited from the Vehicle and were not changed. There are other small changes for the States, Events, and Elements as well. Doing a comparison between the standard Vehicle and VehicleX3 will be the most beneficial way for you to learn.

Additionally, all the updated Process Logic in VehicleX3 has been colored. Any grey process steps were inherited from the standard Vehicle. 

Happy modeling, 

Liz

  • Thanks 1
Link to comment
Share on other sites

  • 2 years later...

Hello, and thanks for the Vehicle with Driver model; it seems quite useful.  However, I've run into a problem when using two different vehicles that require the same driver; wondering if someone can help.

Situation is where a Part (Entity) requires Vehicle_A with Driver_1 to go from Source to Station_1, then requires Vehicle_B with Driver_1 to go from Station_1 to Station_2 (Exit).  If another Part arrives at Source (requesting Vehicle_A) while Driver_1 is busy with Vehicle_B, the request gets put into the global VehicleRequestQueue.  When Driver_1 becomes free/idle, it looks at the global queue and sees the request, but for some reason Driver_1 seems to ignore it ("...failed to find and plan an eligible visit request").  Is that because the request was for Vehicle_A and not the Driver?  If so, how would I get Driver_1 matched up again with Part Entity requests for Vehicle_A?  Thoughts?

Thanks, John

Link to comment
Share on other sites

  • 3 weeks later...

Hi John, 

The entity is requesting a ride from the vehicle and the vehicle will seize the driver if available. However, if the vehicle is unable to seize the driver, it will reject the ride request and the entity will move to the Global Visit Request Queue, as you are seeing. You can attempt to have the Vehicle check again if it can now pick up the entity, and it will run the process to check if a driver is available. To have the Vehicle check the Global Request Queue to see if it can give a ride, use a PlanVisit step. Ensure that the Vehicle, in this case Vehicle_A, is the object executing this step. 

By default, the Vehicles are not aware if the Driver they need becomes available. You might consider using a Subscribe step on the Vehicle's OnInitialized process. This Subscribe step can watch for an Event and if that Event occurs, can trigger a related process. 

For example, the Vehicle might wait for the Driver.Released Event. When this Event occurs Process1 could run. In Process1, the Vehicle could execute the PlanVisit step. 

 

image.thumb.png.5f91f03d9fc995e8f15ca6bcb9f82516.png

 

For more information, I recommend the Help pages in the Simio Reference Guide titled "PlanVisit" and "Subscribe". 

Happy Modeling!

Link to comment
Share on other sites

×
×
  • Create New...