-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcbm-rbd-paper.tex
More file actions
2037 lines (1809 loc) · 108 KB
/
Copy pathcbm-rbd-paper.tex
File metadata and controls
2037 lines (1809 loc) · 108 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[authoryear]{myelsartcl}
% ------------ packages -------------
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage{graphicx}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{bm}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{booktabs}
\usepackage{tikz}
\usepackage{sidecap}
\usepackage{url}
\usepackage[bookmarks]{hyperref}
%\usetikzlibrary{shapes.misc,fit}
\usetikzlibrary{%
arrows,%
calc,%
fit,%
patterns,%
plotmarks,%
shapes.geometric,%
shapes.misc,%
shapes.symbols,%
shapes.arrows,%
shapes.callouts,%
shapes.multipart,%
shapes.gates.logic.US,%
shapes.gates.logic.IEC,%
er,%
automata,%
backgrounds,%
chains,%
topaths,%
trees,%
petri,%
mindmap,%
matrix,%
calendar,%
folding,%
fadings,%
through,%
patterns,%
positioning,%
scopes,%
decorations.fractals,%
decorations.shapes,%
decorations.text,%
decorations.pathmorphing,%
decorations.pathreplacing,%
decorations.footprints,%
decorations.markings,%
shadows}
%\usepackage{hyperref}
%\usepackage[bookmarks]{hyperref}
%\usepackage[colorlinks=true,citecolor=red,linkcolor=black]{hyperref}
% ------------ custom defs -------------
\newcommand{\reals}{\mathbb{R}}
\newcommand{\posreals}{\reals_{>0}}
\newcommand{\posrealszero}{\reals_{\ge 0}}
\newcommand{\naturals}{\mathbb{N}}
\newcommand{\dd}{\,\mathrm{d}}
\newcommand{\mbf}[1]{\mathbf{#1}}
\newcommand{\bs}[1]{\boldsymbol{#1}}
\renewcommand{\vec}[1]{{\bm#1}}
\newcommand{\uz}{^{(0)}} % upper zero
\newcommand{\un}{^{(n)}} % upper n
\newcommand{\ui}{^{(i)}} % upper i
\newcommand{\ul}[1]{\underline{#1}}
\newcommand{\ol}[1]{\overline{#1}}
\newcommand{\Tsys}{T_\text{sys}}
\newcommand{\Rsys}{R_\text{sys}}
\newcommand{\lRsys}{\ul{R}_\text{sys}}
\newcommand{\uRsys}{\ol{R}_\text{sys}}
\newcommand{\fsys}{f_\text{sys}}
\newcommand{\Fsys}{F_\text{sys}}
\newcommand{\lFsys}{\ul{F}_\text{sys}}
\newcommand{\uFsys}{\ol{F}_\text{sys}}
\newcommand{\lgt}{\ul{g}}
\newcommand{\ugt}{\ol{g}}
\newcommand{\E}{\operatorname{E}}
\newcommand{\V}{\operatorname{Var}}
\newcommand{\wei}{\operatorname{Wei}} % Weibull Distribution
\newcommand{\ig}{\operatorname{IG}} % Inverse Gamma Distribution
\newcommand{\El}{\ul{\operatorname{E}}}
\newcommand{\Eu}{\ol{\operatorname{E}}}
\def\yz{y\uz}
\def\yn{y\un}
%\def\yi{y\ui}
\newcommand{\yfun}[1]{y^{({#1})}}
\newcommand{\yfunl}[1]{\ul{y}^{({#1})}}
\newcommand{\yfunu}[1]{\ol{y}^{({#1})}}
\def\ykz{y\uz_k}
\def\ykn{y\un_k}
\def\yzl{\ul{y}\uz}
\def\yzu{\ol{y}\uz}
\def\ynl{\ul{y}\un}
\def\ynu{\ol{y}\un}
\def\yil{\ul{y}\ui}
\def\yiu{\ol{y}\ui}
\def\ykzl{\ul{y}\uz_k}
\def\ykzu{\ol{y}\uz_k}
\def\yknl{\ul{y}\un_k}
\def\yknu{\ol{y}\un_k}
\newcommand{\ykzfun}[1]{y\uz_{#1}}
\newcommand{\ykzlfun}[1]{\ul{y}\uz_{#1}}
\newcommand{\ykzufun}[1]{\ol{y}\uz_{#1}}
\def\nz{n\uz}
\def\nn{n\un}
%\def\ni{n\ui}
\newcommand{\nfun}[1]{n^{({#1})}}
\newcommand{\nfunl}[1]{\ul{n}^{({#1})}}
\newcommand{\nfunu}[1]{\ol{n}^{({#1})}}
\def\nkz{n\uz_k}
\def\nkn{n\un_k}
\newcommand{\nkzfun}[1]{n\uz_{#1}}
\newcommand{\nkzlfun}[1]{\ul{n}\uz_{#1}}
\newcommand{\nkzufun}[1]{\ol{n}\uz_{#1}}
\def\nzl{\ul{n}\uz}
\def\nzu{\ol{n}\uz}
\def\nnl{\ul{n}\un}
\def\nnu{\ol{n}\un}
\def\nil{\ul{n}\ui}
\def\niu{\ol{n}\ui}
\def\nkzl{\ul{n}\uz_k}
\def\nkzu{\ol{n}\uz_k}
\def\nknl{\ul{n}\un_k}
\def\nknu{\ol{n}\un_k}
\def\yknow{y_k^{(\tnow)}}
\def\nknow{n_k^{(\tnow)}}
\newcommand{\nk}{n_k}
\newcommand{\nkp}{n_k'}
\newcommand{\yk}{y_k}
\newcommand{\ykp}{y_k'}
\def\taut{\tau(\vec{t})}
\def\ttau{\tilde{\tau}}
\def\ttaut{\ttau(\vec{t})}
\def\tautk{\tau(\vec{t}_k)}
\def\MZ{\mathcal{M}\uz}
\def\MN{\mathcal{M}\un}
\def\MkZ{\mathcal{M}\uz_k}
\def\MkN{\mathcal{M}\un_k}
\def\PkZ{\Pi\uz_k}
\def\PkN{\Pi\un_k}
\newcommand{\PZi}[1]{\Pi\uz_{#1}}
\def\tnow{t_\text{now}}
\def\tpnow{t^+_\text{now}}
\newcommand{\Rsysnow}{R^{(t_\text{now})}_\text{sys}}
\newcommand{\Tsysnow}{T^{(t_\text{now})}_\text{sys}}
\newcommand{\tsysnow}{t^{(t_\text{now})}_\text{sys}}
\newcommand{\fsysnow}{f^{(t_\text{now})}_\text{sys}}
\def\eknow{e_k^{(\tnow)}}
\def\cknow{c_k^{(\tnow)}}
\def\vectknow{\vec{t}_k^{(\tnow)}}
\def\Phinow{\Phi^{(\tnow)}}
\newcommand{\gnow}{g^{(\tnow)}}
\newcommand{\tausnow}{\tau_*^{(\tnow)}}
\newcommand{\tprep}{\tau_{\text{prep}}}
\newcommand{\tthresh}{\tau_{\text{thresh}}}
\newcommand{\tstarnow}{t_*^{(\tnow)}}
\newcommand{\gstarnow}{g_*^{(\tnow)}}
\newcommand{\gtotalnow}{g_\text{total}^{(\tnow)}}
\newcommand{\esys}{e_\text{sys}}
\newcommand{\mrsys}{\bar{r}_\text{sys}}
\newcommand{\tausfun}[1]{\tau_*^{(#1)}}
% ------------ options -------------
\allowdisplaybreaks
\journal{RESS}
\begin{document}
% ------------ frontmatter -------------
\begin{frontmatter}
\title{Condition-Based Maintenance for Complex Systems\\ based on Current Component Status\\ and Bayesian Updating of Component Reliability}
\author[tue]{Gero Walter}
\ead{g.m.walter@tue.nl}
\author[tue]{Simme Douwe Flapper}
\ead{s.d.p.flapper@tue.nl}
\address[tue]{School of Industrial Engineering, Eindhoven University of Technology, Eindhoven, The Netherlands}
\begin{abstract}
We propose a new condition-based maintenance policy for complex systems,
based on the status (working, defective) of all components within a system,
as well as the reliability block diagram of the system.
By means of the survival signature,
a generalization of the system signature allowing for multiple component types,
we obtain a predictive distribution for the system survival time,
also known as residual life distribution,
based on which of the system's components currently function or not,
and the current age of the functioning components.
The time to failure of the components of the system
is modeled by a Weibull distribution with a fixed shape parameter.
The scale parameter is iteratively updated in a Bayesian fashion
using the current (censored and non-censored) component lifetimes.
Each component type has a separate Weibull model that may also include test data.
The cost-optimal moment of replacement for the system is obtained by minimizing
the expected cost rate per unit of time.
The unit cost rate is recalculated when components fail
or at the end of every (very short) fixed inter-evaluation interval,
leading to a dynamic maintenance policy,
since the ageing of components and possible failures will change the cost-optimal moment of replacement in the course of time.
Via numerical experiments, some insight into the performance of the policy is given.
\end{abstract}
\begin{keyword}
condition-based maintenance \sep system reliability \sep remaining useful life \sep survival signature \sep unit time cost rate\end{keyword}
\end{frontmatter}
% ------------ manuscript -------------
\section{Introduction}
\label{intro}
Both in practice and academics,
there is a growing interest in condition-based maintenance (CBM), see e.g.,
\citet{2017:oldekeizer}
The central idea behind CBM is to maintain systems or components at exactly the right time,
i.e., just before they fail, %but not too early,
in order to keep their reliability high and operating costs low,
using information about the actual condition of the systems or components.
In this context a trade-off is made between the risk of failure during operation
(which can lead to costly downtime: idle workforce, missed production, penalties, loss of reputation)
and the costs of premature maintenance (wasting potential component or system lifetime,
downtime cost, cost of executing unnecessary maintenance activities).
Among the reasons for the above interest are the importance of increasingly short and
reliable delivery times, and decreasing profit margins due to worldwide competition.
All kinds of technical improvements have made it possible % it is more / better / earlier possible
to estimate the condition of systems as a whole as well as their underlying components,
whereas the cost for these technologies is decreasing rapidly,
making the use of CBM policies even more feasible.
Most CBM policies are based on a directly observable, continuously measurable condition or degradation signal,
e.g., the amount of vibration in case of rotating equipment.
Alternatively, such a signal or health status is constructed
using indirect measurements to determine the remaining useful life or time to failure of a system,
see, e.g., \citet{2014:rul-review, 2011:rul-review-statistical}.
In this paper, we propose a new kind of CBM policy
for when no such \emph{usual} degradation signal for the system is available,
but where the status (working or not working) of the system's components can be monitored (quasi-) continuously.
%i.e., observed every $\delta$ time units, where $\delta$ is very small compared to the lifetimes of components.
In this situation, one can use the system's reliability block diagram
and information with respect to the status of its components
to directly calculate the system residual life distribution (RLD),
and base the maintenance policy for the system on this distribution.
In fact, our CBM policy can also be seen as based on a multivariate degradation signal,
where each component sends a binary signal, and the reliability block diagram is used for sensor fusion.
To calculate the system RLD, we use the survival signature,
which allows to deal with different types of components each having an individual failure time model
(see Section~\ref{sec:sysrel}).
Here we assume that components of different types fail independently,
and that failure times of components of the same type are independent given the model parameters.
In our new policy, there are three types of triggers to review the system:
(1) at the end of each very short time interval $\delta$
(where $\delta$ is very short compared to the lifetimes of components),
(2) directly after the failure of a component where the system still functions,
and (3) directly after the failure of a component due to which the system as a whole no longer can function.
We denote each review of the system in reaction to triggers (1) and (2) by `evaluation',
since the system RLD is re-evaluated at each of these time points,
and a decision is made on whether preventive maintenance should be carried out or not.
We use the term `evaluation' in place of the term `inspection',
because the re-evaluation of the system RLD does not require a physical inspection,
as we assume to learn of the exact failure times of components online via (quasi-) continuous monitoring.
In case of a trigger of type (1),
the currently used models for component failure times are updated
to account for the extra lifetime observed for the components.
This information is taken into account via right-censored observations
in a Bayesian parameter update step.
In case of a trigger of type (2),
where a component has failed but the system is still functioning,
in addition to the component models also the reliability block diagram of the system is updated.
Based on the above changes,
it is determined in both cases whether the system should be replaced now,
or that this decision should be postponed until the next planned evaluation moment,
accepting the risk of a system breakdown before.
To determine the latter,
we calculate the `optimal' next evaluation moment %moment for system replacement***
based on minimizing the expected maintenance-related cost per unit of time for the present operational cycle.
An operational cycle spans the time between two consecutive system maintenance actions.
We assume that in both preventive and corrective maintenance, the entire system is replaced or brought to an as good as new state,
and thus optimize the unit cost rate calculated over the time since the last system replacement.
When the `optimal' next evaluation moment is before the next planned evaluation moment, we replace the system now;
else we wait for the next planned evaluation moment.
The reason behind this decision is that $\delta$ is taken as %usually is
%the shortest interval for which re-evaluation of the system RLD will show any difference***
%the shortest inter-observation period that can be realized from a hardware point of view.
the shortest inter-evaluation period that can be realized from a hardware point of view.
%the time granularity according to which maintenance actions can be reasonably triggered***.
To illustrate, for components with lifetimes amounting to a few days,
$\delta$ could be in the order of minutes;
for components with lifetimes measuring in months,
$\delta$ could be one day.
Note that strictly speaking, this decision procedure may not be optimal.
However, because $\delta$ is very small when compared to the prior estimates of the lifetime of the components,
at the time that the next `optimal' evaluation moment is before the next planned evaluation moment,
we usually already have done much better than without updating as described in this paper.
In this context it is also important to realize that our method
doesn't necessarily result in the actual optimal replacement solution for another reason,
inherent to using updated information for decisions,
when these updates can indicate that the former estimates were too optimistic or too pessimistic.
The reason for this is that for some components,
a too pessimistic prior probability density function (pdf)
may lead to an increase in system reliability over time without any intervention.
Whether or not this will be the case, as well as until when this kind of increase can occur,
is uncertain at every moment in time.
As a sidenote,
this kind of uncertainty about the probabilistic behaviour itself is very often neglected in operations research literature.
Determining the next `optimal' evaluation moment can thus only indicate whether or not waiting with the replacement
may result in lower or higher cost per unit of time,
i.e., only indicates a local optimum,
but not necessarily a global one.
In case of a trigger of type (3),
where the failure of a component leads to the whole system failing,
the currently used component failure time distributions are updated
like in case of a trigger of type (1) and (2)
to account for the information gained on components
until the moment of system failure.
Hereafter, a new system is installed,
using the updated models for all components based on the insight obtained from the finished operational cycles so far.
At first sight, the above quasi-continous updating of the component failure models,
and the system reliability block diagram,
as well as redetermining the best moment to replace the system,
seems to result in a (very) nervous maintenance policy.
However, due to the very short calculation times,
only at certain moments in time people involved in the execution of maintenance tasks
need to receive detailed information,
whereas during the remaining time,
all can be handled automatically, as currently done within, e.g., many safety systems.
The setup of the rest of the paper is as follows.
In Section~\ref{sec:literature}, we describe our contribution to the CBM literature.
Next, in Sections~\ref{sec:sysrel}, \ref{sec:adaptive-sysrel-weibull} and \ref{sec:policy},
the three main steps in our policy are discussed in detail.
Hereafter, in Sections~\ref{sec:examples} and \ref{sec:sim},
our policy is applied further to an example.
Finally, in Section~\ref{sec:outlook},
a short summary and our main conclusions are given,
followed by some suggestions for further research.
\section{Literature review}
\label{sec:literature}
Although there is a lot of literature on CBM policies for multi-component systems,
see, e.g., \citet{2017:oldekeizer},
we found only a few papers having some relation to our approach.
The paper that comes closest to this paper is the paper by \citet{2013:si-et-al}.
In that paper, the condition of a system is inspected,
where the moment of the next inspection is determined via an updated degradation path based on the present condition of the system.
The authors provide exact expressions for the RLD,
also known as RUL (remaining useful lifetime) distribution,
which is updated in an empirical Bayesian framework using conjugate priors.
The RLD is used to construct a replacement decision model using a cost rate.
While we also use a Bayesian approach with conjugate priors to provide exact expressions for the RLD,
one of the main differences between \citet{2013:si-et-al} and our paper
is that we use component status data and the system reliability block diagram instead of a continuous degradation signal
as basis for calculating the system RLD.
Another main difference is that our policy can be applied to arbitrary system configurations
(i.e., arbitrary reliability block diagrams with arbitrary components),
whereas the method given by \citet{2013:si-et-al} can only be applied to single components.
A third difference concerns how the cost rate is calculated.
\citet{2013:si-et-al} calculate this rate using the renewal-reward theory approximation.
Essential for using the renewal-reward theory for calculating the expected cost per unit of time
is that the relevant characteristics of the system considered and its environment are not changing,
i.e.\ that the failure behavior of the system,
in essence its reliability function, does not change over time,
and that the same policy with the same parameter values is used for a statistically long enough period of time.
However, due to the update method related to the CBM policy presented in this paper, %like in \citet{2013:si-et-al},
we cannot use the renewal-reward theory based calculation method,
and therefore use the exact formula for the average cost per unit of time.
Another paper that includes some of the aspects covered in our paper is the paper by \citet{2012:sun-et-al}.
The authors construct a health index for a system based on sensor measurements,
where the health status prediction is updated sequentially,
resulting in a RUL distribution like with our method.
However, in contrast to our paper, the authors do not link their RUL distribution to any maintenance decisions.
\citet{2011:kim-et-al} developed a periodic monitoring CBM policy
where a maintenance decision is triggered when a Bayesian control chart
(a sequentially updated health indicator) exceeds a control limit (threshold)
that is determined by minimizing the expected average cost per time unit.
We use the same cost criterion, but base the maintenance policy decision directly on our exact RLD.
To summarize the main contribution of our paper,
it introduces a CBM-like policy that does not require knowledge of the degradation path of the system,
but can take into account continuous changes in the system reliability block diagram,
as well as changes in the component failure time distributions.
\section{Reliability function for complex systems using the survival signature}
\label{sec:sysrel}
Let $\Tsys$ be the time to failure of the system,
and $\Rsys(t) := P(\Tsys > t)$ be the system reliability function.
Here we describe how $\Rsys(t)$, given the system reliability block diagram and arbitrary component models,
can be efficiently calculated using the survival signature.
%We will show in Section~\ref{sec:adaptive-sysrel-weibull} how, for a certain choice of component model,
%this method can be used to find the system reliability function $\Rsysnow(t)$ at current time $\tnow$ for a monitored system,
%giving us the residual life distribution on which we base our adaptive maintenance policy.
We can analyze systems with an arbitrary reliability block diagram,
consisting of components of $K$ different types,
where there are $N_k$ exchangeable components of type $k$ in the system,
and $N$, the total number of components in the system, is given by $\sum_{k=1}^K N_k = N$.
As a running example, we consider a simplified automotive braking system
consisting of four component types $M$, $H$, $C$ and $P$,
with the reliability block diagram as depicted in Figure~\ref{fig:brakesys-layout}.
The master brake cylinder ($M$) activates all four wheel brake cylinders ($C_1$ -- $C_4$),
which in turn actuate a braking pad assembly each ($P_1$ -- $P_4$).
The hand brake mechanism ($H$) directly actuates the brake pad assemblies $P_3$ and $P_4$,
and the vehicle brakes when at least one brake pad assembly is actuated.
Note that because of the `handbrake shortcut', this system cannot be described as a nesting of series and parallel subsystems.
%This system is observed until time $\tnow$,
%leading to censored observation of certain component lifetimes within the system.
Our example system is deliberately kept quite simple for didactical reasons.
The survival signature allows to analyze much larger systems,
see, e.g., the examples in \citet{2017:reed},
and our approach is able to deal with such systems.
\begin{figure}
\centering
\begin{tikzpicture}
[typeM/.style={rectangle,draw,fill=black!20,thick,inner sep=0pt,minimum size=8mm}, %font=\footnotesize},
typeC/.style={rectangle,draw,fill=black!20,thick,inner sep=0pt,minimum size=8mm}, %font=\footnotesize},
typeP/.style={rectangle,draw,fill=black!20,thick,inner sep=0pt,minimum size=8mm}, %font=\footnotesize},
typeH/.style={rectangle,draw,fill=black!20,thick,inner sep=0pt,minimum size=8mm}, %font=\footnotesize},
type1/.style={rectangle,draw,fill=black!20,very thick,inner sep=0pt,minimum size=8mm},
type2/.style={rectangle,draw,fill=black!20,very thick,inner sep=0pt,minimum size=8mm},
type3/.style={rectangle,draw,fill=black!20,very thick,inner sep=0pt,minimum size=8mm},
cross/.style={cross out,draw=red,very thick,minimum width=9mm, minimum height=7mm},
hv path/.style={thick, to path={-| (\tikztotarget)}},
vh path/.style={thick, to path={|- (\tikztotarget)}}]
\begin{scope}[xscale=1.5, yscale=1.2]
\node[typeM] (M) at ( 0 , 0 ) {$M$};
\node[typeC] (C1) at ( 1 , 1.5) {$C_1$};
\node[typeC] (C2) at ( 1 , 0.5) {$C_2$};
%\node[cross] at ( 1 , 0.5) {};
\node[typeC] (C3) at ( 1 ,-0.5) {$C_3$};
%\node[cross] at ( 1 ,-0.5) {};
\node[typeC] (C4) at ( 1 ,-1.5) {$C_4$};
\node[typeP] (P1) at ( 2 , 1.5) {$P_1$};
\node[typeP] (P2) at ( 2 , 0.5) {$P_2$};
%\node[cross] at ( 2 , 0.5) {};
\node[typeP] (P3) at ( 2 ,-0.5) {$P_3$};
%\node[cross] at ( 2 ,-0.5) {};
\node[typeP] (P4) at ( 2 ,-1.5) {$P_4$};
\node[typeH] (H) at ( 0 ,-1 ) {$H$};
\coordinate (start) at (-0.7, 0);
\coordinate (startC) at ( 0.5, 0);
\coordinate (startH) at (-0.4, 0);
\coordinate (Hhop1) at ( 0.4,-1);
\coordinate (Hhop2) at ( 0.6,-1);
\coordinate (endP) at ( 2.5, 0);
\coordinate (end) at ( 2.8, 0);
\path (start) edge[hv path] (M.west)
(M.east) edge[hv path] (startC)
(startC) edge[vh path] (C1.west)
edge[vh path] (C2.west)
edge[vh path] (C3.west)
edge[vh path] (C4.west)
(C1.east) edge[hv path] (P1.west)
(C2.east) edge[hv path] (P2.west)
(C3.east) edge[hv path] (P3.west)
(C4.east) edge[hv path] (P4.west)
(endP) edge[vh path] (P1.east)
edge[vh path] (P2.east)
edge[vh path] (P3.east)
edge[vh path] (P4.east)
edge[hv path] (end)
(startH) edge[vh path] (H.west)
(H.east) edge[hv path] (Hhop1)
(Hhop1) edge[thick,out=90,in=90] (Hhop2)
(Hhop2) edge[hv path] (P3.south)
edge[hv path] (P4.north);
\end{scope}
\end{tikzpicture}
\caption{Reliability block diagram for a simplified automotive brake system
with four component types $M$, $H$, $C$ and $P$.}
%Note that this system layout cannot be expressed as a nesting of series and parallel layouts.
%The corresponding survival signature $\Phi(l_M,l_H,l_C,l_P)$ is given in Table~\ref{tab:brakesys-survsign}.}
\label{fig:brakesys-layout}
\end{figure}
In a system with $N$ components, the state of the system can be expressed by the state vector
$\vec{x} = (x_1,x_2,\ldots,x_N) \in \{0,1\}^N$,
with $x_i=1$ if the $i$th component functions and $x_i=0$ if not.
The structure function $\phi : \{0,1\}^N \rightarrow \{0,1\}$, defined for all possible $\vec{x}$,
takes the value 1 if the system functions and 0 if the system does not function for state vector $\vec{x}$ \citep{BP75}.
Most real-life systems are coherent,
which means that $\phi(\vec{x})$ is non-decreasing in any of the components of $\vec{x}$,
so system functioning cannot be improved by worse performance of one or more of its components.
Furthermore, one can usually assume that $\phi(0, \ldots, 0) = 0$ and $\phi(1, \ldots, 1) = 1$.
The survival signature \citep{2012:survsign} is a summary of the structure function
for systems with $K$ groups of exchangeable components.
Denoted by $\Phi(l_1,\ldots,l_K)$, with $l_k=0,1,\ldots,N_k$ for $k=1,\ldots,K$,
it is defined as the probability for the event that the system functions
given that precisely $l_k$ of its $N_k$ components of type $k$ function, for each $k\in \{1,\ldots,K\}$.
Essentially, this creates a $K$-dimensional partition for the event $\Tsys > t$,
such that $\Rsys(t) = P(\Tsys > t)$ can be calculated using the law of total probability,
\begin{align}
P(\Tsys > t) &= \sum_{l_1=0}^{N_1} \cdots \sum_{l_K=0}^{N_K} P(\Tsys > t \mid C^1_t = l_1,\ldots, C^K_t = l_K)
P\Big( \bigcap_{k=1}^K \{ C^k_t = l_k\} \Big) \nonumber\\
&= \sum_{l_1=0}^{N_1} \cdots \sum_{l_K=0}^{N_K} \Phi(l_1,\ldots,l_K) P\Big( \bigcap_{k=1}^K \{ C^k_t = l_k\} \Big) \nonumber\\
&= \sum_{l_1=0}^{N_1} \cdots \sum_{l_K=0}^{N_K} \Phi(l_1,\ldots,l_K) \prod_{k=1}^K P(C^k_t = l_k)\,,
\label{eq:sysrel-survsign}
\end{align}
where $C^k_t$ is the number of type $k$ components functioning at time $t$,
and $P(C^k_t = l_k)$ is the (predictive) probability that exactly $l_k$ components of type $k$ function at time $t$.
The last equality holds as we assume that components of different types fail independently.
Note that for coherent systems, the survival signature $\Phi(l_1,\ldots,l_K)$ is non-decreasing in each $l_k$.
Continuing our example,
the survival signature for the system in Figure~\ref{fig:brakesys-layout} is given in Table~\ref{tab:brakesys-survsign},
omitting the entries for which $\Phi(l_M, l_H, l_C, l_P) = 0$ or $\Phi(l_M, l_H, l_C, l_P) = 1$,
since the full table would contain $\prod_{k=1}^K (N_k + 1) = 2 \times 2 \times 5 \times 5 = 100$ rows.
%
To illustrate how the table entries are obtained,
consider the case $l_M = 0, l_H = 1, l_C = 0, l_P = 1$,
i.e., $M$ has failed, $H$ functions, $C_1$ -- $C_4$ have failed, and one of $P_1$ -- $P_4$ functions.
The system functions only if the single functioning type $P$ component is either $P_3$ or $P_4$.
As the type $P$ components are exchangeable, each of $P_1$ -- $P_4$ has the same probability of being the functioning component,
and so the probability of $P_3$ or $P_4$ being the functioning component is $2 / 4$, thus $\Phi(0, 1, 0, 1) = 0.5$.
%
The omitted rows from Table~\ref{tab:brakesys-survsign} can be determined as follows:
\begin{itemize}
\item Take a row, decrease $l_k$ for one $k \in \{M, H, C, P\}$ by 1.
If the resulting row is not in Table~\ref{tab:brakesys-survsign}, then the corresponding value of $\Phi$ is $0$.
\item Take a row, increase $l_k$ for one $k \in \{M, H, C, P\}$ by 1.
If the resulting row is not in Table~\ref{tab:brakesys-survsign}, then the corresponding value of $\Phi$ is $1$.
\end{itemize}
The \textsf{R} package \texttt{ReliabilityTheory} \citep{2016:aslett-RT}
provides a convenient function to calculate the survival signature table based on any given graph.
\begin{table}
\centering
\begin{tabular}{cccclcccccl}
\toprule
$l_M$ & $l_H$ & $l_C$ & $l_P$ & $\Phi$ & \quad & $l_M$ & $l_H$ & $l_C$ & $l_P$ & $\Phi$\\
\midrule
1 & 0 & 1 & 1 & 0.25 & & 1 & 0 & 2 & 1 & 0.50 \\
1 & 0 & 1 & 2 & 0.50 & & 1 & 0 & 2 & 2 & 0.83 \\
1 & 0 & 1 & 3 & 0.75 & & 1 & 0 & 3 & 1 & 0.75 \\
0 & 1 & 0 & 1 & 0.50 & & 1 & 1 & 0 & 1 & 0.50 \\
0 & 1 & 0 & 2 & 0.83 & & 1 & 1 & 0 & 2 & 0.83 \\
0 & 1 & 1 & 1 & 0.50 & & 1 & 1 & 1 & 1 & 0.62 \\
0 & 1 & 1 & 2 & 0.83 & & 1 & 1 & 1 & 2 & 0.92 \\
0 & 1 & 2 & 1 & 0.50 & & 1 & 1 & 2 & 1 & 0.75 \\
0 & 1 & 2 & 2 & 0.83 & & 1 & 1 & 2 & 2 & 0.97 \\
0 & 1 & 3 & 1 & 0.50 & & 1 & 1 & 3 & 1 & 0.88 \\
0 & 1 & 3 & 2 & 0.83 \\
0 & 1 & 4 & 1 & 0.50 \\
0 & 1 & 4 & 2 & 0.83 \\
\bottomrule
\end{tabular}
\caption{Survival signature $\Phi(l_M, l_H, l_C, l_P)$
for the simplified automotive brake system depicted in Figure~\ref{fig:brakesys-layout},
omitting the rows for which $\Phi(l_M, l_H, l_C, l_P) = 0$ or $\Phi(l_M, l_H, l_C, l_P) = 1$.}
\label{tab:brakesys-survsign}
\end{table}
\section{Adaptive system residual life distribution based on Weibull component models}
\label{sec:adaptive-sysrel-weibull}
In this section, we describe how the system reliability function $\Rsysnow(t)$ at current time $\tnow$
can be calculated for a specific component model.
%Section~\ref{sec:policy} will then show how an adaptive maintenance policy
%can be derived for a monitored system based on such a current system residual life distribution.
We consider the well-known Weibull model for the component lifetimes,
which is used in a wide variety of reliability studies.
To keep things simple, we assume that the shape parameter of the Weibull distribution is known,
and that only the scale parameter needs to be estimated.
The model could be extended to learn also the shape parameter in a later step,
using, e.g., the discretized approach by \cite{1969:soland}.
By using the Bayesian approach described in Section~\ref{sec:weibull},
our component model allows to include both expert assessments and test data (if available),
and furthermore can account for component lifetime information from previous operational cycles
and the current operational cycle up to $\tnow$.
%***component model: weibull with fixed shape,
%inverse gamma prior on scale parameter,
%fix priors via expected lifetime and prior strength,
%test data inclusion
%with noninformatiove right-censoring
%
In Section~\ref{sec:postpred} we derive the posterior predictive distribution
for the Weibull component model as needed for the current system reliability calculation.
Finally, in Section~\ref{sec:sysreltnow}, we adapt the method from Section~\ref{sec:sysrel} to the dynamic setting,
resulting in a formula for $\Rsysnow(t)$.
%***output is $\Rsysnow(t)$, the current (at time $\tnow$) system reliability function
%(residual life distribution, RLD)
%taking into account the current system state,
%including the current ages of system components,
%and the lifetime histories of all component types,
%including test data (if available) and expert assessments.
The model description below follows closely \cite[\S 2, \S 4.1 -- \S 4.3]{2016:walter-coolen},
who presented the same residual life distribution model.
However, \cite{2016:walter-coolen} do not consider maintenance policies,
but focus instead on a generalization of the RLD model by using imprecise probability models for the component lifetimes.
%These sets of priors can be seen as parametric P-boxes,
%a certain kind of imprecise probability model \citep[see, e.g.,][]{itip}.
%Such models allow for vague and partial prior specifications,
%and provide sensitivity to prior-data conflict \cite[\S 2.2.3.3]{diss}.
\subsection{Bayesian update of the Weibull component models}
\label{sec:weibull}
Here we describe the Weibull model for the component lifetimes,
together with the Bayesian update procedure which allows to include
expert knowledge, component tests, and information from the monitored components in the system.
For each type $k$ component, we assume that the lifetime $T_{k,i}$ ($i=1,\ldots,N_k$, $k = 1, \ldots, K$)
is Weibull distributed with scale parameter $\lambda_k$ and (fixed) shape parameter $\beta_k > 0$,
in short $T_{k,i} \mid \lambda_k \sim \wei(\beta_k,\lambda_k)$,
with pdf (probability density function) and cdf (cumulative distribution function)
\begin{align}
\label{eq:weibulldens}
f(t_{k,i} \mid \lambda_k) &= \frac{\beta_k}{\lambda_k} (t_{k,i})^{\beta_k-1} e^{-\frac{(t_{k,i})^{\beta_k}}{\lambda_k}}\,, \\
\label{eq:weibullcdf}
F(t_{k,i} \mid \lambda_k) &= 1 - e^{-\frac{(t_{k,i})^{\beta_k}}{\lambda_k}} = P(T_{k,i} \leq t_{k,i} \mid \lambda_k)\,,
\end{align}
where $\lambda_k > 0$ and $t > 0$.
The shape parameter $\beta_k$ determines whether the hazard rate is increasing ($\beta_k > 1$)
or decreasing ($\beta_k < 1$) over time.
For $\beta_k=1$, one obtains the Exponential distribution with constant hazard rate as a special case.
The scale parameter $\lambda_k$ can be interpreted through the relation
\begin{align}
\E[T_{k,i} \mid \lambda_k] &= \lambda_k^{1/\beta_k}\, \Gamma(1 + 1/\beta_k)\,.
\label{eq:lambdainterpret}
\end{align}
We will use this equation to convert expected lifetimes to $\lambda_k$ and vice versa.
With a Bayesian approach, one can express expert knowledge about the reliability of the components
by assigning a so-called prior distribution,
a distribution over the unknown parameter $\lambda_k$.
This prior distribution $f(\lambda_k)$ is then updated
to the so-called posterior distribution $f(\lambda_k \mid \vec{t})$,
the distribution over $\lambda_k$ given the data $\vec{t}$,
via Bayes' rule
\begin{align*}
f(\lambda_k \mid \vec{t}) &\propto f(\vec{t}\mid\lambda_k) f(\lambda_k)\,.
\end{align*}
The posterior $f(\lambda_k \mid \vec{t})$ subsumes the information
from both expert knowledge and data,
and forms the basis for all inferences, like, e.g., predictions.
For the prior over $\lambda_k$,
a convenient choice is to use the inverse Gamma distribution,
which is commonly parametrized in terms of the parameters $a_k > 0$ and $b_k > 0$,
\begin{align}
f(\lambda_k\mid a_k,b_k) &= \frac{(b_k)^{a_k}}{\Gamma(a_k)} \lambda_k^{-a_k -1} e^{-\frac{b_k}{\lambda_k}}\,,
\label{eq:ig-def}
\end{align}
in short, $\lambda_k \mid a_k, b_k \sim \ig(a_k,b_k)$.
%Here, we have added the prior parameters $a_k$ and $b_k$ in notation
%to indicate that the prior over $\lambda$ depends on their values.
The inverse Gamma distribution is convenient because it is a conjugate prior,
i.e., the posterior obtained by Bayes' rule is again an inverse Gamma distribution and thus easily tractable
because only the prior parameters need to be updated to obtain the posterior parameters,
so no numerical integation or simulation techniques are necessary.
Furthermore, this conjugacy holds also when right-censored observations are used for updating,
as indicated below.
Instead of the usual parametrization in terms of $a_k$ and $b_k$,
we use the parameters $\nk > 1$ and $\yk > 0$
%(the upper index ${}\uz$ is used to indicate that these are prior parameters)
because they are more easy to interpret.
They are defined as
\begin{align}
\nk &= a_k - 1 & &\text{ and}
&
\yk &= b_k / \nk,
\label{eq:abtony}
\end{align}
where $\yk$ can be interpreted as the prior guess for the scale parameter $\lambda_k$,
as $\E[\lambda_k\mid\nk,\yk] = \yk$.
Using \eqref{eq:lambdainterpret},
we can thus translate an expert's statement of the expected component lifetime into a corresponding value for $\yk$.
$\nk$ can be seen as a prior strength or pseudocount,
this will become clear in the discussion of the update step below.
The parametrization in terms of $\nk$ and $\yk$ also clarifies the nature of the combination
of prior information and data through Bayes' rule.
In the conjugate setting,
applying Bayes' rule simply means that the prior parameters $\nk$ and $\yk$
are updated to posterior parameters, which we denote by $\nkp$ and $\ykp$, respectively.
Assume we observe $N_k = e_k + c_k$ component lifetimes,
where $e_k$ is the number of actual failure events,
and $c_k$ is the number of right-censored observations.
We denote the failure times by $t_{k,1}, \ldots, t_{k,e_k}$,
and the censoring times by $t^+_{k,1}, \ldots, t^+_{k,c_k}$,
and collect them in an observation vector $\vec{t}_k = (t_{k,1}, \ldots, t_{k,e_k}, t^+_{k,1}, \ldots, t^+_{k,c_k})$.
Then, the updated, posterior parameters are
\begin{align}
\nkp &= \nk + e_k\,,
&
%\ykp &= \frac{\nk \yk + \tautk}{\nk + e_k}\,,
\ykp &= \frac{\nk}{\nk + e_k}\, \yk + \frac{e_k}{\nk + e_k}\, \frac{\tautk}{e_k}\,,
\label{eq:ig-update}
\end{align}
where $\tautk = \sum_{i=1}^{e_k} (t_{k,i})^\beta + \sum_{i=1}^{c_k} (t^+_{k,i})^\beta$.
%The upper index ${}\un$ indicates that these are posterior parameters resulting from an update with $n_k$ observations,
%where we leave out the index $k$ for $n_k$ in the upper index to increase legibility.
From the simple update rule \eqref{eq:ig-update}, we see that
$\ykp$ is a weighted average of the prior parameter $\yk$ and the maximum likelihood estimator (ML) $\tautk/e_k$,
with weights proportional to $\nk$ and $e_k$, respectively.
$\nk$ can thus be interpreted as a prior strength or pseudocount,
indicating how much our prior guess should weigh against the $e_k$ observed failure events.
Furthermore, $\V[\lambda\mid\nk,\yk] = (\yk)^2 / (1 - 1/\nk)$;
for fixed $\yk$, a higher $\nk$ indicates
that more probability mass is concentrated around $\yk$.
Using \eqref{eq:abtony} and \eqref{eq:ig-update}, the posterior distribution over $\lambda_k$ is given by
\begin{align}
\lambda_k \mid \nk, \yk, \vec{t}_k \sim \ig(\nk + e_k + 1, \nk \yk + \tautk)\,.
\label{eq:ig-update-alpha}
\end{align}
%where we have added the prior parameters $\nkz$ and $\ykz$ in notation
%to emphasize that the posterior is a synthesis of prior information and data.
As this posterior can be defined in terms of
the updated, posterior parameters $\nkp$ and $\ykp$,
we may also write
\begin{align*}
f(\lambda_k \mid \nk, \yk, \vec{t}_k) &= f(\lambda_k \mid \nkp, \ykp)\,.
\end{align*}
The iterative nature of Bayesian inference means that we can take the updated,
posterior parameters as new prior parameters and update them again using new data.
We will use this property to use the extra information about components
that accumulates during operation of the system:
At any time $\tnow > 0$,
all non-failed components contribute a right censored observation $\tpnow$;
any failed components instead contribute a fully observed, non-censored lifetime,
and both types of observations can be used in the update step \eqref{eq:ig-update}.
%Before we write this out formally in Section~\ref{sec:postpred},
%we will first present how system reliability functions can be derived based on component models.
%To keep notation simple,
%we will below denote the parameters of the inverse Gamma distribution by $\nkz$ and $\ykz$,
%regardless of them expressing expert information alone,
%or stemming from the combination of expert information and test data.
\subsection{Component posterior predictive distributions determined at $\tnow$}
\label{sec:postpred}
To calculate the current system reliability function $\Rsysnow(t)$,
we need, for each $k=1,\ldots, K$, the probabilities $P(C^k_t = l_k)$
for the number of type $k$ components that function at times $t > \tnow$,
taking into account all information available at $\tnow$.
In the Bayesian framework, these probabilities are given
by a so-called posterior predictive distribution that can be derived from the posterior over $\lambda$.
Denote by $\nkz$ and $\ykz$ the parameters reflecting the knowledge base at system start-up time $t=0$.
These could have been obtained by updating prior parameters $\nk$ and $\yk$ (reflecting expert knowledge)
to $\nkp$ and $\ykp$ using test data,
or could be taken directly equal to $\nk$ and $\yk$ if no test data is available.
In both cases, the distribution $f(\lambda_k \mid \nkz, \ykz)$
thus accounts for all knowledge on component type $k$ that is available at system start-up.
Following our comments at the end of Section~\ref{sec:weibull},
the component models can be further updated
using information gained from the current operational cycle as of $\tnow$: %run of the system until $\tnow$:
failure times of failed components,
and the right-censoring time $\tpnow$ for each non-failed component,
can be used to update $\nkz$ and $\ykz$ according to \eqref{eq:ig-update}.
We denote the resulting parameter values by $\nknow$ and $\yknow$.
%(It is of course possible to update $\nkz$ and $\ykz$ directly to $\nknow$ and $\yknow$ if no test data is available.)
%Furthermore, the fact that the components in the system that still function have reached the age $\tnow$
%must be used when calculating the posterior predictive distribution.
In analogue to the notation used in Section~\ref{sec:weibull},
let $N_k = \eknow + \cknow$ be the number of type $k$ components in the monitored system,
where $\eknow$ denotes the number of type $k$ components that have failed by $\tnow$ during the current operational cycle,
and $\cknow$ denotes the number of type $k$ components that have not failed by $\tnow$ during the current operational cycle.
We can thus collect these observations, as of $\tnow$, in a vector
$\vectknow = (t_{k,1}, \ldots, t_{k,\eknow}, \tpnow, \ldots, \tpnow)$,
containing $\cknow$ right-censored observations $\tpnow$.
%
The resulting posterior predictive distribution for any $t > \tnow$ is obtained as
\begin{align}
\lefteqn{%
P(C^k_t = l_k\mid\nkz,\ykz, \vectknow) }\hspace*{5.75ex} \nonumber\\ %
&= { \cknow \choose l_k} \int \big[P(T^k > t \mid T^k > \tnow, \lambda_k)\big]^{l_k} \times \nonumber\\ & \hspace*{3.5ex}
\big[P(T^k \leq t \mid T^k > \tnow, \lambda_k)\big]^{\cknow - l_k}
f(\lambda_k\mid\nkz,\ykz,\vectknow) \dd \lambda_k\,,
\label{eq:postpredtnow}
\end{align}
where $T^k$ is the Weibull distributed lifetime of a component of type $k$.
Note that through the condition $T^k > \tnow$, we also take into account
that the components in the system have the age $\tnow$.
Now, by the Weibull assumption \eqref{eq:weibullcdf}, one has
\begin{align}
P(T^k \leq t \mid T^k > \tnow, \lambda_k)
&= \frac{P(\tnow < T^k \leq t \mid\lambda_k)}{P(T^k > \tnow \mid \lambda_k)} \nonumber\\
&= \frac{F(t\mid\lambda_k) - F(\tnow\mid\lambda_k)}{1-F(\tnow\mid\lambda_k)}
% = \frac{e^{-\frac{(\tnow)^{\beta_k}}{\lambda_k}} - e^{-\frac{t^{\beta_k}}{\lambda_k}}}{e^{-\frac{(\tnow)^{\beta_k}}{\lambda_k}}}
= 1 - e^{-\frac{t^{\beta_k} - (\tnow)^{\beta_k}}{\lambda_k}}\,.
\label{eq:weibullcondprob}
\end{align}
Consider the posterior \eqref{eq:ig-update-alpha} obtained using observations $\vectknow$,
written in terms of the updated parameters $\nknow$ and $\yknow$.
Substituting this posterior and \eqref{eq:weibullcondprob} into \eqref{eq:postpredtnow}, we get
\begin{align}
\lefteqn{P(C^k_t = l_k\mid\nkz,\ykz, \vectknow)}\hspace*{5.75ex} \nonumber\\
&= { \cknow \choose l_k} \int \Big[ e^{-\frac{t^{\beta_k} - (\tnow)^{\beta_k}}{\lambda_k}}\Big]^{l_k}
\Big[1 - e^{-\frac{t^{\beta_k} - (\tnow)^{\beta_k}}{\lambda_k}}\Big]^{\cknow - l_k}
\times \nonumber\\ & \hspace*{14.5ex}
\frac{\big(\nknow\yknow\big)^{\nknow + 1}}{\Gamma(\nknow + 1)}
\lambda_k^{-(\nknow + 1) - 1} e^{-\frac{\nknow\yknow}{\lambda_k}} \dd \lambda_k \nonumber\\
&= { \cknow \choose l_k} \sum_{j=0}^{\cknow - l_k} (-1)^j { \cknow - l_k \choose j}
\frac{\big(\nknow\yknow\big)^{\nknow + 1}}{\Gamma(\nknow + 1)}
\times \nonumber\\ & \hspace*{1ex}
\int \lambda_k^{-(\nknow + 1) - 1}
\exp\Big\{-\frac{(l_k + j) (t^{\beta_k} - (\tnow)^{\beta_k}) + \nknow\yknow}{\lambda_k}\Big\} \dd \lambda_k\,.
\end{align}
The terms remaining under the integral form the core of an inverse Gamma distribution \eqref{eq:ig-def}
with parameters $\nknow + 1$ and $\nknow\yknow + (l_k + j) (t^{\beta_k} - (\tnow)^{\beta_k}))$,
allowing to solve the integral using the corresponding normalization constant.
We thus have, for $l_k \in \{0,1,\ldots,\cknow\}$,
\begin{align}
\label{eq:postpred-priorparams}
\lefteqn{P(C^k_t = l_k\mid\nkz,\ykz, \vectknow)}\hspace*{5ex} \nonumber\\
&= { \cknow \choose l_k} \sum_{j=0}^{\cknow - l_k} (-1)^j { \cknow - l_k \choose j} \times \nonumber\\ & \hspace*{10ex}
\left(\frac{\nknow\yknow}{\nknow\yknow + (l_k + j) \big(t^{\beta_k} - (\tnow)^{\beta_k}\big)}\right)^{\nknow + 1} \,, \\
& \quad\text{where } \nknow\yknow = \nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + \cknow (\tnow)^{\beta_k} \nonumber\\
& \quad\text{and } \nknow = \nkz + \eknow \,. \nonumber
% &= { \cknow \choose l_k} \sum_{j=0}^{\cknow - l_k} (-1)^j { \cknow - l_k \choose j} \times \nonumber\\ & \hspace*{1ex}
% \left(\frac{\nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + \cknow (\tnow)^{\beta_k} }%
% {\nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + \cknow (\tnow)^{\beta_k} +%
% (l_k + j) \big(t^{\beta_k} - (\tnow)^{\beta_k}\big) }\right)^{\nkz + \eknow + 1}.
% &= \sum_{j=0}^{\cknow - l_k} (-1)^j \frac{\cknow !}{l_k! j! (\cknow - l_k - j)!}
% \left(\frac{\nknow\yknow}{\nknow\yknow + (l_k + j) \big(t^{\beta_k} - (\tnow)^{\beta_k}\big)}\right)^{\nknow + 1} \nonumber\\
% &= \sum_{j=0}^{\cknow - l_k} (-1)^j \frac{\cknow !}{l_k! j! (\cknow - l_k - j)!} \times \nonumber\\ & \hspace*{10ex}
% \left(\frac{\nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + \cknow (\tnow)^{\beta_k} }%
% {\nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + (\cknow - l_k - j) (\tnow)^{\beta_k} + (l_k + j) t^{\beta_k} }\right)^{%
% \nkz + \eknow + 1}.
\end{align}
%where $\nknow\yknow = \nkz\ykz + \sum_{i=1}^{\eknow} (t_{k,i})^{\beta_k} + \cknow (\tnow)^{\beta_k}$
%and $\nknow = \nkz + \eknow + 1$.
%These posterior predictive probabilities can also be expressed as a cumulative probability mass function (cmf)
%\begin{align}
%F(l_k \mid \nkz,\ykz,\vectknow) = P(C^k_t \leq l_k \mid \nkz,\ykz,\vectknow)
% = \sum_{j=0}^{l_k} P(C^k_t = j \mid \nkz,\ykz,\vectknow)\,.
%\end{align}
\subsection{Conditional system reliability function determined at $\tnow$}
\label{sec:sysreltnow}
Now that we can calulate the component posterior predictive distributions at $\tnow$,
we can use the method from Section~\ref{sec:sysrel}
to determine the dynamic system residual life distribution (RLD) $\Rsysnow(t)$,
giving us the probability that the system functions at times $t > \tnow$,
taking into account all information available at $\tnow$:
\begin{align}
\Rsysnow(t) &= \sum_{l_1=0}^{c_1^{(\tnow)}} \cdots \sum_{l_K=0}^{c_K^{(\tnow)}} \Phinow(l_1,\ldots,l_K)
\prod_{k=1}^K P(C^k_t = l_k\mid\nkz,\ykz, \vectknow)\,.
\label{eq:sysrel-tnow}
\end{align}
Since this is the distribution of system reliability conditional on the system surviving until $\tnow$,
we have that $\Rsysnow(\tnow) = 1$ for any $\tnow$ before system failure.
Note that if one or several components have failed by $\tnow$,
the system reliability block diagram changes, and with it the survival signature $\Phi(l_1,\ldots,l_K)$.
We denote the current survival signature by $\Phinow(l_1,\ldots,l_K)$.
For each prediction time $t$,
\eqref{eq:sysrel-tnow} is a sum over $\prod_{k=1}^K (\cknow + 1)$ terms.
However, some of these terms correspond to $\Phinow(l_1,\ldots,l_K) = 0$,
which can thus be disregarded.
For each of the remaining terms,
we must calculate the product $\prod_{k=1}^K P(C^k_t = l_k\mid\nkz,\ykz, \vectknow)$.
For all products, the constituting factors can be taken from the same table
enumerating $P(C^k_t = l_k\mid\nkz,\ykz, \vectknow)$ for all $l_k \in \{0, 1, \cknow\}$, $k=1\ldots,K$,
so \eqref{eq:postpred-priorparams} needs to be evaluated
only $\sum_{k=1}^K (\cknow + 1)$ times.
We will evaluate \eqref{eq:sysrel-tnow} on a dense grid of prediction times $t > \tnow$,
thus discretely approximating the RLD.
As the evaluation of \eqref{eq:sysrel-tnow} for each $t$ does not involve any complex numeric calculations or Monte Carlo sampling,
the grid of prediction values can be very fine.
%
%Next, we will describe an adaptive maintenance policy based on %\eqref{eq:sysrel-tnow}
%a current residual life distribution,
%first in general, then for our implementation,
%where a fine discrete approximation of the RLD is obtained.
\section{Dynamic and adaptive maintenance policy based on the current system residual life distribution}
\label{sec:policy}
%***start with $\tausnow$???
Now we can derive the adaptive and dynamic maintenance policy
that resembles a CBM policy.
Our idea is described here first in general terms,
and then illustrated along two examplary timelines in Section~\ref{sec:policy-example}.
Afterwards, we give a detailed description of the policy in Section~\ref{sec:operationalprocedure},
and expand on the involved computations in Sections~\ref{sec:costrate} and \ref{sec:optim}.
We denote by $\tnow$ the moment in time that the system is observed,
measured from the moment the present operational cycle has started,
which coincides with starting to use a new system.
Instead of determining a threshold for a degradation signal like in usual CBM approaches,
we determine, for $\tnow$, the adaptive and dynamic time span $\tausnow$
which gives the time from $\tnow$ until the next optimal moment to re-evaluate the system.
%Close to system startup, $\tausnow$ will be large;
%but as components in the system age and some indeed fail over time,
%$\tausnow$ will typically decrease.
A preventive maintenance action is initiated
when $\tnow + \tausnow$ would be earlier than the next planned evaluation time point.
We describe this dynamic and adaptive maintenance policy in more detail in Section~\ref{sec:operationalprocedure}.
%a flow chart for the policy is given in Figure~\ref{fig:procedure}.
%
The optimal time to system re-evaluation $\tausnow$ is determined based on $\Rsysnow(t)$
by minimizing $\gnow(\tau)$, the expected cost rate for the current operational cycle.
%An operational cycle begins with system start-up,
%and ends when either preventive maintenance is carried out,
%or a failure of the system occurs, with subsequent corrective maintenance.
This criterion, as detailed in Section~\ref{sec:costrate},
%only assumes that $\Rsysnow(t)$ is given,
only assumes that a RLD is given,
and thus is not tied to our choice for the component models.
One could also consider alternative optimality criteria to determine $\tausnow$;
when safety is paramount one could, e.g., determine $\tausnow$ such that
the probability of system failure is at most at some very low pre-determined level.
%
Section~\ref{sec:optim} then focuses on our choice for the component models and the resulting form for $\Rsysnow(t)$,
and shows how $\tausnow$ is numerically determined in this situation.