![](https://habrastorage.org/files/0d6/b0f/0ae/0d6b0f0ae80d43bf922abe7b9cd02367.png)
Перевод поста Jan Brugard и Johan Rhodin "Reliability Analysis in SystemModeler 4.1".
Скачать файл с моделями, рассмотренными в посте, можно здесь здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.
Сегодня мы с радостью анонсируем Wolfram SystemModeler 4.1. В дальнейшем будет представлена серия публикаций, в которых мы осветим новый функционал в сфере надёжности систем.
Будет представлено несколько примеров, которые Вы сами сможете опробовать, скачав пробную версию SystemModeler, модель из этого поста и пробную версию Wolfram Hydraulic library.
Большинство людей сталкивались с ситуацией, когда какая-то вещь, которую они купили и пользовались в дальнейшем, вдруг по какой-то причине ломается. За последние несколько лет оба автора статьи сталкивались с подобной проблемой — масштабные неисправности с двигателем в машине Йохана (его пришлось заменить) и проблемы с приёмником у Яна, который совсем стих (его пришлось отправить в сервисный центр и поменять сетевой чип).
В обоих случаях это вызвало проблемы как у потребителей (у нас), так и у производителей. Это всего лишь пара примеров, и я уверен, что у Вас тоже наверняка найдётся подобный пример.
![amplifier, satelitte, airplane amplifier, satelitte, airplane](https://habrastorage.org/getpro/habr/post_images/08d/dc9/704/08ddc970489df91787da1ae47095f5b0.png)
Бытовая электроника, спутниковые системы, системы для авиации — не важно, всё имеет определённые причины для оценки надёжности.
Из-за поломок могут потребоваться затраты на гарантийное обслуживание — как в случае с сетевым чипом; огромные сложности, связанные с ремонтом — как в случае с двигателем, а для спутника потребуется ещё больше затрат. А что касается самолётов — тут уже прямая угроза человеческой жизни.
Напрашивается вопрос — как модели с количественно неопределенными показателями могут быть использованы для повышения надежности и функциональности системы.
Внедрение системы для анализа надёжности в SystemModeler позволяет вычислять надёжность всей системы через надёжность её компонентов. Давайте посмотрим.
Давайте начнём с уровня компонентов и просчитаем вероятность отказа гидравлической трубы:
![diagram for pipe in normal, restricted, leaking, and blocked operations diagram for pipe in normal, restricted, leaking, and blocked operations](https://habrastorage.org/getpro/habr/post_images/13a/7c7/42d/13a7c742ded98cea741a900d337ac434.jpg)
Представлены диаграммы труб при нормальном функционировании, ограниченном функционировании, при протечке и когда труба заблокирована.
Это довольно простой компонент, который может находиться в трёх возможных состояниях неисправности — протекать, ограниченно пропускать или быть заблокированным.
Вот система, включающая три трубы, в которой мы можем рассмотреть различные виды отказа:
![system incorporating three pipes to examine different failure modes system incorporating three pipes to examine different failure modes](https://habrastorage.org/getpro/habr/post_images/d7c/740/03a/d7c74003a02ce6bce62a344816c60657.jpg)
Модель с тремя трубами, одним цилиндром и одним насосом. Накачка жидкости приводит к тому, что цилиндр выталкивает стержень, и уровень изменяется.
![normal simulation vs simulation with blocked pipe normal simulation vs simulation with blocked pipe](https://habrastorage.org/getpro/habr/post_images/868/ebc/843/868ebc8431039f071f8923d3224f41b2.jpg)
Неисправность обнаружена! Уровень совсем не движется, когда труба заблокирована.
Можно определить вид неисправности, посмотрев на результаты моделирования, и составить список вероятных причин поломки. Вообще, этим занимаются специалисты в диагностике и обнаружении неполадок, и мы не будем особо касаться этой темы. Вместо этого в этом посте мы сосредоточимся на общей надежности систем, наподобие вышеупомянутой.
Работу трубы можно проиллюстрировать классическим деревом неисправностей, где неисправность в одном листе порождает неисправность всей системы:
![fault tree for a pipe fault tree for a pipe](https://habrastorage.org/getpro/habr/post_images/b76/a38/ec9/b76a38ec9e9adc3118b720ff2c39a86d.jpg)
Дерево неисправностей для трубы.
С нововведённым надёжностным подходом в SystemModeler мы можем задать распределения сроков службы отдельных компонентов:
![reliability view in SystemModeler reliability view in SystemModeler](https://habrastorage.org/getpro/habr/post_images/ccd/e3f/ee9/ccde3fee9dbe815dac34dedd8b55d5bb.png)
Надёжностный подход в SystemModeler, где распределения сроков службы соответствуют отдельным компонентам.
После этого построим дерево неисправностей для трубы, указав, какой именно из типов неисправностей (течь, ограниченная пропускаемость, полная блокировка) приведёт к неисправности системы в целом:
![fault tree construction specifying a leak will lead to system failure fault tree construction specifying a leak will lead to system failure](https://habrastorage.org/getpro/habr/post_images/094/aae/ca2/094aaeca29fe878ec99ac366e127ef2f.png)
Надёжностный подход к рассмотрению компонентов с несколькими распределениями сроков службы. Тут задаётся дерево неисправностей вводом логического выражения для данной конфигурации.
Теперь дерево неисправностей доступно для анализа в Wolfram Language (Mathematica):
![fault tree analysis in Wolfram Language fault tree analysis in Wolfram Language](https://habrastorage.org/getpro/habr/post_images/162/362/547/1623625479ca76b56760d00675422784.jpg)
Функция WSMModelReliability может возвращать FailureDistribution (когда она использует дерево неисправностей), ReliabilityDistribution (когда она использует блок-схему надёжности) или распределение срока службы компонента. Традиционный способ проиллюстрировать надёжность компонентов или систем — использовать SurvivalFunction, которая выдаёт вероятность того, что система будет исправна в течение времени t. Для одной трубы это будет выглядеть так:
![using SurvivalFunction for probability that the system works at time t using SurvivalFunction for probability that the system works at time t](https://habrastorage.org/getpro/habr/post_images/aa5/722/8b0/aa57228b06373a27f935fd19e9b87a73.jpg)
Это распределение подобно любому вероятностному распределению в Wolfram Language. Из него можно получить более 30-ти свойств, к примеру условную вероятность того, что труба прослужит более 20,000 часов, учитывая, что она уже проработала 10,000 часов:
![conditional probability that pipe will las longer than 20,000 hours conditional probability that pipe will las longer than 20,000 hours](https://habrastorage.org/getpro/habr/post_images/862/b77/f7f/862b77f7f2837fcff6a3e3539c658e98.jpg)
Символ
![Conditioned Icon Conditioned Icon](https://habrastorage.org/getpro/habr/post_images/374/8f9/775/3748f97754c288d131db5731ad2d2b99.png)
![Distributed Icon Distributed Icon](https://habrastorage.org/getpro/habr/post_images/bfc/711/85d/bfc71185df77ce48bd1120bdf09df899.png)
Системы, конечно, состоят из большого количества труб. Вот схема гидравлической системы закрылков самолёта Cessna, которая содержит несколько труб (см. статью на Хабрахабре "Моделирование сценариев неисправностей закрылков самолёта с помощью Wolfram SystemModeler"):
![schematic for hydraulic power plant of Cessna aircraft flap system schematic for hydraulic power plant of Cessna aircraft flap system](https://habrastorage.org/getpro/habr/post_images/c79/b3b/fd7/c79b3bfd74d0b741d7dbd62f843c6b11.jpg)
Гидравлическая система закрылков самолёта Cessna с одним баком, двумя насосами, множеством клапанов и пятнадцатью трубами.
SystemModeler автоматически считывает вшитые показатели надёжности труб гидравлической системы, в результате чего можно просчитать надёжность всей системы. Первый вопрос, который следует рассмотреть — насколько ниже будет надёжность всей гидравлической системы по сравнению с отдельной трубой:
![reliability of one pipe vs hydraulic power system reliability of one pipe vs hydraulic power system](https://habrastorage.org/getpro/habr/post_images/621/ae4/e2b/621ae4e2b84e06d72790d685ea412162.jpg)
Сравнение надёжности одной трубы и всей гидравлической системы.
Чего и следовало ожидать — система из множества труб гораздо менее надёжна, чем одна отдельно взятая труба. Это есть иллюстрация феномена «самого слабого звена»: неисправность в одной трубе вызовет сбой всей системы.
Если мы рассмотрим те же компоненты закрылков самолёта, то столкнёмся с чем-то похожим.
Объединим теперь гидравлическую систему с закрылками (всего 75 компонентов). В SystemModeler достаточно лишь указать, что нам нужна гидравлическая система и система закрылков (hydraulicPower и flaps).
![reliability view for full Cessna aircraft reliability view for full Cessna aircraft](https://habrastorage.org/getpro/habr/post_images/32b/d6d/e81/32bd6de81604eba0d13bb1d859046507.png)
Самолёт Cessna с точки зрения надёжности. Тут представлены распределения ожидаемых сроков службы для гидравлической системы и системы закрылков.
![reliability functions diagrams of 2 systems reliability functions diagrams of 2 systems](https://habrastorage.org/getpro/habr/post_images/d66/62d/3a8/d6662d3a847fcb7eb362cf56905ae3ab.png)
![reliability functions for different parts of the system reliability functions for different parts of the system](https://habrastorage.org/getpro/habr/post_images/f90/cac/3fe/f90cac3fe45f598f0f049705cfbf3d87.jpg)
Функции надёжности для различных частей системы.
Надёжность всей системы ниже, чем надёжность каждого из компонентов. Этот закон применим для всех систем — чем больше компонентов в системе, тем выше вероятность, что откажет какой-то отдельный компонент.
Давайте теперь выясним, какой из компонентов выгоднее всего будет улучшить. Wolfram Language содержит девять различных функций меры важности, и самая простая из них — StructuralImportance. Выясним же, какие именно неисправности проще всего устранить в трубе:
![improvement potential for the different failues in a pipe improvement potential for the different failues in a pipe](https://habrastorage.org/getpro/habr/post_images/b26/5ba/20f/b265ba20fb56ded47876f1c77251934d.jpg)
Потенциал усовершенствования для различных неисправностей трубы.
Важность усовершенствования указывает на то, как сильно увеличится надёжность системы при замене компонента на его идеальный аналог. Важность усовершенствования — мера относительная, и чтобы она обладала каким-то смыслом, её необходимо брать в контексте всей системы и её компонентов. Из графика становится ясно, что путь устранения ограниченной пропускаемости трубы сильнее всего увеличит надёжность системы. Можно проделать то же самое для всей системы и сравнить систему закрылков с гидравлической системой:
![improvement potential for hydraulic power system improvement potential for hydraulic power system](https://habrastorage.org/getpro/habr/post_images/165/d47/5ab/165d475abf920d5251a54caa4a249167.jpg)
Потенциал усовершенствования для гидравлической системы определённо выше, чем для закрылков.
Из этого графика можно почерпнуть несколько важных моментов. Во-первых, усовершенствование гидравлической системы по сравнению с усовершенствованием закрылков имеет более высокий уровень окупаемости в контексте срока службы всей системы. Во-вторых, окупаемость будет тем выше, чем больше соотношение (начиная с 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” можно почерпнуть некоторые знания о моделировании неисправностей отдельных компонентов и как они влияют на поведение системы в целом.