Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Регулятор оборотов двигателя постоянного тока.

Здесь только проекты на ATtiny

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 29 июн 2011 13:18

Добрый день. Спасибо за Вашу отзывчивость. Хочу уточнить задачу. Ощутимого изменения в регулировке не наблюдается не в диапазоне от 4 до 10, а приблизительно от 7 до 10 (с положения переменного резистора от 3/4 и до конца, а не от 1/4 и до конца). Вы пишете, что не сильны в языке С, тогда уж что говорить обо мне. Буду вникать в представленную информацию. Транзисторы ставил BUZ102, два в параллель с развязкой резисторами по затвору. Насчет замены транзисторов была мысль, думал, что начального старта при минимальных положениях резистора не происходит именно из-за них, пробовал IRFZ3205, почему-то один вышибло при первом же включении. По току IRFZ3205 не меньше BUZ102, по напряжению управления тоже разницы нет, больше экспериментировать не стал и оставил BUZ102. Ток моторчик потребляет солидный, радиатор порядком греется, да и не зря он стоит под улиткой, работает по принципу: сам регулирую, сам себя и охлаждаю.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 29 июн 2011 14:15

vasilievich писал(а):с положения переменного резистора от 3/4 и до конца, а не от 1/4 и до конца

а резистор линейный? А то может лучше с напряжениями играться? У Вас же на выходе блока управления напряжения от 0 до 5 вольт...
vasilievich писал(а):Транзисторы ставил BUZ102, два в параллель с развязкой резисторами по затвору.

тогда уж надо управлять затворами не просто выходом МК, а каким-нибудь драйвером, хотябы двумя биполярными транзисторами.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 29 июн 2011 18:46

Пробовал драйвер, собранный на ВС548 и ВС558 - мало что менялось, насчет зависимости резистора - откровенно говоря смотрел только на номинал сопротивления, на букву не обращал внимания, но пробовал не один, а несколько и все они ведут себя одинаково. Сегодня посмотрю на букву, будет очень смешно, если все они окажутся с экспоненциальной зависимостью. Вариант устройства я уже собрал и он полностью готов к установке на автомобиль, посмотрим как он будет себя вести при управлении от блока климы. Но все равно чего-то, но не хватает, хочется довести устройство до конца.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 29 июн 2011 22:33

vasilievich писал(а):мало что менялось

транзистор должен меньше греться - меньше переходной процесс.
vasilievich писал(а):Но все равно чего-то, но не хватает, хочется довести устройство до конца.

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

Скажу только что зависимость мощности двигла от "процентов" ШИМ очень нелинейная. Поэтому подбирать придётся и не один раз. С резистором всё проще - надо чуть добавил/убавил, с климатом сложнее - там всего 10 дискретов.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 30 июн 2011 11:02

Понял, уже разработал печатку под управление полевиками с помощью драйвера. Резисторы оказались с линейной зависимостью. На автомобиле работает как я описывал выше: в начальных положениях регулировка происходит, в конце - максимальные обороты двигателя. Все бы устроило и в таком варианте, но при включении зажигания и соответственно подаче питания на регулятор (в положение min оборотов) двигатель хочет запуститься, но ему не хватает силы, а это напрягает слух. Вопрос отключения ШИМ при минимальном управляющем напряжении пока остается открытым. По поводу ступенчатой регулировки: я думаю не стоит править программу, ведь с блока климы и так подается ступенчатое напряжение, а контроллеру по барабану чем оно изначально регулируется, какой-то схемой или обычным переменным резистором.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 30 июн 2011 20:55

vasilievich писал(а):а контроллеру по барабану чем оно изначально регулируется, какой-то схемой или обычным переменным резистором.

нда... все мои слова в пустоту.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 01 июл 2011 16:18

Вот это я и насчитал :oops:

Спасть хотел :-)

Пересчитаю сейчас...

В связи с тем, что 3/4 оборота реостата - это положении 7, то верхний предел X будет 228 [((255-165)/10) *7+165], думаю формула объяснит ход мыслей, почему я решил, что будет 228 :-)

Меняем шаг перестройки
228-165=63
63/10=6.3 грубо 6 (можно попробовать поэкспериментировать - подставить 7 :-) )

в итоге получаем значения Х для каждого положения:
0=0
1=165+6=171
2=177
...
9=219
и 10=255


Далее считаем дискретность для АЦП:
т.к. OCR0A равен 8 битам(255), то
255/10=25,5 грубо 25

теперь листинг

после строчки
// Place your code here

вставить
x=0

далее нужно вместо
pwm = pwm + 165 ;
if (pwm > 255) pwm = 255;


записать для всех положений регуляторя значения Х
if (pwm < 5) x= 0; // положение 0
if (pwm = 25) x = 171; //положение 1
if (pwm = 50) x = 177; //положение 2
...
if (pwm = 225) x = 228;//положение 9
if (pwm > 250) x = 255;//положение 10
pwm = x ;


Извеняюсь :-)


ЗЫ У меня стояли транзисторы с логическим управлением irLz34n, т.е. при пяти вольтах сопротивление минимально( отсюда и меньше греются, т.к. при различном сопротивлении перехода выделяется разная мощность на радиатор- соответственно и разная температура), при 12 вольтах- ещё интересней :-) ...

Когда стоял один BUZ, то он не выдержал той мощности, что к нему была подведена и перегорел, ведь MOSFET открывался на половину(сопротивление сток-исток D-S было больше).

Сопротивление перехода Rds сток-исток от напряжения на затворе Vgs можно подсмотреть в даташите на транзисторы :-) .

Про мощность можно почитать, если перейти по этой ссылке http://ftoe.ru/elec4/Labs/lab5.htm, для наглядности можно передставить, что переменное сопротивление- это сопротивление перехода сток-исток у MOSFET при разном напряжении на затворе).
Последний раз редактировалось kredovit 01 июл 2011 16:33, всего редактировалось 1 раз.
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 01 июл 2011 16:24

kredovit писал(а):if (pwm = 25)

низя равно, т.к. фиг попадёшь. нужно диапазоны от и до...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 01 июл 2011 16:36

if (pwm > 20; pwm < 30) x = 171 ;

так правильней будет?

Если да, то:
if (pwm < 5) x= 0; // положение 0
if (pwm > 20; pwm < 30) x = 171; //положение 1
if (pwm > 45; pwm <55) x = 177; //положение 2
...
if (pwm >220; pwm < 230) x = 228;//положение 9
if (pwm > 250) x = 255;//положение 10
pwm = x ;


:-)
Последний раз редактировалось kredovit 01 июл 2011 16:41, всего редактировалось 1 раз.
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 01 июл 2011 16:41

kredovit писал(а):if (pwm > 20; pwm < 30) x = 169 ; так правильней будет?

Код: Выделить всё
if ((pwm>20) & (pwm < 30)) x = 169;


но всё равно это не правильный путь. Надо вначале построить соответствие напряжений положениям на климате, потом посчитать соответствие напряжений и данных с ADC, а потом всё описать одним выражением.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 01 июл 2011 16:45

неисключено, но работает :-)
просто я не любитель замеров- всё оставляю контроллеру- работаю совместно с EPROM , константы туда записываю с предварительной настройки онреал...
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 01 июл 2011 18:01

Что-то я в конец запутался, на выходных буду пробовать воплощать Ваши идеи в жизнь.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 11 июл 2011 09:45

vasilievich,как успехи?
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 12 июл 2011 18:49

Да практически никак. По крайней рекомендации изменил указанные Вами строки в исходнике программы, единственно, что пересчитал - это значение Х, так как у меня при более внимательном изучении оказалось не десять положений (от 0 до 9), а восемь (от 0 до 7). В итоге при компиляции CVAVR выдает кучу матерных выражений начиная от строки, где Х присваивается значение 0 и до конца (pwm=x). Так, что пока без результатов.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 14 июл 2011 06:52

Код: Выделить всё
В итоге при компиляции CVAVR выдает кучу матерных выражений начиная от строки, где Х присваивается значение 0 и до конца (pwm=x).


я забыл указать объявление переменной X

после #include <tiny13.h>
вставить unsigned int x;


после строчки // Place your code here
вставить x=0;

; нужно не забывать ставить в конце каждой строки, в предидущих сообщениях забыл :oops:

значения Х для всех положений регулятора
Код: Выделить всё
  if (pwm < 5)  x = 0; // положение 0
  if ((pwm > 27) & (pwm < 37))  x = 174; // положение 1
  if ((pwm > 59) & (pwm < 69))  x = 183; // положение 2
  if ((pwm > 91) & (pwm < 101))  x = 192; // положение 3
  if ((pwm > 123) & (pwm < 133))  x = 201; // положение 4
  if ((pwm > 155) & (pwm < 165))  x = 210; // положение 5
  if ((pwm > 187) & (pwm < 197))  x = 219; // положение 6
  if (pwm > 219)  x = 255; // положение 7
  pwm=x ; 




codewision не ругается :-)


вложил все файлы одним архивом.
Вложения
regulator oborotov 12v.rar
(24.96 КБ) Скачиваний: 470
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 14 июл 2011 18:07

Большое спасибо, буду пробовать.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение hardlock » 14 июл 2011 22:21

kredovit, думаю в тиньке не хватит памяти. И что будет с устройством при pwm=39, например?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 15 июл 2011 06:52

Код: Выделить всё
в тиньке не хватит памяти

ещё 45% FLASH доступно

Код: Выделить всё
что будет с устройством при pwm=39



При очередном запуске печки, в положениe ручки регулятора(резистора) соответствующем pwm=39 мотор работать не будет, т.к. было условие x=0 изначально. Для исправления этой ситуации надо будет выбрать любое положение от 1 до 7.


ЗЫ Программа рассчитана на дискретность.
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 16 июл 2011 13:24

Программа расчитана на дискретность - это толково, но при проверке оказалось, что при значениях pwm = от 38 до 58 и так далее двигатель работает как бы с рывками, т.е. по мере увеличения управляющего напряжения с помощью резистора двигатель начинает вращаться с одной скоростью, далее его скорость уменьшается, затем скачкообразно снова увеличивается, затем снова уменьшается и так до положения 7. При этом скорость оборотов двигателя в "неактивной" зоне регулирования, назовем ее так, - это (я так думаю pwm = от 38 до 58, от 70 до 90 и т.д.) постоянна , т.е. увеличение оборотов происходит в пределах 27-37, 59-69 и т.д. Использовал для регулировки резистор, так как первый вариант регулятора стоит у знакомого на авто. Конечно с резистором ни о какой дискретной регулировке не может быть и речи, но hardlock был прав, что для такого варианта программы необходимо знать точно величину управляющего напряжения с блока климы и только после этого привязывать его к программе. Конкретно на авто этот вариант регулятора не пробовал, использовал другой маленький движок (от сюда и вращение в моем случае при pwm=39), времени для всего совершенно не хватает. На следующей неделе попробую приобрести транзисторы, управляемые логическим уровнем. Спасибо за сотрудничество.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 16 июл 2011 18:53

Код: Выделить всё
скорость оборотов двигателя в "неактивной" зоне регулирования, назовем ее так, - это (я так думаю pwm = от 38 до 58, от 70 до 90 и т.д.) постоянна , т.е. увеличение оборотов происходит в пределах 27-37, 59-69 и т.д.

я этот вариант предлагал как дискретность(ступенчатая регулировка)

Код: Выделить всё
при проверке оказалось, что при значениях pwm = от 38 до 58 и так далее двигатель работает как бы с рывками, т.е. по мере увеличения управляющего напряжения с помощью резистора двигатель начинает вращаться с одной скоростью, далее его скорость уменьшается, затем скачкообразно снова увеличивается, затем снова уменьшается и так до положения 7

проблема может быть в неправильном месте строчки X=0;
косячёк :oops: , виноват.
Попробовать её переместить в начало программы, где присваиваются значения константам.
Я в кодевизион(С++) не силён, поэтому извините :pardon:

Если я не ошибаюсь, то X=0; надо поставить после объявления переменной unsigned int x;
Тогда X=0; не будет заставлять двигатель дёргаться в промежутках между положениями(в pwm = от 38 до 58 и т.п.)
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение vasilievich » 17 июл 2011 11:58

Наверное я Вас достал своими задачами, спасибо огромное, вечером обязательно попробую.
vasilievich
Пробегал мимо
 
Сообщения: 16
Зарегистрирован: 09 июн 2011 16:46
Откуда: Беларусь

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 20 июл 2011 07:29

Всё нормально :-)
я тоже просил помощи у ребят, которые преодолели трудности в стопорных для меня ситуациях :-)
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 24 июл 2011 14:29

vasilievich,как успехи?
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение kredovit » 02 авг 2011 09:51

Видимо всё получилось, раз не отвечают :-)
kredovit
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 24 июн 2011 21:54
Откуда: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Сообщение Casper_pro » 02 авг 2011 22:08

kredovit писал(а): if (pwm < 5) x = 0; // положение 0
if ((pwm > 27) & (pwm < 37)) x = 174; // положение 1
if ((pwm > 59) & (pwm < 69)) x = 183; // положение 2
if ((pwm > 91) & (pwm < 101)) x = 192; // положение 3
if ((pwm > 123) & (pwm < 133)) x = 201; // положение 4
if ((pwm > 155) & (pwm < 165)) x = 210; // положение 5
if ((pwm > 187) & (pwm < 197)) x = 219; // положение 6
if (pwm > 219) x = 255; // положение 7
pwm=x ;


А так не проще было?

x = pwm / 36.5;
x = x * 9 + 165;
if (pwm < 19) x = 0; // положение 0
if (pwm > 235) x = 255; // положение 7
pwm = x;

При условии что х - целая переменная
Casper_pro
Частенько бываю
 
Сообщения: 36
Зарегистрирован: 02 дек 2010 00:19

Пред.След.

Вернуться в ATtiny



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

Сейчас этот форум просматривают: Bing [Bot] и гости: 7