Upload
karma
View
63
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Using Stochastic RAM Analysis to Establish an Optimal Operating Policy. 8th IMA International Conference on Modelling in Industrial Maintenance and Reliability. Oxford University July 10, 2014. Jacob T. Ormerod Vero Beach, Florida, USA [email protected]. - PowerPoint PPT Presentation
Citation preview
Using Stochastic RAM Analysisto Establish an
Optimal Operating Policy
8th IMA International Conference on Modelling in Industrial Maintenance and Reliability
Jacob T. Ormerod Vero Beach, Florida, USA [email protected]
Oxford University
July 10, 2014
Jacob T. Ormerod Vero Beach, Florida, USA [email protected]
A word about OpenReliability.org
Currently developing in the R Statistical Programming environment.
• Weibull Analysis – Abernethy Reliability Methods, package abrem (formerly package weibulltoolkit)
• Stochastic Simulator for Reliability Analysis, package stosim
• Spare Parts Analysis – Multi-Eshelon Techniques for Recoverable Item Control (METRIC, MOD-METRIC, VARI-METRIC, . . .)
Jacob T. Ormerod Vero Beach, Florida, USA [email protected]
The Example Problem
• Simple enough for my 87 year old mother to understand.
• Sophisticated enough that solution without stochastic approach is too difficult.
• Completely implemented in the R system. (commercial software not required)
This paper describes the development of useful contributed package functions.
In this environment we call a collection of useful functions that can be made to work together a “toolkit”. This is not intended to be the development of a mindless user application.
Multi-train Feed Inventory
Primary Reactor
Charge Unit 1A
Charge Unit 1B
Charge Unit 1C
Charge Unit 2A
Charge Unit 2B
Charge Unit 2C
Charge Unit 3A
Charge Unit 3B
Charge Unit 3C
AccumulatorStorage
Discharge
Primary Reactor
Charge Storage
Example Problem RBD
Example Problem Statement
•The charge storage has a capacity for 16 hours of replacement time for a single charge train.
•An accumulator unit operation has the ability to replenish the complete storage inventory in 2weeks, but will be operated to attempt to top off the tank after any consumption. It is assumed that the accumulator operates on excess capacity from the charge feed system and does not reduce flow available to the primary reactor.
•The storage discharge unit has a capacity for replacement of a single charge train.
•The primary reactor system requires 3 days to restart upon any sudden, partial loss of charge flow. However, it can be turned down to 60% of production given an hour’s notice. The operators of this unit need to have a policy that will enable them to optimize total production from the primary reactor. This is expected to be accomplished by establishing a reserve inventory to be held in storage, which should then trigger turndown of the primary reactor to avoid damaging shutdown.
EventID FD FP1 RD RP1 RP2fail rate/yr MTTR Unavail Availability
101 E 2,000 L 1.700 1.400 Subsys A 4.38 14.59 0.00729 0.992707
102 E 3,500 N 16.000 4.000 Subsys B 2.50 16.00 0.00457 0.995429
103 E 10,000 W 96 2 Subsys C 0.88 85.08 0.00851 0.991492
7.60 23.32 0.02024 0.979762
Input Table Values Analytical Summary
2 oo3 trains down sequentially
(3 * 0.02) * (2 * 7.6) = 0.912
Single Train Operational Data
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
for( row in 1:nrow(Train1)) { set.seed(Train1$Seed[row]) TTF<-rexp(NumRands,1/Train1$FP1[row]) if(row==1) { TTR<-rlnorm(NumRands, Train1$RP1[row], Train1$RP2[row]) }else{ if(row==2) { TTR<-rnorm(Normand, Train1$RP1[row], Train1$RP2[row]) }else{ TTR<-rweibull(NumRands,Train1$RP2[row], Train1$RP1[row]) }} TTFmat<-rbind(TTFmat,TTF) TTRmat<-rbind(TTRmat,TTR)}
Times To Failure Times To Repair
Getting Random Values for a Simulated History
Times To Failure Times To Repair
Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Simulated History
Event Queue
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,910.8 11.2 1 102 8,021.5 82.0 1 103
Time Duration OpLine EventID 3,461.3 26.1 1 101
Pull the first event for the Simulation History from the Queue
Times To Failure Times To Repair
Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Simulated History
Event Que
Time Duration OpLine EventID 3,461.3 26.1 1 101
Time Duration OpLine EventID
4,936.9 11.2 1 102 8,047.6 82.0 1 103
Delay the history time for remaining events in the Queue by repair time of last event
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Time Duration OpLine EventID 3,461.3 26.1 1 101
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Event Clock Time 3,487.39
Time Duration OpLine EventID 4,936.9 11.2 1 102 8,047.6 82.0 1 103 4,717.5 1.0 1 101
Add the new event TTF to current EventClock time to get history time for new random event.
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Time Duration OpLine EventID 4,717.5 1.0 1 101 4,936.9 11.2 1 102 8,047.6 82.0 1 103
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101
Sort the Queue, thenPull the next event for the Simulation History from the Queue
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Que
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101
Delay the history time for remaining events in the Queue by repair time of last event
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID
4,937.9 11.2 1 102 8,048.6 82.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Add the new event TTF to current EventClock time to get history time for new random event.
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101
Event Clock Time 4,718.4
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 4,937.9 11.2 1 102 8,048.6 82.0 1 103 7,184.3 32.3 1 101
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Sort the Queue, thenPull the next event for the Simulation History from the Queue
Time Duration OpLine EventID 4,937.9 11.2 1 102 7,184.3 32.3 1 101 8,048.6 82.0 1 103
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102
Delay the history time for remaining events in the Queue by repair time of last event
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
Time Duration OpLine EventID
7,195.4 32.3 1 101 8,059.7 82.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
Add the new event TTF to current EventClock time to get history time for new random event.
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Event Clock Time 4,949.1
Time Duration OpLine EventID 7,195.4 32.3 1 101 8,059.7 82.0 1 103 10,126.37 21.4 1 102
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
Continue Building the Simulated History
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 7,195.4 32.3 1 101 8,059.7 82.0 1 103 10,126.37 21.4 1 102
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103
Time Duration OpLine EventID 8,092.0 82.0 1 103 9,235.9 1.9 1 101 10,158.6 21.4 1 102
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101
Time Duration OpLine EventID 9,317.9 1.9 1 101 10,240.7 21.4 1 102 78,103.8 101.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101
Time Duration OpLine EventID 9,728.3 1.1 1 101 10,242.6 21.4 1 102 78,105.7 101.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101
Time Duration OpLine EventID 10,145.8 2.0 1 101 10,243.7 21.4 1 102 78,106.8 101.0 1 103
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
Time Duration OpLine EventID 10,245.7 21.4 1 102 14,715.1 7.8 1 101 78,108.9 101.0 1 103
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102 14,662.4 14.8 1 102
Time Duration OpLine EventID 14,662.4 14.8 1 102 14,736.6 7.8 1 101 78,130.3 101.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102 14,662.4 14.8 1 102 14,751.4 7.8 1 101
Time Duration OpLine EventID 14,751.4 7.8 1 101 18,773.6 20.1 1 102 78,145.1 101.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102 14,662.4 14.8 1 102 14,751.4 7.8 1 101 14,779.2 6.8 1 101
Time Duration OpLine EventID 14,922.2 3.6 1 101 18,788.2 20.1 1 102 78,159.7 101.0 1 103
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
Continue Building the Simulated History
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 14,922.2 3.6 1 101 18,781.4 20.1 1 102 78,152.9 101.0 1 103
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102 14,662.4 14.8 1 102 14,751.4 7.8 1 101 14,779.2 6.8 1 101 14,922.2 3.6 1 101
Times To Failure Times To Repair
Building the Simulated History
Simulated History
Event Queue
SysA SysB SysC 3,461.3 4,910.8 8,021.5 1,230.1 5,177.3 69,929.8 2,465.8 4,395.2 212.2 2,008.2 4,096.4 42,037.2 408.4 1,180.9 24,633.8 417.6 20.6 8,530.5 4,567.3 3,140.8 854.1 20.1 3,401.4 12,830.4 136.1 3,942.6 4,679.7 229.0 2,476.6 1,473.7
SysA SysB SysC 26.1 11.2 82.0 1.0 21.4 101.0 32.3 14.8 130.5 1.9 20.1 82.2 1.1 23.7 121.1 2.0 21.1 59.6 7.8 20.7 96.5 6.8 22.3 98.3 3.6 18.8 160.1 1.4 18.3 81.9
Time Duration OpLine EventID 3,461.3 26.1 1 101 4,717.5 1.0 1 101 4,937.9 11.2 1 102 7,195.4 32.3 1 101 8,092.0 82.0 1 103 9,317.9 1.9 1 101 9,728.3 1.1 1 101 10,145.8 2.0 1 101 10,245.7 21.4 1 102 14,662.4 14.8 1 102 14,751.4 7.8 1 101 14,779.2 6.8 1 101 14,922.2 3.6 1 101 15,154.7 1.4 1 101
Time Duration OpLine EventID 15,154.7 1.4 1 101 18,791.8 20.1 1 102 78,163.2 101.0 1 103
Creating the OpLine Detail
Sim Histories
Train1 Train2 Train3
Time Duration 720.6 0.87 1,107.9 1.24 1,417.2 14.70 1,725.5 1.84 2,750.4 1.52 3,022.3 16.01 3,901.6 2.21 4,144.2 4.16 5,397.1 12.22 6,538.5 2.78 6,552.0 18.47 7,710.1 0.17 8,162.4 8.27 9,902.0 2.91 11,542.1 87.59
Time Duration 4,718.4 0.58 5,520.2 190.51 5,759.6 3.99 7,181.5 31.02 9,551.7 7.78 9,722.9 16.73 10,339.8 1.88 10,847.3 115.06 13,132.9 1.15 15,686.1 17.61 17,256.3 18.34 20,572.7 17.49 21,627.7 6.34 22,345.2 13.88 22,499.8 9.71
Time Duration 12.7 13.45 1,480.9 1.00 4,580.0 10.29 5,104.3 0.30 5,269.8 20.32 5,788.9 2.75 6,253.8 14.80 6,377.7 12.54 7,104.4 18.31 10,690.6 4.91 11,041.3 16.35 11,192.9 20.97 15,073.7 52.40 16,833.8 1.98 17,001.5 97.84
Time Duration Train 1 Train 2 Train 3 - 12.70 1 1 1 12.7 13.45 1 1 0 26.2 694.46 1 1 1
720.6 0.87 0 1 1 721.5 386.40 1 1 1 1,107.9 1.24 0 1 1 1,109.1 308.04 1 1 1 1,417.2 14.70 0 1 1 1,431.9 49.08 1 1 1 1,480.9 1.00 1 1 0 1,481.9 243.59 1 1 1 1,725.5 1.84 0 1 1 1,727.4 1,023.05 1 1 1 2,750.4 1.52 0 1 1 2,751.9 270.37 1 1 1 3,022.3 16.01 0 1 1 3,038.3 863.32 1 1 1 3,901.6 2.21 0 1 1 3,903.9 240.35 1 1 1 4,144.2 4.16 0 1 1 4,148.4 431.66 1 1 1 4,580.0 10.29 1 1 0 4,590.3 128.09 1 1 1 4,718.4 0.58 1 0 1
OpLine Detail
library(stosim) > Train1<-ChargeTrain
data(ChargeTrain) OpLine EventID FD FP1 FP2 FP3 RD RP1 RP2 RP3 Seed
Simulation_Years=1000 1 1 101 E 2000 0 0 L 1.7 1.4 0 3
Train1<-ChargeTrain 2 1 102 E 3500 0 0 N 16.0 4.0 0 9
Train2<-cbind(Train1[,-11],"Seed"=Train1[,11]+200)3 1 103 E 10000 0 0 W 96.0 2.0 0 11
Train3<-cbind(Train2[,-11],"Seed"=Train2[,11]+200)sh1<-SimHistory(Train1,Simulation_Years)sh2<-SimHistory(Train2,Simulation_Years) dim(history)sh3<-SimHistory(Train3,Simulation_Years) > dim(history)ChargeSystem<-list(sh1, sh2, sh3) [1] 45441 6history<-DetailOpLines(ChargeSystem)
7.6 events per year stateMAT<-as.matrix(history[,4:6]) 2.0 lines per event GenRate<-.rowSums(stateMAT,45441,3)/3 3.0 trains 45.6 expected lines GenRate[1:10]
per year > GenRate[1:10][1] 1.000 0.667 1.000 0.667 1.000 0.667 1.000 [8] 0.67 1.00 0.67
Availability<-sum(GenRate*history$Duration)/(8760*1000)Availability twodown<-GenRate[sapply(GenRate, function(x) x==1/3)]
> Availability length(twodown)[1] 0.979674 > length(twodown)
[1] 929
alldown<-GenRate[sapply(GenRate, function(x) x==0)]length(alldown)
> length(alldown)[1] 6 167 years MTBF
which(GenRate==0)> which(GenRate==0)[1] 3622 5474 10416 21626 22372 28486
X
Exploring the OpLine Detail
EventID FD FP1 RD RP1 RP2fail rate/yr MTTR Unavail Availability
101 E 2,000 L 1.700 1.400 Subsys A 4.38 14.59 0.00729 0.992707
102 E 3,500 N 16.000 4.000 Subsys B 2.50 16.00 0.00457 0.995429
103 E 10,000 W 96 2 Subsys C 0.88 85.08 0.00851 0.991492
7.60 23.32 0.02024 0.979762
Input Table Values Analytical Summary
2 oo3 trains down sequentially
(3 * 0.02) * (2 * 7.6) = 0.912
Exploring the OpLine Detail
history[3610:3630,]> history[3610:3630,]
Page Time Duration Train 1 Train 2 Train 33610 1 677321.3 16.86 0 1 13611 1 677338.2 296.83 1 1 13612 1 677635 16.15 0 1 13613 1 677651.2 675.11 1 1 13614 1 678326.3 6.96 0 1 13615 1 678333.3 749.73 1 1 13616 1 679083 18.46 1 1 03617 1 679101.5 272.55 1 1 13618 1 679374 1.39 1 1 03619 1 679375.4 53.44 1 1 13620 1 679428.8 74.74 1 1 03621 1 679503.6 13.44 1 0 03622 1 679517 1.80 0 0 03623 1 679518.8 5.16 1 0 03624 1 679524 3.62 1 0 13625 1 679527.6 1,120.87 1 1 13626 1 680648.5 22.27 1 1 03627 1 680670.7 3.85 1 0 03628 1 680674.6 78.74 1 1 03629 1 680753.3 404.63 1 1 13630 1 681157.9 0.07 1 1 0
model<-history[3610:3630,]> history[3610:3630,] reserveHrs<-5Time Duration Train 1 Train 2 Train 3 EndInv MTwInv<-MultiTrainWithInventory(
677321.3 16.86 0 1 1 16.00 model,16,reserveHrs,336, 1,.6,1)677338.2 296.83 1 1 1 16.00
677635 16.15 0 1 1 5.00 > MTwInv
677651.2 675.11 1 1 1 16.00 Time Duration ProdRate DisCapEx RunOutEmptyOnD
678326.3 6.96 0 1 1 9.04 0 677,338.20 0.666667 0 0 0678333.3 749.73 1 1 1 16.00 677338.2 307.83 1 0 0 0
679083 18.46 1 1 0 5.00 677646 5.15 0.666667 0 0 0679101.5 272.55 1 1 1 16.00 677651.2 1,442.81 1 0 0 0
679374 1.39 1 1 0 14.61 679094 7.46 0.666667 0 0 0679375.4 53.44 1 1 1 16.00 679101.5 338.38 1 0 0 0
679428.8 74.74 1 1 0 5.00 679439.8 64.74 0.666667 0 0 0
679503.6 13.44 1 0 0 - 679504.6 5.00 0.6 0 0 0
679517 1.80 0 0 0 - 679509.6 14.40 0 0 1 0
679518.8 5.16 1 0 0 - 679524 3.62 0 0 0 0
679524 3.62 1 0 1 - 679527.6 1,131.87 1 0 0 0
679527.6 1,120.87 1 1 1 16.00 680659.5 12.27 0.666667 0 0 0
680648.5 22.27 1 1 0 5.00 680671.7 2.85 0.6 0 0 0
680670.7 3.85 1 0 0 1.72 680674.6 78.74 0.666667 0 0 0680674.6 78.74 1 1 0 1.72 680753.3 404.70 1 0 0 0680753.3 404.63 1 1 1 16.00
681157.9 0.07 1 1 0 15.93
Production History with Inventory Suport
Production History Entries Inventory Entries
else Is GenRate is lower than last?
At Failure Condition
Was last condition an operational state? No END OF EVENT -record no change in inventory, path 101
Is current demand within discharge capability? No Enter DischargeCapacityExceeded condition at beginning of train state. ProdRate = zero
END OF EVENT -record no change in inventory, path 102
Is there any inventory in storage? No Enter EmptyOnDemand condition at beginning of train state. ProdRate = zero
END OF EVENT -record zero inventory,path 103
else Is the inventory sufficiently above Reserve?
Inventory starts above reserve
Will the end inventory reach Reserve?No END OF EVENT - only record end inventory
for train state, path 104
Is the GenRate below TurndownLimit? No Enter new ProdRate = GenRate condition at time reserve level was reached
END OF EVENT - record end inventory at Reserve , path 105
Yes Enter new ProdRate = TurndownLimit condition at time reserve level was reached
Will operation at TurndownLimit run out inventory?
No END OF EVENT - only record end inventory for train state, path 106
Yes Enter RunOut condition at end of train state. ProdRate = zero
END OF EVENT -record zero inventory, path 107
Logic for Production from Multi-Train system with Inventory
Inventory starts within Reserveelse Will duration of event permit full turndown?
Will any inventory remain at end of TurndownTime?
No Enter RunOut condition before end ofturndown time. ProdRate = zero
END OF EVENT -record zero inventory, path 108
Is the GenRate below TurndownLimit? No Enter ProdRate = GenRate at end of turndown time
END OF EVENT - only record end inventory for train state, path 109
Yes Enter ProdRate = TurndownLimit condition at end of turndown time
Will operation at TurndownLimit run out inventory?
No END OF EVENT - only record end inventory for train state, path 110
Yes Enter RunOut condition at end of train state. ProdRate = zero
END OF EVENT -record zero inventory, path 111
Event Duration Less than Time for Turndown within ReserveWill operation at current rate cause RunOut? No END OF EVENT - only record end inventory
for train state, path 112Yes Enter RunOut condition at end of train state.
ProdRate = zeroEND OF EVENT -record zero inventory, path 113
Logic for Production from Multi-Train system with Inventory
At Repair Conditionelse Is GenRate now equal to 1?
Is ProdRate unchanged? No Production is fully restored. ProdRate = 1add 2 to path
Was there enough run time for refill to complete? No END OF EVENT -define inventory change according to RefillHrs capability, path 201/203
Yes END OF EVENT -inventory is now at CapacityHrs, path 202/204
Logic for Production from Multi-Train system with Inventory
GenRate is not yet fully restoredelse Is LastProdRate greater than GenRate?
else Is the inventory sufficiently above Reserve?
Will the end inventory reach Reserve? No END OF EVENT - only record end inventory for train state, path 205
Is the GenRate below TurndownLimit? No Enter new ProdRate = GenRate condition at time reserve level was reached
END OF EVENT - record end inventory at Reserve , path 206
Yes Enter new ProdRate = TurndownLimit condition at time reserve level was reached
Will operation at TurndownLimit run out inventory?
No END OF EVENT - only record end inventory for train state, path 207
Yes Enter RunOut condition at end of train state. ProdRate = zero
END OF EVENT -record zero inventory, path 208
Inventory starts within ReserveIs the GenRate below TurndownLimit? No Enter ProdRate = GenRate immediately END OF EVENT - no change to inventory,
path 209Yes Enter ProdRate = TurndownLimit
immediately
Will any inventory remain at end of Train State?
No END OF EVENT - only record end inventory for train state, path 210
Yes Enter RunOut condition at end of turndown time. ProdRate = zero
END OF EVENT -record zero inventory, path 211
no demand is occurring on storageIs GenRate now > = TurndownLimit? No no change in ProdRate, which must be zero END OF EVENT -record no change in
inventory, path 212
Is GenRate greater than Last ProdRate? No no change in ProdRate END OF EVENT -record no change in inventory, path 213
Yes Production is restored to GenRate END OF EVENT -record no change in inventory, path 214
Completion of Model Analysis
for(x in seq(1.5,15,by=.5)) {ChgTwInv<-MultiTrainWithInventory(ChargeTrainParallelHistory, 16,x,336, 1,.6,1)wid<-ChgTwInv[[1]]DischargeCapExceeded<-sum(wid$DisCapEx)RunOut=sum(wid$RunOut)EmptyOnDemand<-sum(wid$EmptyOnD)Reactor_Restarts<-DischargeCapExceeded+RunOut+EmptyOnDemandAvailability<-sum(wid$Duration*wid$ProdRate)/(Simulation_Years*8760+Reactor_Restarts*72)thisDFline<-data.frame(ReserveHrs=x,DischargeCapExceeded=DischargeCapExceeded, RunOut=RunOut, EmptyOnDemand=EmptyOnDemand, Availability=Availability)ChargeTrain2PrimaryReactor<-rbind(ChargeTrain2PrimaryReactor,thisDFline)}Model<-ChargeTrain2PrimaryReactorReserve_Hours<-Model$ReserveHrsReactor_Availability<-Model$Availabilityplot(Reserve_Hours,Reactor_Availability,type="l")
2 4 6 8 10 12 14
0.9
79
20
.97
94
0.9
79
60
.97
98
0.9
80
0
Reserve_Hours
Re
act
or_
Ava
ilab
ility
Usage
MultiTrainWithInventory(model, CapacityHrs, ReserveHrs, RefillTime, DischargeCap=1, TurndownLimit=0.6, TurndownTime=1, ProgRpt=FALSE)
Expanded Considerations
MulitiTrainWithInventory was designed to take restraining parameters of the example problem as variables. This enables its proactive use in design.
• What is the value of additional storage capacity?
• Is a single train discharge capability too limiting?
• What is an effective accumulator design?
Expanded Considerations
With simulated history for the system so developed what other kind of questions can be posed?
• What does the distribution of annual availability look like?
• What is the confidence in meeting availability commitments?
• If the charge feed system crosses a contractual barrier, what might the effect of contract performance penalties be?
Expanded Considerations
What other type of problems are suited to stochastic, discrete event modeling?
• Multiple supply systems of varied capacity and design.
• Service to multiple customers from a pipeline network.• Distribution of available product to clients during
curtailment.• Account for compression and piping (pumping)
limitations.• Account for pressure drop in pipeline system.
• More Ideas???
Thank You