Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
КОСИНОВ А.Н., Национальный исследовательский университет «Высшая школа экономики», Москва, ankosinov@edu.hse.ru
КРИВОРОТОВА П.А., Национальный исследовательский университет «Высшая школа экономики», Москва, pakrivorotova@edu.hse.ru
АБРАМЕШИН Д.А., Национальный исследовательский университет «Высшая школа экономики», Москва, dabrameshin@hse.ru
Разработка алгоритма ориентации макета малого космического аппарата по вектору магнитного поля при помощи магнитометра
В данной работе рассмотрен алгоритм стабилизации макета малого космического аппарата «Орбикрафт» по магнитометру. В ходе разработки были изучены методы калибровки датчиков магнитного поля, позволяющие минимизировать погрешности устройства и снятия данных. Данный алгоритм дорабатывается в целях работы со стендом полунатурного моделирования лаборатории функциональной безопасности космических аппаратов и систем
Введение
Малыми космическими аппаратами (МКА) принято называть небольшие по массе (от нескольких десятков грамм до 1 тонны) и сравнительно небольшие по размеру космические аппараты. Они приобрели большую популярность благодаря малой стоимости разработки, сборки и запуска [1]. Такая доступность делает возможной разработку малых спутников как для специализированных компаний, так и для всех желающих, в том числе для студентов инженерных ВУЗов. Одной из наиболее важных задач при создании МКА являются разработка алгоритмов ориентации и стабилизации спутника. Для их осуществления необходимо использовать качественное оборудование и хорошо откалиброванные датчики.
В данной работе описываются один из методов калибровки магнитометра и дальнейшее использование данного датчика в алгоритме ориентации МКА по магнитному полю.
Методики и алгоритмы разработаны в лаборатории функциональной безопасности малых космических аппаратов и систем в МИЭМ НИУ ВШЭ.
Тестирование производилось на макете малого космического аппарата Orbicraft с комплексом имитации космической среды Terra.
Описание оборудования
В качестве экспериментальной установки для разработки и отладки запрограммированных алгоритмов используется макет малого космического аппарата Orbicraft. Макет оснащен датчиками для систем ориентации и стабилизации. В набор датчиков входят:
- магнитометр;
- датчик угловой скорости (ДУС);
- солнечные датчики.
Также макет оснащен маховиком, который приводит его в движение вокруг вертикальной оси вращения.
Для работы с датчиками и маховиком используются библиотека libschsat.h, где предусмотрены функции включения, выключения и снятия показаний. Для разработки приведенных алгоритмов калибровки и ориентации была использована версия данной библиотеки для языка C.
Для работы с устройствами, расположенными на макете, используется центральный процессор (ЦП) на базе Raspberry Pi. ЦП и все датчики соединяются последовательно при помощи шлейфов.
Загрузка программы на ЦП производится через веб-интерфейс FTP-сервера в архиве, состоящем из набора сборочных файлов разработанной программы, которые компилируются на Raspberry Pi [2].
Для написания программы и запаковки ее в архив используется приложение Notepad++ с расширением для интерпретации языка программирования С [3].
В качестве одноосного имитатора магнитного поля Земли выступает токовая рамка, представляющая собой замкнутый соленоид (кольцо Гельмгольца). С ее помощью можно создавать магнитный поток заданной пользователями величины. Поток направляется сквозь вертикально установленную рабочую плоскость рамки [4].
Собранный макет подвешивается в рабочей плоскости рамки так, чтобы он имел возможность вращаться вокруг вертикальной оси.
Разработка метода калибровки магнитометра
Любой, даже очень качественный датчик, имеет различные погрешности, в частности производственные. Также большое значение имеет среда, где должен работать датчик, а значит он должен быть откалиброван под эту среду. В случае с магнитометром будут рассмотрены погрешности токовой рамки, выступающей в качестве имитатора магнитного поля Земли в космическом пространстве.
Калибровка магнитометра производится в условиях с известным вектором магнитного поля, создаваемым специальной токовой рамкой. Далее производится снятие показаний с датчика: магнитометр при этом устанавливается под заданными углами относительно зафиксированного вектора магнитного поля. Всего делается от 100 до 300 измерений: каждое измерение представляет собой три координаты вектора магнитного поля (по осям Ox, Oy и Oz).
На основе полученных показаний, а также параметров заданного вектора магнитного поля составляется математическая модель коррекции измерений [5]. Данная модель представляет собой калибровочную матрицу. Матрица сохраняется и впоследствии используется для реализации алгоритма ориентации МКА. Калибровочная матрица дает возможность устранить производственные погрешности магнитометра, а также неточности в его конструкции. Однако данный метод не помогает устранить погрешности со стороны окружения магнитометра (например, неточности имитации магнитного поля токовой рамкой). Устранение этой проблемы описывается в алгоритме ориентации и стабилизации МКА.
Алгоритм ориентации и стабилизации по магнитному полю и его программная реализация
Программа ориентации МКА должна выполнять следующие функции [6]:
- запускать магнитометр для снятия тестовых показаний;
- производить корректировку снятых показаний в соответствии с калибровочной матрицей;
- производить расчет угла отклонения спутника от необходимого положения относительно магнитного поля;
- производить расчет направления, угла поворота и скорости вращения спутника, а также корректировку результата после достижения требуемого положения.
Основой алгоритма ориентации по магнитному полю является совмещение целевого вектора магнитного поля с вектором реального поля (см. рис. 1).
Рисунок 1. Проекция вектора магнитного поля на плоскость XY
При снятии показаний магнитометра вычисляется вектор магнитного поля. Угол между проекцией данного вектора на плоскость и проекцией целевого вектора можно рассчитать программно:
if (LSS_OK = magnetometer_request_raw(mag_num, &magx_raw, &magy_raw, &magz_raw))
{
mag_calibrated(magx_raw,magy_raw,magz_raw, &magx_cal, &magy_cal, &magz_cal);
magy_cal = - magy_cal;
mag_alpha = atan2(magy_cal, magx_cal)/M_PI*180;
mag_alpha = angle_transformation(mag_alpha, alpha_goal);
printf ("magx_cal =%i magy_cal =%i magz_cal =%i", magx_cal, magy_cal, magz_cal);
printf ("mag_alpha atan2=%i ", mag_alpha);
}
Угол отклонения фактического вектора поля от целевого является основным параметром для функции изменения скорости вращения маховика. В случае работы с более точными системами имитации полета упомянутые выше значения должны вычисляться с соблюдением физических законов, однако в данной работе внешние случайные воздействия на макет столь велики, что расчет приращения скорости в зависимости от угла отклонения возможен лишь экспериментальным путем.
Новая скорость маховика рассчитывается по формуле 1, где kp и kd – коэффициенты приращения скорости в зависимости от угла отклонения, подобранные экспериментальным путем.
(1)
Ниже приведен код функции, осуществляющей изменение скорости маховика в зависимости от угла отклонения от заданного вектора магнитного поля:
int motor_new_speed_PD(int mtr_speed, int alpha, int16_t alpha_goal, int16_t omega, int16_t omega_goal){
int mtr_new_speed=0;
int kd = -200;
int kp = 100;
mtr_new_speed = mtr_speed + kp*(alpha-alpha_goal) + kd*(omega-omega_goal);
return mtr_new_speed;
}
Подобным образом определяется направление поворота, соответствующего кратчайшему пути. Для этого величина угла преобразуется и приращение скорости определяется либо как отрицательное (если вращение необходимо произвести по часовой стрелке), либо положительное (если вращение необходимо произвести против часовой стрелки) значение.
Весь алгоритм выполняется в бесконечном цикле. После запуска программы на ЦП конструктора аппарат должен совершить поворот при помощи маховика, чтобы ориентироваться по заданному направлению вектора магнитного поля и зафиксироваться в данном положении.
При попытке изменить положение макета вручную он должен вернуться в заданное положение автоматически.
Программа считается рабочей, если возможна ориентация из любого положения аппарата и если после выравнивания по полю макет стоит неподвижно на протяжении продолжительного времени (от 20 секунд и больше). Если работа программы не приводит к данному результату, то происходит ее редактирование и повторное тестирование. При необходимости производится перерасчет матрицы калибровочных коэффициентов.
Заключение
В статье приведен один из методов калибровки магнитометра, основанного на сравнении его тестовых показаний с реальным значением вектора магнитного поля. Данный метод позволяет довольно хорошо устранить производственную погрешность. Помимо механических погрешностей магнитометра он может иметь погрешности при изменении температуры окружающей среды. Однако в рамках работы с конструктором макета МКА, используемом в работе, нет возможности произвести температурную калибровку. При этом ее отсутствие мало влияет на результаты работы алгоритма ориентации макета МКА.
Разработанный и запрограммированный алгоритм ориентации макета МКА по магнитному полю показывает хорошее качество при работе с макетом. Этот алгоритм используется для решения задач дистанционного зондирования Земли в лаборатории функциональной безопасности космических аппаратов и систем МИЭМ НИУ ВШЭ. С дополнительными преобразованиями алгоритм может быть использован при разработке алгоритма ориентации реального космического аппарата.
- Овчинников М. Ю. Малые мира сего / М. Ю. Овчинников // Компьютерра. – 2007. №5. С. 37-43.
- Конструктор спутника «ОрбиКрафт» [Электронный ресурс]. – Режим доступа: http://www.orbicraft.sputnix.ru/doku.php?id=start – (Дата обращения 10.01.2019).
- Официальный сайт Notepad++ [Электронный ресурс]. – Режим доступа: https://notepad-plus-plus.org/ (Дата обращения 05.01.2019).
- Конструктор спутника «ОрбиКрафт» [Электронный ресурс]. – Режим доступа: http://www.orbicraft.sputnix.ru/doku.php?id=terra – Комплекс имитаторов космической среды «Терра». – (Дата обращения 10.01.2019).
- Акимов И. О. Методика калибровки магнитометра на этапе наземной диагностики систем космического аппарата / И. О. Акимов, С. Н. Илюхин, Н. А. Ивлев, Г. Е. Колосов // Инженерный журнал: наука и инновации. – 2018. №5. С. 77.
- Wertz J., Everett D., Puschell J. Space mission engineering: the new SMAD // Wertz J., Everett D., Puschell J. – Microcosm Press Vol. 28, 2011 – p. 142-147.
Ключевые слова: спутник, магнитометр, алгоритмизация, ориентация, магнитное поле, С++, тестирование, программирование.
Orientation algorithm development of the small space apparatus model on the vector of a magnetic field by means of a magnetometer
Kosinov A.N., National Research University Higher School of Economics, Moscow, ankosinov@edu.hse.ru
Krivorotova P.A., National Research University Higher School of Economics, Moscow, pakrivorotova@edu.hse.ru
Abrameshin D.A., National Research University Higher School of Economics, Moscow, dabrameshin@hse.ru
Abstract: In this paper reviewed an algorithm for stabilizing the model of a small spacecraft Orbicraft using a magnetometer. During the development, methods for calibrating magnetic field sensors were studied, which made it possible to minimize device and data errors. This algorithm is being finalized in order to work with the stand of semi-natural modeling of the functional safety laboratory of spacecraft and systems.
Keywords: satellite, magnetometer, algorithmization, orientation, a magnetic field, C ++, testing, programming.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|