[image]

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

 
1 44 45 46 47 48 53

mihail66

аксакал

Xan> Вот и получается, что нужно делать полноценные мозги с 3-осевым гироскопом.
Xan> Без микроконтроллера, чисто аналогово, это чудовищно сложная задача.
Я так и думал!
   61.0.3163.10061.0.3163.100
RU EG54 #09.10.2017 22:59  @Бывший генералиссимус#09.10.2017 12:42
+
-
edit
 

EG54

опытный

EG54>>
В чем тут соль?
Б.г.> Какое вращение имеется в виду?

Полет самолета и отклонения по трем осям, в общем понятно. Ракета летит по вертикали(Z), вращается вокруг неё, отклоняется. И как ракета узнает, по оси (х) или (y) она отклоняется. Вроде для неё разницы в этом случае нет. Что то не хватает пространственного воображения.
   44
RU Бывший генералиссимус #10.10.2017 01:17  @EG54#09.10.2017 22:59
+
-
edit
 
EG54>>>
EG54> В чем тут соль?
Б.г.>> Какое вращение имеется в виду?
EG54> Полет самолета и отклонения по трем осям, в общем понятно. Ракета летит по вертикали(Z), вращается вокруг неё, отклоняется. И как ракета узнает, по оси (х) или (y) она отклоняется. Вроде для неё разницы в этом случае нет. Что то не хватает пространственного воображения.

Так на оси Z тоже стоит гироскоп, и, если он не зашкалит, ракета знает, на какой угол она повернулась. И, соответственно, можно заставить повернуться обратно на этот угол, а можно пересчитать. Есть реализации и того, и другого.

Нужно только учитывать, что по оси Z момент инерции меньше во много раз, да ещё и аэродинамическое демпфирование ракету не останавливает, в отличие от двух других осей. Поэтому диапазон угловых скоростей по Z нужно минимум на порядок больше иметь.
   61.0.3163.10061.0.3163.100
+
-
edit
 

Брат-2

опытный

.....
Xan> Вот и получается, что нужно делать полноценные мозги с 3-осевым гироскопом.
Xan> Без микроконтроллера, чисто аналогово, это чудовищно сложная задача.


В выходной 08.10.17г у нас была отличная погода, ясно, +25˚С, ветер не более 1 м/с! Конечно, ключ на старт, а ремонт в квартире подождет, не волк! :) Испытывал ракету с модулем GU-271 3-х осевого гироскопа/акселерометра, причем были задействованы внутренние мозги самого чипа MPU6050, то есть микросхемы, на которой собран модуль GU-271. К сожалению, эти самые мозги с закрытым кодом, поэтому, что там происходит, одному Богу известно! Однозначно, ясно одно, что для получения углов ориентация по X,Y используются и акселерометры, кто бы сомневался, а вот по оси Z, вероятно, акселерометр не используется, дополнительно требуется компас!
Старт!
Возможно, пока было положительное ускорение, все было нормально, но как только появилось отрицательное ускорение, ракета пошла по дуге! Собственно все правильно, акселерометры изменили знак, математика развалилась! Судя по видео, стабилизация по оси Z сохранялась до момента выброса парашюта, то есть блокировки системы гировертикали. Ну, а далее парашют опять запутался, бац об землю! Все хорошо, сервомашинки и БРЭО остались целыми, требуется небольшой ремонт ракете!
К сожалению «черный ящик» данных не привез, возникли нюансы! Собственно есть только видео старта, да данные высотомера, апогей немного больше 50м.
Собственно еще весной пришел к выводу, что при использовании только гироскопов, гировертикаль есть, но непродолжительное время и с проблемами! Если исправлять проблемы гироскопов акселерометрами, то гировертикали вообще нет, ни плохой, ни хорошей! :(
Видео старта: Облако Mail.Ru
Что делать? :eek:
   56.0.2924.19756.0.2924.197
RU Zealot01 #11.10.2017 10:06  @Брат-2#06.10.2017 09:54
+
-
edit
 

Zealot01

новичок
Брат-2>>Но гироскоп установлен на ракете, которая интенсивно колебалась (с малой амплитудой) под порывами ветра, причем, колебания были явно ассиметричны относительно «0», при этом все рули достаточно быстро уходят с нулевой позиции.

А виброразвязка какая, жесткость? Или только фильтр Калмана.
   61.0.3163.9861.0.3163.98
Это сообщение редактировалось 11.10.2017 в 10:14
RU Брат-2 #11.10.2017 11:52  @Zealot01#11.10.2017 10:06
+
-
edit
 

Брат-2

опытный

Zealot01> А виброразвязка какая, жесткость? Или только фильтр Калмана.

Фильтр Калмана, виброразвязки нет, так и значительных вибраций нет! :) Есть самопроизвольный дрейф и ошибки при получении углов из угловой скорости! Эти самые углы я вычислял сам, вне библиотеки, посчитал, что при вычислении допускал ошибку, перенес вычисления в библиотеку по стандартной формуле, однако результаты моих самопальных вычислений и стандартной формулы совпадают! Именно это и есть две фатальные ошибки при показании гироскопов! Собственно об этом указано во всех источниках информации по гироскопам. Проблемы решаются при помощи показаний акселерометров, однако в нашем случае подобное не помогает, вернее становится еще хуже!
   56.0.2924.19756.0.2924.197
RU SashaMaks #11.10.2017 12:13  @Брат-2#11.10.2017 11:52
+
-
edit
 

SashaMaks
SashaPro

аксакал

Брат-2> Проблемы решаются при помощи показаний акселерометров, однако в нашем случае подобное не помогает, вернее становится еще хуже!

Уточню, что это только без "заумных данных типа кватернионов углов Эйлера и.т.п".
(Использование твердотельных гироскопов в ракетомоделях [Брат-2#06.10.17 09:54])
   61.0.3163.10061.0.3163.100
RU Zealot01 #11.10.2017 14:12  @Брат-2#11.10.2017 11:52
+
-
edit
 

Zealot01

новичок
Zealot01>> А виброразвязка какая, жесткость? Или только фильтр Калмана.
Брат-2> Фильтр Калмана, виброразвязки нет, так и значительных вибраций нет! :) Есть самопроизвольный дрейф и ошибки при получении углов из угловой скорости! Эти самые углы я вычислял сам, вне библиотеки, посчитал, что при вычислении допускал ошибку, перенес вычисления в библиотеку по стандартной формуле, однако результаты моих самопальных вычислений и стандартной формулы совпадают! Именно это и есть две фатальные ошибки при показании гироскопов! Собственно об этом указано во всех источниках информации по гироскопам. Проблемы решаются при помощи показаний акселерометров, однако в нашем случае подобное не помогает, вернее становится еще хуже!

Виброразвязка датчиков может помочь, особено при низкой частоте интегрирования, особенно при жестких соударениях(как на стартовом столе под ветром), особенно на MPU6050(коптероводы под него всегда что то подкладывают:) )

Я как то делал СУ на датчике MPU9250(без DMP) только по гироскопу. Математика на кватернионах. Частота интегрирования(умножения кватернионов) при чтении угловых скоростей по i2c была 1000Гц (контроллер 86duino zero). Вполне сносно держало углы, когда крутил в руках MPU, даже без виброразвязки. Жаль забросил это дело :)
   61.0.3163.9861.0.3163.98
RU Брат-2 #12.10.2017 08:53  @Zealot01#11.10.2017 14:12
+
-
edit
 

Брат-2

опытный

....
Zealot01> Я как то делал СУ на датчике MPU9250(без DMP) только по гироскопу. Математика на кватернионах. Частота интегрирования(умножения кватернионов) при чтении угловых скоростей по i2c была 1000Гц (контроллер 86duino zero). Вполне сносно держало углы, когда крутил в руках MPU, даже без виброразвязки. Жаль забросил это дело :)

Хорошо, убедили! :) Вернулся к изучению библиотеки MPU6050 6Axis MotionApps20, стало понятно, что могу получить данные гироскопов в этих самых кватернионах, осталось понять, что это такое! :eek:
Zealot01! Поясни, пожалуйста, как интегрируются эти кватернионы в углы Эйлера, можно ли из них получить угловую скорость гироскопов? Только если можно, ближе к земле! Предупреждаю, мало того, что я старый, так еще и тупец! :) Шпалы, рельсы, сигналы, стрелки мне понятны, а вот за кватернионы услышал недавно и имею о них лишь общее представление!
И еще, что такое гимбальный замок, есть ли для нас с ним проблема?
   56.0.2924.19756.0.2924.197
RU Zealot01 #12.10.2017 13:16  @Брат-2#12.10.2017 08:53
+
-
edit
 

Zealot01

новичок
Брат-2> ....
Zealot01>> Я как то делал СУ на датчике MPU9250(без DMP) только по гироскопу. Математика на кватернионах. Частота интегрирования(умножения кватернионов) при чтении угловых скоростей по i2c была 1000Гц (контроллер 86duino zero). Вполне сносно держало углы, когда крутил в руках MPU, даже без виброразвязки. Жаль забросил это дело :)
Брат-2> Хорошо, убедили! :) Вернулся к изучению библиотеки MPU6050 6Axis MotionApps20, стало понятно, что могу получить данные гироскопов в этих самых кватернионах, осталось понять, что это такое! :eek:
Брат-2> Zealot01! Поясни, пожалуйста, как интегрируются эти кватернионы в углы Эйлера, можно ли из них получить угловую скорость гироскопов? Только если можно, ближе к земле! Предупреждаю, мало того, что я старый, так еще и тупец! :) Шпалы, рельсы, сигналы, стрелки мне понятны, а вот за кватернионы услышал недавно и имею о них лишь общее представление!
Брат-2> И еще, что такое гимбальный замок, есть ли для нас с ним проблема?

Кватернионы никак не характеризуют скорость вращения. Это вектор и угол вращения вокруг него, то есть это конечное вращение, которое получается из исходного положения. Получить скорость вращения, конечно можно проинтегрировав вращение во времени, но нам это не нужно.
Обойдёмся пока без библиотек с чёрными ящиками, будем просто считывать с гироскопа угловые скорости.
У тебя есть изначальное курсовое положение ракеты на стартовом столе. Задаются два вектора изначального курсового положение ракеты в декартовом пространстве, у меня это перпендикулярные вектора V1=(0,0,1) и V2=(1,0,0). Из этих двух векторов уже можно посчитать положение рулей для вывода ракеты на заданный курс добавив ПИД регулирование, в углы Эйлера переводить не обязательно :). Когда ракета стоит на стартовом столе, вращения нет, поэтому кватернион общего вращения ракеты нулевой Q0=(1,0,0,0). После старта на каждой итерации считываем гироскоп по трём осям, определяем на какие углы отклонилась ракета с момента предыдущей итерации и создаём кватернионы вращения для каждой оси координат, для создания кватерниона нужен вектор вокруг которого было вращение и угол, на который мы вращались, для x,y,z осей гироскопа это будет соответственно Q1=(1,0,0,X1), Q2=(0,1,0,Y1), Q3=(0,0,1,Z1), где X1,Y1,Z1 - это углы отклонения по каждой оси гироскопа с момента предыдущей итерации. Потом мы перезаписываем наш кватернион общего вращения по формуле Q0=Q0*Q1*Q2*Q3.
Теперь можем в цикле управления сервами (с меньшей частотой) определить текущее курсовое положение ракеты поворотом векторов V1 и V2 на кватернион Q0 и из повёрнутых векторов положения ракеты также можно посчитать положение рулей добавив ПИД регулирование. Статья по алгоритмам операций с кватернионами в том числе переводу в Эйлера тут уже была.

Заметки о вращении вектора кватернионом

Структура публикации Получение кватерниона из вектора и величины угла разворота Обратный кватернион Умножение кватернионов Поворот вектора Рысканье, тангаж,... //  m.habrahabr.ru
 
   61.0.3163.9861.0.3163.98
RU Брат-2 #12.10.2017 22:20  @Брат-2#12.10.2017 08:53
+
-
edit
 

Брат-2

опытный

Брат-2> ..Предупреждаю, мало того, что я старый, так еще и тупец! :) .....
Спасибо! Вот хотел о себе написать, что я тупеец (в действительности работаю в службе Ш) , а по ошибке написал, что тупец! После прочтения твоего объяснения и статьи о кватернионах , понял, что я ошибся очень удачно! :D Нет, отдельные моменты понятны, но целостной картины, в моем сознании, не сложилось! Оставим осознание на потом! :)
Короче получил я эти кватернионы от гироскопа по осям, значения выглядят так - 0,27; 0,28....и.т.д, если ось поворачивать, то значения меняются в соответствие с величиной угла, причем показания достаточно стабильны! Руки чешутся банально их умножить примерно на 131, и считать результат как угол поворота гироскопа! Очень странно, но как не крутил гироскоп, ошибка накопления не появилась, нет и самопроизвольного дрейфа! Короче поэкспериментирую именно в этом направлении! :)
   56.0.2924.19756.0.2924.197
RU Zealot01 #13.10.2017 14:14  @Брат-2#12.10.2017 22:20
+
-
edit
 

Zealot01

новичок
Брат-2> Очень странно, но как не крутил гироскоп, ошибка накопления не появилась, нет и самопроизвольного дрейфа!

Не может не дрейфовать :) Это корекция кватерниона imu акселерометром у него в мозгах(dmp). В воздухе все будет не так хорошо. Такие коректировки будут неправильными.
   61.0.3163.9861.0.3163.98
Это сообщение редактировалось 13.10.2017 в 15:12
RU Брат-2 #13.10.2017 19:43  @Брат-2#12.10.2017 22:20
+
-
edit
 

Брат-2

опытный

Брат-2>> .... Очень странно, но как не крутил гироскоп, ошибка накопления не появилась, нет и самопроизвольного дрейфа! Короче поэкспериментирую именно в этом направлении! :)

Я уже привык сильно не обольщаться! :) Вывожу данные, согласно библиотеке или в кватернионах или в углах Эйлера, во-первых, не замечаю особой разницы, во-вторых, есть очевидная зависимость осей X,Y от оси Z. Перезапустил, получаю данные от оси Х, наклоняю по осям X,Y, как будто все нормально. Поворачиваю на 90˚ по Z. Все, пипец, при наклоне блока на 90˚ как по оси X, так и по Y, показывает около 50˚, напоминаю, что данные вывожу только по оси Х. Вернул по Z обратно, опять все нормально, то есть при наклоне по оси Х -90˚как и положено, при наклоне по оси Y – 2-5˚тоже нормально.
Ну, да, акселерометры не задействованы!
Короче полная фигня, надо бросать эту затею!
   56.0.2924.19756.0.2924.197
+
-
edit
 

Xan

координатор

Брат-2> Все, пипец,

Я поэтому и делаю всё самодельное.
Без кватернионов! :)

Мне важнее точно понимать физику в каждой строчке кода (хотя дольше по времени), чем быстро пристёгивать чужие библиотеки, в которых могут быть "чюдеса".
Поэтому пишу свой код.
Один недостаток этого метода — всё ещё никак с реальным железом не попробовал!!! :D
Работа, проклятая, ресурсы жрёт.
Уже три года!!! :D
Хотя сомнений нет.
   56.056.0
+
-
edit
 

Брат-2

опытный

Xan> Я поэтому и делаю всё самодельное.
...
Увы! Xan! В поисках черной кошки в темной комнате помогают только танцы с бубном! В смысле, если не найдется, так погрелся! :D
   56.0.2924.19756.0.2924.197
RU Zealot01 #14.10.2017 11:13  @Брат-2#13.10.2017 19:43
+
-
edit
 

Zealot01

новичок
Брат-2> Ну, да, акселерометры не задействованы!

Как отключил акселерометры в DMP в 6Axis_MotionApps20? Не нашел такой функционал. Покажи код :)
   61.0.3163.9861.0.3163.98
RU Брат-2 #14.10.2017 17:23  @Zealot01#14.10.2017 11:13
+
-
edit
 

Брат-2

опытный

Брат-2>> Ну, да, акселерометры не задействованы!
Zealot01> Как отключил акселерометры в DMP в 6Axis_MotionApps20? Не нашел такой функционал. Покажи код :)

Для начала, давай определимся, на каком языке будем вести диалог! :) Предупреждаю, что я не программист, более того, мало чего в этом понимаю! Программирую на языке визуального программирования FLProg, для этого мне надо скетч для Arduino переделать в визуальный блок, и только потом могу с ним работать. У тебя есть библиотека 6Axis_MotionApps20, в библиотеке есть пример – скетч для Arduino (прикрепил)! Открываем его в IDE Arduino, видим, что мы можем получить на выходе. В верхней части скетча видим описание типов выходов, а сами команды закомментированы. Вот 1-й кватернионы, 2-й углы Эйлера и.т.д. Нужную команду раскомментируем , на мониторе отправляем любые знаки, получаем, то что захотели!
Так как мне для датчика необходимо преобразовать скетч в блок, то вчера при этом допустил ошибку, и получал взамен ожидаемых углов Эйлера опять кватернионы, поэтому не увидел разницы! Кватернионы выводятся в float 0,25..., углы Эйлера float 121,32 ..., вот только странности с показанием остались, гироскоп запоминает стартовое направление, а далее показывает только туда, при этом даже меняет оси!
Прикреплённые файлы:
 
   56.0.2924.19756.0.2924.197
RU Брат-2 #14.10.2017 17:42  @Брат-2#14.10.2017 17:23
+
-
edit
 

Брат-2

опытный

Брат-2>>> .... вот только странности с показанием остались, гироскоп запоминает стартовое направление, а далее показывает только туда, при этом даже меняет оси!

Странности в показаниях. БРЭО с гироскопом на столе горизонтально, запускаем! При наклонах данные в соответствие с осями гироскопа! Поворачиваем гироскоп на 90˚ по Z, теперь оси X и Y в показаниях поменялись местами. Интересно, для чего подобное? Нет, если ракета по Z будет стабильна, то все хорошо, а если повернется , то - приехали! :) Есть идея! Ракета самопроизвольно медленно вращается, имеем только один канал управления, одну сервомашинку, соответственно только два руля (левый, правый). При заданном стабами вращении, гироскоп управляет вертикалью только одним каналом, так как он запомнил начальное положение, насколько мне известно, то есть настоящие ракеты, работающие по этому принципу управления! :)
   56.0.2924.19756.0.2924.197
RU Брат-2 #14.10.2017 18:21  @Брат-2#14.10.2017 17:42
+
-
edit
 

Брат-2

опытный

Брат-2> Странности в показаниях.

Сейчас вывел в 6Axis_MotionApps20 углы наклона, то есть, задействованы акселерометры! Наклоны гироскопа адекватны показаниям!
   56.0.2924.19756.0.2924.197
RU Бывший генералиссимус #14.10.2017 23:54  @Брат-2#14.10.2017 17:23
+
-
edit
 
Брат-2> гироскоп запоминает стартовое направление, а далее показывает только туда, при этом даже меняет оси!

Это называется Inertial Frame Mode, это режим работы фильтра Калмана. Нужно переключить на вращающийся, я не знаю, как он называется в твоих библиотеках. Может просто Rotating frame, может Body frame, может Instrument frame, может ещё как-то.
   61.0.3163.10061.0.3163.100
RU Бывший генералиссимус #14.10.2017 23:58  @Брат-2#14.10.2017 18:21
+
-
edit
 
Брат-2>> Странности в показаниях.
Брат-2> Сейчас вывел в 6Axis_MotionApps20 углы наклона, то есть, задействованы акселерометры! Наклоны гироскопа адекватны показаниям!

для наклонов на столе вообще достаточно одних акселерометров, гироскопы не нужны :(
расширенный фильтр Калмана увязывает показания акселерометров с показаниями гироскопов даже при движении с ускорением, но это годится только для малых ускорений. На ракете нужно использовать акселерометры только для вычисления сдвига нуля угловой скорости. Фильтр Калмана может это делать тоже, у него это учитывается через матрицу ковариации, но это мало помогает, когда ракета летит с ускорением в несколько же, вдобавок, если зашкаливает внутренний акселерометр.
   61.0.3163.10061.0.3163.100
RU Брат-2 #16.10.2017 23:00  @Бывший генералиссимус#14.10.2017 23:58
+
-
edit
 

Брат-2

опытный

Б.г.> .... гироскопы не нужны :(
...
Много прочитал информации по MPU -6050, вероятно, пора сделать вывод, что создать гировертикаль на указанной микросхеме не представляется возможным! :( Основная причина – ошибки при интегрировании углов, была надежда на внутренний процессор DMP, но как оказалось он сам работает на частоте около 200Гц, так и на Arduino Nano частота опроса составила 175Гц, из чего следует, что нет возможности уменьшить ошибку при интегрировании углов гироскопов, по-простому подобное называется - пипец! :(
Собственно, подобный вывод можно было сделать, проанализировав всю имеющеюся информацию в Сети по данной тематике, которой собственно нет! Но я русский, а русский всегда должен все попробовать на зуб, а главное - хорошенько намордаваться! :D
   56.0.2924.19756.0.2924.197
RU Бывший генералиссимус #16.10.2017 23:23  @Брат-2#16.10.2017 23:00
+
-
edit
 
Брат-2> Много прочитал информации по MPU -6050, вероятно, пора сделать вывод, что создать гировертикаль на указанной микросхеме не представляется возможным! :(

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

Брат-2> Основная причина – ошибки при интегрировании углов, была надежда на внутренний процессор DMP, но как оказалось он сам работает на частоте около 200Гц, так и на Arduino Nano частота опроса составила 175Гц, из чего следует, что нет возможности уменьшить ошибку при интегрировании углов гироскопов, по-простому подобное называется - пипец! :(

При частоте интегрирования 200 Гц и даже 100 Гц ошибка интегрирования достаточно мала, возникающая у тебя ошибка не имеет ничего общего с ошибкой интегрирования, а возникает из-за паразитной чувствительности гироскопа к линейному ускорению.
Я тебе об этом твержу с начала твоих попыток полетать на этой железке. Но ты не хочешь прислушаться.
Не надо брать чужие библиотеки, надо калибровать самому.
Чем хороши дорогие гироскопы от Analog Devices - у них в даташите приводится очень много разных параметров, о которых в дешёвых просто не пишут. Внимательное изучение даташитов позволяет придумать, как с какими паразитными явлениями бороться.
Умные люди (куда умнее меня, а я тоже ж не последнего разбора инженер) пишут, что значимые ошибки при интегрировании возникают на частотах 10 Гц и ниже. При таких частотах действительно требуется третий порядок аппроксимации. При 100 Гц достаточно первого, а при 500 Гц даже нулевого (т.е. приближение прямоугольниками), чтобы погрешность от интегрирования была меньше погрешности от шумов и случайного дрейфа гироскопа.
А вот систематические погрешности надо компенсировать.
Фильтр Калмана успешно маскирует эти систематические погрешности без индивидуальной калибровки, поскольку знает, в каких условиях какие датчики надёжнее показывают (это даёт матрица ковариации), и там влияние линейного ускорения на ноль гироскопов убирается "полуавтоматически".
Смысл фильтра Калмана именно в том, что он пользуется информацией от разнородных датчиков, и успешно её "скрещивает". Можно, например, брать производную данных с датчика давления, и сравнивать с интегралом от вертикального ускорения. Они, по идее (с учётом "же" при интегрировании ускорения), должны показывать одно и то же. И, понятно, что на коротких временных промежутках нужно больше доверять акселерометру, а на длинных - барометру.
   61.0.3163.10061.0.3163.100
RU Брат-2 #17.10.2017 21:19  @Бывший генералиссимус#16.10.2017 23:23
+
-
edit
 

Брат-2

опытный

.....
Б.г.> Я тебе об этом твержу с начала твоих попыток полетать на этой железке. Но ты не хочешь прислушаться....

Андрей! Да я тебя очень прилежно слушался! :) Правда, мне не понятно, на чем ты мне предлагал полетать?
В этом деле настоящий каламбур!
Вот калибровка, какая нахрен калибровка? Это компенсация смещения осей. Я действительно использовал системы компенсации из готовых библиотек, и сам я этих систем компенсации сочинил штук пять ( в смысле разновидностей), как я только не изгалялся, некоторые были очень точными, уход составлял ≈1˚/мин, для меня это более, чем достаточно! Но на каких принципах я не собирал схему, на выходе получался автомат Калашникова, который заключался в том, что при процедуре захвата величины компенсации гироскоп должен быть в полном покое!!! Как подобное осуществить на стартовом столе, когда ракету болтает от ветра?
Вот ты утверждаешь, что ошибка от интегрирования углов мала, а ты сам проверял? Вот я проверял и при интегрировании на готовых библиотеках и на своих системах. Ошибка значительная, наклонил гироскоп на 45˚, вернул в ноль и уже есть ±1˚, а то и 2, поболтал немного туда-сюда, вот уже есть все 10˚, и все это бессистемно и не предсказуемо! И это, что от воздействия 1g? Причем и по оси Z?
Никто не использует только гироскопы, все только в связке с акселерометрами, ну и фильтром Калмана, безусловно, вот тогда действительно все работает правильно и хорошо, только не по нашему адресу! :(
Короче впереди зима, опять соберу стенд с вентилятором, русские не сдаются! :D
   56.0.2924.19756.0.2924.197
RU Бывший генералиссимус #18.10.2017 00:08  @Брат-2#17.10.2017 21:19
+
-
edit
 
Брат-2> Вот калибровка, какая нахрен калибровка?
Как подобное осуществить на стартовом столе, когда ракету болтает от ветра?

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

Нам было легче, у нас относительно большая и тяжёлая ракета, 3 кг стартовой массы, и жёсткая направляющая из двух стальных труб диаметром 30 мм каждая. Но, да, если ты хочешь летать с гироскопами, без этого не обойтись вообще никак, и свойства гироскопа тут очень мало влияют.

Брат-2> Вот ты утверждаешь, что ошибка от интегрирования углов мала, а ты сам проверял?

Да, проверял, и теоретически, и практически.

Брат-2> Вот я проверял и при интегрировании на готовых библиотеках и на своих системах. Ошибка значительная, наклонил гироскоп на 45˚, вернул в ноль и уже есть ±1˚, а то и 2,

Нет, я не спорю же, что ошибка появляется, но отчего ты решил, что это ошибка интегрирования?



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

Как ты определял причину появления ошибки?

Брат-2> И это, что от воздействия 1g? Причем и по оси Z?

Да, это от воздействия ДАЖЕ НЕ 1g, а лишь его незначительной проекции. У первого гироскопа, с которым я всерьёз стал экспериментировать, это был ADIS16251, заявлено 0,2 градуса в секунду на g. А ведь это был гироскоп за 40 долларов, не за 10. То есть, ты его наклонил на 30 градусов, проекция изменилась на 0,5g, и он стал уходить на 0,1 градуса в секунду, за 10 секунд, как раз, на градус уйдёт.

А если ты наклоняешь его руками, а не калибровочным столиком, то там ещё могут быть паразитные ускорения прямо по оси, хоть и кратковременные, но достаточно большие для сдвига нуля гироскопа.

Когда я построил первую железку с моторчиком, у меня уже был более точный ADIS16300, но, за время поворота из вертикали в горизонталь, он успевал уйти на 20 с лишним градусов. Потом я приделал к нему коррекцию, и всё стало чики-чики.

И это же всё здесь есть, в этом же топике!
   61.0.3163.10061.0.3163.100
1 44 45 46 47 48 53

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru