Uploaded by zmw lucky

Reliability Considerations for Quality M

advertisement
Reliability Considerations
for
Quality Managers
Course Title: Quality Management IE 580
Professor: Hoang Pham
• Presented by: David Silkworth
• Managing Director: OpenReliability.org
Impressions on Reliability
with regard to repairable plant experience
Two Views of Plant Reliability
Frequency vs Unavailability
4,6
4,1
0,80%
0,70%
3,6
0,60%
0,50%
2,6
0,40%
2,1
0,30%
1,6
0,20%
1,1
0,10%
0,6
0,1
0,00%
0,50
5,00
50,00
Repair Hours
Frequency
Unavailability
Unavailability
Failure Frequency
3,1
Modeling product supply from
plant with backup
0.50 1.00
0.05 0.10
0.01
Failure Frequency - per year
5.00
Cumulative Hazard Distribution Function - (CHDF)
0
50
100
150
200
Outage Duration - hours longer than
250
300
Stochastic Modeling
The Risk Matrix
Lower Frequency
Higher Consequence
“Hidden” Risk
Higher Frequency
Higher Consequence
High Risk
Consequence
Lower Frequency
Lower Consequence
Low Risk
Higher Frequency
Lower Consequence
Medium Risk
Probability
Technology Risk
Higher Frequency
Higher Consequence
High Risk
Little data, nearly immediate
failure on early exposure
The Risk Matrix
Lower Frequency
Higher Consequence
“Hidden” Risk
Higher Frequency
Higher Consequence
High Risk
Consequence
Lower Frequency
Lower Consequence
Low Risk
Higher Frequency
Lower Consequence
Medium Risk
Probability
Root Cause Analysis
on Near Misses or
Significant Loss Events
Lower Frequency
Higher Consequence
Failure Reporting and Corrective
Actions (FRACAS)
Data Outliers
“Hidden” Risk
Fault Tree Analysis
Failure Modes and Effects Analysis
The Risk Matrix
Existential Threats
Lower Frequency
Higher Consequence
High Risk
“Hidden” Risk
Consequence
Higher Frequency
Higher Consequence
outliers
Lower Frequency
Lower Consequence
Higher Frequency
Lower Consequence
DMAIC –Six Sigma Analysis
Low Risk
Medium Risk
Probability
**** Lots of data *****
Scatter plots
Multiple regression analysis
Time Series Control Charting
Failure Modes and Effects Analysis
(FMEA)
Root Cause Analysis
Software packages using R
https://www.r-project.org/
Life Data Analysis: WeibullR
Fault Tree Analysis: FaultTree
Stochastic Modeling: stosim
Microsoft R Open: The Enhanced R Distribution
WeibullR tutorial material online
https://www.academia.edu/38728015/
Introducing_WeibullR_A_package_on_R_Life_data_analysis_in_the_graphical_tradition_of_Waloddi_Weibull
https://github.com/openrelia/WeibullR.gallery
https://www.researchgate.net/publication/341170298_WeibullR_An_R_Package_for_Weibull_Analysis_for_
Reliability_Engineers
90 98
50
20
2
5
10
20
10
5
2
5
10
50
Time To Failure
500
5000
0.5
1
0.5 1
1
acid gas compressor
ranks = median
n (fail | cens.) = 200 (200 | 0)
w eibull (rr-xony)
beta = 1.167
eta = 1401
r^2 = 0.9403
prr = 0 by corr.
0.5
Unreliability [%]
50
90 98
require(WeibullR)
agc<read.csv("https://raw.githubusercontent.com/openrelia/WeibullR.gallery/master/data/acid_gas_compressor.csv
", header=T)$agc
Bathtub Life Data
dafit<-wblr(agc, label="acid gas compressor")
0.5 1
5 10
50
500
5000
dafit<-wblr.fit(dafit,col="red")
plot(dafit, main="Bathtub Life Data")
abline(v=107, col="orange", lty=5, lwd=2)
abline(v=1750, col="orange", lty=5, lwd=2)
Division of Life Data Using 3p Weibull
10
50
500
5000
50
20
ranks = median
n (fail | cens.) = 200 (10 | 190)
weibull3p (rr-xony)
beta = 0.9465
eta = 3179
t0 = -7.601
r^2 = 0.9783
0.5 1
5
10
50
Time To Failure
500
5000
2
1
0.5
1
2
ranks = median
n (fail | cens.) = 200 (121 | 79)
weibull3p (rr-xony)
beta = 1.117
eta = 1569
t0 = 98.51
r^2 = 0.9923
5
10
20
10
5
ranks = median
n (fail | cens.) = 200 (69 | 131)
weibull3p (rr-xony)
beta = 1.458
eta = 450.8
t0 = 1742
r^2 = 0.9882
0.5
Unreliability [%]
50
90 98
5
90 98
0.5 1
Linear 3p Weibull Fits by t0 Data Adjustment
50
100
500
5000
50
50
90 98
10
90 98
5
20
10
20
10
5
10
50
100
500
time - t0
5000
5
2
1
2
1
Early Lif e
*t0 mod* ranks = median
n (f ail | cens.) = 200 (10 | 190)
weibull3p (rr-xony )
beta = 0.9465
eta = 3179
t0 = -7.601
r^2 = 0.9783
0.5
5
Mid Lif e
*t0 mod* ranks = median
n (f ail | cens.) = 190 (121 | 69)
weibull3p (rr-xony )
beta = 1.117
eta = 1569
t0 = 98.73
r^2 = 0.9923
0.5
Unreliability [%]
End Lif e
*t0 mod* ranks = median
n (f ail | cens.) = 69 (69 | 0)
weibull3p (rr-xony )
beta = 1.45
eta = 444.7
t0 = 1746
r^2 = 0.9884
FaultTree tutorial material online
http://www.openreliability.org/faulttree-users-tutorial/
Require(FaultTree)
tree1 <- ftree.make(type="priority",reversible_cond=TRUE, name="Site power loss")
tree1 <- addLogic(tree1, at=1, type="or", name="neither emergency", name2="generator operable")
tree1 <- addLogic(tree1, at=2, type="and", name="Independent failure", name2="of generators")
tree1 <- addLatent(tree1, at=3, mttf=5,mttr=12/8760,inspect=1/26, name="e-gen set fails")
tree1 <- addLatent(tree1, at=3, mttf=5,mttr=12/8760,inspect=1/26, name="e-gen set fails")
tree1 <- addLogic(tree1, at=2, type="inhibit", name="Common cause", name2="failure of generators")
tree1 <- addProbability(tree1, at=6, prob=.05, name="Common cause", name2="beta factor")
tree1 <- addLatent(tree1, at=6, mttf=5,mttr=12/8760,inspect=1/26, name="e-gen set fails")
tree1 <- addDemand(tree1, at=1, mttf=1.0, name="External power", name2="interruption")
tree1 <- ftree.calc(tree1) tree1[,1:8]
## The tree can be displayed in the browser using the following commands:
ftree2html(tree1, write_file=TRUE)
browseURL('tree1.html')
stosim example online
https://www.academia.edu/10053888/
Using_Stochastic_RAM_Analysis_to_Establish_an_Optimal_Operating_Policy
library(stosim)
data(ChargeTrain)
Simulation_Years=5000
Train1<-ChargeTrain
Train2<-cbind(Train1[,-11],"Seed"=Train1[,11]+200)
Train3<-cbind(Train2[,-11],"Seed"=Train2[,11]+200)
sh1<-SimHistory(Train1,Simulation_Years)
sh2<-SimHistory(Train2,Simulation_Years)
sh3<-SimHistory(Train3,Simulation_Years)
ChargeSystem<-list(sh1, sh2, sh3)
ChargeTrainParallelHistory<-DetailOpLines(ChargeSystem)
x<-1.1
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+EmptyOnDemand
Availability<-sum(wid$Duration*wid$ProdRate)/(Simulation_Years*8760+Reactor_Restarts*72)
ChargeTrain2PrimaryReactor<-data.frame(ReserveHrs=x,DischargeCapExceeded=DischargeCapExceeded,
RunOut=RunOut, EmptyOnDemand=EmptyOnDemand, Availability=Availability)
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+EmptyOnDemand
Availability<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<-ChargeTrain2PrimaryReactor
Reserve_Hours<-Model$ReserveHrs
Reactor_Availability<-Model$Availability
plot(Reserve_Hours,Reactor_Availability,type="l")
Example Problem RBD
Charge Unit 1B
Charge Unit 1C
Charge Unit 2A
Charge Unit 2B
Charge Unit 2C
Charge Unit 3A
Charge Unit 3B
Charge Unit 3C
Accumulator
Charge Storage
Storage Discharge
Charge Unit 1A
Primary Reactor
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.
0.9796
0.9794
0.9792
Reactor_Availability
0.9798
0.9800
Completion of Model Analysis
2
4
6
8
Reserve_Hours
10
12
14
Download