Важной составляющей имитационно-тренажерных комплексов является система управления. В качестве примера можно привести тренажеры автоматических беспилотных систем, в которых система управления используется для управления двигателем, полезной нагрузкой, исполнительными механизмами, бортовым питанием и т.д. Имеются также тренажерные комплексы вождения транспортных средств, управления морскими и речными судами, диспетчерского управления, тренажеры операторов газораспределительных станций и т.д., в которых система управления играет важнейшую роль.
Система управления может быть представлена в виде функциональной схемы, элементы которой называются функциональными звеньями или функциональными блоками. Эти блоки могут изображаться различными плоскими фигурами (прямоугольниками, треугольниками, овалами и т.д.), в которых записываются функции преобразования входной величины в выходную. Важной задачей является автоматизация процесса создания и тестирования таких функциональных схем, а также разработка алгоритмов их расчетов в масштабе реального времени.
В области моделирования систем управления на основе функциональных схем существует большое количество разработок, например программные пакеты Simulink, Scicos, Dymola, LabView. Рассмотрим их возможности и особенности.
Пакет Simulink [1] предназначен для проектирования систем управления и коммутации, цифровой обработки и моделирования динамических систем на основе блочных схем. Он является составной частью программного комплекса Mathlab, с которым тесно интегрирован. Пакет обладает широкими возможностями и имеет модульную структуру с возможностью дополнительного расширения функциональности. Этот программный пакет широко используется по всему миру и фактически является отраслевым стандартом в области моделирования систем управления. Это коммерческий продукт, цена которого довольно значительна. Недорогие лицензии предлагаются лишь для научного и некоммерческого использования. Из недостатков пакета можно отметить его сложность и громоздкость.
Аналогом программного продукта Simulink является Scicos [2] – инструмент для редактирования блочных диаграмм и симуляции, входящий в пакет Scilab. Этот программный продукт предоставляет схожую с Simulink функциональность, но является при этом некоммерческим opensource-проектом.
Еще один аналог Simulink – программный пакет Dymolа [3]. Это коммерческий продукт компании Dassault Systems, предназначенный для моделирования и симуляции сложных динамических систем, включая механические, термодинамические, гидравлические, пневматические и т.д. Основное предназначение пакета – построение и отладка систем управления для сложных технических устройств на этапе их проектирования. Продукт в наибольшей степени ориентирован на промышленное использование, его стоимость достаточно велика.
Коммерческим продуктом для моделирования систем управления на основе функциональных схем является и пакет LabView [4] компании National Instruments, он обычно используется для управления оборудованием и АСУ в промыш- ленности. Пакет предоставляет широкий набор блоков для обмена данных с промышленным оборудованием и различными контроллерами. Используемые форматы данных закрыты, для использования построенной системы управления в своем приложении генерируется исполняемый код, который требует наличия runtime-библиотек. Существуют и другие похожие продукты, предназначенные для узкого применения.
Несмотря на обилие существующих програм- мных продуктов, на наш взгляд, актуальна задача создания более простых и доступных систем моделирования на основе функциональных схем для систем управления имитационно-тренажерных комплексов.
Разработанный в НИИСИ РАН автоматизированный программный комплекс создания, тестирования, редактирования и расчета функциональных схем предназначен для систем управления различного типа, имитационно-тренажерных комплексов управления роботами и манипуляторами, виртуальных лабораторий, обучающих систем и т.д. Комплекс включает специализированный визуальный редактор функциональных схем и модуль их расчета в масштабе реального времени. Модуль расчета реализован в виде динамической библиотеки, не требует дополнительной компиляции и легко подключается с помощью програм- много интерфейса к любым программным модулям.
Создание функциональных схем
Для создания функциональных схем используется специальный визуальный редактор. Библиотека редактора состоит из наборов функциональных блоков нескольких типов: арифметические (сумматор, произведение, квадратный корень), логические (конъюнкция, дизъюнкция, сравнение), тригонометрические (синус, арктангенс), цифровые (триггеры, мультиплексоры), формирователи (генераторы сигналов, мультивибраторы, таймеры), динамические (дифференциатор, интегратор, апериодическое звено, задержка, нелинейный элемент). В общем виде каждый блок имеет некоторое количество m входов, некоторое число n выходов, вектор
внутренних состояний и реализует некоторый вектор функций (y1, …, yn)=(f1(x1, …, xm,
, t), ..., fn(x1, …, xm,
, t)). В зависимости от типа блока значения xi, qi и fi могут быть действительными числами, целыми числами из некоторого диапазона или булевскими значениями из множества {0, 1}. Вектор внутренних состояний
предназначен для запоминания информации из предыдущих шагов расчета схемы (накопленной суммы, предыдущего значения величины для вычисления дифференциала и т.д.). Многие функции блоков зависят также от времени t (дифференциатор, интегратор и т.д.). Существует возможность добавления новых блоков, необходимых для реализации функциональной схемы.
Визуальный редактор позволяет выбрать нужный блок из соответствующей библиотеки и переместить его с помощью мыши в нужное место поля редактора. После этого можно задать параметры блока (число входов блока «Сумматор», начальное значение и т.д.) и с помощью мыши соединить линиями входы и выходы блока соответственно с выходами и входами других блоков (при этом возможно образование циклов). Оставшиеся неприсоединенными входы (выходы) блоков будут являться входами (выходами) схемы. Входы схемы в дальнейшем можно будет присоединить к элементам управления (виртуального или реального пульта управления), а выходы – к исполнительным элементам (к электрическим двигателям, мембранам, электромагнитам и т.д.). В процессе проектирования можно заменить созданную функциональную схему пиктограммой макроблока и использовать его в редакторе как составную часть более сложной схемы. Сами блоки, а также их входы и выходы в редакторе имеют всплывающие подсказки, что позволяет быстро получить краткую информацию о них. Все это в целом дает возможность быстро разрабатывать, анализировать и выявлять ошибки функционирования структурной схемы системы управления. На рисунке 1 показан пример функциональной схемы автоматизированной системы управления мобильным роботом.
Любая структурная схема реализует некоторый набор функций, зависящий от всех ее входов. Вычисления в схеме производятся по сигналу от системы управления, каждое такое вычисление будем называть тактом. Во многих случаях результаты вычислений некоторых блоков одного такта могут использоваться в этих или других блоках для вычислений в последующих тактах. Тогда они сохраняются в памяти блоков в виде векторов
их внутренних состояний. Например, блок «буферный регистр» имеет два входа – W и D и хранит в памяти последнее значение входа D. Если в очередном такте вычислений на вход W поступает логическая 1, то новое значение входа D посылается на выход и запоминается вместо старого значения. Если же на вход W подается логический ноль, то на выход посылается запомненное значение и в памяти оно не изменяется. Созданная в редакторе структурная схема сохраняется в бинарном файле.
![](phpThumb/phpThumb.php?w=300&src=//uploaded/image/2014-4-dop/2014_4_dop1/2.jpg)
Алгоритмы расчетов
При инициализации модуля расчета функциональных схем выполняются чтение бинарного файла схемы и формирование структур данных, описывающих все блоки схемы и их связи. Расчет функциональной схемы осуществляется в дискретные моменты времени, так называемые такты. Время такта определяется вызывающей оболочкой имитационно-тренажерного комплекса и может быть как фиксированным, так и плавающим. Обозначим через ID номер предыдущего, а через CalcID – номер текущего шага расчета.
Рассмотрим алгоритм расчета схемы и рекурсивную процедуру расчета отдельного блока. При загрузке файла схемы формируется список BO всех выходных блоков. Расчет схемы выполняется рекурсивно, начиная с этих блоков.
Алгоритм расчета схемы.
1. Инкрементируется номер такта расчета схемы: CalcID++.
2. Цикл по i от 1 до количества элементов списка BO.
2.1. Вызов функции расчета для i-го блока из списка BO : CalcBlock(BOi, CalcID).
3. Конец цикла.
Алгоритм процедуры расчета блока CalcBlock(B, CalcID).
1. Если входной номер такта вычисления равен сохраненному, значит, на данном шаге блок уже обрабатывался (это возможно при организации обратной связи): Если CalcID = = ID, то выход.
2. Сохраняем номер текущего такта для блока: ID = CalcID.
3. Цикл по i от 1 до m (количества входов блока B).
3.1. Если i-й вход не имеет связи, переходим к следующей итерации цикла.
3.2. Рекурсивный вызов функции расчета блока O, связанного с i-м входом: CalcBlock(O, CalcID).
4. Конец цикла.
5. Расчет векторной функции f, зависящей от типа блока.
6. Конец процедуры.
В результате выполнения данного алгоритма рекурсивно вычисляются все блоки, которые влияют на выходные. Порядок вызова проиллюстрирован на рисунке 2 на простом примере. Если для некоторого блока функция расчета вызывается повторно, этот блок заново не вычисляется. Если в схеме присутствуют циклы, например для организации обратной связи, то в качестве значения на выходе блока, которое используется для обратной связи, берется значение, вычисленное на предыдущем такте. Расчет схемы системы управления выполняется циклически в процессе работы системы управления тренажера. Если некоторые блоки схемы не влияют на выходные, их расчет не производится. Такой подход позволяет уменьшить вычислительные издержки и повысить эффективность работы системы управления при использовании структурных схем, обладающих избыточностью.
![](phpThumb/phpThumb.php?w=300&src=//uploaded/image/2014-4-dop/2014_4_dop1/3.jpg)
Примеры использования функциональных схем
Рассмотрим использование механизма функциональных схем на примере моделирования системы управления антропоморфного робота. Антропоморфные робототехнические системы (АРТС) имеют строение, близкое к человеческому. Важное преимущество таких систем в том, что они позволяют наиболее эффективно решать задачи, изначально ориентированные на человека, в частности, выполнение операций с рабочими инструментами, адаптированными под человеческую руку. Например, такие АРТС могут успешно использоваться в космической отрасли для внекорабельной деятельности.
Первый способ управления АРТС состоит в использовании виртуальных пультов [5, 6]. Виртуальный пульт представляет собой схематическое изображение робота, на котором задано расположение осей вращения его двигателей (рис. 3). Пользователь с помощью клика на соответствующих элементах может выбрать один или несколько шарниров, после чего с помощью перемещения виртуального джойстика управлять движением робота в данных суставах. Функциональная схема для реализации ручного режима организует вычисление и передачу управляющих воздействий на соответствующие двигатели.
Гораздо более удобным и надежным режимом управления является копирующий. В этом случае управление роботом выполняет человек с помощью специального костюма – экзоскелета. Встроенные в экзоскелет датчики определяют углы поворота головы, торса, рук и ног оператора (если робот моделирует только верхнюю часть человека, то используется неполный экзоскелет, который определяет ориентацию торса, головы и рук). Заданное оператором движение должно быть отработано (скопировано) роботом. При моделировании робота в виртуальной среде для системы управления тренажера необходимо полностью сымитировать поведение виртуальной модели, аналогичное реальному роботу, что требует построения схемы автоматического пропорционально-интегрально-дифференциального (ПИД) регулирования. В схеме управляющий сигнал на исполнительное устройство формируется как взвешенная сумма пропорциональной, интегральной и дифференциальной составляющих с некоторыми коэффициентами. Рассмотрим функциональную схему реализации копирующего режима для одного из двигателей (рис. 4).
Значения текущего угла поворота двигателя передаются в систему управления из подсистемы моделирования динамики. Новое значение угла поворота, которого должен достичь двигатель, поступает от экзоскелета через отдельный подключаемый модуль. Значение рассогласования вычисляется с помощью блоков умножения на константу (–1) и сумматора. Далее рассогласование подается на входы блоков дифференциатора и интегратора. Значения с выходов этих блоков умножаются на коэффициенты дифференциального Кд и интегрального Ки регулирования соответственно и суммируются со значением пропорционального регулирования, получаемым умножением величины рассогласования на коэффициент пропорционального регулирования Кп. Результирующее значение Uдвиг интерпретируется как напряжение и передается в систему моделирования динамики на вход двигателя.
Представленная схема аналогична для всех двигателей антропоморфного робота; значения коэффициентов пропорционального Кп, дифференциального Кд и интегрального Ки регулирования либо задаются исходя из параметров реальных регуляторов, если они доступны, либо подбираются экспериментально. Построенная функциональная схема была успешно апробирована для реализации копирующего режима управления антропоморфным роботом SAR-401 в Центре подготовки космонавтов им. Ю.А. Гагарина [7, 8].
В заключение отметим, что в статье рассмотрен разработанный в НИИИСИ РАН програм- мный пакет для систем управления имитационно-тренажерных комплексов. Пакет включает в себя визуальный редактор, обладающий широкими функциональными возможностями по созданию и редактированию функциональных блок-схем, а также модуль расчета в режиме реального времени. Модуль расчета реализован в виде динамической библиотеки, которая может быть подключена к любому программному комплексу. Разработанная технология позволяет расширять функциональные возможности за счет подключения дополнительных программных модулей (плагинов), которые могут включать реализацию как специальных вычислительных блоков, так и блоков для обмена данными, например с внешними пультами, контроллерами и другим промышленным оборудованием.
Система была успешно апробирована для построения имитационно-тренажерного комплекса подготовки космонавтов [9].
Предложенная система может быть успешно использована для моделирования систем ручного и автоматического управления сложными динамическими системами, в том числе робототехническими, для построения систем управления тренажерных и обучающих систем, а также для моделирования АСУ технологическими процессами. Преимуществами системы являются простота ее использования, нетребовательность к ресурсам и расширяемость.
Литература
1. Simulink. URL: http://matlab.ru/products/simulink (дата обращения: 27.05.2014).
2. Scicos: Block diagram modeler/simulator. URL: http://www.scicos.org (дата обращения: 27.05.2014).
3. CATIA Systems Engineering – Dymola. URL: http://www.3ds.com/products-services/catia/capabilities/systems-engineering/modelica-systems-simulation/dymola (дата обращения: 27.05.2014).
4. LabVIEW System Design Software. URL: http://www.ni. com/labview/ (дата обращения: 27.05.2014).
5. Михайлюк М.В., Хураськин И.А. Технология взаимодействия человека с виртуальными пультами управления // Информационно-измерительные и управляющие системы. 2009. № 6. С. 77–82.
6. Михайлюк М.В. Двумерные виртуальные пульты управления в тренажерных комплексах // Программная инженерия. 2014. № 5. С. 20–25.
7. Михайлюк М.В., Сохин И.Г., Торгашев М.А., Бур- дин Б.В. Исследование возможности использования андроидов в космосе с помощью технологий виртуальной реальности // Пилотируемые полеты в космос: матер. 10-й Междунар. науч.-практич. конф. Звездный городок, 2013. С. 29–31.
8. Бурдин Б.В., Михайлюк М.В., Сохин И.Г., Торга- шев М.А. Использование виртуальных 3D-моделей для экспериментальной отработки бортовых полетных операций, выполняемых с помощью антропоморфных роботов // Робототехника и техническая кибернетика. 2013. № 1. С. 42–46.
9. Михайлюк М.В., Торгашев М.А. Система визуализации "GLView" для имитационно-тренажерных комплексов подготовки космонавтов // Пилотируемые полеты в космос. 2013. № 4 (9). С. 60–72.
References
1. Simulink. Available at: http://matlab.ru/products/simulink (accessed May 27, 2014).
2. Scicos: Block diagram modeler/simulator. Available at: http://www.scicos.org (accessed May 27, 2014).
3. CATIA Systems Engineering – Dymola. Available at: http://www.3ds.com/products-services/catia/capabilities/sys-tems-engineering/modelica-systems-simulation/dymola (accessed May 27, 2014).
4. LabVIEW System Design Software. Available at: http://www.ni.com/labview/ (accessed May 27, 2014) .
5. Mikhaylyuk M.V., Khuraskin I.A. Human and virtual control panel interaction technology. Informatsionno-izmeritelnye i upravlyayushchie sistemy [Information-measuring and Control Systems]. 2009, no. 6, pp. 77–82 (in Russ.).
6. Mikhaylyuk M.V. 2D Virtual control panels in simulators. Programmnaya inzheneriya [Software Engineering].
2014, no. 5, pp. 20–25 (in Russ.).
7. Mikhaylyuk M.V., Sokhin I.G., Torgashev M.A., Burdin B.V. The research of the possibility of using androids in the
Space applying virtual reality technologies. Materialy 10 Mezhdunar. nauchno-praktich. konf. “Pilotiruemye polety v
kosmos” [Proc. 10th Int. Science and Practice Conf Space Manned Missions]. Zvezdny gorodok, 2013, pp. 29–31 (in Russ.).
8. Burdin B.V., Mikhaylyuk M.V., Sokhin I.G. Torgashev M.A. Using of virtual 3D models for testing on-board flight
operations using androids. Robototekhnika i tekhnicheskaya kibernetika [Robotics and Technical Cybernetics]. 2013, no. 1,
pp. 42–46 (in Russ.).
9. Mikhaylyuk M.V., Torgashev M.A. “GLView” visualization system for astronaut training simulation complexes.
Pilotiruemye polety v kosmos [Space Manned Missions]. 2013, no. 4 (9), pp. 60–72 (in Russ.).