Кому лимон?

nvi93
Dav:

Наличие передатчика в руках не показатель, я пока нашего тест-пилота не могу заставить его выпустить из рук - при полетах следит за дроном как коршун с сведенной от напряжения спиной 😦 Правда пару раз (а может и не пару…) он его уже спас…

У меня уже месяца два как коптеры сами летают, если что, бегу к ноуту и давлю “экстренная посадка”, или просто “ловлю за ноги” и наставляю на путь истенный. 😃 У Вас команда, всегда кто-то может быть на готове. Если есть стабилизация высоты и оптикалфлоу, всё становится просто.

Алфизик

Сообщение от nvi93
…или просто “ловлю за ноги” и наставляю на путь истенный.

Правильно! За рога его и в стойло!
Я ещё когда был участником, выражал некоторое неудовольствие от требования кнопки “СТОП”. Мы на маленьком 30-граммовом вертолётике собирались выступить, при таком весе взять что-либо лишнее на борт весьма проблематично, поэтому обращался к организаторам: “Не нравится, как наш вертолётик летит? Да прибейте вы его мухобойкой!”. Но понято не было…
А потом при попытке пройти КТ мы оба вертолётика пришибли, один - перед съёмкой, а другой - во время. Вообще маленькие вертолёты необычайно крашеустойчивы, поэтому они не сломались, а как-то неуловимо погнулись, и летать стали совсем не так. Мы пытались летать не по ПИДам, а по таблицам переходных процессов, это очень красиво получается, но только пока вертолёт не погнётся. Эту идею использует кто-нибудь? Охотно поделюсь.

digitall

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

Алфизик

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

  1. Резкий взлет с разворотом на 180 до высоты 110см, далее переходной процесс до 150см. С разворотом, потому что вертолёту при резкой раскрутке ротора “не хватает хвоста”, тут мы обратили зло во благо, пусть он на старте оглядится, куда ему обратно возвращаться. То есть вертолёт туда с места резко пуляет, разве что не телепортирует.
  2. Дальше гашение горизонтальной скорости и переход в висение.
  3. Разворот на 180, то есть сначала разворачивающий импульс, потом квазистационарное вращение, потом противоположный импульс.
    4.Если курс встал не туда, то ещё один парный импульс коррекции курса.
    5.Идём обратно. Разгон и тут же торможение, в результате прошли назад почти 2 метра.
  4. Посадка. Играем так: сначала переводим обороты двигателя на значение для висения на подушке в 30 см. Вертолёт на таких оборотах в свободном пространстве висеть не может, и медленно спускается на 30 см, проседая до 10-15 см. Сколько времени он туда спускается, он сам не знает. Время работы на этих оборотах гарантированно для того, чтоб спустился и успокоился на подушке. Собственно, после этого двигатель можно выключить, садится по инерции.
    Смысл всего мероприятия такой: ПИДы не мотают вертолёт во всех осях, пытаясь приблизить к заданной точке, а управление происходит импульсами, если вышел за пределы заданного коридора. Если в коридоре идёт, никаких лишних мотаний не происходит. А ПИДы только на начальном этапе нужны, все манёвры сначала в “ящик” писать, немного оптимизировать, а потом играть их по нотам.
    Кстати, обороты коллекторных двигателей прекрасно измеряются по напряжению в промежутках ШИМ, только небольшой RC-фильтр нужен, а входов АЦП на современных контроллерах предостаточно.
    И ещё: датчик BMP085 в этом случае - очень нужная вещь. Обороты ротора для висения(и других режимов) при разных температурах и давлениях будут разные. У нас такого датчика не было, к сожалению. Не успели.
    А вообще вы меня не слушайте, слушать надо тех, у кого лучше получается.
    А тут работы на целый институт. Мы потому и прекратили участие в конкурсе, потому что проделать всё это - полёты, полёты, полёты.(читай - запчасти, запчасти, запчасти).
afad
Алфизик:

…А тут работы на целый институт…

Конечно работы много, но в данном случае к.м.к. одиночки и небольшие команды могут сработать намного эффективнее. Т.е. институт бы сделал на 100%, но при достаточном финансировании и времени (а ни того ни другого нет). А одиночка или команда все могут сделать на чистом энтузиазме (финансирование, конечно, нужно, но только на комплектующие).

Просмотрел презентации и засомневался, что будет много команд, которые выполнят задание. Есть аппараты (например “astacopter”), которые отлично летают, суперстабилизация полета, удержание объекта в кадре, но это их работа. А будут ли они делать что-то сверх этого? Даже для презентаций они выдернули сюжеты из своих старых рекламных роликов.
Из всех работ понравился проект команды BMSTU. По крайней мере у него одного на крыше вращающийся сонар стоит. Надеюсь ребятам хватит времени довести дело до конца. Как все остальные будут двигаться по лабиринту - непонятно? Видимо какое-то ноухау скрывают 😃.

Мой прогноз таков: на полигоне КРОК КT4 пройдут 7 команд, из них будет 3 Ar.Dron-a, которые выполнят задание случайно. Из регионов придет много видео, с выполненным заданием KT4, но большинство будет подставой (т.е. будут управляться невидимым в кадре оператором).
Полностью полетное задание в финале выполнит не более 3-х команд. Надеюсь среди них будет команда BMSTU.
Делаем ставки, господа!

digitall

Дмитрий, спасибо за знания и опыт! Очень необычный подход к решению задачи! После конкурса обязательно опробую идею “в железе”. Мы хоть и выступаем на квадрокоптере, но в наличии имеются 450-й и 600-й классические вертолеты с сервоосью, в голове ходили безумные мысли использовать их как носители. Но задушила жаба, когда представил сколько на эти опыты понадобится запчастей/денег. А еще экспериментировать с “живым” 600-м очень боязно, 3кВт и 140 см карбонового ротора могут и “в капусту порубать”. Подскажите пожалуйста, а вы свои эксперименты на видео фиксировали? Можете ссылкой поделиться? Заранее спасибо.

Алфизик
digitall:

Подскажите пожалуйста, а вы свои эксперименты на видео фиксировали? Можете ссылкой поделиться? Заранее спасибо.

Ах, если бы у нас было видео, достойное прохождения КТ, я бы сейчас здесь ничего не писал, я бы дальше работал. Пока оно летало, всё как-то на потом откладывали, на последний день. А потом лучший вертолётик в струю кондиционера попал, а устойчивости не хватило. Второй тоже бился-бился, мой коллега сказал, показывать ЭТО - себя не уважать. Реально на что бы стоило посмотреть, это на момент посадки, когда снижается-снижается почти до земли, потом чуть вверх, близкую землю сам почувствовал, висит низенько, выключил двигатель и по инерции сел.
А большие вертолёты - это “машины смерти” реально, дури в них дофига. Я иногда наблюдаю такие штуки в полёте. Мне особенно понравилось, когда вертолёт переворачивается вверх тормашками. Перевернуть его много энергии надо, поэтому сначала ротор раскручивает, звук меняется с шелеста на гул, вертолёт на месте висит, но ясно, что сейчас что-то будет. А потом энергию из аккумулятора в ротор перегнал и раз! уже вверх тормашками над травой висит. Газонокосилка, блин…
Это правильно, что вы на квадрике будете лететь. Х-квадрик, он симметричный до тривиальности. А вертолёту, что классике, что сооснику, нужна регулировка миксеров на аэродинамических весах. Только это совсем не такие весы, про какие большинство сейчас подумало. Это крутильные весы. Вертолёт крепится на платформочку с подшипником посередине, крутится свободно. Когда ротор раскручивается, хвост должен компенсировать и аэродинамические силы, и момент инерции ротора, а когда раскрутился - только аэродинамические силы. Задача: чтоб вертолёт не разворачивало никуда, пока не будет на то воля создателя. В идеале нужно чтоб комп в вертолёт гнал всевозможные режимы и смотрел, куда платформа завертелась. То есть фотодатчик от колёсика старой мыши - и на какой-нибудь порт. Мне приходилось вручную кнопками ноуту сообщать, куда завертелось. А в принципе, из этих опытов можно и для ПИДов точные параметры вычислить.

ПНКист
Алфизик:

Газонокосилка

Для авиамодельного вертиплана не самая сложная фигура, реальному такое в ближайшие десятилетие не под силу.

Алфизик:

Х-квадрик, он симметричный до тривиальности.

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

digitall
Алфизик:

А в принципе, из этих опытов можно и для ПИДов точные параметры вычислить.

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

Dav
nvi93:

У меня уже месяца два как коптеры сами летают, если что, бегу к ноуту и давлю “экстренная посадка”, или просто “ловлю за ноги” и наставляю на путь истенный. 😃

гляньте как тут страхуют дрон от бокового “улета” - diydrones.com/…/open-source-computer-vision-module…

ssilk

Дык, гайдропы используют в авиации уже 230 лет…😁

Алфизик
digitall:

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

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

Алфизик
ПНКист:

Для авиамодельного вертиплана не самая сложная фигура, реальному такое в ближайшие десятилетие не под силу.

Оно, может, и никогда под силу не будет. У моделек неприлично низкое число Рейнольдса, они слабо возмущают среду. А что-то более-менее крупное, упираясь в воздух, разрывает его чуть ли не до вакуума. Утрирую, конечно.

ПНКист:

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

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

“Но только лошади летают вдохновенно,
Иначе лошади разбились бы мгновенно.”

Главное, что этот программный автомат перекоса изготавливать не надо - залил софт, и всё!!! А процессорные мощности растут с каждым днём, и их нужно наполнять правильным софтом.
Но только чтоб не получалось так:
“Зачем ставят блоки управления на неуправляемые ракеты? С целью повышения их неуправляемости!”

ПНКист

Во, и сайт заработал и моб. версии.

Алфизик:

Оно, может, и никогда под силу не будет. У моделек неприлично низкое число Рейнольдса, они слабо возмущают среду. А что-то более-менее крупное, упираясь в воздух, разрывает его чуть ли не до вакуума. Утрирую, конечно.

Проблема тут гораздо глубже.

Алфизик:

Тем не менее, квадрики получают всё большее распространение, большей частью из-за своей технологичности: отсутствует автомат перекоса (эмулируется программно).

Согласен полностью.

Алфизик:

“Но только лошади летают вдохновенно, Иначе лошади разбились бы мгновенно.”

+1…

Алфизик:

“Зачем ставят блоки управления на неуправляемые ракеты? С целью повышения их неуправляемости!”

Вы, коллега, озвучиваете девиз нашей команды. Жаль, что уже июль, а не январь.

Алфизик

2digitall: Нашёл, нашёл я ваш пост!!! Мне модем пришлось поменять, а то со старым какое-то горе. Такое ощущение, что он стал медленно накрываться медным тазом, через который радиоволны ходят всё хуже и хуже. Приношу 1024 извинения.
Посмотрел я ваши графики, почесал репу… Вообще-то так быть не должно. Первый график должен быть как и второй, только вывернутый наизнанку. Электродвигатели умеют набирать обороты быстро, а у вас этому мешает регулятор, он действительно самолётный. Если на самолёте резко повысить обороты, то произойдёт мгновенный рост крутящего момента, и соответственно, начнётся крен. То есть в регуляторе реализован плавный переход с режима на режим, чтобы регуляторы канала крена успевали подготовиться к росту крутящего момента, чтобы не перенапрягались и не вываливались из критерия применимости ПИДов вообще. Это нужно как-то бороть, ищите доку на свой регулятор, прошивку с быстрым реагированием. Может быть, заменить регулятор на самодельный?

PS: А может, люди и на таких регуляторах летают, а я и не знаю?

digitall
Алфизик:

PS: А может, люди и на таких регуляторах летают, а я и не знаю?

Ага, летают, вполне нормально летают:

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

slvn
digitall:

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

Там будет очень маленькая энергия. У Вас маленькие винты, легковесные, а магниты двигателя находятся на малом радиусе. Это не вертолет с огромным радиусом лопастей. В принципе, момент инерции мат. точки mr^2. Да, энергия еще будет пропорциональна квадрату угловой, но и это ничего не даст особо. Энергия при раскрутке винта расходуется в основном на лобовое сопротивление набегающего потока на винт, а не раскрутку системы винт-двигатель, преодолевая ее общий м.и. Так что не стоит, на мой взгляд, это учитывать в Вашем случае.
Задача регулятора поддерживать заданные обороты. И не важно растут они, или нет. Для этого анализируется ЭДС на пассивной обмотке, т.к. мы используем двигатели без датчиков. Как раскручивать двигатель, так и тормозить его можно только, воздействуя на обмотки. Худо-бедно с этим обычные регуляторы справляются. Только задача у них иная, еще и максимально сохранять энергию, да и сделать так, чтобы они сами не погорели, да и двигатель тоже. Еще и по этой причине стоят фильтры на резкое изменение оборотов. Сами понимаете, что вся такая резвость еще и приводит к большим рывкам тока, а при торможении - к выбросам обратной ЭДС. Не факт, что батарея на это способна, а также и сам регулятор по своей силовой части. Есть еще куча нюансов. Хотя бы те же длинные и накрученные абы как на самодельных коптерах провода с соответствующей индуктивностью. Какой там резкий рывок по току?.. Ну и еще много можно чего напридумывать, что влияет;)

digitall
slvn:

Ну и еще много можно чего напридумывать, что влияет

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

slvn
digitall:

и до сих пор нет полной уверенности стоит ли вообще об этом заботиться

Заботиться о том участке, где обороты не дают почти никакой подъемной силы нет никакого смысла, имхо. Я нашел Ваши графики, еще раз посмотрел. Посмотрел “на глаз”, т.к. шкала временная там у Вас не нарисована. На графике торможения почти половина указанного Вами времени (1.4 сек) приходится на обороты ниже 2000. Ничего почти такие обороты не дают. Так же “на глаз” показалось, что при изменении оборотов с 4000 до 6000, и разгон и торможение одинаковы по времени - 0,2 сек. И если Вы хотите увидеть более быстрое торможение, то на этом HK SS есть функция тормоза, которую можно запрограммировать. Но это не нужно. На мой взгляд, гораздо более принципиален тот параметр, что Вы указали: "Запаздывание примерно одинаковое: разгон 0,04 сек, торможение 0,03 сек. ". Вообще-то это очень много. А также стоит построить графики для меньшей дельты в оборотах, и разбираться уже в них.

digitall:

вполне нормально летают

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

digitall
slvn:

при изменении оборотов с 4000 до 6000, и разгон и торможение одинаковы

Верно подмечено, спасибо за уточнения! Только что проверил по графикам.
Касаемо запаздывания - таки да, но оно в большей степени обусловлено низкой частотой ШИМ (50Гц), что уже дает задержку до 0.02 сек только на смену параметра ШИМ в МК, а пока его еще регулятор измерит, пока отреагирует, вот и набежало 0.04 сек. ИМХО.
По конструктиву - специально разрабатывался под конкретную задачу (сразу понимал, что буду много его бить) и эксперимент оказался более чем удачным. Пробовал летать на улице - сдувает как перышко. Влияние отраженных потоков от стены немного снизилось за счет закрытой конструкции винтов, как и взаимное влияние друг на друга. А вот грузоподъемности оказалось - впритык. Возможно даже придется идти на компромисс, чтобы уложиться в 2 - 2,1 кг.
Очень хочется опробовать нормальную прошивку для регуляторов, но как известно лучшее - враг хорошего. Я этого никогда не делал, боюсь навредить и остаться без регулей в самый ответственный момент, но обязательно попробую позднее.