Algorithms
Mathematics
Programming
Programming microcontrollers
Robotics development
Comments 37
0
Классно.

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

P.S. Привет Чье Ен Ун, и всей кафедре «Автоматики и системотехники» ТОГУ.

+1
Так а что мешает эти лабораторные делать дома? Я, собственно, на дому и учусь :)
0
Ничего не мешало :)…
собственно я тоже на дому учился, только немного другому.
И теперь это немного-другое помогает мне зарабатывать деньги. В управлении автоматикой, я не участвовал и не участвую.
+1
Ну а я в качестве хобби разбираюсь с ТАУ, ну и публикую тут. Вдруг кого вдохновит.
0
В акселерометрах обычно есть встроенный LPF-фильтр. Если частота сэмплирования небольшая, то можно настроить его отсечку в два-три раза ниже этой частоты, и он уберет все вибрации, при этом не потеряв (проинтегрировав) данные. Но, кончено, это не исключает пользу правильно-настроенной виброразвязки.
+1
Я не очень разбираюсь в предмете, но когда вы говорите про интегрирование, вы точно говорите про акселерометр, а не про связку акселерометр + датчик угловых скоростей?
0
Нет, только про акселерометр. Интегрирование выполняет фильтр, считывая данные на высокой скорости и выдавая на низкой. Если частота динамики процесса гораздо ниже частоты вибраций, то он поможет. Например, поставьте его на 20Гц и все что выше, он уберет.
+1
А, вы про обычный oversampling. В моём случае не поможет, т.к. вибрация ещё и насыщает датчик.
0
Тогда да, не поможет. Нужно выбирать диапазон погрубее. Кстати из-за высокой шумности таких датчиков, я вообще не понимаю зачем нужны диапазоны меньше 16G — в покое уровень шума в несколько раз больше, чем LSB (минимально-значащий бит) на этом диапазоне.
0

Чисто теоретически можно попробовать что либо из смесей силикона/каучука/геля, эти материалы вроде как сильно гасят вибрации.
Ну или отобрать у ребёнка "лизуна"
Ну и совсем экзотическое -сделать из амбюшур от наушников,(вывернуть часть наружу) приклеив их геометично что то вроде пневмо демпфера…
Ну а так полет фантазии не ограничен, извращаться можно по разному, но если это не поможет- всегда есть губка для посуды:-D

0
Я баловался с разными фракциями песка, в разных количествах, в пальце медицинской перчатки, например. Тоже работает, но надо навешивать аккуратно.
0
Из классики для подобных случаев — Фильтр Калмана, стоит попробовать имхо.
0
Да, безусловно, нужна ещё фильтрация данных потом (не обязательно Калман). Но тут речь идёт о том, как получить то, что можно скормить фильтру Калмана на вход.
0
Еще вариант (возможно посложнее) попробовать поработать не не с датчиком, а с источником шума — изолировать двигатель (установить на виброопоры), доработать сам двигатель — отбалансировать ротор и маховик, заменить подшипники (на более точную серию или даже на подшипники скольжения (если сейчас шариковые))
По поводу виброопор (и для двигателя и для датчика) — тут правильно советовали силикон. Простейший вариант для домашнего изготовления — «отлить» в пластилиновую форму из сантехнического силиконового герметика. Сразу же с закладными шпильками из винтов для крепления. Характеристики опоры потом легко подбираются подрезкой, вырезанием окон ножом.
0
Изолировать моторчик — хорошая идея, но не вместо, а в плюс к изолированию датчиков. На коптерах, к слову, так и делают:
Скрытый текст



Балансировать не поможет, т.к. вибрация — это практически неизбежная вещь. Вот, посмотрите на график момента, выдаваемого моторчиком (самый нижний):



Если посмотрите моё видео, то при работе моторчик стрекочет, это именно оно, поэтому только балансировкой тут не обойтись.
0
а, точно, это же у вас такой шаговик получился. только видимо со слишком крупным шагом.
крутить быстрее (возможно маховик придется поменять или этот через редуктор) — частота будет больше, вибраций меньше (больше частота — меньше амплитуда, проще погасить)
0

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

+2
Очень интересно! Кульбит с двумя акселерометрами впечатляет своей эффективностью и простотой.
Остался вопрос, почему не закрепить акселерометр максимально близко к оси вращения. В этом случае r мало, и погрешностями от угловой скорости и центростремительного ускорения, скорее всего, можно пренебречь. Или здесь скрыт подводный камень?
+2
Да, можно попробовать закрепить один акселерометр прямо на оси, вполне себе вариант, но не всегда реализуемо механически.
0
Не совсем понял вот что: акселерометр на коротком плече (№2 на втором графике, как я понял) дает по сути те же измерения, только с меньшей амплитудой, при этом акселерометр на длинном плече не только амплитуду меньшую дает, но и форма искажена, и даже фаза (причем капитально в некоторых местах). Здесь точно не было проблемы с закреплением акселерометра на длинном плече? Наивное мнение: проблемы с фазой должны быть (или не быть) в обоих случаях с некоторым (нелинейным) коэффициентом. Вероятно просто порог заметности этих проблем пролегает как раз между точками закрепления этих акселей. Надо бы промоделировать вашу механику, только пока не пойму как именно…

И спасибо вам за прекрасный пример того, что просто «проложить что-нибудь мягкое» отнюдь не достаточно для гашения вибраций. Я в свое время очень много сил потратил на то, чтобы объяснить это коллегам, да так и не смог переубедить некоторых (хотя я по диссертации чуть ли не специалист в области колебаний). Признаться мне тогда просто не хватило времени, чтобы такой наглядный физический эксперимент продемонстрировать. Теперь можно просто кидать ссылку на ваш пост. :)
0
Нет, не было проблем с закреплением. Не забудьте, что графики «сырых» данных с акселерометра — это только угол вектора ускорения, но никак не его величина. Возможно, что это вас ввело в заблуждение. Разумеется, величина ускорений, измеренных на длинном плече, больше.
0
Да нет, я понял, что это графики углов. Меня удивляет такое сильное искажение на длинном плече по сравнению с коротким.

А вы не можете как-то выложить данные, по которым построены кривые на втором графике? Было бы интересно поковыряться с ними на досуге.
0
Вот .csv файл. Последние четыре столбца — сырые данные с акселерометров, в единицах «же». То есть, (xa,ya) = (0,-1) означает минус один же по вертикали.
0
Меня удивляет такое сильное искажение на длинном плече по сравнению с коротким.


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


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

По поводу датчика на оси вы уже писали кажется, что его повесить не получается. Ну и в принципе также очевидно, что идеальное совпадение осей невозможно обеспечить в подобной конструкции.
0
В данной конструкции вполне можно было бы и на ось повесить, ну да это не суть важно. Характер искажения — у меня не свободно качающийся маятник, ему ускорение придаётся моторчиком. По одной оси искажения — это ускорение, а по второй — квадрат скорости. Там ни про какую фазу говорить не приходится.
0
Характер искажения — у меня не свободно качающийся маятник, ему ускорение придаётся моторчиком


Ну это не так важно, если мы конечно показаниям инклинометра доверяем.
0
А что вы называете инклинометром в данном случае? Энкодер? Да, это подходящий эталон.
0
Да, я имел в виду измеритель на базе энкодера. Я просто не вдавался в детали того, как вы его используете, поэтому и спрашиваю, насколько мы ему доверяем.
0
Как вариант, моторчик демпфировать обычной полиуретановой прокладкой по статору (если я правильно разобрал его), уже будет лучше.
Также можно попробовать применить демпферы из CD/DVD приводов, там как раз они используются для демпфирования вибраций моторчика диска.
0
1. Скажите, сталкивались ли вы с автоколебаниями маятника? И если да, как боролись с этим в программе управления?
2. По вашему мнению, возможно ли здесь использовать вычислительную нейросеть (обучить и использовать) вместо фиксированного алгоритма управления? Интересно, что окажется эффективнее.
0
По автоколебаниям не скажу, а нейросеть сделать совсем не проблема. Только в данном случае она вряд ли будет работать лучше, так как для такой простой системы у нас есть решение в явном виде…
+1

Как мне кажется, в такой системе автоколебание возникнут от неудачно выбранного управления или от проблем с механикой/датчиками.
Нейросеть, наверное, можно обучить. Но надо понимать, зачем. Если для себя и из любопытства, то это одно. А если для повышения качества управления, то я несколько сомневаюсь.

0
Датчик уходит в насыщение, поэтому выдаёт неотфильтровываемый мусор. Ну и быстродействие снижается сильно с ФНЧ.
Only those users with full accounts are able to leave comments. , please.