RUS ENG

Проект OpenMVL

В наше время трудно указать область человеческой деятельности, где не применялось бы моделирование.
В перспективе для каждой системы могут быть созданы свои модели, перед реализацией каждого технического или организационного проекта должно проводиться моделирование.
На сегодняшний день разработана целая линейка отечественных и зарубежных средств обеспечения компьютерного моделирования. Среди первых можно выделить Model Vision Studium, МВТУ, ИСМА, AnyLogic. Среди вторых – MATLAB (целая иерархия взаимосвязанных компонент, обеспечивающая пользователя практически всеми известными техническими возможностями моделирования), ACSL, Dymola (на базе языка Modelica, который в европейском сообществе все больше приближается к тому, чтобы стать своего рода стандартом языка объектно-ориентированного моделирования), Mosilab, OpenModelica, MapleSim и другие. Все перечисленные пакеты, предоставляющие пользователю в той или иной степени обширный функционал по созданию модели и обработке результатов ее выполнения, предлагают комплексное закрытое программное решение, над которым работают десятки, а иногда и сотни, высококвалифицированных специалистов в области моделирования. В ходе разработок таких проектов принимается множество решений:

  • в какой форме предложить пользователю описывать модель;
  • в каком виде хранить сведения о модели, когда она будет загружена в пакет компьютерного моделирования;
  • какие алгоритмы можно предложить для эффективной обработки математического описания модели (возможно декомпозиция сложной системы, и наоборот, агрегирование сложной системы из блоков);
  • какой подход использовать для разрешения алгебро-дифференциальных уравнений («совместный», «вложенный», «символьный» [7]);
  • какие численные методы использовать и пр.

Естественно решаются и многие другие технические вопросы (пользовательский интерфейс, визуализация результатов исполнения модели и пр.).

Для развития пакета компьютерного моделирования и поддержания его быстродействия на максимально высоком уровне вне зависимости от конкретной задачи следует тщательно исследовать принимаемые решения и, если потребуется, разрабатывать новые алгоритмы и методики по обработке и построению модели. Для развитие подобного научного направления служит, так называемое, исследовательское программное обеспечение. К такому типу программного обеспечения и относится среда визуального моделирования OpenMVL.
Цель проекта OpenMVL заключается в том, чтобы объединить усилия разработчиков и просто интересующихся вопросами моделирования людей для решения одних и тех научно-технических задач. В работе пакета компьютерного моделирования выделяется несколько принципиальных стадий: загрузка модели в пакет, выполнение численного эксперимента, построение графиков – простейшего способа анализа получившихся результатов. За каждый этап в пакете OpenMVL отвечает своя подсистема. Для максимального упрощения изменений для решения исследовательских задач в пакете было решено отказаться от какого-либо сложного пользовательского интерфейса и графических средств отладки модели. Другими словами идея организации построения пакета была заимствована у разработчиков OpenModelica [9]. А именно, в пакет включены:

  • компилятор командной строки, с которым непосредственно работает пользователь;
  • подключаемые численные методы;
  • испытательный стенд, на котором можно посмотреть и проанализировать результаты исполнения модели.

Техническая простота в реализации среды OpenModelica позволила разработчикам с минимальными усилиями построить пакет компьютерного моделирования, обладающий тем минимум составляющих, который достаточен для построения моделей и их испытания. Существенная экономия усилий позволила объявить проект открытым («открытым» в смысле бесплатным, но отнюдь не «открытым» в смысле открытости исходного кода). Пакет OpenMVL в противовес прообразу «открыт» в обоих смыслах. Это и является одной из ключевых идей разработки: предложить всем желающим открытую реализацию, которую можно критиковать, обсуждать, совместными усилиями совершенствовать и дорабатывать, возможно подсоединять какие-то новые решения, отлаживать их и сразу смотреть как это влияет на общую производительность пакета в рамках построения тех или иных моделей.
В качестве описания моделей выбран язык Model Vision Language [5] в виду того, что он, базируясь на спецификации гибридных автоматов, фактически не накладывает никаких ограничений на поддержание в пакете наиболее востребованных на сегодняшний день функциональных возможностей. В доказательство этого можно привести в пример программный комплекс Model Vision Studium [8], читающий описание модели на языке MVL, и обеспечивающий весь спектр актуальных современных практических возможностей [7]. В частности, следует выделить, что язык MVL предлагает пользователю максимальную свободу в выборе математической формы, которая будет использования для описания непрерывной составляющей модели. Такая привлекательная техническая возможность ставит целый ряд вопросов насчет того, как следует в таком случае пакету синтаксически разбирать систему пользователя, как ее упрощать, делать выводы о разрешимости системы, какими численными методами следует воспользоваться для наилучшего решения с точки зрения быстроты и точности.
Мы надеемся, что данный проект окажется многим интересен и востребован для исследования не решенных однозначно математических задач и преодоления технических сложностей, возникающих на пути разработчиков при построении пакетов компьютерного моделирования.

Публикации по исследуемой тематике:

  • Исаков А.А., Сениченков Ю. Б. Среда визуального моделирования OpenMVL // XXXIX Неделя науки СПбГПУ. Материалы международной научно технической конференции, Спб: Изд-во Политехнического Университета. – 2010 – cc. 151-153.
  • Исаков А.А., Сениченков Ю. Б. Среда визуального моделирования OpenMVL // Вычислительные, измерительные и управляющие системы , Спб: Изд-во Политехнического Университета. – 2010 – cc. 84-89.
  • Исаков А.А., Сениченков Ю. Б. Program Complex OpenMVL for Modeling Complex Dynamic Systems // Электронный журнал «Дифференциальные Уравнения и Процессы Управления», Математико-механический факультет Санкт-Петербургского Государственного университета – 2011.
  • Исаков А.А., OpenMVL – Исследовательская среда визуального моделирования // Всероссийский конкурс научно-исследовательских работ студентов и аспирантов «инновационные технологии в образовательном процессе», Белгородский государственный национальный исследовательский университет – 2011 – cc. 11-15.

Литература и сслыки:

[1] Сениченков Ю.Б. Численное моделирование гибридных систем, Санкт-Петербург, Издательство Политехнического университета – 2004.

[2] Бенькович Е. С., Колесов Ю. Б., Сениченков Ю. Б. Практическое моделирование динамических систем . – СПб.: БХВ-Петербург,  2002.

[3] Колесов Ю. Б., Сениченков Ю. Б. Моделирование систем. Объектно-ориентированный подход. – СПб.: БХВ-Петербург,  2006.

[4] Колесов Ю. Б., Сениченков Ю. Б. Моделирование систем. Динамические и гибридные системы. – СПб.: БХВ-Петербург,  2006.

[5] Колесов Ю. Б., Сениченков Ю. Б. Моделирование систем. Практикум по компьютерному моделированию. – СПб.: БХВ-Петербург,  2007.

[6] Карпов Ю. Г. Теория и технология программирования. Основы построения трансляторов. – СПб.: БХВ-Петербург,  2005.

[7] Popper N., Breitenecker F., Extended and Structural Features of Simulators. Simulation News Europe, 2008 - Dec., pp.27-38.

[8] Model Vision Studium. St. Petersburg Polytechnic University. Homepage: http://www.exponenta.ruhttp://www.xjtek.comhttp://www.mvstudium.com

[9] OpenModelica project. Homepage: http://www.openmodelica.org

Часто задаваемые вопросы

  • В чем заключается цель работы? Задачи?

Цель работы заключается в том, чтобы создать единый исследовательский инструмент с тем, чтобы каждый заинтересованный разработчик мог подключиться к нашей работе (заявить о себе на сайте) взять на вооружение наш пакет, рассмотреть реализацию интересной ему подсистемы, привнести в нее что-то свое, зафиксировать положительный результат, предъявить нам это. Это позволит совместно всем разработчикам накапливать положительный опыт исследований, полезный для всех, и, таким образом, отвечать на непростые вопросы, которые возникают в моделировании, в открытой форме.

  • В чем заключается научная новизна работы?

Научная новизна заключается в том, что ранее научно-исследовательского средства, доступного каждому, не существовало. Данный проект позволит объединить усилия разработчиков над решением одних и тех же научных задач.
Помимо этого была построена классификация типов и структур математических задач. Данную классификацию можно дополнять и расширять, предлагая эффективные алгоритмы по выявлению той или иной формы и численные методы, качественно справляющиеся с соответствующими задачами.  В рамках доказательства жизнеспособности этой классификации предлагается подход, по которому пакет должен делать все попытки по классифицированию системы и её наиболее точной типизации, с тем, чтобы с ней мог справиться численный метод, максимально учитывающий всю специфику конкретной задачи.
Также можно отметить, что проект открывает единый фронт для исследования в различных областях, причем исследования эти можно проводить в равных условиях: проводятся изменения в одной подсистеме, соответственно, по общему приросту производительности можно судить о конкретных изменениях.
Такой научно-исследовательской возможности, фиксирующей научные достижения любого заинтересованного разработчика – участника проекта, ранее не предлагалось нигде.

  • Какие нетривиальные научные проблемы были решены в ходе выполнения работы?

Была построена система визуального моделирования, состоящая из отделенных (насколько это представляется возможным) подсистем, каждая из которых занимается своей задачей, будь то синтаксический анализ математической задачи, или автоматически выбор численного метода, или непосредственно численное решение. Все подсистемы в совокупности реализуют все стадии по моделирования, начиная от компиляции описания на MVL до получения конкретных графиков. Для каждой из подсистем было разработано базовое решение, которое можно обсуждать, критиковать и коллективно модифицировать. Каждое решение включает в себя ответы на научные вопросы (выбор алгоритмов) и технические вопросы (форма хранения в базе данных, например).

  • Почему Вы считаете, что данная работа будет востребована?

Потому как, привлекая внимание общественности и накапливая опыт разработки совместными усилиями, мы надеемся, что работа сама по себе будет представлять интерес для многих.
Помимо этого можно сказать, что нам представляется привлекательной для разработчиков идея открыть пакет целиком, предложить исправить какую-то составляющую (механизм поиска точки переключения, например) и сразу видеть результат на пакете в совокупности с другими подсистемами, которые исследователь не трогает. А отказ от графических компонентов не требует от исследователей лишних усилий на их сопровождение. Другими словами, работа разработчиков-исследователей представляется достаточно целенаправленной и эффективной. И подключенные к проекту люди помимо внесения вклада в «общее дело» отвечают на какие-то свои конкретные вопросы, применять новые знания применять на практике.

  • Почему Вы думаете, что разработчикам будет проще обратиться к Вашему комплексу, чем написать что-то свое?

Потому что разработка пакета моделирования от начала до конца довольно трудоемкий процесс, который вряд ли по силам одному разработчику. Мы предлагаем готовое опорное (но, естественно надо понимать, далеко не идеальное) решение, в котором исследователь может модифицировать интересную ему подсистему и, грубо говоря, пересобрав приложение, видеть в сравнении с тем, что было, результат своего труда. Помимо этого мы умышленно отказываемся от сложной графической оболочки и графических языков моделирования, широко применяемой в профессиональных разработках для удобства, и исследователю не приходится ни за каким из своих изменений тянуть изменения в нетривиальном пользовательском интерфейсе. Ведь данная работа для исследования абсолютно бессмысленна. Усилия разработчиков, так или иначе, становятся более целенаправленными.

  • Почему для ответа на какие-то вопросы сравнения производительности того или иного решения нельзя написать отдельное свое сравнивающее тестовое приложение? Зачем нужно скачивать Ваш проект OpenMVL и в нем копаться? Будет ли это проще?

Я считаю, что с точки зрения простоты исследования должно быть легче обратиться к готовому открытому решению лишенному сложной графической нотации. Пакет реализован; в нем минимальный и достаточный набор подсистем, отвечающий конкретно за построение модели, как и в пакете OpenModelica. Но в отличие от OpenModelica, OpenMVL представляет открытые программные коды, доступные каждому.
Тестовое приложение написать можно… но для чего-то конкретного: сравнения численных методов, алгоритмов по символьной обработке. Но нет, строго говоря, 100%-ных гарантий, что данные наработки, будучи встроенными в профессиональную основную разработку, дадут общий прирост производительности, потому как построение и исполнение модели это сложный взаимосвязный итерационный процесс, который следует рассматривать в совокупности от начала до конца (с точки зрения анализа производительности). К примеру, разработанный численный метод может показать несколько лучшую производительность, нежели существующие, но проигрыш его по памяти может отразиться на работе других подсистем и в сумме пользователь получит более медленное средство моделирования. Мы же предлагаем немного другой подход. Мы даем испытательный образец в пользование, исследователь меняет что-то свое, видит результат своей работы, оценивая все этапы моделирования.
Можно, конечно, построить тестовое приложение для всех этапов моделирования, но во-первых это очень трудоемко, во-вторых это получается «второй “OpenMVL”»(уже свой – закрытый) и в третьих даже если поддерживать у себя в закрытых условиях такую разработку для ответов на свои вопросы, исследовать лишается возможности коллективного решения, сравнения своего решения с решением другого исследователя, которого он, к примеру, никогда в жизни не увидит. Разработка OpenMVL предполагает единое средство для обмена опытом и решения общих возникающих задач между всеми исследователями, которые хотят подключиться к совместной работе.

Документация по практической составляющей проекта

Описание разработки