Перейти к содержанию
    

Разработать контроллер серво-привода на BLDC моторе

Требуется разработать контроллер серво-привода.

Хотим использовать такой мотор:

 image.thumb.png.e0631819f5f2a0a0e89987462f4d5084.png

 

На валу будет индукционный абсолютный энкодер, подключаемый по интерфейсу BISS-C.

 

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

Устройство, как видится, должно состоять из двух блоков: драйвера BLDC двигателя и контроллера, рулящего этим драйвером. В контроллере должно быть что-то программируемое (STM32 из тех, что еще можно купить, или какой то другой МК - обсуждаемо), и соответственно нужна программа. Полагаю, в программе нужен ПИД регулятор и возможно какой то фильтр для энкодера. 

 

Железо желательно собрать из готовых плат/модулей. Для контроллера взять готовую отладочную плату с микроконтроллером.  Если драйвер мотора в виде готовых модулей не найти - то его сделать свой.

 

Задача на первый взгляд не сильно сложная, но понятно, что подводных камней тут хватает. По этому нужен специалист с практическим опытом в данной теме, кто сможет ткнуть пальцем в слабые места этой системы и объяснить, почему так делать нельзя и как нужно. Регион исполнителя не важен. 
Все подробности в ЛС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- Стоимость?
- Время?
- Нагрузки?
- время разгона?
- Время торможения?
- Скорость при перемещении?

Может и не нужен бесщеточный? Достаточно шагового с редуктором?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго всем дня!
Давайте попробуем сделать макет.
andre-moiseev2010(мохнатый)yandex.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/22/2022 at 11:16 PM, nover said:

Требуется разработать контроллер серво-привода.

Хотим использовать такой мотор:

 image.thumb.png.e0631819f5f2a0a0e89987462f4d5084.png

 

На валу будет индукционный абсолютный энкодер, подключаемый по интерфейсу BISS-C.

 

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

Устройство, как видится, должно состоять из двух блоков: драйвера BLDC двигателя и контроллера, рулящего этим драйвером. В контроллере должно быть что-то программируемое (STM32 из тех, что еще можно купить, или какой то другой МК - обсуждаемо), и соответственно нужна программа. Полагаю, в программе нужен ПИД регулятор и возможно какой то фильтр для энкодера. 

 

Железо желательно собрать из готовых плат/модулей. Для контроллера взять готовую отладочную плату с микроконтроллером.  Если драйвер мотора в виде готовых модулей не найти - то его сделать свой.

 

Задача на первый взгляд не сильно сложная, но понятно, что подводных камней тут хватает. По этому нужен специалист с практическим опытом в данной теме, кто сможет ткнуть пальцем в слабые места этой системы и объяснить, почему так делать нельзя и как нужно. Регион исполнителя не важен. 
Все подробности в ЛС.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, ghjwtccjh сказал:

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

Обоснуйте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/22/2022 at 1:20 PM, jcxz said:

Обоснуйте.

Тут всё просто. У меня лет десять назад была такая же задача! Был разработан поворотный стол, который состоял из электропривода, электродвигатель  с робота КУКА. На валу серводвигателя устанавливался диск с ячейками для лопаток турбореактивных двигателей. Робот брал с одного станка, устанавливал в эту ячейку, а другой робот брал и отправлял на обработку в другой станок. Ячейки располагались через 30 градусов...  В задаче на сайте, которую нужно реализовать стоит требование с точностью в несколько десятков (угловых) секунд...то есть +-30 секунд... как он хочет такую точность реализовать? - простым поворотом оси двигателя? то есть на 30 секунд повернуть ось двигателя и не больше? Как это возможно? По рампе как это выглядит... минимум разгон, выход на минимальную скорость и торможение... если попали в нужный диапазон перемещения, то хорошо... а если нет, то нужно отмотать назад... в данном случае у вас так и будет - перерегулирование, то есть, исполнительный механизм перескочит заданный диапазон координаты, потом попробует вернуться назад и так будет бесконечное множество итераций, но иногда может сразу попасть в точку.. почему две недели до меня не смогли справиться с этой проблемой? Потому, что я "амфибия"-(электромеханик, схемотехник и программист), а те, кто пытались реализовать проект были специалистами только в своей области знаний и ничего не понимали в смежной. Как говорится: "Иван кивает на Петра, а Пётр кивает на Ивана"... я решил эту задачу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, ghjwtccjh сказал:

У меня лет десять назад была такая же задача! Был разработан поворотный стол,

Если только встать в позицию с точность в  30 секунд угловых то в чем проблема? Синус-косинусный энкодер с интерполяцией в обратной связи прекрасно решает эту проблему. А вот та же задача, но по детали колотит фреза на весьма низких оборотах- тут действительно, ничего не получилось. Зато если фреза была быстрая ( тысячи обротов в минуту) т.е за пределами полосы частот сервоцикла, то все работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, ghjwtccjh сказал:

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

Почему "2 недели до вас несмогли" - я не знаю. Но в самой задаче не вижу принципиальной невозможности.

Я так и не понял - что именно считаете неразрешимой проблемой? Плавное торможение? или что конкретно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/4/2022 at 5:33 PM, khach said:

Если только встать в позицию с точность в  30 секунд угловых то в чем проблема? Синус-косинусный энкодер с интерполяцией в обратной связи прекрасно решает эту проблему. А вот та же задача, но по детали колотит фреза на весьма низких оборотах- тут действительно, ничего не получилось. Зато если фреза была быстрая ( тысячи обротов в минуту) т.е за пределами полосы частот сервоцикла, то все работало.

Проблема в погрешностях датчиков и допустимых погрешностях позиционирования.

Есть те люди которые умеют считать цепочки допусков, а есть те, которые на это не способны. И у них "все в нулях было везде"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, krux сказал:

Проблема в погрешностях датчиков и допустимых погрешностях позиционирования.

Ну так датчики надо выбирать соответствующие задачи. Мы обычно использовали энкодеры Mitsubishi -у них разрешение 17 бит на оборот. что дает где то 36 импульсов на угловую минуту или 18 на требуемую точность в 30 секунд. Вполне достаточно для  работоспособного ПИДа. Там обычно отсчеты где то на 10-20 единиц отличаются от заданных в зависимости от нагрузки на сервопривод.

Про бюджет ошибок вот например неплохое чтиво https://www.renishaw.com/en/the-accuracy-of-rotary-encoders--47130

Под 30 угловых секунд- огромный запас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/4/2022 at 2:21 PM, ghjwtccjh said:

Тут всё просто. У меня лет десять назад была такая же задача! Был разработан поворотный стол, который состоял из электропривода, электродвигатель  с робота КУКА. На валу серводвигателя устанавливался диск с ячейками для лопаток турбореактивных двигателей. Робот брал с одного станка, устанавливал в эту ячейку, а другой робот брал и отправлял на обработку в другой станок. Ячейки располагались через 30 градусов...  В задаче на сайте, которую нужно реализовать стоит требование с точностью в несколько десятков (угловых) секунд...то есть +-30 секунд... как он хочет такую точность реализовать? - простым поворотом оси двигателя? то есть на 30 секунд повернуть ось двигателя и не больше? Как это возможно? По рампе как это выглядит... минимум разгон, выход на минимальную скорость и торможение... если попали в нужный диапазон перемещения, то хорошо... а если нет, то нужно отмотать назад... в данном случае у вас так и будет - перерегулирование, то есть, исполнительный механизм перескочит заданный диапазон координаты, потом попробует вернуться назад и так будет бесконечное множество итераций, но иногда может сразу попасть в точку.. почему две недели до меня не смогли справиться с этой проблемой? Потому, что я "амфибия"-(электромеханик, схемотехник и программист), а те, кто пытались реализовать проект были специалистами только в своей области знаний и ничего не понимали в смежной. Как говорится: "Иван кивает на Петра, а Пётр кивает на Ивана"... я решил эту задачу...

Я правильно трактую Ваш комментарий? 
для реализации задачи требуется либо "амфибия" (я сам такой универсал...),  либо четкое взаимодействие разработчика механики, электроники и софта?

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

On 9/4/2022 at 11:14 PM, khach said:

Там обычно отсчеты где то на 10-20 единиц отличаются от заданных в зависимости от нагрузки на сервопривод.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/22/2022 at 10:16 PM, nover said:

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

Задача как раз сложная. 
Почему, см. выше.

А вот ощущение что не сложная, возникает потому, что вокруг множество таких готовых подвесов, в частности продукты компании DJI и они прилично работают.
А сколько миллионов долларов вложила компания DJI за 16 лет в отработку подвеса.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, bgc сказал:

без понимания физики нагрузок невозможно спроектировать и построить систему.

Физика ( полная модель) это все таки слишком, да и недостижимо часто в реале. Тот же DJI подвес-  положение центра масс камеры и ее моменты инерции по осям могут достаточно сильно варьироваться, но работать гимбал будет.

А вот при металообработке иногда ничего кроме червяка, иногда двойного для устранения люфтов по мере износа червяка автоматикой, не помогало. Еще в металлообработке вылазила интересная проблема- например произвольные углы можно ставить с точностью 30 угловых минут, но перпендикуляры надо ставить ставить уже с точностью в угловые секунды, иначе точность станка по древним гостам не обеспечивалась. И тут начинались пляски с бубном типа двойной обратной связи по углам- обычной точности на весь круг и высокоточной на углы близкие к 90 градусам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...