Способ автоматизации калибровки датчиков бесплатформенной инерциальной системы роботизированного беспилотного летательного аппарата
METHOD FOR AUTOMATION OF SENSOR CALIBRATION OF STRAPDOWN INERTIAL SYSTEM OF UNMANNED AERIAL VEHICLE

Область техники
Предлагаемое изобретение относится к способам калибровки инерциальных датчиков и к инерциальным измерительным устройствам. В частности, изобретение относится к способам автоматической калибровки бесплатформенных инерциальных навигационных систем (БИНС), в состав которых входят акселерометры и гироскопы.
Уровень техники
Точность работы БИНС, используемой в роботизированных беспилотных летательных аппаратах (РБЛА), зависит от точностных характеристик и качества выполнения калибровки ее датчиков: акселерометров и гироскопов. Это вызвано тем, что в малогабаритных РБЛА используются датчики на основе технологии микроэлектромеханических систем (МЭМС), недостатком которых является наличие систематических и случайных погрешностей. Для устранения этого недостатка производят калибровку датчиков, целью которой является определение их систематических погрешностей, которые затем учитываются в алгоритмах бортового вычислителя БИНС.
Калибровка выполняется на специальных наклонно-поворотных (калибровочных) стендах, которые ориентируется относительно плоскостей горизонта и меридиана, вращаются и разворачиваются на постоянные углы. При этом ориентацию стенда, измерение угловых скоростей вращения и углов ориентации БИНС осуществляют с высокой точностью. Измеренные систематические погрешности датчиков, называемые калибровочными коэффициентами, после окончания калибровки записываются в бортовой вычислитель БИНС для компенсации систематических погрешностей.
Существенными недостатками известных способов калибровки датчиков БИНС являются низкая технологичность, высокая трудоемкость и длительность процедуры калибровки. При этом в процессе калибровки могут вноситься ошибки, вызванные человеческим фактором.
В результате анализ уровня техники установлено, что существует изобретательская (неочевидная) задача, заключающаяся в разработке способа автоматизации калибровки датчиков БИНС РБЛА. Такой способ за счет автоматизации процедуры калибровки позволит существенно повысить ее производительность, а также исключить систематические ошибки, вызванные человеческим фактором.
Характеристика аналогов технического решения
Известен способ калибровки датчиков угловой скорости бесплатформенного инерциального измерительного модуля (БИИМ) [см. описание изобретения к патенту РФ №2447404 C2 от 16.06.2010, МПК G01C 21/00, опубл. 10.04.2012, бюл. №10]. Способ заключается в том, что эталонное значение вектора угловой скорости при вращении БИИМ вокруг приблизительно горизонтальной оси определяют по показаниям датчиков линейного ускорения (ДЛУ), проводят идентификацию математических моделей датчиков угловой скорости (ДУС), при этом определяют нулевые сигналы ДУС, матрицу, описывающую масштабные коэффициенты, перекрестные связи, ориентацию осей чувствительности ДУС в БИИМ, матрицу, описывающую влияние линейного ускорения на показания ДУС, а затем учитывают идентифицированные коэффициенты в алгоритмах работы БИИМ, при этом не накладывают ограничений на число и расположение калибруемых ДУС в составе БИИМ.
Также известен способ и устройство калибровки инерциальных измерительных модулей (ИИМ) [см. описание изобретения к патенту РФ №2602736 C1 от 03.08.2015, МПК G01P 21/00, опубл. 20.11.2016, бюл. №32]. В указанном способе калибровки ИИМ, включающем установку ИИМ на платформу устройства для калибровки таким образом, чтобы обеспечить задание угловой скорости двигателем вокруг трех приблизительно ортогональных осей ИИМ, выполняют вращение ИИМ вокруг приблизительно горизонтальной оси с переменными угловыми скоростями и идентификацию составляющих математических моделей ДУС, в частности погрешности масштабного коэффициента, постоянной составляющей скорости дрейфа и коэффициентов g-чувствительности, при этом вращения вокруг трех ортогональных осей системы координат, связанной с ИИМ, осуществляют путем однократного закрепления ИИМ на платформе устройства, а оценка составляющих как моделей ошибок для ДУС, так и для моделей ошибок акселерометров, включающих погрешности масштабного коэффициента и нулевые сигналы, осуществляют на основе вычисления невязок оценок углов разворота осей чувствительности ИИМ по показаниям ДУС и акселерометров в результате единого цикла калибровочных движений, при этом на платформу дополнительно размещают интерфейс беспроводной передачи данных.
Недостатком этих способов является отсутствие явных указаний на автоматизацию процесса калибровки, что может привести к значительному увеличению временных затрат на калибровку ДУС и акселерометров, прежде чем будут получены приемлемые результаты. При этом в процессе калибровки могут вноситься ошибки, вызванные человеческим фактором.
Известен способ калибровки преобразователей (Calibration of transducers) [см. описание изобретения к патенту GB 25404630 A от 18.01.2017, кл. G01G 23/01; G01D 18/00]. Он заключается в установке датчика измерения нагрузки на летательном аппарате (самолете), в котором нагрузки должны измеряться с использованием калиброванного датчика, при этом удаленная база данных опрашивается с использованием дополнительного кода для извлечения данных калибровки, которые передаются в блок управления, после чего осуществляется управление набором преобразователей, причем каждый набор преобразователей калибруется, с последующей записью данных калибровки в базу данных.
Недостатком этого способа является его ограниченные функциональные возможности, вследствие чего он не может быть применен к РБЛА.
Устранение недостатков приведенных способов калибровки возможно за счет построения распределенной информационной системы, обеспечивающей автоматизацию процесса калибровки. В связи с этим проведен патентный поиск в смежных областях техники для выявления известных технических решений, у которых имеются признаки, совпадающие с признаками заявляемого изобретения.
Известна система коммуникации (система для графического веб-общения в реальном времени с использованием HTML 5 WebSockets), работающая в режиме реального времени с помощью протокола HTML 5 WebSockets [см. патент US2015/0341472 A1 от 26.11.2015, кл. H04L 29/06; H04L 12/58; H04L 29/08]. Способ, реализованный в данной системе позволяет нескольким пользователям взаимодействовать в веб-среде, отслеживая и отображая в реальном времени сообщения друг друга, местоположение, состояние, графику и другие жесты общения.
К недостаткам данной системы можно отнести то, что она нацелена в первую очередь на работу пользователей между собой и не может быть использована без существенной переработки для решения специфических задач, связанных с калибровкой датчиков БИНС.
Известна система и способ автоматической шунтовой калибровки датчика [см. патент US 2014 / 245808 A1 от 04.09.2014], а которой узел датчика может включать в себя мост Уитстона с одним или несколькими чувствительными элементами, усилитель, подключенный к мосту Уитстона для обеспечения выходного сигнала датчика, резистор и переключатель для подключения резистора между датчиком и регулируемым выходом источника питания для индукции смещение выходного сигнала датчика. В некоторых случаях контроллер может выполнять процедуру автоматической калибровки шунта, активируя переключатель для подключения резистора между датчиком и регулируемым выходом источника питания, чтобы вызвать смещение в выходном сигнале датчика. Контроллер может считывать выходное значение и сравнивать выходное значение с заранее определенным значением. Контроллер может регулировать выходную мощность источника питания до значения, которое перемещает выходное значение датчика к предварительно определенному значению. Контроллер может повторить считывание.
Недостатком данной системы является ее узкая функциональная ограниченность, поскольку используется для автоматической калибровки тензометрических датчиков.
В смежных областях техники также известны система и способ для интеграции микросервисов [см. патент US 2017/0160880 A1 от 08.06.2017, кл. G06F 3/0482; G06F 3/04842; G06F 17/30554; G06F 17/30867]. Данный способ предусматривает отображение графической среды и определяет предлагаемый следующий микросервис в соответствии с данными об использовании. По меньшей мере, один из микросервисов может получить доступ к аппаратному датчику, который генерирует данные измерений, по меньшей мере, для одного микросервиса.
К недостаткам данной системы и способа можно отнести ограниченные функциональные возможности, поскольку работа системы с датчиками ведется только в режиме чтения информации, вследствие чего отсутствует возможность записи калибровочной информации в вычислитель БИНС. Кроме того, отсутствует какая-либо информация о возможности хранения калибровочных данных в базе данных системы.
Характеристика выбранного прототипа
Наиболее близким к заявленному изобретению по своей технической сущности и достигаемому результату является универсальная система тестирования устройств [см. описание изобретения к патенту World Intellectual Property Organization WO 2017/053961 Al от 26.09.2016, опубл. 30.03.2017]. Способ, реализующий систему, предназначен для независимого тестирования нескольких разнородных или подобных устройств. Тестируемые устройства (DUT) могут включать в себя телевизионные приставки, беспроводные маршрутизаторы и модем/устройства eMTA. Система включает в себя в режиме реального времени, двунаправленную/асинхронную связь и взаимодействие между компонентами системы. Кроме того, в системе присутствует панель оператора (пользовательский интерфейс), используемая для организации непосредственно процесса тестирования. В системе так же присутствует исполнитель/процессор тестирования ядра для тестирования множества устройств, одновременно использующих контейнеры виртуализации для взаимодействия через интерфейсы соответствующих тестируемых устройств. Описанная система тестирования предоставляет отдельный набор контейнеров виртуализации для каждого из поднаборов тестируемых устройств, который может выполнять тесты WiFiLayer 2 и WiFiLayer 3 таким образом, чтобы минимизировать или избежать помех беспроводной связи.
Данная система принята за прототип для заявляемого изобретения.
Достоинство данной системы состоит в том, что она позволяет автоматизировать процедуру проверки множества разнородных или подобных устройств тестирования, обеспечивая оператора пользовательским интерфейсом, с помощью которого он управляет тестированием множества этих устройств одновременно, но асинхронно и независимо друг от друга, используя универсальный тестер (средство тестирования). При этом система позволяет тестировать интерфейсы следующих типов устройств: телевизионных приставок, беспроводных маршрутизаторов, кабельных модемов абонентского оборудования (eMTA).
Вместе с тем данная система, являющаяся наиболее близким аналогом (прототипом), обладает следующими недостатками. Система не позволяет тестировать датчики БИНС (акселерометры и гироскопы) и вычислять матрицы калибровочных коэффициентов и матрицы полиномов температурной компенсации с последующей записью их в вычислитель БИНС. В системе тестирования не предусмотрена возможность ее применения в защищенном контуре локальной вычислительной сети. Применение в системе контейнеров виртуализации для взаимодействия с тестируемыми устройствами усложняет их настройку, снижает стабильность работы средств тестирования. Кроме того, в системе отсутствует возможность широковещательной отправки сообщений Web Sockets, что приводит к невозможности одновременной калибровки датчиков нескольких БИНС.
Следовательно, изобретение-прототип имеет ограниченные функциональные возможности, не позволяя реализовывать специальные задачи, возникающих при калибровке акселерометров и гироскопов БИНС в РБЛА.
Задача и технический результат изобретения
Задача изобретения - расширение функциональных возможностей распределенной информационной системы путем реализации процедуры автоматизированной калибровки датчиков БИНС, обеспечения возможности адаптации к расширению количества одновременно калибруемых устройств (БИНС), обеспечения защищенного удаленного доступа к информационным ресурсам в защищенном сегменте локальной сети.
Технический результат изобретения заключается:
- в повышении производительности процедуры калибровки датчиков БИНС (акселерометров и гироскопов) за счет обеспечения ее автоматизации и расширения количества одновременно калибруемых устройств (БИНС);
- в повышении защиты от несанкционированного доступа к информационным ресурсам в защищенном сегменте локальной сети между веб-контроллером и приложениями-сервисами за счет применения технологии усиленной аутентификации.
в способ
введена совокупность отличительных признаков
Указанный технический результат достигается тем, что автоматизации калибровки датчиков бесплатформенной инерциальной системы роботизированного беспилотного летательного аппарата (РБЛА), заключающийся в том, что бесплатформенную инерциальную систему (БИНС), содержащую акселерометры и гироскопы (датчики БИНС), размещают и закрепляют на калибровочном столе с температурной камерой, датчики БИНС и калибровочный стол подключают к находящимся в сегменте локальной сети рабочим станциям, на которых запускают приложения-сервисы для взаимодействия с оборудованием (датчиками БИНС и калибровочным столом), для обмена данными между приложениями-сервисами и автоматическим рабочим местом (АРМ) оператора используют веб-контроллер, с помощью которого выполняют обработку HTTP-запросов и обработку/отправку сообщений WebSockets, при этом двустороннюю и асинхронную связь в реальном времени между пользовательским интерфейсом и приложениями-сервисами обеспечивают множеством сообщений WebSockets, полученные в процессе калибровки исходные (необработанные) данные и журналы процедуры калибровки записывают в базу данных, , с помощью которых взаимодействие датчиков БИНС и калибровочного стола с приложениями-сервисами, размещенными на рабочих станциях, осуществляют по протоколу RS-232/RS-485; в веб-контроллере на основании данных, полученных от датчиков БИНС и хранящихся в базе данных, производят расчет матриц калибровки акселерометров и гироскопов, а также матриц полиномов температурной компенсации, рассчитанные матрицы записывают в базу данных и вычислитель БИНС, при этом для обеспечения защищенного удаленного доступа к информационным ресурсам в защищенном сегменте локальной сети выполняют процедуру аутентификации токена, генерируемого веб-контроллером, затем сохраняют токен на локальной станции сервиса, дополнительно осуществляют с помощью веб-контроллера процедуру верификации токена для проверки валидности сохраненного токена на локальной станции сервиса, используют токен для аутентификации сервиса без повторного ввода учетных данных пользователя, от имени которого ведется информационный обмен по протоколу WebSockets.
В предлагаемом способе для обеспечения возможности его адаптации к расширению количества одновременно калибруемых устройств (БИНС), осуществляют широковещательную отправку сообщений WebSockets, для этого используют брокеры сообщений, формируемые модулем поддержки трансляций WebSockets.
Достижение технического результата обеспечивается путем применения новых действий (операций):
- по обмену данными в распределенной информационной системе между приложениями-сервисами и устройствами (датчиками БИНС и калибровочным столом), в том числе в широковещательном режиме с помощью брокеров сообщений;
- по расчету и записи в базу данных и вычислитель БИНС матриц калибровки акселерометров и гироскопов, матриц полиномов температурной компенсации;
- по выполнению технологии усиленной аутентификации с помощью криптографического токена, генерируемого веб-контроллером.
Таким образом, введение совокупности новых существенных признаков является неочевидным изобретательским решением, имеющим технический характер.
Проведенный анализ технических решений позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют в известных носителях информации, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной области техники, а также в смежных областях, с целью выявления признаков, совпадающих с отличительными от прототипа признаками, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Раскрытие изобретения
Сущность изобретения и отличительные (от прототипа) признаки
отличающийся тем
Способ автоматизации калибровки датчиков бесплатформенной инерциальной системы роботизированного беспилотного летательного аппарата (РБЛА), заключающийся в том, что бесплатформенную инерциальную систему (БИНС), содержащую акселерометры и гироскопы (датчики БИНС), размещают и закрепляют на калибровочном столе с температурной камерой, датчики БИНС и калибровочный стол подключают к находящимся в сегменте локальной сети рабочим станциям, на которых запускают приложения-сервисы для взаимодействия с оборудованием (датчиками БИНС и калибровочным столом), для обмена данными между приложениями-сервисами и автоматическим рабочим местом (АРМ) оператора используют веб-контроллер, с помощью которого выполняют обработку HTTP-запросов и обработку/отправку сообщений WebSockets, при этом двустороннюю и асинхронную связь в реальном времени между пользовательским интерфейсом и приложениями-сервисами обеспечивают множеством сообщений WebSockets, полученные в процессе калибровки исходные (необработанные) данные и журналы процедуры калибровки записывают в базу данных, , что взаимодействие датчиков БИНС и калибровочного стола с приложениями-сервисами, размещенными на рабочих станциях, осуществляют по протоколу RS-232/RS-485; в веб-контроллере на основании данных, полученных от датчиков БИНС и хранящихся в базе данных, производят расчет матриц калибровки акселерометров и гироскопов, а также матриц полиномов температурной компенсации, рассчитанные матрицы записывают в базу данных и вычислитель БИНС, при этом для обеспечения защищенного удаленного доступа к информационным ресурсам в защищенном сегменте локальной сети выполняют процедуру аутентификации токена, генерируемого веб-контроллером, затем сохраняют токен на локальной станции сервиса, дополнительно осуществляют с помощью веб-контроллера процедуру верификации токена для проверки валидности сохраненного токена на локальной станции сервиса, используют токен для аутентификации сервиса без повторного ввода учетных данных пользователя, от имени которого ведется информационный обмен по протоколу WebSockets.
отличающийся тем
Предлагаемый способ, , что для обеспечения возможности его адаптации к расширению количества одновременно калибруемых устройств (БИНС), осуществляют широковещательную отправку сообщений WebSockets, для этого используют брокеры сообщений, формируемые модулем поддержки трансляций WebSockets.
Сравнительный анализ заявляемого изобретения с ближайшим аналогом (прототипом) показывает, что в предлагаемом изобретении существенными отличительными признаками являются наличие новых действий (операций), а также новые логические связи между новыми (введенными) действиями (операциями) и известными действиями, относящимися к ограничительным признакам.
Данные существенные отличительные признаки приводят к появлению у заявляемого изобретения новых свойств, позволяющих обеспечить автоматизацию процедуры калибровки датчиков, проводимой одновременно с несколькими БИНС, на основе распределенной информационной системы, построенной на базе защищенной локальной сети.
Краткое описание чертежей
Предполагаемое изобретение поясняется чертежами, изображенными на фигурах 1 - 15.
На фиг.1 представлена типовая структурная схема распределенной информационной системы, на базе которой реализуется способ автоматизированной калибровки датчиков БИНС РБЛА. Данная распределенная информационная система состоит из следующих основных блоков:
1 - база данных;
2 - подсистема обработки сообщений протокола WebSockets;
3 - подсистема обработки пользовательских HTTP запросов и запросов к REST API;
4 - брокер сообщений для поддержки широковещательной отправки данных с помощью протокола WebSockets;
5 - Web-сервер системы;
6 - Web-браузер оператора на рабочей станции оператора;
7 - сервис системы для взаимодействия с БИНС;
8 - сервис системы для взаимодействия с поворотно-наклонным испытательным стендом (калибровочным столом);
9 - бесплатформенная инерциальная навигационная система РБЛА;
10 - калибровочный стол (поворотно-наклонный испытательный стенд).
На фиг.2 показана модель «сущность-связь» предметной области в информационной базе данных распределенной информационной системы.
На фиг.3 приведен обобщенный алгоритм обработки запроса веб-контроллером.
На фиг.4 и 5 приведены алгоритмы работы сервиса распределенной информационной системы в режимах аутентификации и верификации токена соответственно.
На фиг.6 приведена блок-схема процедуры автоматизированной калибровки датчиков БИНС.
На фиг.7 приведена экранная форма стартовой страницы веб-контроллера.
На фиг.8 приведена экранная форма страницы со списком испытаний до начала контрольного испытания.
На фиг.9 приведена экранная форма страницы переключения стенда в режим управления угловым положением.
На фиг.10 приведена экранная форма страницы перевода стенда в режим управления угловой скоростью.
На фиг.11 приведена экранная форма страницы с результатами калибровки акселерометров.
На фиг.12 приведена экранная форма страницы с элементами калибровочной матрицы акселерометра.
На фиг.13 приведена экранная форма страницы с результатами калибровки гироскопов.
На фиг.14 приведена экранная форма страницы с элементами калибровочной матрицы гироскопов.
На фиг.15 приведена экранная форма страницы со списком испытаний после завершения контрольного испытания.
Описание реализации способа
Система на основе способа включает два компонента: кроссплатформенное веб-приложение для взаимодействия с пользователем и базой данных (БД) системы (далее веб-контроллер), а также приложение-сервис для взаимодействия с оборудованием (далее сервис). Структурная схема системы изображена на фигуре 1.
Система содержит БИНС 9 и калибровочный стол (одноосевой поворотный испытательный стенд Acutronic AC1120Si) 10, подключенные посредством протокола RS-232/RS-435 к рабочим станциям, находящимся в защищенном сегменте локальной сети, на которых запущены экземпляры приложения сервиса системы 7 и 8 соответственно, основной задачей которых является взаимодействие с оборудованием. Каждое из приложений сервиса взаимодействует с сервером, также находящимся в защищенном сегменте сети, на котором установлен веб-контроллер системы, посредством протокола TCP. Веб-сервер 5, через который ведется обмен информацией между сервисами системы 7 и 8, а также автоматическим рабочим местом (АРМ) оператора системы, выполняет диспетчеризацию запросов для веб-приложения 8, которое состоит из двух независимых подсистем: обработки HTTP-запросов 3 и обработки/отправки сообщений WebSockets 2. Для широковещательной отправки сообщений WebSockets подсистема 2 взаимодействует с модулем поддержки модуля трансляций WebSockets 4, использующим брокер сообщений. Каждая из подсистем осуществляет чтение и запись из/в БД PostgreSQL системы 1.
Входными данными системы являются:
a
, a
, a
x
y
z
- величина проекций ускорения свободного падения на оси чувствительности акселерометров ;
ω
, ω
, ω
x
y
z
- величина проекций вектора угловой скорости на оси чувствительности гироскопов (датчиков угловой скорости) ;
t
, t
, t
,
t
, t
, t
ax
ay
az
gx
gy
gz
- значение температуры акселерометров  значение температуры гироскопов (датчиков угловой скорости) ;
- углы ориентации датчиков БИНС относительно калибровочного стенда.
Выходными данными являются матрицы калибровочных коэффициентов для акселерометров и гироскопов, а также матриц полиномов температурной компенсации, которые хранятся в базе данных системы и в случае необходимости могут быть записаны в энергонезависимую память БИНС.
Программа веб-контроллера располагается в образе контейнера Docker. Процесс запуска состоит в создании соответствующего контейнера из образа с последующим запуском веб-контроллера в этом контейнере вместе с запуском системы управления базами данных (СУБД) и брокера сообщений в отдельных контейнерах.
При проектировании информационной базы данных программы были выделены сущности предметной области и построены отношения как между этими сущностями. На фигуре 2 показана модель «сущность-связь» указанных объектов.
Основной сущностью, отвечающей за разделение прав пользователей, является «Пользователь» (User), который принадлежит некоторой группе полномочий, описываемой сущностью «Группа» (Group). Основными атрибутами сущности User являются:
- id - идентификатор пользователя в системе;
- username - имя пользователя;
- password - SHA-хэш пароля пользователя;
- last_login - дата и время последнего входа пользователя в программу;
- is_active - признак того, что от имени пользователя может быть осуществлен вход в систему;
- first_name - имя пользователя;
- second_name - второе имя или отчество пользователя;
- last_name - фамилия пользователя;
- is_staff - признак того, что пользователю доступны полномочия входа в административную панель;
- date_joined - дата создания пользователя;
- is_superuser - признак того, что пользователь обладает правами суперпользователя;
- groups - группы полномочий, которым принадлежит пользователь;
- user_permission - индивидуальные полномочия, доступные для пользователя;
- organization - организация, в которой работает пользователь;
- department - отдел, в котором работает пользователь;
- position - должность, в которой работает пользователь.
Каждая сущность User связана отношением «многие-к-одному» с сущностью «Организация», имеющей следующие атрибуты:
- id - идентификатор организации в системе;
- name - полное наименование организации;
- short_name - краткое наименование организации.
Поскольку пользователь User помимо организации работает также в отделе, то каждая сущность User связана отношением «многие-к-одному» с сущностью «Отдел» (Department), имеющей следующие атрибуты:
- id - идентификатор отдела в системе;
- name - наименование отдела.
Также пользователь User находится на некоторой должности. Это выражается отношением «многие-к-одному» между сущностями User и «Должность» (Position). Сущность Position имеет следующие атрибуты:
- id - идентификатор должности;
- name - наименование должности.
Дополнительная сущность «Токен» (Token) предназначена для выполнения авторизации сервисом при этом связана с сущностью User отношением «один-к-одному» и имеет атрибуты:
- id - идентификатор токена в системе;
- key - непосредственно сам токен пользователя;
- user - пользователь, для которого сгенерирован токен;
- created - дата и время создания токена.
Алгоритм калибровки, предусматривает множество шагов с необходимостью фиксации результатов выполнения каждого шага. Каждый прогон алгоритма калибровки рассматривается в виде отдельной сущности «Испытание» (Experiment), связанные с которой сущности хранят результаты измерений, а также матрицы калибровок датчиков и матрицы температурных коэффициентов. Сущность Experiment содержит следующие атрибуты:
- id - идентификатор испытания в системе;
- started - дата и время начала испытания (прогона алгоритма);
- finished - дата и время завершения испытания (прогона алгоритма);
- user - пользователь, осуществляющий прогон алгоритма;
- state - состояние, в котором находится соответствующее испытание.
В рамках одного прогона алгоритма (испытания) производится несколько замеров показаний датчиков. За хранения значений измерений отвечает сущность «Измерение» (Measurement), которая связана отношением «многие-к-одному» с сущностью Experiment. Атрибуты сущности Measurement соответствуют входным данным алгоритма калибровки:
- id - идентификатор измерения в системе;
- experiment - испытание, для которого выполняется измерение;
- temperature - температура термокамеры;
- faceplate_angle - угол поворота планшайбы стенда (принимает значение NULL, если не предусмотрено режимом работы стенда, в котором производится измерение);
- angular_velocity - угловая скорость стенда (принимает значение NULL, если не предусмотрено режимом работы стенда, в котором производится измерение);
- a_x, a_y, a_z - величина проекций ускорения свободного падения на оси чувствительности акселерометров;
- omega_x, omega_y, omega_z - величина проекций вектора угловой скорости на оси чувствительности гироскопов;
- t_ax, t_ay, t_ax - значение температуры акселерометров;
- t_gx, t_gy, t_gz - значение температуры гироскопов.
Матрицы калибровки вычисляются для различных значений температуры и датчиков. Для хранения результатов вычисления матриц калибровок используется сущность «Матрица калибровок» (CalibrationMatrix), которая связана отношением «многие-к-одному» с сущностью Experiment. Сущность матрицы калибровки имеет следующие атрибуты:
- id - идентификатор матрицы калибровки в системе;
- experiment - испытание, для которого была определена матрица калибровки;
- temperature - температура термокамеры;
- sensor - датчик, для которого определена матрица калибровки;
- rows, columns - количество строк и колонок матрицы корректировки (для алгоритма калибровки, эти значения равны 4 и 3 соответственно);
- items - элементы матрицы калибровки в виде массива.
Матрица температурных коэффициентов формируется из матриц калибровки, полученных для различных значений температуры. Для хранения результатов вычисления матрицы температурных коэффициентов используется сущность «Матрица температурных коэффициентов» (TemperatureMatrix), которая связана отношением «многие-к-одному» с сущностью Experiment. Сущность матрицы температурных коэффициентов имеет следующие атрибуты:
- id - идентификатор матрицы температурных коэффициентов в системе;
- experiment - испытание, для которого была определена матрица температурных коэффициентов;
- rows, columns - количество строк и колонок матрицы температурных коэффициентов (для алгоритма калибровки, эти значения равны 12 и 4 соответственно);
- items элементы матрицы температурных коэффициентов в виде массива.
Для взаимодействия с устройствами по протоколу WebSockets используется сущность «Устройство» (Device). Атрибутами сущности Device являются:
- id - идентификатор устройства в системе;
- name - наименование устройства в системе;
- created - дата и время создания записи об устройстве;
- settings -настройки устройства в формате JSON.
Журналирование изменения состояний устройств производится с помощью сущности «Журнал устройства» (DeviceLog). Атрибутами сущности DeviceLog являются:
- id - идентификатор записи журнала в системе;
- user - пользователь, от имени которого ведется взаимодействие с устройством;
- device - устройство, для которого ведется журналирование;
- type - тип записи в журнале;
- time - дата и время записи в журнале;
- info - дополнительная информация, хранимая в журнале.
Фиксация сообщений, передаваемых от устройства к веб-контроллеру, производится при помощи сущности «Сообщение» (Notification). Атрибутами сущности Notification являются:
- id - идентификатор сообщения в системе;
- from -- устройство, от которого передается сообщение;
- to - устройство, которому передается сообщение;
- user - пользователь, от имени которого ведется передача сообщения;
- experiment - испытание, в рамках которого ведется передача сообщения;
- time - дата и время передачи сообщения;
- data - данные сообщения в формате JSON.
Сущности Group, Permission и ContentType являются служебными, поэтому описание атрибутов для них не приводится.
Блок-схема алгоритма обработки запроса показана на фигуре 3. При запуске происходит считывание конфигурационных файлов веб-сервера и файла веб-приложения, в котором находятся настройки веб-контроллера. Затем осуществляется инициализация веб-контроллера в соответствии с заданными настройками. После чего начинается главный цикл приложения.
После обработки сервером приложений запрос пользователя диспетчерируется роутером, где определяется какой контроллер веб-приложения, работающего с использованием концепции MVC (Model-View-Controller) должен быть применен для данного запроса. Решение принимается на основе списка правил, состоящих из регулярного выражения и названия контроллера веб-приложения.
В каждом запросе веб-контроллера осуществляется обращение к базе данных. Полученные данные могут быть подставлены в шаблон и отправлены после рендеринга пользователю в виде HTML-страницы.
Для безопасного взаимодействия между веб-контроллером и сервисом необходимо выполнить авторизацию сервиса, чтобы в дальнейшем сервис мог осуществлять взаимодействие с веб-контроллером от имени некоторого пользователя, присутствующего в базе данных системы. Однако учетные данные пользователя, от имени которого должен вестись информационный обмен, должны находиться на рабочей станции, на которой установлен сервис. Поэтому с целью предотвращения хранение пароля пользователя вне базы данных системы используется авторизация с помощью токена.
Для получения и работы с токеном веб-контроллер предоставляет специализированный REST API.
При работе в этом режиме сервис изначально читает конфигурационный файл, в котором прописаны настройки подключения к серверу, на котором установлен веб-контроллер. Далее осуществляется ввод с клавиатуры имени пользователя, существующего в базе данных, и пароля. Необходимо, чтобы интересующий пользователь обладал необходимыми полномочиями для управления устройствами, с которыми будет взаимодействовать сервис. Блок-схема алгоритма работы системы в режиме верификации показана на фигуре 4. Далее заполняется структура со сведениями об имени пользователя и его пароле для формирования REST-запроса. Выполняется маршалинг данных в формат JSON, после чего выполняется REST-запрос к конечной точке /api/v1/login/.
На стороне веб-контроллера выполняется десериализация данных REST-запроса, выделяется имя пользователя и пароль. После чего выполняется поиск пользователя с полученным именем в базе данных.
Если пользователь не найден, то формируется сообщение об ошибке и отправляется сервису в качестве ответа. В противном случае предпринимается попытка аутентификации найденного пользователя с использованием пароля, полученного в REST-запросе. Если пользователь не аутентифицирован (пароль не верен), то формируется сообщение об ошибке и отправляется сервису в качестве ответа. В противном случае для данного пользователя выполняется поиск токена в базе данных. Если токен найден, то формируется ответ с найденным токеном, выполняется сериализация ответа в формат JSON и он отправляется сервису. В противном случае, для данного пользователя выполняется генерация токена и его запись в базу данных, после чего формируется ответ со сгенерированным токеном, выполняется сериализация ответа в формат JSON и он отправляется сервису.
На стороне сервиса выполняется чтение и демаршалинг полученных данных из формата JSON. Так же анализируется код статуса HTTP-ответа. Если код статуса равен 200, иными словами, REST-запрос выполнен успешно и токен либо найден, либо сформирован, то формируется структура, содержащая введенное с клавиатуры имя пользователя и полученный из запроса токен. После чего выполняется маршалинг этой структуры в формат JSON и последующая запись строки в формате JSON в файл credentials.json. В противном случае, если код статуса HTTP-ответа не равен 200, что говорит о том, что в процессе выполнения REST-запроса возникли ошибки, выводится переданное сообщение об ошибке и файл credentials.json не формируется.
При работе с сервисом в других режимах вводить учетные данные пользователя не нужно, поскольку необходимые учетные данные пользователя будут взяты из файла credentials.json.
При работе в режиме верификации токена сервис изначально читает конфигурационный файл config.yml, в котором прописаны настройки подключения к серверу, на котором установлен веб-контроллер. После чего читается файл credentials.json, в котором уже записаны имя пользователя и его токен.
Далее заполняется структура со сведениями об имени пользователя и его токене для формирования REST-запроса. Выполняется маршалинг данных в формат JSON, после чего выполняется REST-запрос к конечной точке /api/v1/verify/. Блок-схема алгоритма работы системы в режиме верификации токена показана на фигуре 5.
На стороне веб-контроллера выполняется десериализация данных REST-запроса, выделяется имя пользователя и токен. После чего выполняется поиск пользователя с полученным именем в базе данных. Если пользователь не найден, то формируется сообщение об ошибке и отправляется сервису в качестве ответа. В противном случае выполняется поиск токена в базе данных для найденного пользователя. Если токен не найден, то формируется сообщение об ошибке и отправляется сервису в качестве ответа. В противном случае выполняется сравнение найденного и переданного токенов и результат этого сравнения передается сервису в виде в качестве ответа после сериализации в формат JSON.
На стороне сервиса выполняется чтение и демаршалинг полученных данных из формата JSON. Так же анализируется код статуса HTTP-ответа. Если код статуса равен 200, иными словами, REST-запрос выполнен успешно и токен найден, то выводится результат сравнения токенов. В противном случае выводится сообщение об ошибке.
Описание реализации способа с примерами конкретного выполнения
Блок-схема (алгоритм) процедуры автоматизированной калибровки датчиков БИНС на примере использования калибровочного стола в виде одноосевого стенда серии AC1120Si (фирмы ACUTRONIC) представлена на фиг.6. Работа блок-схемы описывается следующим образом:
1) Осуществляется проверка в ручном режиме начальных установок стенда, а именно:
- при помощи уровня, с точностью не ниже 0.05 мм на 1 м., проверяется вертикальная плоскость вращающейся планшайбы стенда;
- проверяется надежность крепления приспособления для позиционирования ИИМ к планшайбе стенда.
2) Создается запись об эксперименте и записывается в базу данных.
3) Осуществляется проверка подключения требуемых устройств, таких как калибровочный стол (испытательный стенд) и датчики БИНС.
4) Согласно списку значений цикла температуры Т (-30, -10, 20, 40, 80), устанавливается значение температуры в термокамере равной Т градусов Цельсия.
5) Формируется сообщение для переключения калибровочного стола (стенда) в режим управления угловым положением, выполняется сериализация этого сообщения в формат JSON и после этого данные передаются сервису по протоколу WebSockets.
6) На стороне сервиса выполняется демаршалинг переданного сообщения из формата JSON и, затем, формируется команда переключения стенда в режим управления угловым положением стенда и передается посредством записи в последовательный порт.
7) Считывается состояние стенда и выполняется маршалинг его состояния в формат JSON и, затем, с помощью протокола WebSockets, осуществляется передача данного состояния на веб-контроллер.
8) На веб-контроллере выполняется десериализация полученного сообщения из формата JSON и проверяется заданное состояние стенда. Если стенд находится не в заданном состоянии, то на веб-интерфейс выводится сообщение об ошибке и удаляется созданная запись из базы данных.
9) В противном случае начинается цикл, в котором изменяется угол поворота планшайбы А от 45 до 315 градусов.
10) Осуществляется запись в БД для заданного угла поворота А градусов.
11) Формируется сообщение для поворота планшайбы стенда в положение А градусов, выполняется сериализация сообщения в формат JSON и после этого данные передаются сервису по протоколу WebSockets.
12) На стороне сервиса выполняется демаршалинг сообщения из формата JSON, формируется команда для поворота планшайбы стенда на угол 45 градусов дуги и передается команда стенду посредством записи в последовательный порт.
13) Формируется команда 9dof_main_raw_request_cmd_s для запроса «сырых» данных датчиков БИНС и их передача посредством записи в последовательный порт.
14) Считываются «сырые» данные датчиков БИНС из последовательного порта и формируются сообщения с полученными данными акселерометров и гиросокопов ИИМ БИНС.
15) Выполняется маршалинг сообщения в формат JSON, с помощью протокола WebSockets осуществляется передача данного сообщения на веб-контроллер.
16) На стороне веб-контроллера выполняется десериализация сообщения из формата JSON, данные датчиков записываются в БД и выводятся на веб-интерфейс.
17) Увеличивается угол поворота А на 45 градусов и осуществляется переход к следующей итерации цикла (пункт 9).
18) Формируется сообщение для переключения стенда в режим управления угловой скоростью, выполняется сериализация этого сообщения в формат JSON и после этого данные передаются сервису по протоколу WebSockets.
19) На стороне сервиса выполняется демаршалинг переданного сообщения из формата JSON и, затем, формируется команда переключения стенда в режим управления угловой скоростью стенда и передается посредством записи в последовательный порт.
20) Считывается состояние стенда и выполняется маршалинг его состояния в формат JSON и, затем, с помощью протокола WebSockets осуществляется передача данного состояния на веб-контроллер.
21) На стороне веб-контроллера выполняется десериализация полученного сообщения из формата JSON и проверяется заданное состояние стенда. Если стенд находится не в заданном состоянии, то на веб-интерфейс выводится сообщение об ошибке и удаляется созданная запись из базы данных.
22) В противном случае начинается цикл, в котором меняется угловая скорость V согласно заданным значениям из списка (50, -50, 100, -100, 200, -200, 300, -300).
23) Осуществляется запись в БД для заданного значения угловой скорости V градусов в секунду.
24) Формируется сообщение для установки угловой скорости V градусов в секунду, выполняется сериализация сообщения в формат JSON и после этого данные передаются сервису по протоколу WebSockets.
25) На стороне сервиса выполняется демаршалинг сообщения из формата JSON, формируется команда установки угловой скорости равной V градусам в секунду и передается команда стенду посредством записи в последовательный порт.
26) Формируется команда 9dof_main_raw_request_cmd_s для запроса «сырых» данных датчиков БИС и их передача посредством записи в последовательный порт.
27) Считываются «сырые» данные датчиков БИНС из последовательного порта и формируются сообщения с полученными данными акселерометров и гироскопов БИНС.
28) Выполняется маршалинг сообщения в формат JSON и, с помощью протокола WebSockets, осуществляется передача данного сообщения на веб-контроллер.
29) На стороне веб-контроллера выполняется десериализации сообщения из формата JSON, данные датчиков записываются в БД и выводятся на веб-интерфейс.
30) Выбрать следующее значение угловой скорости V из списка и перейти к следующей итерации цикла (пункт 22).
31) Из БД выбираются компоненты a_x, a_y, a_z проекции вектора ускорения свободного падения и формируется двумерный массив NumPyAm, каждая строка которого имеет вид a_x, a_y, a_z, 1.
32) Выполняется вычисление матрицы калибровочных коэффициентов Ka согласно формуле (1), при этом эталонная матрица As задается при запуске программы
K
A
A
A
A
a
m
m
m
s
T
–1
T
=(). (1)
33) Осуществляется запись калибровочной матрицы Ka в БД для данного значения температуры T.
34) Из БД выбираются компоненты o_x, o_y, o_z проекции вектора угловой скорости и формируется двумерный массив NumPyOm, каждая строка которого имеет вид o_x, o_y, o_z, 1.
35) Выполняется вычисление матрицы калибровочных коэффициентов согласно формуле (2), при этом эталонная матрица Os задается при запуске программы
K
=
O
O
O
O
o
m
m
m
s
T
–1
T
(). (2)
36) Осуществляется запись калибровочной матрицы Ko в БД для данного значения температуры T.
37) Выбрать новое значение Т из списка и перейти к следующей итерации цикла (пункт 4).
38) Получение матрицы Ka для всех значений температуры T. Инициализировать массив Kp нулевыми значениями для хранения коэффициентов полиномов.
39) Начать цикл, в котором построчно выбираются элементы матриц Ka для различных значений температуры Т.
40) Выбор значений элементов матриц Ka и формирование вектора Va для различных температур T.
41) Вычисление коэффициентов полинома и добавление коэффициентов в конец массива Kp.
42) Выбрать следующий элемент матриц Ka и перейти к следующей итерации цикла (пункт 39).
43) Получение матрицы Ko для всех значений температуры T.
44) Начать цикл, в котором построчно выбираются элементы матриц Ko для различных значений температуры Т.
45) Выбор значений элементов матриц Ko и формирование вектора Vo для различных температур T.
46) Вычисление коэффициентов полинома и добавление коэффициентов в конец массива Kp.
47) Выбрать следующий элемент матриц Ko и перейти к следующей итерации цикла (пункт 44).
48) Запись матрицы Kp в БД и вывод сообщения о завершении на веб-интерфейс.
Для калибровки датчиков необходимо на рабочей машине пользователя открыть приложение веб-браузера и в адресной строке ввести строку URL веб-контроллера, далее отобразится начальная страница, показанная на фиг.7.
После чего, если пользователь присутствует в БД необходимо выполнить вход в программу путем нажатия кнопки «Вход», в результате будет выполнен переход на страницу для ввода учетных данных. Если пользователь отсутствует в системе ему необходимо нажать на кнопку «Регистрация» в результате чего будет открыта страница, в которую необходимо ввести регистрационные данные пользователя.
В случае успешного входа в систему, как и в случае успешной регистрации будет отображен список проведенных пользователем испытаний, как это показано на фиг.8.
Для начала испытания необходимо нажать кнопку «Начать испытание» в результате чего будет отображена страница о переводе стенда Acutronic AC1120Si в режим управления угловым положением (фиг.9), после чего необходимо нажать кнопку «Запустить этап калибровки».
После завершения получения показаний датчиков БИНС автоматически будет отображена страница о переводе стенда Acutronic AC1120Si в режим управления угловой скоростью (фиг.10), на которой также необходимо нажать кнопку «Запустить этап калибровки». В результате снова будет запущен процесс получения показаний датчиков БИНС.
В процессе работы программы, в случае необходимости, страницы перевода стенда Acutronic AC1120Si в различные режимы работы могут повторно отображаться до тех пор, пока не будут получены все необходимые показания датчиков.
После проведения всех необходимых измерений будет выведена страница с результатами калибровки акселерометров для различных положений стенда (фиг.11), нажав на кнопку «Далее» также будет показана матрица калибровочных коэффициентов для акселерометра (фиг.12).
Для отображения страницы с результатами калибровки ДУС необходимо также нажать кнопку «Далее». В результате будет выведена страница с результатами калибровки ДУС при различных положениях стенда (фиг.13).
После чего необходимо нажать кнопку «Далее» и в результате чего будут отображены элементы калибровочной матрицы ДУС (фиг.14). Для завершения испытания необходимо нажать кнопку «Завершить», в результате чего калибровочные матрицы будут записаны в базу данных и будет осуществлен переход к странице со списком испытаний (фиг.15). После чего можно начать новое испытание.
Технический эффект
Сравнительный анализ способа прототипа (ближайшего аналога) и заявляемого способа показал следующее. В заявляемом способе имеются новые существенные признаки, представляющие собой совокупность новых действий (операций). Наличие в заявляемом способе этих новых существенных признаков, введенных неочевидным образом путем нового технического решения, позволяет достичь задачи изобретения, а именно: расширение функциональных возможностей распределенной информационной системы.
Действительно, совокупность новых действий (операций), обеспечивающих обмен данными в распределенной информационной системе между приложениями-сервисами и устройствами (датчиками БИНС и калибровочным столом), в том числе в широковещательном режиме с помощью брокеров сообщений, а также выполняющих расчет и запись в базу данных и вычислитель БИНС матриц калибровки акселерометров и гироскопов, матриц полиномов температурной компенсации, позволяет реализовать процедуру автоматизированной калибровки датчиков БИНС, обеспечить возможность расширения количества одновременно калибруемых устройств (БИНС).
Автоматизация процедуры калибровки датчиков БИНС, в свою очередь, приводит к такому техническому эффекту, как повышает производительность процедуры калибровки. Наибольшее возрастание производительности будет осуществляться в случае одновременной калибровки нескольких БИНС. При этом оператору остаются только действия (операции), связанные с размещением и закреплением на поворотно-наклонном испытательном стенде (калибровочном столе) датчиков БИНС, а также с запуском и управлением процедуры калибровки с автоматизированного рабочего места. Тогда как сам алгоритм калибровки, предусматривающий множество рутинных шагов с необходимостью фиксации результатов выполнения каждого шага, выполняется автоматически.
Кроме того, совокупность новых действий (операций), обеспечивающих выполнение технологии усиленной аутентификации с помощью криптографического токена, генерируемого веб-контроллером, позволяет повысить уровень защиты от несанкционированного доступа к информационным ресурсам в защищенном сегменте локальной сети между веб-контроллером и приложениями-сервисами.
Достижение такого технического эффекта, как повышение защиты от несанкционированного доступа к информационным ресурсам, осуществляется за счет следующего. Во-первых, не каждый сервис, взаимодействующий с оборудованием, получит доступ к web-контроллеру и получит взаимодействие с ним. Во-вторых, данная технология защитит систему от несанкционированных действий оператора, в том случае, когда он захочет имитировать информационный обмен между сервисом оборудования и веб-контроллером.
Таким образом, заявляемый способ автоматизации калибровки датчиков БИНС РБЛА повышает производительность процедуры калибровки датчиков БИНС за счет обеспечения ее автоматизации и расширения количества одновременно калибруемых устройств (БИНС) и повышает защиту от несанкционированного доступа к информационным ресурсам в защищенном сегменте локальной сети между веб-контроллером и приложениями-сервисами за счет применения технологии усиленной аутентификации. Кроме того, применение данного способа на практике позволит исключить или снизить систематические ошибки и несанкционированные действия, вызванные человеческим фактором, в ходе процедуры калибровки и тем, самым повысить ее качество и эффективность.