Arduino и "Ripple-Counter"

sirop84
Offline
Зарегистрирован: 20.05.2013

Здравствуйте всем) Прошу у Вас помощи

Есть рулевая колонка с электрической регулировкой положения.

К двигателю идет блок управления с технологией ripple-couner, т.е. определение положения рулевой колонки без резистора

Вот описание этой технологии:

 

Для активизации серводвигателей служат следующие функции:

  • Включение и выключение серводвигателей с помощью мощных транзисторов, интегрированных в модуль RC.Необходимость в реле отпадает.
  • Регулировка частоты вращения вала серводвигателя путем активизации серводвигателей импульсами различной ширины (широтно-импульсная модуляция).
  • Защита от перегрузки или короткого замыкания интегрирована в модуль RC.
  • Ограничение пускового тока путем равномерного увеличения длительности пусковых импульсов.
  • Автоматическое отключение двигателя после окончания активизации.

Определение положения вала двигателя с помощью модуля RC

Положение вала двигателя определяется путем подсчета вызываемых движениями вала двигателя "пульсаций тока" (изменения силы тока или колебания магнитного поля двигателя постоянного тока) или подсчета импульсов датчика положения вала двигателя. При этом необходимые до настоящего времени потенциометры обратной связи могут отсутствовать.

и главное вопрос, можно ли сделать такой блок на arduino? просто установить потенциометр для определения положения не представляется возможным

Заранее благодарен за любой совет или подсказку)

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

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

погулглите "бездатчиковое управление вентильным двигателем"

вот например, принцип немного расказан, там правда и асинхронные машины затронуты, но хоть будете знать куда копать

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

sirop84
Offline
Зарегистрирован: 20.05.2013

Поищу, спасибо. Наверное нужно уточнить, что это двигатели в авто, соответственно питание 12в. 

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

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

не в питании дело, а в математике, как обрабатывать сигнал, снятый  с обмоток движка

sirop84
Offline
Зарегистрирован: 20.05.2013

На этой математике я и застопорился)

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

еще поглядите управление бесколлекторными(вентильными) двигателями, там как раз на етом и завязано все...

но мне кажется надо искать готовое решение - какую то микруху с обвязкой

sirop84
Offline
Зарегистрирован: 20.05.2013

Родные блоки у меня есть, но там управление самим двигателем идет по цифровой шине, протокол и команды не известны

даташита на микросхему стоящую в блоке найти не смог

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

если есть протокол, значит есть описание :)

sirop84
Offline
Зарегистрирован: 20.05.2013

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

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

вот глянь в соседней ветке нашел ссылку... хреновина для ардуино

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

sirop84
Offline
Зарегистрирован: 20.05.2013

Помоему не то. Это регулятор для управления безколлекторным, трехфазным двигателем, у меня такой есть. А с английским у меня немного туговато) 

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

у вас и будет бесколлекторный движок (см вики)

sirop84
Offline
Зарегистрирован: 20.05.2013

Двигатель у меня обычный коллекторный на 12 вольт, с двумя контактами плюс и минул

leshak
Offline
Зарегистрирован: 29.09.2011

Сразу оговорюсь. Я скорее не "знаю как", а "самому хочется понять".

 

sirop84 пишет:

Двигатель у меня обычный коллекторный на 12 вольт, с двумя контактами плюс и минул

Это немного противоречит 

 

sirop84 пишет:

  • Регулировка частоты вращения вала серводвигателя путем активизации серводвигателей импульсами различной ширины (широтно-импульсная модуляция).

Как "обычный" может понимать ШИМ? Либо он "не обычный", либо между ним и мозгами еще какая-то приблуда имеется.

А вообще, по описанию это очень похоже на серву непрерывного вращения (у которой PWM задает не "позицию", а "скорость и направление вращения".

Если представить себе что нужно с нуля делать электро-усилитель, то явно нужны, как минимум два элемента (кроме мозгов):

1. Исполнительное устройство
2. Обратная связь (датчик положения)

Исполнительным могут быть:
1.DC-мотор,
2.степер (шаговик),
3. серва непрерывная.

Обратная связь (узавать текущие положение):
A. потенциометр,
B.энкодер,
C.датчик положение вала (какой-то магнитик на вала + датчик хола). Возможно несколько.

Судя по вашему описанию (которое явно какой-то "гугл-перевод", может ссылка на оригинал есть?) у вас вариант 3-B или 3-С

Тогда задача распадается на две известные: "как рулить сервой" и "кака читать энкодер" - обе гуглятся в инете и на форуме. 

Если, скажем к энкодеру, нет прямого доступа, то можно свой поставить :)  Учитывая необходимую точность и "пробег" - скорее всего оптический.

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

Это по поводу "вашего описание", теперь собственные вопросы/мысли когда сам думал об усилителе, но так и не нашел ответа:

Но ведь нам недостаточно знать "положение вала". На нужно еще знать "усилие на руле". Причем именно "на руле", а не "насколько трудно повернуть всю систему". Нам же нужно "помогать водителю" и "боротся с колесами", и не перепутать. Как отличить "колеса сопротивляются" от "водитель передумал и начал крутить в другую сторону"?

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

Кстати еще, прийдется узнавать скорость авто. Усилитель должен "сильно помогать" на малых скоростях и резко снижать свое помогательство (или даже начинать "сопротивлятся") на высоких. Руль должен "дубоветь".

А что будет если заглючит? Каким-бы умным я себя не считал, но это все равно "колхоз". Сравнится с заводскими условиями по тестированию, QA, проектированию - я все равно не смогу.

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

 

sirop84
Offline
Зарегистрирован: 20.05.2013

Текст этой технологии взят из wds - схемы электрические доя BMW e39. Устройство это регулирует положение руля вперед-назад, вверх вниз. Т.е. Как я понимаю нужно обозначить переменную в которой будет храниться так сказать количество "пульсаций тока". Допустим я запомнил положение руля, потом подвинул его на n-ое количество импульсов. Вызываю старое положение и мотор крутиться назад на n "пульсаций". Крайние положения он определяет по току.

вот как то так.

могу сфотографировать саму плату управления для наглядности 

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

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

Надо смотреть вам принцип работы электроусилителя руля. а еще проще взять готовое устройство ибо на самоделке ездить страшновато.

Так погуглил немного, выпускают готовые усройства на многие модели машин

 

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

leshak
Offline
Зарегистрирован: 29.09.2011

Тьфу, блин. Эк меня занесло в усилители :)

sirop84 пишет:

Текст этой технологии взят из wds - схемы электрические доя BMW e39. Устройство это регулирует положение руля вперед-назад, вверх вниз. Т.е. Как я понимаю нужно обозначить переменную в которой будет храниться так сказать количество "пульсаций тока". Допустим я запомнил положение руля, потом подвинул его на n-ое количество импульсов. Вызываю старое положение и мотор крутиться назад на n "пульсаций". Крайние положения он определяет по току.

Ну, в таком описании это больше похоже на "шаговик" (а причем тут тогда ШИМ?)

Ну сделали вы сколько шагов в новое положение. Вернутся назад stepper.stepper(oldPos-newPos);

Запоминать положение при выключении дуины EERPOM

P.S. Но как-бы тут все равно не попасть под "незаконная переделка рулевого управления".

sirop84
Offline
Зарегистрирован: 20.05.2013

Ну у шаговика 4 или 5 выводов, а здесь 2. А как эти пульсации считывать?

leshak
Offline
Зарегистрирован: 29.09.2011

Ну вообщем-то и по двум проводам шаговиками тоже крутят

http://www.tigoe.com/pcomp/code/circuits/motors/stepper-motors/

А "как читать пульсации", ну кто же вам скажет? Непонятно же что вообще у вас Серва, степеер или DC мотор или еще что-то.

Для этих пульсаций есть какой-то отдельный датчик/выход или нужно мерять ток потребления (опять-таки чего?)?

Управление идет TTL уровнями или все живет на 12-ти вольтах и т.п. и т.д.

Вообщем тут уж вы должны полазить, повыяснять что именно у вас в руках. В гугле, тестером, осцилографом. Понять что именно за железо у вас, какие сигналы идут на/с него.

Тогда уже можно будет обсуждать как это согласовать с ардуиной и как на ней обрабатывать/командовать.

 

sirop84
Offline
Зарегистрирован: 20.05.2013

Нужно измерять потребление тока наверное, вечером посмотрю на двигатель. При подаче 12в он крутиться. Датчика отдельного не нашел на плате

leshak
Offline
Зарегистрирован: 29.09.2011

sirop84 пишет:

Нужно измерять потребление тока наверное

Ну сколько двигатель потребляет тока - питать его через резистор, и мерять сколько на нем падает (anlogRead())

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

sirop84
Offline
Зарегистрирован: 20.05.2013

Ну вот именно этот вопрос больше всего интересует. Остальное в принципе выполнимо

sirop84
Offline
Зарегистрирован: 20.05.2013

Получается когда двигатель крутиться то при переходе щеток на другую обмотку есть момент когда они подключают 2 обмотки параллельно и ток возрастает , вот эти возрастания и нужно считать

leshak
Offline
Зарегистрирован: 29.09.2011

Прежде чем их "считать" их нужно засечь :) Каким-нибудь датчиком тока на основе датчика хола.

Вот что-то из таких, к примеру

Датчики тока Allegro Microsystems для промышленного применения

Или "тупо в лоб".

Подключаем мотор

GND->- R1---(тут меряем)---> Motor----> VCC

R1 - берем не очень большого номинала, но мощьностью поболее. Что-бы не мешал мотору и не сильно грелся сам.

В точку "тут меряем" - подключаем аналоговый пин и делаем analogRead - замеряли напряжение.

Дальше - закон ОМа. I=U/R  . Но вообще-то высчитывать сам ток - не очень нужно. Сам факт увеличения напряжения - уже достаточно что-бы понять "пошел больший ток".

Если получится подобрать R1 так что-бы "рабочее напряжение" было не больше 1V, а в момент пульсации больше 3V - то можно будет использовать цифровой пин (гораздо легче с ним "импульсы считать будет").

Но вначале, конечно лучше в "тут меряем" вначале тестером/осцилографом потыкать. Посмотреть что там происходит. Видно ли импульсы и убедится что-бы тым не образовывалось больше 12-ти вольт. Что-бы дуину не спалить. Можно на всякий случай еще диод защитный на вход поставить (что-бы ничего не случилось даже если мотор замкнет полностью). Сделать что-то типа вот такого http://we.easyelectronics.ru/Shematech/soglasovanie-logicheskih-urovney-5v-i-33v-ustroystv.html  раздел "диодный интерфес". 

 

sirop84
Offline
Зарегистрирован: 20.05.2013

Спасибо. Буду искать осциллограф и пробовать все это дело)

UB4AEP
Offline
Зарегистрирован: 04.11.2020

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