Управление двигателями. Парой.

Автомат, адаптивный автомат ... разум

Re: Управление двигателями. Парой.

Сообщение Виталий » 30 ноя 2007, 14:32

А вот нефиг сразу 80! ;) Плавно надо...

Этим и должен заниматься указанный алгоритм. Причем чем быстрее выход на режим тем круче как я думаю.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 30 ноя 2007, 16:02

Виталий писал(а):Ну вот с парой двигателей есть проблема...
А именно их нужно синхронизировать не только до нужной скорости, но и и время набора этой скорости.
Если этого не сделать и выдать на один и на другой двигатель команду "прямо 80", то скорее всего робот сперва сделает реверанс, вызванный различными скоростями разгона двигателей, и только потом выйдет на режим.

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

Ладно - попробую рассказать как делается верхний уровень :)
Каждая из процедур нижнего уровня может выдать что она "сдается" и сказать в какую сторону "сдается" и насколько всё ужастно.

Если верхняя процедура при назначении следующих скоростей видит, что какая-то из нижних процедур "сдается", она выбирает следующие плановые показатели такие, чтобы ни одна из нижних процедур не "сдавалась" и при этом мы минимально отклонялись от плана движения в первую очередь по траектории, а во вторую - по времени её прохождения, а если такого выхода нет, то чтобы сумма "ужастностей ситуаций" была минимальной, то есть чтобы выйти из невозможности корректно влиять на ситуацию.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 30 ноя 2007, 22:41

Ну написал то.. ;) А проще нельзя?
Короче я берусь обмозговать это дело на выходных, что-б с начала недели на работе сделать. У меня как раз такой сложный случай - одна серва работает заметно хуже другой. И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 01 дек 2007, 07:43

Strijar писал(а):Ну написал то.. ;) А проще нельзя?
Короче я берусь обмозговать это дело на выходных, что-б с начала недели на работе сделать. У меня как раз такой сложный случай - одна серва работает заметно хуже другой. И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.

Динамически - это проехать криво и потом думать как выправить ситуацию? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 03 дек 2007, 13:36

Динамически - это разгонять и тормозить с одновременным контролем скорости. И если что-то идет не так - сразу поправлять ;) В общем на выходных не удалось плотно подумать, но кое-какие мысли есть. Задавать "рассогласование" надо не "на столько то", а "в столько то". Поясню.. не "одно 10, а другое на 2 меньше", а "одно 10 а другое в 0.8 раза меньше". Тогда можно спокойно менять "общую" скорость если какое-то колесо "не может" держать заданую - при этом сохраняется дуга поворота.
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 03 дек 2007, 17:07

Strijar писал(а):И если что-то идет не так - сразу поправлять ;)

И если поправка прошла не так - еще поправлять и еще и еще.
А через 2 метра по дуге вместо прямой может и поймете как двигателем рулить, только эти 2 метра и есть калибровка, а вы же против неё, поэтому следующие 2 метра у вас должны быть так же не так как надо :crazy:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 03 дек 2007, 17:17

Почему через 2 метра? Энкодер есть? У меня энкодер с точностью 5 градусов. Я решил усреднять по 2 "кликам" т.е. 10 град. Исходя из колеса 100мм, я могу узнать, что что-то не так уже через 8мм пути ;) А можно не ждать 2 клика - а сделать прогноз через какое время они должны пройти и если они за это время не пришли, сразу начать исправлять. А если пришли раньше и того проще.

Это все при том, что энкодер все равно тикает. И как бы я криво не ехал - я точно знаю как именно я проехал ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 03 дек 2007, 21:02

Strijar писал(а):Почему через 2 метра? Энкодер есть? У меня энкодер с точностью 5 градусов. Я решил усреднять по 2 "кликам" т.е. 10 град. Исходя из колеса 100мм, я могу узнать, что что-то не так уже через 8мм пути ;) А можно не ждать 2 клика - а сделать прогноз через какое время они должны пройти и если они за это время не пришли, сразу начать исправлять. А если пришли раньше и того проще.

Это все при том, что энкодер все равно тикает. И как бы я криво не ехал - я точно знаю как именно я проехал ;)

хех, звучит оптимистично :), "как бы я ни заехал в яму, я знаю куда я заехал" :)))

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

Впрочем кто вам мешает лично встать на эти грабли :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 04 дек 2007, 20:50

=DeaD= писал(а):Я же говорю - либо вы калибровку признаете, пусть даже на ходу, либо будете ездить как попало.


Ну что-ж вы так категорично? Разве я писал что я ее не признаю? ;)
И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.


А на роботе которого я обдумываю энкодер вообще будет супер точный - на датчиках из оптических мышах ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 04 дек 2007, 22:06

Strijar писал(а):
И я хочу попробовать алгоритм которому не нужна предварительная калибровка - все динамически.

А на роботе которого я обдумываю энкодер вообще будет супер точный - на датчиках из оптических мышах ;)

Погрешность системы не может быть меньше погрешностей её составляющих (в грубой формулировке сказал конечно, но тут применимо).
А система у вас, грубо если считать, состоит из исполнительного устройства (так же известного как двигатель :)), датчиков обратной связи и управляющего устройства. Так вот про супер точные энкодеры это прикольно, а расскажите мне лучше про суперточные двигатели, которые вы собираетесь применить?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 04 дек 2007, 22:38

А здесь это не будет оффтопиком? ;) Двигатели RA25 - я про них писал в разделе "Механика". Скорость вращения 160 об/м. Тут не совсем будет нужна супер точность - такие энкодеры скорей для познания ;) Потому как будет еще видео-камера и дальномер.

Добавлено спустя 4 минуты 51 секунду:
А еще мне не очень понятно зачем суперточность двигателей? Что под этим поразумевается? Двигатель крутится, энкодер тикает. Ну не разогналься он быстро или не остановился сразу - энкодер это дело засекет. Где подвох?

Добавлено спустя 2 минуты 40 секунд:
И вообще предлагаю перейти на "ты". Мы ведь почти земляки. Я родом с Тюменской области ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение =DeaD= » 04 дек 2007, 22:55

Strijar писал(а):А еще мне не очень понятно зачем суперточность двигателей? Что под этим поразумевается? Двигатель крутится, энкодер тикает. Ну не разогналься он быстро или не остановился сразу - энкодер это дело засекет. Где подвох?

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

Strijar писал(а):И вообще предлагаю перейти на "ты". Мы ведь почти земляки. Я родом с Тюменской области ;)

Без вопросов :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Управление двигателями. Парой.

Сообщение Strijar » 04 дек 2007, 23:09

Ага. Спасибо за инфу - буду думать и пробовать ;) В движках люфта нет... на ощупь по крайней мере. В ДШ где-то оговаривается, видел - но под рукой нет.
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Управление двигателями. Парой.

Сообщение RoboTok » 20 дек 2008, 22:46

Кто продвинулся по этой теме или всё умерло не родившись ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: Управление двигателями. Парой.

Сообщение avr123.nm.ru » 20 дек 2008, 23:05

=DeaD= писал(а): в результате когда у тебя шаг управления меньше погрешности исполнительного устройства

а шаг управления в чем измеряется ? а погрешность исполнительного устройства в чем измеряется ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Пред.След.

Вернуться в Алгоритмы

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

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