[image]

Гироскопы и кватернионы

 
1 2 3 4 5 6 7
DE Fakir #11.10.2019 22:24  @Бывший генералиссимус#09.10.2019 10:41
+
-
edit
 

Fakir

BlueSkyDreamer
★★★★☆
Б.г.> Теоретически вокруг минимальной оси устойчивое вращение, только вокруг промежуточной неустойчивое. Практически - при наличии нежёсткости получается неустойчивое.

Спросил мнение подвернувшегося профи механика (не авто- :) ), он сказал, что вообще-то не знает, ситуация нетипичная, но по всей видимости, нежёсткость тела не должна делать вращение вокруг исходно устойчивой оси неустойчивым. Типа там область устойчивости всё-таки конечная вокруг обоих устойчивых осей, до сепаратрисы достаточно далеко, так просто из устойчивости не выйдешь.


Зато при наличии в теле гироскопа вращение вокруг средней оси можно в принципе и сделать устойчивым. Интуитивно как бы неудивительно, но вот факт подтверждён. Но с другой стороны, наличие гироскопа не обязательно сделает среднюю ось устойчивой :D
   51.051.0
RU Бывший генералиссимус #28.11.2019 00:11
+
-
edit
 
1. Калибровка при включении и влияние "же".

1.1 Калибровка неизбежно происходит при статическом воздействии "же", при этом нули гироскопов сдвигаются

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

1.3 Таким образом, в регистры коррекции нулей записываются "сдвинутые" корректоры.

1.4а Чтобы реализовать автоматическую коррекцию ускорения, можно, вместо измеренного "сдвинутого" корректора писать в регистры коррекции нулей вычисленный "истинный" корректор, а, после чтения, добавлять к нему вычисленную величину сдвига.

1.4б Основным недостатком этого метода видится его поломка в случае попытки воспользоваться командой автоматической калибровки.

1.4в В принципе, это чинится, просто, после команды автоматической калибровки нужно читать регистры коррекции нулей, добавлять к ним те же сдвиги, и писать обратно.

1.5а Альтернативный метод - принять за ноль сдвинутый на 1 "же" акселерометр. Тогда измеренные корректоры модифицировать не требуется, а, после чтения корректор считать с учётом сдвига на 1 "же", т.е. при перевороте получится 2 "же", нужно добавлять удвоенную величину корректора

1.5б Этот метод не требует модификации автоматической калибровки, его основной недостаток - при начальной калибровке в положении, отличном от вертикального, резко растёт погрешность корректора

1.5в В принципе, это тоже чинится, просто, надо считать и запоминать положения всех трёх акселерометров во время калибровки, это лишь немного больше вычислений.

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

1.6б Этот метод также не требует модификации автоматической калибровки, его основной недостаток - большее занимаемое время, т.к. запись в регистр занимает в 2 раза больше времени, чем чтение, вдобавок, происходит одно лишнее чтение, т.к. при чтении передаётся адрес для следующего чтения, а не для текущего. Другое достоинство этого метода - легче использовать данные от внешнего акселерометра и проще переключаться с внутренней коррекции на внешнюю, что требуется при зашкаливании встроенного акселерометра на 5 "же".

1.6в Обмен по SPI никак починить нельзя - это особенность архитектуры IMU, но времени хватит, ведь сейчас идёт децимация в 8 раз, а оно успевало и при децимации в 4 раза. А подразумевается, что и без децимации должно успевать.

1.7 Наверняка есть и другие способы, не являющиеся вариациями трёх вышеперечисленных. Мне они сейчас в голову не пришли, достаточно и этих трёх. Нужны доп. соображения, какой из трёх выбрать, и почему.
   78.0.3904.10878.0.3904.108
KZ Xan #28.11.2019 08:27  @Бывший генералиссимус#28.11.2019 00:11
+
-
edit
 

Xan

координатор

Б.г.> 1. Калибровка

Вот и у меня самая тяжёлая часть прожекта — программная! :D
   66
RU Бывший генералиссимус #29.11.2019 00:56  @Xan#28.11.2019 08:27
+
-
edit
 
Б.г.>> 1. Калибровка
Xan> Вот и у меня самая тяжёлая часть прожекта — программная! :D

По совокупности первый вариант стал фаворитом. И он несколько проще в реализации.

P.S. я сообразил, почему ещё фаворит - первый вариант. Мне ещё придётся к этому корректору добавить слагаемое за вращение Земли. А для этого определить север и юг. У меня на рабочем столе направление на север (примерно) - это направление взгляда на монитор. То есть, примерно вдоль наружной стены дома.
Поскольку гироскоп по оси X несколько стабильнее, чем по осям Y и Z, тангажным быть ему. Значит, при запуске на восток, корректор прикладывается по осям Х и Z, практически так же, как на столе.
   78.0.3904.10878.0.3904.108
Это сообщение редактировалось 29.11.2019 в 08:46
RU Бывший генералиссимус #01.12.2019 13:02  @Xan#28.11.2019 08:27
+
-
edit
 
Б.г.>> 1. Калибровка
Xan> Вот и у меня самая тяжёлая часть прожекта — программная! :D

А вот как смотрит теория на переменность доверительности данных в зависимости от их амплитуды?
Попробую объяснить на пальцах. Вот у меня есть гироскоп внутри IMU, довольно точный, довольно стабильный, относительно мало шумящий. Вот у меня есть гироскоп снаружи, по оси Z, на случай превышения (а по крену они случаются почти с неизбежностью краха империализма). Он хуже по стабильности, но несильно, сильно хуже по шумам (диапазон у первого канала в 3 раза больше, чем у основного, а шумы хуже в 10 раз), точность дискутируема, но, в общем и целом, лучше, чем шумы, т.е., ограничивая полосу, можно вытаскивать интересные подробности.
Соответственно, я подгоняю полосы, временные сдвиги и масштабные коэффициенты, чтобы графики были максимально похожи.
В простейшей реализации при уровне сигнала меньше 2 радиан в секунду мы доверяем только внутреннему гироскопу, в диапазоне от 2 радиан в секунду до 120 градусов в секунду мы доверяем внутреннему и внешнему одинаково, в диапазоне свыше 120 градусов в секунду мы доверяем только внешнему (внутренний не может показывать больше).
В менее простейшей реализации при сигнале с внешнего гироскопа менее 500 попугаев (это приведённые попугаи, 24000 попугаев - это 120 градусов в секунду) мы ему не доверяем нисколько. Это шум. При сигнале в диапазоне 500..1000 попугаев мы ему доверяем на дельта, а внутреннему - на единица минус дельта. В диапазоне 1000..2000 мы доверяем внешнему на два дельта, а внутреннему - на единица минус 2 дельта, и так далее. Чем больше сигнал, тем больше величина доверия внешнему гироскопу. На 23000 попугаев доверие сравнивается (как и в первой версии).
Если у нас шум постоянен, и пиковые значения шума 500 попугаев (примерно), то среднеквадратичный шум в 6 раз меньше, а, значит, при сигнале в 1000 попугаев отношение сигнал-шум чуть лучше 10 дБ. Если у нас сигнал 23000 попугаев, то отношение сигнал-шум чуть лучше 24 дБ. Основной гироскоп имеет пиковый шум меньше 20 попугаев, правда, в чуть меньшей полосе сигнала. Соответственно, если его сигнал меньше 24000-шум-корректор нуля, его показания надёжнее.

Вопрос формулируется примерно так: Есть ли где-нибудь объяснение на пальцах того, как извлечь пользу из более шумящего датчика, чтобы улучшить точность менее шумящего? Два одинаково шумящих датчика можно просто усреднить, при этом, можно получить сигнал/шум на 3 дБ лучше, чем у каждого из них. Интуитивно кажется, что, если один датчик шумит на 3 дБ сильнее, чем другой, то, взяв 1/3 его сигнала и 2/3 сигнала с менее шумящего датчика, и сложив их, всё равно, можно получить итоговый уровень шума меньше, чем от лучшего из двух.

Тут, правда, разница больше, если считать, что она 30 раз (17 и 500 попугаев в пИке), то, получается, надо брать, скажем, 1/32 "плохого" сигнала и 31/32 "хорошего", и, понятно, наиграть можно лишь доли децибела...

То есть, пол-попугая шума. А вращение Земли - это 0,83 попугая.
Значит, нет смысла, и делать надо по простейшему варианту.
   78.0.3904.10878.0.3904.108
Это сообщение редактировалось 01.12.2019 в 13:26
KZ Xan #01.12.2019 13:36  @Бывший генералиссимус#01.12.2019 13:02
+
-
edit
 

Xan

координатор

Б.г.> Интуитивно кажется, что, если один датчик шумит на 3 дБ сильнее, чем другой, то, взяв 1/3 его сигнала и 2/3 сигнала с менее шумящего датчика, и сложив их, всё равно, можно получить итоговый уровень шума меньше, чем от лучшего из двух.

Нет.
Сейчас объясню АБСОЛЮТНО доходчиво!!! :D

Вот у тебя в одной бутылке 70% спирт, а в другой 40%.
В каких бы пропорциях ты их не смешивал, а больше 70% не получится.
   66

pinko

опытный

Xan> В каких бы пропорциях ты их не смешивал, а больше 70% не получится.

Пример не применим, так как шум случайный.
   70.070.0

Xan

координатор

Xan>> В каких бы пропорциях ты их не смешивал, а больше 70% не получится.
pinko> Пример не применим, так как шум случайный.

Да, ты прав. :)

Если слить из двух бутылок по 70%, то получится... э-э-э... 77%.
   66

RocKI

опытный

Xan> Если слить из двух бутылок по 70%, то получится... э-э-э... 77%.

Ну ты загнул. Эдак простым переливанием можно до 100% догнать. :D
   78.0.3904.10878.0.3904.108

Xan

координатор

Xan>> Если слить из двух бутылок по 70%, то получится... э-э-э... 77%.
RocKI> Ну ты загнул. Эдак простым переливанием можно до 100% догнать. :D

Да, в случае электричества сигналы складываются линейно, а шумы по теореме Пифагора.
То есть,
70 + 70 = 140 вольт
"30 + 30" = 42.4 вольта
140 / (140 + 42.4) = 0.77
Отношение сигнал/шум стало лучше.
   66

RocKI

опытный

Xan> Отношение сигнал/шум стало лучше.

Да уж, чем громче сигнал, тем меньше шума. :)
   78.0.3904.10878.0.3904.108
RU Бывший генералиссимус #01.12.2019 16:33  @pinko#01.12.2019 13:39
+
-
edit
 
Xan>> В каких бы пропорциях ты их не смешивал, а больше 70% не получится.
pinko> Пример не применим, так как шум случайный.

Ты чересчур вежлив :)
   78.0.3904.10878.0.3904.108
RU Бывший генералиссимус #01.12.2019 16:38  @RocKI#01.12.2019 15:22
+
-
edit
 
Xan>> Отношение сигнал/шум стало лучше.
RocKI> Да уж, чем громче сигнал, тем меньше шума. :)

Правильно, у сигнала складываются амплитуды, а у шума - мощности.
Но, при отношении шумов 1 к 30, толку во втором источнике нет, пока полезный сигнал меньше, чем цифровой предел минус коррекция нуля минус шум. Я постарался посчитать более-менее аккуратно, получилось, что можно сэкономить 0,15 дБ при сигнале между 22918 и 24000 (2 радиана в секунду и 120 градусов в секунду). А при меньшем сигнале - ещё меньше.
   78.0.3904.10878.0.3904.108
RU Бывший генералиссимус #01.12.2019 16:44  @RocKI#01.12.2019 14:58
+
-
edit
 
Xan>> Если слить из двух бутылок по 70%, то получится... э-э-э... 77%.
RocKI> Ну ты загнул. Эдак простым переливанием можно до 100% догнать. :D
Нет, как раз, до 100% и нельзя. Извести шум совсем - никак. Можно улучшить. Скажем, до 96% :)
   78.0.3904.10878.0.3904.108
KZ Xan #02.12.2019 12:41  @Бывший генералиссимус#01.12.2019 13:02
+
-
edit
 

Xan

координатор

Б.г.> Интуитивно кажется, что, если один датчик шумит на 3 дБ сильнее, чем другой, то, взяв 1/3 его сигнала и 2/3 сигнала с менее шумящего датчика, и сложив их, всё равно, можно получить итоговый уровень шума меньше, чем от лучшего из двух.

Сделал на симуляторе.
Картинка.
Самая низкая кривая, когда шумы (по вольтам) равны, следующая в два раза, потом в 4, 8, 16 и 32.
Сверху три последних кривульки обрезаны.
Прикреплённые файлы:
Noise.png (скачать) [951x1339, 46 кБ]
 
 
   66
RU RocKI #02.12.2019 15:28  @Бывший генералиссимус#01.12.2019 16:38
+
-
edit
 

RocKI

опытный

Б.г.> Правильно, у сигнала складываются амплитуды, а у шума - мощности.

Пардон, не в теме. А со стороны трудно понять - сигнал, он и в Африке сигнал - почему надо в одном случае оперировать амплитудами, а в другом мощностями, да еще и сравнивать.
   78.0.3904.10878.0.3904.108

Xan

координатор

Б.г.>> Правильно, у сигнала складываются амплитуды, а у шума - мощности.
RocKI> Пардон, не в теме. А со стороны трудно понять - сигнал, он и в Африке сигнал - почему надо в одном случае оперировать амплитудами, а в другом мощностями, да еще и сравнивать.

Вот у тебя две пары трансформаторов.
Все выходные обмотки включены последовательно.
В каждой паре один из трансформаторов включен в розетку и у каждого на выходе 6 вольт 50 Гц.
Пока два других транса не включены, на выходе суммарное напряжение 12 вольт переменки.
Ты можешь подключить резистор 1 ом и он будет греться с мощностью 144 ватта.
Потому что напруги синхронные и они просто суммируются 6 + 6 = 12, а 122 = 144

Выключаем их из розетки.
И подключаем оставшиеся трансы к двум генераторам, настроенным на частоты 70.71 и 86.6 герц.
Каждый тоже даёт 6 вольт.
Но теперь в каждый момент времени напруги то имеют одинаковый знак, то разный. Поскольку несинхронные.
И уже эффективное напряжение не будет соответствовать 12 вольтам.
И резистор не будет греться на 144 ватт.
А если через математику продраться, то греться он будет всего на 72 ватта = 36 + 36 = 62 + 62.
То есть, каждый генератор выдаёт мощность 36 ватт, независимо от остальных.

То же и с датчиками.
Поскольку они измеряют одно и тоже, то сигнал на них будет синхронный и напряжения сигнала можно просто суммировать. C = A + B.

А вот источники шумов в каждом датчике всегда независимые.
Поэтому суммировать надо их мощности, Пифагором — C2 = A2 + B2 — C = sqrt(A2 + B2)

У студентов возникает идея:
возьмём два приёмника, оба шумят,
инвертируем выход одного из приёмников и просуммируем с выходом другого,
+шум с -шумом сократится, и шума не будет!

Почему не так?
:)
   66

RocKI

опытный

Xan> инвертируем выход одного из приёмников и просуммируем с выходом другого,
Xan> +шум с -шумом сократится, и шума не будет!
Xan> Почему не так?
Xan> :)

Классная идея! :) Только вроде просуммировать, мы можем именно мощности, а не амплитуды. %)
   78.0.3904.10878.0.3904.108

Xan

координатор

RocKI> Классная идея! :) Только вроде просуммировать, мы можем именно мощности, а не амплитуды. %)

Ну вот потому и не работает идея, что шумы разные — независимые и несинхронные, и инверсия одного не сократится с другим. :)

А вовсе наоборот — сложится, но не напряжением, а мощностью.

=====

Кривульки на вышеприведённом графике — это эквивалент такой схемы:
Два датчика, измеряющие одно и то же, соединены потенциометром, крайними ногами.
А положение движка, с которого снимается смешанный сигнал — горизонтальная ось.
В одном крайнем положении получается только сигнал (и шум) с одного датчика, в другом — только с другого.
Таким образом сигналы с двух датчиков смешиваются в определённой пропорции.

У левого датчика шум равен единице (по напряжению).
У правого ("плохого") для разных кривых шум: 1, 2, 4, 8, 16, 32.
Кривые — результирующий шум при разных смешениях.
Для 1 при смешении 0.5:0.5 мощность шума оказывается меньше в два раза, напруга шума 0.707.
   66
RU Бывший генералиссимус #02.12.2019 23:54  @Xan#02.12.2019 12:41
+
-
edit
 
Б.г.>> если один датчик шумит на 3 дБ сильнее ... можно получить итоговый уровень шума меньше
Xan> Сделал на симуляторе.
Xan> Картинка.
Xan> Самая низкая кривая, когда шумы (по вольтам) равны, следующая в два раза, потом в 4, 8, 16 и 32.
Да я и на пальцах пришёл к тому же самому. Картинки, конечно, нагляднее. Но 3 дБ - это не в 2 раза по напряжению, а в 1,41 раза, ясен пень.
   78.0.3904.10878.0.3904.108

Tayfur

новичок
pinko>> Из любопытства - есть ли ограничения KOKOM на коммерческие модули ГЛОНАСС?
RLAN> Если они китайские, есть. Но какие- только им известно, если это не описано достоверно. В российских, что я когда то видел, было четко прописано 515м/с и 18км.

Не смог допытать гугла что такое КОКОМ. Выдаёт 1949г и 80-е с Тошиба. Наверно из меня плохой следователь.
Я тут нафантазировал... ГЛОНАС модуль перестанет работать если мой автомобиль будет ехать быстрей 515м/с или выше 18км?
Я то в космос собрался, а тут подстава.
   74.0.3729.10874.0.3729.108
RU Massaraksh #06.02.2020 19:21  @Tayfur#06.02.2020 19:10
+
-
edit
 

Massaraksh

аксакал
★☆
Tayfur> Не смог допытать гугла что такое КОКОМ. Выдаёт 1949г и 80-е с Тошиба. Наверно из меня плохой следователь.

Координационный комитет по экспортному контролю — Википедия

Координационный комитет по экспортному контролю, более известный как КоКом или КОКОМ (англ. Coordinating Committee for Multilateral Export Controls, CoCom) — международная организация, созданная в 1949 году для многостороннего контроля над экспортом в СССР и другие социалистические страны; штаб-квартира в Париже. В эпоху холодной войны КоКом составлял перечни «стратегических» товаров и технологий, не подлежащих экспорту в страны «восточного блока», а также устанавливал ограничения по использованию товаров и технологий, разрешённых для поставки в виде исключения. //  Дальше — ru.wikipedia.org
 
   72.072.0

Xan

координатор

Tayfur> быстрей 515м/с или выше 18км?

Изначально было не ИЛИ, а логическое И.
Приёмник GPS не должен выдавать данные, если ракета летит быстрее 515 И выше 18.
Это именно для того, чтоб террористы не могли использовать GPS в ракетах.
Но при этом можно летать на сверхзвуковом самолёте быстрее 515, если ниже 18.
И можно медленно летать на воздушном шаре выше 18.

Однако производители, вставляя в софт приёмника ограничение, часто путают логические И и ИЛИ.
А иногда придумывают свои идиотские ограничения.

Но есть места, где можно купить приёмник без кокомовских ограничений. Именно для космических ракет.

Кроме того, приёмники не могут обработать сигнал спутников, если они движутся с большим ускорением.
Обычно говорят про 4 g.
   66

Mihail66
mihail66

аксакал

Xan> Кроме того, приёмники не могут обработать сигнал спутников, если они движутся с большим ускорением.
Xan> Обычно говорят про 4 g.

А ускорение по отношению к чему?
Если по отношению к спутникам, то ускоряться горизонтально или вертикально относительно Земли это наверно ни одно и тоже.
И 515м/с это как я понимаю относиться к горизонтальной скорости. А если вверх?
   79.0.3945.13079.0.3945.130
RU SashaMaks #06.02.2020 21:53  @Mihail66#06.02.2020 20:44
+
-
edit
 

SashaMaks
SashaPro

аксакал

Mihail66> И 515м/с это как я понимаю относиться к горизонтальной скорости. А если вверх?

А для «вверх» есть ограничение 18+ :D
«Спички» детям не игрушки :D
   76.0.3809.13276.0.3809.132
1 2 3 4 5 6 7

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