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

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Контролер для 3-х двигателей.
Jenya7
сообщение Jul 2 2017, 08:31
Сообщение #1


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Мне нужно сделать драйвер для 3-х двигателей. Двигатели обычные DC Motors 24V. Двигатели имеют энкодеры для отслеживания позиции.
Хотелось чтоб энкодеры были апаратные. Обычно это делается на таймерах.
Вот задумался какой контроллер выбрать. PWM+Encoders требуют таймера. К тому же на мои нужды нужно еще 3 таймера.
У ST вроде нет контролеров заточенных под motion. У TI есть но что то не хочется связываться с TI. К тому же 3 двигателя. Есть контроллеры под такую задачу?
Основная проблема - аппаратно обработать 3 энкодера. На атмеловских AVRках я пользовался внешними интераптами но это, как мне кажется, не очень хороший способ.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 2 2017, 15:19
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



У ST есть всё для моторов и даже библиотека имеется(правда я не уверен что она бесплатна)
http://www.st.com/content/ccc/resource/tec....CD00298474.pdf


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 2 2017, 15:54
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(sigmaN @ Jul 2 2017, 18:19) *
У ST есть всё для моторов...

Я б так уверенно не отвечал.
Чтобы сделать одновременно 3-и даже простейших аппаратных 2-х входовых квадратурных декодера и 3-и трехканальных PWM (по 6 выходов каждый)
не подойдет ни один STM включая STM32H7 и даже Kinetis.
Go to the top of the page
 
+Quote Post
oleg_d
сообщение Jul 2 2017, 15:55
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 413
Регистрация: 12-05-06
Из: Latvija
Пользователь №: 17 041



У семейства XMC4000 есть все что надо но только для двух моторчиков одновременно.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 2 2017, 15:56
Сообщение #5


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Кстати по ходу у ТСа коллекторные движки и там всё куда проще получится


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 2 2017, 16:01
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(sigmaN @ Jul 2 2017, 18:56) *
Кстати по ходу у ТСа коллекторные движки и там всё куда проще получится

Хм, действительно похоже на коллекторные. Тогда не интересно. laughing.gif
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 2 2017, 16:02
Сообщение #7


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Я щас тоже только что так подумал )


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 2 2017, 16:33
Сообщение #8


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(sigmaN @ Jul 2 2017, 20:19) *
У ST есть всё для моторов и даже библиотека имеется(правда я не уверен что она бесплатна)
http://www.st.com/content/ccc/resource/tec....CD00298474.pdf

мда. с FOC SDK как то все мутно. а камень мне посоветовали STM32F303 - там куча таймеров и все с функциями PWM + encoder.

Advanced-control timers (TIM1/TIM8/TIM20)
General-purpose timers (TIM2/TIM3/TIM4)
Basic timers (TIM6/TIM7)
General-purpose timers (TIM15/TIM16/TIM17)

насколько я понял только TIM2/TIM3/TIM4 support quadrature encoders или я ошибаюсь?

Цитата(AlexandrY @ Jul 2 2017, 20:54) *
Я б так уверенно не отвечал.
Чтобы сделать одновременно 3-и даже простейших аппаратных 2-х входовых квадратурных декодера и 3-и трехканальных PWM (по 6 выходов каждый)
не подойдет ни один STM включая STM32H7 и даже Kinetis.

На PWM мне нужно 4 вывода. Можно обойтись и двумя. У меня внешний Full Bridge Driver принимает два сигнала - PWM FORWARD, PWM REVERSE. Четыре на всякий случай, если буду использовать другой драйвер.

Двигатели диси - подключены по мостовой схеме.

Сообщение отредактировал Jenya7 - Jul 2 2017, 17:06
Go to the top of the page
 
+Quote Post
EmbedElektrik
сообщение Jul 2 2017, 20:47
Сообщение #9


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

Группа: Свой
Сообщений: 121
Регистрация: 30-07-08
Из: Тверь, Россия
Пользователь №: 39 321



параметры энкодера и частота вращения какие? при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 3 2017, 05:46
Сообщение #10


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(EmbedElektrik @ Jul 3 2017, 01:47) *
параметры энкодера и частота вращения какие? при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава

я не помню точно, но не думаю что больше 1000 об/мин. На внешних прерываниях считывалось на ура, не думаю что на таймере будет хуже.

Сообщение отредактировал Jenya7 - Jul 3 2017, 06:19
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 3 2017, 09:04
Сообщение #11


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ну так надо сначала ж выбрать энкодеры исходя из требуемой точности позициирования.
Вам же подказали, что если вы выберете энкодеры, выдающие 10000 импульсов на один оборот и ваш двигатель разгонится до 1000об/мин то не сложно посчитать сколько импульсов вам будет прилетать в секунду. А ведь по ним придется принемать решения(т.е. обрабатывать их) вне зависимости от того будет ли там у вас таймер или не таймер....
Поэтому начать следует с постановки тех.задания и определения требуемых характеристик системы, а потом и процессор можно подобрать.
А то как-то всё как обычно получается ))))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 3 2017, 09:43
Сообщение #12


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(sigmaN @ Jul 3 2017, 14:04) *
Ну так надо сначала ж выбрать энкодеры исходя из требуемой точности позициирования.
Вам же подказали, что если вы выберете энкодеры, выдающие 10000 импульсов на один оборот и ваш двигатель разгонится до 1000об/мин то не сложно посчитать сколько импульсов вам будет прилетать в секунду. А ведь по ним придется принемать решения(т.е. обрабатывать их) вне зависимости от того будет ли там у вас таймер или не таймер....
Поэтому начать следует с постановки тех.задания и определения требуемых характеристик системы, а потом и процессор можно подобрать.
А то как-то всё как обычно получается ))))

А проблема в чем? В том что 16-битный таймер вылетит в оверфлоу не закончив хода двигателя? Так там прескейлер можно задать.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 3 2017, 10:24
Сообщение #13


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



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


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jul 3 2017, 11:12
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(EmbedElektrik @ Jul 2 2017, 23:47) *
при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава

Это получается всего-то 167кГц. При системной частоте в 72МГц таймер запросто справится. При помощи DMA данные можно сбрасывать в отдельную переменную, и вопрос "определить текущую скорость вращения вала" вообще будет решаться элементарно!
Это ж не авр какой-нибудь допотопный, где ни таймеров нормальных не было, ни DMA!
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 3 2017, 13:14
Сообщение #15


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
и вопрос "определить текущую скорость вращения вала" вообще будет решаться элементарно!

Цитата(Jenya7 @ Jul 2 2017, 11:31) *
Двигатели обычные DC Motors 24V. Двигатели имеют энкодеры для отслеживания позиции.

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


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

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

 


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


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