ExtendSim ships with tons of example models! Here's a few more exclusive models that aren't included with ExtendSim, but you might want to check out.
ARM Changing Resource Capacity During a Simulation Run
ARM Dynamic Shift Assignment with Preemption
ARM Select Closest Resources Using a Queue Equation Block
Combining Then Separating Oil & Water
Fleet Modeling
Fleet Refueling
Loading & Unloading
Production Line
Purging a Tank Based on a Schedule
* Note: Download and decompress the below model files, then open them with the ExtendSim package specified. If you don't already own the specified package, use ExtendSim Player RunTime to open and run these models.
Sample Models • Descriptions & Downloads
Advanced Resource Management (ARM) Changing Resource Capacity During a Simulation Run
Key features: Advanced Resource Management, ExtendSim database, resource capacity, scheduling
This model illustrates a simple mechanism for dynamically changing the capacity of individual resources in ARM during a simulation run. Using a little known ARM feature that allows individual resource records in the Resources table to have a capacity greater than 1, situations can be simulated where a single record in the Resources table can either represent multiple resources or a single resource capable of working on multiple tasks concurrently.
Advanced Resource Management (ARM) Dynamic Shift Assignment with Preemption
Key features: Advanced Resource Management, Equation blocks, routing, preemption, shift management
This sample model illustrates how to avoid the challenges and complexity introduced by associating shifts with blocks while increasing flexibility and reducing complexity by using model logic that associates shifts with items.
In a nutshell, here's the problem solved by this model:
- The items in this model represent tasks that need to be performed by one or more resources.
- Resources need to be associated with shifts to control their availability.
- Items need to have resources allocated to them before they can be sent to an Activity block where the task will be performed.
- Items need to be preempted from the Activity block if the resources allocated to these items go OFF shift.
- The shifts assigned to resources need to change dynamically during the simulation run to accommodate changes to the state of the system.
Model note: This download contains 2 files - the model itself and an include file called EQB ARM functions.h. Make sure you save the include file in the same folder as the model.
Advanced Resource Management (ARM) Select Closest Resources Using a Queue Equation Block
Key features: Advanced Resource Management, Queue Equation block, spatial awareness, relative positioning
This model demonstrates how to use ExtendSim Advanced Resource Management (ARM) features to make resource allocations by selecting the required resources that are closest to the location of the service being requested. This is a simple model in terms of block structure, but quite powerful in terms of implementing this concept.
Resources are given custom properties that record what their current locations are in x and y coordinates. A locations table is created in the Advanced Resources database to specify x,y coordinates of the different locations where services are requested.
Locations are randomly assigned to resource ordering items immediately after they are created.
The RR_closestForklift_AND_closestOperator resource requirement is created containing 2 quantity expressions:
- One for selecting the closest forklift, and
- One for selecting the closest operator.
These quantity expressions use filtering conditions that select a resource based on a matching resource ID. The matching resource ID is specified using the forklistResID and operatorResID attributes.
A Queue Equation block is used to calculate the closest available forklift and operator to the location of the resource ordering items. Once these resources have been determined, the Queue Equation block allocates the resources to the item using the RR_closestForklift_AND_closestOperator requirement (this is specified in the Options tab) and updates the location of the allocated resources to match the items' locations.
Model note: This download contains 2 files - the model itself and an include file called EQB Attribute functions.h. Make sure you save the include file in the same folder as the model.
Combining Then Separating Oil & Water
Key features: Discrete Rate, merging, diverging
Simulates the process of a continuous flow of separate sources of oil and water that merge into one tank. Once in the tank, the two liquids are pumped back out separately.
Since oil and water do not mix, pumps at the bottom of the tank pump the water out. The top of the tank has pumps to pump the oil out.
Fleet Modeling
Key features: hierarchical blocks, database, reports, routing, travel time calculation
Refueling a Fleet of Vehicles
Key features: database, queueing, batching, routing
Simulates the refueling of a fleet of vehicles from fuel trucks.
From time to time, a fleet of vehicles needs to be refueled. Trucks refuel the fleet of vehicles, then must return to their refueling station to be refueled themselves.
Tank levels of the refueling trucks and vehicles from the fleet are monitored. When a vehicle requests refueling, trucks with sufficient fuel are dispatched to them. When empty, the trucks return to the refueling station for their own refueling.
Loading & Unloading
Key features: Rate library, Interchange, Valve, storage, berth, shipping
The Loading & Unloading model illustrates three different ways to use the Interchange block (Rate library) to model the loading and unloading of ships in a berth. In this example, ships arrive at the berth to load and/or unload product. The berth has the capacity to store product available for loading.
- Solution 1 -- Use one Interchange block to simulate both the ships at the berth and the berth itself. The Interchange block holds the product available to load and has the capacity for storage so the ships can unload.
- Solution 2 -- Use one Interchange block to simulate the ship loading or unloading. Tank and Valve blocks can be used to simulate the loading and unloading of product to and from the berth.
- The quantity of product determines the load and unload time. Valve blocks control loading and unloading rates.
- The Interchange block is set to release the ship when the ship is done loading product. When the ship is unloading product, an equation in the Equation block sends a release message to the Interchange block when each ship is empty.
- Solution 3 -- Use one Interchange block for unloading and one Interchange block for loading.
- The quantity of product determines the load and unload time. Valve blocks control loading and unloading rates.
Production Line
Key features: Rate library, database, discrete rate modeling, product flow, scheduling
The Production Line model simulates a typical flow-based production line in which a specific recipe dictates how starter products are mixed then processed based on a specific production schedule. Final products are stored on-site until trucks arrive to load the products.
Model specifics include:
- Feeding tanks which supply 4 different starter products.
- Starter products are fed to two production lines which produce 7 different SKUs. Each SKU has its own specific recipe utilizing the 4 feeder products.
- Each production line has its own specific production schedule.
- Once processed, the resulting final products are stored in their own tanks until trucks arrive to load the products.
Purge a Tank Based on a Schedule
Key features: combining discrete rate with discrete event, emptying a tank, stopping process flow
This sample model shows the interaction of an Interchange (Rate library) block with discrete event blocks to purge a tank based on a schedule. Take the example of a food processing plant that stores product in a holding tank that needs to be cleaned on a nightly basis. It contents must be completely drained. You could use a Tank (Rate library) block to represent that holding tank as it has the capacity to hold defined amounts of flow as time advances.
Since you need to purge the contents of the holding tank each night to clean it, use an Interchange (Rate library) block. The Interchange has the ability to interact with items that are generated by discrete event blocks. Flow can enter the Interchange block not only through its inflow connector but also through the arrival of an item. Conversely, flow can exit the block through its outflow connector or through the exiting of an item as this block holds only one item at a time.
Download the model, then open its Notebook to see the cloned dialog of the Interchange block and view its controls. The contents of the Interchange over time is charted and visible in the Notebook as well.
Using Scripting to Place New Blocks & Connect Them
Key features: scripting in ExtendSim, Equation block usage
Automate the placement of blocks to a model worksheet, then automate their connection by using scripting in the Equation block.
Download this model, then click the Test Equation button under the Equation block labelled Scripting Placement of Blocks. This will activate the equation in the block and instruct it to place 2 blocks on the worksheet...in this case, 2 Constant blocks. Once you've placed those blocks on the worksheet, use the Test Equation block under the Scripting a Connection Line Equation block to automate connecting those blocks.
To see how the scripting functions are called, double-click each Equation block and then click the Open / Close Equation Editor button.