41
Using Stochastic RAM Analysis to 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

Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

  • Upload
    karma

  • View
    63

  • Download
    3

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

Page 1: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 2: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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, . . .)

Page 3: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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.

Page 4: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

Multi-train Feed Inventory

Primary Reactor

Page 5: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 6: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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.

Page 7: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 8: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 9: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 10: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 11: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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.

Page 12: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 13: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 14: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 15: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 16: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 17: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 18: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 19: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 20: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 21: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 22: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 23: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 24: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 25: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 26: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 27: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 28: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 29: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 30: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 31: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 32: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 33: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 34: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 35: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 36: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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

Page 37: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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)

Page 38: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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?

Page 39: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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?

Page 40: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

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???

Page 41: Using Stochastic RAM Analysis to Establish an Optimal Operating Policy

Thank You