PID Kontrollü Top Dengeleme Stewart Platformu: 6 Adım
PID Kontrollü Top Dengeleme Stewart Platformu: 6 Adım
Anonim
Image
Image
Malzeme Al
Malzeme Al

Motivasyon ve Genel Konsept:

Eğitimdeki bir fizikçi olarak, doğal olarak fiziksel sistemlere ilgi duyuyorum ve onları anlamaya çalışıyorum. Karmaşık sorunları, onları en temel ve temel bileşenlerine ayırarak ve ardından sorunu oradan yeniden kurarak çözmek için eğitildim. İlk prensiplerden mekanik ve elektromanyetizma öğreniyor olsam da, onları bazı fiziksel uygulamalarda henüz kullanmadım. Sonunda, bir topu düz, tamamen kontrollü bir platformda kendi başına dengelemek için otomatik kontrol teorisini kullanan bir robot yaratarak bu fırsatı elde edeceğim!

Bu nasıl yapılır içinde; teknik açıdan bilgili hacker, programcı veya mühendis içindir, mikrodenetleyici platformumuz olarak bir Arduino Uno kullanacağız. Kapalı geri besleme döngüsü, ilk olarak, düz dokunmatik dirençli bir ekran üzerinde duran ve bilyaları hemen konumunu geri besleyen katı bir metal bilyeli yatağın konumunu algıladığında başlar. Bu pozisyon daha sonra Arduino Uno'ya programladığımız orantısal-integral-türev (PID) kontrolörüne beslenir. Bu kodu açık kaynak yaptım ve projeye bağladım. Kontrolör, önemli ölçüde rahatsız olsa bile, topu masa üzerinde herhangi bir kullanıcı tarafından seçilen konuma geri getirmekle görevlidir. Kullanacağımız yapısal destek platformu “Stewart platformu” olarak bilinir ve altı serbestlik derecesine kadar servo motorlar tarafından tahrik edilen altı bağımsız bağlantı çubuğu tarafından desteklenir; X, Y ve Z ötelemeleri, yuvarlanma, eğim ve sapma (sırasıyla X, Y ve Z eksenleri etrafında dönmeler). Son derece mobil bir platformun oluşturulması ve programlanması kendi zorluklarını ortaya koymaktadır, bu nedenle bu proje için, kullanıcı isterse, diğerlerini isteğe bağlı işlevsellik yükseltmeleri olarak bırakarak, yalnızca adım ve yuvarlanma serbestlik derecelerini çağıracağız. Platformun, topu kullanıcı tanımlı statik konumlardan herhangi birine hareket ettirmesiyle birlikte, gelişmiş programcılar programı geliştirmeyi ve statik, kullanıcı tanımlı konumumuzu yarı sürekli bir kullanıcı iziyle değiştirerek biraz gösteriş eklemeyi kolay bulacaklardır. sekiz rakamı, dairesel yörünge, el yazısıyla adınız veya en sevdiğim birinin kendi mobil cihazında kaleminin veya parmağının canlı akışı gibi tanımlı yol! Mutlu hack!

1. Adım: Malzemeleri Alın

Malzeme Al
Malzeme Al
Malzeme Al
Malzeme Al
Malzeme Al
Malzeme Al

İhtiyac duyulan malzemeler:

1. Birkaç yaprak 1/4" ve 1/8" Akrilik

2. 6 - Servo Motorlar (HS5485HB Servo'ları kullandık)

3. 6 - Dişli (Ayarlanabilir) Biyeller

4. 6 - Ayarlanabilirlik için çoklu delikli CNC İşlenmiş Servo Kol

5. 12 - Heim Ortak Çubuk Uçları

6. 6 - Çubuklar (Ayarlanabilir)

7. 1- 17” Beş Telli Dirençli Dokunmatik Ekran Paneli USB kiti (bilyalı rulmanın konumunu algılama)

Adım 2: Malzemeleri Hazırlayın

Malzemeleri Hazırlayın
Malzemeleri Hazırlayın
Malzemeleri Hazırlayın
Malzemeleri Hazırlayın
Malzemeleri Hazırlayın
Malzemeleri Hazırlayın

Akrilik kesimi elde etmenin en iyi yolu bir lazer kamerası kullanmaktır. Birine erişim zor olabilir, bu nedenle akrilik aşina olduğunuz, uygun şekilde eğitilmiş herhangi bir kesici alet kullanılarak kolayca kesilebilir ve güvenli bir şekilde çalışabilir. Örneğin bunu evde yapıyor olsaydım, el işleme testeresi kullanırdım. Stewart platformunun genel şekli, yaptığım modelle tam olarak eşleşmek zorunda değil. Ancak, birkaç basitleştirici fırsata dikkat çekmek istiyorum. İlk olarak, standart iki yerine üç temel kullanarak eğim ve yuvarlanma serbestlik derecelerini haritalamak çok daha kolaydır. bu, bağlantı çubuklarının gerçek platforma bir eşkenar üçgen eklenmesiyle yapılır. Bu, sıfırdan yunuslama ve yuvarlanma serbestlik derecelerini (DOF) bulmanın tüm komplikasyonlarını ihmal etmenizi sağlar, bunun yerine, üçgenin yukarı doğru giden köşesinin haritası olan 3 doğrusal olmayan bağımsız "temel" kullanırız. Bu temelde koordinatları yazmak sizin veya benim için zor olabilir, ancak bu temelin karşılıklı bağımlılığı kod tarafından kolayca halledilir. Bu basitleştirici varsayım, geometrinin tüm inceliklerini ihmal etmenin anahtarıdır. Ayrıntılar için resme MS Paint grafiğine ve beyaz tahta resmine bakın.

Parçalar kesildikten sonra, bağlantı çubuklarınızın ve bilyeli mafsallarınızın bağlandığı tüm delikleri açmanız gerekecektir. Delik boyutunu kullandığınız uygun donanımla eşleştirmeye dikkat edin. Bu, seçtiğiniz bağlantı elemanlarının çalışması için çok önemlidir. Delik boyutları, tutturucunuz için hangi boyutta musluğa ihtiyaç duyacağınıza bağlıdır. Bunu yapmak için, belirli kılavuz boyutu, hatve ve diş tipi (ince ve düz) için çevrimiçi bir referans bulun. Akrilik için kurs ipliklerini tavsiye ederim, ancak ince iplik kullanmanız gerekiyorsa, işe yaramalı, çünkü zaten kullandığımız şey buydu. Şimdi montaja geçme zamanı.

Adım 3: Malzemeleri Birleştirin

Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri
Montaj Malzemeleri

Malzemeleri dikkatlice spesifikasyona göre birleştirin. Herhangi bir vidayı çıkarmamaya özellikle dikkat edin. Bu yapıldıktan sonra, ya boyutlandırarak ve daha büyük delikler açarak ve onlara dokunarak donanımı değiştirmeniz gerekecek ya da tamamen yeni bir akrilik parçası kesmeniz gerekecek. Dokunmatik dirençli ekrana da dikkat edin. Kırılgandır!!! Sonuçta ince bir cam tabakası. Dikkat edin biz kendimiz kaza yaptık.

Adım 4: Programlama

Programlama
Programlama

Programlama biraz zaman alabilir. Programlama becerilerinizin gerçekten işe yarayabileceği yer burasıdır. Kodu sıfırdan yazmanıza gerek yok, ancak değişiklik yapmak için iyi yorumlanmış ve organize edilmiş bir kaynak kodu bulabilirseniz, bu hayatı çok daha kolay hale getirir. İşte kaynak kodumuzun bağlantısı: https://github.com/a6guerre/Ball-balanced-on-Stew…, kendinize yardım edin! Kesinlikle optimize edilmedi, ancak işi halletti! Kontrol haritası için ortoganal olmayan, lineer bağımsız olmayan üç ayrı temel kullandığımızı unutmayın. Biz sadece x, y'deki her şeyi okuyoruz ve A, B ve C'ye eşliyoruz. Bu yanıt daha sonra sistemin ne kadar az ya da çok yanıt vermesini istediğimizi ayarlamak için küresel olarak ayarlanıyor.

Adım 5: Test Etme

Burada serbestlik derecelerini test ediyoruz. Şimdi üç temelimizin nasıl ödediğine dikkat edin! Örneğin, yuvarlanma DOF'sini elde etmek için, sağda bir birim yukarı çıkarken soldan bir birim aşağı ineriz ve diğer yön için tam tersi. Dokunmatik ekranınızdan gürültüyü filtreleyerek yeterince iyi bir iş çıkarmış olmanız da önemlidir. Bu, PID'nize beslenecek iyi verilere sahip olmak için çok önemlidir.

Adım 6: İnce Ayar ve Keyfini Çıkarın

Test aşaması gerçekten sadece hataları gidermek içindi. Burada, kontrol sisteminin ince ayarına odaklanıyoruz. bu en iyi şekilde önceden ayarlanmış bir algoritma ile yapılır. Benim favorim, kritik bir sönümleme problemi gibi yaklaşmak, Ahem! Ben bir fizikçiyim! Yani sönümleme terimini kapatıyorsunuz! Yani, bir sürükleme terimi gibi davranan türev terimi. Şimdi top çılgınca salınacak! Ancak amaç, salınımların mümkün olduğu kadar artmaya veya azalmaya değil, harmoniklere mümkün olduğunca yakın olmasını sağlamaktır. Bu yapıldıktan sonra, türev terimini açarsınız ve mümkün olan en kısa sürede dengeye dönene kadar ayarlama yaparsınız. Bu, kritik sönümleme elde edildiğinde gerçekleşir. Ancak, bu işe yaramazsa, PID kontrollü sistemler için kanıtlanmış birçok başka ayar şeması vardır. Bunu PID denetleyicisi altında wikipedia'da buldum. Projeme göz attığınız için çok teşekkür ederim ve herhangi bir sorunuz olursa lütfen bize ulaşın, sorularınızı yanıtlamaktan memnuniyet duyacağım. Özel not: Bu projenin baştan sona Mucize Max Guerrro tarafından ve benim ilkinden sonra gümrükte kalmış yeni bir ekran için iki hafta beklemek de dahil olmak üzere dört haftadan kısa bir sürede yapıldığını belirtmek isterim. parasız. Bu yüzden lütfen kusura bakmayın, mükemmel performanstan çok uzak. Mutlu hack!