İçindekiler:

PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC): 9 Adım
PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC): 9 Adım

Video: PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC): 9 Adım

Video: PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC): 9 Adım
Video: QTR-8A Çizgi Sensörü Kullanımı ve PID Çizgi İzleyen Robot Yapımı 2024, Temmuz
Anonim
PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC)
PID Algoritmasını Kullanan Kendi Kendini Dengeleyen Robot (STM MC)

Son zamanlarda nesnelerin kendi kendini dengelemesi konusunda pek çok çalışma yapılmıştır. Kendi kendini dengeleme kavramı, ters sarkaçın dengelenmesiyle başladı. Bu konsept uçak tasarımına da uzandı. Bu projede, PID(Oransal, İntegral, Türev) Algoritmasını kullanarak küçük bir kendi kendini dengeleyen robot modeli tasarladık. O zamandan beri, bu yöntem endüstriyel proses kontrol sistemlerinin yeni yüzüdür. Bu rapor, nesnelerin kendi kendini dengelemesiyle ilgili yöntemleri gözden geçirir. Bu proje, PID'nin çeşitli endüstriyel süreçlerin verimliliği üzerindeki korelasyonunu anlamak için bir dönem projesi olarak yürütülmüştür. Burada sadece PID kontrolünün etkinliği ve uygulaması hakkında kısa bir inceleme sağlamaya odaklanıyoruz. Bu belge, proje motivasyonlarına ek olarak kontrol sistemlerine ve ilgili terminolojilere kısa bir giriş sağlayarak geliştirilmiştir. Deneyler ve gözlemler yapılmış, meziyetler ve kusurlar, gelecekteki iyileştirmelerde sona ererek açıklanmıştır. PID'nin kontrol sistemi dünyasındaki etkinliğini anlamak için kendi kendini dengeleyen bir robot modeli geliştirildi. Bazı titiz testler ve deneylerden geçerek, PID kontrol sisteminin yararları ve zararları keşfedildi. PID kontrolünün geçmiş yöntemlere göre birçok avantajına rağmen, bu sistemin hala birçok iyileştirme gerektirdiği bulunmuştur. Okuyucunun kendi kendini dengelemenin önemi, PID kontrolünün etkinliği ve eksiklikleri hakkında iyi bir anlayışa sahip olması umulmaktadır.

Adım 1: Giriş

İnsanlık tarihi boyunca bilgisayarların ortaya çıkışı ve süreçlerin sanayileşmesiyle birlikte, süreçleri iyileştirmenin ve daha da önemlisi, onları otonom olarak makineleri kullanarak kontrol etmenin yollarını geliştirmeye yönelik araştırmalar her zaman olmuştur. Amaç, insanın bu süreçlere katılımını azaltmak, böylece bu süreçlerdeki hatayı azaltmaktır. Böylece “Kontrol Sistemi Mühendisliği” Alanı geliştirilmiştir. Kontrol Sistemi Mühendisliği, manuel veya otomatik olsun, bir sürecin çalışmasını veya sabit ve tercih edilen bir ortamın bakımını kontrol etmek için çeşitli yöntemlerin kullanılması olarak tanımlanabilir.

Basit bir örnek, bir odadaki sıcaklığı kontrol etmek olabilir. Manuel Kontrol, sahada mevcut koşulları kontrol eden (sensör), istenen değerle karşılaştıran (işleme) ve istenen değeri elde etmek için uygun eylemi yapan (aktüatör) bir kişinin varlığı anlamına gelir. Bu yöntemle ilgili sorun, kişinin işinde hataya veya ihmale meyilli olması nedeniyle çok güvenilir olmamasıdır. Ayrıca, aktüatör tarafından başlatılan işlemin hızının her zaman tekdüze olmaması, bazen gerekenden daha hızlı gerçekleşebileceği veya bazen yavaş olabileceği bir başka sorundur. Bu sorunun çözümü, sistemi kontrol etmek için bir mikro denetleyici kullanmaktı. Mikro denetleyici

verilen özelliklere göre süreci kontrol etmek için programlanmış, bir devreye bağlı (daha sonra tartışılacaktır), istenen değeri veya koşulları besler ve böylece istenen değeri korumak için süreci kontrol eder. Bu işlemin avantajı, bu süreçte herhangi bir insan müdahalesine gerek olmamasıdır. Ayrıca, işlemin hızı tekdüzedir.

Temel Kontrol Sistemi

Önceki diyagram, bir Kontrol Sisteminin çok basitleştirilmiş bir versiyonunu göstermektedir. Mikrodenetleyici, herhangi bir Kontrol Sisteminin kalbinde yer alır. Bu çok önemli bir bileşendir, bu nedenle seçimi Sistemin gereksinimlerine göre dikkatlice yapılmalıdır. Mikro denetleyici, kullanıcıdan bir girdi alır. Bu giriş, Sistemin istenen koşulunu tanımlar. Mikro denetleyici ayrıca sensörden bir geri besleme girişi alır. Bu sensör, bilgileri girişe geri beslenen Sistemin çıkışına bağlanır. Mikroişlemci, programlamasına göre çeşitli hesaplamalar yapar ve aktüatöre bir çıktı verir. Aktüatör, çıktıya dayalı olarak, bu koşulları korumaya çalışmak için tesisi kontrol eder. Bir örnek, motor sürücüsünün aktüatör ve motorun tesis olduğu bir motoru süren bir motor sürücüsü olabilir. Böylece motor belirli bir hızda döner. Bağlanan sensör, tesisin o andaki durumunu okur ve mikro denetleyiciye geri besler. Mikrodenetleyici tekrar karşılaştırır, hesaplamalar yapar ve böylece döngü kendini tekrar eder. Bu süreç, mikro denetleyicinin istenen koşulları koruduğu tekrarlayıcı ve sonsuzdur.

Adım 2: PID Tabanlı Kontrol Sistemi

PID Tabanlı Kontrol Sistemi
PID Tabanlı Kontrol Sistemi
PID Tabanlı Kontrol Sistemi
PID Tabanlı Kontrol Sistemi

PID Algoritması, bir Kontrol Sistemi tasarlamanın etkili bir yöntemidir.

tanım

PID, Orantılı, İntegral ve Türev anlamına gelir. Bu algoritmada alınan hata sinyali giriştir. Ve hata sinyaline aşağıdaki denklem uygulanır.

U(t) = Kp∗e(t) + Kd∗d/dt(e(t)) + Ki∗integral(e(t)) (1.1)

Kısa açıklama

Yukarıdaki denklemde görüldüğü gibi, hata sinyallerinin integrali ve türevi hesaplanır, ilgili sabitlerle çarpılır ve e(t) ile çarpılan Kp sabiti ile toplanır. Çıktı daha sonra sistemin çalışmasını sağlayan aktüatöre beslenir. Şimdi sırayla fonksiyonun her bir bölümüne bakalım. Bu fonksiyon yükselme zamanı, düşme zamanı, tepe üstü çekim, yerleşme zamanı ve sabit durum hatasını doğrudan etkiler.

• Oransal kısım: Orantılı kısım yükselme süresini azaltır ve kararlı durum hatasını azaltır. Bu, sistemin tepe değerine ulaşmasının daha az zaman alacağı ve kararlı duruma ulaştığında kararlı durum hatasının düşük olacağı anlamına gelir. Ancak, tepe aşmayı arttırır.

• Türev kısım: Türev kısım, aşmayı ve yerleşme süresini azaltır. Bu, sistemin geçici durumunun daha fazla sönümleneceği anlamına gelir. Ayrıca sistem kararlı durumuna daha kısa sürede ulaşacaktır. Ancak yükselme süresi veya sürekli hal hatası üzerinde herhangi bir etkisi yoktur.

• İntegral kısım: İntegral kısım yükselme süresini azaltır ve kararlı durum hatasını tamamen ortadan kaldırır. Ancak, tepe aşmayı ve yerleşme süresini arttırır.

• Ayarlama: İyi bir Kontrol Sistemi, düşük yükselme süresine, yerleşme süresine, tepe aşımına ve sabit durum hatasına sahip olacaktır. Bu nedenle, iyi bir Kontrol Sistemi elde etmek için yukarıdaki faktörlerin katkısını ayarlamak için Kp, Kd, Ki'nin hassas bir şekilde ayarlanması gerekir.

PID algoritmasında çeşitli parametrelerin değiştirilmesinin etkisini gösteren şekil eklenmiştir.

Adım 3: Kendi Kendini Dengeleyen Robot

Kendi Kendini Dengeleyen Robot
Kendi Kendini Dengeleyen Robot

Kendi kendini dengeleyen bir robot, çok katmanlı, iki tekerlekli bir robottur.

Robot, herhangi bir eşit olmayan kuvvetin/kuvvetlerin uygulanması durumunda kendini dengelemeye çalışacaktır. Robot üzerindeki kuvvetlerin bileşkesine karşı kuvvet uygulayarak kendini dengeleyecektir.

Kendi Kendini Dengeleme Yöntemleri

Robotların kendi kendini dengelemesinin dört yöntemi vardır. Bunlar aşağıdaki gibidir:

İki IR Eğim Sensörü Kullanarak Kendinden Dengeleme

Bu, çok daha az donanım ve nispeten kolay bir algoritma gerektirdiğinden robotu dengelemenin en kaba yollarından biridir. Bu yaklaşımda, yer ile robot arasındaki mesafeyi ölçmek için iki eğimli IR sensörü kullanılır. Hesaplanan mesafeye bağlı olarak, robotu buna göre dengelemek için motorları sürmek için PID kullanılabilir. Bu yöntemin bir dezavantajı, IR sensörünün bazı okumaları kaçırabilmesidir. Diğer bir problem ise, algoritmanın zaman karmaşıklığını artıran mesafenin hesaplanması için bir kesme ve döngülerin gerekli olmasıdır. Bu nedenle, robotu dengelemenin bu yöntemi pek verimli değildir.

İvmeölçer kullanarak Kendi Kendini Dengeleme

İvmeölçer bize cismin 3 eksendeki ivmesini verir. Y ekseninde (yukarı) ve x ekseninde (ileri) yönlendirilmiş ivme, bize yerçekimi yönünü hesaplamak ve dolayısıyla eğim açısını hesaplamak için bir ölçü verir. Açı aşağıdaki gibi hesaplanır:

θ = arktan(Ay/Ax) (1.2)

Bu yöntemi kullanmanın dezavantajı, robotun hareketi sırasında yüksek frekanslı bir gürültü olan okumalara yatay ivmenin de eklenmesidir. Bu nedenle, eğim açısı yanlış olacaktır.

Jiroskop Kullanarak Öz Dengeleme

Üç eksen boyunca açısal hızları hesaplamak için bir jiroskop kullanılır. Eğim açısı aşağıdaki denklem kullanılarak elde edilir.

θp(i) = θp(i−1) + 1/6(vali−3 + 2vali−2 + 2vali−1 + geçerli) (1,3)

Jiroskop kullanmanın büyük bir dezavantajı, düşük frekanslı bir gürültü olan küçük bir DC Önyargısına sahip olması ve birkaç kez döndürülen değerlerin tamamen yanlış olmasıdır. Bu, entegrasyondan sonra sıfır noktasının kaymasına neden olacaktır. Bunun sonucunda robot bir süre dikey konumunda kalacak ve drift geldiğinde devrilecektir.

Hem İvmeölçer hem de Jiroskop kullanarak Kendi Kendini Dengeleme

Yukarıda tartışıldığı gibi, sadece ivmeölçer veya jiroskop kullanmak bize doğru eğim açısını vermeyecektir. Bunu hesaba katmak için hem ivmeölçer hem de jiroskop kullanılır. Bunların her ikisi de MPU6050'ye gömülüdür. Bunda her ikisinden de veri alıyoruz ve Kalman Filtresi veya Tamamlayıcı Filtre kullanarak bunları birleştiriyoruz.

• Kalman Filtresi: Kalman filtresi, dinamik bir sistemin durumunun en iyi tahminini gürültülü ölçümlerden hesaplayarak, tahminin ortalama karesel hatasını en aza indirir. Sistem dinamiklerini tanımlayan ayrı stokastik denklemler göz önüne alındığında, tahmin ve düzeltme olmak üzere iki aşamada çalışır. Ancak, özellikle bir mikrodenetleyicinin sınırlı bir donanımı üzerinde uygulanması çok karmaşık bir algoritmadır.

• Tamamlayıcı Filtre: Bu algoritma öncelikle jiroskoptan elde edilen verileri kullanır ve eğim açısını elde etmek için zamanla entegre eder. Ayrıca, ivmeölçer okumalarının küçük bir kısmını kullanır. Aslında tamamlayıcı filtre, ivmeölçerin yüksek frekanslı gürültüsünü ve jiroskopun düşük frekanslı gürültüsünü en aza indirir ve ardından en doğru eğim açısını vermek için bunları birleştirir.

Adım 4: Robot Tasarımı

Robot Tasarımı
Robot Tasarımı

MPU6050 için Tamamlayıcı Filtre tarafından uygulanan Orantılı Türev denetleyicisini kullanarak kendi kendini dengeleyen bir robot tasarladık. Bu küçük Kendi Kendini Dengeleyen Robot modeli, robotların Kendi Kendini Dengelemesinde Kontrol Sistemlerinin yararlılığını bize gösterecektir.

Sistem Uygulaması:

Sistem kendi kendini dengeleyen bir robottur. Oransal İntegral Türev Denetleyici olan PID Denetleyici kullanılarak gerçekleştirilir. Tekerleklerini düşme yönüne çevirerek robotu dengeliyoruz. Bunu yaparken robotun ağırlık merkezini pivot noktasının üzerinde tutmaya çalışıyoruz. Tekerlekleri düşme yönünde sürmek için robotun nereye düştüğünü ve düşme hızını bilmeliyiz. Bu veriler ivmeölçer ve jiroskopa sahip MPU6050 kullanılarak elde edilmiştir. MPU6050 eğim açısını ölçer ve çıktısını Mikro Kontrolöre verir. MPU6050, STM Board ile I2C üzerinden arayüzlenir. I2C'de bir tel, SCL olarak adlandırılan saat içindir. Diğeri ise SDA olan veri aktarımı içindir. Bunda ana bağımlı iletişim kullanılır. Başlangıç adresi ve bitiş adresi, verinin nereden başlayıp nerede bittiğini bilmek için belirtilir. İvmeölçer ve jiroskopun çıkışlarını birleştirmek için bir matematik filtresi olan MPU6050 için Tamamlayıcı Filtreyi burada uyguladık. MPU6050'den verileri aldıktan sonra, mikrodenetleyici nereye düştüğünü bilmek için hesaplamalar yapacaktır. Hesaplamalara göre STM mikro denetleyici motor sürücüsüne araçları düşme yönünde sürmesi için komutlar verecek ve robotu dengeleyecektir.

Adım 5: Proje Bileşenleri

Proje Bileşenleri
Proje Bileşenleri
Proje Bileşenleri
Proje Bileşenleri
Proje Bileşenleri
Proje Bileşenleri

Kendi kendini dengeleyen robot projesinde aşağıdaki bileşenler kullanılmıştır:

STM32F407

ST Microelectronics tarafından tasarlanmış bir mikro denetleyici. ARM Cortex-M Mimarisi üzerinde çalışır.

Motor Sürücüsü L298N

Bu IC motoru çalıştırmak için kullanılır. İki harici giriş alır. Biri ona bir PWM sinyali sağlayan mikrodenetleyiciden. Darbe genişliği ayarlanarak motor hızı ayarlanabilir. İkinci girişi ise bizim durumumuzda 12V akü olan motoru sürmek için gerekli olan voltaj kaynağıdır.

DC Motor

Bir DC Motor, bir DC kaynağı üzerinde çalışır. Bu deneyde DC Motor, motor sürücüsüne bağlı optokuplörler kullanılarak çalışmaktadır. Motoru sürmek için Motor Drive L298N'yi kullandık.

MPU6050

MPU6050, robotun nereye düştüğü hakkında bilgi almak için kullanılır. Program çalışmaya başladığında MPU6050'nin konumu olan sıfır eğim noktasına göre eğim açısını ölçer.

MPU6050, 3 eksenli bir ivmeölçer ve 3 eksenli bir jiroskopa sahiptir. İvmeölçer, üç eksen boyunca ivmeyi ölçer ve jiroskop, üç eksen etrafındaki açısal hızı ölçer. Çıktıyı birleştirmek için her ikisinin gürültüsünü de filtrelemeliyiz. Gürültüleri filtrelemek için Kalman ve Tamamlayıcı filtremiz var. Projemizde Tamamlayıcı filtre uyguladık.

Opto Çift 4N35

Bir optokuplör, devrenin alçak gerilim kısmını ve yüksek gerilim kısmını izole etmek için kullanılan bir cihazdır. Adından da anlaşılacağı gibi ışık esasına göre çalışır. Alçak gerilim parçası sinyal aldığında, yüksek gerilim bölümünde akım akar.

Adım 6: Robotun Yapısı

Robotun yapısı şu şekilde açıklanmaktadır:

Fiziksel Yapı

Kendi kendini dengeleyen robot, şeffaf plastik camdan oluşan iki katmandan oluşur. İki katmanın detayları aşağıda verilmiştir:

İlk Katman

İlk katmanın alt kısmına STM kartını çalıştırmak için bir hücre yerleştirdik. Ayrıca robotun hareket etmesi için her iki yanına lastikler bağlı 4 voltluk iki motor yerleştirilmiştir. Birinci katmanın üst kısmında motorların çalışması için her biri 4 voltluk (toplam 8 volt) iki adet akü ve motor sürücü IC(L298N) yerleştirilmiştir.

İkinci Katman

Robotun üst katmanında STM Board'u Perf Board üzerine yerleştirdik. Üst katmana 4 opto kuplörden oluşan başka bir mükemmel tahta yerleştirilir. Jiroskop da alt taraftan robotun üst tabakasına yerleştirilmiştir. Her iki bileşen de orta kısma yerleştirildi, böylece ağırlık merkezi mümkün olduğunca düşük tutuldu.

Robotun Ağırlık Merkezi

Ağırlık merkezi mümkün olduğu kadar aşağıda tutulur. Bu amaçla alt katmana ağır piller, üst katmana ise STM board ve optokuplör gibi hafif bileşenler yerleştirdik.

7. Adım: Kod

Kod, Atollic TrueStudio'da derlendi. Hata ayıklama amacıyla STM stüdyosu kullanıldı.

Adım 8: Sonuç

Pek çok deney ve gözlemden sonra, nihayet sonuçlarımızı özetlediğimiz ve sistemin etkinliğini uygulamada ve çözmede ne kadar başarılı olduğumuzu tartıştığımız noktaya geliyoruz.

Genel İnceleme

Deney sırasında motorun hızı PID Algoritması kullanılarak başarıyla kontrol edildi. Ancak eğri tam olarak düzgün bir düz çizgi değildir. Bunun birçok nedeni var:

• Alçak geçiren bir filtreye bağlı olmasına rağmen sensör yine de belirli sonlu geri dönüşler sağlar; bunlar lineer olmayan dirençlerden ve analog elektroniğin bazı kaçınılmaz nedenlerinden kaynaklanmaktadır.

• Motor, düşük voltaj veya PWM altında düzgün dönmüyor. Sisteme bazı yanlış değerlerin beslenmesine neden olabilecek sarsıntıları sağlar.

• Titreme nedeniyle sensör, daha yüksek değerler sağlayan bazı yarıkları kaçırabilir. • Hataların bir diğer önemli nedeni, STM mikro denetleyicinin çekirdek saat frekansı olabilir. Bu STM mikrodenetleyici modeli, 168MHz'lik bir çekirdek saat sağlar. Bu projede bu problem ele alınsa da, bu model hakkında tam olarak bu kadar yüksek frekans sağlamadığına dair genel bir fikir var.

Açık döngü hızı, yalnızca birkaç beklenmedik değerle çok düzgün bir çizgi sağlar. PID Algoritması ayrıca motorun çok düşük oturma süresi sağlayarak iyi çalışıyor. Motorun PID Algoritması, referans hızı sabit tutularak çeşitli voltajlar altında test edilmiştir. Voltaj değişikliği motorun hızını değiştirmez, bu da PID Algoritmasının iyi çalıştığını gösterir.

Etkililik

Burada deney sırasında gözlemlediğimiz PID kontrolörünün etkinliğini tartışıyoruz.

Basit Uygulama

Bir PID denetleyicisinin uygulanmasının çok kolay olduğunu deney ve gözlemler bölümünde gördük. Bir hız kontrol sistemine sahip olmak için ayarlanması gereken sadece üç parametre veya sabit gerektirir.

Lineer Sistemler için Eşsiz Verimlilik

Doğrusal PID denetleyicisi, denetleyici ailesinde en verimli olanıdır, çünkü mantık çok basittir ve doğrusal veya oldukça doğrusal uygulamalar durumunda uygulama yaygındır.

Sınırlamalar

Bu sistemin Kısıtlamalarını özette açıkladık. Burada gözlemlediğimiz birkaç tanesini tartışıyoruz.

Sabitlerin Seçimi

Bir PID denetleyicisinin uygulanması kolay olsa da, sabitlerin değerini seçme adımının zahmetli olması sistemin önemli bir dezavantajıdır; zor hesaplamalar yapmak zorunda olduğu için. Diğer yol ise vur ve dene yöntemidir ancak bu da verimli değildir.

Sabitler her zaman sabit değildir

Deneysel sonuçlar, motorun referans hızının farklı değerleri için, PID sabitlerinin aynı değerleri için PID denetleyicisinin arızalandığını gösterdi. Farklı hızlar için sabitlerin farklı seçilmesi gerekiyordu ve bu da hesaplama maliyetini katlanarak artırıyor.

Doğrusal Olmayan

Bizim durumumuzda kullanılan PID denetleyicisi doğrusaldır, bu nedenle sadece doğrusal sistemlere uygulanabilir. Doğrusal olmayan sistemler için kontrolör farklı şekilde uygulanmalıdır. Farklı doğrusal olmayan PID yöntemleri mevcut olmasına rağmen, daha fazla parametrenin seçilmesini gerektirir. Bu da, yüksek hesaplama maliyeti nedeniyle sistemi istenmeyen hale getirir.

İlk İletme Gerekli

Deneme bölümünde, başlangıçta hatanın oldukça küçük olduğu oldukça küçük bir referans hızı için, PID tarafından sağlanan PWM'nin o kadar küçük olduğunu ve motor için gerekli başlangıç torkunu üretmediğini gösterdik. Bu nedenle bazı denemelerde motor çalışmıyor veya diğer denemelerde büyük bir aşım ve daha uzun oturma süresi sağlıyor.

9. Adım: Özel Teşekkürler

Bu projede bana yardımcı olan grup üyelerime özel teşekkürler.

Videonun linkini birazdan yükleyeceğim.

Umarım bu öğreticiyi ilginç bulursunuz.

Ben UET imzasından Tahir Ul Haq. Şerefe !!!

Önerilen: