Введение

Hopsan — это бесплатная среда моделирования для гидравлических и мехатронных систем, разработанная в Университете Линчёпинга. Изначально разработанная для моделирования систем гидропривода, она также нашла применение в других областях, таких как электроэнергетика, динамика полета и динамика транспортных средств. В ней для соединения различных компонентов используются двунаправленные линии задержки (или элементы линий передачи).

История

Разработка Hopsan впервые началась в 1977 году в отделе гидравлики и пневматики Университета Линчёпинга. Первая версия была написана на FORTRAN, с графическим пользовательским интерфейсом, поддерживающим перетаскивание, разработанным на Visual Basic. Помимо возможностей моделирования, она также включала функции оптимизации на основе моделирования. Для этого использовался метод прямой поисковой оптимизации COMPLEX или генетический алгоритм (GA). Также были реализованы функции частотного и передаточного анализа, основанные на результатах моделирования. Программа поддерживала совместное моделирование с Simulink. Модели компонентов разрабатывались в виде подпрограмм на FORTRAN. Был также разработан отдельный инструмент COMPGEN, написанный на Mathematica, который позволял создавать модели компонентов более простым способом. В 1991 году для системного моделирования был внедрён метод бидирекциональных линий задержки (или моделирование линий передачи – TLM). В 2009 году разработка первой версии Hopsan была прекращена в пользу совершенно нового поколения программного обеспечения, написанного на C++. Рабочим названием проекта является Hopsan NG, а первая бета-версия была выпущена в феврале 2011 года в сотрудничестве с проектом OpenModelica.

Обзор программы

Нынешнее поколение Hopsan состоит из двух частей: графического пользовательского интерфейса и библиотеки ядра моделирования. Эти части полностью разделены, что позволяет использовать ядро независимо, например, во встраиваемых системах или на целевых компьютерах. Системные модели создаются с использованием компонентов из встроенных или внешних библиотек, включая компоненты для гидравлических, пневматических, электрических, механических и систем управления (фильтры, нелинейные функции и арифметические операции). Компоненты библиотеки предварительно скомпилированы, поэтому компиляция во время выполнения не требуется. Пользовательские модели могут быть созданы и скомпилированы в отдельные файлы библиотек, которые затем можно загрузить в Hopsan. Также имеется встроенный автоматический генератор компонентов на основе уравнений, использующий синтаксис Modelica. Модели также могут быть сгенерированы из уравнений с помощью Mathematica. Численная оптимизация выполняется встроенным инструментом с использованием алгоритмов COMPLEX RF, COMPLEX RFP или алгоритмов роя частиц. Поддерживается также анализ чувствительности методом Монте-Карло. Инструмент построения графиков позволяет генерировать частотные спектры и выполнять частотный анализ для создания диаграмм Боде и диаграмм Найквиста. Модели Hopsan можно экспортировать в Simulink. Данные графиков можно экспортировать в форматы XML, CSV, gnuplot и Matlab. Эксперименты по включению ядра моделирования Hopsan в LabVIEW Simulation Interface Toolkit с использованием библиотеки-обертки прошли успешно. В настоящее время реализуется поддержка обмена моделями – импорта и экспорта – посредством Functional Mock-up Interface. Hopsan – это кроссплатформенный проект, предназначенный для работы в системах Windows, Unix и Macintosh. Текущая бета-версия доступна только для Windows и Linux, но планируется создание версий и для других систем. Метод конечных элементов для линий передачи хорошо подходит для параллельного выполнения благодаря физически обусловленным временным задержкам между отдельными компонентами. Hopsan поддерживает разделение моделирования на отдельные потоки, что позволяет эффективно использовать многоядерные процессоры. Функциональность графического пользовательского интерфейса включает скрипты Python, функцию отмены/повтора действий, файлы моделей и конфигурации на основе XML, гидравлические символы, соответствующие стандарту ISO 1219-1, и глобальные параметры системы, которыми могут обмениваться компоненты.