Диммер IGBT или попытка сделать Регулятор мощности

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Ответить
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

А на подводе сетевого питания синусоида не искажается? может из за индуктивности проводов появляется звон, надо попробовать подвод питания зашунтировать конденсатором 10-20 мкФ 630в, хотя бы бумажным .
Такое устройство должно прилично гадить в сеть.
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

дык оно и гадит конечно..в меру сил и воспитаности
поэтому даже китайца ставить 2й диф на вхот
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

musor писал(а):в меру сил и воспитаности
:)))
Ну да в меру :)) Симисторный регулятор кадит 100 раз в секунду, Этот при частоте 4КГц 8 000 раз в секунду.
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Друг Кота
Сообщения: 3043
Зарегистрирован: Чт июн 26, 2014 00:04:37

Сообщение DC-AC »

Провода к самой нагрузке ведь не сделать совсем короткими, и они будут давать такой звон, а при увеличении тока могут уже и варисторы взорвать. Скорость переключения тока для IGBT достаточно высока (dI/dt). Если уж так и делать, то нормально и чтоб нагрузка работала тоже на синусе, но уже говорил, что будет сложнее
Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

да уже частотник почти с синусом выходит осталось задающий с изменяемой частотой добавить
мож ну его нах ПОКА НЕ ПОЗНО и вернутся на триаки...
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Был собран вариант с внешним питанием по 15 вольт. Нагрузка 3.6кВт.

Взорвал несколько пар варистров устаовил мощные (как 2 пятирублевые монеты) НА 390V.
Попалил Несколько раз снабберную цепь. В итоге пока что снаб,ер 300R2W ,3300pf 1kV.

В сумме полет нормальный.влияние канал на канал почти нету (при малой мощности(8-16%) разве что когда начинаеш повышать второй канал первый чучуть проседает(причину пытаюсь выяснить ну а так по ка что приличная стабильность и очень плавная регулировка.)
Из недостатков можно отметить писк(скорей всего 4kHz). Единственный выход который вижу заказать др транзюки которые можно моделировать на частоте выше 19kHz(которая не слышна человеку).

А пока что рисую схемку на трехфазную сеть( 6 каналов по 3.6кВт). Как будет готова прошивку + схему выложу на форум.
Так как ИИП раньше не мотал мб посоветуете схемку?) 220в->6x15V 10ma. По ка что заказал для ИИП UC3842.(испытания проводил с совковым трансом ТПП(для 15В))

И также всем спасибо за советы.
andrei23061996@gmail.com
.................................................................................................................
Реклама
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

Вы думаете что кто то будет это повторять? не думаю. На симисторе дешевле, меньше греется, меньше гадит в сеть. А какие преимущества здесь?
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Как уже писалось выше Симисторный регулятор мощности есть и функционирует нормально.
О преимуществах еще судить рановато. Этот проект моя небольшая хотелка которая нашла спонсирование ), и почему бы не попытаться ,
а самое главное приобретенные знания...
И все таки IGBT транзисторы с каждым поколением выходят все с лучшеми характеристиками..

А насчет повторить мб найдется еще какой нибудь маниакальный радиолюбитель которому будет просто интересен данный проект.
andrei23061996@gmail.com
.................................................................................................................
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

ну может быть.
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

А насчет UC3842 мб кто подскажет минимальную обвязку чтоб собрать ИИП для драйверов . То пару схем нашел уж очень они габаритные.
andrei23061996@gmail.com
.................................................................................................................
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

Изображение
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Телекот спасибо ,уже тоже наткнулся на данную схему )
Q1 думаю не принципиален главное чтоб частоту и ток тянул.)
andrei23061996@gmail.com
.................................................................................................................
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

Вам даже можно и слабей ставить мощность у вас мизерная, главное истоковый резистор должен соответствовать полевику.
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Может кто подсказать по поводу рабочей частоты?
даны на транзюк такие характеристики:
IRG4PC50FD

• Fast: Optimized for medium operating
frequencies ( 1-5 kHz in hard switching, >20
kHz in resonant mode
).
• Generation 4 IGBT design provides tighter
parameter distribution and higher efficiency than
Generation 3
• IGBT co-packaged with HEXFREDTM ultrafast,
ultra-soft-recovery anti-parallel diodes for use in
bridge configurations
• Industry standard TO-247AC package

Не могу сообразить что значит резонансная частота)

Можно ли этот транзистор выше 5kHz ШИМить?)
andrei23061996@gmail.com
.................................................................................................................
Друг Кота
Аватара пользователя
Сообщения: 36290
Зарегистрирован: Чт июн 04, 2009 21:06:49
Откуда: г.Мариинск

Сообщение Телекот »

7seg писал(а):Можно ли этот транзистор выше 5kHz ШИМить?)
Не желательно. или сильно занижать ток.
7seg писал(а):Не могу сообразить что значит резонансная частота)
При работе в резонансных преобразователях где коммутация происходит в моменты минимального напряжения или тока.
Тем кого не устаревает наличия ошибок в моем тексте, оставляю права не пользоваться моими советами или просто не читать мои сообщения.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Спасибо, мб кто знает транзюк который на 16-20kHz работает спокойно.

с похожими характеристиками:
VCES Collector-to-Emitter Voltage 600 V
IC @ TC = 25°C Continuous Collector Current 70
IC @ TC = 100°C Continuous Collector Current 39

ICM Pulsed Collector Current 280 A
ILM Clamped Inductive Load Current 280
IF @ TC = 100°C Diode Continuous Forward Current 25
IFM Diode Maximum Forward Current 280
VGE Gate-to-Emitter Voltage ± 20 V

А то чет нахожу на 60-150kHz только .
andrei23061996@gmail.com
.................................................................................................................
Мудрый кот
Сообщения: 1706
Зарегистрирован: Сб дек 14, 2013 16:11:55

Сообщение Fuser »

SGH80N60UFD
HGTG40N60A4
IRGP4063D1
FGH60N60SMD
и прочие для сварочников...

только не очень понял фразу про частоту...
7seg писал(а):кто знает транзюк который на 16-20kHz работает спокойно. А то чет нахожу на 60-150kHz только .
что мешает быстрому транзистору работать на низкой частоте? наоборот на низкой частоте их запас по мощности значительно выше.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Первый вариант прошивки для управления IGBT ( 6 Каналов). схемку чуть позже выложу.
Atmega168.

Код: Выделить всё

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
//-------------------------------------------///init_pwm///-----------------------------------------------------------------//
void init_pwm()
{
	TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
	TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (0<<CS00);
	OCR0A=0x00;
	OCR0B=0x00;

	TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10);
	TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
	OCR1AL=0x00;
	OCR1BL=0x00;

	TCCR2A=(1<<COM2A1) | (0<<COM2A0) | (1<<COM2B1) | (0<<COM2B0) | (1<<WGM21) | (1<<WGM20);
	TCCR2B=(0<<WGM22) | (0<<CS22) | (1<<CS21) | (0<<CS20);
	OCR2A=0x00;
	OCR2B=0x00;
}
//--------------------------------------------------------------------------------------------------------------------------//
void init_int0()
{
	//настраиваем на срабатывание INT0 по переднему фронту
	EICRA |= (1<<ISC01)|(0<<ISC00);
	//разрешаем внешнее прерывание INT0
	EIMSK |= (1<<INT0);
}
//--------------------------------------------------------------------------------------------------------------------------//
void init_io()
{
	DDRB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(0<<PB5)|(0<<PB6)|(0<<PB7);
	PORTB=0x00;
	DDRC=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6);
	PORTC=0x00;
	DDRD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
	PORTD=0x00;
}
//--------------------------------------------------------------------------------------------------------------------------//
//настройка параметров работы функций
#define BTN_LOCK_TIME		30					/*время обработки дребезга в милисекундах (10-100)*/
#define BTN_LONG_TIME		1000				/*время фиксации длинного нажатия в милисекундах (1000 - 2500)*/
//настройки портов
/*порт чтения кнопок*/
#define BTN_PORT			PORTB
#define BTN_DDR				DDRB
#define BTN_PIN				PINB
/*пины чтения кнопок*/
#define BTN_LINE_UP		(1<<0)
#define BTN_LINE_DN		(1<<5)
#define BTN_LINE_POWER	(1<<6)
#define BTN_LINE_SW		(1<<7)
//глобальные переменные
volatile uint8_t BtnFlags;					//байт флагов нажатия кнопки
#define BTN_SHRT_UP			(1<<0)			/*бит короткого нажатия кнопки up*/
#define BTN_SHRT_DN			(1<<1)			/*бит короткого нажатия кнопки dn*/
#define BTN_SHRT_POWER		(1<<2)			/*бит короткого нажатия кнопки POWER */
#define BTN_SHRT_SW			(1<<3)			/*бит короткого нажатия кнопки SW*/
#define BTN_LONG_UP			(1<<4)			/*бит длинного нажатия кнопки up*/
#define BTN_LONG_DN			(1<<5)			/*бит длинного нажатия кнопки dn*/
#define BTN_LONG_SW			(1<<6)			/*бит короткого нажатия кнопки SW*/
//-------------------------------------------------------------------------------------------------------------------
//Функция настройки библиотеки работы с кнопками
void BtnInit (void)
{
	BTN_DDR &= ~(BTN_LINE_UP| BTN_LINE_DN| BTN_LINE_POWER|BTN_LINE_SW);//на ввод
	BTN_PORT |= (BTN_LINE_UP| BTN_LINE_DN| BTN_LINE_POWER|BTN_LINE_SW);//подтяжка вкл
}
//--------------------------------------------------------------------------------------------------------------------
//Функция чтения данных о нажатии кнопок
char BtnGet (void)
{
	cli();
	char temp = BtnFlags;
	BtnFlags = 0;
	sei();
	return temp;
	
}
//-----------------------------------------------------------------------------------------------------------------------
//ФУНКЦИЯ ОБРАБОТКИ НАЖАТИЙ КЛАВИШ (вызывать в прерывании с частотой 100 Гц)
//короткое нажатие устанавливает бит BTN_SHRT_X глобальной переменной BtnFlags
//длинное нажатие устанавливает бит BTN_LONG_X глобальной переменной BtnFlags
void BtnExe (void)
{
	static unsigned char BtnLockBit;				//защелка (защита от дребезга)
	static unsigned char BtnLockCoun;			//счетчик защелки (защита от дребезга)
	static unsigned char BtnLongCoun;			//счетчик длинного нажатия
	static unsigned char BtnLastState;			//последнее состояние кнопок перед отпусканием

	char mask = 0;
	if (! (BTN_PIN & BTN_LINE_UP))		mask = BTN_SHRT_UP;
	if (! (BTN_PIN & BTN_LINE_DN))		mask = BTN_SHRT_DN;
	if (! (BTN_PIN & BTN_LINE_POWER))	mask = BTN_SHRT_POWER;
	if (! (BTN_PIN & BTN_LINE_SW))		mask = BTN_SHRT_SW;

	if (mask){									//опрос состояния кнопки
		if (BtnLockCoun < (BTN_LOCK_TIME/10)){	//клавиша нажата
			BtnLockCoun++;
			return;								//защелка еще не дощитала - возврат
		}
		BtnLastState = mask;
		BtnLockBit =1;							//нажатие зафиксировано
		if (BtnLongCoun >= (BTN_LONG_TIME/10))
		return;								//возврат, т.к. счетчик длинн нажат досчитал до максимума еще раньше
		if (++BtnLongCoun >= (BTN_LONG_TIME/10))
		BtnFlags |= (BtnLastState<<4);			//счетчик досчитал до максимума - устанавливаем биты длинного нажатия
	}
	else{										//клавиша отжата
		if (BtnLockCoun){
			BtnLockCoun --;
			return;								//защелка еще не обнулилась - возврат
		}
		if (! BtnLockBit)						//СТАТИЧЕСКИЙ ВОЗВРАТ
		return;
		BtnLockBit =0;							//отжатие зафиксировано
		if (BtnLongCoun < (BTN_LONG_TIME/10))
		BtnFlags |= BtnLastState;			//установка бита короткого нажатия
		BtnLongCoun = 0;					//сброс счетчика длительности нажатия
	}
}
//------------------------------------------------------****7SEG****----------------------------------------------------------
unsigned char ValuePWM[]={0,0,0,0,0,0};
#define SEGA 0
#define SEGB 1
#define SEGC 2
#define SEGD 3
#define SEGE 4
#define SEGF 5
#define SEGG 6

#define ANOD1 4
#define ANOD2 4
#define ANOD3 7
//-------------------------------------------------------------------------------------------------------------------------
void segchar (unsigned char seg)
{
	switch (seg)
	{
		case 0:
		PORTC=(0<<SEGA)|(0<<SEGB)|(0<<SEGC)|(0<<SEGD)|(0<<SEGE)|(0<<SEGF)|(1<<SEGG);break;
		case 1:
		PORTC=(1<<SEGA)|(0<<SEGB)|(0<<SEGC)|(1<<SEGD)|(1<<SEGE)|(1<<SEGF)|(1<<SEGG);break;
		case 2:
		PORTC=(0<<SEGA)|(0<<SEGB)|(1<<SEGC)|(0<<SEGD)|(0<<SEGE)|(1<<SEGF)|(0<<SEGG);break;
		case 3:
		PORTC=(0<<SEGA)|(0<<SEGB)|(0<<SEGC)|(0<<SEGD)|(1<<SEGE)|(1<<SEGF)|(0<<SEGG);break;
		case 4:
		PORTC=(1<<SEGA)|(0<<SEGB)|(0<<SEGC)|(1<<SEGD)|(1<<SEGE)|(0<<SEGF)|(0<<SEGG);break;
		case 5:
		PORTC=(0<<SEGA)|(1<<SEGB)|(0<<SEGC)|(0<<SEGD)|(1<<SEGE)|(0<<SEGF)|(0<<SEGG);break;
		case 6:
		PORTC=(0<<SEGA)|(1<<SEGB)|(0<<SEGC)|(0<<SEGD)|(0<<SEGE)|(0<<SEGF)|(0<<SEGG);break;
		case 7:
		PORTC=(0<<SEGA)|(0<<SEGB)|(0<<SEGC)|(1<<SEGD)|(1<<SEGE)|(1<<SEGF)|(1<<SEGG);break;
		case 8:
		PORTC=(0<<SEGA)|(0<<SEGB)|(0<<SEGC)|(0<<SEGD)|(0<<SEGE)|(0<<SEGF)|(0<<SEGG);break;
		case 9:
		PORTC=(0<<SEGA)|(0<<SEGB)|(0<<SEGC)|(0<<SEGD)|(1<<SEGE)|(0<<SEGF)|(0<<SEGG);break;
		case 99: //OFF Все сегменты
		PORTC=(1<<SEGA)|(1<<SEGB)|(1<<SEGC)|(1<<SEGD)|(1<<SEGE)|(1<<SEGF)|(1<<SEGG);break;
	}
}
void UpdateValue(void)
{
	for (unsigned char ValueCount = 0; ValueCount < 5; ValueCount++)
	{
		switch (ValueCount)
		{
			case 0:
			OCR0A=ValuePWM[ValueCount]*2.56;break;
			case 1:
			OCR0B=ValuePWM[ValueCount]*2.56;break;
			case 2:
			OCR1AL=ValuePWM[ValueCount]*2.56;break;
			case 3:
			OCR1BL=ValuePWM[ValueCount]*2.56;break;
			case 4:
			OCR2A=ValuePWM[ValueCount]*2.56;break;
			case 5:
			OCR2B=ValuePWM[ValueCount]*2.56;break;
		}
	}
}
unsigned char data1 = 0;
unsigned char data2 = 0;
unsigned char count = 0;
unsigned char ZoneNumber=0;
void WriteSeg(unsigned char Number)
{
	data1=ValuePWM[Number]%10;
	data2=ValuePWM[Number]/10;
	PORTB |=(1<<ANOD1);
	PORTD |=(1<<ANOD2);
	PORTD |=(1<<ANOD3);
	segchar(99);
	count++;
	if (count==1){
		PORTB &= ~(1<<ANOD1);
		segchar(data1);
		PORTD |=(1<<ANOD2);
		PORTD |=(1<<ANOD3);
	}
	if (count==2){
		PORTD &= ~(1<<ANOD2);
		segchar(data2);
		PORTB |=(1<<ANOD1);
		PORTD |=(1<<ANOD3);
	}
	if (count==3){

		PORTD &= ~(1<<ANOD3);
		segchar(Number+1);
		PORTB |=(1<<ANOD1);
		PORTD|=(1<<ANOD2);
	}
	if (count==3){count=0;}
	
}
ISR(INT0_vect)
{
	UpdateValue();
	WriteSeg(ZoneNumber);
	BtnExe();
}
void BtnUpdate(void)
{
	char BtnMask = BtnGet ();
	if ((BtnMask == BTN_SHRT_SW))
	{
		ZoneNumber++;
		if (ZoneNumber==6)
		{
			ZoneNumber=0;
		}
	}
	//одиночное нажатие +
	if ((BtnMask == BTN_SHRT_UP))
	{
		ValuePWM[ZoneNumber]++;
	}
	//одиночное нажатие -
	if ((BtnMask == BTN_SHRT_DN))
	{
		ValuePWM[ZoneNumber]--;
	}
	//Удержание +
	if ((BtnMask == BTN_LONG_UP) & (ValuePWM[ZoneNumber] < 99))
	{
		while ((!(PINB&0b00000001))& (ValuePWM[ZoneNumber] < 99))
		{
			ValuePWM[ZoneNumber]++;
			_delay_ms(50);
		}
	}
	//Удержание -
	if ((BtnMask == BTN_LONG_DN) & (ValuePWM[ZoneNumber] > 0))
	{
		while ((!(PINB&0b00100000))& (ValuePWM[ZoneNumber] > 0))
		{
			ValuePWM[ZoneNumber]--;
			_delay_ms(50);
		}
	}
}
int main(void)
{
	init_io();
	init_int0();
	BtnInit();
	init_pwm();
	_delay_ms(500);
	sei();
    while(1)
    {
		BtnUpdate();
	}
	return 0;
}
andrei23061996@gmail.com
.................................................................................................................
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Схема Часть_1.
Изображение
andrei23061996@gmail.com
.................................................................................................................
Мудрый кот
Сообщения: 1706
Зарегистрирован: Сб дек 14, 2013 16:11:55

Сообщение Fuser »

Мне кажется, или в дежурном источнике на 3842, полностью отсуствует обратная связь?)
----------------
А, увидел, косвенная по обмотке самопитания... вот только изза конденсатора по питанию она будет очень уж медленной...
Ответить

Вернуться в «Питание»