Создание собственной системы стабилизации

SergDoc

в расчётах разобрался, датчик в 16g включался вот и считал что в два раза больше получаются делители, а следовательно и максимальное число, ДУСы рубятся где-то кальманом я и забыл совсем, что обновлял алгоритм…

SergDoc

Бугага, ДУСы душит файлсейв 😃
теперь у меня две версии с Кальманом и без, разницы пока не вижу…
а ЛСМ-ка по одной оси Y не досчитывает! вот и увод вправо!!!
В общем как только закажу платы для большОй, займусь переделкой Мелкоплаты - нравится она мне, только 6050 ставить не буду, а то NAZE32 получится 😃

Вот интересно, а почему правда в NAZE32 4-я ревизия два акселя, а никто не фильтрует их вместе? хватило бы и комплиментарного фльтра?

leprud
SergDoc:

Вот интересно, а почему правда в NAZE32 4-я ревизия два акселя, а никто не фильтрует их вместе?

Я тут для побочного проекта считал “векторы” вибраций отдельно акселей и отдельно гироскопов (датчик - пресловутый 6050). Дак несовпадение полное получил, что расстроило, понятное дело.
Причем вибрация - явно ниже 100 Гц, однако суммы квадратов (x^2+y^2) вращались относительно друг друга с изменяющейся частотой! То ли фазовая разница, то ли сам дурак…

Я к чему это все - насколько можно доверять данным с двух разных датчиков?

SergDoc

Буду пробовать калибровку по всем осям делать, делать то всё равно нечего, и посмотрю - нафига ФС душить ДУСы…

leprud:

Я к чему это все - насколько можно доверять данным с двух разных датчиков?

да доверять то нечему и так, а если векторы вибраций разные то в резонанс не должны по идее попасть?

rual
leprud:

Причем вибрация - явно ниже 100 Гц, однако суммы квадратов (x^2+y^2) вращались относительно друг друга с изменяющейся частотой! То ли фазовая разница, то ли сам дурак…

Аксель и ДУС мериют разные физвеличины. Как они могли одинаковые (симфазные) данные показать?

leprud:

Я к чему это все - насколько можно доверять данным с двух разных датчиков?

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

SergDoc

Копаюсь в акселе дальше - второй регистр:

#define LSM330_A_HPCF1		0x10	/* High-pass filter cutoff frequency selection	*/
#define LSM330_A_HPCF2		0x20	/* High-pass filter cutoff frequency selection	*/
#define LSM330_A_HPCF3		0x30	/* High-pass filter cutoff frequency selection	*/

выбор частоты среза, но нигде не написано какой?

rual
SergDoc:

выбор частоты среза, но нигде не написано какой?

см. стр. 39, там правда для гиры, но вроде как одинаково с акселем.

SergDoc

у гиры 3 бита у акселя 2?
Вечером попробовать надо…

rual
SergDoc:

у гиры 3 бита у акселя 2?

Частота среза и там и там 2 бита, частота дескретизации у акселя 4 бита.

SergDoc

Не на 39 странице для гиры задаётся и частота дискретизации и частота среза, у акселя в этом регистре только частота дискретизации 29стр. меня же интересует ВЧ фильтр акселя 30стр. у гиры 40 стр. у гиры я не использую хватает первого регистра 39стр. а у акселя такого нет…
Я сейчас могу задействовать лапу прерывания готовности, BMP выкинул и входы (аппаратные) прерываний свободны, к тому же дорожки около ЛСМ-ки проходят, было бы классно задействовать, хотя тоже самое и программным сделается…

DVE

А Вы не пробовали разобраться, что за данные умеет выдавать MPU6000/6050? Там же на борту какой-то onboard Digital Motion Processor заявлен, судя по описанию.

onboard Digital Motion Processor™ (DMP™) capable of processing complex 9-axis MotionFusion algorithms. The parts’ integrated 9-axis MotionFusion algorithms access external magnetometers or other sensors through an auxiliary master I²C bus, allowing the devices to gather a full set of sensor data without intervention from the system processor

SergDoc

А я разобрался куда деваются ДУСы при ФС - на этой платке PPM все каналы уходят при выключении передатчика в 1000, что как раз соответствует калибровке их любимых, в Wii по идее тоже самое будет происходить, значит либо переделывать ПО платки, а лучше всё-таки купить нормальные передатчик с приёмником…

Sir_Alex
DVE:

А Вы не пробовали разобраться, что за данные умеет выдавать MPU6000/6050? Там же на борту какой-то onboard Digital Motion Processor заявлен, судя по описанию.

Там 6axis а не 9. Кроме того, вун Дидроновцы уже давно пытаются заюзать DMP, но пока не видно результата. Хотя как вторичный AHRS его можно включить в Ардукоптере. В принципе и код можно оттуда передрать если очень надо, то разобраться там без описания будет сложновато.

SergDoc

Потанцевал с бубном вокруг акселя: перевёл на 400Гц, 1g=1024, acc_lpf_factor = 80. Дёрганий резких нет, имеется увод на 1.5-2 градуса. АХ (ещё не настраивал) имеют место прыжки 0.5м, при использовании акселя имеются небольшие осцилляции на снижении (с магнитометром ведёт себя чуть получше), в целом - лучше чем было но доверять ещё не стоит (акселю)…
а на зависть товарищам из ветки rcopen.com/forum/f123/topic156768/3835 серва быстрая цифровая Operating Speed: 0.07sec.60º/ 0.06sec.60º ведёт себя прилично без осцилляций (стоит как вкопаная в нужном положении)

rual

Сергей, несколько впросов. Это ты про ЛСМ330ю? acc_lpf_factor - праметр фильтра ЛСМ или проги? Из 400сот отсчётов все обрабатываешь?
Я без поднятия частоты отсчетов усреднил вектор от акселя и получил довольно стабильный горизонт, единственный недостаток при нескльких кувырках накаливается статистическая ошибка из-за замеделенной реакции полученного вектора,на самоль не пойдёт, но зато при плавныхполётах никаких завалов, а для самоля не так важна виброустойчивость. Так шта можно игратца коэффициентом усреднения.

SergDoc

Да про ЛСМ на 400 наблюдаю меньший шум, что в принципе странно, acc_lpf_factor - простое усреднение (80 - как раз получается как-бы 50 раз в секунду я получаю данные), надо всё-таки пробовать выводить ногу на прерывание и задействовать внутренний фильтр, иначе он не работает…
сегодня с акселем полетал почти как в акро, так что улучшения явно есть…

Я тут подумал, гиры я срезал и 25Гц - это когда с сервой боролся - ничего существенно не менялось (в стабилизации), так что можно усреднение на акселе увеличить - попробую…

SergDoc

Не получилось нормально потестить, ветер поднялся, а под углом градусов 15 не особо понятно то-ли асель тянет, то-ли ветром сдувает, но мне кажется что уже переборщил с усреднением ибо немного не доворачивает после того как стик отпустишь - остаётся под небольшим углом, буду экспериментировать дальше…

serj

А вот кстати, какие скорости снижения коптера являются критическими? Я слышал что на многих контроллерах наблюдаются осцилляции при быстром снижении… Сегодня пробовал “падать” на трикоптере с сотни метров м, быстрее 10-12 м/с страшно, но осцилляций нет. Ручка газа где-то на 20% газа была. Небольшие осцилляции (градусов 5…10 на глаз, не более) происходят если дать полный газ с целью быстро остановится, осцилляции происходят в момент гашения скорости. Если давать газ плавно, то осцилляций на глаз нет. торможу я метров с 25…

DVE

Главное кстати при таком “падении” не останавливать винты полностью, а то из-за мешающего потока воздуха они уже не раскрутятся, был опыт, обошлось сломанным лучом.

rual
serj:

какие скорости снижения коптера являются критическими? Я слышал что на многих контроллерах наблюдаются осцилляции при быстром снижении…

Тут как бы много причин можно надумать, но как человек, которого учили (безуспешно) ТАУ 3 года, относительно своего контроллера

предполагаю выход системы (обЪект управления+система управления) из линейного режима и\или из оптимума для установленных коэффициентов ПИДа. А конкретней: когда многолёт поднимается либо висит ВМГ работают в линейной части свей характиристики, т.е. соблюдается пропорция между процентом управляющего сигнала и тягой, кроме того коптер находится в ламинарном (невозмущённом) потоке воздуха, что тоже поддерживает линейность всей системы. При сниженнии же ВМГ работают в минимальном режиме и чтоб получить адекватную управляющему сигналу (УС) отдачу по тяге необходимо несколько большее время (за которое накапливается большая ошибка в интегральной части ПИД), соответсвенно когда ВМГ выходит на необходмый режим УС уже превышает величину необходимую для компенсации - происходит проскок заданного положения и перерегулирование, кроме того происходит нагнетание воздушной подушки под винтами и рамой, и коптер стремится сползти с неё кренясь то в одну то в другую сторону.
Если же праметры всей системы не входят в зону колебаний, то явление не наблюдается, и дело здесь не столько в контроллере сколько в ВМГ, весе, геометрии, плотности воздуха и пр.
Кроме этого можно предпложить что ВМГ упирается в ограничение снизу минимального газа (для слабонагруженных ВМГ).

SergDoc

Перечитывал сейчас польский форум rc-fpv.pl/viewtopic.php?t=7783&postdays=0&postorde… тоже на 400 Гц аксель запущен, но по SPI, на сколько сумел разобратся, то прерывания не выведены, блин может у меня просто микруха кривая, ДУСы - то отлично работают…