Инструментальная среда для разработки виртуальных
динамических систем технического назначения
М.Х. Дорри,
д.т.н., проф., dorrimax@lab49.ru,
А.А. Рощин,
к.т.н., доц., roshinaa@mail.ru,
ИПУ РАН, г. Москва
Рассмотрены особенности построения
инструментальной среды, созданной для разработки виртуальных динамических
систем. Они упрощают задачу разработки исследовательских стендов, которые используются
при проектировании систем управления сложных многоцелевых объектов, для
имитационного моделирования, синтеза систем управления и исследования
взаимодействия подсистем в динамике.
The
features of Software Tool for creation virtual dynamic systems are considered. They
simplify the task of the development of the research desks that are used for
Simulation and Design control systems for Multi-Purpose Objects. Software Tool
helps to synthesize algorithms of control and investigates the interaction between
subsystems during dynamic processes.
Введение
В докладе рассматриваются основные
принципы построения инструментальной среды, созданной авторами [1, 2] для
разработки виртуальных динамических систем. Она
обеспечивает построение исследовательских стендов для моделирования и
визуализации поведения технических объектов в процессе выполнения реальных
задач на различных этапах их жизненного цикла.
Инструментальная среда предназначена для сокращения сроков и стоимости
разработки объектов на основе использования программных сред нового поколения и
построения виртуальных динамических систем в виде исследовательских стендов для
сложноструктурированных объектов и их отдельных подсистем.
Инструментальные
средства для разработки виртуальных динамических систем, помимо массы частных
модулей для описания объектов и переходных процессов в них, содержит
универсальные программные модули, позволяющие:
· автоматически обеспечивать
работу всего стенда, опираясь на программы блоков и подсистем;
· автоматически создавать подпрограммы
новых собственных блоков, используемые при компиляции динамической библиотеки
(DLL);
· объединять программы,
работающие на разных компьютерах, в общую сеть и передавать данные по сети;
· осуществлять групповую
установку параметров блоков;
· синхронизировать процессы и
осуществлять моделирование в разных временных масштабах;
· объединять передаваемые
данные в шины;
· создавать векторные
изображения блоков и эффекты мультипликации;
· создавать модули
отображения картографической информации;
· разрабатывать и
проверять алгоритмическое и программное обеспечение устройств, работая с реальными
устройствами в режиме полунатурного моделирования;
· применять современные
методы теории управления к разработке и совершенствованию систем управления
движением кораблей,
и многие другие модули,
важные для комфортной работы.
Без
специально создаваемых инструментальных средств процесс разработки крупных,
взаимосвязанных систем управления затягивается, страдает качество проектов,
возрастает вероятность принятия недостаточно обоснованных решений.
В результате использования специальных
инструментальных средств облегчается построение многомашинных исследовательских
стендов, и могут быть достигнуты следующие цели:
1.
Сокращение
сроков и стоимости разработки исследовательских стендов для изучения и
отображения работы объектов в процессе выполнения ими задач управления,
разработки пультов операторов, тренажеров и т.п.
2.
Обеспечение
возможности построения и модификации стендов без участия высококвалифицированных
программистов.
В докладе будут приведены примеры
использования инструментальной среды для разработки виртуальных динамических
систем, которые использовались при исследовании поведения ряда технических
объектов (подводных лодок и энергетических установок).
1. Структура комплекса инструментальных средств
Комплекс
инструментальных средств построения исследовательских стендов достаточно
универсален, чтобы с его помощью можно было разрабатывать системы различного назначения.
При этом он обладает достаточно простым и понятным интерфейсом, который смогут
без проблем использовать разработчики и пользователи с разным уровнем
подготовки: от профессиональных программистов до узких специалистов в
предметной области. Структурно комплекс состоит из общей управляющей программы
(среды разработки) и набора блоков-модулей, выполняющих разные задачи. Тип и состав
используемых модулей определяется назначением разрабатываемого стенда и желанием
разработчика. Управляющие программы комплекса, установленные на разных машинах,
имеют возможность обмениваться данными друг с другом. Структура комплекса
представлена на рис. 1.
На
каждой машине, входящей в состав комплекса, устанавливается среда разработки –
управляющая программа, которая обеспечивает взаимодействие модулей комплекса с
пользователем и между собой.
По
назначению блоки структурной схемы делятся на несколько групп.
рис. 1 Общая структура комплекса инструментальных
средств
Блоки математических
моделей объектов. Эти блоки описывают поведение различных объектов разрабатываемого
стенда: динамику движения, работу бортовых систем и т.п. В процессе работы
комплекса пользователь имеет возможность изменять параметры математических
моделей.
Блоки ввода и отображения
информации.
Эти блоки предназначены для взаимодействия системы с пользователем. Информация
о процессах, протекающих в системе, должна отображаться в наглядной форме: в
виде числовых индикаторов, графиков, таблиц и т.п. Предусмотрено приближенное
отображение картографической информации в одном из стандартных форматов для
индикации положения подвижного объекта (например, корабля) в окружающем мире.
При необходимости разработчик может самостоятельно создавать органы отображения
информации с возможностями простой анимации.
Блоки обмена данными по
сети. Эти блоки обеспечивают
связь между машинами комплекса. На различных машинах могут быть запущены
отдельные части общей системы, например, различные пульты операторов.
Блоки связи с аппаратурой позволяют считывать
цифровые и аналоговые данные с подключенных к машине внешних устройств и передавать
данные на эти устройства. С их помощью можно, например, подключать к стенду
реальные пульты управления операторов, а также проводить полунатурное моделирование.
В
комплексе предусмотрена возможность выделения функционально обособленной части
схемы в отдельную подсистему (составной блок). Разработчик сможет работать с
такой подсистемой как с единым блоком, но, при желании, он сможет редактировать
ее внутреннюю структуру в отдельном окне.
Предусмотрена
возможность подключения управляющих программ к подсистемам и служебным блокам
для реакции на различные служебные события и действия пользователя.
2 Структура данных универсального блока системы
Структура
данных универсального блока системы и взаимодействие управляющей программы
блока с этими данными схематически показана на рис. 2.
рис. 2 Структура данных
блока системы
С
каждым блоком системы может быть связана управляющая программа, ответственная
за всю обработку данных в блоке и за все действия, которые этот блок выполняет.
Управляющие программы находятся во внешних модулях (библиотеках), которые могут
быть легко заменены и модифицированы даже во время работы комплекса. Каждый
блок обладает набором собственных переменных, которые подразделяются на входы,
выходы и внутренние переменные. На входы блока поступают данные с выходов других
блоков схемы. Управляющая программа считывает эти данные, выполняет действия,
предусмотренные алгоритмом работы блока, и записывает результаты вычислений в
переменные-выходы, с которых данные, в свою очередь, поступают на входы других
блоков, соединенных с этими выходами. Внутренние переменные служат для хранения
промежуточных результатов вычислений.
Поскольку
предполагается, что универсальные блоки могут выполнять в системе самые разные
функции, их внешний вид в схеме может существенно отличаться. Для большинства
блоков достаточно простого прямоугольника с надписью, указывающей на назначение
блока. Внешний вид блоков, отображающих данные сложной структуры (например,
графики, элементы интерфейса пользователя, трехмерные объекты, картографическая
информация), определяется управляющей программой блока, которая самостоятельно
выводит на экран различные изображения. Для создания простых анимированных блоков
нет необходимости формировать все изображение и анимацию программно: можно
построить изображение блока из простых графических объектов, положение и внешний
вид которых будет связан с переменными блока. Набор этих объектов составляет
векторную картинку, которая хранится вместе с остальными данными блока. Для
создания этой картинки в инструментальном комплексе предусмотрен специальный редактор.
3. Форма и вид информационных потоков, передаваемых по связям
Входы
и выходы блоков в пределах одной подсистемы соединяются друг с другом при
помощи линий связи (для соединения блоков в разных подсистемах применяются
внешние входы и выходы). При срабатывании связи данные с выхода одного блока
передаются на входы одного или нескольких других блоков. Простая связь соединяет
два блока – выход одного со входом другого. Такая связь изображена на рис. 3а.
При ее срабатывании значение выхода Y блока 1 передается на вход X блока 2.
рис. 3 Способы соединения
блоков
Разветвленная
связь соединяет выход одного блока со входами нескольких (рис. 3б). При
срабатывании связи, изображенной на рисунке, значение выхода Y блока 3 одновременно
передается на входы X блоков 4 и 5. Возможно подключение выходов двух разных
блоков к одному входу (рис. 3в). В этом случае блок 8 воспринимает данные, изменившиеся
раньше.
4. Библиотеки управляющих программ блоков
Управляющие
программы блоков размещаются в отдельных модулях, чтобы, при необходимости, их
можно было заменить, а также чтобы можно было легко конфигурировать комплекс
для выполнения конкретной задачи. В среде MS Windows наиболее удобным является
размещение управляющих программ блоков в динамически подключаемых библиотеках –
DLL. Такая библиотека загружается в оперативную память, если в схеме
присутствует блок, управляющая программа которого находится в этой библиотеке.
В состав комплекса входит набор библиотек с управляющими программами для стандартных
блоков: динамических звеньев, математических операций, нелинейностей, элементов
пользовательского интерфейса, блоков сетевых соединений и т.п. При этом
разработчики могут создавать собственные библиотеки, содержащие управляющие
программы блоков, специфичных для конкретной системы.
Управляющая
программа блока вызывается комплексом для выполнения каких-либо действий, требуемых
от блока, а также для того, чтобы блок мог реагировать на различные системные
события, если это предусмотрено алгоритмом его работы.
Для
того, чтобы управляющие программы блоков могли взаимодействовать между собой и
с другими модулями, в комплексе предусмотрен набор специализированных сервисных
функций. Сервисные функции, как и DLL с управляющими программами блоков,
работают в общем адресном пространстве комплекса, поэтому они могут напрямую
взаимодействовать со структурами данных блоков и с передаваемыми им из
программы блока параметрами. Технически такие функции относятся к функциям обратного
вызова, поскольку исходно главная программа комплекса вызывает функцию блока,
которая, в процессе работы, один или несколько раз передает управление обратно
главной программе для выполнения сервисной функции (рис. 4).
Набор
сервисных функций позволяет разработчику сосредоточиться на алгоритмах работы
самого блока, а не на проблемах взаимодействия программы этого блока с
комплексом и с операционной системой.
рис. 4 Вызов сервисной
функции комплекса из программы блока
5. Автоматическая компиляция управляющих программ блоков
Чтобы
разработчик, не будучи профессиональным программистом, смог, тем не менее,
создавать собственные блоки, в комплекс инструментальных средств включены
модули автоматической компиляции управляющих программ блоков. Такой модуль
будет автоматически строить полный исходный текст программы со всеми необходимыми
описаниями по отдельным фрагментам, введенным разработчиком.
В
инструментальной среде предусмотрена возможность создания модулей
автоматической компиляции сторонними разработчиками, чтобы они могли
использовать привычные им языки программирования и компиляторы для построения
моделей блоков. С этой целью расширен набор сервисных функций комплекса путем
добавления в него функций взаимодействия с модулями автоматической компиляции,
а также четко описана структура этих модулей и требования к ним с точки зрения
программиста.
Заключение
Созданная
инструментальная программная среда вобрала в себя черты известных программных
комплексов, которые можно разделить на 4 группы.
1.
Программные
комплексы для моделирования и синтеза систем управления (MATLAB, LabView и т.п.).
2. Системы диспетчеризации и архивирования данных. Это, так называемые, SCADA системы (Supervisory Control And Data Acquisition).
3.
Математические пакеты (Derive, MathCAD, Maple и т.п.).
4.
Крупные системы автоматизации моделирования технологических процессов. К
четвертой группе относятся системы, создаваемые научными центрами по авиастроению,
кораблестроению, энергетике и др., в основном, для собственных нужд и не
предназначенные для коммерческого использования.
К
основным достоинствам инструментальной среды мы бы отнесли: возможность
наглядного отображения процессов с использованием графики и легкость создания
мультипликации пользователем; создание автокомпилируемых блоков на синтаксисе
языков высокого уровня; наличие видимых и невидимых слоев; удобные средства взаимодействия
подсистем по шинам; возможность соединения нескольких компьютеров в общую сеть;
возможность исследования процессов в разных временных масштабах и осуществления связи с реальным объектом.
Имеются
и другие особенности, которые можно оценить только в результате работы с
инструментальным комплексом.
1. M.Kh. Dorri _ A.A. Roshchin
Multicomputer Research Desks for Simulation and Development of Control
Systems. IFAC, CD "PREPRINTS of the
17th IFAC World Congress July 6-11,2008, Seoul, Korea", p. 15244-15249
2.
Дорри М.Х., Рощин А.А. Инструментальная программно-алгоритмическая
система для разработки исследовательских комплексов // Мехатроника, автоматизация,
управление. № 12, 2008. С. 12 – 17.