Easyelectronics.ru

Электроника для всех
Текущее время: 21 ноя 2018, 13:19

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 21 май 2018, 19:02 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 792
Хм... Вообще, можно использовать то, что в шаговых движках мы можем прямо по скорости управлять. Это уменьшает размерность задачи. Черт. Надо посчитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 21 май 2018, 19:07 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
Сейчас два ПИДа.

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

Если эту "вертикаль" отклонять - он поедет в сторону наклона.
Вот это "отклонять" и есть самое сложное.

Делал управление этой "вертикалью" (target_angle) напрямую, с пульта (на пульте ещё MPU6050), получилось прикольно, вроде гироскутера или сигвея.
Этакий тренажёр.

Сейчас там у меня второй ПИД.
Отклонение текущей скорости от заданной - пропорциональная составляющая.
Пройденное расстояние - интегральная составляющая.
Д - практически не работает, т.к. выделить/отфильтовать ускорение не получается.

Ну не складывается в голове у меня пазл: заданная скорость, текущая скорость, target_angle.
Разница между первыми двумя должна управлять третьим. Вот эту зависимость и надо придумать/вычислить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 21 май 2018, 19:34 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 482
Так чем управляете не сказали. Что на выходе первого ПИД?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 21 май 2018, 19:36 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 792
При движении с постоянной скоростью target_angle в идеальной системе практически равен нулю. (ошибка есть в следствии трения, но она весьма небольшая). Если target_angle - ненулевая константа, это режим движения с постоянным ускорением.

Хм... К чему это я...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 22 май 2018, 04:26 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
amaora писал(а):
Что на выходе?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 22 май 2018, 04:34 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
Mirmik писал(а):
target_angle в идеальной системе практически равен нулю

Ключевое слово - идеальной. :)
Нам (мне :)) этот случай неинтересен. Идеальная система возможна только в матлабе и т.п.
Вот что нужно:
https://youtu.be/kGyWh1L48XA
Вот это - предел моих мечтаний... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 22 май 2018, 13:46 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 792
На самом деле, в неидеальной тоже. Против физики не попрёшь. Наклон приводит к ускорению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 22 май 2018, 21:46 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 482
DPANYTA писал(а):
amaora писал(а):
Что на выходе?

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


То есть задаете скорость, а я предлагаю попробовать задавать ускорение. Тогда надо будет интегрировать выход регулятора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 23 май 2018, 03:46 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
amaora писал(а):
предлагаю попробовать задавать ускорение

Зачем?
Почему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 23 май 2018, 12:35 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 792
DPANYTA писал(а):
amaora писал(а):
предлагаю попробовать задавать ускорение

Зачем?
Почему?

Шаговые двигатели управляются частотой, то есть скоростью. Это отличается от того, что получается для обычных моторов постоянного тока, которые управляются мощностью, то есть ускорением.

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

ИМХО, система с прямым управлением скоростью потенциально лучше, но у нее другая математика.

...

Уже и не надеюсь дорваться до расчета.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 23 май 2018, 13:40 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
Скорость, ускорение. Шаговые, коллекторные.
Что то я не чую разницы. В математике.

Ну даже если она есть, не фиг ли с ней?
Первый ПИД работает. Отлично работает.

Заморочка со вторым регулятором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 23 май 2018, 21:01 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 482
DPANYTA писал(а):
Скорость, ускорение. Шаговые, коллекторные.
Что то я не чую разницы. В математике.

Ну даже если она есть, не фиг ли с ней?
Первый ПИД работает. Отлично работает.

Заморочка со вторым регулятором.


Ваш метод работы: Есть параметр, берем от него прозводную, интеграл и делаем ПИД, и фиг с ней с математикой и физикой.

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

Хотя и на несколько контуров бывает удобно разбить управление. Обычно это удобно когда нет взаимовлияния этих контуров, один быстрый другой медленный например. Здесь уже получается абстракция и разбиение на подзадачи. Но не всегда так можно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 24 май 2018, 04:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
А какова будет формула для шаговиков?

Я никак не уловлю разницы между управлением скоростью и управлением моментом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 24 май 2018, 13:01 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 231
Mirmik писал(а):
Шаговые двигатели управляются частотой, то есть скоростью. Это отличается от того, что получается для обычных моторов постоянного тока, которые управляются мощностью, то есть ускорением.

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

Может я чего-то не понимаю в шаговых двигателях, пока работать не приходилось, но не совсем понимаю, как вообще ускорением и, соответственно, моментом на нем можно управлять? Он же по определению там вечно пульсирующий получается.
Если пытаться управлять моментом, то соответственно надо из колебаний тока пытаться определять положение вектор магнитного поля, а это уже попахивает векторным управлением. Думаю, ТС не стоит соваться в такие дебри.
Да, математика становится похожей на типичные коллекторные двигатели. Но тогда вопрос: не проще ли в таком случае взять коллекторный двигатель, или вообще BLDC?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 24 май 2018, 13:09 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 231
DPANYTA писал(а):
А какова будет формула для шаговиков?

Я никак не уловлю разницы между управлением скоростью и управлением моментом.

Относительно к двигателям постоянного тока управление моментом эквивалентно управлению ускорением при определенной нагрузке на вал. Т.е. если мы не будем управлять моментом, а сразу скоростью, то при разной нагрузке переходной процесс по скорости и уж тем более положению будет существенно гулять. К обратному маятнику это особенно применимо, т.к. переменной нагрузкой на вал является земное тяготение. С контуром регулирования момента, соответственно, переходной процесс при переменной нагрузке будет стабильнее, т.к. этот контур соответственно определяет, если уж совсем на пальцах объяснять, как много нужно поддать тока, чтобы выйти на нужную скорость за установленное время регулирования при конкретной нагрузке.
А про разницу между шаговым управлением и подчиненным трехконтурным довольно внятно описано здесь: https://geektimes.com/company/npf_vektor/blog/274096/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 24 май 2018, 22:23 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 482
Ускорением я предлагал управлять просто изменив управление скоростью. То есть была функция задания скорости вращения set_speed(u), а теперь мы будет подавать туда в интеграл от ускорения, s += u; set_speed(s); примерно как-то так. Входная переменная u была скоростью а стала ускорением.

Но это дает лишь некоторое приближение к управлению моментом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 24 май 2018, 22:44 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 231
amaora писал(а):
Ускорением я предлагал управлять просто изменив управление скоростью. То есть была функция задания скорости вращения set_speed(u), а теперь мы будет подавать туда в интеграл от ускорения, s += u; set_speed(s); примерно как-то так. Входная переменная u была скоростью а стала ускорением.

Но это дает лишь некоторое приближение к управлению моментом.


Ну в принципе это вариант: получается корректирующее звено своеобразное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 25 май 2018, 04:20 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 17 сен 2011, 11:02
Сообщения: 30
Откуда: Бурятия
Во во. Вот и в исходниках B-Robota интеграл.
Вот "выжимка":
Show

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

Понятно с коллекторниками и датчиком тока. Там момент измеряется.
А с шаговиками - "измеряется" скорость вращения, а не ускорение.
Где то я не прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Балансирующий робот.
СообщениеДобавлено: 25 май 2018, 14:21 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 231
DPANYTA писал(а):
Понятно с коллекторниками и датчиком тока. Там момент измеряется.
А с шаговиками - "измеряется" скорость вращения, а не ускорение.
Где то я не прав?


Ну вот тов. Amaora и предлагает, что раз током непосредственно нельзя управлять в шаговике, то в самом первом приближении подойдет интеграл от ускорения как величины, пропорциональной моменту. Т.е., как я понял, перед ПИД-регулятором скорости нужно поставить интегрирующее либо апериодическое звено, которое будет корректирующим в данном случае.

А еще лучше - отдельный контур регулирования ускорения. С датчиком ускорения же.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB