Jump to content

Search the Community

Showing results for 'changing arrival formats'.

  • 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

Calendars

  • Simio Calendar

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. A simple approach is to create the highest resolution image you can find using any map program or other software. Save it off in one of the import formats: Hint: some software allows export as a high-resolution pdf. Then you can convert that pdf to a png file for import into Simio. Then import that as a symbol and place that in your model (preferably to its original scale). Then lock that to the background and build your model on top of it. The main down side of this approach is that it is limited by the resolution of your image, so if you zoom in, it might appear fuzzy.
  2. You want to make the servers have a Capacity Type of Schedule and follow the default Standard Week. If you don't want to give them a lunch break, just change the definition of the Standard Day. Leave the default Off Shift Rule of Suspend Processing. The easiest approach for arrivals is to have a Source with an Interarrival time of 4.33 weeks (or 4 weeks) and an integer random distribution for the Entities Per Arrival. Doing a "first Monday" is possible, but a bit complicated because Simio time does not have the concept of Month because months are of varying size. You could probably specify the initial Time Offset to be early in a month, then maybe make the interarrival time be something like DateTime.DaysInMonth(DateTime.Month(Timenow),DateTime.Year(TimeNow)) which would make the next arrival be exactly one month later (same day of the month). When you say you have no buffers, what do you mean? If an entity arrives when all servers are busy, should it be balked (possibly disposed) or should it wait somewhere like on the server input node, on a path or in the Source output node? If the above arrival approach isn't exact enough, you can put exact arrivals in a data table. The arrival time could be specified at any exact datetime you desire and still have the Entities Per Arrival be a distribution.
  3. Perhaps its a little late, but attached is a possible solution to your problem. This started out pretty simple. The problem was how to specify which server is serviced by which resource. One way to do that is a table. But since its changing over time I chose to use a time-indexed table, that is a table that knows about time and returns different data at different times. In this case, each row corresponds to 12 hours and each column specifies the resource needed by the respective server. As they say, "the devil is in the detail" and in this case the "devil" is that the specified resource may change between seize and release (e.g., seize at 11:59, release at 12:05). Simio doesn't like that and all the easy options re-evaluate the resource expression on release and so may try to release the wrong resource. One option would have been to create a custom server, but that seems to be overkill. Here is a somewhat simpler approach: 1) Add an entity state named MyResource and assign it at the last possible moment before use. This value will be used only for release. The assigned value is drawn from the table using an expression like Table1.S1Resource.TimeIndexedValue.Object. Note that the .timeindexedvalue indicates to get the value associated with the current time. And the .object at the end is used to tell Simio to return that value as an object not a number. 2) Use Secondary Resources - Other Resource Seizes to seize the name specified in the table using the same expression above Table1.S1Resource.TimeIndexedValue.Object. 3) Use Secondary Resources - Other Resource Releases to release the resource saved in MyResource. TimeBasedWorkerSelection.spfx
  4. hello :), I'm trying to make a model with three servers. Everyone uses different Workers type and have different operation time per entity (no problem in these points). The difficult part is the next, every work center (server) has a different setup and changeover, and both happens without the presence of the entity. I mean the setup of some servers starts when the entity is created, (before the arrival to that server), and after the operation the changeover has to be done, in both cases we need to use or assing a worker. How can I do that?
  5. First of all, Thank you so much for the answer in advance, but could I bother anyone who answers with some example model or picture of the method I am still new to SIMIO, so I am concerned about following the advice correctly. 1) Let's say every day I have X number of people arriving( using distribution to generate numbers outside SIMIO randomly). This is the shop where people visit from 8.00 to 20.00 every day with different visit rates per hour (example as below), and I use X to time to this percentage so I can get the exact number of visits per hour. The problem is I want to make an arrival interval random with some sort of function/distribution or table(excel calculation), not a stable arrival rate. My idea is random from 0 to 1 and gives the random number (Y) to match with X outside SIMIO and put the whole table in, but I wonder, is there any better method than this? 2) The second question is about two entities from different sources, A and B. A and B will go through the same server for three servers, but after server 3, one will go to 4, and one will go to 5. Can you give me any advice on how to do that
  6. Well, there are two problems in your model: First, there are many gates that are not following the data table. Second: every gate should be on the Gate table, regardless if they will have flights or not. If not, they will create entities on every single arrival of the departure table. You have many gates that are not included on Gate table.
  7. We used your method before and it WORK!! But we keep changing and modifying our simulation. Today we imported a new data again but still have the same issue... we followed your method already... 20230401 FullGate version 13.spfx Departure.xlsx Gate.xlsx
  8. Hi Nicolas, I would investigate the Server property called Initial Capacity. This sets how many units of capacity are going to be available for the Server. You could also change this during the run by Assigning the Server's CurrentCapacity State Variable. I suggest checking out the SimBit titled "Worker Uses Work Schedule". You can access the SimBits in the Support ribbon in Simio. In this SimBit, I recommend changing the Initial Capacity for the Servers. You could set them to '6' or any value. When you run, you will see that the entities only move into the Process Station when they have successfully Seized the Secondary Resource. So even though there is 6 units available only 1 will be use when the Worker is able to process the entity. You can also experiment with giving the Worker a different Initial Number In System value so there can be more Workers. You will still see the same behavior; the number of entities that move into the Server for processing will be the number of Workers that were available to be seized. Happy Modeling! Liz
  9. Try changing the reference property units to hours, but not from the Controls menu, do it from where you define the rp. Rds.
  10. It sounds like you are already set up to use a Source with Arrival Mode of Arrival Time and the Arrival Time Property of MyTable.TimeOffset (assuming that your table above is named MyTable). If the column named Object in your table above is the entity type you want to create, then specify the EntityType in the source to MyTable.Object. If the entity you want to create is something different, then add that new column to your table (say PassengerType) and specify EntityType as MyTable.PassengerType.
  11. @River Maybe you can use a Timer element and set its Interval type to Arrival Table and use Timer's event to trigger a Process, within this process, you can do anything you want use process steps.
  12. What you can do is set up a table with a column of DateTime Property for the arrivals and change the Source Arrival Mode accordingly. I strongly recommend you guys to take a look on the Simbits available, they are a really good tool to guide you through your first steps into Simio. For instance, you can find the solution for your problem on a Simbit called AppointmentArrivals.
  13. I'm still experiencing the same problem and haven't been able to fix it. I could use a regular arrival table, but then my pattern would not be a non-stationairy poisson process. So I think that I really need to use these rate tables, but somehow the inputs of the rate table don't reflect the outputs.
  14. Hello Gosia, I recommend using two State Variables to record the start and end times using the function TimeNow upon the Vehicle’s arrival to a Node. A Decide step is needed to check if the Current Node is different from the Destination Node and that is when values of the State Variables are assigned using the Assign step. The Processes will be set at the Vehicle’s Add-On Process Triggers On Entered Node and On Exiting Node. You can visit the SimBit section under the Support ribbon and check the SimBit titled “Record Distance Traveled” to see a similar example. Another approach is to create a custom Vehicle Class and use a Level State Variable instead of the two Real State Variables to collect information of the travel time. I suggest exploring the Level State Variable in the Help pages under the chapter titled “States”. I recommend checking the SimBit titled “Using Level States (from project Infection Propagation Using Continuous And Flow)” as well. Best Regards, Khaled
  15. Hi, I have a production line with 2 sources. The arrival of entity A in source 1 triggers an arrival of entity B in source 2. Entity A and entity B then enter their respective servers for a processing time. Entity A is processed at table_openings between 10 and 15 minutes with probabilities whereas Entity B is processed at table_MF for 10 minutes. The process type is task sequence. Both Entity join at a combiner. Entity A is the parent and Entity B is the member. Afterwards, the combined entity continue along the production line. I have expected processing times for each task at each server. Before starting a task, a process starts where a state statistic registers the state processing time of the entity. I also put list state to verify the schedule utilization. I have verified visually and the state value for processing time is correct for every station while the simulation is running. What I have observed is that the state statistic average processing time for the servers before the combiner is the expected value, however, all the other stations are 10 minutes off. The simio output has the right processing times for all the stations after the combiner but not for the two stations before the combiner. Moreover, the list state average time busy value are ok for all the stations after the combiner but again the station before the combiner, it gives the total number of minutes it was busy. Also, if i do the average of the state log observation for each station in excel afterwards, I get all the correct processing times. I am guessing it has something to do with the combiner, but I am lost. How can the processing time for table_MF be 10,48 when the processing time is a fixed 10 minutes in the facility window? Why is the list State MF and OP different from all the other list states? Thank you for your help!
  16. You might want to look into Arrival Tables. See the following screen grabs. Configure the source to create entities based on the arrival table as follows: Setup the arrival table to define the arrival time and the number of entities per arrival as follows: Hope this helps, Lucas.
  17. Hi, I have 6 entities arriving at exactly 8am each day. Each of the 6 entities will create a certain number of entities on arrival from their respective distributions. How do I model in my source? I cannot have multiple sources as each entity has its own server processing times. Please can you help? Thank you
  18. Hi Alen, I have attached a model with two different approaches to this question. 1. RateTableApproach - the arrival data is stored within a Rate Table. Note: The Rate (events per hour) is influenced by offsets from when the model begins its run, not by the hour of the day. For example, a model begins its run at clock time 7:00:00, the first entry with a Starting Offset of Day 1, 00:00:00 and Ending Offset of Day 1, 01:00:00 would actually correspond to clock time 7:00:00-8:00:00 and not 00:00:00-01:00:00. 2. ProcessLogicApproach - the Arrival Mode is 'Interarrival Time' which is turned on and off via an Add-On Process. Note: You will need to set the Delay step up to correctly account for the clock time you wish to delay before turning on/off arrivals. All the best, Caleb SourceWorkingAsPerTheWorkScheduleForServerAndWorker.spfx
  19. Hi Guys, I have a source producing the entities, which is processed by the server with a worker. server and worker are assigned to work schedule (7Hrs) (12am-7am) arrival model of the server is set to time varying arrival rate. to control the source on holidays. But with current scenario the source is producing the entities on off-shift time. Please help out with a logic, so that source is produces the entities matching to the timings of work schedule. Note: Simulation run is for a period of 1 year. Regards, Alen
  20. 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]
  21. 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."
  22. Hi M_A, Just setting the Sequence property to 'Sequence1' should be enough since you set up relational tables. Because you have Maximum Arrivals set to '1', it is going to produce 1 entity type. I would switch your Maximum Arrivals to '35' and number of entities per arrival to '1'. You will also need to set your interarrival time to '0', so all 35 show up at the same time. It might be best to use a second Source object to create your second shift. I would increase the length of the Ride Station Queue in order to see all 6 passengers boarding the Vehicle. I think the network is fine, but hard to debug. Be sure all travel destinations for the Vehicle are possible. Thanks, Ryan
  23. Hi Ryan, Thank you for the corrections. As always, spot-on advice, that is very appreciated. I do have a few follow up questions. - Do I set the Initial Sequence property to 'Sequence1' or do I need to tell it the row too? 'Sequence1.Sequence'? Sequence 1 is working, but just wondering. - In the SimBit, Entity Follows Sequence With Relational Tables, there are three types of Entities that all flow through the same source with the Source Property, Table Row Referencing, pulling from the JobTable with the Row Number 'JobTable.ProductMix.RandomRow.' For my model, I have two different entities and the source Bldg is supposed to pull BOTH entities with the Table Row Referencing, "JobsTable" with Row Number: "JobsTable.NumberWorkers.RandomRow." But when the model is run, only one entity is ever used. The Table has an ExpressionProperty of Random.Triangular(3,6,9). Is that the problem? The SimBit's table was an actual number. I tried replacing the Expressions with actual numbers and the Entity switched to use the other one but I am still not able to get half the 34 to be one Entity and the other half to be the other Entity. - How do I get the Vehicle to carry its max capacity? The capacity is set to 6, and it only carries up to 4 entities around at any time. This is incorrect, as the Entities are supposed to be grouped into work teams of Random.Triangular(3,6,9) for their initial Source output move. Afterwards they can be individuals or work teams. The Bldg has the Entity Type defined as the JobsTable.Specialty so it should pull from one or the other (like the below mentioned SimBit), and the with Entities Per Arrival Set at 35; and the Entities themselves are set to a population maximum of 17 each and I get a Runtime error of maximum number exceeds limit for the entities. Why doesn't it hit the limit and then pull from the other Entity? - I'm confused about the network you mentioned above. I thought the nodes had to be linked directly (output to input node). So the busy nodes have a lot of paths radiating out from them and it makes it a little messy. Is there a cleaner way to show the routing? Thank you,
  24. Hi Mirek, I think the problem here is your setting arrival mode to arrival table. I am not sure but after generating right entity the source object then assigns it row according to the arrival table which means row 1. Then the right entity (B) follows the wrong task sequence. Try by setting arrival mode to interarrival time. This time it should follow the right seqeunce. I will try other options and inform you if I get any other solution.
  25. Hello, I have a Arrival Table, but I only want to create Entities of a specific part of the Table based on a property. IntCol Entity 0 A 0 C 1 B 1 c So, the source should create all entities with a certain integer in column 'IntCol'. The integer value is assigned by a referenced property that I can experiment with different parts of the ArrivalTable For example: If Property == 0 , create only A and C in the source. How can I do that? All the best
×
×
  • Create New...