PIC18F252 mikro denetleyici ile PID Kontrol

| Haziran 1, 2023 Tarihinde güncellendi
PIC18F252 mikro denetleyici ile PID Kontrol

PIC PID Mikro Denetleyici DC motorların hız kontrolü için bir kapalı döngü PID kontrolör uygulaması Motor kontrolü için l298d sürücü entegresi kullanılmış. PID kontrol devresi pic18f252 mikro işlemci üzerine kurulu yazılım C dili ile hazırlanmış kaynak kodları tüm detayları (ingilizce) akış diagramları var.

Projeyi yapmak beni gerçekten sistem ve kontrol teorisine yöneltti. Bir arkadaşım ve ben, bir PIC MCU’ya tam olarak işleyen bir PID motor hızı ve konumlandırma denetleyicisi uyguladık. bu robotik çevre birimini oluşturmak için oldukça kapsamlı bir kılavuzdur.

IEEE donanım ekibinin bir parçası olarak pek çok proje yaptım ama en çok bununla gurur duyuyorum. Bu, iki DC motorun konum ve hız kontrolü için bir kapalı döngü PID kontrol cihazı uygulayan PIC tabanlı bir sistemdi. Ek olarak, kontrol döngüsü arkları indüklemek için ayarlanabilir.

Sistem, başka bir işlemci için çevre birimi olarak tasarlandı, bu nedenle, motorları düşük seviyede kontrol ederken, yüksek seviyede iletişim kurmasını sağlayan bir SPI komut arayüzüne de sahipti. Çevre biriminde robotu ayarlamanıza, test etmenize ve sürmenize izin veren bir seri konsol vardı.

Görevini tamamlamak için robotun hızını ve konumunu hassas bir şekilde kontrol etmesi gerekiyordu. Bu robotun bulunmasının büyük bir kısmı hesaplama yoluyla yapıldığından, robotun kat ettiği mesafeyle ilgili doğru bilgileri korumak özellikle önemliydi.

Robota tüm bu özellikleri kazandırmak için iki ana motorun düşük seviye kontrolüne ayrılmış özel bir alt işlemci tasarladık. Bu sistemi bir Microchip PIC18F252 üzerinde uyguladık. Bu işlemci, denetleyiciden kontrol sinyallerini alan ve bunları motorları fiilen sürmek için kullanan motor sürücüsü ile aynı karta yerleştirildi.

Alt işlemcimiz motorları izledi ve hedeflerine ulaşmalarını sağlamak için uygun darbe genişlik modülasyonlu (PWM) sinyaller uyguladı. Bu kontrolör ayrıca hız ve mesafe komutlarını almak için birincil kontrolör ile iletişim kurma ve aynı zamanda komuta işlemcisine geri gönderilen başarılı hız ve mesafeyi bildirme yeteneğine de sahipti.

PIC18F252 Mikrodenetleyici Pid Kontrol Şeması

pic-pid-micro-controller-mikrodenetleyici-pid-kontrolu-circuit

Geri Besleme

Motorlardan hız ve mesafe bilgisi almak için, dörtlü kodlayıcı arabirimi (QEI) sinyali veren yerleşik kodlayıcılara sahip motorlar satın aldık. Bu sinyal, tekerleğin bir dönüşün bir kısmını ne zaman hareket ettiğini ve hareket yönünü bildiren iki darbe dizisinden oluşur. A kanalı düşükten yükseğe geçiş yaptığında, yönü belirlemek için B kanalının değeri kontrol edilir. Örnek bir QEI çıktısı aşağıda görülebilir.

Dörtlü Kodlayıcı Arayüzü (QEI) Hareket denetleyicisi, kanal A’daki QEI’den düşükten yükseğe geçişleri kesebildi ve belirli bir zaman aralığında elde edilen sayımların sayısını izleyerek anlık hız ve yön tahmini oluşturabildi. Bu bilgiyi hız veya mesafedeki hataları belirleyen ve telafi eden kontrol döngüsüne girdi olarak kullandık.

Kontrol Döngüsü Motorların hızını kontrol etmek için bir PID (Oransal, İntegral ve Diferansiyel) kontrol döngüsü uyguladık. Motorların hızı, işlemci tarafından üretilen bir PWM sinyalinin görev döngüsünü değiştirerek manipüle edilir. Bu sinyalin görev döngüsü, kontrol değeri olarak bilinir. aşağıda kontrol döngüsünün işlevsel bir diyagramı bulunmaktadır.

PID Akış Şeması

pid-akis-semasi-pid-flowchart

Bu algoritma önce komut verilen hız ile gerçek hız arasındaki farkı belirler. Bu değer hata olarak bilinir. İntegral hatası, hatanın bir akümülatöre eklenmesiyle belirlenir ve türev hatası, hatanın önceki hatadan çıkarılmasıyla hesaplanır.

Kontrol döngüsü her yürütüldüğünde, bu hataların her biri, yanıt süresini ve doğruluğu optimize etmek için ayarlanmış bir kazanç sabiti ile çarpılır. Kazanç sabitleriyle çarpılan bu hatalar daha sonra yeni kontrol değerini hesaplamak için kontrol değerine eklenir.

Bu sayede motorların tepkisine göre kontrol değeri sürekli olarak güncellenir. Bu, sürüklenmeye, engellere veya diğer beklenmeyen yol koşullarına rağmen motorların istenen hızda hareket etmesini sağladı.

Son bir telafi faktörü, P, I ve D hatalarıyla birlikte toplanır. Bu, iki tekerlekteki tutarsızlıklardan kaynaklanan bir hatadır. Bu, bir tekerleği yavaşlatan ancak diğerini yavaşlatmayan faktörleri dengeleyerek robotun düz gitmesini sağlamaya yardımcı olur.

Konum Kontrolü Bu, robotun istenen konuma yakınlığına bağlı olarak hızı kontrol ederek gerçekleştirildi. Motor kontrolörü, ana işlemciden kaç tane “tik” hareket etmesi gerektiğini söyleyen komutları alabilir. Bu değer tam olarak robotun hareket etmesi gereken QEI darbelerinin sayısına karşılık geldi.

Her tik tarafından temsil edilen kesin mesafe, kodlayıcıların çözünürlüğü ve tekerleğin çapı ile belirlendi. Kontrol sistemimiz devir başına 2944 tike yanıt verebiliyordu. Çapı 2.2 inç olan tekerleklerle, kene başına toplam mesafe 2.346 × 10-3 inç idi. Böylece çok detaylı motor kontrol mümkündü.

Konum kontrol algoritması, robotun hedef mesafesine herhangi bir hızda yaklaşmasını sağladı. Ardından, hedef yaklaştıkça, istendiğinde doğru bir şekilde durabilmesi için hızını yavaşlatırdı. Bu, aşağıda diyagramı gösterilen basit bir algoritma ile elde edildi.

Konum Kontrol Akış Şeması

pid-motor-position-control-flow-chart-konum-kontrol-akis-semasi

Motorların konumu izlendi ve yerel değişkenlerde sürekli olarak güncellendi. Motorlar istenilen konumdan önce belirli bir eşik mesafeye ulaştığında, algoritmanın konum kontrol bölümü motorlara durma komutu verir. Bu, motorlar yavaşlayıp sıfır hıza ulaştığında robotun istenen konumda olmasını sağlayacaktır. Bu iki sistem, sol ve sağ tekerlek için bağımsızdı, böylece dönüş amacıyla farklı mesafelere gitmeleri emredilebilirdi.

İletişim Bu yetenekler, robota hızını ve mesafesini kontrol etmek için gereken araçları sağladı. Ancak, gerçekten yararlı olması için bu alt işlemcinin ana işlemciden komut alabilmesi ve motor durumu ile ilgili bilgileri geri sağlayabilmesi gerekiyordu.

Bunu bir SPI (Seri Çevre Birimi Arayüzü) iletişim protokolü kullanarak başardık. İletişim mesaja dayalıydı. Ana işlemci, PID denetleyicisine sekiz baytlık mesajlar gönderebilir. Bu mesajlar, alt işlemciye mesajın ne tür bir komut içerdiğini söyleyen bir baytlık bir işlem koduyla başladı. Sonraki yedi bayt, istenen hız veya gidilecek istenen mesafe gibi verileri içeriyordu.

Alt işlemci, anlık hızı ve kat edilen toplam mesafe bilgisini tutan sekiz baytı aynı anda geri gönderebilir. Hız, konum kontrolü ve ana işlemci ile iletişim kurma özelliğinin tamamlanmasıyla hareket kontrol sistemi neredeyse tamamlanmış oldu.

Kontrolü Ayarlama Son adım, PID kontrol algoritması ayarlamaktı. Bu, önceki kontrol çabasıyla toplanmadan önce her bir hatanın çarpıldığı kazanç sabitlerini ayarlayarak gerçekleştirilir. Bu, çoğunlukla deneme yanılma yoluyla elde edilen karmaşık bir süreçtir.

Yardımcı olan başka bir araç, PID denetleyicisi tarafından hata ayıklama verilerinin çıktılarının grafiklerini yapmak için GNUplot’u kullanmaktı. Bu, farklı hataların etkileşimini görmemizi sağladı. Bu etkileşim aşağıda görülebilir.

Denetleyiciyi Ayarlamak için kullanılan grafikler

pic-control-aligot-pid-plot

PID denetleyicisi üzerinde ana işlemciden ayrı bir kullanıcı arayüzü geliştirilerek işlemcinin ayarlanması işi basitleştirildi. Bu, EEPROM’da saklanan kazanç sabitlerini ayarlayarak kontrol sisteminin seri olarak ayarlanmasına izin verdi.

Motor kontrolörü tam olarak ayarlandığında, çok iyi performans gösterdi ve bu düşük seviyeli görevle ana işlemciyi rahatsız etmeden robot için mükemmel hız ve konum kontrolü sağladı. Bu hareket kontrolörü için tam kod aşağıdadır.

Motor Sürücüsü

pic-pid-micro-controller-mikrodenetleyici-pid-kontrolu-circuit-motor-control

Motor sürücüsünün, mantık seviyesi PWM sinyallerini 3A’ya kadar olan PWM’yi kullanan 9.7V motora yükseltmesi gerekiyordu. Bunu başarmak için bir L298 H-köprü çipi kullandık. Programlama, diğer işlemcilere bağlanma ve motorları ve gücü takmak için bazı kullanışlı fişler ekledik.

Kaynak: shawnlankton.com/2005/03/pic-pid-controller/

pic18f252-mikro-denetleyici-ile-pid-kontrol

Şifre-Pass: 320volt.com

Yayım tarihi: 2010/05/30 Etiketler: , , , ,



3 Yorum “PIC18F252 mikro denetleyici ile PID Kontrol

  1. Kadir YiğitKadir Yiğit

    Mikrodenetleyici kullanarak, PID, bulanık mantık ve diğer kontrol yöntemlerinin uygulanışı için Türkçe kaynak olarak şu kitaba bakılabilir:
    ekinyayinevi.com/tr/katalog?f=161-1054245

    1. MİKROİŞLEMCİ

    1.1. Aritmetik ve Mantık Birimi:
    1.2. Kaydediciler
    1.3. Denetim Birimi
    1.4. Hafıza (Bellek)
    1.5. Bağlantı Yolları
    1.6. Giriş/Çıkış Portları
    1.7. Mikroişlemci Mimarisi

    2. MİKRODENETLEYİCİLER

    2.1. PIC Mikrodenetleyicilerinin Genel Özellikleri

    3. KULLANILAN PROGRAMLAR

    3.1. MikroC Programı
    3.2. PROTEUS Programı

    4. UYGULAMA GELİŞTİRME

    4.1. Deney 1

    5. GİRİŞ/ÇIKIŞ PORTLARI

    5.1. Portların Ayarlanması ve Kullanımı
    5.2. Giriş/Çıkış Tipleri
    5.3. A Portu
    5.4. B Portu
    5.5. C Portu
    5.6. D Portu
    5.7. E Portu
    5.8. Deney 2

    6. ZAMANLAYICI/SAYICI MODÜLLERİ

    6.1. Zamanlayıcı/Sayıcı Modül Kapasitesi:
    6.2. Kesme Özelliği:
    6.3. Önbölücü Değeri:
    6.4. Sonbölücü Değeri:
    6.5. Sayma İşlemi:
    6.6. Timer0 Modülü:
    6.7. Timer1 Modülü
    6.8. Timer2 Modülü
    6.9. Zamanlayıcı/Sayıcı Kullanımı
    6.10. Deney 3

    7. ADRESLENEBİLİR EVRENSEL SENKRON ASENKRON ALICI VERİCİ (USART) MODÜLÜ

    7.1. Senkron İletişim
    7.2. Asenkron İletişim
    7.3. Baud Hızı (Baud Rate)
    7.4. USART Modülü Baud Hızı Ayarı
    7.5. USART Modülü Asenkron İletişim Modu (Kipi)
    7.6. USART Modülü Senkron İletişim Modu (Kipi)
    7.7. Deney 4

    8. YAKALAMA/KARŞILAŞTIRMA/DARBE GENİŞLİK MODÜLASYONU MODÜLÜ

    8.1. Yakalama Modu (Kipi) (Capture Mode)
    8.2. Karşılaştırma Modu (Kipi) (Compare Mode)
    8.3. DGM Modu (Kipi) (PWM Mode)
    8.4. Deney 5

    9. ANALOG-DİJİTAL DÖNÜŞTÜRÜCÜ MODÜLÜ

    9.1. Analog Dijital Dönüştürücü Modülünün Kullanımı
    9.2. Deney 6

    10. KARŞILAŞTIRICI GERİLİM REFERANS MODÜLÜ

    11. KARŞILAŞTIRICI MODÜLÜ

    11.1. Dahili Referans Kaynağı
    11.2. Karşılaştırma Sonucunun Çıkışa Verilmesi
    11.3. Cevap Süresi
    11.4. Kesme
    11.5. Uyku Durumunda Karşılaştırma İşlemi
    11.6. Deney 7

    12. MASTER SENKRON SERİ PORT (MSSP) MODÜLÜ

    12.1. I2C İletişim Yöntemi
    12.2. MSSP Modülü I2C Modu
    12.3. Deney 8
    12.4. SPI İletişim Yöntemi
    12.5. MSSP Modülü SPI modu
    12.6. Deney 9

    13. EEPROM BELLEK

    13.1. Deney 10

    14. DENETİM (KONTROL) UYGULAMALARI

    14.1. Temel Kavramlar
    14.2. Denetim Sistemi Türleri
    14.3. Denetim Yöntemleri ile İlgili Temel Bilgiler
    14.4. Sayısal Çözümleme Yöntemleri
    14.5. Örnekleme Periyodu Seçimi
    14.6. Kazanç Değerlerinin ve Denetim Terimlerinin Sınır Değerlerinin
    Ayarlanması
    14.7. Aç-Kapa (On-Off) Denetleyici
    14.8. PID (OTT) Denetleyici
    14.9. PIV (OTH) Denetleyici
    14.10. Kayan Kip (Sliding Mode) Denetleyici
    14.11. Bulanık (Fuzzy) Denetleyici

    CEVAPLA
    1. Abdullah CibirAbdullah Cibir

      Kitabın adını öğrenebilirmiyim. İlgili linkte kitap gözükmemekte.

      CEVAPLA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir