sensörsüz bldc motor(20000rpm) sürücüsü yapıyoruz

Başlatan hasankara, 03 Mart 2014, 14:26:26

hasankara

hocam asıl cümleyi yazmamışım şimdi fark ettim de. ti nin güncel bldc motor tasarımında space vektor modulation dan söz edilmemiş bile ve vurguladığım yerlerde microchip in tasarımı ile neredeyse teorik olarak birebir aynı tasarımlar yapılmış gibi gördüm.

dediğiniz gibi svm anlaşılması mühim bir konu olduğuna katılıyorum bu anlamda temel bir teori gibi ama, ben şimdilik benim için iyi olan tercihi bulup, hemen peşinde kullanmak üzere onu öğrenmeye odaklı araştırma yapmaya çalışıyorum. henüz net bir karar vermiş değilim bu anlamda ama svm seçimine yönelmem şimdilik düşük bir ihtimal.

http://www.ti.com/lsds/ti/apps/motor/brushless_dc/overview.page bu linkte ti çok güzel bir video paylaşmış yeni fark ettim. sağ alt köşede switch lerin aktiflik sıralaması gözüküyor. ti bldc için svm kullanmıyor sanırım.

powerelectronic bende iki tane l293 entegresi ve optik sürücü bldc motoru var . şimdilik onlar ile bir şeyler yapmaya çalışıyorum.

bu tasarımı her köprü için kullanmaya karar verdim. 4075 ve 4073 birer tanesinde 3 tane 3 girişli kapılar var. pazartesi sipariş vermeyi düşünüyorum. bu tasarımla hem yazılımsal olarak yapılacak hatalar sonucunda oluşabilecek transistör hasarlarını önlemeyi hem de tek kanal pwm ile microchip in güncel tasarımındaki sinyal çıkışlarını elde edebilmeyi hedefliyorum.

tek bir tane değil kapısı için koskoca 14 bacaklı entegre kullanmak yerine transistör ile 5 volt seviyesinde değil kapısı yapmak istiyorum, aynı zamanda kapı entegresi kadar refleksif olmasını istiyorum. Bu anlamda olabildiğince düşük kapasitansı olan smd kılıfını bulabileceğim bir transistör önerebilir misiniz?

hasankara

#46
http://www.youtube.com/watch?v=KFlg5dxgTZA#ws

ilk denemeyi yapabildim. izlenimlerimi ve aklıma takılan bir durumu paylaşmak istiyorum.

deneyi 16f877 entegresine aşağıda yüklediğim kod ile gerçekledim;
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include "zaman.h"

__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF &
         CP_OFF & CPD_OFF & BOREN_OFF & LVP_OFF );

void main(void) {
    zaman_init();

    TRISB=0b00000000;
    TRISD=0b00011000;
    PORTD=0;

    int a=12,b=50;

    while(1)
    {
        zaman_sayac();

        if(rdelay_ms[led1]==0)
        {
            rdelay_ms[led1]=50+3*(51-b);
            if(b>2)b--;
            RB7=~RB7;
        }

        if(rdelay_ms[led2]==0)
        {
            rdelay_ms[led2]=b;
            if(a<5)a++; else a=0; 

            switch(a)
            {
                case 0:
                    PORTD=0;
                    RD7=1;
                    RD1=1;
                    break;
                case 1:
                    PORTD=0;
                    RD7=1;
                    RD0=1;
                    break;
                case 2:
                    PORTD=0;
                    RD6=1;
                    RD0=1;
                    break;
                case 3:
                    PORTD=0;
                    RD6=1;
                    RD2=1;
                    break;
                case 4:
                    PORTD=0;
                    RD5=1;
                    RD2=1;
                    break;
                case 5:
                    PORTD=0;
                    RD5=1;
                    RD1=1;
                    break;
            }
        }
    }
}


2 adet l293 entegresinin 1 tanesine d7 d6 d5 diğerine d2 d1 d0 port pinlerini bağladım. eski anakarttan söktüğüm 16 tane k3918 n-mosfet leriyle, ti nin örnek şemasındaki 6lı mosfet bağlantısını kurdum. microchipte aynı bağlantıyı tercih etmiş.

en başından beri beni düşündüren pozitif uçları da n-mos larla sürmeleri (toplam 6 tane n-mos). pozitif seviye, n-mos la sürüldüğünde, mosfet üzerinde 2-3 volt kadar gerilim tutuyor. bu da , üzerinden geçen akım kadarıyla ısı enerjisine dönüştürülüyor. bir bildikleri vardır diyerek bende bağlantımı aynı şekilde toplamda 6 n-mos kullanarak yaptım.

videoda görüldüğü üzere bldc i olabildiğince verimsiz sürüyorum. bu sebeple enerjinin büyük kısmı boşa gidiyor. bu sebeple mosfetlerimizin ısınmalarını bekleyebiliriz. ancak üst ve alt mosfetler içerisinden geniş zamanda aynı akım geçtiğini bildiğimiz üzerine şunu da gördüm üst moslar alt moslara göre çok fazla ısınıyor. hatta alt mosfetlerin ısınması hissedilemeyecek kadar az iken, buna karşın videoda fazla açık tutamadım çünkü üst mosfetlerden duman çıkmaya başlıyor. 12 volt beslemesi için durum böyle. 5 volttada dönüyor yine üst moslar yine çok ısınıyor ama yanacak seviyeye kadar gelmiyor en azından.

Böyle olabileceğini düşündüğümden dolayı peşinen dün 3 tane p mosfeti(IRFR9024) de siparişlerim arasına ekledim. Bu durum bende şöyle bir soru meydana getirdi, ti ve microchip bu durumu farketmedi mi (bence bu soru bana saçma geliyor)? ya da buna rağmen ısrarla sadece n-mos kullanılmasının özel bir sebebi mi var? Sizce bunun sebebi ne olabilir? Aklıma gelen bir cevap; üst ve alt kolların kapanıp açılma sürelerinin tam birebir tutmasını sağlamak.

Mucit23

Alıntı yapılan: hasankara - 25 Mart 2014, 08:23:57
ya da buna rağmen ısrarla sadece n-mos kullanılmasının özel bir sebebi mi var? Sizce bunun sebebi ne olabilir?

Açıkçası bunu bende çok merak ediyorum. Gördüğüm referans tasarımların bir çoğunda aynı durum geçerli.

hasankara

Mucit23 az önce biraz daha kafa yorunca aklıma şöyle  bir ihtimal daha geldi. mosfetler 600 volt lar gibi fazlaca sayılabilecek gerilim seviyelerin kontrolünü sağlayabiliyor. mosfet tetiklemek için n-mos lara 0-15 volt aralığı çoğu zaman yetiyor. p-mos ta ise, besleme atıyorum 200 volt olsun 185-200 volt aralığında gerilim uygulamak gerekecek. birde mosfet sürmek için kullandıkları mosfet sürücü entegreleri (ir2101 gibi) 0-15 volt la besliyorlar. Bu entegreleri inceleme fırsatım olmadı ama çıkışlarından alabileceğimiz gerilim aralığı 0-15 volt ile sınırlı ise bu sebeple sadece n-mos kullanıyor olabilirler.

Bu sayede besleme voltajını çok yüksek seviyelerde tutabilirler. Benim besleme voltajım 14 volt olacağı için zaten bu durum benim için fazla bir önem arz etmeyecek. tabi ki, 6lı n-mos seçimleri sadece benim bu tespitim le alakalı ise.

Mucit23

Hocam dediğiniz gibiyse yüksek voltajlarda mosfet üzerindeki dengesiz ısınmalar göz ardımı ediliyor?

hasankara

#50
başka bir açıklaması yok. Benim durum biraz abartılı oluyor tabi rotor takibi yapmadan direk ateşlediğim için o yüzden çok aşırı ısındı, bunun haricinde sağlıklı bir algoritma kullansaydım belki hiç mosfetler ısınmazdı bile ama şu aşikar ki 6 lı n-mos bağlantısında üst moslar alt moslara göre daha çok güç tüketecek.

Icarus

hasan, mosfetler ısınıyor çünkü muhtemelen doğru süremiyorsun. Devre sorunlu. Fakat breadboard'a kurman ve bu devasa uzunluktaki kablolarda işi zorlaştıracaktır.

Merak ettiğim birşey var. Ekrandaki sinus, parabol, üçgen karşımı dalga nedir ?

hasankara

icarus dediğim gibi rotor takibi yapmadan sürdüm mosfetleri deneme amaçlı bu sebeple olağan üstü ısınmayı bekliyordum, hiç adc okuması bile yapmadım henüz. bunun ekstrasında mosfet konusunda doğru seçim yapmadığımızdan dolayı üst mosfetler alt mosfetlere göre daha fazla ısındı (üst 3lü ve alt 3lü kendi aralarında eşit sıcaklıklarda), önemli olan kısım burasıydı. motorun 2 ucundan 1 k dirençle osilaskop bağlantısı yaptım. birde 1uf kondansatörle filtreledim atlamaları kırpması için. pwm kullanmadım ve periyot süresi en düşük 6ms yani çok düşük sayılabilecek bir frekans için kabloların bir önemi olabileceği aklıma bile gelmedi.

Icarus

Alıntı yapılan: hasankara - 25 Mart 2014, 19:35:12
icarus dediğim gibi rotor takibi yapmadan sürdüm mosfetleri deneme amaçlı bu sebeple olağan üstü ısınmayı bekliyordum, hiç adc okuması bile yapmadım henüz. bunun ekstrasında mosfet konusunda doğru seçim yapmadığımızdan dolayı üst mosfetler alt mosfetlere göre daha fazla ısındı
Bunu demiyorum. Gate'i doğru süremiyorsundur. Mosfet tam açma/kapama yapmıyor üzerinde göreceli olarak büyük bir direnç kalıyordur.

Mr.Java

Güzel çalışma.PWM ile sürüp sonuçları paylaşırsan sevinirim.

mistek

@hasankara konunun tamamını okumadım ama birkaç noktadan bahsedeyim.

N mos kullanmalarını sebebi P mosa göre ucuz olması ve RdsOn direncinin daha küçük yapılabilmesi daha farklı sebepleride var.

N mosu sürmenin temel kuralı. Devre havada dahi olsa Gate bacağı ile Source bacağı arasındaki gerilim farkı ideal 10v olmalı. Daha aşağısı için RdsON direnci büyük olur.

N mosfeti P mosfet gibi kullandığınız zaman karşısınıza çıkacak tek sorun mosfeti sürememe durumudur. Burada imdadınıza bootstrap sürme tekniği yetişiyor. ir2101 mosfet sürücüdür ve bootstrap tekniği ile çalışır.

Temel mantığı kondansatörü doldurup Vgs gerilimi oluşturmaktır.

Mosfetin üzerine eğer VDS(max) dan fazla gerilim gelirse eğer çok ısınıyor. Doğru sürüyor olsanız bile mosfetin ısınmasına sebep oluyor.

Üst koldaki mosfetin ısınma sebebi süremiyor oluşunuzdan dolayı gibi duruyor.


mesaj birleştirme:: 25 Mart 2014, 20:12:23

Mosfet sürme şemanızı eklerseniz daha iyi olur.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

hasankara

#56
icarus aslında söylemek istediğinizi anlayabildim ancak bir anda kafam dağıldığından farklı cevaplamışım. şöyle söylemem gerekir ki tüm mosfetleri l293 le sürdüm ve mosfetlerin beslemesi kadar zaten gate anahtarlama vpp gerilimi uygulanıyor. l293 bilindiği üzere motor sürücü entegresi olduğu için çıkış akımını da gayet yeterli verebiliyor.

teşekkürler fatih elimden geldiğince vakit ayırmaya çalışıyorum.

mistek mosfetin kataloğunda verilmiş olan Vds(max) 25 volt. Bende 12 volt uyguladım. böyle olunca gate uçları l293 tarafından low:0v high:12v anahtarlanıyor. yükü kaldırdığım zaman motor uçlarına uygulanan max gerilim ise 9,5v civarı yani beklediğim gibi üzerinde gerilim tutuyor. Vgs farkı, 10volt aşağısı değilde daha yukarısı olduğu için bir problem olup olmayacağını bilmiyorum.

Açıkçası ben hala sürme anlamında bir problem olmadığını düşünüyorum. aliexpresten gelecek olan ir2101 leri beklemeyerek, siparişini verdiğim tahmini yarın elime geçecek olan ir2101 i kurcalama imkanım olacak. 3 köprüden birisini ir2101 le sürüp tekrar deneyip, sonuçları karşılaştırırım. Benim bu yöndeki iddiam 3 üst n-mosfet yine alt 3 n-mosfete göre daha fazla ısınacak. yani değişen bir şey olmayacak.

mesaj birleştirme:: 26 Mart 2014, 10:53:28

mistek alel acele sen söyleyince isiste çizdim.



Icarus

hasankara minik bir soru
+12V'dan +12V çıkarsa kaç volt kalır ? benim hesabıma göre sıfır. Senin hesabına göre +12V
Yada kısaca L293 ile bu şekilde high side mosfetleri süremezsiniz.

mistek

Icarus söylemiş.

Osiloskobun GND ucunu Üst mosfetin tam Source bacağına, Probuda Gate'e bağlayıp bi görüntü koyar mısınız?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

hasankara

#59
şöyle söyleyeyim, demek istediğiniz gibi yanlış bir sürme yapmış olsaydım çoktan bir görsel şölenle karşılaşacak idim. çünkü köprü tipi bağlantı olduğu için direk mosfetlerin üzerinden kaynak kısa devre olacakdı. n-mos la high sürerken fark ettiyseniz source ucumuz motorun pinine gidiyor. eğer p-mos olsaydı üst moslar için tam ters sinyal uygulamam gerekecek idi. Çünkü p-mos un source ucu bu sefer kaynağın üstüne bağlı olacak idi. Belkide ben hala demek istediğinizi anlamış değilimdir, özellikle icarus l293 ile süremeyeceğim konusunda ki söyleminiz beni şaşırttı.

mesela denetleyicinin çalışması durdurduğunda mosfetlere besleme gitse bile herhangi bir akım akmıyor, tüm mosfetler çalışmayı kesiyor. bu bile mosfetleri sürebildiğime güzel bir işaret bence.

mesaj birleştirme:: 25 Mart 2014, 21:19:17

birde osilaskopun referansı sistemin gnd sine bağlı olmak zorunda. malum hantek, usb olsun prob lar olsun tüm referans noktalarını gnd ile sabit kılmış.