model SingleComponent Modelica.Blocks.Interfaces.BooleanOutPort BFunctional; Extensions.TDelayExp DelayLifeExp(mean=9, seed=2354); Place11 Nonfunctional; Extensions.TDelayExp DelayRepairExp(mean=1, seed=984446); Place11 Functional(initialState=true); equation connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(Nonfunctional.outTransition, DelayRepairExp.inTransition); connect(Functional.outTransition, DelayLifeExp.inTransition); connect(Functional.inTransition, DelayRepairExp.outTransition); BFunctional.signal[1] = Functional.state; end SingleComponent;
model SingleComponentAlt Modelica.Blocks.Interfaces.BooleanOutPort BFunctional; Extensions.TDelayExp DelayLifeExp(mean=9, seed=87466351); Place11 Nonfunctional; Extensions.TDelayExp DelayRepairExp(mean=1, seed=31876165); Place11 Functional(initialState=true); equation connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(Nonfunctional.outTransition, DelayRepairExp.inTransition); connect(Functional.outTransition, DelayLifeExp.inTransition); connect(Functional.inTransition, DelayRepairExp.outTransition); BFunctional.signal[1] = Functional.state; end SingleComponentAlt;
model SingleComponentAlt1 Modelica.Blocks.Interfaces.BooleanOutPort BFunctional; Extensions.TDelayExp DelayLifeExp(mean=9, seed=76481354); Place11 Nonfunctional; Extensions.TDelayExp DelayRepairExp(mean=1, seed=188463); Place11 Functional(initialState=true); equation connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(Nonfunctional.outTransition, DelayRepairExp.inTransition); connect(Functional.outTransition, DelayLifeExp.inTransition); connect(Functional.inTransition, DelayRepairExp.outTransition); BFunctional.signal[1] = Functional.state; end SingleComponentAlt1;
model OR3 Modelica.Blocks.Interfaces.BooleanInPort inPort1(final n=1); Modelica.Blocks.Interfaces.BooleanInPort inPort2(final n=1); Modelica.Blocks.Interfaces.BooleanOutPort outPort(final n=1); Modelica.Blocks.Interfaces.BooleanInPort inPort3(final n=1); equation outPort.signal[1] = inPort1.signal[1] or inPort2.signal[1] or inPort3.signal[1]; end OR3;
Name | Default | Description |
---|---|---|
meanLife | 10 | Mean lifetime |
meanRepair | 1 | Mean repairtime |
seedLife | 2545 | |
seedRepair | 9832747 |
model SingleComponentNonFunctional parameter Real meanLife=10 "Mean lifetime"; parameter Real meanRepair=1 "Mean repairtime"; parameter Integer seedLife=2545; parameter Integer seedRepair=9832747; Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional; Extensions.TDelayExp DelayLifeExp(mean=meanLife, seed=seedLife); Place11 Nonfunctional; Extensions.TDelayExp DelayRepairExp(mean=meanRepair, seed=seedRepair); Place11 Functional(initialState=true); equation connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(Nonfunctional.outTransition, DelayRepairExp.inTransition); connect(Functional.outTransition, DelayLifeExp.inTransition); connect(Functional.inTransition, DelayRepairExp.outTransition); BNonFunctional.signal[1] = not Functional.state; end SingleComponentNonFunctional;
Name | Default | Description |
---|---|---|
meanLife | 60*24*10 | Mean lifetime, exponential distribution |
seedLife | 2545 | |
meanRepair | 60*3 | Mean repairtime, normal distribution |
standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
seed1Repair | 1469 | |
seed2Repair | 8769821 |
model Nonfunctional parameter Real meanLife=60*24*10 "Mean lifetime, exponential distribution"; parameter Integer seedLife=2545; parameter Real meanRepair=60*3 "Mean repairtime, normal distribution"; parameter Real standardDeviationRepair=60*1 "Standard deviation of repair-time, normal distribution"; parameter Integer seed1Repair=1469; parameter Integer seed2Repair=8769821; Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional; Extensions.TDelayExp DelayLifeExp(mean=meanLife, seed=seedLife); Place11 Nonfunctional; Place11 Functional(initialState=true); Extensions.TDelayNormal DelayRepairNormal( mean=meanRepair, standardDev=standardDeviationRepair, seed1=seed1Repair, seed2=seed2Repair); equation connect(DelayLifeExp.outTransition, Nonfunctional.inTransition); connect(Functional.outTransition, DelayLifeExp.inTransition); connect(DelayRepairNormal.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, DelayRepairNormal.inTransition); BNonFunctional.signal[1] = not Functional.state; end Nonfunctional;
Name | Default | Description |
---|---|---|
meanLife | 60*24*10 | Mean lifetime, exponential distribution |
meanRepair | 60*3 | Mean repairtime, normal distribution |
standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
model NonfunctionalBIRNG parameter Real meanLife=60*24*10 "Mean lifetime, exponential distribution"; parameter Real meanRepair=60*3 "Mean repairtime, normal distribution"; parameter Real standardDeviationRepair=60*1 "Standard deviation of repair-time, normal distribution"; Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional; Place11 Nonfunctional; Place11 Functional(initialState=true); Extensions.TDelayExpBIRNG TDelayExpBIRNG1(mean=meanLife); Extensions.TDelayNormalBIRNG TDelayNormalBIRNG1(center=meanRepair, standardDev=standardDeviationRepair); equation connect(TDelayNormalBIRNG1.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, TDelayNormalBIRNG1.inTransition); connect(Functional.outTransition, TDelayExpBIRNG1.inTransition); connect(TDelayExpBIRNG1.outTransition, Nonfunctional.inTransition); BNonFunctional.signal[1] = not Functional.state; end NonfunctionalBIRNG;
Name | Default | Description |
---|---|---|
meanLife | 60*24*10 | Mean lifetime, exponential distribution |
meanRepair | 60*3 | Mean repairtime, normal distribution |
standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
model FunctionalBIRNG parameter Real meanLife=60*24*10 "Mean lifetime, exponential distribution"; parameter Real meanRepair=60*3 "Mean repairtime, normal distribution"; parameter Real standardDeviationRepair=60*1 "Standard deviation of repair-time, normal distribution"; Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional; Place11 Nonfunctional; Place11 Functional(initialState=true); Extensions.TDelayExpBIRNG TDelayExpBIRNG1(mean=meanLife); Extensions.TDelayNormalBIRNG TDelayNormalBIRNG1(center=meanRepair, standardDev=standardDeviationRepair); equation connect(TDelayNormalBIRNG1.outTransition, Functional.inTransition); connect(Nonfunctional.outTransition, TDelayNormalBIRNG1.inTransition); connect(Functional.outTransition, TDelayExpBIRNG1.inTransition); connect(TDelayExpBIRNG1.outTransition, Nonfunctional.inTransition); BNonFunctional.signal[1] = Functional.state; end FunctionalBIRNG;
model EvalBlock Real Q; Real WeightedSum; Real Qavg; Real told; Real tnew; Real tdelta; Modelica.Blocks.Interfaces.InPort InTokens; Modelica.Blocks.Interfaces.BooleanInPort InChange; algorithm when InChange.signal[1] then Q := InTokens.signal[1]; told := tnew; tnew := time; tdelta := tnew - told; WeightedSum := WeightedSum + Q*tdelta; Qavg := WeightedSum/(time + 1e-3); end when; end EvalBlock;