Q1 = Queue("Q1", "Queue1", capacity=2) M2 = Machine("M2", "Machine2", processingTime={"Fixed": {"mean": 1}}) BRA = BatchReassembly( "BRA", "BatchReassembly", numberOfSubBatches=4, processingTime={"Fixed": { "mean": 0 }}, ) M3 = Machine("M3", "Machine3", processingTime={"Fixed": {"mean": 1}}) E = Exit("E", "Exit") # define the predecessors and successors for the objects S.defineRouting([Q]) Q.defineRouting([S], [BD]) BD.defineRouting([Q], [M1]) M1.defineRouting([BD], [Q1]) Q1.defineRouting([M1], [M2]) M2.defineRouting([Q1], [BRA]) BRA.defineRouting([M2], [M3]) M3.defineRouting([BRA], [E]) E.defineRouting([M3]) def main(test=0): # add all the objects in a list objectList = [S, Q, BD, M1, Q1, M2, BRA, M3, E] # set the length of the experiment maxSimTime = 1440.0 # call the runSimulation giving the objects and the length of the experiment
from manpy.simulation.Globals import runSimulation, G # define the objects of the model Q = Queue("Q1", "Queue", capacity=1) M = Machine("M1", "Machine", processingTime={"Fixed": {"mean": 0.25}}) E = Exit("E1", "Exit") P1 = Part("P1", "Part1", currentStation=Q) P2 = Part("P2", "Part2", currentStation=M, remainingProcessingTime={"Fixed": { "mean": 0.1 }}) # define predecessors and successors for the objects Q.defineRouting(successorList=[M]) M.defineRouting(predecessorList=[Q], successorList=[E]) E.defineRouting(predecessorList=[M]) def main(test=0): # add all the objects in a list objectList = [Q, M, E, P1, P2] # set the length of the experiment maxSimTime = float("inf") # call the runSimulation giving the objects and the length of the experiment runSimulation(objectList, maxSimTime, trace="Yes") # calculate metrics working_ratio = (M.totalWorkingTime / G.maxSimTime) * 100
from manpy.simulation.imports import Source, Queue, Machine, Exit from manpy.simulation.Globals import runSimulation # define the objects of the model S = Source( "S1", "Source", interArrivalTime={"Fixed": {"mean": 0.5}}, entity="manpy.Part" ) Q = Queue("Q1", "Queue", capacity=1) M = Machine("M1", "Machine", processingTime={"Fixed": {"mean": 0.25}}) E = Exit("E1", "Exit") # define predecessors and successors for the objects S.defineRouting(successorList=[Q]) Q.defineRouting(predecessorList=[S], successorList=[M]) M.defineRouting(predecessorList=[Q], successorList=[E]) E.defineRouting(predecessorList=[M]) def main(test=0): # add all the objects in a list objectList = [S, Q, M, E] # set the length of the experiment maxSimTime = 1440.0 # call the runSimulation giving the objects and the length of the experiment runSimulation(objectList, maxSimTime) # calculate metrics working_ratio = (M.totalWorkingTime / maxSimTime) * 100 # return results for the test if test:
totalParts += len(object.getActiveObjectQueue()) return totalParts QB = Queue("QB", "QueueBefore", capacity=float("inf")) Q1 = InternalQueue("Q1", "Q1", capacity=1) M1 = InternalProcess("M1", "M1", processingTime={"Exp": {"mean": 1}}) Q2 = InternalQueue("Q2", "Q2", capacity=1) M2 = InternalProcess("M2", "M2", processingTime={"Exp": {"mean": 1}}) Q3 = InternalQueue("Q3", "Q3", capacity=1) M3 = InternalProcess("M3", "M3", processingTime={"Exp": {"mean": 1}}) QA = Queue("QA", "QueueAfter", capacity=float("inf")) MA = Machine("MA", "MachineAfter", processingTime={"Exp": {"mean": 1}}) E = Exit("E", "Exit") QB.defineRouting(successorList=[Q1, Q2, Q3]) Q1.defineRouting(predecessorList=[QB], successorList=[M1]) Q2.defineRouting(predecessorList=[QB], successorList=[M2]) Q3.defineRouting(predecessorList=[QB], successorList=[M3]) M1.defineRouting(predecessorList=[Q1], successorList=[QA]) M2.defineRouting(predecessorList=[Q2], successorList=[QA]) M3.defineRouting(predecessorList=[Q3], successorList=[QA]) QA.defineRouting(predecessorList=[M1, M2, M3], successorList=[MA]) MA.defineRouting(predecessorList=[QA], successorList=[E]) E.defineRouting(predecessorList=[MA]) P1 = Part("P1", "P1", currentStation=QB) P2 = Part("P2", "P2", currentStation=QB) P3 = Part("P3", "P3", currentStation=QB) P4 = Part("P4", "P4", currentStation=QB) P5 = Part("P5", "P5", currentStation=QB)
# define the objects of the model S = Source( "S", "Source", interArrivalTime={"Fixed": {"mean": 0.5}}, entity="manpy.Part" ) Q = Queue("Q", "Queue", capacity=float("inf")) M1 = Machine("M1", "Milling1", processingTime={"Fixed": {"mean": 0.25}}) M2 = Machine("M2", "Milling2", processingTime={"Fixed": {"mean": 0.25}}) E = Exit("E1", "Exit") F = Failure( victim=M1, distribution={"TTF": {"Fixed": {"mean": 60.0}}, "TTR": {"Fixed": {"mean": 5.0}}}, ) # define predecessors and successors for the objects S.defineRouting([Q]) Q.defineRouting([S], [M1, M2]) M1.defineRouting([Q], [E]) M2.defineRouting([Q], [E]) E.defineRouting([M1, M2]) def main(test=0): # add all the objects in a list objectList = [S, Q, M1, M2, E, F] # set the length of the experiment maxSimTime = 1440.0 # call the runSimulation giving the objects and the length of the experiment runSimulation(objectList, maxSimTime) # calculate metrics
) M1 = Machine("M1", "Machine1", processingTime={"Fixed": {"mean": 0.5}}) Q1 = LineClearance("Q1", "Queue1", capacity=2) M2 = Machine("M2", "Machine2", processingTime={"Fixed": {"mean": 4}}) BRA = BatchReassembly( "BRA", "BatchReassembly", numberOfSubBatches=4, processingTime={"Fixed": {"mean": 0}}, ) M3 = Machine("M3", "Machine3", processingTime={"Fixed": {"mean": 1}}) E = Exit("E", "Exit") # define the predecessors and successors for the objects S.defineRouting([Q]) Q.defineRouting([S], [BD]) BD.defineRouting([Q], [M1]) M1.defineRouting([BD], [Q1]) Q1.defineRouting([M1], [M2]) M2.defineRouting([Q1], [BRA]) BRA.defineRouting([M2], [M3]) M3.defineRouting([BRA], [E]) E.defineRouting([M3]) def main(test=0): # add all the objects in a list objectList = [S, Q, BD, M1, Q1, M2, BRA, M3, E] # set the length of the experiment maxSimTime = 1440.0
# create failures F1 = Failure( victim=M1, distribution={"TTF": {"Fixed": {"mean": 60.0}}, "TTR": {"Fixed": {"mean": 5.0}}}, repairman=R, ) F2 = Failure( victim=M2, distribution={"TTF": {"Fixed": {"mean": 40.0}}, "TTR": {"Fixed": {"mean": 10.0}}}, repairman=R, ) # define predecessors and successors for the objects S.defineRouting([M1]) M1.defineRouting([S], [Q]) Q.defineRouting([M1], [M2]) M2.defineRouting([Q], [E]) E.defineRouting([M2]) def main(test=0): # add all the objects in a list objectList = [S, M1, M2, E, Q, R, F1, F2] # set the length of the experiment maxSimTime = 1440.0 # call the runSimulation giving the objects and the length of the experiment runSimulation(objectList, maxSimTime) # calculate metrics blockage_ratio = (M1.totalBlockageTime / maxSimTime) * 100
from manpy.simulation.Globals import runSimulation # define the objects of the model NS = NonStarvingEntry("NS1", "Entry", entityData={"_class": "manpy.Part"}) M1 = Machine("M1", "Machine1", processingTime={"Exp": {"mean": 1}}) Q2 = Queue("Q2", "Queue2") M2 = Machine("M2", "Machine2", processingTime={"Exp": {"mean": 3}}) Q3 = Queue("Q3", "Queue3") M3 = Machine("M3", "Machine3", processingTime={"Exp": {"mean": 5}}) E = Exit("E1", "Exit") # define predecessors and successors for the objects NS.defineRouting(successorList=[M1]) M1.defineRouting(predecessorList=[NS], successorList=[Q2]) Q2.defineRouting(predecessorList=[M1], successorList=[M2]) M2.defineRouting(predecessorList=[Q2], successorList=[Q3]) Q3.defineRouting(predecessorList=[M2], successorList=[M3]) M3.defineRouting(predecessorList=[Q3], successorList=[E]) E.defineRouting(predecessorList=[M3]) def main(test=0): # add all the objects in a list objectList = [NS, M1, M2, M3, Q2, Q3, E] # set the length of the experiment maxSimTime = 480 solutionList = [] for i in range(1, 10):