Стабилизация квадрокоптера (PID)

Samer

По снижению интересные моменты. Если P больше чем надо то он быстро снижается и при подходе к заданной высоте D просто не успевает его остановить . А если D большая то происходит снижение ступеньками метра по 3. Снижается , останов далее все снова. И мысль следующая надо просто сразу ограничивать P до общего суммирования . А то получается при большой высоте даже с малым P , слишком большая дельта на уменьшение газа. Сильно уменьшаем P и плохо реагирует при малой ошибке ±1 метр.

Приращение_газа= constrain ( (p_h + d_h + i_h) , -7,7 ) ;

А так лучше :

i_h = constrain( ( i_h + I_PID_высоты*ошибка_высоты),-2,2);
d_h= constrain( D_PID_высоты*(ошибка_высоты-стар_ошибка_высоты),-6,6);
p_h= constrain( P_PID_высоты * ошибка_высоты ,-3,3 );

Приращение_газа= p_h+ d_h+i_h;

Мы сразу ограничим физически скорость снижения , без реальных полётов очень сложно все предусмотреть.

Donkrat

Constrain как помню это если больше Х то Х?
Ну да теория без практики бесполезна

Samer
Donkrat:

Constrain как помню это если больше Х то Х?

Два последних числа это диапазон допустимых значений.
По GPS. К GPS датчику по UART подключена ардуина.
На ней софт , который обрабатывает NMEA протокол. Он все проверяет , из строк получает числовые значения , широта, долгота, курс, число спутников, выcота, скорость. И все эти данные по запросу основного ПК передаёт . Включение по I2C . На GPS ардуине прописан I2C адрес , она типа конвертора. Основной ПК совсем не загружен обработкой NMEA .
Это аналогично как например забирать данные с гироскопа, единственный минус шина I2c общая с гирой и барометром, надо делать не слишком длинный провод.
Кусок кода на удержание или возврат написал давно, но проверить всё не получалось.
Данные GPS передаю не в виде градусов , а метрами , в 4-х байтах широта и в 4-х долгота. Так проще обрабатывать без перевода. Всё эти данные в обратном UART от ПК передаю на пульт . Там обратное конвертирование в градусы. На картах вбиваю с пульта широту и долготу и совпадение до метра. Ну и на пульте также курс домой, курс движения , курс носа .
Возился долго с удержание высоты. Теперь можно пробовать . Хочу сделать без компаса. Калибровкой курса носа по курсу GPS.

Donkrat

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