|
Управление трехфазным бесколлекторным электродвигателем, Запутался в комутации |
|
|
|
Aug 22 2009, 11:39
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Всем привет ! Вот уже пару дней упорно бьюсь в управлении двигателем и никак не могу запустить его  . Сосояние выводов на момент переключения брал из аппнота AVR443. Вот код переключения. CODE main: // cbi motor,wh_e // cbi motor,wl_e // 1 rcall off // sbi motor,ul_e // sbi motor,vh_e // rcall wait_m //
cbi motor,vl_e // cbi motor,vh_e // 2 rcall off sbi motor,wh_e // rcall wait_m //
cbi motor,uh_e // cbi motor,ul_e // 3 rcall off sbi motor,vl_e // rcall wait_m //
cbi motor,wl_e // cbi motor,wh_e // 4 rcall off sbi motor,uh_e // rcall wait_m //
cbi motor,vh_e cbi motor,vl_e // 5 rcall off sbi motor,wl_e // rcall wait_m //
cbi motor,ul_e // cbi motor,uh_e // 6 rcall off sbi motor,vh_e // rcall wait_m // rjmp main //
off: // закрытие полевиков ldi zl,0x10 dfg: dec zl brne dfg ret
wait_m: // ldi xl, low(0x1FFF) // ldi xh,high(0x1FFF) // wt_2: // sbiw xl,1 // brne wt_2 // nop // ret //
Получаю только дерганье двигателем , если поигратся с задержками то иногда можно крутнувши рукой получить рывками вращение. Никак не могу вьехать толи я что-то неверно делаю , толи еще чего -то.... И еще вопрос : Можно ли управлять этим мотором в наглую без опроса датчиков холла ? Их в данном моторе стоит 3шт . Всего мотор имеет 7 магнитов 12 обмоток. Схема переключения прикреплена ниже.
Сообщение отредактировал Павлик - Aug 22 2009, 11:43
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 22 2009, 15:35
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 10-05-09
Из: Видное, МО
Пользователь №: 48 875

|
Как-то у вас неправильно таблица задана... Конечно, лучше бы было, если бы обмотки двигателя были бы соединены "звездой" с общей точкой, тогда бы можно было подвесить общую точку на "плюс" и обойтись всего тремя "нижними" ключами, и включать их поочередно. Здесь же нужно сделать три сигнала, сдвинутые на 120 градусов. Предлагаю такую таблицу (в файле). Дальше. Так, как вы делаете - установкой и сбросом отдельных битов - есть вероятность, что забудете сбросить поднятый бит и спалить выходные транзисторы. Лучше сформировать 6 констант, по количеству шагов, и отсылать их. CODE const step1:=001001b; step2:=100100b; ...
while true do begin motor:=step1; delay_us(antispeed); motor:=step2; delay_us(antispeed); ... end;
.
Сообщение отредактировал AntonSor - Aug 22 2009, 15:56
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 22 2009, 16:00
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 10-05-09
Из: Видное, МО
Пользователь №: 48 875

|
По столбцам - номер шага, строки - название сигнала, так, как на схеме. Т.е. на шаге номер один включены выходы VH и WL, выключены все остальные. На шаге номер два включены UH и WL и т.д.
|
|
|
|
|
Aug 22 2009, 16:21
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 15-08-09
Пользователь №: 51 902

|
Цитата(Павлик @ Aug 22 2009, 15:39)  из аппнота AVR443. А вы возьмите исходники из апноута AVR447 для IAR - все работает чудненько.
|
|
|
|
|
Aug 25 2009, 07:32
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Цитата(depank @ Aug 22 2009, 19:21)  А вы возьмите исходники из апноута AVR447 для IAR - все работает чудненько. Собрал AVR447 , увы IAR ом не пользуюсь  . Тут постают 2 вопроса : кто поможет откомпилировать проэкт под ATmega88 ? Выводы датчиков холла кто как подключает а) H1 - U H2 - V H3 - W б) H1 - W H2 - V H3 - U
|
|
|
|
|
Aug 26 2009, 07:11
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578

|
Цитата(Павлик @ Aug 22 2009, 19:48)  И еще интерестно кто какую логику ставит после датчиков холла чтобы уже получать готовые логическиеуровни для мк. ? А зачем она там, проще датчик подобрать с логическим выходом
--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх! В. Кипелов, Беги за солнцем.
|
|
|
|
|
Aug 27 2009, 05:26
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 13-10-06
Пользователь №: 21 288

|
Пару лет назад тоже делал плату управления для бесколлекторного двигателя. Сначала тоже были подобные проблемы. Но потом нашел статью на каком-то форуме по ремонту бытовой технике. Там расказывалось как запустить двигатель стиральной машины. Идею взял от туда, только вместо логики поставил контроллер. А идея такая. Сначало пишется тестовая программа. Создается 6 фазная таблица переключения обмоток двигателя (как я думаю не сложно догодаться). Затем двигатель тупо устанавливается в каждое из 6 положений и снимается значения датчиков хола для каждого положения. Создается таблица соответствия включенных обмоток каждой комбинации датчиков хола. На основе этой таблицы пишется уже рабочая программа. В ней в зависимости от значения датчиков из таблицы берется соответствующая комбинация включения обмоток. Этого достаточно для изготовления просто тупой вращалки. А потом можно добавить сервис. Еще в начале нужно крутануть двигатель в нужную сторону програмно без учета датчиков хола. Если датчики аналоговые, то ставлю компоратор на LM339. По такому принципу разгонял двигатель от HDD более 30т. об. Первую программу вообще писал, тока не смейтесь, на бейсике - Баскоме. Потом уже на асемблер переводил. Так быстрей получается. Аналагично запускается двигатель без датчиков хола. Только добовляется схема на компораторах для определения положения ротора. А принцип управления после разгона тот же. И еще. Вращать бесколлекторный двигатель не зная положения ротора не получится. Это не шаговый двигатель.
--------------------
|
|
|
|
|
Aug 27 2009, 08:33
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
В принципи все понятно , эксперементами я тоже много чего нового узнал для себя с этим двигателем. Схему доработал , таблицу датчиков записал себе. Лучше поработать и разобратся самому , чем слизать готовое и непонятное  . Взял двигатель поменьше мощности , ибо мой 850W 13V , даже под тестами провода от компьютерного АТХ стают мягкие и очень горячие.  . О результатах отпишусь.
|
|
|
|
|
Aug 27 2009, 18:00
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
Вопрос номер раз. За один оборот сколько раз датчик Холла (любой из них) меняет состояние? В AVR443 рассмотрен случай, когда у мотора 3 обмотки и 1 магнит (2 полюса); датчик Холла меняет состояние за оборот 2 раза (0->1, 1->0) = 1 период. В этом случае на 1 оборот приходится 1 период управляющих сигналов, и они привязаны к сигналам ДХ. В Вашем случае на 1 оборот д.б. 7*4=28 периодов управляющих сигналов, а вот каждый ДХ, могет оказаться, за оборот дает 7 периодов (14 смен). Цитата(celladon @ Aug 27 2009, 08:26)  двигатель тупо устанавливается в каждое из 6 положений и снимается значения датчиков хола для каждого положения. Создается таблица соответствия ... На основе этой таблицы пишется уже рабочая программа. В ней в зависимости от значения датчиков из таблицы берется соответствующая комбинация включения обмоток. Этого достаточно для изготовления просто тупой вращалки. Для тупой вращалки достаточно, а вот для нетупой, ИМХО, нет. Комбинация включения обмоток должна соответствовать не тому положению ротора, которое он стремится занять при данной комбинации (т.е. где вращающий момент обращается в 0), а тому, где вращающий момент максимален. Для простейшего случая (3-обмоточный 2-полюсник) это значит с опережением на 90 градусов (по положению ротора) от той таблицы.
Сообщение отредактировал Diusha - Aug 27 2009, 18:02
|
|
|
|
|
Aug 28 2009, 04:52
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 13-10-06
Пользователь №: 21 288

|
У меня такой двигатель. У него на датчики хола свой магнит с одной парой полюсов. Датчики хола смещены относительно друг друга на 60градусов. Бывает еще на 120. А на роторе две пары полюсов (приклеено 4 магнита). В статоре 9 обмоток, а фаз три (обмотки соеденены по три). Получается 6 комбинаций датчиков хола. http://www.iit.edu/~ipro342f06/bldcmotor.phpИнтересные картинки про BLDC.
Эскизы прикрепленных изображений
--------------------
|
|
|
|
|
Sep 1 2009, 16:24
|
Группа: Участник
Сообщений: 11
Регистрация: 29-08-09
Пользователь №: 52 087

|
Замечание по схеме (хотя возможно Вы его уже устранили). Как заметил AntonSor, Управлять трехфазным мостом шестью сигналами от проца - занятие опасное. При малейшем сбое сквозной ток и привет выходным транзисторам. Я бы организовал инверсию аппаратно, например перед 74HC08 (верхний ключ - прямой сигнал от проца, нижний - через инвертор от того же вывода). При этом от проца нужны всего три сигнала и таблица комутации проще. Или если двигатель требует при комутации третье (отключенное) состояние для одной из обмоток, то хотя-бы предусмотреть блокировку на логике от совместного включения противофазных ключей. Сам такого нахлебался, пока соорудил драйвер для ДШИ-200, правда не от контроллера а от LPT. Побочное явление при этом - жменя жареных IRF640 и IRF9540.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|