Merhaba PID kontrol ve PWM kullanan bir motor sürücüsü tasarlayacağım fakat PID konusunda çok bilgim yok bu konuda yardım edebilirmisiniz?
http://www.pololu.com/docs/0J21/7.c (http://www.pololu.com/docs/0J21/7.c) burayı incelersen yararlı olur .
http://www.engin.umich.edu/group/ctm/examples/cruise/ccPID.html (http://www.engin.umich.edu/group/ctm/examples/cruise/ccPID.html)
http://www.4shared.com/rar/R2L_WEmy/Contro_PID.html (http://www.4shared.com/rar/R2L_WEmy/Contro_PID.html)
Çok teşekkür ederim fakat anlamadığım nokta daha farklı her iki motor için ayrı ayrı pid yapmamız gerekmiyor mu?
yapılabilir. sonuçta pid algoritmasını 1 motor için yazabilirseniz diğer motor için de ayrı bir algoritma hazırlayabilirsiniz. motor sürücüsünü ne için kullanacağınıza bağlı. çünkü motor sürücüsüne PID sonucunda elde ettiğiniz doğrulama verisini PWM olarak gönderirsiniz. iki motorun PWM i farklı değer de hesaplanabileceği gibi aynı değer de olabilir. yapacağınız işe göre durum değişir.
arkadaşlar bu konularda yeniyimde PID kontrolu nedir ?
PID Kontrol işini görecektir.
http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf (http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf)
.
Alıntı yapılan: EmaNet - 08 Nisan 2012, 23:22:42
PID Kontrol işini görecektir.
http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf (http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf)
EmaNet çok teşekkür ederim aradığım bütün sorulara cevap oldu herşey için çok teşekkürler
Önemli değil. Problemi çözdüğüne çok sevindim.
Alıntı yapılan: EmaNet - 08 Nisan 2012, 23:22:42
PID Kontrol işini görecektir.
http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf (http://www.koumekatronik.com/media/kunena/attachments/775/HAFTA13.pdf)
şu pdf e bakamadım sayfa silinmiş ,arkadaşlar örnek bir kod eklermisiniz ?
Misra c tabanlı bir pid algoritması
#include"pid.h"
//²ÉÓÃÔöÁ¿Ê½¼ÆËã,²ÉÑùÖÜÆÚΪTʱ¼ä,Êä³öÔò²ÉÓÃλÖÃʽµÄÊä³öĞÎʽ,
//¢Ù:Y=P*E+I*(E+E1+E2)+D*((E-2*E1+E2)); //ĞŞÕıÖµ=±ÈÀı·Å´ó+»ı·Ö·Å´ó+΢·Ö·Å´ó
//¢Ú:Y = P + I + D;
//P = kp * e(n);
//I = Ki *( e(n) + e(n-1) + e(n-2) );
//D = Kd * ( e(n)-e(n-1) );
//¼´:y=P*E+I*(E+E1+E2)+D*(E-E1);
double PID_ADJ(PID *S, double x, double y)//Óõķ½·¨¢Ú
{
double Out = 0;
S->Err2 = S->Err1;
S->Err1 = S->Err;
S->Err = S->SetPoint - y;
Out = x + S->P * S->Err + S->I * (S->Err + S->Err1 + S->Err2) + S->D * (S->Err - 2 * S->Err1 + S->Err2);
return (Out);
}
void PID_Init(PID *S, double Piont, double P, double I, double D)
{
S->SetPoint = Piont; //Ä¿±êÖµ
S->P = P; //±ÈÁĞϵÊı
S->I = I; //΢·Ö
S->D = D; //»ı·Ö
S->Err = 0.0; //µ±Ç°Îó²î
S->Err1 = 0.0; //ÉÏ´ÎÎó²î
S->Err2 = 0.0;//ÉÏÉÏ´ÎÎó²î
}
#ifndef _PID_H_
#define _PID_H_
#include"sys.h"
typedef struct PID
{
double SetPoint; //É趨Ŀ±ê
double P;//±ÈÀı³£Êı
double I; //»ı·Ö³£Êı
double D;//΢·Ö³£Êı
double Err;
double Err1; //Error[-1]
double Err2; //Error[-2]
}PID;
void PID_Init(PID *S, double Piont, double P, double I, double D);
double PID_ADJ(PID *S, double x, double y);
#endif
Bu günlerde bende pid üzerine motor kontrol ünitesi tasarlamaktayım bütün işleri kendi yazdıgım kodlarla pid olarak çalıştırıyorum.
Alıntı yapılan: cyclone - 06 Şubat 2013, 17:31:47
Bu günlerde bende pid üzerine motor kontrol ünitesi tasarlamaktayım bütün işleri kendi yazdıgım kodlarla pid olarak çalıştırıyorum.
ne tür motorlar kullanıyorsunuz?
fırcalı dc motor kullanıyoruz hocam 80w 3350 devir 30nm tork
Hocam Pid ile ilgili bende bir çalışma yapacam. Bu katsayılar benim kafamı karıştırıyor. Bende ufak 12V ufak bir motorun devrini sabitlemeye çalışacağım. Pid işlemi sonucunda elimde 0-1000 arası bir değer olmalı. Devir ise 500 ile 3000 arasında değişebilir.
Çıkışın bu aralıkta olmasını nasıl belirliyoruz?
Katsayılar nasıl nasıl belirleniyor ?
Cevaplarsanız sevinirim.
seri sargılı dc motor sonsuza gitmemesi icin yük olması şart degilse sabitleyemessiniz sabitlemek icin motorun devirini ölceceksiniz ona göre pwm degerini arttırıp azaltacaksınız arada cok kod yazmanıza gerek yok deviri olcün devir düşükse pwm arttırın devire ulaşıncaya kadar ulaştıktan sonra tolerans verin olsun bitsin yüksek ise eger pwm azaltın olay bundan ibaret aslında cok basit ilk bende pid denince korkardım artık cocuk oyuncagı
Hocam zaten motorun devrini ölçüyorum. Sürekli elimin altında devir bilgisi. Biraz bu işin püf noktalarına ihtiyacım var.
Dediğim gibi bu katsayı neye göre belirleyeceğimi bilmiyorum açıkçası
benim yaptıgım sistemde yol bilgisi oldugu icin katsayısını yola göre buluyorum senin yaptıgın sistemde her hangi bir kat sayıya gerek yok pwm arttıracaksın istedigin degere kadar
Arkadaşlar ben de bir dc motorun konum kontrolünü yapmam gerekiyor. İlk olarak elimde 10 K lık bir sensör var. Rüzgar yön sensörü. 10 K 360 Derece. Bu sensörden alınan bilgilere göre rüzgara doğru kanatları çevireceğim. Bana encoder okuyabilen bir pic mi lazım. Ve ben pid hesaplamalarını yapıp nasıl bu konumlamayı yapabilirm program ile. Yardımlarınızı bekliyorum.
Alıntı yapılan: cyclone - 06 Şubat 2013, 17:31:47
Bu günlerde bende pid üzerine motor kontrol ünitesi tasarlamaktayım bütün işleri kendi yazdıgım kodlarla pid olarak çalıştırıyorum.
hocam trapezoidal move yaparken hızlanma, yavaşlanma ve maximum hız ayarlaması yaparken Ana pid döngüsü dışında bunlarıda ayarlayan ayrı bir pid döngüsünü mü yazıyorsunuz yoksa ana pid döngüsü içinde bunlarıda ayarlıyormusunuz?
PID konusu birde PID kontrol devresi yapayımda geçeyim denilecek kolay bir konu değil, PID üzerinde uzmanlaşma istiyor.
Ben bir fırın kontrolu için PID yapmak istedim, katsayıları tespit etmekte zorlandım. Oto tune denilen otomatik katsayı bulma yönteminede girsem herhalde proje aylar sürerdi, bende oransal kontrolle istediğim değerlere yaklaştım ve projeyi bitirdim.
Sonradan elime bir markanın PID kontrol cihazı geçti içini açıp inceledim adamlar 2 pcb koymuşlar birinde 16bit işlemciden girmişler 24bit adc, flash tan çıkmışlar, diğerinde smps besleme ve sürücü yapmışlar. Fiyatınıda ucuza satıyorlar, piyasayı öldürmüşler.
Alıntı yapılan: trinity - 12 Ağustos 2014, 16:21:25
Sonradan elime bir markanın PID kontrol cihazı geçti içini açıp inceledim adamlar 2 pcb koymuşlar birinde 16bit işlemciden girmişler 24bit adc, flash tan çıkmışlar, diğerinde smps besleme ve sürücü yapmışlar. Fiyatınıda ucuza satıyorlar, piyasayı öldürmüşler.
Hangi firma bende inceleyeyim
Markası Hanyoung tu, kaliteli bir Kore markası özellikle dokunmatık renkli ekran PID cihazları gerçekten başarılı. Adamlar ucuza mal etmek için entegrelerinide kendileri yapmışlar ama kataloglarını bulamadım. içinde microchip in 93 serisi flashlarını kullanmışlar bir tek onu bulabilmiştim.
Burada PID paylaşımı yapmayan arkadaşlar rahat olsunlar, zaten koreliler çinliler çoktan piyasayı süpürmüşler.
PID denetleyiciyi neden gözünüzde büyütüyorsunuz?
C ile yazıyorsanız 10 bilemedin 20 satırlık kod parçası.
Forumda da pek çok kere örnek kodlar yayınlandı.
Alıntı yapılan: skara1214 - 12 Ağustos 2014, 17:03:42
Hangi firma bende inceleyeyim
Genelde çoğu firma için yapı bu şekilde. Ya yüksek çözünürlüklü adc ye sahip bir mikroişlemci(analog devicesın bu tip ürünleri var) oluyor yada harici ADC entegresi, ayrıca analog çıkışı olanlar DAC'ta bulunuyor. Bu tip cihazlar genelde MODBUS iletişim barındırmakta. Tabi her sistemin bunları barındırması gerekmez sıcaklık için NTC PTC tarzı birşey kullanıyorsanız ve ısıtmak için PWM kullanıyorsanız 8 bitlik bir işlemciyle çok rahat yapabilirsiniz. Timer kesmesini kurarsınız her kesmede yeni değeri okur gerekli hesaplamaları yapıp PWM üretirsiniz ve işi halledersiniz.
Eğer yapacağınız sistemin tepkisinin çok hızlı olaması gerekmiyorsa PID işi biraz kolaylaşıyor, katsayıları deneme yanılma ile sistemin tepkisine bakarak kestirilebiliyor. http://en.wikipedia.org/wiki/PID_controller (http://en.wikipedia.org/wiki/PID_controller) Linteki grafikleri incelerseniz sistemin davranışına göre katsayıları kestirebilirsiniz. İlk başlangıçta katsayıları çok küçük tutarsanız sisteme zarar verme ihtimaliniz düşer. P,I,D değerlerini anlık olarak takip ediniz.
Hanyoung ın Türkiye bayisi var, ordan temin edebilirsiniz. Endüstriyel uygulamalarda öyle basit integral, türevli 16f628 li PID devreleri yeterli olmuyor, bunlarla ancak amatör işler yapabilir.
işletmenin dev gibi bir fırını var ve 1 derece ofset kayma istiyor, ısınma ve soğumalarda da belli bir grafiği tutturmak zorundasınız., fırının içinde bir ısı yayılım hızı, soğuma katsayıları var. Böyle bir uygulama kısa bir programla yapılamıyor, cihazın koşulları kendi kendine öğrenmesi gerekiyor.
Alıntı yapılan: z - 12 Ağustos 2014, 20:36:57
PID denetleyiciyi neden gözünüzde büyütüyorsunuz?
C ile yazıyorsanız 10 bilemedin 20 satırlık kod parçası.
Forumda da pek çok kere örnek kodlar yayınlandı.
Mesele PID kontrolü gerçekleştirmek değilki, mesele sistemin P, I, D katsayılarını tespit etmek... Teoriye aşırı girilirse, bu iş içinden çıkılmaz bir hale gelebiliyor maalesef.
Endistüriyel uygulamalarda zaten katsayılar sabit olmuyor, çünkü fırına devamlı farkı miktarda ve özellikte malzeme konuyor, bu da fırının ısı yayılımını değiştiriyor.
Gelişmiş PID cihazlarıda pattern özelliği var, farklı koşullar için farklı ısıma ve soğuma katsayıları haritalandırılıyor.
O zaman "Burada PID paylaşımı yapmayan arkadaşlar rahat olsunlar, zaten koreliler çinliler çoktan piyasayı süpürmüşler." benzeri imalı laflar etmeyeceğiz
Diyeceğiz ki "Ben adaptif kontrol sistemi yapmaya çalışıyorum" yardımcı olurmusunuz.
http://guabiruba.sc.gov.br/EmbeddedProgram/Microcontroller%20based%20applied%20digital%20control%202006.pdf (http://guabiruba.sc.gov.br/EmbeddedProgram/Microcontroller%20based%20applied%20digital%20control%202006.pdf) Burada ki kitapta temel kontrol teorisi konularının pic mikrodenetleyiciler ile uygulamaları var. Çok güzel bir kitap tavsiye ederim PID dahil bir çok konuya aydınlık getirecektir. Hatta bu kitabı Türkçe'ye çevirebilir miyiz diye içimden geçirdim şu anda. Teoriden pratiğe geçiş için çok güzel bir kitap.
Alıntı yapılan: z - 13 Ağustos 2014, 00:41:38
O zaman "Burada PID paylaşımı yapmayan arkadaşlar rahat olsunlar, zaten koreliler çinliler çoktan piyasayı süpürmüşler." benzeri imalı laflar etmeyeceğiz
Bu kadar arkadaştan kimse üzerine alınmadı siz neden bu kadar alınıp tepki gösterdiniz?
Merhabalar bana PFC için PID kontrol lazım bana yardım edebilirmisiniz