model TestDelayDeterministic Place01 P1(initialState=true); Place10 P3; Transition T1; Place11 P2; Extensions.TDelay T2(delay=5); equation connect(P1.outTransition, T1.inTransition); connect(T1.outTransition, P2.inTransition); connect(P2.outTransition, T2.inTransition); connect(T2.outTransition, P3.inTransition); T1.condition = time > 5; end TestDelayDeterministic;
model TestCapacity Extensions.TDelay TD1(delay=2.5); Extensions.TDelay TD2(delay=1); Extensions.P10Capacity P3(num_tokens_start=1, N=10); Extensions.P01Capacity P1(num_tokens_start=10, N=10); Extensions.P11Capacity P2(num_tokens_start=20, N=100); equation connect(P1.outTransition, TD1.inTransition); connect(TD1.outTransition, P2.inTransition); connect(P2.outTransition, TD2.inTransition); connect(TD2.outTransition, P3.inTransition); end TestCapacity;
model MM1_Queuing_system Extensions.P10Capacity Sink(N=1000000); Extensions.P01Capacity Source(num_tokens_start=1000000, N=1000000); Extensions.P11Capacity Queue(N=1000); Extensions.TDelayExp Interarrival(seed=998611); Extensions.TNoCondition GoToService; Extensions.TDelayExp Service(mean=8, seed=4556); Place11 Desk; Modules.EvalBlock EvalBlock1; equation connect(Source.outTransition, Interarrival.inTransition); connect(Queue.outTransition, GoToService.inTransition); connect(GoToService.outTransition, Desk.inTransition); connect(Desk.outTransition, Service.inTransition); connect(Interarrival.outTransition, Queue.inTransition); connect(Service.outTransition, Sink.inTransition); connect(Queue.Bchange, EvalBlock1.InChange); connect(Queue.outTokens, EvalBlock1.InTokens); end MM1_Queuing_system;
model TestDelayPolicy Extensions.TDelay T2(delay=5); Place01 P1(initialState=true); Place10 P3; Place22 P2; Place11 P4; Transition T1; Transition T3; Transition T4; equation connect(P2.outTransition2, T2.inTransition); connect(T2.outTransition, P3.inTransition); connect(P1.outTransition, T1.inTransition); connect(T1.outTransition, P2.inTransition2); connect(P4.inTransition, T3.outTransition); connect(P2.outTransition1, T3.inTransition); connect(P4.outTransition, T4.inTransition); connect(T4.outTransition, P2.inTransition1); T1.condition = time > 5; T3.condition = (time > 7.5) and (time < 8.0); T4.condition = time > 12.5; end TestDelayPolicy;
model FunctionalNonfunctional Extensions.P11Capacity Functional(num_tokens_start=1, N=1); Extensions.TDelayExp DelayLifeExp(mean=49, seed=6544); Place11 Nonfunctional; Extensions.TDelayExp DelayRepairExp(mean=1, seed=984442); Modules.EvalBlock EvalBlock1; equation connect(Functional.outTransition, DelayLifeExp.inTransition); connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(DelayRepairExp.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, DelayRepairExp.inTransition); connect(Functional.outTokens, EvalBlock1.InTokens); connect(Functional.Bchange, EvalBlock1.InChange); end FunctionalNonfunctional;
model TwoSerial Extensions.P11Capacity Functional(num_tokens_start=1, N=1); Place11 Nonfunctional; ModelicaAdditions.Blocks.Logical.AND AND1; ModelicaAdditions.Blocks.Logical.NOT NOT1; Modules.SingleComponent C1; Modules.SingleComponentAlt C2; Transition restart; Transition faillure; Modules.EvalBlock EvalBlock1; equation connect(AND1.outPort, NOT1.inPort); connect(Functional.outTransition, faillure.inTransition); connect(faillure.outTransition, Nonfunctional.inTransition); connect(restart.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, restart.inTransition); connect(NOT1.outPort, faillure.conditionPort); connect(AND1.outPort, restart.conditionPort); connect(C1.BFunctional, AND1.inPort1); connect(C2.BFunctional, AND1.inPort2); connect(Functional.outTokens, EvalBlock1.InTokens); connect(Functional.Bchange, EvalBlock1.InChange); end TwoSerial;
model TwoOutOfThree Extensions.P11Capacity Functional(num_tokens_start=1, N=1); Place11 Nonfunctional; ModelicaAdditions.Blocks.Logical.AND AND1; ModelicaAdditions.Blocks.Logical.NOT NOT1; Modules.SingleComponent C1; Modules.SingleComponentAlt C2; Transition restart; Transition faillure; Modules.SingleComponentAlt1 C3; ModelicaAdditions.Blocks.Logical.AND AND2; ModelicaAdditions.Blocks.Logical.AND AND3; Modules.OR3 OR3_1; Modules.EvalBlock EvalBlock1; equation connect(Functional.outTransition, faillure.inTransition); connect(faillure.outTransition, Nonfunctional.inTransition); connect(restart.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, restart.inTransition); connect(NOT1.outPort, faillure.conditionPort); connect(C1.BFunctional, AND1.inPort1); connect(AND1.inPort2, C2.BFunctional); connect(C2.BFunctional, AND2.inPort1); connect(C3.BFunctional, AND2.inPort2); connect(C1.BFunctional, AND3.inPort1); connect(C3.BFunctional, AND3.inPort2); connect(AND1.outPort, OR3_1.inPort1); connect(AND2.outPort, OR3_1.inPort2); connect(AND3.outPort, OR3_1.inPort3); connect(OR3_1.outPort, NOT1.inPort); connect(OR3_1.outPort, restart.conditionPort); connect(Functional.outTokens, EvalBlock1.InTokens); connect(Functional.Bchange, EvalBlock1.InChange); end TwoOutOfThree;