roboforum.ru

Технический форум по робототехнике.

ПИД регулятор - PID алгоритм, энкодер и другая ОС

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение bolt » 18 дек 2008, 17:14

Извиняйте, телеги сурьезные. Я бы прилепил магнит на вал DC или оптическую мышу возле колеса. А ПИД регулирование можно заменить эмпирически подобранным отключением или торможением в конце участка. Полный сервопривод – слишком жирно будет. Роботу ведь не нужна точность 0,01мм, ИМХО.
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение Duhas » 18 дек 2008, 17:31

эээм, просто что мешает реализовать ПИД ? не так и много заморочек + незаменимый опыт...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение RoboTok » 18 дек 2008, 17:57

Подключил к звуковой карте выходы энкодера и посмотрел, что там в PowerGraph.

Добавлено спустя 6 минут 57 секунд:
Из этих графиков можно сделать вывод, что энкодер в некоторых участках энкодерного диска не фиксирует импульсы и программа считает, что вал либо затормозился, либо остановился совсем.
Зависит от скорости вращения вала.

Этим объясняется ускорения периодические колёс.

Добавлено спустя 8 минут 35 секунд:
bolt писал(а):Извиняйте, телеги сурьезные.


Так я в контроллер двигателя поставил LPC2134 с 128кБ ПЗУ и частотой 60МГц для реализации наиболее хорошего алгоритма.
Этот МК, почти ничего больше не будет делать.
И точность 0.01мм невозможно добиться только хорошими алгоритмами, да и точность то не нужна вообще.
Т.к. если робот будет ездить от джойстика, то нужно всего лишь удобное управление, а если автономно, то ошибки в координатах будут
уменьшатся с помощью GPS или маяков, зависит от уличного использования или в помещении.

Но в любом случае, сейчас я не смог добиться даже приемлемого управления одной ручкой джойстика, чтобы при перемещении ручки вперёд робот ехал точно вперёд и его "не колбасило".
Вложения
Untitled-2.gif
Двигатель №1
Untitled-1.gif
Двигатель №2
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение bolt » 18 дек 2008, 19:24

что мешает реализовать ПИД ? не так и много заморочек + незаменимый опыт...

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

Лечится за счет использования другого энкодера или в менее шустром месте.
ошибки в координатах будут уменьшатся с помощью GPS или маяков

GPS не катит, а считать путь, делая поправки при объезде препятствий можно. Правильную дорогу можно предварительно запоминать в режиме обучения.
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение RoboTok » 18 дек 2008, 20:38

Да, господа, забыл о датчике тока на мосту.

Во первых, как получать с датчика ток ?
( у меня показания сильно скачут, хотя я усредняю 4 выборки)

Во вторых, читал, что ток как то учитывают в ПИД регуляторе как ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение avr123.nm.ru » 19 дек 2008, 00:21

Duhas писал(а):эээм, просто что мешает реализовать ПИД ?

ЛЕНЬ очевидно ! Все ведь есть во втором посте топика, но этож ЧИТАТЬ надА.

RoboTok писал(а): читал, что ток как то учитывают в ПИД регуляторе как ?

Так как в примерах из второго поста этого топика.

RoboTok писал(а): По поводу совета АВР123 - это конечно просто сказать "сделай квадратурный точный энкодер для больших колёс", но реализовать его трудновато.


дак я ж написал там же: ПОСТАВЬ НА ВАЛ МОТОРА ! он в 60 раз примерно быстрей крутится чем выходной вал.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение RoboTok » 19 дек 2008, 12:34

Читать конечно надо, но ещё надо понимать, что прочёл господин АВР123...

На вал я думаю поставить и раньше думал, пока красивого решения не созрело.
Можно датчик холла поставить рядом со щётками мотора и там же на вал приклеить 2 магнита.
В итоге должно получится 120 тиков за оборот, что вполне устроит меня.
Подумываю, так же поставить фототранзистор и ИК диод на просвет между обмотками якоря.
Должно выйти 3 тика за оборот двигателя, если у него 3 обмотки.
Но это всё переделка двигателя, а я запланировал при разработке поставить диск энкодера на редуктор.
Пока что меня останавливает заказ лазерной резки, но вроде как нашёл уже кто может быть мне сделает 2 диска энкодера.
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение bolt » 19 дек 2008, 14:40

Можно продырявить вал или шестерню. Одного отвестия для управления скоростью, да и пробегом, будет вполне достаточно.
Ток - показатель нагрузки. В сложных сервоприводах используется для стабилизации момента на валу.
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение Duhas » 19 дек 2008, 21:24

я собсна и планирую трехконтурное подчиненное управление.... :crazy:
2RoBoToK,
u(n)=u(n-1)+Kp(T/Ti+1+Td/T)x(n)-Kp(1+2Td/T)x(n-1)+Kp(Td/T)x(n-2)
T - постоянная времени системы, иначе период с которым у тебя идет сбор данных и просчет... Ti и Td остоянные времени интегральной и дифференциальной частей, сосбвенно изменяя их ты и будешь настраивать контур...

Kp - коэффициент усиления.. он же коэффициент пропорциональной части...

U(n) - то что посчитали на данном такте, U(n-1) - то что было в прошлый раз... тоесть при одноконтурном U(n) это уже задание для ШИМ..
x(n) - посчитанная разность между заданием и показаниями с датчика обратной связи... x(n-1) и x(n-2) - на предыдущем и предпредыущим тактами...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение Vooon » 19 дек 2008, 22:15

Сори за офтоп, но хотел посмотреть как будет выглядеть эта формула набранная в латехе...

LaTeX: u (n) = u (n-1) + Kp (\frac{T}{Ti} + 1 + \frac{Td}{T}) \cdot x(n) - Kp (1 + \frac{2 Td}{T}) \cdot x(n - 1) + Kp \frac{Td}{T} \cdot x (n-2)

ПС: черт, x-compose кудайто пропал :(
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

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

Duhas писал(а):...


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

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение Duhas » 21 дек 2008, 11:56

ну.. вопрос интересный.. у меня 3 контура ПИД регулирования будет... самый внутренния контур тока... на него приходит задание скорости... а на выходе задание по току..

если же делать 1 контур то видимо это будет контур скорости... хотя может быть и положения...

главно чтоб на входе и задание и обр связь была в 1 единицах... а там уже дело за настройкой регулятора
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение RoboTok » 21 дек 2008, 12:32

А где в формуле вашей значения по току с датчика ?
И если есть энкодер, то где его значения ?

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

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение Duhas » 21 дек 2008, 15:31

я пока не настраивал ничего.. просто прописал саму процедуру и проверил работает ли она согласно формуле..

x(n) - это разность задания и показаний обратной связи.... как уже говорил ...

в моем случает Т будет обпределять скорость ацп скорее всего... для конутуров тока.. а для остальных еще и скорость прощета формулы..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: ПИД регулятор - алгоритм работы, энкодер и другая ОС

Сообщение bolt » 21 дек 2008, 18:25

самый внутренния контур тока... на него приходит задание скорости...
Если интересно V=const, то обороты нужно с заданием сравнивать. PWM(Treal/Tin) Ток здесь без надобности.
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

Пред.След.

Вернуться в Идеи

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

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

cron