MultiWii

soliada

Спасибо,очень полезная информация в довольно доступной форме.

tda2030:

извините за такую простыню.

Единственное,возможно возникнет путаница по параметру Д.Может лучше сразу написать, что мол если циферка 1-много,5-мало?

tda2030:

Увеличение значения D (помните, это значит МЕНЬШЕЕ число, т.к. значение отрицательное)

Dimm168pin

кстати, по поводу гуя, у меня он на ноуте отваливается постоянно с серым экраном внутри окошка вместо менюх, происходит это всегда без вариантов с периодом от 10ти секунд после нажатия кнопки старт, до пары минут… но не более, вроде как виновата javaw.exe , и ее нелюбовь к карточкам ATI. приходится гуить с другого нотера , у кого такое происходит? и кто-то это поборол ??)
переустановить\скачать последнюю версию с сайта не предлагать, оно не помогает.

SovGVD
Dimm168pin:

кто-то это поборол ??)

у меня немного специфично было, так как на arm девайсе запускался конфигуратор - вырезал opengl (больше нет коптера вращающегося - а нужен ли он был?) и всё работает как часики и быстро

вот попробовал пересобрать nekaka.com/d/Yuwrh6ZyQS под win32/win64/lin32/lin64/macosx без opengl (по идее на любой платформе должно запускаться, только библиотеку librxtxSerial надо менять под свою архитектуру/ось)

Dimm168pin
SovGVD:

у меня немного специфично было, так как на arm девайсе запускался конфигуратор - вырезал opengl (больше нет коптера вращающегося - а нужен ли он был?) и всё работает как часики и быстро

вот попробовал пересобрать nekaka.com/d/Yuwrh6ZyQS под win32/win64/lin32/lin64/macosx без opengl (по идее на любой платформе должно запускаться, только библиотеку librxtxSerial надо менять под свою архитектуру/ось)

низкий поклон) мучаюсь 3 месяца с этой бедой… 64 не запустилось, 32 работает без коптера. ну нафиг так нафиг)

tda2030
soliada:

Единственное,возможно возникнет путаница по параметру Д.Может лучше сразу написать, что мол если циферка 1-много,5-мало?

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

Скорее всего изменения будут поздним вечером

зы. А, вот что еще хотел спросить у тех, кто с кодом хорошо разобрался: D в нашем ПИДе так и остался отрицательным? В ГУИ то он по модулю наверняка, в первых версиях был отрицательным. Так вот, если вдруг в прошивке наконец поменяли знак для удобства пользователей и D стал положительным, то нужно будет поправить описание, дабы народ в заблуждение не вводить.

Сам тоже гляну на прошивку, может быть сразу пойму что и как 😃

upd: хотя нет, в версиях прошивок, начиная с 1.6, D имеет один и тот же знак - положительный. Т.е. само значение коэффициента по умолчанию. Легко можно найти по имени D8 в секции чтения данных из EEPROM.

  • сам расчет ПИД. Конкретно в версии А1 он такой:
    axisPID[axis] = PTerm + ITerm - DTerm

Выводы: зависимость поведения ПИД от D не меняется от версии к версии )

зы2. если кто еще не смотрел, вчера вышла очередная версия прошивки.
Как обычно, тут: code.google.com/p/multiwii/downloads/detail?name=M…

kedrikov
tda2030:

дабы народ в заблуждение не вводить

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

tda2030
kedrikov:

Это точно три раза перечитал пока дошло.

Ясность постараюсь внести. Немножко терпения 😃

И спасибо всем за спасибо 😃

igor_v_t

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

tda2030

ой, а чего это я свои посты уже не могу править спустя какое-то время? =-О

надеялся вообще-то кое-что дописать (((((((

но ладно, придется дописывать тут.

Окончание статьи по настройке ПИД

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

  • рама - вес/размер/материал/жесткость;
  • двигатели – мощность/крутящий момент;
  • расположение двигателей и расстояние между ними;
  • контроллеры двигателей и передатчик – кривые мощности;
  • винты – диаметр/шаг/материал;
  • БАЛАНСИРОВКА
  • конечно, навыки пилота.

и наконец добавим немножко ясности про параметр D.

Вообще одно простое правило помогает расставить точки над D: чем ближе значение D к нулю, тем быстрее выравнивание коптера. Чем дальше от D от нуля, тем меньше значение D и, следовательно, медленнее возврат в начальную позицию. Все, не знаю как еще понятнее написать.

  • картинка для тех, у кого визуальная память лучше

зы. разобрался вроде с разметкой Markdown. Пригляделся, оказалась не такая уж сложная. Думаю, что освоюсь. День-два и статья целиком появится в русскоязычной версии справочника по multiwii.
еще обещал перевод другой стратегии настройки ПИД - с низким D. это там, где обещают сделать подводную лодку из коптера. 😉

mahowik
SovGVD:

по идее на любой платформе должно запускаться

Какбы еще под андроид собрать

SovGVD
mahowik:

Какбы еще под андроид собрать

дык под андроид есть MultiWiiConf в маркете market.android.com/details?id=net.xrotor.andmultiw…

tda2030:

ой, а чего это я свои посты уже не могу править спустя какое-то время? =-О

это фича форума =)

tda2030
SovGVD:

это фича форума =)

фиговая фича. сорри за оффтоп ) и всем спокойной ночи 😃

SovGVD:

дык под андроид есть MultiWiiConf

кто бы еще под winMobile сделал… эх, утопия )))

SovGVD
tda2030:

кто бы еще под winMobile сделал… эх, утопия )))

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

mahowik
SovGVD:

дык под андроид есть MultiWiiConf в маркете

так то оно так, но я говорю про полноценный ГУЙ (с графиками параметров) под планшет к примеру…

SovGVD
mahowik:

ро полноценный ГУЙ (с графиками параметров) под планшет к примеру…

написать автору, попросить новый функционал, кинуть денюшку для поднятия энтузиазма =)

  • может как то javase приложения можно запускать на андроиде? или там своя ява?
DemidSPb
native18:

Смотрю там появился модуль GPS, а что уже есть такая возможность? Коллеги, можно меня носом ткнуть, с чем это едят?

Пока нет

mahowik

Сперва еще раз огромное спасибо!
Теперь будет шанс вступающим и вступившим в ряды в мультивии понять ПИД-ы и не делать это наугаД. Сам реально потратил на это кучу времени читая различные источники и куриВ код…
Вставлю и свои 3 цента 😃 (на клаве не работает “ж”, потому буду писать “Ш” вместо нее 😃 )

tda2030:

Пропорционально-Интегрально-Дифференциальный метод

Данное описание касается только акро PID (в гуи ROLL/PITCH PID) параметров. Их необходимо настраивать перед настройкой стаб/левел мода, но никак не наоборот…

tda2030:
  1. увеличивайте значение коэффициента Р до тех пор, пока не ощутите, что довольно сложно противостоять реакции коптера. Без стабилизации вы почувствуете, что ПИД позволяет вам двигаться через некоторое время. Так и должно быть;

тут имеется ввиду без активированного акселерометра (стаб/левел мода)…

tda2030:

I – это период времени, в течение которого записываются и усредняются угловые отклонения. Величина силы, прикладываемой для возврата в исходное положение, увеличивается, если с течением времени угловое отклонение сохраняется, пока не будет достигнута максимальная величина усилия. Более высокое I способствует улучшению курсовой устойчивости.

написано оч. внятно + тут моШно добавить полезный коммент от Игоря: Интегральная составляющая дотягивает аппарат до нуля, но должна работать достаточно медленно, чтобы не мешать работе пропорциональной и дифф. составляющей. Поэтому всегда важно следить за ограничением по интегральной составляющей (максимальный угол ошибки, который может быть сведен к нулю ) и скоростью ее воздействия.

tda2030:

D – это скорость, с которой мультикоптер вернется в его начальное положение. Высокие D (т.к. D имеет отрицательное значение – это означает меньшее число, т.е. более близкое к нулю) означают, что мультикоптер вернется в первоначальное положение очень быстро.

Когда раньше читал это в оригинале, понял с 3-5 раза… реально путает, т.к. ранее (если память не изменяет) в гуи Д отобраШали отрицительным, соот-но и описание было заточено под отрицательный Д, а сейчас это будет только путать. Потому лучше сразу переписать в свете нового ГУИ, типа: Низкие D означают, что мультикоптер вернется в первоначальное положение очень быстро.
Уменьшение значения D увеличивает скорость, с которой все отклонения будут скомпенсированы. Это означает так же увеличение вероятности появления перерегулирования и осцилляций. Так же увеличивается эффект от изменения Р (влияние Р-компоненты)

тут моШно дописать, что при уменьшении Д, необходимо примерно пропорционально уменьшать П, чтобы избеШать перерегулирования…

tda2030:

Стабильные полеты (RC, AP, FPV):

3) уменьшите D (дальше от нуля)
- т.е. при увеличении Д в соот-ии с текущим ГУИ…

После этого можно немного уменьшить Р.

Тут не согласен… из собственного опыта после увеличения Д составляющей, П надо поднимать ~пропорционально (конечно если он был до этого оптимально настроен), т.к. увеличение Д “гасит” влияние П…

з.ы. + оч. полезный пост про вишный PI-PD регулятор, из которого такШе моШно почерпнуть контент для статьи по ПИД…
www.multiwii.com/forum/viewtopic.php?f=7&t=905&sta…

Пару слов про настройку стаб. мода и его параметров.
Стаб. мод в вие использует комплексный PI-PD регулятор, где PI - это “часть” акро PID регулятора основанного на угловых скоростях снимаемых с гироскопа (поэтому и нуШно в первую очередь настроить акро мод), а PD - это уШе регулятор на базе вычисленного угла из ИМУ, который и выводит коптер в горизонт…
Настройка левел мода довольна проста при условии что отстроен акро мод и аксель дает корректные данные на рабочем газу, т.е. защищен от вибраций. Тут либо “качественная” рама, либо высокий range акселя (+/-8g и выше), либо плата с сенсорами на резинках… И так:

  1. левел П: характеризует силу, либо скорость с которой система будет пытаться вернуться в горизонт, либо в полоШение отклонеия ролл/питч стиков. ВаШно отметить, что при корректно отстроенных акро ПИД параметрах, его моШно крутить довольно в большом диапазоне. Я настраиваю левел П так что бы скорость наклонов/реакции в акро и левел моде примерно совпадала… тогда мозШечек не будет сильно глючить при переключении меШду акро и стаб модами 😃
  2. левел И: опять сошлюсь на коммент Игоря “Интегральная составляющая дотягивает аппарат до нуля, но должна работать достаточно медленно, чтобы не мешать работе пропорциональной и дифф. составляющей”, только тут моШно заменить “до нуля” на “в горизонт, либо в полоШение отклонеия ролл/питч стиков”.
    Известная проблема вия - это быстрок накапливание интегральной ошибки в левел моде, когда двигатели заведены + добавлено немного газа, но коптер еще не взлетел. Это приводит к прыганию и заваливанию, коптера на старте при плавном, либо медленном взлете… Есть идея исправить это обнулением интегральной составляющей, если к примеру газ менее чем MINTHROTTLE+N (где N~=100…150), а пока просто используем небольшие И=0.010…0.015
tda2030
mahowik:

тут имеется ввиду без активированного акселерометра (стаб/левел мода)…

именно. хотел еще вчера в скобочках дописать пояснение, но не вышло, форум не дает править свои посты, спустя какое-то время

mahowik:

в гуи Д отобраШали отрицительным, соот-но и описание было заточено под отрицательный Д

да, действительно, в версиях до 1.7, по-моему, D в ГУИ был всегда меньше нуля, но потом, ссылаясь на бОльшую понятность, сделали его положительным. Это дополнительно внесло некоторую путанницу

mahowik:

Тут не согласен… из собственного опыта после увеличения Д составляющей, П надо поднимать ~пропорционально (конечно если он был до этого оптимально настроен), т.к. увеличение Д “гасит” влияние П…

точно увеличение? Смотри, D было -15, а Р, к примеру 2. Увеличиваешь (или уменьшаешь, как в оригинальной статье?) D до -40, Р приходится подтягивать до 4-6. Вот как раз здесь поведение D и Р совпадают с английским описанием.

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

Covax

Друзья, может лучше создать отдельную тему по настройки ПИД, я бы ссылку на нее в ФАК добавил…