реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Алгоритм вычисления скорости для тягового двигателя.
Папа Карло
сообщение Dec 7 2008, 18:44
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Всем привет.

Делаю электромобиль весом 50кг на 3 колеса.
2 колеса ведущие и 1 подруливающие.

Поставил после редуктора энкодеры.
Пытаюсь регулировать скорость вращения двигателей по энкодерам.

Идея такая: получать текущую скорость привода в районе 0 - 100.
ШИМ от 0 до 100 регулируется.

Но если считать прерываний от таймера за 1 тик энкодера, то скорость получается очень не равномерная.

Например:
PWM Encoder
0x10 0x72
0x20 0x2B
0x30 0x1A
0x40 0x13
0x50 0x0F
0x60 0x0D

При том, что двигатель крутится от 0xAA до 0x2B еле-еле.
И почти весь интервал забивает в начале.

Как бы мне сделать равномерное регулирование скорости ?
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 7 2008, 20:15
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(Папа Карло @ Dec 7 2008, 21:44) *
Всем привет.

Делаю электромобиль весом 50кг на 3 колеса.
2 колеса ведущие и 1 подруливающие.

Поставил после редуктора энкодеры.
Пытаюсь регулировать скорость вращения двигателей по энкодерам.

Идея такая: получать текущую скорость привода в районе 0 - 100.
ШИМ от 0 до 100 регулируется.

Но если считать прерываний от таймера за 1 тик энкодера, то скорость получается очень не равномерная.

Например:
PWM Encoder
0x10 0x72
0x20 0x2B
0x30 0x1A
0x40 0x13
0x50 0x0F
0x60 0x0D

При том, что двигатель крутится от 0xAA до 0x2B еле-еле.
И почти весь интервал забивает в начале.

Как бы мне сделать равномерное регулирование скорости ?


Что то не понятно от 0 до 100 , это проценты или км/час или др..И энкодер вы заводите на вжод INT
или как и вы, что считаете количество прерываний от таймера за один импульс энкодера?
Go to the top of the page
 
+Quote Post
Guest_orthodox_*
сообщение Dec 7 2008, 20:53
Сообщение #3





Guests






А не было желания прицепить маленький коллекторный движок на постоянных магнитах, и получать с него постоянное напряжение, прямо пропорционально скорости?
Я сейчас тоже делаю управление для глайдера (это такой же электромобильчик, как вы описали), и выбрал такой датчик. Чем хорош - на малых скоростях регулирует без рывков, IMHO - самая плавная регулировка из всего, что я знаю для ЭМ.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 08:52
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Непонятно куда его цеплять.
Со стороны двигателя, без переделки, некуда подключить энкодер.
И непонятно какие значения будет выдавать движок энкодера при низких оборотах, если его подключить после редуктора.
Там обороты 60 об\мин.


Цитата(Iptash @ Dec 7 2008, 23:15) *
Что то не понятно от 0 до 100 , это проценты или км/час или др..И энкодер вы заводите на вжод INT
или как и вы, что считаете количество прерываний от таймера за один импульс энкодера?


Выходит, что проценты, но вообще мне всё равно, главное чтоб было равномерное увеличение скорости.
Вот, если подавать ШИМ от 0 до 100, то скорость увеличивается линейно, только в начале от 0 до 10 провал. скорость не растёт.

Выход энкодера завожу на свободную ножку МК и программно отслеживаю изменения состояния.
А кол-во прерывания считаю так, включаю счётчик таймера и увеличиваю переменную за каждое прерывание, при изменении состояния на ноге от энкодера записываю значение переменной.

Сообщение отредактировал Папа Карло - Dec 8 2008, 08:52
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 8 2008, 09:21
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(Папа Карло @ Dec 8 2008, 11:52) *
Непонятно куда его цеплять.
Со стороны двигателя, без переделки, некуда подключить энкодер.
И непонятно какие значения будет выдавать движок энкодера при низких оборотах, если его подключить после редуктора.
Там обороты 60 об\мин.
Выходит, что проценты, но вообще мне всё равно, главное чтоб было равномерное увеличение скорости.
Вот, если подавать ШИМ от 0 до 100, то скорость увеличивается линейно, только в начале от 0 до 10 провал. скорость не растёт.

Выход энкодера завожу на свободную ножку МК и программно отслеживаю изменения состояния.
А кол-во прерывания считаю так, включаю счётчик таймера и увеличиваю переменную за каждое прерывание, при изменении состояния на ноге от энкодера записываю значение переменной.

Может быть лучше считать количество импульсов пришедших с энкодера за определенное время
таймера. Если МК имеет вх. счетчика, вот туда и заводить и по прерывнию таймера допустим каждые
1мсек. считывать значение счетчика.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 09:30
Сообщение #6


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Тогда реакция регулятора скорости будет большой.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 12:16
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Сделать, допустим wink.gif, прерывание с частотой 1мсек можно, но за это время от энкодера не придёт ни одного импульса, т.к. вал крутится со скоростью 1 об\сек и выдаёт 30 импульсов за оборот.
Можно сделать и 80 импульсов за оборот, но 1 мсек мы не получим...

Сообщение отредактировал Папа Карло - Dec 8 2008, 12:18
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 8 2008, 13:21
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Значит энкодер нужен точный поставить, а по вашему алгоритму на малых оборотах
очень много прерываний по таймеру а на нуле об. вообще бесконечное заполнение будет.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 14:00
Сообщение #9


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Вот я и мучаюсь ...

Насколько точный ставить ?
Ну допустим, я поставлю на двигатель диск энкодера, а не на редуктор.
И будет у меня выдавать не 30 импульсов, а 1000.
Это означает, что на максимальной скорости я смогу поймать только 1 импульс.


Кстати, с нулём я сделал нормально, при получении импульсов больше 128 ставлю значение скорости 0.
Если пришёл тик от энкодера и прерываний больше 128, то ставлю скорость 1.

А вот сделать равномерно в шкале от 0 до 100 никак не получается.
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 8 2008, 16:44
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(Папа Карло @ Dec 8 2008, 17:00) *
Вот я и мучаюсь ...

Насколько точный ставить ?
Ну допустим, я поставлю на двигатель диск энкодера, а не на редуктор.
И будет у меня выдавать не 30 импульсов, а 1000.
Это означает, что на максимальной скорости я смогу поймать только 1 импульс.
Кстати, с нулём я сделал нормально, при получении импульсов больше 128 ставлю значение скорости 0.
Если пришёл тик от энкодера и прерываний больше 128, то ставлю скорость 1.

А вот сделать равномерно в шкале от 0 до 100 никак не получается.


Это значит заполнение импульсов в счетчик нужно делать аппаратно, а не по прерыванию,
какой вы используете МК? я же говорю, что многие МК имеют вход счетчик который заполняется
вх. сигналом(выбираеете режим) вот его и используейте, а счетчик считываете по прер. таймера,
и скорость(или количество импульсов энкодера за один тик) равна разность данного значения счетчика с предыдущим значением счетчика.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 17:07
Сообщение #11


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Увы плата сама не сможет вывести на разъём нужные ножки МК.
Поэтому будем исходить из программного варианта.

Цитировать пост предыдущий не имеет смысла, если вы конечно не хотите этот форум перегрузить.

МК у меня LPC2134.

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

Если бы посчитали хотя бы в уме, то не писали бы своих шуток...

П.С.
МК занят на 20% и функция обработки датчика занимает 0.5% времени МК.
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 8 2008, 17:17
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



А частоту вращения чем вы задаете?
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 8 2008, 17:31
Сообщение #13


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Регулирую частоту вращения ШИМом.
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 8 2008, 19:01
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(Папа Карло @ Dec 8 2008, 20:31) *
Регулирую частоту вращения ШИМом.

Понятно, что ШИМом, я говорю задание что у вас аналоговый сигнал или еще что?

Цитата(Папа Карло @ Dec 8 2008, 20:07) *
Конечно, сделав счётчик импульсов по вашему предложению я сильно разгружу МК, но увы это не даст мне нужной скорости обновления датчика скорости и ни о каких 1мсек, речи быть не может.

Если бы посчитали хотя бы в уме, то не писали бы своих шуток...

Делать мне нечего как шутки шутить. Вы строите электропривод для своего электромобиля,
я в свое время разработал и изготовил несколько электроприводов и установил на металлорежущие станки и я говору то, что я говорю.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Dec 9 2008, 14:52
Сообщение #15


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Не пойму, всё равно ...
"задание что у вас аналоговый сигнал" - вы имеете ввиду какой сигнал с энкодера выходит ?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 00:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01484 секунд с 7
ELECTRONIX ©2004-2016