Doğrudan tork kontrol için denetleyici seçimi

erdemtr55

Aktif Üye
Katılım
3 Mart 2025
Mesajlar
161
Selamın aleyküm arkadaşlar,
Şuan yüksek lisans için dtc kontrollücü hasarlıyorum.Stm32f103 blue pill kullandım.Bilgisayara bağlı iken 7200 7300 mikro saniyede while içinde bir döngü oluyor.Chatgpt sordum.Alu ve fpu
olan bir işlemci kullanmamı önerdi.
Ben stm32h723 ,stm32f401 veya stmf411 gibi işlemcileri düşündüm ,ama size sorayım dedim.

Not : Voltaj,akım ve hız verisini dma ile alıyorum.
 
f103 72Mhz e kadar çalışabiliyor. Siz mcuyu kaç Mhz de çalıştırıyorsunuz?
Hesaplama çevrimi 7200us yerine kaç olursa sizi kurtarır?
Hesaplama için kullandığınız while döngüsünü paylaşın, belki farklı hızlandırma önerileri gelebilir.
Float işlemler yapıyorsanız F103 de sanırım yok F4xx serilerindeki FPU ünitesi etkinleştirin.
 
f103 72Mhz e kadar çalışabiliyor. Siz mcuyu kaç Mhz de çalıştırıyorsunuz?
Hesaplama çevrimi 7200us yerine kaç olursa sizi kurtarır?
Hesaplama için kullandığınız while döngüsünü paylaşın, belki farklı hızlandırma önerileri gelebilir.
Float işlemler yapıyorsanız F103 de sanırım yok F4xx serilerindeki FPU ünitesi etkinleştirin.
Hocam 15khz olmasını istedi.Verimli oluyormuş.Stm32f103 de alu fakat fpu yok .malesef .Şuan 7300 us
 
Tek bir STM32F103C8 ile 16Khz ile 3 step motorun akim kontrol loopu ceviriyorum. Bu da 6 tane bobinin akim kontrolu demek.
40 Khz de bile hiz anlaminda sorun cikmiyor.

Kodlamanda sorun vardir.
 
Son düzenleme:
kodun içinde çok büyük çarpma ve bölme işlemleri, kayan noktalı işlemler yoksa FPU büyük bir fark yaratmaz. öncelikle kodun optimize edilmesi gerekir. bu durumda direkt saat hızını yükseltmek ve daha yeni nesil bir M4 kullanmak faydalı olur. 168 mhz çalışan bir 401 ya da 446 chipte bu süre yarıya iner. yani öyle 10x-20x bir fark oluşmaz.
 
kodun içinde çok büyük çarpma ve bölme işlemleri, kayan noktalı işlemler yoksa FPU büyük bir fark yaratmaz. öncelikle kodun optimize edilmesi gerekir. bu durumda direkt saat hızını yükseltmek ve daha yeni nesil bir M4 kullanmak faydalı olur. 168 mhz çalışan bir 401 ya da 446 chipte bu süre yarıya iner. yani öyle 10x-20x bir fark oluşmaz.
ne yazıkkı komple karmaşık hesap
 
Yapılacak 3 şey (aslında 2 şey) var
- Kodlama veya algoritma yaklaşımında yapılacak otimizasyonlar veya çözüm yaklaşımları ile mcuyu daha verimli kullanmaya çalışmak. (Örneğin her seferinde sin(x) i hesaplatmak yerine, gerekli açı değerlerine karşılık önceden hesaplanarak oluşturulmuş bir lookup-table kullanmak). Burada mevcut yaptığınız kodlamada adım adım ilerleyin. 7200us çevrim zamanınında en fazla mcunun zaman harcadığı yerlere odaklanın. Oralarda yapılabilecek bierşeyler varmı? İlk mesajımdada belirtmiştim. Hesaplama bloğunundaki kodları paylaşırsanız, farklı optimizasyon önerileri alabilirsiniz.
- Mcu kapasitesini ve hızını artırmak. Mevcut çevrim hızınız ~138Hz, 15Khz için x100 kattan fazla işleri hızlandırmanız lazım. Bunu sadece mcu (embedded klasmanındaki) ile yapmanız çok zor.
- Yukarıdakilerin ikiside
 
Tek bir STM32F103C8 ile 16Khz ile 3 step motorun akim kontrol loopu ceviriyorum. Bu da 6 tane bobinin akim kontrolu demek.
40 Khz de bile hiz anlaminda sorun cikmiyor.

Kodlamanda sorun vardir.
Hocam siz ASM ile yazmışsınızdır :)

Tez çalışması için maliyet ve optimizasyon baskısı olmadığını varsayarak söylüyorum, ben kendi çalışmamda FPU birimi olan bir işlemci kullanmıştım, STM32F303 gibi birşeydi, şu linke bakarsanız uygun ürünler bulabilirsiniz. Güncel seriler STM32G4xx olarak geçiyor.
 
ASM nin tabiki katkisi buyuk ama float islemlerden kurtulmak cozum olacaktir.

Bir de kontrol ya da sinyal isleme programlari yazarken kodlama hileleri vs babinda DSP kodlama egitimi almis olmakta fayda var.
 
ASM nin tabiki katkisi buyuk ama float islemlerden kurtulmak cozum olacaktir.

Bir de kontrol ya da sinyal isleme programlari yazarken kodlama hileleri vs babinda DSP kodlama egitimi almis olmakta fayda var.
FLOAT'tan kurtulmak için atılacak taklalarla vakit kaybetmek yerine FPU ve Math Accelerator barındıran bir işlemci kullanır geçerdim ben olsam, nitekim öyle de yaptım zamanında. Bu detaylarla uğraşırken asıl konuyu kaçırmamak lazım bence. Tabi ben Fixed Point Arithmetic öğrenmek isterim, tamamen INT değişkenlerle çalışmak istiyorum, en ucuz işlemciyle bu işi çözmem lazım gibi dertler varsa ona lafım yok...
 
Goruntu ya da yuksek kalitede ses islenecek olunsa anlarim da alt tarafi en fazla 400Hz lik akimlarla ugrasilacak.

Burda asil konu motor kontrol. Motor kontrolun alt yapisi sular seller gibi bilinecek.
Geriye bu bilgilerin kodlamasi kaliyor.

90'li yillarda bu isler 16 Bit 10Mhz islemcilerle yapiliyordu. STM32F103 ise 32 Bit 72Mhz islemci.
 
@Mikro Step abi hiç itirazım yok :) ama şunu da tekrar söyleyeyim, akademik çalışmada amaç motor kontrol teorisini öğrenmekse sıfırdan 3 Fazlı inverter devresi çizmeye, acaba hangi opamp'ı kullansam veya hangi gate drive yöntemini kullansam diye debelenmeye de gerek yok. Yani maksadından şaşmadan, size en hızlı yoldan işi öğretecek araçları kullanıp geçmek lazım. Yoksa dönem sonunda, aslında DTC kodlayacaktık ama bizim inverter devresinde sorun çıktı proje bir türlü bitmedi durumuna düşülmesin. STM32F0 serisi ile donanım özelliği olmamasına rağmen asimetrik PWM üretip, bunu da neredeyse sıfır cycle kullanarak yapmak için günlerini yemiş biri olarak söylüyorum :) Asimetrik PWM üretme imkanınız olunca, DC- hattındaki tek bir şönt direnç üzerinden okuduğunuz akım sinyalinden, 3 faz çıkış akımını "reconstruct" edebiliyorsunuz. Eğlenceli bir çalışmaydı, ilgisini çeken varsa tavsiye ederim...

@fgokcegoz hocamın dediği gibi Texas ürünleri de bu konuda çok uzun yıllardır kullanılıyor, benim de bir ara denemek istediğim bir ürün ailesi, hazır kitleri de olduğunu biliyorum, isterseniz oraya da bir bakın.
 
  • Beğen
Reactions: clc
2000 ve 2401 DSC serisi ile zamaninda cok calistim acaip te seviyordum. Bir arkadasim israrla STM32 serisini bir kullansana seveceksin diyip duruyordu.
Merak da ediyordum cipleri taniyicinca cok hosuma gitti.

Bir yanda 20Mhz 16 Bit DSP komut setli kontroller diger tarafta 72Mhz 32 Bit RISC islemci. STM ile control uygulamalari sorunsuz olunca ustune ustuluk USB gibi donanim da olunca 2000 serisine elveda dedim. Sonrasinda 2000 16 bit serisi yerine 32bitlik 28F serisi gelse de STM32 bu islerde yeterince guclu.

Illede daha performans isteniyorsa G uzantili islemciye gecilebilir. G431 mini kitimi aldim fakat henuz tek bir satir kod daha yazma sansim olmadi.

Tek sont direnci ile motor akimini hesaplamak icin asimetrik pwm sart degil. ADC yeterince hizli ise minik hilelerle bu is yapilabiliyor zaten.


Bu konu TI'in patentledigi 90 li yillarin konusu. Ozellikle 2000 serisi uygulama notlarinda cok islendi.

Simdi arkadas DTC uzerine akademik calisma yapacak. Zaten incigi boncugu bilinen bir konu. Demekki calismalari bir adim oteye tasiyacak. bu durumda bilinenlerin otesinde bir calisma yapmasi akimi nerede hangi ne kadar dar bir zaman araliginda olcecek bu isi ne hizda yapacak gibi konulara cok hakim olmasi gerekir. Bunun icin nasil bir opamp sececek. Bunlar bence cok onemli.

Eger bunlari sorun etmiyorsa PCB cizme devre doseme vs hamaliyetine girmesine de gerek yok. TI, ST, AD, Infeneon gibi firmalarin hazir Motor kontrol gelistirme kitleri var.

Hatta Aliespressde bile satilanlari var.
 
Son düzenleme:
Asimetrik PWM, sektör geçiş bölgelerinde, iki PWM Duty arasında çok küçük bir fark olduğu durumlarda işe yarıyor. Sadece doğru zamanda akım örneklemekten başka bir şey değil zaten :ok1:

TI güncel işlemcileri ile bu işleri yapmak istersek nereden başlamak lazım, önerisi olan varsa ben de bir kit alıp kurcalayayım :emindegil1:
 
Dtc ile ilk önce bir firma için ön sürücü tasarlayacam.Bu ticari olduğundan stm32 ucuz çipleri kullanılacak .Sonra kendi tezin içim daha yüksek bir stm versiyonu ile yeniden tasarlanacak.Şuan chatgpt tavsiyesi ile stm32g431kb aldım.32 pin.
Hızı az gelirse stm32h723 nucleo kart kullanıcam.Dtc için min 15kz max 24 khz gibi bir hedefimiz .Stm32f103 6700us kadar indirdim.ama çok floatlı hesaplama, if döngüsü var.Bakalım ne olacak
 

Forum istatistikleri

Konular
8,188
Mesajlar
134,693
Üyeler
3,261
Son üye
msrc

Son kaynaklar

Son profil mesajları

erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Back
Top