Servo motor kontrol döngüsü 50hz ile sınırlı mıdır?

Başlatan esdevhk, 02 Mayıs 2020, 02:28:10

esdevhk

Şimdi servo motorlar 50hz frekans girişi ile çalışan sistemlerdir. Biz de bu 50Hz uygun olarak pwm sinyali üretip servolarımızı sürüyoruz.

PID kontrol ile servoları kontrol etmek istediğimizde kontrol döngümüzün süresi 50Hz'den fazla olursa kontrolcümüz 50Hzden hızlı bir sürede yeni bir çıkış üretecek ve çıkışında servoyu sürecektir. Yani servo motorun dogru konuma gitmesi için gereken 20ms'lik periyot süresi yeni sinyal 50Hzden hızlı bir sürede geleceğinden periyot süresini tamamlayamadan yeni sinyale geçecektir.

Yani özetle servo motorlar 50Hz'lik sinyal ile çalıştığından biz servo motor pid kontrolcüsünü 50hz'den hızlı çalıştırırsak servo kafayı yer mi?

SB7

PID Rutinlerine göre servo motora uygulayacağınız 50Hz lik PWM in doluluk oranını değiştirmeniz gerekiyor.
50 Hz frekans sabit kalmak şartıyla 5-20 ms olarak doluluk oranını ayarlarsanız (180 derece servo icin ) bu size motor açısı olarak dönecektir.
20 ms kısmı değişkenlik gösterebilir. Deneme yanılmayla motor için uygun doluluk oranını yakalayabilirsiniz.
Yani yapmanız gereken PID sonuçlarını açı bilgisine göre sınırlandırmak.
-SB7

Mucit23

Birçok ESC artık 400Hz PWM sinyalini destekliyor. Ama RC Servolar da durum nedir bilmiyorum. Kaliteli servolar tahminimce 400Hz'i destekleyecektir.

Mucit23

Evet Tahmin ettiğim gibi High Speed RC servolar 50Hz üstünü destekliyor
Şuradaki XSERVO 980 BL HV kodlu servo 560Hz Güncelleme frekansını destekliyor.

http://www.beastx.com/deu/xservo.php

esdevhk

Alıntı yapılan: SB7 - 02 Mayıs 2020, 02:59:03PID Rutinlerine göre servo motora uygulayacağınız 50Hz lik PWM in doluluk oranını değiştirmeniz gerekiyor.
50 Hz frekans sabit kalmak şartıyla 5-20 ms olarak doluluk oranını ayarlarsanız (180 derece servo icin ) bu size motor açısı olarak dönecektir.
20 ms kısmı değişkenlik gösterebilir. Deneme yanılmayla motor için uygun doluluk oranını yakalayabilirsiniz.
Yani yapmanız gereken PID sonuçlarını açı bilgisine göre sınırlandırmak.


Sorumu yanlış anladınız sanırım. Sorum nasıl kontrol uygulayacağım değil. Sorum servo motor sürmek için gerekli sinyal frekansı 50hz iken 50hzden hızlı bir kontrol döngüsü ile sürmeye kalkarsam 20ms periyot tam bitmeden yeni bir sinyal geleceğinden doğru konuma gitmeyebilir. Bunu sormak istedim. Sonuçta her 20ms'lik periyot 1 açı bilgisi içermekte.

esdevhk

Alıntı yapılan: Mucit23 - 02 Mayıs 2020, 03:06:32Birçok ESC artık 400Hz PWM sinyalini destekliyor. Ama RC Servolar da durum nedir bilmiyorum. Kaliteli servolar tahminimce 400Hz'i destekleyecektir.

Evet hocam yeni nesil servo ve ESCler yüksek frekansları destekliyor. Sorum aslında RC servolar içindi.
RC servolar için ~50hz sınırı var mıdır?

Mucit23


esdevhk

Alıntı yapılan: Mucit23 - 02 Mayıs 2020, 03:52:27Gönderdiğim linkteki RC Servo 560Hz'i destekliyor.
http://www.beastx.com/deu/xservo.php
Hocam evet böyle bir servo var olabilir. Benim sorum ben 50hz önerilen bir RC servoda 50hz pwm sinyalini pid kontrolcüsü ile 20ms'den daha kısa sürede çıkışa aktarıp servoya verirsem. Servo 20ms'lik pwm periyodunun hepsini almadan yeni sinyale geçmeyecek mi? Bu da dogru çalışmasını engellemez mi?

z

Senin yolladigin 50Hz pwm pozisyon bilgisini iletiyor.
Motora uygulanan pwm sinyali 50Hz de olabilir baska bir seyde.

50Hz yollanmasinin sebebi uzaktan kumanda vericisi ve alicisi on-off calismaya musait. Dedelerimizin zamaninda ADC DAC ve digital veri aktarimi yaygin degildi.

Peki analog veriyi nasil yollayacaklardi?

On-Off veri gonderen duzeneklerde hic bir degisiklik yapmadan pwm sayesinde on-off bilgisi yollabiliyoruz ve alici devre on-off surelerinden gonderilen buyukluk bilgisini (analog bilgiyi) ortaya cikariyor.

Unutma RC servolar digital teknoloji gelismeden once de vardi. Bugunlere miras yoluyla geldi.

Eger 50Hz pwm sinyalinin frekansini artirirsan RC servo icindeki sinyal donusum devresi bu degisiklige adapte oluyorsa sorun olmaz.

---------------------

Aslinda sorunun altindaki kafa karisikligini anliyorum.

Motor surucuyu de sen yapmis olsaydin ve guc kati motoru 50Hz PWM ile donduruyor olsaydi;

Guc katina uygulayacagin veriyi hangi hizda update etmeliydin?

Eger kafa karistirici kisim bu ise, update hizin 50Hz pwm frekansindan yuksek olamaz. Bu senin ust sinirindir. Bu degere esit yada tam alt katlari olmali.
25, 12.5 Hz gibi. Cunku PWM sinyalini gelisiguzel zamanlarda update edersen glitchlere neden olursun ve bir onceki peryodda baslayan ve devam eden veriyi bozarsin.

Bu yuzden (glitch olusmasin diye) PWM donanimlarinda shadow register kullanilir. Sen bu registere gelisiguzel zamanlarda veri yuklesen bile bu veri sadece pwm update anlarinda alinip kullanilir. Yani pwm glitclere neden olamazsin.

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

esdevhk

Alıntı yapılan: z - 02 Mayıs 2020, 07:49:13Guc katina uygulayacagin veriyi hangi hizda update etmeliydin?

Eger kafa karistirici kisim bu ise, update hizin 50Hz pwm frekansindan yuksek olamaz. Bu senin ust sinirindir. Bu degere esit yada tam alt katlari olmali.
25, 12.5 Hz gibi. Cunku PWM sinyalini gelisiguzel zamanlarda update edersen glitchlere neden olursun ve bir onceki peryodda baslayan ve devam eden veriyi bozarsin.

Evet hocam aslında sormak istediğim konu tam da buydu. Pwm sinyalimin periyodu 50hz evet. Fakat benim PID ile ürettiğim pwm değerinin uptade süresi max kaç hz olabilir? Dediğinizden anladığım da RC servo 50hz sinyal içerisinden konum bilgisini okuduğundan max 50hz update sürem olabilir. Yani pid loop sürem 50hz ile sınırlanır.

z

Evet cunku PWM peryodundan daha kisa sureli servo cevriminde hesaplalaycagin degerleri pwm peryodu devam etmekteyken kullanamayacaksin ve islemciyi yordugunla kalacaksin.

Eger pwm yerine DAC kullansaydin DAC cok cok hizli oldugu icin seni sinirlayan bir sey olmayacakti.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

esdevhk

Alıntı yapılan: z - 02 Mayıs 2020, 11:33:55Evet cunku PWM peryodundan daha kisa sureli servo cevriminde hesaplalaycagin degerleri pwm peryodu devam etmekteyken kullanamayacaksin ve islemciyi yordugunla kalacaksin.

Eger pwm yerine DAC kullansaydin DAC cok cok hizli oldugu icin seni sinirlayan bir sey olmayacakti.

Teşekkürler z hocam. Benim de düşüncem bu yöndeydi. 20ms periyot bitmeden yapacağım yeni bir update pwm doluluk/bosluk oranını bozacağından servoya hatalı konum bilgisi göndereceğimiz kanaatindeydim.

z

Yalniz daha once dedigim gibi eger pwm donaniminda Duty degerini yuklemeye yarayan registerin shadow ozelligi varsa istesen de pwm'i bozamazsin.

Pwm peryodu tamamlanmadan Duty registerine ard arda iki deger yuklesen bile
pwm bu durumdan etkilenmez.

Pwm peryodu tamamlandiginda shadow registere yuklenmis son degeri alir ve bu degere gore yeni pwm peryoduna baslar.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com