Рязанский государственный университет имени С. А. Есенина
Студент
Романчук В. А., кандидат технических наук, доцент кафедры информатики и вычислительной техники, Рязанский государственный университет имени С. А. Есенина
УДК 004.383.8.032.26
Введение
Задача управления динамическим объектом предполагает наличие 2-х режимов оперативного и неоперативного, обусловленных жесткими требованиями обработки большого количества информации в высоком темпе. По существу ни одна из современных управляющих вычислительных машин не может обеспечить обработку информации, поступающей с датчиков объекта управления в заданном темпе, поэтому приходится распараллеливать вычислительные операции в подключаемых дополнительных специализированных вычислительных устройствах (СВУ). Такое разделение функций позволяет обеспечить нестационарный режим без нарушения темпа основного вычислительного процесса. В реальном масштабе времени должны решаться две основные задачи: вычисление управляющего воздействия и интегрирование системы дифференциальных уравнений. Сведение системы дифференциальных уравнений к системе алгебраических уравнений в векторно-матричной форме удобно для ее реализации средствами цифровой вычислительной техники в СВУ, в процессорном блоке которого должны выполнятся операции «умножения с накоплением» одновременно над несколькими операндами.
Поэтому для реализации математического, алгоритмического и программного обеспечения предлагается использовать специализированную аппаратную базу: нейропроцессорные устройства на базе процессоров особого класса, 6-го поколения, широко используемые в задачах обработки информации. Выбор нейропроцессорных устройств предопределен рядом преимуществ использования, таких как скорость параллельной обработки, наличие операции "сложение с накоплением", высокая энергоэффективность [2]. В качестве примера было выбрано семейство процессоров NeuroMatrix 640x, нейропроцессоры которого выпускаются научно-техническим центром "Модуль" (Россия, г.Москва) [3].В реальном масштабе времени должны решаться две основные задачи: вычисление управляющего воздействия и интегрирование системы дифференциальных уравнений. Сведение системы дифференциальных уравнений к системе алгебраических уравнений в векторно-матричной форме удобно для ее реализации средствами цифровой вычислительной техники (ЦВТ) в СВУ, где должны выполняться операции «умножения с накоплением» одновременно над несколькими операндами.
Также в процессе управления переменные состояния могут принимать значения в широком динамическом диапазоне их изменения, поэтому обеспечить качество системы одним набором коэффициентов обратной связи не удается. Весь динамический диапазон разбивается на поддиапазоны. Нахождение переменной или всего вектора в некоторой зоне фазового пространства определят режим работы системы.
Процессор DSP (Digital Signal Processor) обладая мощной вычислительной структурой, позволяет реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом.
Ниже изложены принципы математического и алгоритмического обеспечения построения СВУ, реализующего идентификатор состояния системы управления гексаподом (HEX), позволяющего путем восстановления неизмеряемых координат вектора состояния и внешней нагрузки, повысить точность наведения оси верхней платформы.
Рассмотрим принцип действия СВУ. СВУ функционирует на основе информации [4]:
Рис.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)
СВУ состоит из следующих основных функциональных блоков: устройства задания траектории цели, вычислителей управляющего воздействия по азимуту и углу места.
Вычислитель управляющего воздействия каждой оси наведения выполняет следующие функции:
Согласно Рис. 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 отладки выглядит следующим образом:
Отладчик предоставляет стандартные средства для отладки пользовательских программ.
С помощью отладчика пользователь может:
Отладчик работает с файлами формата 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, разрабатываемых НТЦ "Модуль". Таким образом, поставленная цель работы была достигнута.
Рецензии:
5.07.2015, 22:37 Каменев Александр Юрьевич
Рецензия: Статья актуальна, имеет теоретическую и практическую ценность. Следует только четко выделить заключительную часть (Выводы), после чего рекомендуется к печати.