
Перевод поста Jan Brugård и Johan Rhodin "Reliability Analysis in SystemModeler 4.1".
Скачать файл с моделями, рассмотренными в посте, можно здесь здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.
Сегодня мы с радостью анонсируем Wolfram SystemModeler 4.1. В дальнейшем будет представлена серия публикаций, в которых мы осветим новый функционал в сфере надёжности систем.
Будет представлено несколько примеров, которые Вы сами сможете опробовать, скачав пробную версию SystemModeler, модель из этого поста и пробную версию Wolfram Hydraulic library.
Большинство людей сталкивались с ситуацией, когда какая-то вещь, которую они купили и пользовались в дальнейшем, вдруг по какой-то причине ломается. За последние несколько лет оба автора статьи сталкивались с подобной проблемой — масштабные неисправности с двигателем в машине Йохана (его пришлось заменить) и проблемы с приёмником у Яна, который совсем стих (его пришлось отправить в сервисный центр и поменять сетевой чип).
В обоих случаях это вызвало проблемы как у потребителей (у нас), так и у производителей. Это всего лишь пара примеров, и я уверен, что у Вас тоже наверняка найдётся подобный пример.

Бытовая электроника, спутниковые системы, системы для авиации — не важно, всё имеет определённые причины для оценки надёжности.
Из-за поломок могут потребоваться затраты на гарантийное обслуживание — как в случае с сетевым чипом; огромные сложности, связанные с ремонтом — как в случае с двигателем, а для спутника потребуется ещё больше затрат. А что касается самолётов — тут уже прямая угроза человеческой жизни.
Напрашивается вопрос — как модели с количественно неопределенными показателями могут быть использованы для повышения надежности и функциональности системы.
Внедрение системы для анализа надёжности в SystemModeler позволяет вычислять надёжность всей системы через надёжность её компонентов. Давайте посмотрим.
Давайте начнём с уровня компонентов и просчитаем вероятность отказа гидравлической трубы:

Представлены диаграммы труб при нормальном функционировании, ограниченном функционировании, при протечке и когда труба заблокирована.
Это довольно простой компонент, который может находиться в трёх возможных состояниях неисправности — протекать, ограниченно пропускать или быть заблокированным.
Вот система, включающая три трубы, в которой мы можем рассмотреть различные виды отказа:

Модель с тремя трубами, одним цилиндром и одним насосом. Накачка жидкости приводит к тому, что цилиндр выталкивает стержень, и уровень изменяется.

Неисправность обнаружена! Уровень совсем не движется, когда труба заблокирована.
Можно определить вид неисправности, посмотрев на результаты моделирования, и составить список вероятных причин поломки. Вообще, этим занимаются специалисты в диагностике и обнаружении неполадок, и мы не будем особо касаться этой темы. Вместо этого в этом посте мы сосредоточимся на общей надежности систем, наподобие вышеупомянутой.
Работу трубы можно проиллюстрировать классическим деревом неисправностей, где неисправность в одном листе порождает неисправность всей системы:

Дерево неисправностей для трубы.
С нововведённым надёжностным подходом в SystemModeler мы можем задать распределения сроков службы отдельных компонентов:

Надёжностный подход в SystemModeler, где распределения сроков службы соответствуют отдельным компонентам.
После этого построим дерево неисправностей для трубы, указав, какой именно из типов неисправностей (течь, ограниченная пропускаемость, полная блокировка) приведёт к неисправности системы в целом:

Надёжностный подход к рассмотрению компонентов с несколькими распределениями сроков службы. Тут задаётся дерево неисправностей вводом логического выражения для данной конфигурации.
Теперь дерево неисправностей доступно для анализа в Wolfram Language (Mathematica):

Функция WSMModelReliability может возвращать FailureDistribution (когда она использует дерево неисправностей), ReliabilityDistribution (когда она использует блок-схему надёжности) или распределение срока службы компонента. Традиционный способ проиллюстрировать надёжность компонентов или систем — использовать SurvivalFunction, которая выдаёт вероятность того, что система будет исправна в течение времени t. Для одной трубы это будет выглядеть так:

Это распределение подобно любому вероятностному распределению в Wolfram Language. Из него можно получить более 30-ти свойств, к примеру условную вероятность того, что труба прослужит более 20,000 часов, учитывая, что она уже проработала 10,000 часов:

Символ


Системы, конечно, состоят из большого количества труб. Вот схема гидравлической системы закрылков самолёта Cessna, которая содержит несколько труб (см. статью на Хабрахабре "Моделирование сценариев неисправностей закрылков самолёта с помощью Wolfram SystemModeler"):

Гидравлическая система закрылков самолёта Cessna с одним баком, двумя насосами, множеством клапанов и пятнадцатью трубами.
SystemModeler автоматически считывает вшитые показатели надёжности труб гидравлической системы, в результате чего можно просчитать надёжность всей системы. Первый вопрос, который следует рассмотреть — насколько ниже будет надёжность всей гидравлической системы по сравнению с отдельной трубой:

Сравнение надёжности одной трубы и всей гидравлической системы.
Чего и следовало ожидать — система из множества труб гораздо менее надёжна, чем одна отдельно взятая труба. Это есть иллюстрация феномена «самого слабого звена»: неисправность в одной трубе вызовет сбой всей системы.
Если мы рассмотрим те же компоненты закрылков самолёта, то столкнёмся с чем-то похожим.
Объединим теперь гидравлическую систему с закрылками (всего 75 компонентов). В SystemModeler достаточно лишь указать, что нам нужна гидравлическая система и система закрылков (hydraulicPower и flaps).

Самолёт Cessna с точки зрения надёжности. Тут представлены распределения ожидаемых сроков службы для гидравлической системы и системы закрылков.


Функции надёжности для различных частей системы.
Надёжность всей системы ниже, чем надёжность каждого из компонентов. Этот закон применим для всех систем — чем больше компонентов в системе, тем выше вероятность, что откажет какой-то отдельный компонент.
Давайте теперь выясним, какой из компонентов выгоднее всего будет улучшить. Wolfram Language содержит девять различных функций меры важности, и самая простая из них — StructuralImportance. Выясним же, какие именно неисправности проще всего устранить в трубе:

Потенциал усовершенствования для различных неисправностей трубы.
Важность усовершенствования указывает на то, как сильно увеличится надёжность системы при замене компонента на его идеальный аналог. Важность усовершенствования — мера относительная, и чтобы она обладала каким-то смыслом, её необходимо брать в контексте всей системы и её компонентов. Из графика становится ясно, что путь устранения ограниченной пропускаемости трубы сильнее всего увеличит надёжность системы. Можно проделать то же самое для всей системы и сравнить систему закрылков с гидравлической системой:

Потенциал усовершенствования для гидравлической системы определённо выше, чем для закрылков.
Из этого графика можно почерпнуть несколько важных моментов. Во-первых, усовершенствование гидравлической системы по сравнению с усовершенствованием закрылков имеет более высокий уровень окупаемости в контексте срока службы всей системы. Во-вторых, окупаемость будет тем выше, чем больше соотношение (начиная с 1.66) между вкладами в усовершенствование гидравлической системы и закрылков. Это не особо видно на графике, однако это становится очевидным при сравнении чисел. К примеру, при сроке службы в 3,788 часов, когда гидравлической системе соответствует самое высокое значение, соотношение будет равным 2.08, а при сроке службы в 10,000 часов – 3.38.
Анализ надёжности показывает, в каком месте следует сосредоточить основные усилия по совершенствованию системы, повышая тем самым надёжность продукта, оценить, где может произойти сбой и привести полученные данные в соответствие с гарантийной политикой.
На сайте SystemModeler Вы можете более подробно ознакомиться с тем, что нового представлено в SystemModeler 4, изучая примеры, бесплатные курсы, исследуя полнофункциональную пробную версию.
P.S.
В предыдущем посте "Моделирование сценариев неисправностей закрылков самолёта с помощью Wolfram SystemModeler" изучалась неисправность в электронной системе, а в статье “Reliability Mathematics with Mathematica” подробно была освещена функциональность Mathematica в сфере анализа надёжности. Наконец, из бесплатного курса “Modeling Safety-Critical Systems” можно почерпнуть некоторые знания о моделировании неисправностей отдельных компонентов и как они влияют на поведение системы в целом.