Введение
Инженерное дело тесно связано с развитием науки и средств обработки информации. Благодаря большим вычислительным мощностям современных компьютеров, область деятельности и скорость выполнения задач современных инженеров увеличились. Кроме того, появились новые задачи, которые должен уметь решать каждый инженер, например: интегрирование системы, изменение частей модели, симуляция взаимодействия отдельных элементов и целой системы, симуляция ошибок, взаимодействия аппаратной и программной частей, расчет рисков до реализации продукта в реальной жизнь как показано в работах [1 – 3]. Для этого используются новые инструменты, список которых тоже расширился удобными средствами расчетов, существует больше количество программ [5 – 7]: Scilab, Maxima, Mathematica, Microsoft Excel, Matlab.
Разнообразие средств работы позволяет инженеру выбрать какой инструмент использовать. На его выбор действует большое количество факторов: спектр решаемых задач, удобство использования, скорость работы, актуальность инструмента и его поддержка разработчиком. Наиболее популярным является Matlab System Identification Toolbox и его пакет Simulink. Речь в данной статье пойдёт о актуальности использования данного инструментария современными инженерами.
Цель работы
Данная работа ставит перед собой задачу сравнить Matlab и Simulink с их прямыми и косвенными конкурентами (Mathematica, Scilab, Maxima и Microsoft Excel для Matlab и Scicos и VisSim для Simulink), причем не только по критериям качества программного обеспечения, но и по функциональным критериям. На основание проведенных исследований мы сделаем вывод о разумности использовании Matlab и Simulink в качестве основных рабочих инструментов современного инженера.
Материалы и методы
Simulink – это инструмент для имитирование и анализа динамических систем, в виде графов при помощи блок-схем из различных библиотек. При его использовании пользователь ощущает простоту и удобство, так как реализован принцип визуального программирования. Возможность модернизации и создания собственных библиотек позволяет решать большое количество задач, таких как разработка модели, проверка и генерация кода, а также тестирование сложной системы. Готовые результаты могут иметь вид таблиц или графиков.
Сама компания MathWorks выделяет следующие особенности Simulink:
- Интерактивная графическая среда для построения блок-диаграмм;
- Расширяемая библиотека готовых блоков;
- Удобные средства построение многоуровневых иерархических многокомпонентных моделей;
- Средство навигации и настройки параметров сложных моделей - Model Explorer;
- Средства интеграции готовых C/C++, FORTRAN, ADA и Matlab-алгоритмов в модель, взаимодействие с внешними программами для моделирования;
- Современные средства решения дифференциальных уравнений для непрерывных, дискретных, линейных и нелинейных объектов (в т.ч. с гистерезисом и разрывами);
- Имитационное моделирование нестационарных систем с помощью решателей с переменным и постоянным шагом или методом управляемого из Matlab пакетного моделирования;
- Удобная интерактивная визуализация выходных сигналов, средства настройки и задания входных воздействий;
- Средства отладки и анализа моделей;
- Полная интеграция с Matlab, включая численные методы, визуализацию, анализ данных и графические интерфейсы.
Главным преимуществом Simulink является интегрированность в среду Matlab, откуда пользователь может брать библиотеки и подпрограммы, написанные на различных языках программирования.
Matlab – пакет прикладных программ, позволяющий решать разнообразные технические задачи, средствами математического моделирования, используя одноименные язык программирования. Список возможностей, которые реализуются в Matlab обширен: решение и визуализация задач из почти всех областей математики, разработка алгоритмов, обработка данных.
Язык, инструментарий и встроенные математические функции позволяют исследовать различные подходы и получать решение быстрее, чем с использованием электронных таблиц или традиционных языков программирования, таких как C/C++ или Java.
Matlab широко используется в таких областях, как:
- обработка сигналов и связь;
- обработка изображений и видео;
- системы управления;
- автоматизация тестирования и измерений;
- финансовый инжиниринг;
- вычислительная биология.
Актуальность использования Simulink обусловлена широким спектром возможностей, удобством и простотой использования. При этом интегрированность в Matlab проводит зависимость между использованием Simulink’а и Matlab.
Чтобы ответить на вопрос «Актуален ли Simulink?» необходимо понять, какие у него вообще есть конкуренты (и есть ли вообще). Сам Simulink, как мы уже сказали ранее, относится к пакетом блочного моделирования (так же существуют пакеты физического моделирования и пакеты, ориентированные на схему гибридного автомата). Пакеты блочного моделирования хорошо подходят для создания не очень сложных моделей и в силу своей простоты могут быть выполнены даже неопытным пользователем. Также достоинством является эффективность реализации элементарных блоков и простота построения эквивалентной системы. Однако при создании сложных моделей приходится строить довольно громоздкие многоуровневые блок-схемы, не отражающие естественной структуры моделируемой системы. Другими словами, этот подход работает хорошо, когда есть подходящие стандартные блоки.
Наиболее известными представителями пакетами блочного моделирования являются:
- Подсистема Simulink пакета Matlab;
- Подсистема Scicos пакета Scilab;
- VisSim
Однако перед тем как рассматривать более подробно Simulink, поговорим непосредственно о пакете Matlab. Многие считают, что главным конкурентом Matlab’а является программный пакет для символьных вычислений Mathematica. Тем не менее, компания MathWork рассматривает Microsoft Excel как своего главного конкурента. Пакет Matlab гораздо удобнее для задач численного анализа и линейной алгебры, чем Mathematica, и его часто используют для инженерных разработок. Mathematica, с другой стороны, имеет превосходные возможности для символьных вычислений, делающие её популярной среди физиков. Другая фундаментальная разница заключается в том, что Matlab-язык, используемый для написания кода новых (пользовательских) функций и скриптов, синтаксически близок к языку программирования Basic, в то время как Mathematica использует свой собственный функциональный язык.
В итоге, альтернативными пакетами Matlab’у являются:
- Mathematica;
- Scilab;
- Maxima;
- Microsoft Excel.
Составим сравнительную таблицу возможностей данных пакетов, чтобы определить для каких задач они подходят лучше всего. Функции, по которым будем составлять таблицу:
- Встроенный язык программирования;
- Линейная алгебра (матрицы, алгебра матриц, решение Систем Линейных Алгебраических Уравнений, векторы, сингулярности и другое);
- Анализ данных и математическая статистика (быстрое преобразование Фурье, цифровая фильтрация, статическая регрессия и другое);
- Многочлены (поиск корней, дифференцирование, интерполяция и экстраполяция кривых);
- Дифференциальные уравнения;
- Наличие аналога Simulink.
Для удобства и краткости будем использовать соответствующие номера функций, вместо их названия.
Таблица 1 — Matlab и его конкуренты
|
Matlab |
Mathematica |
Scilab |
Maxima |
Microsoft Excel |
1 |
да |
да |
да |
да |
да |
2 |
да |
да |
да |
да |
да |
3 |
да |
да |
да |
да |
да |
4 |
да |
да |
да |
да |
да |
5 |
да |
да |
да |
да |
да |
6 |
да |
нет |
да |
нет |
нет |
Из таблицы можно сделать вывод, что все из данных пакетов выполняют свои математические функции хорошо. Однако отсутствие в большинстве из них аналога Simulink мы не можем поставить их в один ряд. В итоге, реальным конкурентом для Matlab является Scilab, но стоит сказать, что Scilab, в отличие от Matlab, является бесплатным, что, несомненно, плюс.
Теперь проведем сравнение непосредственно библиотеки Simulink с её конкурентами: Scicos и VisSim. Однако сравнивать будем не возможности данных продуктов (поскольку они примерно равны), а их качество как программного обеспечения. Критерии, по которым будем проводить сравнение: совместимость, сопровождаемость, портирование. Оценивать будем по десятибалльной шкале.
Таблица 2 — Simulink и его конкуренты
|
Scicos |
VisSim |
Simulink |
Совместимость |
10 |
10 |
10 |
Сопровождаемость |
3 |
7 |
10 |
Портирование |
10 |
3 |
10 |
Немного поясним критерии. По пункту «совместимость» все продукты получили по десять баллов, т.к. каждый их них имеет средства, с помощью которых мы можем использовать программу, полученную с помощью этих пакетов, в других программах или как готовый продукт. Например, для VisSim – это VisSim/C-Code, для Scicos и Simulink – встроенные средства [7 – 8].
Оценку 3 по критерию «сопровождаемость» пакет Scicos получил из-за того, что последняя стабильная версия выходила 7 лет назад (апрель 2011 года, версия 4.4.1), что является крайне большим сроком для программного обеспечения [9 – 10]. Последней стабильной версии VisSim 3 года (последняя версия вышла в 2015 году), что так же является большим сроком для программного обеспечения в современном мире. Для Simulink этот срок – 82 дня, на момент написания статьи (02.06.2018).
Что касается критерия «портирование»: VisSim доступен только для одной платформы – Windows, а Scicos и Simulink – для трёх наиболее популярных: Windows, macOS и Linux.
Результаты и обсуждение
Результаты, представленные в таблицах 1 и 2, показывают, что в сравнении продуктов имитационного моделирования Simulink имеет явное превосходство, по важным критериям качества программного обеспечения: сопровождаемость продукта после релиза, совместимость с другими программами и операционные системы, на которых их можно использовать.
Заключение
Опираясь на проведенный анализ функциональных и качественных параметров программного обеспечения Simulink и Matlab, можно сделать вывод, что Simulink и Matlab достаточно качественные, распространённые, применяемые, полезные и конкурентоспособные продукты, которые в сравнении с похожим программным обеспечением, занимают лидирующие места по ключевым аспектам удобства для использования. Обобщая все вышесказанное, можно сказать, что Simulink и Matlab актуальны и их можно назвать инструментами современного инженера.