Двухуровневая
система автоматического синтеза алгоритмов автоматического управления ГАММА-2РС
Л.С. Михайлова
ассистент,
г. Электросталь
Введение
Существуют различные
способы организации программных средств
для разработки САУ. Структура вычислительной
системы во многом зависит от того, на какой круг пользователей она
ориентирована. Так, система MATLAB,
которая в настоящий момент является безусловным лидером на рынке научного
программного обеспечения, предназначена прежде всего для специалистов, которые
хорошо знают теорию управления и задачи управления конкретной предметной
области (авиации, энергетики, робототехники и т.п.). Можно сказать, что в
изначальном своем варианте MATLAB является одноуровневой системой, т.е.
представляет собой набор равноправных функций, используя которые, пользователь
может сформировать программу для решения
задачи предметной области.
При разработке
системы, ориентированной на инженеров-разработчиков САУ следует учитывать, что
цели этой группы пользователей и сроки разработки САУ исключают возможность её
участия в создании программного обеспечения для решения задачи. Вычислительная
система в таком случае должна иметь два
уровня. Первый уровень – это
программы, предназначенные для решения конкретных задач анализа или синтеза
САУ.
Эти программы должны обладать простым удобным
интерфейсом, который бы обеспечивал ввод-вывод данных на естественном языке
(например, на языке дифференциальных уравнений). Решение задачи должно
осуществляться без участия пользователя. Второй
уровень – это средства для разработки программ первого уровня, которые
позволяют адаптировать систему для решения новых задач.
В принципе, такая
архитектура может быть реализована в
любой “открытой” системе, которая имеет собственный язык программирования и средства
для проектирования графического интерфейса пользователя. Реализация
данного подхода в рамках системы MATLAB
стала
возможна лишь недавно [1]. В системах типа Гамма (Гамма-1, Гамма-1М, Гамма-1PC
[2], разрабатываемых уже более 30 лет, такой подход был заложен изначально.
В данной статье
описывается реализация двухуровневой структуры программного обеспечения в
последней версии системы ГАММА-2РС. Система разделена на две части: среду
исследователя и среду пользователя. Среда
пользователя (первый уровень) предназначена для решения конкретных
задач инженером-проектировщиком. Среда исследователя (второй уровень)
позволяет расширять возможности среды пользователя. От предыдущей версии,
описанной в [3],[4] она отличается наличием новых средств среды исследователя.
1. ГАММА-2РС для решения конкретных задач
Решение задач в системе ГАММА-2РС осуществляется в
среде пользователя с помощью директив. Директива
– это программа, состоящая из трёх частей: средств для ввода исходных данных
(интерфейса), расчётной части и средств для вывода промежуточных и
окончательных результатов (протокол). Каждая директива решает определённый
класс задач построения алгоритма управления. В системе имеется несколько групп
директив: синтез регуляторов, идентификация, адаптивное управление, анализ.
Разработчик САУ выбирает из списка директиву,
которая решает его задачу, и вводит на естественном языке описание его задачи.
Решение задачи осуществляется автоматически. Анализируя протокол работы
директивы он принимает решение о приёмлемости результата.
Более подробное описание директив системы и
особенностей работы в среде пользователя приведено в [3].
2. Расширение возможностей системы ГАММА-2РС
Для разработки новых директив предназначена среда
исследователя.
Директивы в системе ГАММА-2РС составляются из модулей. Модули – это программы,
выполняющие отдельные вычислительные операции (например, анализ управляемости,
решение уравнения Риккати). Модули в
системе ГАММА-2РС хранятся в виде исполняемых файлов. Удобство такого подхода состоит в том, что
при разработке одной директивы можно использовать модули, написанные на разных
языках программирования.
Среда исследователя состоит из библиотеки модулей,
текстового и графического редакторов (редактора блок-схем).
В библиотека
модулей каждому модулю соответствует графическое представление в виде
прямоугольника с входами и выходами. Модуль имеет описание (имя модуля, имя
исполняемого файла, описание входов и выходов), которое позволяет системе
работать с этим модулем.
В системе имеется два способа разработки директив.
Первый способ – это задание блок-схемы алгоритма
директивы в редакторе блок-схем. Этот способ был ранее описан в [4].
Такой способ
удобен и нагляден, если алгоритм
несложен и блок-схема директивы состоит из небольшого количества модулей.
Однако построение сложных директив, содержащих логические переходы и состоящих
из нескольких десятков модулей, в редакторе блок-схем требует больших затрат
времени. Кроме того, достаточно трудно найти в блок-схеме допущенные при
построении ошибки.
Для создания сложных директив в последней версии
системы ГАММА-2РС был разработан проблемно-ориентированный язык ГАММА-1.
Программа на языке ГАММА-1 состоит из предложений,
которые оканчиваются ";".
Виды предложений языка: описание меток; описание
переменных; вызов расчетного модуля; ввод исходных данных; вывод результатов в
протокол; условный переход; безусловный переход; комментарий.
В дальнейшем планируется добавить в язык ГАММА-1
несколько новых управляющих конструкций (условный оператор, операторы цикла) и
возможность оформления директив в виде функций, которые могут быть использованы
в других директивах.
Язык ГАММА-1 является интерпретатором. При запуске
директивы на исполнение каждое предложение распознается и исполняется.
Ввод текста директивы в системе ГАММА-2РС
осуществляется во встроенном текстовом редакторе. Окно редактора с фрагментом
текста директивы представлено на рисунке.
рис. Текст директивы на
языке ГАММА-1
Литература
1. А.Г. Александров, Ю.Ф. Орлов, Л.С. Михайлова. Программное обеспечение конечно-частотной
идентификации и адаптивного управления многомерными объектами. Труды
II международной конференции " Идентификация систем и задачи
управления", Москва,2003,ИПУ,CD-ROM:ISBN 5-201-14948-0,стр. 2531-2556.
2. Alexandrov, A.G. and S.Yu. Panin (1997) GAMMA-1PC as CACSD tools for
practisins engineers. Proceedings of 7th Symposium on Computer Aided Control
System Design (CACSD'97), Gent, Belgium, P. 287-292.
3.
А.Г.
Александров, Л.С. Михайлова, Р.В. Исаков (2003) ГАММА-2РС -- система для
разработки алгоритмов автоматического управления. CAD/CAM/PDM-2003, http://lab18.ipu.rssi.ru
4.
А.Г.
Александров, Л.С. Михайлова, Р.В. Исаков (2003) Средства для расширения
возможностей системы ГАММА-2РС. CAD/CAM/PDM-2003,
http://lab18.ipu.rssi.ru