roboforum.ru

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

bldc-hv

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Re: bldc-hv

Сообщение linvinus » 28 июн 2011, 11:13

Я не понял, энкодер стоит на валу двигателя или на выходе редуктора?
В принципе что то куда то крутится, но как я понимаю нужна точность порядка 1 градуса на шаг, а тут как то непонятно.
Пробовал замерить на сколько поворачивается за один оборот?

Программу нужно дописывать, там в обратную сторону алгоритм некорректно работает.

Добавлено спустя 1 минуту 24 секунды:
И как ты сигналы step-dir подаёшь? через программу для контроллера reprap?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: bldc-hv

Сообщение ilalexey » 28 июн 2011, 11:58

энкодер на выходе редуктора. редукцию я ещё не считал.
Прога для репрапа http://replicat.org/usage
Настройки для проги выглядят примерно так:
Код: Выделить всёРазвернуть
<machine experimental="1">
   <name>EXPERIMENTAL - DC SERVO</name>
   <geometry type="cartesian">
      <!-- different pulleys on X and Y axii -->
      <axis id="x" length="300" maxfeedrate="68" scale="192"/>  <!-- eighth-step driver -->
      <axis id="y" length="300" maxfeedrate="68" scale="192"/>  <!-- eighth-step driver -->
      <axis id="z" length="300" maxfeedrate="255" scale="900"/> <!-- eighth-step driver -->
   </geometry>
   <tools>
      <tool name="Pinch Wheel Extruder v1.1" type="extruder" material="abs" motor="true" floodcoolant="false" mistcoolant="false" fan="true" valve="false" collet="false" heater="true"/>
   </tools>
   <clamps></clamps>
   <driver name="sanguino3g">
      <!-- optional, defaults to first serial port found.    <portname>COM1</portname> -->
      <!-- required: we need 8 bit and 38400 baud. -->
      <portname>COM2</portname>
      <rate>38400</rate>
      <parity>8</parity>
      <!-- optional, defaults to 1.                          <databits>1</databits> -->
      <!-- optional, defaults to N.                          <stopbits>N</stopbits> -->
      <debuglevel>0</debuglevel>
   </driver>
   <warmup>
   </warmup>
   <cooldown>
(Turn off steppers after a build.)
M18
   </cooldown>
</machine>


Там где "scale", там настройка редукции.
В обратную сторону действительно глючит. Нужно раза три нажать, чтобы он понял куда крутить.
Мне нужно поболее чем 1 градус.
Драйвер A3949, он выполнять задуманное, при изменении кода может? или дохлый номер?

Добавлено спустя 12 минут 55 секунд:
вроде через гипер терминал можно отсылать.
тут по командам проги http://replicat.org/sanguino3g

Добавлено спустя 12 минут 18 секунд:
>И как ты сигналы step-dir подаёшь?
ReplicatorG отправляет команды(ж-коды в том числе) на материнку репрапа, а та уже степы/диры раздаёт.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: bldc-hv

Сообщение linvinus » 28 июн 2011, 12:17

A3949 подходит, если ток мотора не превышает максимальный ток драйвера.

В общем случае я вижу следующие проблемы:
0) В двигателе есть собственная обратная связь через коллектор, и её отменить нельзя. Это выливается в то что двигатель крутится пока есть ток., если тока нет, двигатель может крутиться по инерции, или под действием внешних сил, и удерживать его на одном месте как шаговый практически невозможно, но можно включить режим тормоза, закоротив двигатель через землю.
1) Зависимость "ШИМ - скорость" двигателя не линейная
2) Для того чтобы стронуть двигатель с места нужно подать больше тока, чем поддерживать движение.
3)
byte motor_speed = 0;
int distance = abs(position-target);
if (distance > 255)
motor_speed = 255;
else
motor_speed = distance;

этот код задаёт ШИМ на основе ошибки abs(position-target), т.е. сам алгоритм подразумевает что всё время есть ошибка.

Рассмотрим пример, я с проблемой точного управления много работал когда делал pid для своего бесколлекторного двигателя.
для того чтобы сдвинуть двигатель с места нужно подать шим 30%, для того чтобы он дальше крутился на малых оборотах тостаточно ШИМ 8-10%
и того, самый плохой вариант.
если твой двигатель стоит то он не стронется с места пока не набежит ошибка в 30 шагов.
если шаги идут очень редко, то двигатель будет дёргаться , т.к. будет перелетать позицию и опять ждать когда набежит ошибка.

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

Дополнительно в программу можно добавить константу в управляющий сигнал, которая будет задавать ШИМ для старта.
Например (точные константы нужно подобрать)

byte motor_speed = 0;
int distance = abs(position-target);
if (distance < 5)
motor_speed = 15+distance;
else
if (distance > 255)
motor_speed = 255;
else
motor_speed = distance;

Надеюсь я тебя не запутал.
Я хотел показать какие сложности возможны при реализации сервомотора.

Добавлено спустя 4 минуты 36 секунд:
Тьфу ты :)
Загнался сорри, конечно удерживать можно, если закоротить выходы двигателя на землю.
Сила удержания будет пропорциональна скорости вращения ротора :)

Добавлено спустя 8 минут 40 секунд:
Проблему с обратным ходом можно решить так:

Дописываем (+ это добавленные строки, сами плюсы в начале не нужны)
....
bool dir = false;
+bool olddir = false;
....
+if (olddir != dir) {
+target=0;
+position=0;
+}

if (!oldStep && newStep)
{

....

oldEnable = newEnable;
+olddir=dir;
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: bldc-hv

Сообщение ilalexey » 28 июн 2011, 12:18

не запутал :)
С моей нехваткой знаний, куда дует ветер прослеживаю пока.
Сейчас попробую посчитать редукцию и потестить.
----
пс: что-то отдалились мы от темы топика. может в новый перелезть?
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: bldc-hv

Сообщение linvinus » 28 июн 2011, 12:34

Можно. :)
У тебя есть такая кнопка?
Кстати A3949 довольно хитрый драйвер, не все возможности задействованы в программе.
И на схеме не понятно к каким ножкам контроллера подведены выходы драйвера.
http://thingiverse-production.s3.amazon ... medium.jpg

В частности у него есть три режима тормоза, пока не понял чем они отличаются.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: bldc-hv

Сообщение ilalexey » 28 июн 2011, 13:16

Кнопок куча, только какую ты имеешь в виду? :)
>И на схеме не понятно к каким ножкам контроллера подведены выходы драйвера.
ты про это? :
-----------------
mega168 | a3949
-----------------
pb0(d8) | 2(mode)
pd6(d6) | 3(phase/dir)
pd7(d7) | 5(sleep)
pd5(d5) | 6(enable)

Добавлено спустя 15 минут 58 секунд:
Тема дк контроллёра переехала сюда http://roboforum.ru/forum11/topic10232.html#p210605
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: bldc-hv

Сообщение Dinidrol » 19 июн 2016, 23:58

А печатную плату можно?
Dinidrol
 
Сообщения: 1
Зарегистрирован: 19 июн 2016, 23:53

Re: bldc-hv

Сообщение ilalexey » 20 июн 2016, 11:05

Dinidrol писал(а):А печатную плату можно?

Да. Сайт первоисточника поди пропал.
Повторять не стоит - много ковыряний, а на выходе здоровенный пирог из трёх плат.
Я даже тему хотел создать для поиска идеальной платы силовой части.
По концовке перепаял под проект tgy esc.
Вложения
bldc-hv.zip
Eagle proj
(93.38 КиБ) Скачиваний: 0
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Пред.

Вернуться в Электроника, электротехника

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

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