Звідки: Україна, Донецьк => Ірпінь 67332480 Мій електротранспорт: Tesla S Хочу електротранспорт: е-панцирник
Для будущего проекта разработал устройство управления вентилятором обдува щёточного узла коллекторного двигателя. Оно измеряет температуру в двигателе цифровым датчиком, а так же следит за током и напряжением на двигателе.
Логика работы такова:
При температуре ниже 10оС вентилятор вообще не включается.
Если выше 70оС вентилятор включен на полную мощность в любом случае.
При превышении 100оС дополнительно загорается красный светодиод.
При превышении тока или напряжения выше номинального (48А, 75В) вентилятор включен на полную мощность. После перегрузки вентилятор продолжает работать на полную мощность ещё 5 секунд (я назвал это "выбег после перегрузки").
Во всех других случаях при мощности тягового двигателя более 30% обороты вентилятора плавно растут и достигают максимума при 100% мощности
А так же обороты вентилятора включаются на 30% при достижении температуры 40оС и достигают максимума при температуре 70оС
Устройство не проверен в железе. Я буду проверять его при постройке своего электромобиля. Но я с удовольствием помогу довести его до ума тому, кто захочет повторить его прямо сейчас. Часть подключения датчиков тока и напряжения я не продумывал, т.к. у каждого они будут свои. Если вам нужно - пишите, вместе придумаем.
Заводские фьюы при прошивке не трогать. Если тронули, то настройте под 1МГц без кварца.
1. 18B20 заменить на терморезистор сразу. Цена отличается на порядок, а точность в этом деле не существенна. 2. Заменить ULN2004 на mosfet 3. Зашунтировать двигатель диодом. 4. VD1 не нужен 5. конденсаторы до и после КРЕНки нужны
Звідки: Україна, Донецьк => Ірпінь 67332480 Мій електротранспорт: Tesla S Хочу електротранспорт: е-панцирник
Спасибо за советы. 18B20 поставил, чтоб не возится с юстировкой датчика температуры. Стоит она 15грн. Такую цену вытерплю. В ULN2004 уже стоит шунтирующий диод. Выбрал эту микросхему, т.к. уже с ней успешно работал. Пока не знаю мощность вентилятора. Если будет тянуть больше 2 ампер, конечно поставлю МОСФет с диодом. VD1 я раньше никогда не ставил. Через него разряжается конденсатор С5 при пропадании питания. Говорят, очень полезно при неустойчивом питании, что очень актуально для электромобиля. В своих устройствах до этого я вообще РЕЗЕТ просто в воздухе бросал. Но туту хотелось бы Про конденсаторы вокруг КРЕНки совсем забыл. Спасибо!
Вообще, самая большая проблема - это снятия сигнала тока. Не могу придумать, как гальванически развязать схему, если на шунте развивается всего 100мВ? Уже даже подумываю, может эту информацию у контроллера выспрашивать через CAN или ещё какой интерфейс?
Проект изначально задумывался как открытый. Так что держите исходник прошивки! Самое интересное там в секции "глобальные константы настройки".
Исходник прошивки регулятора вентилятора
Код:
/***************************************************** Project : Регулятор вентилятора для сериесного двигателя электромобиля Version : 0,7 Date start : 2014-04-11 Date finish: Author : Stalker_W Company : Визг&Вопли Comments :
Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 1,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256
const unsigned char T_holodno=10; //min.температура вкл. вентилятора const unsigned char T_teplo=40; /*min.температура вкл. вентилятора и при номинальной мощности*/ const unsigned char T_jara=70; //температура сильного нагрева const unsigned char T_dym=100; //температура аварийного перегрева const unsigned int U_nomin=75; //перегрузочное напряжение двигателя, В const unsigned int I_nomin=48; //перегрузочный ток двигателя, А const unsigned int U_max=110; /*макс. напряжение двигателя, В. при напряжении датчика 2,56В */ const unsigned int I_max=600; /*макс. ток двигателя, А при напряжении датчика 2,56В */ const unsigned char time_vkl=5; /*время выбега вентилятора после перегрузки двигателя, сек. */ const unsigned char PWM_min=40; //мин.мощность вентилятора в процентах
unsigned char num_dat=0; //обслуживание датчика температуры unsigned char rom_codes[2][9]; unsigned int tajmer0=0; //таймер вентилятора unsigned char tajmer1=0; //таймер считывания температуры unsigned char PWM_vent=0; //текущая мощность вентилятора unsigned char PWM_temp; unsigned int U=0; unsigned int I=0; float temper=22; unsigned int P_nomin; //номинальная мощность двигателя unsigned int P; unsigned int P_start;
// Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) { //считывание напряжения с датчиков ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; }
//================= тело программы ============================ void main(void) { // Declare your local variables here
if ((U>U_nomin)||(I>I_nomin)) {tajmer0=time_vkl*20;};
P=U*I; if (P<P_start) {PWM_vent=0;}; if ((P>=P_start) | (P<=P_nomin)) //поддуваем вентилятором при //чуть ниже номинала мощности { PWM_vent=((P-P_start)/(P_nomin-P_start))*(100-PWM_min)+PWM_min; };
if ((temper>=T_teplo) | (temper<T_jara)) //поддуваем вентилятором если //потеплело { PWM_temp=((temper-T_teplo)/(T_jara-T_teplo))*(100-PWM_min)+PWM_min; };
if (PWM_temp>PWM_vent) {PWM_vent=PWM_temp;};
if (tajmer0) {PWM_vent=100;}; //перегрузка по току или напряжению //или выбег после неё if (temper<=T_holodno) {PWM_vent=0;}; //холод собачий if (temper>=T_jara) {PWM_vent=100;}; //почти дымимся
if (PWM_vent>100) {PWM_vent=100;}; //проблемы округления
Звідки: Украина. Киев. 8721387 Мій електротранспорт: "Электра 2" Хочу електротранспорт: "Электра 3" вдвое легче, но с втрое бОльшим солнцеобеспечением
По моему, не только для сериесника. .....Ведь крыльчатка любого эл.двигателя, при 2000-3000 об.мин, потребляет ватт ~пятьдесят ! Даже в мороз ! а зачем? Вот они где лишние то, ватт, часы, на км. .....С другой стороны, когда Вы едете на затяжной подьём, на малых оборотах, практически без обдува, и перегреваетесь, Вам бы , принудительный обдув оччень не помешал бы. Сам то до ЭТОГО ещё не дошёл, но .....планирую . Правда, не понимаю, зачем, для этого сложные цифровые системы ? Почему не обыкновенный автомобильный датчик температуры радиатора , завинченный в дюралевую крышку корпуса.? ? ?
Звідки: Украина. Киев. 8721387 Мій електротранспорт: "Электра 2" Хочу електротранспорт: "Электра 3" вдвое легче, но с втрое бОльшим солнцеобеспечением
А вообще, намереваясь не уступать " свою жёлтую майку Лидера по экономичности ( 60 ватт.час км) и желая улучшать этот показатель, уже пробовал для принуд.обдува бытовой пылесос. От 60вольт постоянки, коллекторный ~220 вольтовый- работает, но ........уж очень шумно ! Может , кто предложит другие варианты? Я знаю, были пробы и на Волге 21 и на "Голубой мечте" Вячеслава М.
Звідки: Україна, Донецьк => Ірпінь 67332480 Мій електротранспорт: Tesla S Хочу електротранспорт: е-панцирник
Михалыч, могу допрограммировать сюда контроллер под любой двигатель. Это не сложно, т.к. не нужна рекуперация, да и без датчика оборотов можно обойтись.
Звідки: Україна, Донецьк => Ірпінь 67332480 Мій електротранспорт: Tesla S Хочу електротранспорт: е-панцирник
Кстати, схема работает и без подключения датчиков тока и напряжения. В этом случае она регулирует обороты вентилятора в зависимости от температуры.
А на столь сложный наворот с контролем мощности тягового двигателя меня натолкнул алгоритм регулировки оборотов вентилятора в моём компьютере. В нём обороты регулируются в зависимости от температуры и загрузки процессора. Очень эффективная вещь. Я просто повторил его.
Звідки: Україна, Донецьк => Ірпінь 67332480 Мій електротранспорт: Tesla S Хочу електротранспорт: е-панцирник
Не считал, т.к. проект не коммерческий. МК - 15грн Датчик температуры - 15грн ULN - 5грн В общем, по запчастям без корпуса, если подключать только датчик температуры, то выйдет гривен 40-50.
Зараз цей форум переглядають: немає зареєстрованих користувачів і гості: 1
Ви не можете створювати нові теми Ви не можете відповідати на повідомлення Ви не можете редагувати свої повідомлення Ви не можете видаляти свої повідомлення Ви не можете додавати додаткові файли