реклама на сайте
подробности

 
 
> Кватернионы и реальная механика, Вопрос синхронизации
alexPec
сообщение Apr 25 2018, 18:55
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Всем доброго дня. Неожиданно столкнулся с такой проблемой.

Есть механика, на рисунке. Внутренняя рамка С может поворачиваться вокруг осей Х и У относительно рамки А моторами М1 и М2. Вся система располагается в море, на корабле. Рамка А прикреплена жестко к кораблю. Задача - стабилизировать рамку С, так чтобы ее нормаль (g) совпадала с вектором гравитации.
Допустим, устанавливаю на рамку С гироскоп и акселерометр (трехосевые). При старте все хорошо - я точно знаю, как располагается подвижная система координат и точно знаю, что угол поворота вокруг оси Х я могу компенсировать мотором М1, а вокруг У- мотором М2. Гироскопы неизбежно плывут - с этим ничего не поделать. И если уплывания по осям Х и У можно компенсировать, зная вектор гравитации (измеряю акселерометром), то уплывание по оси g пока не вижу способа компенсировать. Да и компенсировать собственно не надо, проблема в том, что из-за этого уплывания со временем, когда уплывание достигнет например, 90 градусов, то мотором М1 я уже буду крутить кватернион вокруг оси Y, а мотором М1 - вокруг Х. Как-то бы привязать кватернион по оси g к рамке А.
Привязывать отдельно рамку А и отдельно кватернион к одной глобальной системе координат (например, по компасу) нет возможности.

Вопрос такой: как-то можно определить, каким мотором крутить, чтобы компенсировать появившийся крен рамки С? Т.е. крен -то я из кватерниона вытащу и разложу на составляющие по осям Х и У, а как определить, как сейчас расположены оси Х и У подвижной системы координат относительно осей моторов?

PS охота именно комплексно, через кватернионы решить задачу, а не отдельно по каждой оси мерить и компенсировать угловые скорости.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Apr 26 2018, 10:38
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


Еще раз повторюсь, заканчивайте с кватернионами. Рассматривайте физический смысл. Неважно, как Вы интегрируете данные IMU (кватернион, DCM - пофиг), у Вас должны быть две функции - одна - это пересчет вектора из системы координат IMU в звездную систему координат, и вторая - наоборот (если работать с DCM - то там все банально, сама по себе DCM и есть матрица пересчета из одной системы координат в другую, а пересчет в обратную сторону - это умножение на обратную матрицу). Вот, например, Вы измеряете вектор гравитации - этот вектор в системе координат IMU. Если Вы его пропустите через функцию перехода в звездную систему координат, то этот вектор будет представлять из себя вектор, у которого x, y равны 0, а z равен g. Когда x и y ненулевые - это и есть ошибка. Но можно точно так же переводить и не только вектора измерений, но и вектора ошибки. Т.е. если Вы возьмете вектор [cos(a-va),sin(a-va),0], где а - референсный курс, а va - курс по результатам интегрирования, то это будет вектор ошибки по курсу в звездной системе координат. Преобразовав этот вектор в систему координат IMU как раз и получатся ошибки по каждой из осей. Дальше PI-регулятор и добавка к данным с гироскопа. Все.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alexPec   Кватернионы и реальная механика   Apr 25 2018, 18:55
- - AlexandrY   Цитата(alexPec @ Apr 25 2018, 21:55) а ка...   Apr 25 2018, 19:08
|- - alexPec   Цитата(AlexandrY @ Apr 25 2018, 23:08) Та...   Apr 25 2018, 19:28
|- - AlexandrY   Цитата(alexPec @ Apr 25 2018, 22:28) И че...   Apr 25 2018, 20:01
|- - alexPec   Цитата(AlexandrY @ Apr 26 2018, 00:01) Да...   Apr 26 2018, 05:47
|- - AlexandrY   Цитата(alexPec @ Apr 26 2018, 08:47) Да к...   Apr 26 2018, 06:11
|- - alexPec   Цитата(AlexandrY @ Apr 26 2018, 10:11) Ду...   Apr 26 2018, 06:41
- - тау   Цитата(alexPec @ Apr 25 2018, 22:55) Зада...   Apr 26 2018, 05:50
|- - alexPec   Цитата(тау @ Apr 26 2018, 09:50) почему н...   Apr 26 2018, 05:59
|- - тау   Цитата(alexPec @ Apr 26 2018, 09:59) Груз...   Apr 26 2018, 06:55
|- - Aner   QUOTE (тау @ Apr 26 2018, 09:55) добавьте...   Apr 26 2018, 09:01
|- - alexPec   Цитата(тау @ Apr 26 2018, 10:55) добавьте...   Apr 26 2018, 09:49
- - Rst7   Я что-то не совсем понимаю, в чем проблема. Вари...   Apr 26 2018, 08:23
|- - AlexandrY   Цитата(Rst7 @ Apr 26 2018, 11:23) В коде,...   Apr 26 2018, 08:39
|- - alexPec   Цитата(Rst7 @ Apr 26 2018, 14:38) Вы возь...   Apr 26 2018, 11:04
- - krux   энкодеры на оси приделайте   Apr 26 2018, 10:50
- - Rst7   QUOTE Как отсюда выделить уплывание чтобы вычислит...   Apr 26 2018, 11:38
- - alexPec   Цитата(Rst7 @ Apr 26 2018, 15:38) Да не н...   Apr 27 2018, 19:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 20:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016