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

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

hasankara


Başlıktada belirttiğim gibi motor sürücü tasarlamaya başladım.

http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=8505

linkindeki motoru sürmek için kolları sıvadım. kendisi hala türkiyede olmasada şimdiden sürücüsüne uğraşıyorum.

ilk olarak mosfet sürme ile ilgileniyorum. eklediğim aşağıdaki resimlerde denemelerimin sonuçları bulunmakta. ilk resim isis te ki şema ve osilaskop görüntüsü. ikincisi ise kendi gerçeklediğim board üstündeki denememin osilaskop görüntüsü, sarı olan denetleyiciden çıkan pwm yeşil ise motora uygulanan, yani mosfetin çıkış sinyali.





bu aşamaya kadar şimdilik iki konuyu danışmak istiyorum;

1. linkini eklediğim motoru max 20.000 rpm de çalıştırmayı planlıyorum. datasheette 14 magnet 12 stator olduğu belirtilmiş. pwm le gerilim kontrolü yapmak için bir hesap yaptım. saniyede 350 tur atacak olan bu motor, 350*12 = 4.2 khz frekansında konum değiştirecek. her konuma birden fazla periyotun sığması daha tutarlı sonuçlar elde etmemi sağlayacaktır düşüncesiyle en az 4 periyot sığması için 16.8 khz üzerinde tutmamın faydalı olacağını düşünerek 32khz uyguladım. bu frekans değeri sizcede mantıklı bir seçim olmuş mudur? bu seçimi yaparken gözden kaçırdığım kısım sizce olmuş mudur ?

2. ilk aşamada mosfet sürmeyle başladım ve 32 khz de sürdüm, denetleyici pwm modülünden en fazla 80 khz alabiliyorum . sizce, grafiklere bakıldığında bu konuda başarılı olabilmiş miyim ? bir mosfet sürücü entegresi kullansaydım daha temiz bir sonuç alabilir miydim? bu yöntemden vazgeçmem için yeterli olacak kadar sonuç daha iyi olur muydu?

tork konusunda bilgi vermem gerekirse, elimdeki dc motorla test ederken motoru elimde tuttuğumda motora uygulanan sinyalde gözle gördüğüm yüzde 5 kadar diyebileceğim ilk çıkış anında alçalma görüyorum ve mosfet uzun süre motoru elle frenlemiş halime dayanamayacak kadar ısınıyor. Yani bu torku ben beğendim.

Icarus

Zor olan kısım rotor posisyonunu sargı gerilimlerini ve akımlarını ölçerek hesaplamak. (Faz ve genliği beraber ölçeceksiniz) Bütün bu hesaplamalar artı 6 bağımısz PWM çıkışı muhtemelen DSP gerektirecek. vb... vb...

hasankara

cevap için teşekkürler Icarus.
pwm sayısı konusunda sadece pozitif seviyesi için pwm uygulayıp negatif seviyesini normal pwm siz olarak sürmemin sorun olmayacağını düşündüm. bu sayede pwm kanal ihtiyacını 3 e indirmiş oluyorum. hatta and kapısı ile tek kanala bile indirebileceğimi düşünüyorum ama ek masraftan kaçınmak için 3 kanal pwm modülü uygulayabileceğim pin daha mantıklı geliyor şimdilik.
Adc modülü içinde şöyle yaklaşmıştım, ilk yazımda yaptığım hesapla her konum için en az 4 örnek ama bu az bile sayılabilir 16 örnek yetecek diye düşünürsek 64ksps adc hızı ile bunu sağlamış olabiliyorum. bunlar kabaca hesaplamalar tabi o aşamalara daha gelemedim.

şu an mosfet sürme aşamasındayım bunu sonuca kavuşturunca negatif mosfet süreceğim. devamında , elimdeki optik sürücü den söktüğüm 18 stator bulunan bir bldc motor var bunun üzerinde denemeler yapacağım.

Tagli

Alıntı yapılan: Icarus - 03 Mart 2014, 15:02:32
6 bağımısz PWM çıkışı gerektirecek.
Tek kanal PWM'i AND kapıları ile dağıtarak sürmek de mümkün. Ben denedim, oluyor ama ne kadar verimlidir orasını bilemem. Profesyonel bir çalışma değildi ve uzun süre denenmedi.
Gökçe Tağlıoğlu

volkii

Her sargı için half bridge yapmak gerekmiyor mu? Siz tek mosfet kullanmışsınızda. Bilmediğim için soruyorum ve bende bir bldc sürücü yapmak istiyorum, sargıların akım-gerilimlerini okumamızın amacı nedir? bir uygulamada görmüştüm, bridge'nin ortasından bir sinyal ucu alınarak fark yükselteci ile okuma yapıyordu eleman. hatta sanki lojik okuyordu gibi geldi bana

hasankara

dediğim gibi bu p mosfeti sürme aşaması henüz. elbette half bridge yapılacak ancak daha önce mosfet sürme entegrelerini kullanmadım hiç. bu konuda tecrübesi olan varsa diye sormak istemiştim. 3 uçtan en fazla ikisi aktif olabiliyor ve boşta kalan uçtan okunan gerilim değerine göre rotorun konumu hakkında fikir edinebiliyoruz. bu gerilim değerine göre aktiflik sırası programda sırasıyla değiştiriliyor.

Icarus

Alıntı yapılan: hasankara - 03 Mart 2014, 15:14:42
pwm sayısı konusunda sadece pozitif seviyesi için pwm uygulayıp negatif seviyesini normal pwm siz olarak sürmemin sorun olmayacağını düşündüm. bu sayede pwm kanal ihtiyacını 3 e indirmiş oluyorum. hatta and kapısı ile tek kanala bile indirebileceğimi düşünüyorum ama ek masraftan kaçınmak için 3 kanal pwm modülü uygulayabileceğim pin daha mantıklı geliyor şimdilik.
3 kanal kullanıp "Biri diğerinin  (NOT)değilidir" derseniz hem frenleme yapar hemde dead-band ekleyemezsiniz.
Artı sargı gerilimini okumak sıkıntı olur çünkü hiçbir bölgede hiçbir sargını ucu "float" olmaz.
Alıntı yapılan: hasankara - 03 Mart 2014, 15:28:21
3 uçtan en fazla ikisi aktif olabiliyor ve boşta kalan uçtan okunan gerilim değerine göre rotorun konumu hakkında fikir edinebiliyoruz. bu gerilim değerine göre aktiflik sırası programda sırasıyla değiştiriliyor.
Böyle yaptığınızda maksimum kalkınma torku elde edemezsiniz. Gerilimin yanında akımda gerekiyor.
Google: Field Oriented Control

hasankara

hayır 3 kanal pwm derken değillemeyi kastetmedim. bir uçtaki n mosfet sürekli aktifken diğer uçtaki p mosfete pwm uygulanacak. peki bu durumda da frenleme olur mu?

FxDev

Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

Logan

Merhaba Hasankara.

Güzel bir uğraşa girmişsin. Ancak epey yol alman ve çalışman gerekiyor. Amerika'da verilen TI eğitimlerinde bu konu üzerinde oldukça durdular. Sensörsüz olarak motorun devrini nasıl sabit tuttuklarını ve nasıl anladıklarını uzun uzun formüllerle anlattılar. Extended Kalman filtresi kullanarak kol akımlarını, kök akımını ve yanlış hatırlamıyorsam kol voltajlarını kullanarak vektörel kontrol ile motorun konumunu ve devrini %0.5 hata ile tahmin ediyorlar. Esas işin zor kısmı orası.
İmza.

hasankara

deadtime ın amacı nedir? faydası nedir? olmazsa olmaz mıdır? deadtime ı tam periyoda oranlayabileceğimiz sabit bir değer belirli midir? yada parametreleri için hangi değerlere bakmamız gerekir (mosfet in yapısı gibi) ?

EFESU


kare dalga  giriyorsunuz  3 faz kare dalga  çıkıyor üstelik
high ve low  şeklinde
yalnız
300 hz de  50 hz kare dalga çıkıyor ona göre ayarlamak gerekiyor
denedim devre gayet sağlıklı çalışıyor



hasankara

efesu dediğini anladım teşekkür ederim ayrıca. ancak bldc sürmek için düşünürsek, zaten statorlar arasındaki faz farkı yazılımsal olarak yapılacak. yani konum hesaplanacak konuma göre statorlar ateşlenecek. böylece motorun dönüşüne göre motorun uçlarında 3 farklı faz meydana gelmiş olacak senin dediğin gibi olacak yine.

benim sormak istediğim nokta seçili olan p mos ve n mos üzerine uygulanan pwm sinyalleri arasında bir deadtime oluşturulması gerekiyor mu? yani p mos n mosa göre daha erken kapatılsın gibi. yada tam tersi de olabilir. buna ihtiyaç var mı? varsa faydası nedir?

Mr.Java

Tabi ki oluşturacaksın hasan.500ns gibi bir süre beklemek gerekiyor.Tabi ki rakam misaldi.Bunu hesaplaman gerekiyor.

hasankara

fatih buna neden ihtiyaç duyulur ? birde 500ns yi neye göre söyledin? ben bu süreyi nasıl hesaplamam gerekir?