Jump to content

Search the Community

Showing results for 'fire event in entity'.

  • 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. Thanks for the example! I see you put the Selection Goal property as "Random", but what happens if I want it to depend on a entity's state variable, for example in my entity I have a state variable that can have the value of 1 or 2, and when it reaches that TransferNode1 I want it to decide which is that entity's destination based on that state variable. You can only use the keyword "candidate" in that property's expression, but how can I refer to the entity that is being transfered and to its state properties? Thanks!
  2. Basically, I want to know how SIMIO creates the time between entity arrivals. Does SIMIO create all the times at once or the program does it dynamically (one at a time)? My problem is that I'm using the Arrival mode "Time Varying Arrival Rate" and for every day of simulation I want to change the "rate scale factor". If I do this with a state variable it doesn't work. For explample, if on day 1 I have a rate scale factor equal to 1 and on day 2 it's equal to 100, in day 2 the times between arrivals don't change at all.
  3. Time varying arrival rates are random. Excerpt from Simio Help: Rate Tables The Rate Tables panel in the Data window allows the user to model situations where an arrival/event rate varies discretely over time. The number of fixed rate periods and the length of each rate period can be specified in the Rate table. The rate pattern automatically repeats during the running of the simulation. A Rate table is used by the Source object / Timer element to generate entities / events with a time-varying rate. Internally, a non-stationary Exponential distribution is used to calculate the rates. The rate units for the Poisson arrival process is Arrivals per Hour, regardless of the time units specified for the intervals of the rate table. In order to use a Rate Table with the standard Source object, set the Arrival Mode property in the Source to 'Time Varying Arrival Rate' and then select the appropriate Rate Table for the Rate Table property. The Source also includes a Rate Scale Factor property that can be used to easily modify the values within the table by a given factor instead of changing the values separately. For example, to increase the Rate Table values by 50%, simply specify the Rate Scale Factor within the Source to '1.5'.
  4. This is a very cool library, i have built two very simple examples to test before using it in a simulation in which they will represent Ship to Shore Cranes. First of all, it took me a moment to figure out that "entity destination" on my home node for the crane has to be set to "specific", can this work using "continue" ? Now, on attached example 1, the Crane picks the entity and will wait for an available vehicle to make the transfer, building a queue in the home node for the crane if there is no available vehicle. This is great since it reflects what happens in the actual operations, the crane waits for a truck to be below the crane to drop the container. crane_example1.spfx But there may be interest in simulating the crane dropping the entity into the floor and just keep unloading the ship, this means i now want to drop the entity without the vehicle being available. Is it possible to control this behaviour at will? I was looking for the option of an input buffer of some sort but for now I just add a normal node and allow the crane to drop it there it will build a queue waiting for the vehicle, this can be seen on example 2, I appreciate any ideas, crane_example2.spfx also, I tried scaling the elements and it gave me an error on height, so I was wondering what should i take into account when scaling (changing size) of this elements? I will take a screenshot next time I encounter the error. finally, I will be using this element in my simulation, and i was wondering what are the thoughts on "tulach" question: "5.) Crane and other crane components do generate a lot of data in trace. It would be nice to have possibility to swich this off just for some steps inside crane and co. I used it in a model that has a simulation time of 1 month and this made my trace impossible to filter and analyse." thanks best regards
  5. Hi, I tried this library and it is a nice thing to work with. Few suggestions: 1.) It took me some time to get the difference between ForwardandBack and LeftandRight. 2.) Crane can, to my great suprise, transfer entities to nodes out of Bay. This happens only if the node is outside bay in the direction of cab movement. If it is outside bay in the direction of Bridge movement, warning appears. 3.)If Crane initialnode must be the same as bridge initialnode, it should be nice to have this set by default. This is not possible in Simio at the moment I think. 4.) It would be nice to have transparent Bay with borders only (Or a choice to . Sometimes we have layout of factory and bay does not look good and hides important things on layout. Ok I found that I can change bay as any other object but still transparent color for objects would be nice. 5.) Crane and other crane components do generate a lot of data in trace. It would be nice to have possibility to swich this off just for some steps inside crane and co. I used it in a model that has a simulation time of 1 month and this made my trace impossible to filter and analyse. 6.) If I have Bridge1 initialNode and CraneInitialNode the same as node where my entities go to be transfered, I get this error. I has something to do with fact, that bridge does not have to move, so it has movement.rate == 0 7.) In one model the lift started to fall into depth. This happens if entity has destination node set to specific and to the same node where it is. (e.g. if TransferNode1 is set to Entitity destination type specific, NodeName = TransferNode1) then crane will fall in the depths.
  6. I don't think you can dynamically create nodes while model is running, or at startup. So I think you would need to have a single input node, and output node, which you could then follow up with a single node that you could put all your pathing logic in. In that node, you could tell all of entity type A to go down path1, and all of B to go down 2, etc.
  7. 1) Start by representing your Pressure and Temp as States of type Level (see Definitions > States). These state values can continuously change based on the value of a rate. Setting that rate to +, - or 0 is something you can do wherever appropriate in your model. (Example: have a state named Pressure, and assign Pressure.Rate to its rate of change based on what causes it to rise or fall). 2) Create a Monitor for each State (Definitions > Elements) of Type CrossingStateChange with an appropriate Initial Threshold Value. When the value of the state being monitored crosses the threshol value, it automatically triggers an event named MonitorName.Event. (Example: have a Monitor named PressureExceeded and set its threshold at a maximum pressure allowed (e.g. 250)) 3) If you just had a single monitor, then on a Server you could specify reliability logic with a failure of type Event Count Based and use the event from that monitor (Example: Fail each time PressureExceeded.Event occurs). You don't say if you intend to use a Server or a custom machine. The basic approach above will work in either case. But to deal with multiple sensors might require some custom processes or a custom object because the Server is designed to deal with only one failure stream. There are several ways of approaching multiple failure streams depending on your objectives. Here is a simple model in 5.81 to illustrate:ServerFailsBasedOnSensor.spfx
  8. I call it cheating because you can't scale it properly. Attached is how I would rectify that (Check out the Parent_Model). Using an entity instead of a server is valid, as it posses functionality we can't get out of the server (heading etc.). While I agree with you about the technicality of the term sub-model, I disagree in your interpretation of its function. Any model that contains a logical flow and is made up of custom logic, that I use within another model, I just call sub-model (for better or worse). The rest I just consider to be part of the provided toolkit. "Sub-models" are incredibly useful, until you need to start to modify things inside them from the Parent model, or need to change their height within the sub-model (sub-models do not scale dimension wise at all, while retaining usefulness). 3DRotatingServer.spfx
  9. I prefer “hack” to “cheat” That’s an interesting comment, though, about sub-models. I feel that in Simio the term ”sub-model” doesn’t really exist; or, rather it describes any model, so it doesn’t really mean anything. I understand the concept of a sub-model, but due to Simio’s object-oriented design any model is a sub-model. The standard library server, for example, is a sub-model. As is the default entity “ModelEntity” and the default model “Model”. So yes, in the sense that I created a custom object (or model) and then used it in another model, the Spinning Server is a sub-model. But then again so is the regular server The real "cheat" here is that the “server” is actually an entity and requires logic (i.e. processes) at the model level to assist with instantiation, (also, most of the parameters are hard-coded, which introduces scalability issues).
  10. The Extended Flow Library discussed in this thread is now obsolete. Most of its objects are now integrated into the Simio Flow Library or included in the new Candidate Library: http://www.simio.com/forums/viewtopic.php?f=36&t=1740 The built-in Flow library includes very powerful features and capability, but is currently limited in scope to just a few basic objects. While we are enhancing that built-in library based on your feedback, we have provided an extended set of flow-related objects. This library includes objects such as Solidifier, Liquefier, Filler, Extractor and Stockpile. A Solidifier can be used to convert a specified quantity of flow into discrete entities. A Liquefier converts a discrete entity into an outbound flow. The Filler is similar to a Combiner that combines input flow of a specified volume with a discrete entity and the combined entity departs the Filler. The Extractor is the flow equivalent of the Separator. It will separate a batch member entity from the parent entity, with the flow transfer of the batch member entity then discrete transfer of the parent entity once flow is complete. The Stockpile object is similar to a Tank with different animation graphics. ExtendedFlowLibrary.zip As we receive customer feedback on both the Flow Library and the Extended Flow Library we will probably build more of this type of capability directly into the Flow Library. But in the interim, hopefully this extended library will help in your modeling. Like all Simio-provided libraries, this library is open so you can look at how it was built, learn from it, and subclass your own objects to improve them. But unlike our built-in libraries, this is not fully supported (although we can provide some help) and we may not continue enhancing it, particularly if we decide to build this capability into the base Simio products. We are anxious to receive your feedback on this library.
  11. Hello, I am interested in having routing information read into a model from an Excel spreadsheet. The basic problem is that I have several entity types that must be processed at one of many servers. There are capability restrictions (i.e. EntityA can only be processed at Server1, EntityB can be processed at Servers1, 2, 3, etc). I have a “capability matrix” as input data that is a table in Excel showing where each entity type can be processed. In the Simio model, I am using a transfer node to route each entity to an available (and capable) Server by using the “Select from list” entity destination. My customer is interested in analyzing the impacts of changing capabilities of the servers. Currently, all other inputs to the model are fed in using bound Excel files. However, the routing logic requires lists, which I have to manually create and/or edit. I would like to have these bound to a data table, or somehow reflect the data in the master input Excel file. Thoughts? Thanks, Adam
  12. Assuming you have a property or state named TargetTime, then you could delay each individual entity by "TargetTime-TimeNow". Regardless of the times that individual entities arrive, they will all finish their delays at TargetTime and then move forward together.
  13. I am trying to model a server with several failures, where each failure may have a different explanation and thus, a different pattern. One obvious approach is subclassing a Server and defining additional elements, such as Failure, Timers, etc and modify the processes so that several failures can cause the downtime of the server. However, I do not feel very comfortable with the scalabitliy of this approach. I mean, if a server has three types of failures I will have to add two new Failure elements, 8 timers, 4 corresponding to each Failure and so on. If at some point in time I need to add an additional failure, I would need to do the adding all over again, an so on. I am considering two different approaches for this, but I do not know if these are feasible or if there is a far better approach. Approach 1. I would like to subclass the server and create a Repeat Group property so that the user, by means of adding rows, may characterize as many failures as desired. The thing is, is is possible to modify the processes so that they are general enough to reflect any number of failures (with their corresponding characterization)? Approach 2. I was thinking of creating a new object, let us call it objFailure, which contains definitions and processes to reproduce the behaviour of a failure type. The idea would be that this objFailure has a property which would contain the number of an element within the project, so that when objFailure fails, the corresponding object fails. This way, modelling a server with several types of failures woukd consist in creating that server and as many objFailure as required, which would cause the server to fail as they themselves fail. The issue with this approach is that it may not be that easy to represent interferences among failures. For example, if objFailure1 is a count based event failure and objFailure is a Processing Time based failure, when objFailure1 occurs, the server stops and the time during which is down should not be taken into account by objFailure2. This may very complex to program effectively and efficiently.
  14. I am working on a rather large model, and the starting conditions are rather important. I would like to establish exact start conditions prior to each excursion. For example, if I have 100 servers, I would like a certain number and type of entity in each server once I begin the run. Is it possible to establish this starting condition in some way? I cannot run my way to this condition due to both changes caused by random number generation and the unexplainable complexities that brought us to the current conditions.
  15. Does your curriculum feature old, tired simulation software? Sure, its easy and convenient to teach the same thing year after year, but is that really the best for your students? In software terms, 20 years old is, well you know... -- Hinders your efforts to expose students to the latest in success tools and techniques. -- Damages your institution's reputation for being state-of-the-art. Solution -- Adopt state-of-the-art Simio that is guaranteed to breath new life into your simulation curriculum! We think you will find our academic program to be quite attractive. We make top quality, state-of-the-art software available to professors, students, and researchers at little or no cost. We have two academic products: Academic Version We provide full-capability software to academic institutions at no charge. We will provide as many licenses as you need for installation on any computers owned by an institution whose primary business is teaching. This software may be used in student labs as well as by professors and researchers. The activations supplied are generally for two years. It is expected that the licenses will be renewed on an annual basis, still at no charge. This software has no model size limits and is functionally equivalent to Simio Design Edition including discrete and continuous modeling, object library development, and 3D animation. Student Version We also provide full capability software for undergraduate and graduate student use on their own computers. We will supply the institution with a link that that can be passed on to students where they can obtain their own software and activations for a nominal fee. The activations supplied to students are for a full year. This software has no functional limits and is equivalent to Simio Design Edition. Academic License Limitations The above software may not be used for commercial work. This program makes top quality, state-of-the-art software available for academic use at little or no cost. It is only fair that companies who realize financial benefit from simulation should pay market value for any software and services required. Academic software may not be used to directly benefit a commercial entity. If any type of simulation results are shared privately outside the academic institution, then the application is considered to be commercial and a commercial software license must be used. Definition of Academic Organizations: Many commercial organizations such as service companies and hospitals also have an academic component that offers training or teaching. An organization will be considered to be commercial unless formal education is the primary service delivered or prior written authorization from Simio LLC is provided. People: Only currently enrolled students and currently employed professors/teachers are authorized to use academic software. Projects: We understand that student projects often involve commercial systems. Simulation results consist of the models, animations, reports, summarized results, and other similar artifacts of a simulation project. How results are used seems a reasonable way to differentiate commercial applications. •If any results are shared privately with the commercial organization, then the project will generally considered to be of commercial benefit and is an invalid use of academic software. In this case a commercial version of Simio must be used. •If all results pertaining to a project are either not shared or are made publicly available (such as a published thesis or undergraduate student projects published on a publicly accessible web site) then it is typically considered to be a valid use of academic software. •For borderline or questionable projects contact Simio for a predetermination or a possible exception to this policy. Get Started Now Review the Academic Quick Start Page for full information and a link to get the software today (request must be made by faculty member).
  16. Simple approach: Take advantage of the fact that each model has an OnRunInitialized process that is called at the start of each run. --Create a table that contains all your initialization data. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the OnRunInitialized process to search that table, create the entity(s), initialize the entity, and transfer it to the correct location. Look at the Simio Example (not SimBit) named RPsixample for an example of this approach applied to a simple scheduling model. More comprehensive approach: Take advantage of the fact that each object has an On Initialized add-in process that is called at the start of each run. --Create a table that contains all your initialization data identified by object instance. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the On Initialized process to search that table for a matching object instance, create the entity(s), initialize the entity, and transfer it to the correct location. This can also set object characteristics as well, such as status, capacity, failure data, learning curve, … While this could be used by simply specifying the add-on process in each object instance, it is even more powerful if you create a custom object that includes a custom object-specific initialization process.
  17. The attached model illustrates 2 concepts: 1st the ability to pick up Entities mid-route, 2nd how to create a 2 Task Selection Strategy when deciding who to pick up. In this model, there are high priority Entities (illustrated by the red Entities) that are created at HiPrioSource. These Entities are to be loaded first, even with low priority Entities waiting. And when the high priority Entity is loaded the vehicle takes it directly to the sink. However, when a low priority Entity is loaded, the vehicle is supposed to stop and pick up any other waiting low priority Entities that are waiting along the vehicle’s route to the sink. So, to maximize the number of Entities loaded, the vehicle wants to pick up at the farthest location (LowPrioSource1) so that it can pick up any waiting Entities as it passes through LowPrioSource2. Now the Vehicle chooses the next Entity to pick up based on its Task Selection Strategy where it can be Largest/Smallest Priority or Largest/Smallest Distance – but it can’t be both. In this example, we want to FIRST make the decision based on Priority, THEN if we know its low priority we want to base it on Largest Distance. Because we want to first base it on Priority we set the Task Selection Strategy to Highest Priority. This means that it will handle the first tier of the decision process for us. Creating the second tier requires us to customize the Standard Library Vehicle. So we subclass a Vehicle and add an Entity Reference State called ‘NextEntityToPickup’. Then we Override the OnVisitingNode Process in this new vehicle and about 2/3s of the way through the process, after Decide-IfIdel and before the Plan Visit-NewTransportationTask we place a Search step. This Search Step searches the QueueState ‘MyVehicle.CurrentNetwork.VisitRequestQueue’ (the queue of all waiting Entities) with a Search Type of ‘MaximizeReturnValue’ with a Return Value Expression of ‘MyVehicle.NetworkDistanceTo.Node(Candidate.Entity.CurrentNode)’ – meaning the Entity that is farthest away from me. This Step will find the farthest Entity out of all waiting Entities, so on the Found Branch we assign NextEntityToPickup the value of ‘Object’ – meaning the specific Entity that is farthest away. *Note, we have to reset the NextEntityToPickup State before this Search. Now, in the OnEvaluatingTranportRequest Add-on process we place a Decide Step with the following expression ‘Math.If((MyVehicle.ResourceState==0) && (MyVehicle.NextEntityToPickup != Nothing), MyVehicle.NextEntityToPickup == Entity, True)’ and a Reject Assignment on the False Branch. So, this expression says If the MyVehicle is Idle and there IS a value for NextEntityToPickup, Then “am I the next Entity to pick up?” (which gets evaluated by every Entity), if it is not idle or there is no value for NextEntityToPickup then continue on – the vehicle will pick you up. So, this combination of letting the Vehicle handle the Priority mixed with Finding > Assigning > and Checking the Farthest Entities will give you the 2 tiered Task Selection that was desired. Also, don’t forget that this Vehicle is supposed to pick up low priority Entities Mid-Route. Doing this requires further Customization of the OnVisitingNode Process. Right after the Execute-Entered Add-On Process Step we placed a Search Step that checks to see if there is any High Priority Entities in the Ride Station. If the Ride Station has a High Priority Entity OR it is completely empty, the process will continue on as normal. If the Ride Station is NOT empty and it is carrying a Low Priority Entity, that means we can try to pick up more Entities along the way. To do this, we just force the Vehicle to try to DropOff/PickUp at this node (which it would not do normally, unless it was at the dropoff node). If there are no Entities to pick up or drop off at this node, both the Pickup and Dropoff Nodes will fail and the token will eventually route itself out of the process and the Vehicle will continue on. If there are waiting Entities, the vehicle is forced to pick them up by avoiding the logic that would normally tell the Vehicle to exit the node. Custom Pickup Process.zip
  18. The standard library vehicle has the option of a loading and unloading time per entity, but it is often difficult to model a situation where a vehicle stops for a specified time (like a bus or train). This object (with an example model) adds a single reference property and a single step to the standard Vehicle to allow you to specify that time. Smple, but convenient. VehicleWithFixedLoadTime.zip Done using Sprint 68
  19. Hi, I have made an example model illustrating how to do what you are asking. In the attached model, I have 1 entity that requires a 40 hour delay & a Secondary resource for processing. I have a Day Shift worker and a Night Shift worker, each work 12 hour shifts, and the Entity seizes whichever is availabe from a list upon entering the Server. By default, if a secondary resource is seized, the worker will attempt to finish the current job before going off-shift. This is nice if there is something like 15 or 20 minutes left on a job, but not ideal if there is 28 hours left... What I did was created a process that gets Triggered by the Workers' OffShift Add-On process that Interrupts Processing > Releases the Worker > and Transfers the Entity back into the Server Object - which will then start the whole processing process all over again and seize whatever worker is available. Note that in the Interrupt Step, I set the Interupted Process Action to Resume Delay, and the Save Remaining Process Time property to Record ths remaining processing time to the ModelEntity.ProcessTime State (which is initially assigned to 40 in the Source and then gets updated upon every interrupt) For more examples of Interrupting processes see the SimBits: InterruptibleOperator, InterruptingAcrossMultipleServers, & InterruptingServerWithMultipleCapacity Thanks InterruptingProcessingToSwitchWorkers.spfx
  20. We are now sponsoring a blog to help each other become more successful in our simulation projects. We will be sharing information and initiating discussions that will prove interesting and helpful to both experienced and novice simulationists. If you are not experienced at "blogging" let me assure you that it is pretty easy to participate. 1) You can just check http://www.simio.com/blog from time to time and see what's new. 2) If you don't want to miss any content, you can sign up for the RSS feed. This will result in an email automatically sent to you with each new post (approximately weekly). To sign up, look for the RSS link at the very bottom of the blog pages or in your toolbar. Or simply go now to http://www.simio.com/blog/feed. 3) For the most enriching experience, participate! Look at the end of each posting for a link to enter your comments. Or if you want to suggest topics or even post your own topic, contact me - I'd love to have your participation. This blog is not about Simio or any particular product, nor is it intended to be in any way commercial or sales-oriented. Success in Simulation is available to all simulationists, as well as anyone who wants to become a simulationist or who just wants to learn more about simulation. While we expect to focus mainly on discrete event simulation, articles on the related fields of agent-based modeling, system dynamics, and emulation will also be included. The articles will be intentionally be kept short for a quick read, and will be written in an informal style for easy reading. I encourage you to subscribe to the RSS feed so that you will automatically receive new articles as soon as they are posted.
×
×
  • Create New...