BLDC motor için IPM seçim

Başlatan werdan, 28 Ağustos 2020, 13:56:34

werdan

Merhaba elimde 1.5 kw ve 4.5 kw gücünde 3 tane hall sensörlü bldc motorlar var amacım 1.5 kw üzerinde işi öğrenip sonrasında 4.5KW lık için sürücü devresi yapmak ikiside 72 volt gerilimde çalışıyor, daha önce bir cd rom motoru için kendim mosfet ve mosfet sürücülerle bir tane motor sürücü yaptım ama iş büyük bir tane yapmaya gelince IPM modüllerini önerdiler.

1-) Soruma gelecek olursak bu IPM modüllerinin datasheetlerini incelediğimde benim yaptığım sürücü devresinden farklı bir bağlantı şekli gördüm Nw, Nv, Nu  gibi uçlar dışarıya verilmiş nedenini anlamadım

2-) Bu modüllerin kullanımı ile ilgili herhangi bir doküman bulamadım nasıl kullanacağım onuda anlamış değilim hangi pine PWM vereceğim mikro-denetleyici ile bağlantılarını nasıl yapacağım bu konuda hala hiçbir şey bilmiyorum

3-) Öğrenmek için bir tane IPM alıp üzerinde denemeler yapmak istiyorum bu konuda bir model tavsiyesine ihtiyacım var

Şekilde bir datasheetden alınmış block diagram var anlamadığım yerleri çizdim


Bu konuda vereceğiniz her türlü tavsiyeye açığım Saygılarımla Hayırlı forumlar


OG

#1
1-) Akımı ölçmek için uçlar

örnek,
sayfa 3, 4, 5, 7, 17
https://www.onsemi.com/pub/Collateral/AND9390-D.PDF

verdiğim eleman için girişe pwm verilmiyor, gereken logic (H veya L) bilgi üretilip veriliyor
sayfa 2
https://www.onsemi.com/pub/Collateral/STK5C4U332J-E-D.PDF
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Nw, Nv ve Nu saseye gidecek bacaklar. Akim olcum devrenin tipine gore bu bacaklardan kac tanesine akim sens direnc baglaman gerekecegine karar vermen gerekecek.

Bacaklarda bir 6, 7 ve 8 kafa karistirici. Diger bacaklarin ne ise yaradigini IR21xx tipi suruculerden biliyor olman lazim.

Modulun katalog bilgilerini bulman gerekiyor.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Cemre.

FNC42060F2 modelini başarı ile kullandım, daha düşük gerilim seviyesine sahip modeller de mevcuttur muhtemelen..

werdan

Alıntı yapılan: OG - 29 Ağustos 2020, 02:43:341-) Akımı ölçmek için uçlar

örnek,
sayfa 3, 4, 5, 7, 17
https://www.onsemi.com/pub/Collateral/AND9390-D.PDF

verdiğim eleman için girişe pwm verilmiyor, gereken logic (H veya L) bilgi üretilip veriliyor
sayfa 2
https://www.onsemi.com/pub/Collateral/STK5C4U332J-E-D.PDF


Hocam ben sayısal elektronik dersini henüz görmedim bu logic değerler nasıl üretiliyor bilmiyorum pwm ile kontrol etmeyi düşünmüştüm bu modülleri pwm ile süremez miyim

werdan

Alıntı yapılan: z - 29 Ağustos 2020, 03:17:18Nw, Nv ve Nu saseye gidecek bacaklar. Akim olcum devrenin tipine gore bu bacaklardan kac tanesine akim sens direnc baglaman gerekecegine karar vermen gerekecek.

Bacaklarda bir 6, 7 ve 8 kafa karistirici. Diger bacaklarin ne ise yaradigini IR21xx tipi suruculerden biliyor olman lazim.

Modulun katalog bilgilerini bulman gerekiyor.




abi ben hall sensörlerden gelen konum verisine göre motoru sürüyorum bu bacaklardan gelen akımı ölçmeden moturu süremez miyim ? benim kullandığım IR21xx li devrede bu bacaklar GND'e bağlıydı gene aynı şekilde bağlayıp sürebilir miyim

OG

Akım ölçme ekleri avantaj hatta motor sürerken mecbur, over current protection işi yapar, yoksa patlatırsın elemanı.
IR21xx elemanları bunların içinde zaten, o yapıyla uğraşmıyorsun, çıkış transistorleri ile de uğraşmıyorsun.

Sensorlu bldc ile elbet kullanabilirsin, hazır konum bilgisi, işin kolaylaşır,
sensor bilgisini sinyali üreten mcu/mpu katına gireceksin, orada işlenir.

Sen, elemana pwm gireyim motor yürüsün türünden bir şey istiyorsun ama  IPM'lerde böyle hazır bir şey varmıdır, bilmiyorum, sanmıyorum.
Bunlar adı üstüne power modul, yani çıkış katı Inverter Power Module

Kontrol tarafını (mcu) yapmak zorundasın.

 
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

werdan

Alıntı yapılan: OG - 29 Ağustos 2020, 15:28:59Akım ölçme ekleri avantaj hatta motor sürerken mecbur, over current protection işi yapar, yoksa patlatırsın elemanı.
IR21xx elemanları bunların içinde zaten, o yapıyla uğraşmıyorsun, çıkış transistorleri ile de uğraşmıyorsun.

Sensorlu bldc ile elbet kullanabilirsin, hazır konum bilgisi, işin kolaylaşır,
sensor bilgisini sinyali üreten mcu/mpu katına gireceksin, orada işlenir.

Sen, elemana pwm gireyim motor yürüsün türünden bir şey istiyorsun ama  IPM'lerde böyle hazır bir şey varmıdır, bilmiyorum, sanmıyorum.
Bunlar adı üstüne power modul, yani çıkış katı Inverter Power Module

Kontrol tarafını (mcu) yapmak zorundasın.

 

kontrolü yaptım hocam daha önceki sürücü için bir kod yazmıştım aşağıda tabloda ki durumlara göre IR21xx lere pwm, high veya low gönderiyorum şimdi bunu yazarken aklıma geldi ben yazılımsal olarak herhangi bir deadtime kullanmadım bir sorun oluşturur mu sadece bu tablodaki değerler

8,9 ve 10 numaralı pinler hall sensörlerden gelen veriler


Buda daha önce kurduğum devre


Yazdığım kod
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
 a=0, b=0, c=0, t=0;
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_0))
 {
 a=1;
 b=0;
 c=0;
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_1))
 {
 b=1;
 break;
 }
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_2))
 {
 c=1;
 break;
 }
 break;
 }
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_1))
 {
 a=0;
 b=1;
 c=0;
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_0))
 {
 a=1;
 break;
 }
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_2))
 {
 c=1;
 break;
 }
 break;
 }
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_2))
 {
 a=0;
 b=0;
 c=1;
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_1))
 {
 b=1;
 break;
 }
 while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_0))
 {
 a=1;
 break;
 }
 break;
 }
 t=c*4+b*2+a;
 motor();

}
void motor()
{
 switch (t)
 {
 case 1:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
 break;
 case 2:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
 break;
 case 3:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
 break;
 case 4:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
 break;
 case 5:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
 break;
 case 6:
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 255);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 0);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, adc_value);
 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
 break;
 default:
 break;
 }
}
/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

void Read_ADC()
{
 HAL_ADC_Start(&hadc1);

 if(HAL_ADC_PollForConversion(&hadc1, 100000) == HAL_OK)
 {
 adc_value = HAL_ADC_GetValue(&hadc1);
 }
 HAL_ADC_Stop(&hadc1);
}

OG

yazılımı yaptıysan dead time eklemek işin oyun tarafı.
yazılımda polaritelerin (süren H ve L değerleri) kullanacağın IPM elemanına uygun olmalı, deadtime da öyle.

Önce uygun ve bulabileceğin IPM'i seç, sonra o elemana göre devam et derim.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

werdan

Başlangıç olarak bu modülü almayı düşünüyorum bu motorla 12 voltluk cd-rom motorunu sürerken bir problem yaşar mıyım ?

https://pdf.direnc.net/upload/6mbp15xsf060-50-600v-15a-igbt-modul-datasheet.pdf

LukeSkywalker

Buradaki sürücüde dahili dead time üretimi yok ama high ve low sideların her ikisini de aynı anda açmanızı engelleyecek bir logic varmış. Yine de giriş sinyalleri dead time içermeli diyor. Bu işlemi artık çoğu mcu kendisi hallediyor.