Jump to content

gocken

Members
  • Posts

    369
  • Joined

  • Last visited

  • Days Won

    32

Posts posted by gocken

  1. For the link weight to the serverA use Math.If(((Math.Remainder(TimeNow, 24 )>6)&&(Math.Remainder(TimeNow, 24 )<=10)), (1-p1), 0 ) as the selection weight expression and then use p1 as the selection weight to the sink object (representing rejected entities).

    For the link weight to the serverB use Math.If(((Math.Remainder(TimeNow, 24 )>10)&&(Math.Remainder(TimeNow, 24 )<=18)), (1-p2), 0) as the selection weight expression and then use p2 as the selection weight to the sink object (representing rejected entities).

    For the first link weight to the serverC use Math.If(((Math.Remainder(TimeNow, 24 )>18)&&(Math.Remainder(TimeNow, 24 )<=22)), (1-p3), 0 ) as the selection weight expression and then use p3 as the selection weight to the sink object (representing rejected entities).

  2. you can also monitor the queue lenght by using a monitor element. If there exist one or more customer in the queue you can trigger a process (you should define a new process) where you use a seize step to seize the worker. For more about the monitor element you should refer to simbits...

  3. Before entering servers u can assign min(math.min(exponential(10),exponential(20)) to a state variable called "CommonProcessingTime". Then use this state variable for both processing time entries as expressions (set both processing time properties as simply "CommonProcessingTime"). Actually, Simio assigns these values in this manner when it comes to evaluate processing time property (draws a random variable from exponential distribution when the ModelEntity enters the server and is about to start processing) . By this way you assign these values previously, manually. Nothing will change but you can get your job done. Preferably it is more accurate to define "CommonProcessingTime" state variable on ModelEntity.

  4. Set arrival mode of source on event then define your events to be either server is processing or there are three entities waiting in input buffer of the server. You should define a triggering event which is triggered by two seperate monitors each monitors the conditions you mentioned.

  5. via the method I suggested it is not possible to achieve what you expected. But, there are many ways to accomplish what you want. For example, you can first store your entities (i.e., 4 entities) in a storage element then search for the least processing time among them, then transfer that one to the server. You should repeat this search operation 4 times or until no entities left in the storage element. You should look for something like this.

  6. you should use dynamic selection rule for what you are trying to do. I made required changes on your model. note that, still does not work as you intended (first job 1 is processed). The reason for this inconvenience is the modelentity created and released to seize server1 is job 1 by chance (randomrow). But, the other three entities ranked accordingly. You should use extra logic for all entities to be ranked accordingly.

    MyNewModel.spfx

  7. dynamic selection rule of server object would work for you. Setting this property largest or smallest will enable you to enter your complex rule. And, setting standart dispatching rule will allow you to be able to choose one of the well known dipatching rules. If you do not want to use server object then you should define a station element. Station element does not support dynamic evaluation of its contents but you can search its contents and remove if any satisfies your search condition.

  8. I think with commercial license you can not open a model which is developed by an academic edition. I took snapshots of all inclusions and pasted them in the word file atached as a whole. You can easily track the inclusions from these snapshots. The trick is the definition of a table (i.e., table1 in the model). When the search is performed stRowList returns the rank of object in the object list (i.e., LstServers). I can not manage to compare whether returned server name equals to the server name specified with "whichserver" property in the search step alone (Note that, as far as I remember I changed the type of this model propery as "object" instead of "objectlist", otherwise it does not work). Then I defined a data table which replicates the object list then used a decide step for performing this comparison (i.e., whether returned server name equals to the server name specified with "whichserver" property). Note that, string type state variable definition is irrelevant. It is defined for only verification purposes.

    Contents_simple_sample_redo.docx

  9. a very good expression --> Worker1.RideStation.Contents.FirstItem.ModelEntity.Priority > 5.

    and It would be better if the user was allowed to search entire contents for the condition expressed. For example: Worker1.RideStation.Contents.ItemAtIndex( index ).ModelEntity.Priority > 5 expression should return true or false after the contents of the ridestation is checked for the experssion in one go.


    Worker1.RideStation.Contents.ItemAtIndex( . ).ModelEntity.Priority > 5 --> "." instead of "index" means all of the contents should be considered for the expression to be true or false. Once the expression is justified it returns true else false.

  10. You should use search step. In search step set the Collection Type to "queueState" and Queue State Name to "Worker.RideStation.Contents". Then you should enter matching criteria (what you are looking for, any state of the entities on ridestation). If the search is succesful then you should change the speed of the worker by an assign step otherwise nothing more to do.

  11. I tried to solve your problem but interestingly I am not allowed to use any modelentity based definitions (i.e., statevariables) in your model. I did not understand what the problem is. I should be able to define such variables and use them within the processes and/or objects. This should be a routine assignment. Is it due to my licence based problem? As far as I know I am using academic version and always just the updated ones. I am complicated. If I can manage to define required modelentity based state variables I will be able to solve your problem. Still I have uploaded my draft model you can trace my solution method. Try the attached model and pls feed me back whether u can define modelentity based definitions.

    Project.spfx

  12. In the model I attached if you set "Maximum Arrivals" property of source object to 1 and "Interarrival Time" property of source object to "0" you can get the same logic. It is unnecessary to include ten source objects in the model. I did not understand what u wnat to do? resource objects has no processing time properties? What do you mean with resource? resource object? Could u state your problem clearly pls?

  13. Here is a sample model. I set Interarrival Time property to 2 to set the arrivals apart from each other. Note that you can set required number of entities to create by assigning the appropriate value to "TotalNumOfEntitiesToCreate" property. In this sample model I intentionally assigned 10 then a total of 11 entities will be created. In your case you should set the value of "TotalNumOfEntitiesToCreate" to 9 to get a total of 10 entities each time at once. Hope it works for you...

    Project.spfx

×
×
  • Create New...