DC Motor Açı Kontrolü Yardım!

Başlatan noxchecyan, 26 Kasım 2012, 21:29:49

noxchecyan

S.a arkadaşlar elimde bir tane DC motor var buna açı kontrolü yapmak istiyorum. Konumunu motorun ucuna bağlı endüstriyel potansiyometre ile ölçeceğim ve kontrolünü pic kullanarak ( 16F877A ) PID ile  yapmak istiyorum.

Pic den PWM sinyali alarak onuda opamp ile fark alma işleminden geçirerek BİPOLAR sinyal elde edeceğim onuda motor sürücü devreye göndereceğim.
Elinde bu motoru sürebilmek için nasıl bir sürücü devre kurmam gerektiğini bilen varsa yardımcı olabilirmi?

ve Programını picbasic ile yazacağım elinde program ile ilgili örnek döküman olan varsa paylaşabilirmi.





mustafacan

encoder leri incelemeni tavsiye ederim
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

sadogan

Motor akımın 1-2 amp kadarsa L298 kulanabilirsin

noxchecyan

mustafacan : enkoderleri inceledim onlara gücüm yeterse alacağım yetmez ise endüstriyel potansiyometrede işimi görür sanırım yardımın için sağol.

sadogan      : L298 komponentine baktım işe yarar. O olmadanda motoru sürebileceğim transistörlü, mosfetli bir sürücü devresi varmı ? yardımın için sağol.

Birde sizden ricam PID işlemleri için Pic Basic de yazılmış kod örnekleri lazım bu konudada yardımlarınızı bekliyorum.

selametle...

Tagli

Alıntı yapılan: noxchecyan - 26 Kasım 2012, 21:29:49Pic den PWM sinyali alarak onuda opamp ile fark alma işleminden geçirerek BİPOLAR sinyal elde edeceğim onuda motor sürücü devreye göndereceğim.
Bu kısmı anlamadım. Dijital bir sinyali op-amp'a sokma fikri pek mantıklı gelmedi. Motor sürüşü için genelde H köprüleri kullanılır ve onların da op-amp'lık bir işi olmaz. Bu tür bir devrede sadece akım geri beslemesi için op-amp kullanıldığını gördüm.
Gökçe Tağlıoğlu

noxchecyan

Tagli :  Pic den çıkan puls sinyali opam a gelecek negatif kısmına diğer taraftada + 2.5 volt olacak plusin 0 olduğu yerde + 2.5 volt olacak pulsin olmadığı yerde - 2.5  PID işlemi alındığında sürekli değişip motoru kontrol edecek.
   Benim burda ihtiyacım olan asıl şeyde puls + iken sağa - ikende sola çevirtebileceğim bir motor sürücü devresi.

Tagli

Yön değişimi için negatif seviyede bir pulse gerekmiyor ki. H köprüsü entegrelerinde bu iş için iki bacak oluyor. Kendin yaparsan da mantık çok farklı değil. Sonuçta sinyal dijital ve negatif tarafa geçmesi gerekmeyecek.

Negatif sinyal analog bir sürücü yaparken işe yarayabilir ama onun da PWM ile ilgisi yok. Ayrıca bildiğim kadarıyla günümüzde analog sürücüler pek tercih edilmiyor, sanırım verimli olmadıkları için.

Kafandaki çalışma şeklini şekle döküp paylaşabilirsen daha sağlıklı bir yorum yapmak mümkün olabilir.
Gökçe Tağlıoğlu

pisayisi

Elinde pozisyon bilgisi veren potansiyometrik bir encoder var, bunun çıkışı analog tur senin pozisyon bilgisini referans olarak girmek için de böyle bir potansa ihtiyacın olacak. Eğer referans noktayı yazılımla kontrol etmek istersen buna da ihtiyacın yok. Encoder dan aldığın pozisyon bilgisini, referans olarak istediğin pozisyon bilgisinden çıkaertacaksın . Bu işlemi basitce opampla yapabilirsin, sonrasında elde ettiğin bu hata terimini adc üzerinde pic e girceksin. Pic içinde pid algoritmasını uygulayarak pwm için gerekli olan duty oranını elde edeceksin. Hata terimi fazla ise duty yüksek olacak ve motor hızla hata terimini azaltarak hedefe yaklaşacaktır. Burda temel sorun pid parametrelerinin ayarlanması olacakktır, nihayi pozisyondan sapmalar, titreşimler olabilir. Diğer bir sorun ise yön bilgisi , eğer l6203 kullanırsan iki adet lojik girişi pozisyon bilgisi ile işleyerek gerekli çıkışları pic içinde üretebilirsin. Hız kontrolu kolayken pozisyon kontrolu oldukça zordur bunu da bilmeni isterim...

Murat

Tagli

Alıntı yapılan: pisayisi - 27 Kasım 2012, 10:34:12Encoder dan aldığın pozisyon bilgisini, referans olarak istediğin pozisyon bilgisinden çıkaertacaksın . Bu işlemi basitce opampla yapabilirsin, sonrasında elde ettiğin bu hata terimini adc üzerinde pic e girceksin.
Elimizde PIC varsa de dijital kontrol yapacaksak çıkarma işlemini neden dışarıda op-amp ile yapalım ki?
Gökçe Tağlıoğlu

noxchecyan

arkadaşlar hepinize yardımınız için teşekkür ederim artık sadece programında yazma sıkıntım var onun içinde sizden ricam örnek kod varsa göndermeniz.

tagli hocom yapacağım şey  " A simple linear push-pull amplifier " olarak geçiyor
şemasınıda yolluyorum.

furkanyesil55

beyler elimde encoderli dc motor var bende l298 ile motoru sürücem fakat encoderden gelen bilgiyi nasıl değerlendiririm veya program konusunda sıkıntım var bu konuda dökümanı olan varsa yardım lütfen :) bu arada yapacağım sistem dışarıdan girilen açıya giden bir vinç kolu şimdiden teşekkürler .

z

Alıntı yapılan: Tagli - 27 Kasım 2012, 11:08:19
Elimizde PIC varsa de dijital kontrol yapacaksak çıkarma işlemini neden dışarıda op-amp ile yapalım ki?

err=SetPoint-ActtualPoint

Hemen ardından K*err işlemi yapılır. Örneğin burada PID kontrol kullanılıyorsa K, Kp, Kd,Kı den en küçük olanı seçilip diğerleri buna göre sıkalanabilir.

Eğer K*err işlemini işlemci dışında analog olarak yaparsan çok büyük değişim aralığı elde edersin.

ADC 10 bit olsun.

SetPoint=5.00
ActualPoint=4.99

K=100

err*K=(5.00-4.99)*100=1v

1v ----> 1023/5=204

Çıkarma işlemini işlemci içinde yapsaydık

5 --> 1023
4.99--->1020

Fark 3 

Bilgi büyük oranda kayıp.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Tagli

K'nın büyük olması, büyük hata değerleri için hata sinyalinin sature olmasına neden olmaz mı? Gerçi bir yerlerde zaten saturasyon işleminin yapılması gerek ama bence girişteki bir saturasyon da bir çeşit bilgi kaybıdır.
Gökçe Tağlıoğlu

z

Sistem hedefe kitlendiğinde hata çok küçük olur ve önemli olan hatayı erken sezmek.

Bahsettiğin durum (girişin sature olması) ancak basamak gibi test sinyalerinde olur. Halbuki uygulamarda deneyler hariç basamak sinyali ile karşılaşılmaz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com