pid kontrolde enkoder geri beslemesi pwm çıkışa nasıl çevrilir ?

Başlatan feanor42, 18 Mart 2018, 21:01:12

feanor42

selamlar , 24 v dc motor pid hız kontrolü yapmaya çalışıyorum. pid algoritması vs biliyorum fakat şöyle bi problemim var. giriş değerim bir devir hızı olacak , enkoderden devir hızı olarak geri besleme alacagim. ancak motoru sürerken bu devir hızlarını nasıl pwm değişkenine değiştirecegim ? oransal kontrol için "x" hıza ulaşıncaya kadar pwmyi arttir diyecegim ama integral ve türevsel kontrol için nasıl bir yol izlemem gerekiyor ? çok yerde araştırdım ancak bi türlü istedigim cevabı bulamadım. yardım ederseniz sevinirim tşkrler

Erol YILMAZ

Oncelikle devir bilgisini temiz bi sekilde okuyacak altyapiyi hazirlamalisin.


Bunu hallettikten sonra isin kolaylasiyor.


Pid rutini zaten standarda yakin bi kod bloğu.

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

Eugene

Enkoderden rpm bilgisini elde ettiniz mi? Örneğin sabit bir gerilimde iken sabit rpm bilgisini alabiliyorsanız pid e almak basit. Bahsettiğiniz belli hiza çıkarma işini pid yapar sizin müdahale etmenize gerek yok. Ya da siz çıkarıp, pid i sonra devreye alırsınız. Farkeden bir şey olmaz.

feanor42

Alıntı yapılan: Eugene - 19 Mart 2018, 07:25:06
Enkoderden rpm bilgisini elde ettiniz mi? Örneğin sabit bir gerilimde iken sabit rpm bilgisini alabiliyorsanız pid e almak basit. Bahsettiğiniz belli hiza çıkarma işini pid yapar sizin müdahale etmenize gerek yok. Ya da siz çıkarıp, pid i sonra devreye alırsınız. Farkeden bir şey olmaz.

hocam şimdi armut(devir) olarak set degeri belirliyorum elma olarak(pwm) motora güç veriyorum. geri besleme olarak geri armut aliyorum.  biraz mantiksiz geldi bana sizin dediginiz olay. elma ile armut arasinda bi oranti olmasi gerekmez mi? optimus prime sanırım anlamış beni , ben verdiginiz linkten şunu anladım devir ile pwm arasinda bi oranti yapmam gerekiyor yanlış mıyım ? yabanci bi sitedede enkoder palslariyla pwm arasinda oranti kur demişlerdi..

OptimusPrime

aynen bir sekilde ortak payda bulman gerekiyor. verdigim ornekte ortak payda % orani.

mesela
devir hizin 0-2500rpm (min-max) ise donguye girerken bu %0 ile %100 arasinda olacak.

islem sonucunda % bir deger elde edeceksin. eger pwm degerin 0-1000 arasi degisiyorsa %0 icin 0 %100 icin 1000 kullanacaksin. yani giriste ve cikista sinyali %0 ile %100 arasina donustureceksin. bu sekilde girdi ve ciktilarin hep ayni birimden olacak, hesabinda.

aslinda kabaca tum giris cikislari lineer kabul edip fonskiyonlari %0-100 arasina normalize ediyorsun. sonra islem bitince bunun tersini yapiyorsun. verdigim kod hepsini yapiyor. kullanabilirsin.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||