OSD на ATmega1281

AndyBig
Иван:

На акселе стаб сделать можно?

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

Иван:

плыть он может во и эту ошибку можно корректировать по сверке целевого и текущего курсов

Не совсем понял мысль 😃
Вы сначала определитесь точно что хотите стабилизировать и удерживать - курс, высоту, крен, тангаж?
Вообще, все динамические датчики имеют некую погрешность в измерениях плюс погрешность снятия и обсчета их показаний. Эти погрешности накапливаются с количеством измерений и корректировок. Поэтому такие датчики могут использоваться только для краткосрочной стабилизации, а для долговременного удержания нужно иметь еще и какие-то датчики абсолютного значения. Для курса - GPS, для крена и тангажа - пиро- или оптические датчики горизонта.
То есть акселерометры или датчики угловых ускорений служат только для выправления положения при внешних воздействиях (ветер дунул, восходящий-нисходящий поток попался и т.п.), а общую “стратегию” полета держат GPS и датчики горизонта. Получили данные с гироскопа о том, что произошел несанкционированный поворот на 2 град, тут же выправили его на эти 2 град. Но общий курс при этом контролируется по показаниям GPS.
как раз и получается то, о чем Вы писали:

Иван:

по типу - если в по итогам руления стабом на участке виден уход с курса то попровить, добавить поправку

с немного другими приоритетами: стабилизацией удерживаем от резких сносов-разворотов тот курс, который постоянно задается и контролируется по показаниям GPS 😃

msv

ИМХО аксель+GPS- получить крен/тангаж нереально. Гира+GPS вполне реально, но потребует кучу обязательных условий проведения полета в тч. отсутствие ветра. Гира+аксель+компас+GPS… уже серьезный алгоритм с серьезными требованиями к вычислительной мощности и большой вероятностью, что на место снятия явных ограничений условий полета, появятся куча менее явных и абсолютно неожиданных… Примеры, думаю, всем очевидны…
Поигрался маленько с уровнями видео и с пост цветокоррекцией в VDub… Оказалось что-то можно выжать даже из моей курсовой камерки.

Режим взлета теперь из двух фаз:
первая (“Takeoff” мигает) удерживание крена в ноль и ограничение тангажа(наверное лишнее). На видео видно, как подхватывает и выравнивает самолет даже из жутко кривого броска. После набора заданной мин скорости и заданого мин удаления, переход ко второй фазе- удерживание курса определенного в первой фазе и попытка занять целевую высоту. После заданного удаления или занятия целевой высоты,- авто-переход к RTH.
Наконец решился отлететь на этом самолетике на километрик… Почти весь полет в режиме удержания курса/высоты (LOCK). Ветерок болтал самолетик и, честно говоря, не дал насладиться полетом.

Кстати, никто не спрашивает, может очевидно… но навсякий, из серии- знаете ли вы?..
Пунктирная линия авиагоризонта- целевые крен/тангаж, сплошная текущие.
Треугольники под шкалой компаса и слева шкалы высоты- целевые курс и высота.
Может еще что не очевидно, спрашивайте…
ЗЫ Почему то видео при просмотре прямо с сайта стробит… А если зайти на youtube, там все нормально… Это только у меня?

MoonCat
Vlado:

Вливайтесь:) Надо же хоть чем то похвастаться
осталось совсем мелочевка домонтировать

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

если это уже стабильная версия, может стоит ее заказать … ну хотя бы несколько штук. так и желающих влиться прибавиться 😒

Dikoy
AndyBig:

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

Акселерометр мериет ускорение. Всё. В статике единственное ускорение, которое на него действует, это g. Которое всегда направлено к центру земли. Потому айфоны и крутят картинки всем на радость. В динамике аксель покажет шум. Почитайте вот:
dpla.ru/acclmmer.img/acclmmer.htm
dpla.ru/acclmmer.img/chtodaetdus.htm
dpla.ru/acclmmer.img/obuzdanieintegrala.htm
Гироскоп, а точнее ДУС, ибо микромеханических гироскопов не бывает в принципе, мериет угловую скорость.
Можно использовать аксель для коррекции дусов выявляя прямые участки, но для непрерывной стабилизации они никак не годятся. Только для очень низкодинамичных объектов, типа подводных лодок или человеков.

AndyBig:

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

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

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 дБ.