Analog PID ile Encoderlı Motorun Hız Kontrolu

 

Projenin Amacı

Proje amacı aktif devre elemanı olan opamp ile PID kontrolör tasarlayarak encoderlı DC motoru kontrol edilmesi amaçlanmaktadır.

PID parametrelerin katsayıları ve referans voltajını ayarlanabilir şeklide tasarlanılması istenilmektedir. Bu ayarlama şartının sağlanması için potansiyometre kullanılacaktır.

Sistemin Kurulması ve Hazırlanması

Sistemde encoderli motor kullanıldığından PID kontrolörün girişi olan hata da doğrudan bağlayamayacağız. Encoder pulselerini anlamlı bir hale getirmek için counter ile sayarak uygun bit değerinde DAC ‘a yönlendirerek sistemi anlamlı bir hale getirilecektir. DAC çıkışı artık motorumuzun sahip olduğu veriyi bize yansıtacaktır. Opamp kullanarak referans değerinden DAC çıkışımızı çıkartarak opamp ile tasarlanan PID kontrolöre girer ve sistem çalışır.

Sistemi proteus üzerinde simülasyon olarak yapılmıştır. Sistem 3 ana bloktan oluşmaktadır; Counter , DAC, PID sistem. Bunları açıklanacak olursa

PID Sistem












Şekil 1 : PID sistem

Şekil 1’de görüldüğü gibi referans voltajı potansiyometre ile gerilimi ayarlatarak sisteme fark alıcı devreye girer. Fark alıcı devrenin diğer sinyal girişine DAC ‘dan alınan sinyal girilir böylelikle hata elde edilir. Elde edilen hata verisi negatif değerindedir bunu düzeltmek için invers alan opamp devresi dizayn edilir. Böylelikle PID sisteme giriş yapmış olur. PID katsayıları üzerine bulunan potansiyometreler ile ayarlanır. PID çıkışı motora enerji olarak verilir ve motor dönmeye başlar.



Counter Devresi:



Şekil 2 : Counter yukarı sayıcı

Şekil 2 deki görüldüğü gibi counter clk girişi motorun encoder pulse çıkısı olarak ayarlanmıştır. Böylelikle her pulse olduğunda counter sayacaktır. Reset işlemi her 1 saniye sonun olmaktadır. Bu sistem için 10 bitlik sayıcı kullanılmasını uygun görülmüştür. Daha hassas bir olçum sağlanabilecektir.  Ufak bir işlem ile gösterecek olursak 12 V max  çıkış , 10 bit counter .

12V / (2^10) = 0.012 V yaklaşık olarak bir değer olucaktır bu değer her bitimizin sahip olduğu voltaj değeridir.

Minimum bit seçimi : Max RPM = 1000 devir/ dk , encoderın bir turda ürettiği pulse = 24

1000* 24 pulse / 60 sn = 400 pulse/sn  

8 bit olsaydı 2^8 = 256 bu bizim için yeterli olmayacaktır.

9 bit için 2^9 = 512 . en az  9 bitlik bir counter ve DAC kullanılsa idi bizim için uygun olurdu.



DAC Devresi 



















Şekil 3 : DAC Devresi

Şekil 3 de görüldüğü gibi counterdan gelen bit değerleri DAC ‘a giriş olarak girmiştir. En büyük değerlikli bite ( MSB ) bağlı dirence R denilirse aşağıya doğru 2^(10-n) * R olacak şekilde direnç değerliklerini bit değerlerine almıştır. Yani MSB R iken  onun bir alt değerlikli bitinin giriş direnci 2R , bir altı 4R şeklinde olacaktır. Burada önemli olan Rf direncinin hesaplanmasıdır. Rf  , DAC çıkışının voltaj değerini ayarlamaktadır . Ufak bir hesaplamada;

12V / (2^10) = 0.012 V  , LSB ‘nin değeridir.

MSB = 2^9 = 512 değerindedir. MSB voltaj değeri : 512 * 0.012 V = 6.144 V ‘dur.

Sadece MSB aktif olarak düşünürsek 5 V luk bit girişi için Rf hesaplaması :

6.144 V = Rf * ( 5V/10K Ω )  è Rf = 12288 Ω  ‘dur buda yaklaşık olarak 12K Ω denk gelir.

Bu şekilde DAC ‘ı istediğimiz gibi oluşturmuş olduk. Çıkış değeri negatif olacağından invers alarak PID sistemin fark alma devresine girerek devre oluşturulur.





Çalışma Diyagramı 



















Simülasyon

Simülasyon a ait görüntüler ektedir.






































Yorumlar

Bu blogdaki popüler yayınlar

STM32F4 Discovery İnterupt Buton ( STM32 CUBE MX / IDE ) ve ATOLİC