Model Standby Systems
Compare mean time to failure (MTTF) between different kinds of standby systems.
marker[c1_, c2_] := Graphics[{c1, Rectangle[], c2, Rectangle[{1, 0}]}];sfPlot[dist_, c1_, c2_] := Module[{mttf = Mean[dist]}, Legended[Show[Plot[Evaluate@SurvivalFunction[dist, t], {t, 0, 12}, Filling -> Axis, PlotRange -> {0, 1}, Ticks -> None, ImageSize -> 160], ListPlot[{Labeled[{mttf, SurvivalFunction[dist, mttf]}, Row[{"MTTF: ", Round[mttf, 0.01]}]]}, Filling -> Axis]], {Placed[SwatchLegend[{Blue}, {""}, LegendMarkers -> marker[c1, c2], LegendMarkerSize -> {20, 10}], {0.9, 0.9}]}]]xlabels = {Rotate[SwatchLegend[{Blue}, {"Cold"}], π / 2], Rotate[SwatchLegend[{Red}, {"Warm"}], π / 2], Rotate[SwatchLegend[{Orange}, {"Mixed"}], π / 2]};
ylabels = {"", SwatchLegend[{Green}, {"Perfect Switch"}], SwatchLegend[{Orange}, {"Switch with Probability"}], SwatchLegend[{Lighter@Purple}, {"Switch with Lifetime"}]};xcolor = {Blue, Red, Orange};
ycolor = {Green, Orange, Lighter@Purple};𝒟 = ExponentialDistribution[1 / 2];
Subscript[𝒟, warm] = ExponentialDistribution[1 / 10];
Subscript[𝒟, switch] = ExponentialDistribution[1 / 20];
Subscript[𝒟, cp] = StandbyDistribution[𝒟, {𝒟, 𝒟}];
Subscript[𝒟, ci] = StandbyDistribution[𝒟, {𝒟, 𝒟}, 0.9];
Subscript[𝒟, cil] = StandbyDistribution[𝒟, {𝒟, 𝒟}, Subscript[𝒟, switch]];
Subscript[𝒟, wp] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, {Subscript[𝒟, warm], 𝒟}}];
Subscript[𝒟, wi] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, {Subscript[𝒟, warm], 𝒟}}, 0.9];
Subscript[𝒟, wil] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, {Subscript[𝒟, warm], 𝒟}}, Subscript[𝒟, switch]];
Subscript[𝒟, wcp] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, 𝒟}];
Subscript[𝒟, wci] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, 𝒟}, 0.9];
Subscript[𝒟, wcil] = StandbyDistribution[𝒟, {{Subscript[𝒟, warm], 𝒟}, 𝒟}, Subscript[𝒟, switch]];distributions = {{Subscript[𝒟, cp], Subscript[𝒟, ci], Subscript[𝒟, cil]}, {Subscript[𝒟, wp], Subscript[𝒟, wi], Subscript[𝒟, wil]}, {Subscript[𝒟, wcp], Subscript[𝒟, wci], Subscript[𝒟, wcil]}};table = Table[sfPlot[distributions[[i, j]], xcolor[[i]], ycolor[[j]]], {i, 3}, {j, 3}];Grid[Prepend[Prepend[table, xlabels], ylabels], Frame -> All, FrameStyle -> Gray, Spacings -> {1.1, 1.1}]