Публикация научных статей.
Вход на сайт
E-mail:
Пароль:
Запомнить
Регистрация/
Забыли пароль?
Международный научно-исследовательский журнал публикации ВАК
Научные направления
Поделиться:
Статья опубликована в №22 (июнь) 2015
Разделы: Информационные технологии
Размещена 30.06.2015. Последняя правка: 23.07.2015.

Разработка алгоритмических и программных средств вычислительного устройства управления динамическими объектами в реальном масштабе времени на примере гексапода

Пономарев Никита Иванович

Рязанский государственный университет имени С. А. Есенина

Студент

Романчук В. А., кандидат технических наук, доцент кафедры информатики и вычислительной техники, Рязанский государственный университет имени С. А. Есенина


Аннотация:
Описана математическая модель управления динамическими объектами гексапода, на основе которой предложен алгоритм и программные средства, предназначенные для реализации на специальном вычислительном устройстве на базе нейропроцессора. Описаны инструментальные средства разработки программных средств.


Abstract:
The described mathematical model of dynamic objects control of the hexapod on the basis of which the algorithm and software intended for implementation on a special computing device based on the neuroprocessor. Described development tools software tools.


Ключевые слова:
вычислительные устройства; процессор цифровых сигналов; гексапод; нейроассемблер

Keywords:
computing devices; DSP; hexapod; neuroassembler


УДК 004.383.8.032.26

Введение

Задача управления динамическим объектом предполагает наличие 2-х режимов оперативного и неоперативного, обусловленных жесткими требованиями обработки большого количества информации в высоком темпе. По существу ни одна из современных управляющих вычислительных машин не может обеспечить обработку информации, поступающей с датчиков объекта управления в заданном темпе, поэтому приходится распараллеливать вычислительные операции в подключаемых дополнительных специализированных вычислительных устройствах (СВУ). Такое разделение функций позволяет обеспечить нестационарный режим без нарушения темпа основного вычислительного процесса. В реальном масштабе времени должны решаться две основные задачи: вычисление управляющего воздействия и интегрирование системы дифференциальных уравнений. Сведение системы дифференциальных уравнений к системе алгебраических уравнений в векторно-матричной форме удобно для ее реализации средствами цифровой вычислительной техники в СВУ, в процессорном блоке которого должны выполнятся операции «умножения с накоплением» одновременно над несколькими операндами.

Поэтому для реализации математического, алгоритмического и программного обеспечения предлагается использовать специализированную аппаратную базу: нейропроцессорные устройства на базе процессоров особого класса, 6-го поколения, широко используемые в задачах обработки информации. Выбор нейропроцессорных устройств предопределен рядом преимуществ использования, таких как скорость параллельной обработки, наличие операции "сложение с накоплением", высокая энергоэффективность [2]. В качестве примера было выбрано семейство процессоров NeuroMatrix 640x, нейропроцессоры которого выпускаются научно-техническим центром "Модуль" (Россия, г.Москва) [3].

Актуальность работы
В настоящее время при работе с динамическими объектами существует проблема быстродействия, из-за чего практически невозможна реализация режима реального времени с высокой частотой расчетов. Поэтому в качестве аппаратной базы впервые предлагается использовать нейропроцессор - процессор нового, 6-го поколения, работающий по принципам головного мозга человека. Однако, возникает проблема отсутствия эффективного алгоритмического и программного обеспечения для автоматического управления гексаподом в режимах, приближенным к реальному времени, в связи с чем была сформулирована цель работы.
Цель работы: разработка алгоритмического и программного обеспечения специализированного вычислительного устройства на базе нейропроцессоров для автоматического управления модулями электромеханических систем на примере гексапода в режиме, приближенном к реальному времени.

Главной отличительной чертой управляющей вычислительной системы (УВС) для управления динамическим объектом является наличие двух режимов: оперативного и неоперативного, обусловленных жесткими требованиями обработки большого количества информации в высоком темпе. Для обеспечения обработки информации на центральной вычислительной машине (ЦВМ), поступающей с датчиков объекта управления (ОУ) в заданном темпе, приходится распараллеливать вычислительные операции в подключаемых дополнительных специализированных вычислительных устройствах (СВУ). Такое разделение функций позволяет обеспечить нестационарный режим без нарушения темпа основного вычислительного процесса.

В реальном масштабе времени должны решаться две основные задачи: вычисление управляющего воздействия и интегрирование системы дифференциальных уравнений. Сведение системы дифференциальных уравнений к системе алгебраических уравнений в векторно-матричной форме удобно для ее реализации средствами цифровой вычислительной техники (ЦВТ) в СВУ, где должны выполняться операции «умножения с накоплением» одновременно над несколькими операндами.

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

Процессор DSP (Digital Signal Processor) обладая мощной вычислительной структурой, позволяет реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом.

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

Рассмотрим принцип действия СВУ. СВУ функционирует на основе информации [4]:

  1. об измеряемой части вектора состояния HEX, которая снимается с датчиков;
  2. о параметрах HEX;
  3. о законе движения HEX в виде вектора программы.

Рис.1 Cистема управления HEX.

Рис. 2 Структура СВУ.

Приняты следующие обозначения:
— рабочие матрицы, полученные из матриц параметров HEX и матриц параметров корректирующих фильтров;

P’, P — матрицы параметров корректирующих связей (6x100);

α*(t) — вектор-функция программы (18x1);

Y(t) — вектор-функция наблюдения (сигналы, поступающие от измерительной системы) (30x1);

X(t), X*(t) — вектор-функция текущего и программного состояния системы на i-м шаге управления (100x1); 

X(t+h), X*(t+h) — то же на (i +1)-м шаге (100x1);

U(t) и U(t + h) — вектор  управляющих воздействий на i-м и  (i + 1)-м шагах управления (30x1);

h — шаг интегрирования (0.02) ;

Q — значение отклонения фокальной оси HEX от линии визирования объекта(3x1);

С*, R*, R — постоянные матрицы размерностью (3x3, 3x100, 3x100)

Из алгоритма управления HEX следует, что основной процедурой в СВУ является процедура умножения матрицы на вектор:

(1)

Одна компонента вектора результата получается суммированием произведения элементов строки матрицы на соответствующие элементы вектора — столбца. Эта последовательность операции повторяется столько раз, сколько строк в матрице. Для вычисления произведения матрицы на вектор необходимо выполнять

                                                                                                  (2)

операций умножения,

где m  — число строк матрицы;

      n — число столбцов;

и Nсмв операций сложения, определяемых по формуле

                                         (3)

операций сложения, или около 3000 пар операций умножение — сложение.

Исходя из заданного значения минимальной частоты расчета управляющих воздействия, максимально допустимое время выполнения одной пары операций умножение — сложение Tпо:

                                                                                             (4)

СВУ состоит из следующих основных функциональных блоков: устройства задания траектории цели, вычислителей управляющего воздействия по азимуту и углу места.

Вычислитель управляющего воздействия каждой оси наведения выполняет следующие функции:

  • принимает от задающего устройства информацию о параметрах HEX и три компоненты вектора программы (угол, скорость, ускорение);
  • принимает от устройства ввода информацию об измеряемой части вектора состояния от датчиков HEX;
  • рассчитывает управляющее воздействие, обеспечивающее схождение наблюдателя к реальному объекту РТ;
  • рассчитывает значения оценок не измеряемых компонент вектора состояния;

Согласно Рис. 1 цифровая система управления обеспечивает восстановление неизмеряемой части вектора состояния и формирование сигнала обратной связи по полному вектору состояния. Уравнения такого регулятора имеют следующий вид

                                           (5)

 

где  F, G — матрицы параметров наблюдающего устройства;

z(t) — вектор восстановленных переменных состояния;

 y(t) — вектор измерений;

 K1, K2 — коэффициенты обратной связи по состоянию.

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

Уравнения регулятора в векторно-разностной форме записываются в виде:

                                                  (6)

где Φ(h) — переходная матрица, характеризующая собственное движение;

S(h) — матрица, определяющая вынужденное движение наблюдающего устройства;

h — период квантования по времени (шаг интегрирования).

Матрицы Φ(h) и S(h) непосредственно зависят от величины шага интегрирования и определяются выражениями:

                                          (7)

Согласно уравнениям (8) все вычисления в СВУ могут быть сведены к следующим операциям над массивами данных:

    (8)

                                    (9)

где  b, W — скаляр и вектор, поступающие из базовой ЦВМ;

 — скаляр и вектор, полученные на предыдущих операциях и хранящиеся в СВУ;

 — результаты текущей операции;

 n — размерность векторов.

Так, например, умножение матрицы на вектор сводится к последовательности операций (8), где W  представляет собой столбец матрицы множимого, b — компоненту вектора множителя. Частный случай умножения диагональной матрицы на вектор сводится к выполнению операций вида (9) при .

Для вычисления уравнений (8) в соответствии с операциями (8), (9) в СВУ в каждом такте из памяти извлекаются коэффициенты матриц Φ(h), S(h), упорядоченные по столбцам, а также матрицы-строки K1, K2 и с внешней шины данных выдается вектор измерений y(t). Также в СВУ хранятся значения вектора z(t), которые в процессе вычислений заменяются текущими результатами операций.

Рассмотрим блок-схему алгоритма разработанного алгоритма специального вычислительного устройства для управления гексаподом.


Рис. 3 Блок-схема алгоритма

В первом блоке вычисляется вектор-функция текущего состояние системы состоящая (Xth) из сумм произведений рабочих матриц полученных из матриц параметров гексапода и матриц параметров корректирующих фильтров в результате расчета (F, S, G), вектор-функций наблюдений(Y(t)), вектор-функций текущего и программного состояния системы (X(t)), и скалярного управляющего воздействия (U(t)). Во втором блоке вычисляется вектор-функция программного состояния системы (X’th) состоящая из сумм произведений рабочих матриц полученных из матриц параметров гексапода и матриц параметров корректирующих фильтров в результате расчета (F, S), вектор-функций  текущего и программного состояния системы (Q(t), Z(t)), и вектор-функция программы (a(t)). Третий блок отвечает за расчёт матрицы для  скалярного управляющего воздействия (U), состоящего из суммы произведений матриц параметров корректирующих связей (P, L) и вектор-функций текущего и программного состояния системы (X’th, Xth). Последний блок отвечает за расчёт матрицы значений отклонений фокальной оси HEX от линии визирования объекта (O) состоящую из произведения постоянной матрицы (С) и вспомогательной матрицы (О3) которая состоит из суммы вспомогательных матриц (O1, O2) равных произведению постоянных матриц (R’, R) и вектор-функций текущего состояние системы и программного состояние системы на i+1 шаге управления (X’th, Xth).

Как видно из блок-схемы алгоритма основной операцией является умножение с накоплением. Поскольку данная операция очень часто встречается в алгоритмах цифровой обработки сигналов и состоит всего из двух элементарных вычислений, разработчики нейропроцессоров выполнили ее аппаратную реализацию в виде специального регистра-накопителя и присвоили ей отдельный код в системе команд. Более того, поскольку иногда возникает необходимость производить несколько умножений с накоплением одновременно, например, для действительной и мнимой частей комплексного сигнала, в процессоре присутствует несколько таких регистров.

В НТЦ "Модуль" разработан собственный нейропроцессор, совмещающий в себе как универсальный вычислитель, так и СВУ, ориентированное на выполнение базовых матричных операций [7].

Рассмотрим более подробно нейропроцессор NM6406. Он состоит из двух основных блоков: скалярного, выполняющего роль универсального вычислительного устройства, и векторного, ориентированного на выполнение векторно-матричных операций. Скалярное устройство обеспечивает интерфейсы с памятью и 2 коммуникационными портами, позволяющими объединять процессоры в вычислительные сети различной конфигурации. Основное назначение скалярного устройства - подготовка данных для векторной части процессора. Для этого существует несколько режимов адресации, интерфейс с памятью, наборы арифметических и логических операций, возможность работы с регистровыми парами. Скалярное устройство имеет адресных регистров и такое же количество регистров общего назначения разрядностью 32 бита каждый.

Центральным звеном процессора является целочисленное векторное устройство, обладающее возможностями обработки данных различной разрядности. Оно оперирует 64-разрядными словами, которые могут быть разбиты на целочисленные составляющие практически произвольной разрядности в пределах от 2 до 64 бит. На каждую инструкцию векторного процессора затрачивается от 1 до 32 тактов. При этом одновременно обрабатывается до 32 64-разрядных слов. Для организации непрерывной подачи данных в операционное устройство (ОУ) векторного процессора используются внутренние блоки памяти, называемые векторными регистрами. Они выполняют роль буфера операндов и очереди результатов. При выполнении команды в операционном устройстве операнды по очереди извлекаются из внутреннего буфера и подаются на один из входов ОУ. Внутри ОУ производятся вычисления, а их результат заносится в буфер результатов. Векторные инструкции, хотя и занимают несколько тактов процессорного времени, могут выполняться параллельно с инструкциями скалярного процессора. Таким образом, процессор рассчитан на высокопроизводительную обработку больших массивов целочисленных данных [7].

Процессор выполнен по технологии 0,5 мкм. Его тактовая частота 320 МГц. Для процессора разработан полный пакет системного программного обеспечения, включая символьный отладчик, и ряд прикладных библиотек, в частности библиотеку векторно-матричных вычислений.

Данный нейпропроцессор как нельзя лучше подходит для выполнения алгоритма, так как требуется высокая скорость взаимодействия с внешними устройствами и математические операции будут только матричные. Так же ассемблер для нейропроцессора подходит для решения постановленной задачи для достижения цели получения требуемой производительности в задачах реального времени. Ниже мы рассмотрим инструменты для разработки программ на нейроассембелер и сам нейроассемблер.

 Основные элементы языка нейроассемблера:

  • константы;
  • метки;
  • переменные;
  • директивы языка;
  • псевдофункции;
  • макросы;

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

Файл, разрабатываемый на языке ассемблера, имеет определенную структуру, приведенную на Рис. 4:

Рис. 4 Структура ассемблерного файла.

Условно пространство ассемблерного файла можно разбить на подпространство секций и подпространство между секциями.

Секции в языке ассемблера бывают трех типов:

  • секции кода;
  • секции инициализированных данных;
  • секции неинициализированных данных.

В секции кода возможно помещать не только коды инструкций, но и строки объявления переменных. Если переменная инициализирована, то есть ей присвоено начальное значение, то оно располагается в секции по соответствующему адресу. Если переменная неинициализирована, то в секции выделяется место, которое заполняется нулевым значением.

Для отладки программ написанных на нейроассемблере используется  многоцелевой подключаемый отладчик. Отладчик построен по идеологии сменных отладочных целей - базовый модуль отладчика реализует отладочную функциональность через некоторый универсальный интерфейс процессора. Все особенности и свойства целевого процессора, так же как и детали сопряжения с ним, скрыты в отладочной цели - модуле, реализующем этот универсальный интерфейс. Замена одного модуля отладочной цели на другой позволяет менять среду отладки пользовательской программы.

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

Сам отладчик никаких целей не содержит, поэтому для его работы необходим хотя бы один внешний модуль с отладочной целью.

Отладчик в полной мере является ЛТ (Just In Time Debugging) отладчиком, так как позволяет подключаться к целям, на которых в момент подключения работает пользовательская программа.

Цикл Just In Time отладки выглядит следующим образом:

  1. При подсоединении к цели отладчик обнаруживает там активный пользовательский процесс,
  2. Выполнение процесса останавливается, цель подсоединяется, процесс переходит под управление отладчика,
  3. Далее следует обычная отладочная сессия: пользователь инспектирует внутреннее состояние процесса-программы и выполняет различные отладочные действия.
  4. Завершение отладочной сессии: пользовательский процесс выводится из-под контроля отладчика и запускается, одновременно отладчик отсоединяется от цели.

Отладчик предоставляет стандартные средства для отладки пользовательских программ.

С помощью отладчика пользователь может:

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

Отладчик работает с файлами формата ELF (Ехесutable and Linking Format) и с отладочной информацией в формате DWARF версии 2.0 (Debug With Arbitrary Record Format). Из-за того, что стандарт второй версии достаточно сильно переработан по сравнению с первой, отладочная информация DWARF версии 1.0 отладчиком не распознаётся. Исходя из возможностей языка нейроассемблера, и с использованием предоставленных инструментальных средств были разработаны программные средства управления гексаподом.
Результаты и выводы
Результатами работы являются: алгоритмическое и программное обеспечение СВУ для управления динамическими объектами в реальном масштабе времени на примере гексапода. Аппаратной базой СВУ является нейропроцессор NM6406, выпускаемый НТЦ "Модуль".
Показана возможность и эффективность применения нейропроцессора для решения задачи автоматического управления модулями электромеханических систем за счет повышения скорости параллельной обработки, наличия операции "сложение с накоплением" и высокой энергоэффективности.
Результаты исследования показали, что возможен режим работы нейропроцессорного устройства, близкий к режиму реального времени за счет векторного принципа обработки сигналов, включащей около 3000 операций сложения с умножением и достижения необходимой частоты получения результатов 100 Гц.
Заключение
В статье предложены алгоритмы и программное обеспечение специализированного вычислительного устройства на базе нейропроцессоров для автоматического управления модулями электромеханических систем на примере гексапода в режиме, приближенном к реальному времени  с использованием концептуально новой вычислительной техники - нейропроцессора NM6406 на базе инструментального модуля MC 51.03 и микрокомпьютера MB 77.07, разрабатываемых НТЦ "Модуль". Таким образом, поставленная цель работы была достигнута.

Библиографический список:

1. Галушкин, А.И. Нейрокомпьютеры: Кн.3. – М: ИПРЖР, 2000. – 524 с.
2. Горбань, А. Н. Нейроинформатика: кто мы, куда мы идем, как путь наш измерить // Вычислительные технологии. – 2000. – № 4. – С. 10-14.
3. Городецкий А. Е., Тарасова И. JI. Нечеткое математическое моделирование плохо формализуемых процессов и систем СПб.: Изд-во Политехи, ун-та, 2010. С. 100-150.
4. Городецкий А.Е., Козлов В. В., Артеменко Ю. Н., Тарасова И. Л. Вычисления в системах управления Учебное пособие СПб.: Изд-во Политехн. ун-та, 2006 С. 163-200.
5. Злобин В.К., Григоренко Д.В., Ручкин В.Н., Романчук В.А. Кластеризация и восстанавливаемость нейропроцессорных систем обработки данных // Известия тульского государственного университета. Технические науки. - Тула : Издательство ТулГУ, 2013. - Вып.9. - Ч.2. - С.125-135.
6. Комарцова, Л.Г., Максимов, А.В. Нейрокомпьютеры. – М.: Изд-во МГТУ им. Н.Э.Баумана, 2004. – 400 с.
7. Романчук В.А. Инновационный программный комплекс моделирования вычислительных систем на базе нейропроцессоров "НейроКС" // Современные научные исследования и инновации. – Декабрь, 2012 [Электронный ресурс]. – URL: http://web.snauka.ru/issues/2012/12/19407.
8. Романчук В.А. Моделирование нейропроцессорных систем // Отраслевые аспекты технических наук : научно-практический журнал. - Москва : ИНГН, 2013. - №10(34). - С.19-24.
9. Романчук В.А., Ручкин В.Н. Оценка результатов моделирования вычислительных систем на базе нейропроцессоров // Известия тульского государственного университета. Технические науки. - Тула : Издательство ТулГУ, 2013. - Вып.9-2 - С.194-203.
10. Романчук В.А., Ручкин В.Н. Разработка алгоритмов определения вида структуры нейропроцессорной системы на основе описания связей ее элементов // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.106–109.
11. Романчук В.А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.102–105.
12. Ручкин В.Н., Романчук В.А., Фулин В.А., Пролыгина А.А. Экспертная система нечеткой кластеризации нейропроцессорных систем // Известия тульского государственного университета. Технические науки. - Тула : Издательство ТулГУ, 2014. - Вып.6. - С.162-167.




Рецензии:

5.07.2015, 22:37 Каменев Александр Юрьевич
Рецензия: Статья актуальна, имеет теоретическую и практическую ценность. Следует только четко выделить заключительную часть (Выводы), после чего рекомендуется к печати.

23.07.2015 23:23 Ответ на рецензию автора Пономарев Никита Иванович:
Спасибо за отзыв и замечание. Была подправлена заключительная часть статьи, выделены выводы.



Комментарии пользователей:

Оставить комментарий


 
 

Вверх