Кому лимон?
Я этого никогда не делал, боюсь навредить и остаться без регулей в самый ответственный момент, но обязательно попробую позднее.
Верно, не делайте ни в коем случае сейчас. Времени впритык. Его нужно максимально тратить на другое. У меня вот лично как раз горький опыт последствий экспериментов, чтобы было еще лучше - это не прохождение КТ3.
и до сих пор нет полной уверенности стоит ли вообще об этом заботиться.
Ну хорошо, давайте начнём с того, что же такое ПИД-регулятор и для чего он. Владислав, вы правильно заметили, регулятор меняет значение ШИМ, и далее обороты устремляются к новому значению по экспоненте. Так вот, задача правильного регулятора заключается в том, чтобы к новому значению приходить не по экспоненте, а как можно более “квадратно”. Вы можете возразить, что быстее, чем по экспоненте не получится, но вы выбрали самый крайний случай - изменение до максимальных оборотов. А вот предположим, что нам нужно изменить обороты с 2000 до 3000. Как будет действовать правильный регулятор? Он сначала выдаст максимальное значение, и когда обороты достигнут 3000, выдаст значение ШИМ, при котором обороты установились бы на этом уровне. Крутой кусок экспоненты послужит для перехода от одного значения к другому, так быстрее всего, “квадратнее”. Регулятор может быть как с обратной связью(измеряет обороты), так и без неё. Во втором случае в регуляторе должна быть реализована функция, которая компенсирует запаздывание раскрутки ротора. Поскольку ротор является интегратором, ему в пару нужен дифференциатор, реализованный программно. Теперь о том, “заботиться о разнице или нет”. Регуляторы оборотов двигателей входят в другую, более сложную систему регуляторов крена-тангажа. Эта система имеет совершенно другие временные параметры, обусловленные моментами инерции летательного аппарата по соответствующим осям, эти моменты гораздо больше, чем у пропеллеров. И ещё в регулирующие системы вносят задержку, подтормаживают их, чтобы не происходило перерегулирование, когда регулятор слишком сильно-быстро поменял параметр, и ему приходится тут же отрабатывать обратно, туда-сюда, неустойчиво, с колебаниями. Вот эта разница задержек при раскрутке пропеллеров и при остановке может оказаться каплей в море в задержках во всей этой регулирующей системе. А может и не оказаться. Если в системе регулирования есть запас устойчивости, можете не напрягаться. А если захотите отрегулировать систему на “самый оптимальный оптимум” между быстродействием и устойчивостью, придётся в ней “выбрать все зазоры”, тогда и до регуляторов двигателей придётся докопаться и домотаться.
Регулятор может быть как с обратной связью(измеряет обороты), так и без неё
В отношении регуляторов бесколлекторных двигателей (синхронных), они вроде без обратной связи не бывают, если нет отдельных датчиков холла, то снимается ЭДС самоиндукции с обмотки, которая в текущий момент времени не используется (исключение составляет момент старта двигателя, там несколько вариантов).
Со всем остальным полностью согласен. Спасибо за науку!
Слава богу у нас пока не предельный случай и “выбирать зазоры” будем чуть позднее, в другой раз. В любом случае все вышесказанное “взял на карандаш”.
Спасибо за науку!
Рад стараться.
Жаль, что уже июль, а не январь.
Время, вперёд! Я знаю, у вас в Иркутске время на несколько часов от Москвы вперёд, но не на несколько суток же. Или вы вместе со своим крутолётом попутно сотворили машину времени? Ма-а-аленькую такую, ближнего радиуса действия…
Как там с неуправляемостью? Похоже, с ней у многих команд полный порядок. Я завтра хочу отписать про иерархию ПИД-регуляторов, надеюсь, поможет. Чтоб хоть к КТ4 у всех всё летало, может и не шустро, но устойчиво. А то мы с вами такой финал получим…
Большой АрДронный Коллайдер, вот что это будет. Там элементарными частицами всё будет усеяно. Я такой финал не хочу.
Вот, собственно, про ПИДы. Сколько их должно быть всего? А сколько степеней свободы у летательного аппарата, плюс к тому, сколько у него органов управления. Для дрона три оси перемещательных, три вращательных и четыре пропеллерных. Для вертолёта тоже всё пересчитываем, оси рулевых машинок в автомате перекоса тоже не забываем. Про пропеллерные ПИДы чуть выше немного обсудили, поэтому начну с другого края. Например, ПИД канала высоты, для чего он нужен? Какой информацией он оперирует? Нужен для того, чтобы после получения команды, допустим, “набрать высоту 1 метр” спустя минимальное время аппарат оказался на 1 метр выше, чем был, при этом остальные параметры полёта оказались возможно более близкими к первоначальным. Это существенно, а то ведь можно так нарегулировать, что высоту наберёт, и скорость заодно, и ещё дальше полетит по инерции, беги-лови его. А дальше объясняю на простых примерах, от простого к сложному. Как выполнялся бы манёвр космическим кораблём в невесомости? Импульс двигателем в одну сторону, через некоторое время - в другую. А вертолёт что сделает? Прибавит обороты(либо шаг, у кого как), набирая вертикальную скорость, а после убавит, не до висения, а ещё меньше, и по инерции взойдёт на заданную высоту, и только на ней восстановит прежние параметры. Для всего этого ПИД оперирует несколькими данными, прежде всего массой и либо ускорением(с акселерометра), либо тягой(от оборотов). Есть другие параметры, о них попозже. Итак, акселерометр. Иногда кажется, что он вообще кажет что хочет, реагирует на любой стук, даже в покое ведёт себя беспокойно, а на вибрирующем вертолёте - и подавно. При этом проинтегрировать его показания один раз, чтобы получить скорость, и проинтегрировать скорость, чтобы получить перемещение, вот эта задача весьма нетривиальная. При интегрировании константа выплывает, при втором - вообще всё убегает со страшной силой. Поэтому акселерометр - только для того, чтобы констатировать, что переходный процесс успокоился, и ускорение равно земному. А весь остальной манёвр - за счёт физики процесса. Кстати, хороший фильтр для акселерометра сегодня выложу. Пойду материал по нему готовить, а вы пока осмысливайте.
Пойду материал по нему готовить, а вы пока осмысливайте.
Дмитрий, хорошее дело затеяли, многим не хватает общей, так сказать концептуальной информации по этой науке. С нетерпением ждем продолжения!
Люди, я вам обещал интересный фильтр для акселерометра, но у меня тут ситуация дурацкая: видит око, да скриншот неймёт. Помогите себе сами, хорошо? Я вам сейчас распишу, что и как.
1.Берём поток данных от реального акселерометра в реальных условиях. Не в полёте, лучше в руках держать.
2. От этих значений находится экспоненциальная средняя Y1=X*K+Y0*(1-K);
Вот с этим К придётся немного поэкспериментировать.
3. Ещё две экспоненциальные средние находим, но с условиями: у одной значение обновляется только когда данные выше или равны вот той первой средней, а у другой - ниже или равны. У обеих коэффициент меньше чем у первой раз в 5 (т.е. медленнее). Должны получиться две более-менее стабильные границы, средняя постоянно мотается между ними. Не обращаем на неё внимания, пока она не попытается оттуда выйти.
4. А вот если попыталась, то тащим обе границы вслед за ней. То есть сдвигаем обе ровно настолько, насколько попыталась выйти.
5. Между этими двумя границами находим ( A+B )/2, это и считаем показаниями акселерометра.
Сделайте, пожалуйста кто-нибудь и выложите сюда, а то мне некогда разбираться почему не получается, на работе конец месяца, могут премировать, а могут кремировать.
Сделайте, пожалуйста кто-нибудь и выложите сюда,
Попробую реализовать сегодня-завтра, как время позволит. Несколько небольших вопросов ,возможно не очень умных, показания берем откалиброванного акселерометра или “raw”? на какой диапазон настроить? и на какую частоту настраиваем выдачу показаний (от этого зависят параметры шума)? Нужно ли подстраивать внутренние цифровые фильтры акселерометра? На всякий случай уточню, использую комбинированный датчик LSM303DLH от ST c 12-разрядными сырыми данными. Обмен по I2C на 200кГц (магнитометр почему-то на 400кГц не откликается).
Да и, если можно, пару слов о физике/математике фильтра, чтоб лучше понимать что искать и куда смотреть.
Я мучил акселерометр ММА7455, он не интеллектуальный вовсе, 10 разрядов на 8g, данные абсолютно сырые, снимаются когда сам выставит готовность, частота шины - любая, успевает. Можно с любым проделать.
Стохастический подавитель какой-то. Физика фильтра мне самому не совсем понятна. Я не люблю такие вещи, которые раздирают данные напополам. Но он работает, и гладит хорошо, и реагирует быстро по сравнению со всем остальным. А глядеть графики хорошо, когда они ВСЕ на экране. Сразу видно, что было и что стало. Коэффициент подбирать, чтобы средняя моталась почти до самых границ, но не задевала их, а то потащит.
Стохастический подавитель какой-то
Я так понял, что его лучше использовать с сырыми данными, до умножения на матрицу калибровочных коэффициентов, можно даже потом попробовать откалибровать заново, есть подозрение, что коэффициенты немного изменятся.
Ролики от КРОК
www.youtube.com/user/crocrobots
Мы сняли ролик про полигон, рассказ о том что мы ждем от участников к КТ4, ну и полет нашего собственного коптера в автоматическом режиме.
И для развлечения участников два ролика про отладку,
в сильный ветер:
и тест горизонтальной стабилизации, в тот же день:
Мой прогноз таков: на полигоне КРОК КT4 пройдут 7 команд, из них будет 3 Ar.Dron-a, которые выполнят задание случайно.
Сегодня на нашем полигоне первая команда продемонстрировала выполнение КТ4. На Ардроне 😃
Не могли бы Вы выложить несколько клипов с бортовой камеры - пролет коридора, подлет и посадка на крест, не пожатых ютубом, в низком разрешении ?
(для настройки софта)
Сегодня сняли несколько подлетов к площадке с борта, но забыл флешку в офисе 😦. Завтра постараюсь выцепить…
А что за ветер дует? Вроде стены по периметру? Сквозняк от пола?
Стремно как-то если порыв ветра швырнет аппарат на стену…
А что за ветер дует? Вроде стены по периметру? Сквозняк от пола?
Стремно как-то если порыв ветра швырнет аппарат на стену…
Ничего критичного на самом деле. Стены очень хорошо защищают от ветра, но внутрь задувает, то есть такого что “швырнет на стену” не будет, всегда будет несколько секунд чтобы посадить 😃.
Но он ощущается, и PIDы, отрегулированные на полет “с достоинством” в комнате, просто не позволяли аппарату развивать скорость для полета против ветра.
Летать быстрее ветра… Опасно, но очень хочется. Только придётся очень внимательно контролировать кинетическую энергию, а то ведь она от скорости растёт в квадрате. Вот, например, как выполняется кинетический старт.
Представьте, вертолёт стартовал, на регуляторе максимальное значение, ротор интенсивно раскручивается, но тяги ещё недостаточно, чтобы взлететь. Фильтр акселерометра уже начал работу, он настраивается под вибрации, но среднее значение будет 1g, поскольку вертолёт ещё не взлетел. Вот это значение нам очень нужно. Ещё у нас есть два сумматора, в один мы будем складывать значения акселерометра за вычетом земного тяготения, то есть интегрировать будем, и период получения данных у нас dt. А в другой - значение из первого сумматора, тоесть двойное интегрирование делаем.
Вертолёт оторвался от поверхности и стремительно уходит вверх, первый интегратор тоже убегает вверх, он показывает вертикальную скорость. Из этой скорости мы можем вычислить кинетическую энергию вертолёта как масса умноженная на квадрат скорости и делённая пополам. Второй интегратор следует за ним, показывая высоту. Наш вертолёт не просто так взлетел, ему задана целевая высота h, в этой точке его потенциальная энергия будет mh. Из значений интеграторов находим мгновенные значения потенциальной и кинетической энергии. В момент, когда их сумма станет равна нужной нам целевой потенциальной энергии, мы выключаем двигатель. Нет, тормозить его не будем, просто прекращаем качать в него энергию. Пропеллер по инерции продолжает вращаться, ведь он только что давал максимальную тягу. Но показания акселерометра коренным образом поменялись, он показывает отрицательное ускорение. Поэтому интегратор скорости развернулся и бежит от плюса к нулю. И вот когда он прибежит к нулю, только тогда мы переводим двигатель на режим висения. Как вы думаете, где в результате окажется вертолёт? Где надо, там и окажется. Летать быстрее ветра можно. Только вот летать быстрее, чем думать, не надо. Мы уже знаем, чем это заканчивается. Летательным исходом.
Сам себя поправлю. Совсем отключать энергию от двигателя на летящем вертолёте нельзя. Представьте висящий на месте вертолёт. Его потенциальная энергия не меняется, кинетическая тоже. Однако он расходует энергию. Этот расход состоит из двух частей, я назову их “налог на висение” и “налог на устойчивость и управляемость”. Если первую часть энергопотока можно спокойно на некоторое время отключать, то вот вторую нельзя отключать ни в коем случае!!! Угроза аварии носителя!!! Проверено, мины есть. Я кстати, обнаружил, что такое “неуловимо погнулось” в наших вертолётах. Зубья в передаче от двигателя к ротору. Если навести механический лупоглаз(объектив от старого фотоувеличителя), то картина предстаёт во всей красе. Кинетическая энергия - она такая, она не могла бесследно исчезнуть.
Лихо это Вы закрутили…) Надеюсь Вы имели ввиду модель вертолета? Да еще и соосник к тому же… ) Потому что в настоящих (да и не только) ротор раскручивается на земле, до рабочих оборотов, а тяга регулируется изменяемым шагом… Вплоть до отрицательной…
Лихо это Вы закрутили…)
Продукция “Лаборатории безумного учёного”, выбывшей в КТ3 команды.
Надеюсь Вы имели ввиду модель вертолета? Да еще и соосник к тому же… )
Да, речь действительно идёт о 30-граммовом микровертолёте. Мы в конкурсе новички, обставить тех, кто давно летательными аппаратами занимается, у нас всё равно бы не получилось. Поэтому мы решили сильно не тратиться, а бросили клич, что собираем полурабочие/нерабочие летающие игрушки. Скоро у нас этих вертолётиков собралось целое помойное ведро. С ними и начали опыты. Увлекательнейшее занятие, я вам скажу. Этот конкурс - вообще такой “спортзал для мозгов”, прям драйв и адреналин.
Ну так вот, я продолжу размышления о вертикальном маневрировании. Я вот о посадке думаю. Вот висит вертолёт, потенциальная энергия =mh. Надо у него эту энергию отнять. К двигателям поток энергии идёт на нужды висения вертолёта. А если из этого энергопотока вычесть лишнее? Тупо по электросчётчику, в ватт-часах, джоулях или милливатт-секундах, как вам будет удобно. Вертолёт ведь спустится, никуда не денется. У нас такая картина происходила, когда переводили двигатель с оборотов висения в свободном пространстве на обороты висения на подушке. Разница небольшая, спуск медленный. А нужно быстрее. У нас гонки или не гонки?
Причём эту лишнюю энергию можно вычесть в произвольном порядке, вертолёт в силу наличия у его массы всё равно это воздействие проинтегрирует. Интересно получается, правда? По акселерометру летали, по гироскопу летали, по электросчётчику ещё ни разу не летали!
Вот висит вертолёт, потенциальная энергия =mh. Надо у него эту энергию отнять.
mgh. Хотя и не в ней дело. Дело больше в ускорениях. И не только при вертикальном перемещении, а в горизонтальном тоже. В техкарте, кстати, вопрос про скорость как-то некорректно звучит. Хотя, для тихолетов может быть. Если хотите оочень быстро приземлиться, включаете отрицательный шаг. А при приземлении положительный, чтобы не разбиться соответственно. Только физику всю нужно четко просчитать и заранее. Иных вариантов быть не может. Вертолетов с флайбаром и детскими лопастями не касается, естественно. Я вот тоже когда-то соорудил аппарат с флайбаром, но это такая гадость оказалась. А что я хотел, собственно, от механической системы с дикой инерцией. А при быстром приземлении с ним аппарат уходил в дикий “унитаз”. Тем не менее, была интересная машинка, в первую очередь тем, что получился соосник без редукторов на б/к движках. Думаю идею как-то воплотить все ж.
У нас гонки или не гонки?
Я вот тоже думал, что гонки, но уже понял, что ошибался. Хотя бы по тому, что показывает сам Крок. Угол тангажа ограничили уж слишком сильно. Градуса в 3, наверное. Какая там горизонтальная составляющая… Да и с ветром простым аппарату было не справится. Это основная причина того, что не удалось приземлиться на площадку во втором видео, имхо:
И для развлечения участников два ролика про отладку,
Увеличьте максимальный тангажа градусов до 8-10 хотя бы. А то так совсем все грустно. Нет возможности сманеврировать никакой. У вас с такими винтами вполне должен быть запас по тяговооруженности. Я понимаю, что весит он около 2,7 кг, и страшновато. Но если “по рабоче-крестьянски”, откинув тонкости и побочные эффекты, то тяга винтов для горизонтального полета коптера с тангажем альфа будет примерно равна mg / cos (альфа) . Т.е. для малого угла не так и много.
Этот конкурс - вообще такой “спортзал для мозгов”
С этим абсолютно согласен. Меня он как-то сдвинул с мертвой точки в плане электроники. А по леталкам вообще получил большой заряд для творчества, а то коптер уже в углу валялся давно и никакого интереса у меня уже не вызывал. Только чего-то под конец драйв у меня кончился, скорее, движок просто закипел от избытка адреналина в топливе:)
Да и лето все ж. Хочется уж когда-то отдохнуть. В июле отпуск, хотел как раз его потратить на конкурс целиком. А теперь смотрю немного иначе на это дело, и хорошо что вылетел. Теперь месяц семье уделю, а не вертолетам. Да и на вертолеты, возможно, посмотрю несколько иначе, со свежей головой. Летом удобно полетать, протестить в поле, но сами конкурсы, на мой взгляд, летом проводить не очень хорошо. Лучше ближе к концу осени. Летом человеческий организм больше на отдых как-то настроен. А энергии и сил нужно много на подготовку к подобным мероприятиям. Особенно, если ты все делаешь в одиночку. Командам, думаю, тоже не сладко от такой подготовки летом. Кто-то в отпуск хочет, многие же летом хотят, у кого-то семья, дети, нужно их на море, ну и т.п. Это я выражаю свое мнение, может оно и не совсем правильно. Но, думаю, что стоит обсудить оптимальное время проведения будущих конкурсов.
Думаю что у крока квадр сильно перегружен, нет запаса по тяге (моторы почти на максимуме). У меня был изначально квадр на нуке, очень тяжело летал. Теперь гекса на нуке, в ветер ее конечно носит, но деваться некуда. Для квартиры гекса слишком здоровая, остается только на улице тестировать. Ветер эт +1 к уровню адреналина.
Спортзал не только для мозгов, но и для рук. У меня все оборудование (вместе с вертолетом) в чемодан умещается, в сумме там 12 кг (верт, груз, аппа, роутер, планшет, старт.площадка, чумадан)… каждый день прокачиваюсь… если конечно футболлеры на аэродроме не бегают …
Ролики от КРОК
Мы сняли ролик про полигон, рассказ о том что мы ждем от участников к КТ4, ну и полет нашего собственного коптера в автоматическом режиме.
Может ли отличатся ориентация “крестов” (в виде “+” со стороны полёта), от представленной в презентации? А именно, линии крестов параллельны стенам полигона, или возможен поворот?
Что мы можем увидеть, “+” или “Х” или что-то третье, если будем двигаться по центру вдоль длинной стороны?
В новостях показали последствия грозы в Москве. Как полигон, не пострадал?
Думаю что у крока квадр сильно перегружен, нет запаса по тяге (моторы почти на максимуме)…
Мне тоже так показалось, т.к. пилот держит ручку газа приблизительно 3/4 от максимума, а возможно ещё центр масс не удачный, из-за лидара.
Сообщение от askoog
Думаю что у крока квадр сильно перегружен, нет запаса по тяге (моторы почти на максимуме)…
Мне тоже так показалось, т.к. пилот держит ручку газа приблизительно 3/4 от максимума, а возможно ещё центр масс не удачный, из-за лидара.
На самом деле, все не так страшно. В реальности коптер висит при 50% газа, 3/4 выставилено исключительно для запаса по управлению газом. Логика взаимодействия такова, что максимальный газ, который контроллер выдаст на моторы, сверху ограничен значением, получаемым с пульта РУ. Т.е. независимо от того, какое управление придёт с вычислителя, коптер в вверх “на все деньги” не уйдёт, а всегда по максимальному значению будет ограничен “большим братом” в лице РУ на те самые 3/4