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

oleg70
SergDoc:

получается картинка непривлекательная

Может я не прав…, а сместить центр тяжести в любое нужное место (например батареей) не проще?

VitaliyRU
SergDoc:

Так как mahowik отдыхает в бане, приходится общаться через личку, он мне объяснил про новый ПИД, ну и дабы не устраивать глухой телефон, разглашу тайную переписку:

Вот замедленно что там с PD происходит

Синий столбец это Р зеленый D. Столбцы направлены в ту сторону в которую от них результирующая сила. При действии возмущающей силы D P тянут в одну и туже стороны. При снятии силы в противоположные. Т.е. сначала D сопротивляется возмущению, а потом препятствует перегулированию(это самая важная его задача) от Р.
т.е. Во всех системах D направлен одинаково иначе от него вред один.

SergDoc
oleg70:

Может я не прав…, а сместить центр тяжести в любое нужное место (например батареей) не проще?

ну пока так и летаю - батарея сзади 😃
на счёт ПИД, то что вчера казалось плавным и красивым, сегодня в ветер сыграло со мной злую шутку - жуткий расколбас (с увеличением, как будто перегулирование) как следствие - переворот и минус два пропа, остался один комплект 😦 сейчас смотрю в чём бяка…

VitaliyRU
SergDoc:

сегодня в ветер сыграло со мной злую шутку - жуткий расколбас (с увеличением, как будто перегулирование) как следствие - переворот и минус два пропа, остался один комплект сейчас смотрю в чём бяка…

Кмк слишком сурово настроено. Это основной недостаток ПИД регулятора, если закрутить его для хорошей стабильности, в ветер или при пезких маневарпх - будет расколбас. Надо П уменьшать или Д увеличивать. Но если его потряхивает с увеличением Д может стать еще худе. Т.е. PD можно настроить только под конкретный импульс от возмущающей силы.

SergDoc:

надо ввести коэффициенты поправочные, кто владеет математикой, проверте пожалуйста:

Самое простое и надежное(хоть и не самое быстрое). Это установить AutoCAD, 2000й в самый раз 😃) начертить в нем и померить расстояния - ошибок точно не будет. Да и при прикидывании рамы он очень полезен 😃

oleg70
SergDoc:

переворот и минус два пропа

Я решил, пока досконально не пойму работу алгоритма, не пробовать полеты…(движки по 33$ жалко)

SergDoc

Короче перекомпенсация валит и никакие танцы не помогли, может у меня бубен не тот? 😃 переключил на стандартный ПИД - проверить, может что с коптером не так, ну так и отлетал две батарейки - плавно и аккуратно(надо будет чуть Д добавить, а то небольшие подёргивания на спуске), или же я где-то напортачил с переносом, или же он (ПИД) в ветер не летабельный…
вернусь к нему позже, когда пропы приедут, а то последний комплект сейчас установлен…

oleg70:

Я решил, пока досконально не пойму работу алгоритма, не пробовать полеты…(движки по 33$ жалко)

ну так для экспериментов, чё нить подешевле на разбить надо 😃

VitaliyRU:

Самое простое и надежное(хоть и не самое быстрое). Это установить AutoCAD, 2000й в самый раз ) начертить в нем и померить расстояния - ошибок точно не будет. Да и при прикидывании рамы он очень полезен

я дружу с автогадом 😉 все предыдущие рамы в нём начерчены, только эта покупная (желание было внутрь рамы батарейку запихнуть), следующая будет складная, пока в размышлениях и в эскизах на бумаге…

VitaliyRU
SergDoc:

Короче перекомпенсация валит и никакие танцы не помогли, может у меня бубен не тот? переключил на стандартный ПИД - проверить, может что с коптером не так, ну так и отлетал две батарейки - плавно и аккуратно(надо будет чуть Д добавить, а то небольшие подёргивания на спуске), или же я где-то напортачил с переносом, или же он (ПИД) в ветер не летабельный… вернусь к нему позже, когда пропы приедут, а то последний комплект сейчас установлен…

По моему опыту, если расколбашивает в ветер, надо P убрать на четверть. Вот такое УГ этот PID 😃)

SergDoc:

(надо будет чуть Д добавить, а то небольшие подёргивания на спуске)

Подергивания это не обязательно перегулирование. Может D шуметь. Увеличь усреднение до 5 - станет намного лучше

deltaSum = delta1[axis] + delta2[axis] + delta3[axis] +delta4[axis] + delta;
delta4[axis] = delta2[axis];
delta3[axis] = delta2[axis];
delta2[axis] = delta1[axis];
delta1[axis] = delta;

Все это D очень не срочно(усреднение же дает лаг), если интересно понять работу PID, могу EXEшником поделиться, что на видео. В уме представить колебательный процесс - анрыл 😃 Для этого я это “стенд” и написал.

И кстати если качает на спуске(мы же постоянно падаем в зону адовой турбуленции) - это еще один признак слишком злого Р.

ЗЫ D вообще зло для коптеров. т.к. мы его получаем дифференцируя гирик. Т.е. шум от вибрации возводим во 2ю степень. Плясать надо от того на сколько разогнались моторы. Площадь под кривой тяги(разнотяга) мотора - это сила импульса. Дальше пока подсказать не буду 😃 Надеюсь скоро на железо перенесу.

SergDoc

Поэкспериментирую, у меня есть непреодолимое желание петлю запускать по готовности гир а не с этими извращениями:

currentTime = micros();
    if (mcfg.looptime == 0 || (int32_t)(currentTime - loopTime) >= 0) {
        loopTime = currentTime + mcfg.looptime;

        computeIMU();
        // Measure loop rate just afer reading the sensors
        currentTime = micros();
        cycleTime = (int32_t)(currentTime - previousTime);
        previousTime = currentTime;

а да расколбас только в angle, в acro и horizont летабельно…

VitaliyRU:

И кстати если качает на спуске

не качает, слегка поддёргивает, p меньше 4-х не хочу опускать, а d я поставил 30 (обычно 35 но лень было с батарейками в карманах домой возвращаться) приедут меньшие пропы должно быть лучше (12-е слишком большие для этой рамы)

VitaliyRU
SergDoc:

а да расколбас только в angle, в acro и horizont летабельно…

А мультивий-мутант или что? Скорее всего где-то ошибка в коде. Когда все правильно P вLEVEL режиме это I в ACRO. Просто не абстрактный как I а с привязкой к горизонту. Но такой же линейный коэффициент, если соблюдать все размерности - даже численно равны будут при прочих равных.
Я что бы ловить такие пакости такую хрень соорудил

Но пока к USB подключен и к акку, валиться по питанию видимо(атмега перегружается) 😦

SergDoc
VitaliyRU:

А мультивий-мутант или что?

ну да мутант ещё тот, если цикл на волю отпустить 780 получится, со всеми плюшками включенными 😃

VitaliyRU:

Но пока к USB подключен и к акку, валиться по питанию видимо(атмега перегружается)

это как?

VitaliyRU
SergDoc:

не качает, слегка поддёргивает,

Ой пропустил, усредни D до 5 ну или 7ми - скорее всего поможет. 99% шум D

SergDoc:

это как?

Ну ходовой акк от него питание, и через FTDI подключен к питанию. Я в электронике дуб 😦 Чего там происходит не очень понимаю. Но как только отключаю от бука(т.е. убираю питание от USB-) ресетиться перестает. Не спалить бы блин 😃

SergDoc

диода на usb нет, напряжение на нём чуть меньше 5-ти вольт, получается ток от стаба течёт не туда куда надо (FTDI начинает кушать от стаба, и её от этого рвёт, а т.к. там ещё и на ресет проца разводка она и перегружает проц) - ну эт моё предположение, у меня такой беды в принципе быть не может ибо и питания развязаны спаренными диодами и стабы свои на плате, да и вообще у меня всё на 3.3В работает… снять питание которое идёт уже с ftdi на плату, можно конечно и от акка, но лучше ненадо…

VitaliyRU
SergDoc:

олучается ток от стаба течёт не туда куда надо - ну эт моё предположение,

У меня такое же(подсознательно), тоесть разрезать +5 от FTDI?, я так хотел попробовать.

SergDoc

а просто ножку отогнуть не получится? или провод из разъёма дёрнуть (не знаю как сделано) для проверки, или оно всё вместе?
ftdi пусть питается от usb а на плату от usb уже не шло…

VitaliyRU
SergDoc:

напряжение на нём чуть меньше 5-ти вольт, получается ток от стаба течёт не туда куда надо

У меня там еще и DC-DC преобразователь, с дикой пилой на выходе(судя по помехам на FPV). Акк то 1S а ардуина 5V

SergDoc

пила может быть в двух случаях, либо фильтры (конденсаторы особенно) дохлые, либо стаб перегружен! …

VitaliyRU
SergDoc:

а просто ножку отогнуть не получится? или провод из разъёма дёрнуть (не знаю как сделано) для проверки, или оно всё вместе?
ftdi пусть питается от usb а на плату от usb уже не шло…

Да он мелколет же у меня, зато не страшно палцы сувать, если всбеситься 😃

Но спасибо за подсказку, значит я правильно думал. просто поставлю маленький разъем на 5V от FTDI

mataor

Хм… такой вопрос - колбасит на маховие рц3 а на рц1-2 (вий 2.1) все норм? Пиды менял или одинаковые пробовал? Просто уже не раз говорилось что там размерности разные - деление заменили сдвигом -> разные пиды нужно. У меня порт рц3 кстати на дефолтных пидах висит идеально (аппарат 1800, тестил без смены пидов с 3s акб 380г и с 4s весом около 600 + и на той и на другой добавлял еще ноги 200г. и подвес 400г.)

VitaliyRU
mataor:

Хм… такой вопрос - колбасит на маховие рц3 а на рц1-2 (вий 2.1) все норм? Пиды менял или одинаковые пробовал? Просто уже не раз говорилось что там размерности разные - деление заменили сдвигом -> разные пиды нужно. У меня порт рц3 кстати на дефолтных пидах висит идеально (аппарат 1800, тестил без смены пидов с 3s акб 380г и с 4s весом около 600 + и на той и на другой добавлял еще ноги 200г. и подвес 400г.)

Опять же по моему опыту все это особо не влияет. Невинно убиенный астависта как то очень верно заметил(свечку то держал, в отличии от нас), что MEMS дачики могут резонировать. Т.Е. от настроек должны меняться ньюансы поведения, глобально они не влияют.
Другими словами коряво настроенный PD это тупизм или расколбас, остальное вибрация на %%80 или проблемы в железе

mataor

Насчет вибраций полностью согласен! Пока не отбалансировал пропеллеры по лопасти и середине - даже и не пробовал летать (моторки саннискаевские 2216 сами оч неплохо отбалансированы…)

П.С. програмкой не поделитесь тоже? Тоже интересно… кстати писали на делфи или С++?

VitaliyRU
mataor:

Насчет вибраций полностью согласен! Пока не отбалансировал пропеллеры по лопасти и середине - даже и не пробовал летать (моторки саннискаевские 2216 сами оч неплохо отбалансированы…)

Тем не менее попробуй закрепить мозг через губку для мыться посуды. Тааакиииие “чудеса” бывают:)
Жосткость рамы и т.д.
у меня вообще на среднемелкий такая ибо нефиг 😃