OSD на ATmega1281

РД00

Коллеги, спасибо за _интереснейшее_ чтение. Прочел ветку запоем, как художественную литературу.

msv:

Может самым красивым решением будет в качестве дифференциатора использовать ФВЧ 1-го порядка например БИХ? А частоту среза определить постоянной времени дифференцирования.

Я smalltim’у три года назад уже пытался сосватать реализацию IIR (БИХ) фильтра второго порядка (а следовательно, и любого - каскадным соединением звеньев 2-го и 1-го порядков). Есть ФНЧ, ФВЧ, ПФ. Вам, случайно, не нужна ? 😃

shura2000

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

Vlado
shura2000:

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

Это как это… It up to you. Пока денег не просили, там и без этого трат не меренно, штрафы всякие и все такое (all included:) big brother) . Еще делать тоже не меренно. Как в Бумбараше… закопать живьем мерзавца.

msv

2smalltim Все-таки не очень понимаю логику Д-ветви только по углу а не по ошибке… Получается, что это ветвь будет сопротивляться изменению например крена даже при изменении целевого угла (например быстрое перемещение стика в режиме стабилизации), а должна и может помогать…
С “И”-веткой вроде бы проблем никаких, главное сделать правильно ограничение относительно границ выходного параметра. Очень полезная штука, например для того же крена устраняет неизбежную статическую ошибку от избыточной устойчивости и от неидеальности триммирования итп. Да и ветерок может давать приличную стат. ошибку, причем разную в зависимости от его направления к самолету и его текущего крена.
Долго экспериментировал с ПИД в своей сим-модели, пока остановился на таком решении- Д-ветвь - классическая реализация, а уже после суммы P+I+D экпоненциальный фильтр. Такое решение дает одинаковую задержку для всех копонентов регулирования (по сути просто увеличивает “транспортную” задержку системы в терминах ТАУ), и объект ведет себя более устойчиво для разных коэффициентов. К сожалению качество фильтрации эксп.фильтром не самое лучшее… Или остается довольно большие пульсации или “съедается” амплитуда в первую очередь D-ветки. Наверное попробую на выход поставить ФНЧ “настоящий” БИХ второго порядка. Глянул свои закрома, когда занимался ЦОС, нашел только свою программку расчета коэффициентов Чебышева-1 рода и Баттерворта. Для нашей задачи думаю лучше использовать Бесселя, как дающего линейную ФЧХ.
2РД00 Может у Вас где завалялся расчет именно по Бесселю? Вспоминать по серьезному опять ЦОС жутко лениво, кучу времени уйдет…

shura2000:

проект будет в коммерческое русло переходить?

Вообще приятно сознавать, что проект пользуется интересом (судя по кол-ву просмотров). Но он слишком далек от уровня plug-and-play, и значит практически интересен только достаточно узкому кругу продвинутых пользователей. И я (пока?) морально не готов нести риски, вкладываясь в производство хотя бы китов… Тем не менее удивляет, что кодер из соседней ветки народ повторяет пачками, а на этот проект похоже решился только Vlado… Может потому, что (пока?) исходники зажал… 😃
Чуть позже может выложу кусочек видюшки крайнего полета 26/06/11 для оценки качества стабилизации в ощутимый ветерок.

MoonCat
msv:

… а на этот проект похоже решился только Vlado…

морально готовлюсь повторить , но с учетом моего уровня, опасаюсь замучить Вас вопросами 😃

Vlado
MoonCat:

морально готовлюсь повторить , но с учетом моего уровня, опасаюсь замучить Вас вопросами 😃

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

avisenja

Переходные отверстия с *металлом*, вот это уже солидно! Поздравляю!

Vlado
avisenja:

Переходные отверстия с *металлом*, вот это уже солидно! Поздравляю!

А что есть другие варианты? Надеюсь что я удалюсь на некоторое время, запуск потом. ИМХО ждут massive флашмобы и все такое, главное что б без мордобоя и эксцессов и разводилова. Как в Питере намедни, ну почти…

Иван

[QUOTE=Vlado;2671082]

Симпатично вышло:) а у меня всё руки не доходят до поддержания прокта:( уже даже носитель облётан:)

Vlado

[QUOTE=Иван;2672115]

Vlado:

Симпатично вышло:) а у меня всё руки не доходят до поддержания прокта:( уже даже носитель облётан:)

А мне до носителя, расти и расти.😦

Иван

есть вопрос(велосипедного характра:) - если для стабилизации использовать 2 акселя 3х осевых(mma7455 есть пара в наличии караз) + калибровать их периодически на прямых участках с использованием GPS ? реально?
просто изучая на них инфу и подключив один увидел что ось Z “знает” в каком положении чип относительно ее даже если сбросить питалово и повернуть а потом опять включить - покажет новое значение… в доке говорят что он по ней калибруется.

AndyBig
Иван:

реально?

Практически нет. калибровать можно только неподвижный акселерометр. А ЛА трудно назвать неподвижным в полете 😃

Иван

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

AndyBig

Это не калибровка акселерометра получится, а калибровка обсчитывающей системы 😃 Погрешности и ограничения акселерометра останутся.
С другой стороны, самой стабилизации это не мешает, если это именно стабилизация в помощь управлению, а не автопилот с долговременной автономной стабильностью 😃

Иван

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

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мбт, и был конечно там заземлен.
ЗЫЫ По ЛУТ платку такой сложности можно сделать за один вечер…