Pull to refresh

Comments 37

Классно.

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

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

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

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

Я баловался с разными фракциями песка, в разных количествах, в пальце медицинской перчатки, например. Тоже работает, но надо навешивать аккуратно.
UFO just landed and posted this here
Да, безусловно, нужна ещё фильтрация данных потом (не обязательно Калман). Но тут речь идёт о том, как получить то, что можно скормить фильтру Калмана на вход.
UFO just landed and posted this here
Изолировать моторчик — хорошая идея, но не вместо, а в плюс к изолированию датчиков. На коптерах, к слову, так и делают:
Скрытый текст



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



Если посмотрите моё видео, то при работе моторчик стрекочет, это именно оно, поэтому только балансировкой тут не обойтись.
UFO just landed and posted this here

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

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

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

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


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


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

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


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

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

а почему не электронный/софтверный нч фильтр?
Датчик уходит в насыщение, поэтому выдаёт неотфильтровываемый мусор. Ну и быстродействие снижается сильно с ФНЧ.
Sign up to leave a comment.

Articles