Специальные цены   новые товары
+ Ответить в теме
Страница 72 из 327 ПерваяПервая ... 62 70 71 72 73 74 82 ... ПоследняяПоследняя
Показано с 2,841 по 2,880 из 13065

MultiWii

Тема раздела Коптеры. Комплектующие, сборка, настройка. в категории Квадрокоптеры и мультироторы; Не знаю что это было, но собрана плата сидуина мега + wmp. залил прошивку - цик -9800 (с минусом.) залил ...

  1. #2841

    Регистрация
    02.06.2011
    Адрес
    Москва
    Возраст
    31
    Сообщений
    353
    Не знаю что это было, но собрана плата сидуина мега + wmp. залил прошивку - цик -9800 (с минусом.) залил заново прошивку - цикл с WPM 1800...
    у меня именно такая зеленая WMP, которую считают мегачувствительной. работает и делители не увеличивал. наверное правильно дорожки перерезал :-)
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: Безымянный.jpg‎
Просмотров: 62
Размер:	79.3 Кб
ID:	518792  
    Последний раз редактировалось Ar2r; 27.06.2011 в 23:46.

  2.  
  3. #2842

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Цитата Сообщение от Ar2r Посмотреть сообщение
    зеленая WMP, которую считают мегачувствительной
    Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.

  4. #2843

    Регистрация
    02.06.2011
    Адрес
    Москва
    Возраст
    31
    Сообщений
    353
    Цитата Сообщение от Musgravehill Посмотреть сообщение
    Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.
    Картинка при быстром движении WMP сделана.

    Но у меня чип в покое и при питании от 5В нормально работает и ровные горизонтальнеы линии рисует. Сверхчувствительности не проявляет. Вот поэтому и терзает сомнение, что я что-то не так подключил :-)

    PS: Схема подключения на фото. Дорожки где нужно резал.
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: s640x480.jpg‎
Просмотров: 75
Размер:	68.8 Кб
ID:	518905  
    Последний раз редактировалось Ar2r; 28.06.2011 в 10:56.

  5. #2844

    Регистрация
    30.05.2010
    Адрес
    Спб
    Возраст
    45
    Сообщений
    509
    Записей в дневнике
    1
    Цитата Сообщение от Ar2r Посмотреть сообщение
    Схема подключения на фото. Дорожки где нужно резал

    всё правильно, при таком подключении питать нужно 5в , на чипе при этом должно быть 2.8в

  6.  
  7. #2845

    Регистрация
    11.02.2010
    Адрес
    Ставрополь,Кочубеевское
    Возраст
    33
    Сообщений
    66
    Цитата Сообщение от Александр . Посмотреть сообщение
    А кто пробовал 626-ю прошивку, на 607 прекрасно летает.
    Сегодня поставил прошу 626 раз нет никого. В левел понравилось, компас тоже работает хорошо и по моему он себя на спуске стал на много лучше вести, не трясет.
    Правда долго не летал, всего две батареи, но быстрые подъемы и спуски пробовал, рол пич по кругу гонял не переворачивает, и с разгоном над землей летает нормально.
    P.S. ГУИ стал работать быстрее.

  8. #2846

    Регистрация
    16.12.2010
    Адрес
    Кировская область
    Возраст
    49
    Сообщений
    33
    Похоже попробовали для показаний барометра использовать интерполяцию.
    Теперь два графика высоты и похоже показания в метрах над уровнем моря
    Нажмите на изображение для увеличения
Название: 20110622.jpg
Просмотров: 68
Размер:	81.7 Кб
ID:	519229

  9. #2847

    Регистрация
    11.02.2010
    Адрес
    Ставрополь,Кочубеевское
    Возраст
    33
    Сообщений
    66
    Цитата Сообщение от vtumane Посмотреть сообщение
    Похоже попробовали для показаний барометра использовать интерполяцию.
    Барометр чет ни как не дойдет.

  10.  
  11. #2848

    Регистрация
    16.12.2010
    Адрес
    Кировская область
    Возраст
    49
    Сообщений
    33
    http://wbb.multiwii.com/viewtopic.ph...t=363&start=30
    Инструкция по настройке пидов для удержания высоты.
    Похоже ziss_dm становиться главным локомотивом развития Wii.

  12. #2849

    Регистрация
    29.04.2009
    Адрес
    Калуга
    Возраст
    39
    Сообщений
    1,351
    Записей в дневнике
    7
    Ура заработало,порезал дорожки на Вимоушене подпаялся как на фото и понеслась,подключил регули,моторы.Стартанул,покрутил винтами,остальное завтра.

  13. #2850

    Регистрация
    02.09.2009
    Адрес
    Москва
    Возраст
    34
    Сообщений
    965
    Записей в дневнике
    1
    Новая плата от Пана Jakuba, все в одном за 104 евро. https://sexycopter.myshopify.com/col...roducts/mwii01
    Можно настраивать без компьютера (пиды можно настроить с помошью потенциометров)

  14. #2851

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Я тут решил разобраться с ПИД параметрами, настройкой, реализациями и т.д. Надоело "слепым котенком" параметры тягать...

    Кто нить в реализацию ПИД-регуля втрыркал?! У них там походу крейзи-микс полный

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

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

    На заметку по настройке: акро-"П" влияет на стаб мод.


    Бред второй: за "Д" они принимают дифференциал угловой скорости - т.е. угловое ускорение, как для акро так и для стаб.мода., а должен быть на крайняк дифференциал изменения угла - т.е. угловая скорость... Вывел графики ПИД-ов в ГУИ, занулил "П" и "И", так и есть "Д" у них - это угловое ускорение... В итоге по теории это может привести лишь к лишним осциляциям, т.к. это добавит компенсацию/всплеск не только в нужную полярность, а также и в противоположную...

    На заметку по настройке: акро-"Д" влияет на стаб мод.

    Код:
    //**** PITCH & ROLL & YAW PID ****    
      for(axis=0;axis<3;axis++) {
        if (accMode == 1 && axis<2 ) { //LEVEL MODE
          errorAngle = rcCommand[axis] - angle[axis];                                 //500+180 = 680: 16 bits is ok here
          PTerm      = errorAngle*(P8[PIDLEVEL]/10)/10 ;                              //680*20 = 13600: 16 bits is ok here
    
          errorAngleI[axis] += errorAngle;                                            //16 bits is ok here
          errorAngleI[axis]  = constrain(errorAngleI[axis],-10000,+10000); //WindUp   //16 bits is ok here
          ITerm              = (int32_t)errorAngleI[axis]*I8[PIDLEVEL]/4000;          //32 bits is needed for calculation:10000*I8 could exceed 32768   16 bits is ok for result
        } else { //ACRO MODE or YAW axis
          error = (int32_t)rcCommand[axis]*10*8/P8[axis] - gyroData[axis];            //32 bits is needed for calculation: 500*10*8 = 40000   16 bits is ok for result if P>2
          PTerm = rcCommand[axis];
    
          errorGyroI[axis] += error;                                                  //16 bits is ok here
          errorGyroI[axis]  = constrain(errorGyroI[axis],-16000,+16000); //WindUp     //16 bits is ok here
          if (abs(gyroData[axis])>640) errorGyroI[axis] = 0;
          ITerm = (int32_t)errorGyroI[axis]*I8[axis]/1000/8;                          //32 bits is needed for calculation: 16000*I8  16 bits is ok for result
        }
        PTerm         -= (int32_t)gyroData[axis]*dynP8[axis]/10/8;                    //32 bits is needed for calculation            16 bits is ok for result
    
        delta          = gyroData[axis] - lastGyro[axis];                             //16 bits is ok here, because the dif between 2 consecutive gyro reads is limited
        DTerm          = (delta1[axis]+delta2[axis]+delta+1)*dynD8[axis]/3/8;         //16 bits is ok here
        delta2[axis]   = delta1[axis];
        delta1[axis]   = delta;
        lastGyro[axis] = gyroData[axis];
        axisPID[axis] =  PTerm + ITerm - DTerm;
      }
    Кроче я не называл бы вишный регулятор ПИД-регулятором, а скорее просто ВИИ-регулятор

    Возможно на практике это и имеет смысл, но в теории бред полный. Кто нить пытался разбираться?
    Есть большое желание переписать ПИД-регуль, потому скорее всего буду писать в вишную ветку с идеей наведения порядку и выделения отдельных параметров для стаб. мода...

    Материалы которы помогли понять магию ПИД:
    ПИД регулирование (ПИД регулятор) на практических примерах или, - PID Not for PhD - Alex Demyanenko - либо ПИД-регуль на примере сливного бачка!
    http://pidcontrol.narod.ru/
    http://www.rcgroups.com/forums/showthread.php?t=1375728
    http://www.rcgroups.com/forums/showp...postcount=7460

  15. #2852

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    Ох Саш, опять тебя забанят, теперь за раскрытие страшных тайн )

  16. #2853

    Регистрация
    22.04.2009
    Адрес
    Норвегия, Осло
    Возраст
    41
    Сообщений
    1,783
    Записей в дневнике
    33
    Цитата Сообщение от Volver Посмотреть сообщение
    Новая плата от Пана Jakuba, все в одном за 104 евро. https://sexycopter.myshopify.com/col...roducts/mwii01 Можно настраивать без компьютера (пиды можно настроить с помошью потенциометров)
    кому это нужно за эти деньги, коптерконтрол теже деньги стоит....

  17. #2854

    Регистрация
    23.03.2011
    Адрес
    Melbourne
    Возраст
    41
    Сообщений
    171
    Hi mahowik,
    Думаю надо-бы еще почитать
    1) Про типы контроллеров A,B,C http://bestune.50megs.com/typeABC.htm (Этот B )
    2) Про каскадные пид контроллеры http://en.wikipedia.org/wiki/PID_con...ascade_control
    3) Про веcовые коэфициенты ошибки..

    Так-что все по науке.. Только сечас пираты идею стянут.. ;-)

  18. #2855

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    кому это нужно за эти деньги, коптерконтрол теже деньги стоит....
    А причем тут деньги, хотя цена завышена раза в полтора? Тут важно как много народу занимается проектом, насколько он популярен, как часто обновляется прошивка и растет качество софта, а то что там скорость обработки выше, так и выше немца скорость обработки, что ж теперь кому нужен немец за эти деньги? ))) в коптере важен софт, а не железо на котором от танцует.

  19. #2856

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Так-что все по науке.. Только сечас пираты идею стянут.. ;-)
    посмотрел кстать в ардукоптере (пират версию), там как раз таки ПИД-регуль классик
    и по отзывам у него стаб. мод - это стаб мод, т.е. без опыта пилотирования можно поднять и полетать имея лишь гиру и аксель

    и всеж вопрос: как дифференциал скорости (ускорение) может добавить стабилизации? это не вписывается ни в один из параметров ПИД регулятора если учесть что исходные параметры (требуемое и измеренное значение) это углы...

  20. #2857

    Регистрация
    22.04.2009
    Адрес
    Норвегия, Осло
    Возраст
    41
    Сообщений
    1,783
    Записей в дневнике
    33
    Цитата Сообщение от Covax Посмотреть сообщение
    А причем тут деньги, хотя цена завышена раза в полтора? Тут важно как много народу занимается проектом, насколько он популярен, как часто обновляется прошивка и растет качество софта, а то что там скорость обработки выше, так и выше немца скорость обработки, что ж теперь кому нужен немец за эти деньги? ))) в коптере важен софт, а не железо на котором от танцует.
    Я летал и видел как летает (или скорей не летает) мультвии и сколько Андрей с ним возится. Немец по сравнению с ним летает на все деньги которые стоит и намного больше. По моему вы тут из г-на конфетку тут делаете. Я только один смысл вижу - скиллы растут И ваще АРМ наше все

  21. #2858

    Регистрация
    26.07.2009
    Адрес
    Тольятти
    Возраст
    46
    Сообщений
    970
    Записей в дневнике
    2
    Цитата Сообщение от AlcoNaft43 Посмотреть сообщение
    По моему вы тут из г-на конфетку тут делаете.
    Если датчики подключены правильно и на экране всё отображается правильно, то вот какая идея... Можно же использовать вии вместо пирометров, например копилота или АП Тимофея? Т.е. мысль следующая, ШИМ - сглаживающий LC-фитр и получаем пропорциональное углам наклона платы напряжение на выходе годное для мозгов копилота или ап. Правда реализацию этой идеи наверное не потяну, программер из меня... Оффтоп конечно, но не знаю как тему в Самодельной электронике назвать и надо ли...

  22. #2859

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от Covax Посмотреть сообщение
    Ох Саш, опять тебя забанят, теперь за раскрытие страшных тайн )

    я так завуалирую, что они не поймут было ли это раскрытием!

  23. #2860

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    Если мы тут конфетку делаем, то вы то кули тут делаете тогда?)) попкорн жуете?) Что за Андрей такой по которому можно судить о конфетки мы делаем или тортолетки, не в обиду этому Андрею конечно же) Мультивий летает на 200% от своей цены, я начал с него и лично не грамма не жалею об этом. Ардуина это обвязанная атмега на которой практически все известные полетные контроллеры сделаны, так что не надо ляля про конфетки. Разовьется опенпайлот - отлично, обрастет всеми вкусняшками хотябы ардукоптера - очень хорошо, если найдется чем загрузить его м ощности так вообще супер. Но все решают сенсоры и софт, а не процессор.

  24. #2861

    Регистрация
    26.07.2009
    Адрес
    Тольятти
    Возраст
    46
    Сообщений
    970
    Записей в дневнике
    2
    То Сергей Covax я может конечно не удачно цитату выдернул, прошу меня извинить, сам вообщем то собрал Мультивий, осталось чуток с механикой доразбираться... Просто вот идею ещё одного применения высказал. Бредовая?

  25. #2862

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    Эдуард, про пирометры ничего не могу сказать не сталкивался...
    А, весь мой спич был Сергею Алконафту конечно же)
    Последний раз редактировалось Covax; 30.06.2011 в 23:55.

  26. #2863

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от Edward_tlt Посмотреть сообщение
    я может конечно не удачно цитату выдернул, прошу меня извинить
    я так понял что Сергей писал AlcoNaft43-у по поводу конфеток и незвестного Андрея

  27. #2864

    Регистрация
    23.03.2011
    Адрес
    Melbourne
    Возраст
    41
    Сообщений
    171
    Hi mahovik,

    Код:
    	// write out angles back to servo out - this will be converted to PWM by RC_Channel
    	g.rc_1.servo_out 	= g.pid_stabilize_roll.get_pi(error,  	delta_ms_fast_loop, 1.0);		// 2500 * .7 = 1750
    
    	// We adjust the output by the rate of rotation:
    	// Rate control through bias corrected gyro rates
    	// omega is the raw gyro reading
    	g.rc_1.servo_out	-= degrees(omega.x) * 100.0 * g.pid_stabilize_roll.kD();
    Вторая часть ничего не напоминает?
    В WMC, основной контроллер работает всегда, в level mode ему на вход, вместо стиков подаеться выход Level PI контроллера (ну и I зануляеться, за ненадобностью). (Хотя согласен, с первого взгляда - WTF). Т.е. получаеться PI-PD конотроллер что тоже по науке.

  28. #2865

    Регистрация
    09.12.2004
    Адрес
    г. Железнодорожный
    Возраст
    44
    Сообщений
    1,645
    Записей в дневнике
    529
    Мужики, хватит о том Андрее :-)

  29. #2866

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    выпилил и подрубил 6331 аксель по аналогу... заметил странный эффект которого вроде как раньше небыло...
    ща при переходе с USB на батарею уплывает калибровка на 10-20 единиц и приходится перекалибровывать...
    при питании от USB - 4.65в, при питании от аккума - стаб дает ровно 5в... Получается АЦП ардуины чувствителен к питалову?
    или я всеж припалил ардуину свою? как-то случайно на аналоговые входы подал 5в вместо сигналов с приемыша...

  30. #2867

    Регистрация
    23.01.2011
    Адрес
    Минск
    Возраст
    46
    Сообщений
    1,345
    У меня не уплывала. АЦП вроде не должен чувствовать питание.

  31. #2868
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    62
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от mahowik Посмотреть сообщение
    выпилил и подрубил 6331 аксель по аналогу... заметил странный эффект которого вроде как раньше небыло...
    ща при переходе с USB на батарею уплывает калибровка на 10-20 единиц и приходится перекалибровывать...
    при питании от USB - 4.65в, при питании от аккума - стаб дает ровно 5в... Получается АЦП ардуины чувствителен к питалову?
    или я всеж припалил ардуину свою? как-то случайно на аналоговые входы подал 5в вместо сигналов с приемыша...
    У меня тоже 4.65 с USB. Похоже из за падения напряжения на диоде. Причем и на 2560 и 1280 примерно одинаково. С аккума 5 ровно. Замерял, когда присобачивал к датчикам самопальный левел конвертер. После установки конвертера пропали дикие пляски на магнетометре. Хотя не уверен, что он (магнетометр) вообще работает. Магнитом возле него крутил, ноль эмоций.

  32. #2869

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Вторая часть ничего не напоминает? В WMC, основной контроллер работает всегда, в level mode ему на вход, вместо стиков подаеться выход Level PI контроллера (ну и I зануляеться, за ненадобностью). (Хотя согласен, с первого взгляда - WTF). Т.е. получаеться PI-PD конотроллер что тоже по науке.
    Главное что я хотел донести - это не тип контроллера, а какие данные берутся для высчитывания "Д" части. Должен быть дифференциал ошибки.
    Код:
    DTerm = Kd*(err - pre_err)/dt
    По идее если исходными данными считать угол отклонения (требуемый и реальный), то угловая скорость, т.е. показания гиры это и есть дифф. ошибки
    Код:
    err - pre_err = (angle - angle_required) - (pre_angle - pre_angle_required)
    предполагая что требуемый угол (положение стика) в квант времени константа, т.е. angle_required = pre_angle_required имеем

    Код:
    err - pre_err = angle - pre_angle = K * raw_gyro_value
    1. В ардукоптере по идее все верно, т.е. для "Д" части используется угловая скорость (raw gyro reading), где исходные данные это углЫ.

    2. В ВИЕ же в стаб моде для "Д" уже берется дифф. угловых скоростей, т.е. ускорение, где исходные данные также углы. В этом и есть затык-нюанс, который мне показался странным и в чем я убедился когда вывел ПИД-ы в ГУИ (временно вместо показаний магнетометра которого у меня нет )

    Что имеем в итоге при резком наклоне вправо:
    1) на первой картинке "Д" через ускорение (это как сейчас в ВИЕ). Что может не ускорить переходной процесс а привести к осциляциям по идее. Т.к. компенсация получается двуполярная, что не похоже на "Д"-классик из теории ПИД регулей

    2) На второй картинке "Д" через скорость ошибки, либо через угловую скорость в нашем случае... Компесация в итоге однополярная и похожа на "Д"-классик. ВсЁпофеншую т.е.

    Таким образом учитывая что IMU у нас теперь быстрый, то "Д" для стаб. мода можно считать так:
    Код:
    DTerm = (prevErrorAngle[axis] - errorAngle)*dynD8[axis]*2;
    prevErrorAngle[axis] = errorAngle;
    либо можно взять усредненное 3-х последних скоростей:
    Код:
          delta          = prevErrorAngle[axis] - errorAngle; 
          DTerm          = (deltaErrorAngle1[axis]+deltaErrorAngle2[axis]+delta+1)*dynD8[axis];
          deltaErrorAngle2[axis]   = deltaErrorAngle1[axis];
          deltaErrorAngle1[axis]   = delta;
          prevErrorAngle[axis] = errorAngle;
    либо через показания гиры к примеру:
    Код:
    DTerm         -= (int32_t)gyroData[axis]*dynD8[axis]/10/8;
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: 1.jpg‎
Просмотров: 46
Размер:	71.3 Кб
ID:	519956   Нажмите на изображение для увеличения
Название: 2.jpg‎
Просмотров: 30
Размер:	67.8 Кб
ID:	519955  

  33. #2870

    Регистрация
    23.03.2011
    Адрес
    Melbourne
    Возраст
    41
    Сообщений
    171
    Hi mahowik,
    Ну в общем-то никто не мешает попробовать.

    1. В ардукоптере по идее все верно, т.е. для "Д" части используется угловая скорость (raw gyro reading), где исходные данные это углЫ.
    Ну можно и так сказать, только тогда знак неправильный

    Главное что я хотел донести - что там два контроллера включенных последовательно (и WMC и в Arduxxx...)

    Код:
    WMC:
    Angle error -> PI(Level) -> PD (Acro) -> Motors
                             ^
                             |
                            Gyro
    
    
    ArduXXX:
    Angle error -> PI -> P -> Motors
                      ^
                      |
                    Gyro

  34. #2871

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Привет Дима!

    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Главное что я хотел донести - что там два контроллера включенных последовательно (и WMC и в Arduxxx...)
    Спасибо за диаграмки, хотя я в принципе и так понял из описания о чем речь

    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Ну в общем-то никто не мешает попробовать.
    так то оно так, но вот опыт пилотирования может и загубить идею на родном вии форуме чтоль написать? там вроде хватает энтузиастов потестить

    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Ну можно и так сказать, только тогда знак неправильный
    Код:
            // omega is the raw gyro reading
    	g.rc_1.servo_out	-= degrees(omega.x) * 100.0 * g.pid_stabilize_roll.kD();
    хмм... правильный же знак вроде и учитывая что дифф. ошибки можно заменить показаниями гиры, то это и есть "Д"-классик, соот-но получаем ПИД-классик
    Код:
    ArduXXX:
    Angle error -> PI -> D(gyro_raw) -> Motors
    З.Ы. Вообще если приземлится и рассуждать с точки зрения пользователя, то не плохо бы всеж разделить регуляторы акро и стаб. мода, т.к. сама по себе точная настройка ПИД параметров задача не тривиальная, а если учесть что в стаб. моде использутеся комплексный ПИД регуль, то идеальных параметров добиться практически не возможно, посему предлагаю:
    1. добавить левел-"Д" параметр в ГУИ. А можно и больше - отдельные "П", "И","Д" параметры для ролл и питч.
    2. для упрощения тюнинга ПИД параметров отделить в коде акро и стаб. ПИД регули.
    3. убрать вычисление "Д" через ускорение для стаб. мода

    Т.е. фактически разобраться как тюнить ПИД-ы для стаб мода, можно только провтыркаВ в код, т.к. это нигде не написано... И кстать возможно из-за данной усложненности, левел мод. в ВИЕ оссобо и не хвалят и сам АлексВПариже написал в факах "The stable mode is not so stable"

  35. #2872

    Регистрация
    19.11.2006
    Адрес
    Подольск
    Возраст
    43
    Сообщений
    446
    Цитата Сообщение от mahowik Посмотреть сообщение
    И кстать возможно из-за данной усложненности, левел мод. в ВИЕ оссобо и не хвалят
    Кто конкретно не хвалит? У меня левел мод работает прекрасно.

    Цитата Сообщение от mahowik Посмотреть сообщение
    и сам АлексВПариже написал в факах "The stable mode is not so stable"
    Это игра слов. Прочитайте ответ Алекса.

  36. #2873

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от Andrey73 Посмотреть сообщение
    Кто конкретно не хвалит? У меня левел мод работает прекрасно.
    почитайте ветку... про акро намного больше отзывов положительных... проблемы в основном со стаб. модом
    Цитата Сообщение от Andrey73 Посмотреть сообщение
    Это игра слов. Прочитайте ответ Алекса.
    Вы лучше не демагогию разводите, а на вопрос ответьте. Что делает угловое ускорение в "Д" части для стаб мода?

  37. #2874

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    Поставил прошивку дев от 29062011, маг и баро работает в ГУИ нормально, баро меняет показания по скользящей средней, все отлично, но на полете чето не заметно, что высоту держит коптер.... квадратик баро в ГУИ зачекан, может еще надо где чтото включить?

  38. #2875

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    Сегодня полетал по очкам на ff imu, круть. Но
    1. Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя, приходится инициализироваться в поле а там хрено с ровной поверхностью.
    2. Компас иоже за ночь с ума сошел, в поле без компа не знал как его переинициализировать поэтому летал без него...
    С новой дев прошивкой удержание высоты у меня не работает, так что переделываю коптер на мегапирата...

  39. #2876

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от Covax Посмотреть сообщение
    Если не аккуратно транспортировать коптер (нести вверх ногами) то слетает инициализация акселя
    оч. странно... не должно быть такого по идее... может просто разница температуры дома и на улице была существенная, потому и поплыло все...

  40. #2877

    Регистрация
    13.01.2011
    Адрес
    Москва, ЗАО
    Возраст
    41
    Сообщений
    15,166
    Записей в дневнике
    23
    С bma020 такого не было чтобы я приехал в поле и не смог поднять коптер. Спустя месяц отпуска я поставил батарейку и полетел как ни в чем не бывало. А вчера поставил вместо wp+ и bma020 фф иму, залил дев, инициализировал все, полетал минут 20 и спать. Сегодня приехал на дачу, пошел в поле, там еще трава по пояс, не могу взлететь. Взял в руку - клонит кудато непонятно, инициализировал аксель, взлетел, но коптер крутит.. Отключил компас и отлетал 2 пака по 15 минут без проблем. Сейчас приехал - опять аксель сбился... Компас вообще не трогаю. Может это глюки девпрошивки? А может и жара....

  41. #2878

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Доброго времени суток, пару детских вопросов,
    1) хотел поменять порты для RX

    Код:
     #define THROTTLEPIN                3 
      #define ROLLPIN                    2
      #define PITCHPIN                   A3
      #define YAWPIN                     4
    так вот THROTTL и PITCH неработают, THROTTL - в центре и нереагирует, PITCH - в минимуме, так-же не реагирует если переназначаю порты работают но неработают два других.

    2) как работать с акселерометром
    Код:
    // standalone I2C NUNCHUK
    // **************************
    #if defined(NUNCHACK)
    static uint8_t rawADC_NUN[6];
    
    void i2c_ACC_init() {
      i2c_rep_start(0xA4 + 0);//I2C write direction => 0
      i2c_write(0xF0); 
      i2c_write(0x55); 
      i2c_rep_start(0xA4 + 0);//I2C write direction => 0
      i2c_write(0xFB); 
      i2c_write(0x00); 
      delay(250);
      accPresent = 1;
    }
    
    void i2c_ACC_getADC() {
      TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate. !! you must check if the nunchuk is ok with this freq
      i2c_rep_start(0xA4 + 0);//I2C write direction => 0
      i2c_write(0x00);
      i2c_rep_start(0xA4 + 1);//I2C read direction => 1
      for(uint8_t i = 0; i < 5; i++)        // интересует именно отсюда
        rawADC_NUN[i]=i2c_readAck();
      rawADC_NUN[5]= i2c_readNak();
    
      accADC[ROLL]  =   ( (rawADC_NUN[3]<<2)        + ((rawADC_NUN[5]>>4)&0x2) );
      accADC[PITCH] = - ( (rawADC_NUN[2]<<2)        + ((rawADC_NUN[5]>>3)&0x2) );
      accADC[YAW]   = - ( ((rawADC_NUN[4]&0xFE)<<2) + ((rawADC_NUN[5]>>5)&0x6) );
    }
    #endif

    просто в своих извращениях я делал так

    программируем аксель
    Код:
    byte status;
     status = B00000000;
      Wire.beginTransmission(i2cID);
     Wire.send(0x21); // CTRL_REG2 (21h)
     Wire.send(B01001111);
    Wire.endTransmission();
    
     Wire.beginTransmission(i2cID);
     Wire.send(0x20); // CTRL_REG1 (20h)
     Wire.send(B11000111);
     Wire.endTransmission();
    читаем данные
    Код:
    char accX;
    
    Wire.requestFrom(i2cID, 1);
    if(Wire.available())
     {
     accX= Wire.receive(); // ну естественно определённый бит
      
     }
      accXval = (accX-accZeroX)*(accZeroZ/9.8154);
    а тут разобратся немогу что куда, зарание спасибо!

  42. #2879

    Регистрация
    11.05.2006
    Адрес
    Москва, Лефортово
    Возраст
    42
    Сообщений
    5,925
    Записей в дневнике
    268
    Цитата Сообщение от ziss_dm Посмотреть сообщение
    Hi mahowik,
    Вон оказываеться что все лучшие люди проекта НАШИ ЛЮДИ! ziss_dm- респект и уважуха

  43. #2880

    Регистрация
    09.12.2004
    Адрес
    г. Железнодорожный
    Возраст
    44
    Сообщений
    1,645
    Записей в дневнике
    529
    У меня начало вырисовываться что-то с MultiWii. Уже второй день летаю по очкам в обычном режиме и автолевеле. Но при полете и снижении все же трясет.
    Раньше не летал из-за кривой цанги, которая давала вибрации. Но OpenPilot отлично летал с этой кривой цангой и не трясся. Значит дело в математике MultiWii или в сенсорах. Сенсоры у меня из WM и NK вырезанные, в связи с этим вопрос:

    Известно, что у акселя и гиры можно задавать разные частоты квантования и/или среза НЧ фильтра. Вопрос в том - чем надо руководствоваться при их выборе, чтобы максимально не зависеть от вибраций?

    Моя инициализация акселя:

    Код:
    void i2c_ACC_init () {
      delay(10);
      i2c_rep_start(0x3A+0);      // I2C write direction
      i2c_write(0x2D);            // register 2D Power CTRL
      i2c_write(1<<3);            // Set measure bit 3 on
      i2c_rep_start(0x3A+0);      // I2C write direction 
      i2c_write(0x31);            // DATA_FORMAT register
      i2c_write(0x0B);            // Set bits 3(full range) and 1 0 on (+/- 16g-range)
      i2c_rep_start(0x3A+0);      // I2C write direction 
      i2c_write(0x2C);            // BW_RATE
    //i2c_write(8+2+1);           // 200Hz sampling (see table 5 of the spec); AP; by ziss_dm;
      i2c_write(8+2);             // 100Hz sampling (see table 5 of the spec)
      //i2c_write(8+1);             // 50Hz sampling (see table 5 of the spec)
      //i2c_write(8);               // 25Hz sampling (see table 5 of the spec)
      //i2c_write(4+2+1);           // 12.5Hz sampling (see table 5 of the spec)
      //i2c_write(4+2);             // 6.25Hz sampling (see table 5 of the spec)
      acc_1G = 250;
      acc_25deg = 106; // = acc_1G * sin(25 deg)
      accPresent = 1;
    }
    Моя инициализация гиры:
    Код:
    void i2c_Gyro_init() {
      delay(100);
      i2c_rep_start(0XD0+0);      // I2C write direction 
      i2c_write(0x3E);            // Power Management register
      i2c_write(0x80);            //   reset device
      delay(5);                   // AP; by ziss_dm
      i2c_rep_start(0XD0+0);      // I2C write direction; AP; by ziss_dm
      i2c_write(0x16);            // register DLPF_CFG - low pass filter configuration & sample rate
    //  i2c_write(0x1D);            //   10Hz Low Pass Filter Bandwidth - Internal Sample Rate 1kHz
    //  i2c_write(0x19);            //   188Hz Low Pass Filter Bandwidth - Internal Sample Rate 1kHz
      i2c_write(0x18);            //   256Hz Low Pass Filter Bandwidth - Internal Sample Rate 8kHz
      i2c_rep_start(0XD0+0);      // I2C write direction; AP; by ziss_dm
      i2c_write(0x3E);            // Power Management register
      i2c_write(0x01);            //   PLL with X Gyro reference
      delay(100);
      gyroPresent = 1;  
    }
    P.S. Кстати, Кук тоже от вибраций не трясется.

+ Ответить в теме

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения