Долгожданный Brain2

Mr_Miron

Согласен, я сам не оч втыкал, пока сам сим не написал с пидом, там логи были я все смотрел, что происходит. Я очень долго подбирал пока не понял как оно работает.
I - интегральный параметр он работает по сумме ошибки. Пока есть отклонение ошибка растет. Этот параметр доводит до 0 отклонение.
P - пропорциональный, он работает по велечине ошибки/ отклонению, поэтому он может вывести систему из равновесия(так как сам он ноль не поймает, а если его много он будет перерегулировать), он дает более жесткое/быстрое регулирование чем I.
D- реагирует на скорость изменения ошибки, поэтому он сильнее выводит из равновесия систему.
Надо какие-то аналогии запомнить, тогда проще будет

Vovets

Отлично сформулировал.
Есть ещё такие поэтические определения:
P - компенсирует ошибку в текущий момент,
I - компенсирует ошибку, накопленную за некоторое прошедшее время,
D - пытается угадать ошибку в ближайшем будущем.

mil-lion
Mr_Miron:

Начинается все с общей чуйки P. До возбуда, потом чуть убавляется. Потом накручивается I пока не появятся покачивания, I до такого возбуда как P не доводит, потом можно по желанию D подкрутить, но если переборщить тоже будет возбуд, но сильный

Немного не тот порядок:
Устанваливают Д и И в 0
Увеличиват П до осцилляций (колебаний, возбуждения) при подаче ступенчатого сигнала - дергаем стик в нужную сторону. Назад не крутим П, а пытаемся убрать колебания увеличением Д.
Опять увеличиваем П до колебаний и увеличивая Д убираем колебания.
Еще раз повторяем и в принципе достаточно. За 3 цикла должно в принципе получить максимальный П - это цель настройки ПИД регулятора.
После этого уменьшаем П и Д на 3-5% чтобы система не была на грани устойчивости.
Данный процесс очень напоминает настройку карбюратора: холостой ход и качество смеси.

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

В видео которое я привел, это как раз и показывают: крутят П потом Д, в конце И чтобы в итоге время реакции системы на входной сигнал было минимальным!

Главное правило любого тюнинга: крутим ручку (любой параметр), если есть положительная динамика на изменение параметра, крутим дальше до тех пор пока эффект от изменения пропадает либо ухудшается. Возвращаем немного назад и начинаем крутить другую ручку (параметр).

Про ПИДы у меня в дневнике есть статья про квадрик, но это касается и вертолетов тоже, да в принципе любого ПИД-регулятора.

Я вот смотрю в Крайне есть все параметры ПИД-регулятора (с ваших слов). А вот в Vbar Neo нет, есть просто Гейн. В микробе был еще Д регулятор. А вот в Нео так тонко не настроить ПИД-регулятор, либо я просто не нашел эти параметры.
И вот опять же термин Гейн - чувствительность, согласно ПИД-регулятора то это параметр П. Но я думаю что в Нео это может быть чуть шире понятие, например изменение Гейна это может сразу изменять П и Д параметры ПИД-регулятора. А вот оптимизатор, мне кажется что он подбирает И автоматически в Нео. Поправьте меня если я не правильно думаю. Нео можно обсудить в другой ветке (ссори).

Mr_Miron:

D- реагирует на скорость изменения ошибки, поэтому он сильнее выводит из равновесия систему.

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

Но вот одно но:

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

Как видите из всего вышесказанного: большое Д и большое И - плохо. А вот большое П - хорошо до определенного момента 😃 Но правильно подобранные П, Д и И дают быстрое и качественное управление!

Mr_Miron
mil-lion:

Немного не тот порядок:
Устанваливают Д и И в 0

В какой фбл вы видели чтобы изначально I было 0

mil-lion
Mr_Miron:

В какой фбл вы видели чтобы изначально I было 0

Я же написал что в идеальном случае, теоретически, нужно настраивать с И=0.
Если ваша конструкция идеальная (что практически не бывает) то можно. На практике нужно начинать с минимального значения И.

Дело в том что увод объекта от нужного значения может быть как из-за маленького П так и из-за маленького значения И.

P.S. все проверено на квадрике 😃 когда ставишь И=0 то не можешь настроить П так как квадрик невозможно удержать в точке 😃

Итого, мой порядок настройки:

  1. П=начальное значение, Д=0, И=0
  2. Подбираем И чтобы можно было висеть в одной точке
  3. Подбираем П и Д чтобы было максимальное значение П (это цель), но без осцилляций. (Д - следствие для достижения основной цели - большое П)
  4. Конечная, тонкая подборка И (может даже потребуется снижать И, а не увеличивать)
Sinka

А я все гоняюсь за высоким И:)
А тут вон оно шо. Попробую на г500 поиграться еще раз с нуля настроить

mil-lion
Sinka:

еще раз с нуля настроить

Юра правильно сделал замечание, не ставь И=0 только. Играться надо начинать с дефолтных параметров. Ведь разработчики ФБЛ их не зря выбирали такими, делали испытания на разных аппаратах и выбрали наиболее подходящие для многих моделей.
А вот играться с параметрами нужно понимая кто за что отвечает. Какие есть плюсы и минусы.

Sinka

Проьлема что не знаю как узнать дефолтные значения pid регулятора в брейне

mil-lion
alien131314:

Поставил 80. Появился плавный отскок при остановке элеватора, убрал до 60 - отскок пропал.

Вот подтверждение от Игоря, что большое И - это плохо! Он описал как раз то что в видео (которое я приводил) показано при большом И. Обычными словами выражается в виде “отскока”.

Sinka:

Проьлема что не знаю как узнать дефолтные значения pid регулятора в брейне

У тебя же есть еще один Брейн для 570-ке. Обнови прошивку, настрой по визарду или как там в Брайне делается и будут у тебя дефолтные настройки.
А еще можно написать разработчикам и спросить у них: какие дефолтные настройки поставить для Г500. 😃 Я думаю что они ответят. Ведь Брайн ты у них купил, значит свой человек. А если не ответить, то осадочек останется нехороший 😃

Mr_Miron
Sinka:

Проьлема что не знаю как узнать дефолтные значения pid регулятора в брейне

Если ткнуть на картинку с размерами лопат, то он скинет на дефолтные настройки, только свои предварительно лучше заскринить

Sinka

А хвостовые pid как восстановить?

Utyyflbq111
Sinka:

А хвостовые pid как восстановить?

Запустить утилиту настройки в демо режиме, выбрать нужную модель, посмотрите настройки по умолчанию.

Utyyflbq111

Выбрал модель, сервы, лопасти?

I 25 D 40, а вообще принаведении на параметр всплывает подсказка и в ней в конце описания есть значения по умолчанию.

RooGi

Добрый день, пробовал повозиться сегодня с ПИдами, вертолёт Compass 6hv ult, стал менять параметры пидов и для элеронов и для тангажа вписывая одинаковые значение в обоих разделах , поменял П=90, И=10 и Д=25. Не каких осцилляций не наблюдалось, единственное что чувствовалось это большая ватность по общему управлению. Добавил Д до 50 и получил бешенные, частые колебания на голове по элеронам. Пользовался постом выше написанным mil-lion, я ждал осцилляций при увеличении П , а получилось всё наоборот, при поднятии Д. Что я крутил не правильно?

mil-lion

Если при поднятии П нет осцилляций, значит вы ещё не достигли предела.
Увеличив Д вы получили другие осцилляции на другой частоте либо система стала возбуждаться.
Как это выглядят осцилляции при большом П:
Вывешиваете вертолёт в точке и даёте скачок по питчу например, вертолёт должен быстро отклониться вперёд или назад и при этом не должно быть ни каких колебаний хвостом вверх-вниз.
А значения П могут отличаться от дефолтный раза 2, ведь все зависит от компонентов вертолета.

Vovets
RooGi:

вписывая одинаковые значение в обоих разделах

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

RooGi

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

Vovets

Да. Ну и общая рекомендация - крутить, только если есть конкретная цель.

mil-lion
Vovets:

Да. Ну и общая рекомендация - крутить, только если есть конкретная цель.

Это точно!
Я вначале летал на VBar Neo на дефолтном гейне, который выставил визард под мой размер. Но потом попробовал увеличить до осцилляций (потом чуть убавил) и вертолёт стало не узнать. Стал летать как по рельсам.