Jump to content

Search the Community

Showing results for 'optimization model'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Hi, I am trying to build an object library for an airport terminal. For this, I build the objects as separate models and place them in a 'sampleairport' model for testing them all together. The 'sampleairport' model contains all the objects, so it has no issue referencing to properties from the placed objects. However the other way around does not seem possible. For example; I want the user to import a standard format flight schedule, which will be uploaded in the 'sampleaiport' model. Now I need to reference this table from the other models, but Simio does not allow me to do this? Is there a way I can reference the table or other properties from models in my other models? Thank you Jason
  2. A demo model on how to create sub-classed object with moving part, collect stats and show on dashboard. Have fun! ParkingEntryAndExitBoomGates.spfx
  3. The SkyBox icon on the View Ribbon opens a library of static and dynamic scenes that can be placed in the 3D animation. Dynamic scenery includes several options for clouds that move with the animation as the model runs. Typically, the Speed Factor should be set to 5 - 10 or greater to see movement. Static skybox options include many indoor and outdoor scenes. Indoor applications include adding building walls to surround your model. The 'None' option will remove any existing skybox. Users can create their own SkyBoxes as well. The “library” skyboxes are simply *.zip files with images inside them with the names front, back, left, right, top, bottom. They don’t need to have all of those names in them, Simio will use whatever ones it finds. They are located in the Skybox folder under \Public\PublicDocuments\Simio. Note when you first apply the SkyBox, you can only view it in 3D and you may need to use the Ctrl Scroll wheel to move the camera down to where you can see the horizon. There are over 20 SkyBoxes that are installed with Simio. A few more are attached below. Simply download and save these zip files in the C:\Users\Public\Documents\Simio\SkyBox folder. The next time you open Simio you should see something like this under SkyBox options: Here is an example of the MFGPlant SkyBox with a server in the foreground: If you create your own skybox images that you feel might be useful to others, please share them here. Hospital.zip MFGPlant.zip Warehouse.zip Airport.zip CleanMFGFacility.zip NEW NOTE: We just decided to reduce the size of these and some existing skybox files and include them all in Sprint 215. So it is probably better that you just wait a bit unless your need is urgent.
  4. Hi All,

    In my Model I have a input table and while trouble shooting if I have to pick a particular order as in the below screen shot, it takes a while to search the same( I have approx. 2000 rows). Are their any efficient methods to search a particular row in table if not can this be added as a feature in Simio's next update? Right now its a drop down and then the order needs to be searched.

    Thank you.

    Regards,

    Unmesh

    SIMIO_AllACtivity.PNG

  5. Assuming you are are using the prebuilt task sequencing logic in the server you could just add an add-on-process either after the predecessor task or before the successor task that delays for the given amount of time. If you are using a table to read these tasks add a column for the delay, make a model level process with a delay value of TaskTable.Delay. Then reference this process in the Before starting task or after completing task of the task sequence.
  6. A single track demo model of train operation from pit to port. You can define number of wagons, locomotives, the position of locos, the sequence of the fleet, etc. Contact me if you have any questions. PitPortDemoModel.spfx
  7. Let's see if I can elaborate... The following outlines the relevant characters in simio file "table_selection_by_name.spfx." Model->Definitions: Properties: OptionId (Entity Property, default=null) _SelectedTable (Table Property, default=tableOption1) States: RowId (integer, default=1) maxEntities (integer, default=2) ModelEntity->Definitions: States: _id (Integer, default=0) row_num (integer, default=0) temp (integer, default=0) Model->Facility: ModelEntity Types: Option1, Option2 Source1, Server1, Sink1 Source1->Entity Arrival Logic: Entity Type = OptionId (Reference Property) InterarrivalTime = 1 second Source1->Stopping Conditions->Maximum Arrivals = maxEntities Source1->Add-On Process Triggers->Created Entity = Source1_CreatedEntity Sink1->Add-On Process Triggers->Entered=Input_Sink1_Entered Model->Facility->Controls->General: OptionId = Option1 _SelectedTable = tableOption1 Model->Processes: Input@Sink1 Add-On Processes Input_Sink1_Entered: [Begin-> Tally(temp = ModelEntity.temp) End] Source1 Add-on Processes: Source1_CreatedEntity: ************************* [Begin->Decide1(IsOption1 = True)-> Assign(maxEntities = tableOption1.AvailableRowCount)-> SetRow(tableOption1, RowId)-> Assign(ModelEntity._id = tableOption1.id, ModelEntity.row_num = tableOption1.row_num, ModelEntity.temp = tableOption1.temp)-> Assign(RowId = RowId + 1)->End Decide1(IsOption1 = False)-> Decide2(IsOption2 = True)-> Assign(maxEntities = tableOption2.AvailableRowCount)-> SetRow(tableOption2, RowId)-> Assign(ModelEntity._id = tableOption2.id, ModelEntity.row_num = tableOption2.row_num, ModelEntity.temp = tableOption2.temp)-> Assign(RowId = RowId + 1)->End Decide2(IsOption2 = False)-> End] ************************* It is here that I could like to simply the logic using something like _SelectedTable instead of tableOption1 and tableOption2. I would like to know how to replace Source1_CreatedEntity's above step definitions with something like: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> SetRow(_SelectedTable, RowId) Assign(ModelEntity._id = _SelectedTable.id, ModelEntity.row_num = _SelectedTable.row_num, ModelEntity.temp = _SelectedTable.temp)-> Assign(RowId = RowId + 1)-> End] But this replacement does not work. The following works, but I'm searching for a way to do this without replacing the column name with an indexed value: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> Assign(ModelEntity._id = _SelectedTable.id[RowId, 1], ModelEntity.row_num = _SelectedTable[RowId, 2], ModelEntity.temp = _SelectedTable[RowId, 3] )-> Assign(RowId = RowId + 1)-> End]
  8. How do I access a table column by name using a table property defined for the model? In my model, I have multiple data tables each with the same named columns defined for each. Each table has a different number of rows. For a run or a set of replications, I want to select a table to use. I have defined a model-level table property named _SelectedTable to support this. During simulation runs, I want to access this selected table's data by row and column name. Specifically, I want to use this data to update model entity state variables. I also want to stop creating entities when all of the rows of the table have been accessed. I've tried two partial solutions to this problem (attached), but neither are ideal. 1. Create a large set of decide add-on processes to choose the decide the correct table and explicitly reference it by its name. This requires a lot of redundant steps and maintenance if tables are added or removed. The attached example contains just two tables. Controls OptionId and _SelectedTable must be set to either (Option1 and tableOption1) or (Option2 and tableOption2). The first control selects the Entity Type and the second selects the Table. 2. Using the column index number instead of the column name, I found I can use the table property to access the selected table. This method is prone to error if the table schema changes. It is also unclear which table properties, such as "AvailableRowCount" are accessible via this approach. The attached example contains two tables just as the previous. The control _SelectedTable chooses which table from which data is acccessed. In practice, the data tables will be substantially larger than the ones included in the attachments. Looking forward to constructive guidance, Ryan table_selection_by_name.spfx table_selection_by_column_number.spfx
  9. Hello, I am interested in doing a simulation model with a colleague. Because of this we want to reduce the workload by dividing the tasks to be done. Is it possible or is there any way to join different files (models) into a final one? Or copy objects from one model to another? Thanks in advance.
  10. Hi atuba, Thank you for your friendly reply! I'm using Matlab 2019a and Simio12 in Windows10. I did try to use the CallMATLAB dll file online, but that required the corresponding software version and system version. I rewrite the code in C# that calls Matlab with cmd. The created dll file works but requires a pause after the CallMatlab step, and it was inconvenient but helped me obtains the experiment result. I will definitely try your suggestion next time the optimization-based simulation is needed. Thank you!
  11. Hi All,

    I am repeatedly getting this (attached picture) error in my Simio Model, what could be the probable cause and what should I make sure so that this problem does not repeat?

    I have added transfer, end transfer step in my process logic.

    I also have made sure I have enough storage capacity and also enough vehicles to complete the transfer.

    any suggestions would be helpful.

    Thank you :)

    SIMIO.PNG

  12. My model currently reads tasks from a table and I am trying to model material consumption. For each task there are groups of materials: A, B, C, and priority values: 1, 2, 3. To complete a task, only one material type from each group A, B, and C must be consumed, and the order they are consumed in should be based of the priority. For example, if task one had entries like the table below, if all materials were available, materials 1,4,6 would be consumed. If material 1 was no longer available materials 2,4,6 would be used, and if material 6 was not available the task could not be done. The material requirement section in the processing task editor does not seem to support groupings and priority and was wondering if anyone had an idea on how to accomplish this. Task MaterialName Group Priority Quantity Task1 Material1 A 1 1 Task1 Material2 A 2 2 Task1 Material3 A 3 1 Task1 Material4 B 1 1 Task1 Material5 B 2 3 Task1 Material6 C 1 1
  13. We are building a model of a medical facility where some patients need to be evacuated out of the model using a vehicle. In its current state, when a patient is in the ward or ICU, it will be determined if they need to evacuate. While they are waiting for an evacuation transport, they will be in a task sequence loop. We would like some way for the patient to seize a spot on the transport, perform the tasks loops, and once the transport arrives at the facility transfer node, the patients break out of their loop, and seize a worker to be carried to the vehicle. We have patients looping correctly and workers carrying the patients to the transport node, but they are not waiting for the vehicle to arrive. Having a condition that breaks the loop when the vehicle is in the loading node is not working because as it leaves its current node does not update quickly enough so entities go to the node that then are not picked up. A potential solution we found was to use the MinimumDwellTimeExpired State variable for the Evac transport in the loop conditional (If transport is dwelling then do not continue the loop and get routed to the transport, if it is not dwelling stay in the loop), however this variable is not public with no apparent way to make it so. We have also tried to make a function in the vehicle to try and mirror the state variable value, but this also did not seem to work as it does not update during the run.
  14. Hi, jdoran I have the same problematic as you. I looked at the model presented by DanSpice but my problem is that the Server seizing my Worker is located in a submodel. Did you manage to fix this issue? Thank you, Maude
  15. To pause Simio can be implemented by add a breakpoint after the step that calls MATLAB function and continue the model after the MATLAB program is finished.
  16. Hi all, how would you approach this model? Workers are transporters and must be present at the servers to supervise each step. For now I have one worker and am using a personal edition of Simio. Server1 is an observation microscope where entities pass through a survey step. Server2 is a robot dispensing glue that has a finite window of appropriate elasticity after mixing. I started my model with a version very similar to the MoveableOperator where my worker goes back and forth between two servers running 6 entities individually before switching... six being the number of entities we believe can be processed with one batch of glue. When trying to model the delay step of glue mixing (ideally with worker movement to a separate node or location) I thought to add it as the first in a task sequence at Server2 with the condition that it only need to be applied when the server buffer was full of the 6 entities. This seemed to not fit well with the priority decisions that the worker already had for movement and the worker stalled. Basically, how would you model the fact that every 90 minutes we need a 15 minute delay for glue mixing and that once the glue is mixed the priority needs to be at Server2 until glue elasticity runs out?
  17. Hello, I was wondering if someone can help me with doing sensitivity analysis in Simio? So I know of the input parameters tab where I can see how much does the Objective function change by changing the time input parameters by 1 minute. But, I'm looking to see how much does a variation in a property in the model, for instance changing mis-identification rate, on the DIDO time and objective function. My thought process was just to run different scenarios and take the difference between the two and that would tell me how much it has a change. Yet, my professor suggested the following and I was still confused about how to do it: "So you can ESTIMATE a derivative by just COMPUTING (g(x + h) – g(x))/h for a small h. This is called “finite differences.” Thus, you can estimate sensitivities by running simulation experiments at different settings. In your case, if p is the nominal probability of misidentification, you can run an experiment at p + h also, then estimate the sensitivity by taking differences. Simio’s internal sensitivity analysis is able to estimate derivatives using a trick that works in some, but not all cases, without the need for an additional run. But when it does not apply you need a different method."
  18. I need help on figuring out how to model my logic. I figured it would be easier to explain what I needed on my actual model, hence the picture with all the floor labels. ModelQ2.spfx
  19. Most probably secondary resources will work for you, support here!. I can not open your model since we are using different editions. If we were to use the same edition I was able to open your model. Thus, while developing models which you will share with someone else you should consider this constraint.
  20. I think secondary resources is exactly what I needed. If not, I'll be back to the forum. I'm surprised the model didn't open. ModelForQuestionCOPY5v.3.spfx
  21. I was not able to open your model. Thus, can not say anything for sure. But, did you try other resource seizes/releases option under secondary resources of server object? It seems it suits your needs?
  22. Note: WkA and WkB essentially do the same thing, so I'm essentially just explaining WkA on the seizing worker to make things simpler. What needs to happen: I need Wk1 to wait until WkA is at the output node before processing the entity. Then resume movement (to go to input of BPICK) only after the event of Output@APICKRiderWaiting (basically the processing finished; I found it only works when I use the wait for rider waiting). The same thing needs to happen with BPICK. Then Wk1 needs to head back to nRouter. Current State & Problems: Right now it does not wait to process the entity until WkA/B gets there. I have tried adding that as a row in the events more logic, but it doesn't work. I have also tried putting a Wait step with that as it's event before the other Wait. However, Wk1 still gets to APICK/BPICK and immediately the entity is processed. Wk1 does however work on not moving on until the entity is processed. One problem with that though is that Wk1 does not go back to nRouter after finishing at BPICK. I have tried several things like setting node, but perhaps I didn't have that step in the right place. Both entities have a destination by the way. This next photo is showing the seizing of the worker. The decide and execute steps refer to interrupting processes but all those still include the seizing step you see here. I have also attached my model in case you need to run or see it. It may be hard to follow all the logic on other add-on processes other than the ones I showed you. I have other problems in other areas, but this problem I'm posting about is not that affected by the other problems of the model I think. Though honestly, if you find that you may have a solution or fixes in basic logic to those (because its glaring) then by all means, share them. ((And yes, I have looked at InterruptibleOperator simbit as well as other Interrupting example simbits but am still confused on the whole thing.)) ModelForQuestionCOPY5v.3.spfx Thank you!
  23. Hello Insiders, I'm new to Simio and having trouble modelling the simulation for my Master Thesis. I would like to model an assembly line with two servers. Both have 3 fixed tasks and one shared task - which can be executed by server1 as his last task or by server2 as his first task. If the task is executed by server1 or server2 should be decided for every entity according to a rule (e.g.: if there are more than 2 entities waiting in the queue at Server2, the task should be executed by server1, otherwise by server 2.) Now I used the Processing Task Editor, where I modeled Task 4 at server1 with a conditional branch type, but I'm struggling to formulate the condition. Similarly, at server2 I would like to model that the first task of this server should only be executed, when the Task4 isn't executed at server1. I would really appreciate every help!
  24. Hi LizMB, Without evaluating your model in detail, that error is due to a transfer not being completed (transfer request while entity is still being transferred previously). It is typically when you make use of a transfer step and either not end the transfer (using and "End Transfer" step), before transferring it again or when Simio attempts to transfer the entity (due to inherent worker/node/vehicle logic) before the end transfer is completed. It could also be if you interrupt something before a transfer action has completed. What also happens is when you have processes executing e.g. On-Entered and the same entity executes one or more such processes at the same time, resulting in a inherent transfer request before the previous has completed. It could be a matter of timing or the sequence of events, or a problem in your logic. When you are using a transfer step in your logic it is useful to have a process with an End Transfer step that is either subscribed to certain events or executed on an event triggered e.g. StationName.Entered. If you were to interrupt a process/action, you can either fire the trigger event or just use logic to test whether the entity has transferred. With an add-on process it is best to understand the sequence of events happening in the Simio logic and ensure certain logic gets completed first or that you don't have parallel requests at the same time. As you can see there are multiple ways to address something like this and your approach depends on your logic and the system being modeled. Good Luck. H
  25. Hi LizMB, I have a few specific recommendations for you below, but generally I suggest looking into the SimBit models provided on Simio's Support Ribbon. A PDF opens with each model that contains a detailed description, so they are a great tool for learning specific approaches and techniques. A few that I believe are related to your particular problem are "Moveable Operator", "Interruptible Operator","Keeping Worker Reserved", and "Entity Follows Sequence". Worker1 carries both entities to their respective nodes and leaves them in their respective stations after worker(A/B) "checks them" (I used a delay to simulate this check) and then Worker1 moves on. For this objective, I suggest setting up your drop off stations A and B as a Servers. Use the Processing Time property to represent the "check" while seizing both workers needed (see the Operator related SimBit for more information). Make sure all entities are assigned a sequence, so Worker 1 knows where to drop them off. The worker(A/B) only picks up the entity if needed. So if the worker was with another entity in process (like Srv(A/B)), he would go check the new entity so that worker1 can move on, but would return to finish out the first entity to the end. Assign entities that enter the pick up stations a higher priority, and interrupt the Workers at SrvA and Srvb if a pick up task arrives (See Interruptible Operator for more information). Ensure that the Workers have the needed paths to travel to all of the destinations required in all directions. Currently, WorkerA and WorkerB cannot travel to the Outputs of the Servers. Other suggestions: Look into using a Timer Element that could trigger the entity creations at SrcA and SrcB. That should remove the need for Source1 and Sink1. If the Worker's travel doesn't need to be defined by a path, I suggest setting the Initial Travel Mode to 'Free Space Only'. The error message you are receiving is related to the Add-on Processes on the A and B nodes. Whenever Worker 1 enters either of those nodes the process is triggered and tries to complete the process with relation to the Worker. Restructuring the model with Servers in this area should help you get around this issue. Thanks, Ryan
×
×
  • Create New...