Расширение возможностей
системы ГАММА-2РС с помощью функций системы
MATLAB
А.Г. Александров,
ведущий научный сотрудник,
д. ф.-м.н., профессор,
г. Москва,
Л.С.
Михайлова,
ст. преподаватель,
г. Электросталь
Для автоматизации разработки алгоритмов работы систем
автоматического управления (САУ) служит ряд систем, в числе которых интенсивно
развиваются система MATLAB [1] – за рубежом и система ГАММА [2] – в нашей стране. Назначение этих систем различно: MATLAB используется
для автоматизации ранних этапов проектирования, ГАММА предназначена для автоматизации
этапа эскизного проектирования САУ (разработки закона управления).
Основу систем MATLAB и ГАММА
составляют элементарные программы (модули – в системе ГАММА, m-файлы
в системе MATLAB).
реализующая элементарные проектные операции
(ЭПО). ЭПО – это неделимая (минимальная), содержательная на языке теории
автоматического управления операция: анализ устойчивости систем, LQ-оптимизация или Н-бесконечная оптимизация,
идентификация и т.д.
В системе ГАММА имеется более сложная
структурная единица – директива.
Директива – это программа, решающая задачи
определенного класса, например синтез адаптивных регуляторов, и обеспечивающая
не только необходимые вычисления, но и удобный интерфейс пользователя: ввод
данных на естественном языке (в виде дифференциальных уравнений, матриц и т.д.)
и документирование результатов вычислений. Директивы системы ГАММА строятся из
отдельных модулей. План директивы задается либо с помощью структурной схемы директивы
в редакторе структурных схем, либо записывается на проблемно-ориентированном
языке ГАММА-1.
Т.к. модули системы
ГАММА представляю собой исполняемые файлы, то для их разработки может быть
использован любой язык программирования высокого уровня. Единственное требование,
которому должны удовлетворять модули – это соблюдение формата обмена данными,
принятого в системе ГАММА. Для разработки модулей системы ГАММА до
настоящего времени использовалиcь языки Pascal и Fortran.
Однако язык MATLAB обладает
гораздо более эффективными средствами для программирования вычислительных задач,
и его применение позволяет существенно ускорить процесс разработки новых
модулей и директив системы ГАММА.
Система ГАММА-2РС [3] – последняя
версия системы ГАММА. Она состоит из двух подсистем – среды пользователя, предназначенной для решения конкретных задач проектирования систем
автоматического управления (САУ) инженерами-разработчиками САУ, и среды исследователя, которая содержит
средства для разработки и модернизации программного обеспечения
«Среды пользователя» специалистами в области
теории управления.
Разработка директивы в системе
ГАММА-2РС состоит из двух этапов: 1) разработка необходимых расчетных модулей и
включение их в библиотеку модулей системы ГАММА-2РС; 2) разработка плана
решения задачи.
Практическим
применением предложенного подхода явилась разработка в системе ГАММА-2РС
директив D111sad
«Частотная идентификация с самонастройкой испытательного сигнала» и D311sad
«Частотное адаптивное управление с самонастройкой испытательного сигнала».
MATLAB-функции (модули), используемые в этих директивах являются составной
частью пакета АДАПЛАБ-М [4],[5], разработанного в среде
MATLAB.
Процесс разработки
модулей с использованием MATLAB-функций состоит из
следующих этапов:
·
m-файл оформляется как
функция без параметров;
·
добавляются
операции ввода-вывода в формате, принятом в системе ГАММА;
·
полученная
функция компилируется с использованием встроенного компилятора системы MATLAB,
при этом генерируется текст модуля на языке С и создается исполняемый файл,
который может быть использован в системе ГАММА.
Таким способом были разработаны модули: TestOm
- определение амплитуд испытательного сигнала по известной верхней и
нижней границам собственных частот объекта; TunAmp - самонастройка амплитуд испытательных гармоник; TunFour - определение оценок частотных
параметров объекта (фильтр Фурье с самонастройкой длительности фильтрации); Frid – решение частотных уравнений идентификации; Akor – синтез регулятора по методу АКОР; Recalc – определение частотных параметров объекта по частотным параметрам
замкнутой системы, и ряд вспомогательных модулей.
Для задания плана директив
использовался язык структурных схем (рис.1).
рис.
1 Структурная схема директивы D111sad
«Частотная идентификация с самонастройкой испытательного сигнала»
Исходные
данные и результаты решения тестовой задачи представлены на рис.2,3. Они
совпадают с теми, что получены с помощью пакета АДАПЛАБ-М.
рис.2
Окно с исходными данными директивы D111sad
«Частотная идентификация с самонастройкой испытательного сигнала»
рис.3
Окно с результатами работы
директивы D111sad
«Частотная идентификация с самонастройкой испытательного сигнала»
1. Дьяконов В.П., Круглов В. MATLAB.
Анализ, идентификация и моделирование систем. Специальный справочник. СПб.:
Питер, 2002 г.
2. Александров А.Г., Исаков Р.В.,
Михайлова Л.С. Структура программного обеспечения для автоматизации разработки
алгоритмов автоматического управления//
АиТ№4, 2005 г.
3. Михайлова Л.С. Двухуровневая система
автоматического синтеза алгоритмов автоматического управления ГАММА-2РС. CAD/CAM/PDM-2004,
http://lab18.ipu.rssi.ru
4. Александров А.Г., Орлов Ю.Ф.//
АДАПЛАБ-М: директива для идентификации с самонастройкой испытательного сигнала,
Труды международной конференции "Идентификация систем и задачи
управления" SICPRO'05, 2005 г.
5. Александров А.Г., Орлов Ю.Ф.//
АДАПЛАБ-М: директива для частотного адаптивного управления с самонастройкой
испытательного сигнала, Труды международной конференции "Идентификация
систем и задачи управления" SICPRO'05, 2005 г.