# Reliability Analysis in *SystemModeler* 4.1

March 25, 2015

Jan Brugård, CEO, Wolfram MathCore

Johan Rhodin, Kernel Developer

Explore the contents of this article with a **free Wolfram SystemModeler trial**.Today we are proud to announce the release of Wolfram *SystemModeler* 4.1. We will present some of the news in blog posts, beginning with this one, in which we will highlight the new reliability functionality.

We will illustrate this with an example, and you can try it out by downloading a trial version of *SystemModeler* and this example model, and a trial of the Wolfram Hydraulic library.

Most people probably have experiences with things they bought and liked, but that then suddenly failed for some reason. During the last few years we have both experienced this problem, including a complete engine breakdown in Johan’s car (the engine had to be replaced), and Jan’s receiver, which suddenly went completely silent (the receiver had to be sent in for repair and have its network chip replaced).

In both cases it caused problems for the customers (us) as well as for the producer. These are just a couple of examples, and we’re sure you have your own.

*Consumer electronics, satellite systems, and flight systems all have different reasons for valuing reliability.*

In general, a failure might imply warranty costs, like replacing the network chip of the receiver; huge complications in repairing, as for the car engine, or even more for a satellite; or even risk of human life, as with airplanes.

This raises the question how combining system simulation models with uncertainty quantification can be used to improve system reliability and functionality.

With the addition of system reliability analysis to *SystemModeler*, the reliabilities of systems can be computed from the reliabilities of the components. Let’s have a look.

Let’s start at the component level with a hydraulic pipe, and compute the probability that the hydraulic pipe fails:

*Diagram for a pipe with normal operation, restricted operation, leaking operation, and blocked operation.*

This is a relatively small and simple component, with three different failure modes: it can leak, it can be blocked, or it can be restricted.

Here’s a system incorporating three pipes in which we can examine the different failure modes:

*A model with three pipes, one cylinder, and one pump. Pumping the fluid will lead to the cylinder pushing its rod out and a change of the measured position.*

*Fault detected! The measured position is not moving at all in the simulation with the blocked pipe.*

By looking at what the simulation results should be compared to what they are, we can detect different failures and generate a list of candidates for what the culprit is. This is studied in the area of fault diagnosis and failure detection, which we won’t pursue here. In the remainder of this post, we’ll focus instead on the overall reliabilities of systems like these.

The pipe can be illustrated as a traditional fault tree, where failure in any of the leaf nodes results in system failure:

*Fault tree for a pipe.*

In the new Reliability view in *SystemModeler*, we can specify the lifetime distributions of the individual components:

*The Reliability view in SystemModeler, where lifetime distributions are assigned to individual components.*

Next we construct the fault tree for the pipe by specifying that a leak, or a restriction, or a blockage will lead to system failure:

*Reliability view for a component with multiple lifetime distributions inside it. Here the fault tree is specified, by entering the Boolean expression for the configuration.*

Now the fault tree is available for analysis in the Wolfram Language:

The `WSMModelReliability` function can return a `FailureDistribution` (when using a fault tree), a `ReliabilityDistribution` (when using a reliability block diagram), or the lifetime distribution of a component. The traditional way to illustrate the reliability of components or systems is by using the `SurvivalFunction`, which describes the probability that the system works at time *t*. For one pipe, it looks like this:

This distribution behaves as any probability distribution in the Wolfram Language. More than 30 properties can be computed from it, for example, the conditional probability that the pipe will last for longer than 20,000 hours given that it worked at 10,000 hours:

(The sign is the `Conditioned` operator, and is the `Distributed` descriptor. The code above could be read out as: “The probability that a basic pipe still works after 20,000 hours if it worked for the first 10,000 hours”.)

Systems are, of course, made up of many pipes. Here is the schematic for the hydraulic power plant of a Cessna aircraft flap system, which incorporates several basic pipe components:

*The hydraulic power plant of a Cessna aircraft flap system, with one tank, two pumps, multiple valves, and fifteen pipes.*

*SystemModeler* automatically detects that the pipes in the power plant have reliability annotations and can compute the reliability of the entire system from them. The first question we’ll ask is how much worse will the reliability be for the hydraulic power system as compared to the individual pipe:

*Comparison of the reliability of one pipe and the hydraulic power system.*

We can see that a system with many pipes performs far worse than a single one, which is not completely unexpected. This is an illustration of the “weakest link” phenomenon: failure in one pipe will cause system failure.

If we look at the same components in the flap system of the aircraft, we see a similar story.

Next we put the hydraulic power plant and the flap system together (a total of 75 components). In *SystemModeler* this is as easy as specifying that we want “hydraulicPower and flaps”.

*Reliability view for the full Cessna aircraft. Here the reliability distribution is specified using the two components “hydraulicPower” and “flaps”.*

*The reliability functions for the different parts of the system.*

The reliability of the combined system is less than the reliabilities of the flap and hydraulic power subsystems, a property that generalizes to all systems and subsystems when using connections that depend on a single failure.

Finally, let us find out which components are most cost-effective to improve. The Wolfram Language includes nine different importance measure functions, starting from the very basic `StructuralImportance` and going to more advanced measures. Let’s find out which failure in the basic pipe to improve:

*The improvement potential for the different failures in a pipe.*

The improvement importance describes how much the system reliability would be increased by replacing a component with a perfect component. The improvement importance is a relative measure, so for a figure to make sense, it has to be put in context with the other components in the system. From the plot it’s clear that figuring out ways to avoid the pipe becoming restricted would improve the reliability for the system the most. We can do the same thing for the full system and compare the flap system to the hydraulic power system:

*The improvement potential for the hydraulic power system is strictly higher than the flap system’s improvement potential.*

From this plot we can learn a couple of things. First, it pays off more to improve the hydraulic power system compared to the flap system throughout the full lifetime of the system. Second, it actually pays off more and more as the ratio between the power plant and the flaps starts at 1.66 (hard to see in the plot, but easier when comparing the real numbers) and from there is strictly increasing. For example, at time 3,788h, when the hydraulic power plant has the highest value, the ratio between the two is 2.08, and at time 10,000h the ratio is 3.38.

Reliability analysis can show you where to concentrate your engineering effort to produce the most reliable products, estimate where failure will happen, and price warranties accordingly.

For more on what’s new in *SystemModeler* 4 as well as examples, free courses, and fully functional trial software, check out the *SystemModeler* website.

#### Further Reading

In a previous blog post, “Modeling Aircraft Flap System Failure Scenarios with *SystemModeler*,” the impact of an electrical failure was studied, and the blog post “Reliability Mathematics with *Mathematica*” gives an in-depth look on the reliability analysis functionality in *Mathematica*. Finally, in the free course “Modeling Safety-Critical Systems,” you can learn how component faults can be modeled and how their effect on system behavior can be simulated.

Download this post as a Computable Document Format (CDF) file, and its accompanying models.

## 6 Comments

Amazing job, guys!

Good job.

Good one

Quite interesting, Congratulations!!! How can I keep posted on all reliability discussions?

Dear developers of System modeler, greetings

Most commendable blog, practical view of procedures and potentials, a series of reliability analysis models coupled with cost analysis would be perhaps next appreciated contribution to all of us interested, not to mentioned professionals.

What about material selection and reliability of component…

Yours respectfully, Darko Fius

Thank you for your comment, to stay up to date be sure to keep an eye on the blog and join the SystemModeler group on Wolfram Community.