OSD на ATmega1281

AndyBig
Dikoy:

Акселерометр мериет ускорение.

Dikoy:

Гироскоп, а точнее ДУС, ибо микромеханических гироскопов не бывает в принципе, мериет угловую скорость.

Dikoy:

Почитайте вот

Не понял, а в чем это противоречит моим словам?

Dikoy:

Накапливаются погрешности интеграции, а датчики как раз работают довольно чисто.

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

msv
MoonCat:

я так понимаю, что Вы воспроизвели, ту плату, что автор в архиве выкладывал?

Похоже, но вроде бы не совсем… Вроде бы удален верхний земляной полигон. Может и зря, как мой опыт подсказывает, хорошая земля (в идеале сплошная), штука хорошая и для ВЧ и для цифры. Во многом прощает неидеальную топологию разводки земли (например неявные земляные петли), уменьшает уровень излучения итп…
ЗЫ Кстати, после заземления корпуса кварца, вроде бы все барабашки у меня исчезли. Кварц от старой сетевой платы 10мбт, и был конечно там заземлен.
ЗЫЫ По ЛУТ платку такой сложности можно сделать за один вечер…

MoonCat

ну что же , попробуем “присоедениться” 😉

msv

Велкам! Безумству храбрых… 😃

shura2000

а на видео линия горизонта как то живет своей жизнью. Она разве не должна быть быть параллельна реальному горизонту? А то только при кренах более мене сравниваются.

msv

По тангажу линия горизонта условна и на OSD не совмещается с видимым по камере горизонтом. Крайние верхнее и нижние положения соответствует ±45град. По крену кривит конечно, плохо триммировал… Триммировать 0 горизонта вообще не такая простая задача, пока приходится это делать перед каждым полетом, после калибровки по разнице температур. И хотя процесс полуавтоматический, не всегда хватает терпения добиваться нуля. Сейчас занимаюсь этой проблемой, переделал много чего, очередной раз надеюсь, что триммирование получится сделать независимо от калибровки по температурному градиента, те фактически только при общем триммировании самолета. Заодно пробую прикрутить полностью автоматическое триммирование, при отсутствии ветра вроде бы должно работать…
Поигрался фильтром БИХ 2-го порядка для фильтрации Д-ветки ПИДа. Результат на симуляторе вполне обнадежил. Коэффициенты посчитал по ссылке уважаемого РД00.

Верхний график - исходный выход Д-ветки ПИДа курс-крен. Средний- сглаживание БИХ-фильтром. Нижний экспоненциальным фильтром. Видно что при медленных изменениях зкспофильтр все зафильтровывает в ноль, а БИХ еще что-то видит. При быстрых изменения качество усреднения БИХ-ом заметно лучше, главное нет мелких пульсаций, которые попадая на следующий ПИД крен-элероны, еще усиливаются его Д-ветвью. Цена- более тяжелая для 8-разрядного проца математика и задержка почти 100ms… Но чудес не бывает…

avisenja

To msv

Вчера спросил у своего знакомого китайца про изготовление много слойных плат (с 3-им, общим слоем под землю ), пишет что они на заводе такие изготавливают, вам это интересно?

Попробую заказать для тестирования штук 5, он спрашивает сколько потенциально нужно будет изготовить???

P.S. Извиняюсь!, пишу здесь т.к. ваш ящик переполнен а ответ хочется поскорей.

Вахтанг

Да, в Китае полно таких производств. Но нет резона изготавливать там опытные образцы, больше времени уйдет на доставку плат. Вроде как от Новокузнецка до Новосибирска ~300км. А там много хороших производителей печатных плат. Я лично, для опытных партии пользуюсь услугами вот этой конторы pselectro.ru. У них имеется филиалы во многих городах. Многослойные плати по 4-му классу они делают без претензии к качеству. Сроки и стоимость тоже приемлемые. Можно даже поторговаться. На мелкой партии вы ничего не сэкономите в Китае, т.к. доставка займет много времени и денег.
После этого, ПП для отлаженных и опробованных серийных изделий я заказываю уже в Китае, и то не на прямую а через Московскую контору, которая занимается и производством и доставкой и растаможкой.
Что касается 3-го слоя, то не вижу смысла! если делать МПП, то уже четное число слоев - 4,6,8,10 и т.д

Dikoy
AndyBig:

Не понял, а в чем это противоречит моим словам?

Вообще-то всем 😉

AndyBig:

Датчики работают чисто только в определенном диапазоне, да и то с определенной (ограниченной) точностью.

Это ёжику понятно. Однако к погрешностям динамический диапазон не имеет никакого отношения, а тем более к их накоплению.

AndyBig
AndyBig:

Датчики углового ускорения (гироскопы) для этих целей гораздо лучше. Акселерометр, например, практически не заметит поворот вокруг своей оси, зато прекрасно заметит снос вместо поворота.

Dikoy:

Акселерометр мериет ускорение.

Dikoy:

Гироскоп, а точнее ДУС, ибо микромеханических гироскопов не бывает в принципе, мериет угловую скорость.

Ну и? Противоречия в студию 😃

Dikoy:

к погрешностям динамический диапазон не имеет никакого отношения, а тем более к их накоплению.

Имеет, и самое непосредственное. Выход параметров за пределы ДД влечет за собой увеличение погрешности измерений, которые в системе ориентирования накапливаются при множественных измерениях.

Dikoy
AndyBig:

Датчики углового ускорения (гироскопы)

Во всём предложении правильно только слово “датчики”. Вы ссылочки то почитайте, что я привёл.

AndyBig:

Акселерометр, например, практически не заметит поворот вокруг своей оси, зато прекрасно заметит снос вместо поворота.

А если снос равноускоренный? 😉 Например, скольжение на крыло в спокойной среде.

AndyBig:

Выход параметров за пределы ДД влечет за собой увеличение погрешности измерений,

Ну, вообще-то в нормальных системах на ДУС погрешности вызваны алгоритмами интегрирования, что также описано в ссылках, что я дал. Но если разработчик установил датчики не подходящие по диапазону, то таки соглашусь - их зашкал будет основным источником погрешностей 😃 Правда, в реале я таких систем не видел.

AndyBig
Dikoy:

Во всём предложении правильно только слово “датчики”

Согласен, не ускорения, а скорости 😃

Dikoy:

А если снос равноускоренный?

Вам нужно буквально описать? Пожалуйста: заметит начало сноса 😃

Dikoy:

погрешности вызваны алгоритмами интегрирования

И если величина ускорения лежит в пределах шумов на выходе датчика, то виновато интегрирование? 😃

Vlado
msv:

Похоже, но вроде бы не совсем…
ЗЫ Кстати, после заземления корпуса кварца, вроде бы все барабашки у меня исчезли. Кварц от старой сетевой платы 10мбт, и был конечно там заземлен.
ЗЫЫ По ЛУТ платку такой сложности можно сделать за один вечер…

Да не совсем, счас отойду чуток соориентируюсь. Враги похоже сожгли родной лаптоп😁. Перестал узнавать мышку (оборзел ) и флаш и потом зависает.
9000 тыщ км проехали, это вам не хухры мухры.

msv

С возвращением! 😃 Очень интересно узнать (думаю не только мне) о Ваших успехах и впечатлениях по этому проекту. Но торопиться не надо… 😃

Dikoy
AndyBig:

Вам нужно буквально описать? Пожалуйста: заметит начало сноса

Во-1 не заметит, во-2 выявить именно снос из его сигнала всё равно невозможно, в-3 это рассуждения из серии “приделать к табуретке крылья”. Я вам дал ссылки, при желании можете сами нагуглить. Принципов работы БИС и БСО в инете море. В вашем исходном посте каша из понятий и принципов. Не сочтите за наезд, я бы и не вклинился, но вы же этим других учите… В итоге народ потратит время и деньги ради пары-тройки морковок.
Вывод номер раз: стабилизация только на акселерометрах невозможна. Почему - читать ссылки.
Вывод номер два: основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования, а не шумы гиро. Я вам по секрету скажу, что при использовании большинства видов ФК наличие шумов идёт даже на пользу и в некоторых системах их искусственно смешивают с сигналом гиро, дабы повысить шумность. А шумность самого гиро очень мала, да ещё хорошо давится этими же алгоритмами интегрирования, как бесплатное приложение. Шум гиро примерно в 100 раз меньше шума пирометров в среднюю погоду. Я уже постил когда-то этот график:

Жёлтый - пиро, чёрный - гиро. Синий - комплексированный сигнал.
По чёрному графику виден уход гиро по времени. Точнее не гиро, который ДУС (оторвать бы яйки американским маркетологам, введшим понятие гиро для МЕМС), а того самого интегрирования. В ДУСЕ же уходить нечему. По крайней мере порядок собственного дрейфа у него значительно меньше дрейфа математики и определяется, прежде всего, дрейфом температуры.
А вот чтобы гиро не уходил, надо его (точнее опять же математику) корректировать по другому датчику. И вот тут уже простор для инженеров огромный. Однако, все решения пока половинчаты. Они лишь оттягивают критический уход, но не избавляют от него полностью.

AndyBig:

И если величина ускорения лежит в пределах шумов на выходе датчика, то виновато интегрирование?

В этом случае погрешностей вообще не будет.
Кстати, способ борьбы с погрешностями интегрирования - установить изначально неисправные датчики! В этом случае действительно, интегрирование на качество системы не скажется. Патентуйте 😃

msv
Dikoy:

основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования

Что Вы имеете в виду под погрешностью от “алгоримом интегрирования”? Мне известна только два варианта дискретного интегрирования- метод прямоугольников и трапеций (второе- по сути совмещение собственно интегрирования с примитивным сглаживанием). И оба варианта (тем-более в целочисленке) никаких погрешностей давать не могут. Есть проблема неточности квантования, неизбежных ошибок дискретизации (при которой непрерывная функция условно считается не изменяет значения на время дискретизации). Но основная накапливающаяся ошибка после интегратора имхо именно из-за неидеальности ДУС (несимметричного шума, сдвига нуля). Вопрос о необходимости и вариантах коррекции постоянной составляющей после интегратора, как бы собственно к интегратору и не относится, он парень простой- складывает все что дали…
ЗЫ Кстати на графике не понятно, черная линия- это плывет ноль с гиры или ошибка после интегратора? И почему она никак не меняется при изменении угла?

Diman_Y
Dikoy:

основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования, а не шумы гиро

Или это опечатка, или одно из двух. 😃

Как уже заметил msv, алгоритмы сами по себе не могут вносить никаких погрешностей. Вот я могу интегрировать в double (это 64 бита плавающая запятая). Погрешность самого алгоритма у меня вообще не будет, но при этом уход значения угла у меня то-же наблюдается если не делать дополнительной коррекции. 😃

Основная проблема при интегрировании, не только мемсов, а вообще интегрирования, это наличие постоянной составляющей в сигнале. Наличие этой постоянной составляющей и дает постоянный уход сигнала при интегрировании.
Природа этой постоянной составляющей это ADC offset, или постоянная ошибка АЦП. Вот чтобы компенсировать эту ошибку и используют разные методы.

Компенсировать эту ошибку можно разными методами. Вот некоторые предлагают использовать данные темпиратуры для этого. Я на пример использую оценку постоянной составляющей во времени фильтром 8-го порядка. И т.д.

В любом случае, ошибка алгоритма тут не причем. Если вы используете 16 бит, то при правильном использовании можно добиться постоянной ошибки в 96 dB. Причем постоянной составляющей шума не будет вообще. Я использую 32 бита плавучку и у меня ошибка не больше 144 дБ.

targetorsk

Пробежался по теме. Очень интересно. Но не нашел программы или готового HEX файла для этого супер девайса.

msv

Периодически отвечаю на этот вопрос… 😃 Исходники по ряду причин выложить не решаюсь. Если Вы программист и делаете свой проект, с удовольствием готов публично по обсуждать разные решения, алгоритмы итп. в тч. в кодах. HEX тоже нет пока смысла выкладывать, он меняется каждую неделю. Для желающих повторить, всегда готов выслать последнюю облетанную версию на момент, когда она будет востребована.

Vlado

msv:

С возвращением! 😃 Очень интересно узнать (думаю не только мне) о Ваших успехах 😃

Вот вернулся и плата поспела видео передатчика 5.8GHz с антенной. Типично люди гибнут за металл а тут за FR4. Вес 12 гр усиление антенны до 10dBi ну и мощность Китайская, написано 23 а померил до 20dBm. Походу посмотрим, если понадобиться прикрутим драйвер, пока потребление 100мА от 12V.
Приемная часть пач антенна где то 110 на 110мм так шта прикрутим к пульту. С запуском не скоро как будет результат что нить покажу а на мои просьбы прошу любить и жаловать.

msv

На выходном полетал на новом месте. Не самый удачный день.
В первых почему-то раза два подвирала высота GPS. Значение обновлялось на 1-2 м с большим отставанием, потом резко менялось сразу метров на 50, показывая действительную высоту. Самолет каждый раз в попытках достичь целевую высоту уходил в крутое пике, приходилось отключать RTH и переходить на режим стабилизации. Не знаю связано ли это с особенностями рельефа (какие-нибудь переотражения) или просто неудачное время. Задумываюсь о дополнительном контроле по бародатчику…
Во вторых во время полета солнце зашло за тучку, воздух прохладный и заметно уменьшился температурный градиент. Поэтому в авто-режимах при резких сменах целевого курса самолет вместо аккуратных виражей пытался лететь на ноже. Для исключения возможности этой проблемы есть мысль сделать контроль и ограничение скорости изменения курса. Принцип то понятен, как-то от этой скорости уменьшать целевой крен, но вот какой конкретный алгоритм для этого сделать, пока не соображу… Может у кого есть какие мысли?..