BLDC Motorda Kollar Arası Direnç Farkı

Başlatan AsHeS, 22 Şubat 2013, 02:25:22

AsHeS

BLDC motorda fazların iç dirençlerini ölçtüğümüzde farklı çıkması normal midir ? Mesela A-B fazı 0 ohm gösteriyor yani multimetrenin çözünürlüğü yetmiyor ama B-C arası 20 ohm gösteriyor.
Ayrıca biz motoru pwm kullanmadan direkt sürmek isteyince fazlardan birine bağlı mosfet aşırı ısınarak hız kaybına sebep oluyor kaynağı gözlemlediğimizde o mosfet grubu devredeyken kaynak osilasyona giriyor normalde 12 V 10A çıkış verebilen kaynak bir anda 6-12 arası kare dalga salınım yapıyor,sorunu bu noktada çözemedik motor aşağıda ki gibidir:
http://www.hobbyking.com/hobbyking/store/__9822__TP540_11_5T_3350kv_Brushless_R_C_Car_Motor_w_sensor.html
Motoru denemek için kullandığım yazılım aşağıda ki gibidir:
#include <xc.h>
#define _XTAL_FREQ 20000000
#pragma config CONFIG =0x3F3A
#define PWM0 PORTBbits.RB0//L1
#define PWM1 PORTBbits.RB1//H1
#define PWM2 PORTBbits.RB2//L2
#define PWM3 PORTBbits.RB3//H2
#define PWM4 PORTBbits.RB4//L3
#define PWM5 PORTBbits.RB5//H3
/*
 * 
 */
int main(int argc, char** argv) {
    unsigned char hall;
    TRISB=0x00;
    TRISD=0x0F;
   hall=PORTD&0x07;
    PORTB=0x00;      
   while(1){
         hall=PORTD&0x07;
       switch(hall){
           case 1:
               PWM0=1;//L1 aç?k
               PWM1=1;//H1
               PWM2=0;//L2
               PWM3=1;//H2
               PWM4=0;//L3
               PWM5=0;//H3 aç?k
               break;
           case 2:
               PWM0=0;//L1
               PWM1=1;//H1
               PWM2=0;//L2
               PWM3=0;//H2 aç?k
               PWM4=1;//L3 aç?k
               PWM5=1;//H3
               break;
            case 3:
               PWM0=1;//L1 aç?k
               PWM1=1;//H1
               PWM2=0;//L2
               PWM3=0;//H2 aç?k
               PWM4=0;//L3
               PWM5=1;//H3
               break;
           case 4:
               PWM0=0;//L1
               PWM1=0;//H1 aç?k
               PWM2=1;//L2 aç?k
               PWM3=1;//H2
               PWM4=0;//L3
               PWM5=1;//H3
               break;
           case 5:
               PWM0=0;//L1
               PWM1=1;//H1
               PWM2=1;//L2 aç?k
               PWM3=1;//H2
               PWM4=0;//L3
               PWM5=0;//H3 aç?k
               break;
           case 6:
               PWM0=0;//L1
               PWM1=0;//H1 aç?k
               PWM2=0;//L2
               PWM3=1;//H2
               PWM4=1;//L3 aç?k
               PWM5=1;//H3
               break;
       }

        }

    return 1;
}

z

Motorun sargılarını 0  ohm civarında ölçmelisin.

20 Ohm olan ölçümde bir tuhaflık var diyeceğim ama bu motoru kolay kolay bozup da 20 ohm durumuna sokamazsın.

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

AsHeS

Alıntı yapılan: z - 22 Şubat 2013, 02:39:53
Motorun sargılarını 0  ohm civarında ölçmelisin.

20 Ohm olan ölçümde bir tuhaflık var diyeceğim ama bu motoru kolay kolay bozup da 20 ohm durumuna sokamazsın.
@z hocam ben de ilk ölçtüğümde bir tuhaflık sezinledim ama anlattığım problemlerle biraraya gelince bayağı bir kararsız kaldım motoru mu değiştireyim kaynağı mı değiştireyim diye hâlâ da bir karara varamadım.

AsHeS


z

Motorun içi açılabiliyorsa şu omaj problemini hallet derim.

20 Ohm omaj okumak imkansız.  Böyle bir durum nasıl oluşur en azından bu merakımızı gider.

Motorda  olağan dışı bir koku varmı?

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

AsHeS

Alıntı yapılan: z - 22 Şubat 2013, 13:49:54
Motorun içi açılabiliyorsa şu omaj problemini hallet derim.

20 Ohm omaj okumak imkansız.  Böyle bir durum nasıl oluşur en azından bu merakımızı gider.

Motorda  olağan dışı bir koku varmı?
@z hocam motoru bir daha kontrol ettim dirençler tamam her faz arası 0 ohm gösteriyor artık,kodu zaten yukarıda verdim kodun tek yaptığı iş hız kontrolü olmadan motoru döndürmesi fakat o bile olmuyor breadboarda kurduğumuz devrede ki hemen hemen tüm kablolar kokuyor yanıyor eriyor ama motorda tık yok.Güç devresi TC4468 li mosfet sürücü ve 3 adet MOS bridgeli standart inverter devresi hata kaynağı olarak düşündüğümüz kaynağı değiştirdik 12 V 29 A bir kaynak aldık bu sefer voltaj dalgalanması 1 volta indi ki kabul edilebilir bir seviye bu bence ama kabloları eritip geçti bu sefer pcb ye geçeceğiz sizce bu bir yarar sağlar mı ?

z

Kodlarınız adam olana kadar besleme voltajını düşük tutun, akım sınırlamalı kaynak kullanarak birşeylerin yanmasının önüne geçin.

Motor sargılarını devreye bağlamadan sadece hall sensor bağlantılarını yapıp motor milini çevirdiğinizde motor voltajlarını üreten çıkışlardaki voltajların genlik ve dalga şekli olarak beklenen sırada olup olmadığını test edin.

Kodlarınıza odaklanmayı beceremem. Kodları siz yazdığınıza göre debug edebilir ve sorunu muhakkak yakalarsınız.

Motor sargılarını neden 20 Ohm okuyormussunuz?

Birde akım sınırlamalı bir kaynaktan düşük voltaj alarak motor sargılarına elinizle tek tek voltaj verin. Milin bu şekilde döndüğünü görün.
Motoru çok zorladıysanız mıknatısların hasar görmesi de mümkün.

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

AsHeS

@z hocam tavsiyeleriniz için öncelikle teşekkür ederim.
Kodlarınız adam olana kadar besleme voltajını düşük tutun, akım sınırlamalı kaynak kullanarak birşeylerin yanmasının önüne geçin.
Bunun NMOS ların sourcelarına takmak için 0.22 ohm 5W taş direnç aldım ama bağlamadım daha.
Motor sargılarını devreye bağlamadan sadece hall sensor bağlantılarını yapıp motor milini çevirdiğinizde motor voltajlarını üreten çıkışlardaki voltajların genlik ve dalga şekli olarak beklenen sırada olup olmadığını test edin.
Bunu denedik Hall sensörler devrede çalıştığına emin olduğumuz tek şey
Kodlarınıza odaklanmayı beceremem. Kodları siz yazdığınıza göre debug edebilir ve sorunu muhakkak yakalarsınız.

Motor sargılarını neden 20 Ohm okuyormussunuz?
Bu konu hakkında hiçbir fikrim yok sabah tekrar yaptığım ölçümde kılçıksız 0 ohm okudum

Birde akım sınırlamalı bir kaynaktan düşük voltaj alarak motor sargılarına elinizle tek tek voltaj verin. Milin bu şekilde döndüğünü görün.
Bunu denemek oldukça mantıklı pazartesi bunu deneyeceğim

Motoru çok zorladıysanız mıknatısların hasar görmesi de mümkün.
Zorlamaktan kastınız dönmeyince elle ittirmek ise hem de nasıl zorladık.

pisayisi

Sürücü devrede kontrol elemanı olarak n kanallı 6 fetli standart bir sürücü kullanıyorsanız, kodlarınızda 6 adımlı sürülüş lojik sıralamasına göre en çok 2 adet pwm sinyalinin lojik 1 çıkışa sahip olması gerekir. Kodlarda her fazda 3 adet pwm çıkışı lojik 1 olmakta , eğer n kanal 6 adet  fetli sürücü kullanıyorsanız pwm üreten kodlar hatalı...
Murat

AsHeS

Alıntı yapılan: pisayisi - 23 Şubat 2013, 19:31:30
Sürücü devrede kontrol elemanı olarak n kanallı 6 fetli standart bir sürücü kullanıyorsanız, kodlarınızda 6 adımlı sürülüş lojik sıralamasına göre en çok 2 adet pwm sinyalinin lojik 1 çıkışa sahip olması gerekir. Kodlarda her fazda 3 adet pwm çıkışı lojik 1 olmakta , eğer n kanal 6 adet  fetli sürücü kullanıyorsanız pwm üreten kodlar hatalı...
High taraf moslar PMOS Low taraf moslar NMOS kullandık ama dediğim gibi bir türlü çözemedik meseleyi dediğiniz gibi yaparsak olur mu ki alt ve üst tarafları NMOS seçsek anahtarlama düzgün olur mu ?

pisayisi

#10
Üst kolda pmos kullanıldı ise pwm durum diyagramında sorun yoktur, pmos ları nmos yaparsanız bu durumda high side sürücü gerekir işler daha karışabilir, pmos lu devrede değişiklik yapmaya gerek yok. Hall sensör geribeslemesinin düzgün bir şekilde yapıldığını bir kontrol etmenizi öneririm...
Murat

iyildirim

@AsHeS35
Öncelikle Z hocanın dediği gibi. gerilim ayarlı düşük güçlü bir kaynak ile çalışın. Ki bence bu da yeterli değil. PWM kullanın.

Motorun dönmeme sorunu motor bozuk değilse ancak bağlantıda olabilir.
Motor üzerinde yazıyorsa sırasıyla U=H1L1, V=H2L2, W=H3-L3 şeklinde bağlı olduğunda sensörlerin A=d0, B=d1, C=d2 şeklinde bağlı olmalı. Bu şekilde bağlı ise case bloğunda hata var..  1 ve 2 bitleri yer değiştirip sayıları yeniden yazmalısın. 
Yada case bloğunu doğru kabul edersek A=d0, B=d2, C=d1 şeklinde bağlı olmalı. 

Motorun bir datasheet'i yokmu..

Bunun dışında da, hala çalışmaz ise (Sensörlü motorlarda datasheetlerine göre yazım farklılığı oluyor galiba. Bazılarında rotor pozisyonuna (yapılan komutasyona) göre hall değerleri veriliyorken bazılarında yapılacak komutasyon şekli belirtiliyor. Bu ikinci tipler tek yönlü motorlarda var genellikle) dönüş yönüne göre bir sonraki yada bir önceki adıma göre anahtarlamayı dene..  Bunun için sensör den okunan değerleri komutasyona göre sıralaman gerekir. Ki diğer herşey doğru ise ve motor kitlenip kalıyorsa sorun büyük ihtimalle budur.
Komutasyon sıralaması  A=d0, B=d1, C=d2  ya göre 2, 3, 1, 5, 4, 6 şeklinde olmalı.. Yada yazmış olduğun case bloğunu doğru kabul edersek A=d0, B=d2, C=d1 ye göre 4, 5, 1, 3, 2, 6 şeklinde..

Yazılımda da tek tek pinleri set etmek yerine bunları 0-6 arasında indisli bir diziye atarsan hem daha hızlı çalışır. Hemde sıralamayı da ikinci bir diziye atıp bu dizi üzerinde ileri geri gezebilirsin. Sıralama dizisinden okuduğun değer pinleri tarif eden dizinin indisi olarak kullanılacak.

AsHeS

@iyildirim
PWM hız için kullanacağızda şu anda motorun dönmemesi problemine sahibiz,şu anda yazılımda hız isteğinede sahip değiliz nefes alsın yeter modundayız ,
1-2-3 olarak yazdığım Mos girişler A-B-C olarak söyleyebiliriz.Fakat kitlenmekten öteye gidemedik doğru düzgün :(

Motor hakkında tek bilgimiz aşağıda ki gibidir:
http://www.hobbyking.com/hobbyking/store/__9822__TP540_11_5T_3350kv_Brushless_R_C_Car_Motor_w_sensor.html

iyildirim

Motor ve Hall uçlarını nasıl tespit ettiniz.


AsHeS

#14
Alıntı yapılan: iyildirim - 24 Şubat 2013, 00:20:24
Motor ve Hall uçlarını nasıl tespit ettiniz.
Motorun üstünde fazlar yazıyor da Hall sensörü arkadaş direkt bağladı verdi bana pazartesi onu da kurcalayacağım.
Fakat Hall sensör çıkışı elle çevirdiğimizde düzgün şekilde gösteriyor lede bağlayıp baktık.