Ev - Onarım geçmişi
 Lego Mindstorms Robotics'te Orantılı İntegral Diferansiyel PID Denetleyicisi. Oransal kontrolör. Uluslararası robot yarışmaları - Kurallar - Robot örnekleri - LEGO EV3 Orantılı p programına dayalı yörünge robotu

Robotik, görünüşe göre çerçevesinde daha da gelişecek yeni ve ilginç bir yön. okul kursları bilgisayar bilimi ve teknolojisi. Robotikteki patlama büyük ölçüde şu soruyu yanıtlamamıza olanak sağlamasından kaynaklanıyor: "Neden programlamayı gerçekten öğreniyoruz?" Ek olarak, robotik dersinde teorinin temel kavramlarını tanıyabilirsiniz..

otomatik kontrol

Bu sayfada yazar tarafından geliştirilen programlama simülatörleri ve Arduino kartları sunulmaktadır. Herhangi bir nedenle gerçek donanım kullanmanın mümkün olmadığı durumlarda yardımcı olabilirler. Simülatörler HTML5 özelliklerini kullanır, dolayısıyla yalnızca modern tarayıcılar(kullanmak en iyisi Google Chrome).

veya MozillaFirefox

Haberler
artık Telegram kanalında da 27 Kasım 2015 Simülatörlere “embriyo” parkuru eklendi (

M.V. Lazarev
, Orekhovo-Zuevo).
Yeni simülatörler eklendi - iki, üç, dört ışık sensörlü LEGO robotları.

Robot kontrol dili

Simülatörlerdeki robotları kontrol etmek için çalışma adını alan basit bir programlama dili kullanılır. SiRoP (Basit Robot Programlama).

Işık sensörlü robot kontrolü

Işık sensörü, robotun masa yüzeyinde gezinmesine, örneğin beyaz ve siyah alanlar arasındaki sınır boyunca (siyah çizginin kenarı boyunca) hareket etmesine olanak tanır. Bir fotodiyot yüzeyi aydınlatır, bir fotodedektör yansıyan ışınları "yakalar" ve yoğunluklarını ölçer.

Bu türün en popüler görevi bir çizgi boyunca ilerlemektir. Simülatörü kullanarak çeşitli kontrol yasalarını inceleyebilirsiniz - röle, orantısal ve hatta PID kontrolü (orantılı-integral-türev).

Işık sensörlü bir robot için program örnekleri

1 iken (sensör > 128 ise (motor = 100 motor = 0) aksi halde (motor = 0 motor = 100) bekle(10))

KP = 0,2 iken 1 ( u = kP*(sensor-128) motor = 50 + u motor = 50 - u wait(20))

Ana ( while 1 ( while sensör > 128 ( motor = 100 motor = 100 wait(10) ) back() turn() ) ) geri ( motor = -100 motor = -100 wait(260)) dönüş ( motor = -50 motor = 50 bekleme(50))

İki ışık sensörlü robot kontrolü

İki ışık sensörü, robotun ince bir çizgide daha iyi gezinmesine ve ilerlemesine olanak tanır. Biraz öne çıkarılırlar ve yanlara doğru yayılırlar. Tek sensörlü problemlerde olduğu gibi, bu simülatör çeşitli kontrol yasalarını incelemek için kullanılabilir.

Üç ışık sensörlü bir robot için program örnekleri

Dört ışık sensörlü robot kontrolü

Dört ışık sensörü, robotun keskin dönüşleri daha iyi algılamasını sağlar. İnce ayar için dahili sensörler kullanılır; bunlar için oransal kontrol kullanılır. İki harici sensör hafifçe öne doğru taşınarak yanlara doğru yayıldı. Keskin bir dönüşle karşılaşıldığında kullanılırlar. Harici çiftin sensörlerinin okumalarına dayalı kontrol kazancı, dahili çiftten daha büyük seçilir (bkz. L.Yu. Ovsyanitskaya ve diğerleri, Lego Mindstorms EV3 robotunun hat boyunca hareketi için algoritmalar ve programlar, M .: “Pero”, 2015).

Dört ışık sensörlü bir robot için program örnekleri

While 1 ( d0 = sensör > 128 d1 = sensör > 128 d2 = sensör > 128 d3 = sensör > 128 if d1 & !d2 ( motor = 100 motor = 0 ) if! d1 & d2 ( motor = 0 motor = 100 ) if d1 == d2 ( motor = 100 motor = 100 ) if d0 & !d3 ( motor = 30 motor = 0 ) if!d0 & d3 ( motor = 0 motor = 30 ) wait(10))

K1 = 0,2 k2 = 0,4 iken 1 ( u1 = sensör - sensör u2 = sensör - sensör motor = 50+k1*u1+k2*u2 motor = 50-k1*u1-k2*u2 wait(10) )

Bir robotun mesafe sensörü (sonar) ile kontrol edilmesi

Mesafe sensörü (sonar), robot hareket halindeyken en yakın engele olan mesafeyi belirlemenizi sağlar. Ultrasonik bir sinyal yayar ve yansıyan sinyali alır. Gönderilen ve alınan sinyaller arasındaki süre ne kadar uzun olursa mesafe de o kadar büyük olur.

Bir mesafe sensörü kullanılarak robot, şekli bilinen ancak boyutu bilinmeyen bir labirentte otomatik olarak gezinecek şekilde programlanabilir.

Bu problem klasiktir, ideolojik olarak basittir, birçok kez çözülebilir ve her seferinde kendiniz için yeni bir şey keşfedeceksiniz.

Çizgi takip problemini çözmek için birçok yaklaşım vardır. Bunlardan birinin seçimi, robotun özel tasarımına, sensörlerin sayısına, tekerleklere ve birbirlerine göre konumlarına bağlıdır.

Örneğimizde Robot Eğitimcisinin ana eğitim modeli temel alınarak üç robot örneği analiz edilecektir.

Başlamak için, eğitim robotu Robot Eğitimcisinin temel modelini bir araya getiriyoruz, bunun için aşağıdaki talimatları kullanabilirsiniz. yazılım MINDSTORMS EV3.

Ayrıca örnekler için EV3 ışık rengi sensörlerine ihtiyacımız olacak. Bu ışık sensörleri, diğerlerine benzemeyen şekilde işimize en uygun olanlardır; onlarla çalışırken çevredeki ışığın yoğunluğu konusunda endişelenmemize gerek yoktur. Bu sensör için programlarda, sensörün kırmızı arka ışığından yansıyan ışık miktarının tahmin edildiği yansıyan ışık modunu kullanacağız. Sensör okumalarının limitleri "yansıma yok" ve "tam yansıma" için sırasıyla 0 - 100 birimdir.

Örnek olarak, düz, açık renkli bir arka plan üzerinde gösterilen siyah bir yörünge boyunca ilerlemeye yönelik 3 program örneğini analiz edeceğiz:

· P regülatörlü bir sensör.

· PC regülatörlü bir sensör.

· İki sensör.

Örnek 1. P regülatörlü bir sensör.

Tasarım

Işık sensörü, model üzerinde uygun bir şekilde konumlandırılmış bir kirişe monte edilmiştir.


Algoritma

Algoritmanın çalışması, sensör aydınlatma ışınının siyah çizgiyle örtüşme derecesine bağlı olarak sensör tarafından döndürülen okumaların kademeli olarak değişmesi gerçeğine dayanmaktadır. Robot, ışık sensörünün siyah çizginin sınırındaki konumunu korur. Kontrol sistemi, ışık sensöründen gelen girdi verilerini dönüştürerek robotun dönüş hızı için bir değer üretir.


Gerçek bir yörüngede sensör tüm çalışma aralığı (0-100) boyunca değerler ürettiğinden, robotun ulaşmaya çalıştığı değer olarak 50 seçilir. -50 - 50 aralığı, ancak bu değerler yörüngenin dik bir şekilde dönmesi için yeterli değil. Bu nedenle aralığın bir buçuk kat -75 - 75'e genişletilmesi gerekiyor.

Sonuç olarak programda hesap makinesi işlevi basit bir orantısal denetleyicidir. Hangi işlevi ( (a-50)*1,5 ) ışık sensörünün çalışma aralığında grafiğe göre dönüş değerleri üretir:

Algoritmanın nasıl çalıştığına dair örnek

Örnek 2. PK regülatörlü bir sensör.

Bu örnek aynı yapıya dayanmaktadır.

Muhtemelen önceki örnekte robotun aşırı derecede sallandığını ve bunun yeterince hızlanmasına izin vermediğini fark etmişsinizdir. Şimdi bu durumu biraz iyileştirmeye çalışacağız.

Oransal kontrolörümüze, kontrolör fonksiyonuna biraz bükülme katacak basit bir küp kontrolör de ekliyoruz. Bu, robotun yörüngenin istenen sınırı yakınında sallanmasını azaltacak ve aynı zamanda ondan uzaktayken daha güçlü sarsıntılar yaratacaktır.

Orantılı kontrolör, bir nesnenin belirli bir x0(t) durumundan e(t) doğrusal sapması ile orantılı olarak bir nesne üzerinde u(t) kontrol eylemi uygulayan bir cihazdır;

e(t)=x0(t)-x(t), burada x(t) belirli bir andaki durumdur;

u(t)=ke(t), burada k büyütme faktörüdür.
Yani robot verilen rotadan ne kadar saparsa, motorların onu dengelemek için o kadar aktif çalışması gerekir.

P denetleyicisi kullanan bir ışık sensörüyle çizgi hareketi

Siyah ve beyazın sınırı boyunca hareket de P-regülatörü üzerine inşa edilebilir. Her ne kadar dışarıdan bakıldığında sorun yalnızca bir röle denetleyicisinin yardımıyla çözülebilir gibi görünse de, sistemin insan gözüyle görülebilen yalnızca iki durumu vardır: siyah ve beyaz. Ancak robot her şeyi farklı görüyor; onun için bu renkler arasında keskin bir sınır yok. Miyop olduğunu ve gri tonlarının degrade geçişini gördüğünü söyleyebiliriz.

Bir P-regülatörü oluşturmanıza yardımcı olacak şey budur.
Çalışma durumunu ışık sensöründen gelen okumalar olarak tanımlayarak, aşağıdaki yasaya göre motorlar üzerinde orantılı bir kontrol etkisi uygulamayı öğreneceğiz:
e=s1-gri, burada s1 mevcut sensör okumalarıdır ve gri de ayarlanan değerdir.

Katsayısı k (eşittir) bu örnekte 2) yeterince küçük olmalıdır (1'den 3'e kadar). Böyle bir regülatör yalnızca küçük sapma açılarında etkili bir şekilde çalışır, bu nedenle robotun, sensör siyah çizginin sol tarafında olacak şekilde hareket yönünde yerleştirilmesi gerekir. P-regülatörü üzerindeki hat boyunca hareketin düzgün olduğunu fark etmek kolaydır. ve bazı çalışma alanlarında neredeyse düz veya tam olarak çizginin kıvrımlarını takip ederek hareket eder.

Sensör kalibrasyonu

Formülde kullanılan 48 sayısına bakalım. Bu, ışık sensörünün siyah beyaz okumasının aritmetik ortalamasıdır, örneğin (40+56)/2=48. Ancak sensör okumaları sıklıkla değişir. çeşitli nedenler: farklı bir yüzey, odanın genel aydınlatmasında bir değişiklik, tasarımda hafif bir değişiklik vb. Bu nedenle ışık sensörü okumalarını beyaz ve siyah üzerinde belirleyerek robotu manuel olarak kalibre edeceğiz.

P denetleyicisi kullanan iki ışık sensörlü hat hareketi
Tek bir ışık sensörüyle bir kavşağı doğru şekilde yönlendirmek oldukça zordur. Bunu yeterince yüksek bir hızda yapmak istiyorsanız, iki çizgi genişliğinde (veya daha geniş) mesafeye yerleştirilmiş en az iki sensöre ihtiyacınız vardır.
Sürüş sırasında dört sensör durumu mümkündür:

  • her ikisi de beyaz - düz hareket ediyor;
  • sol (s1) siyah değil, sağ (s2) beyaz - sola hareket;
  • sol beyaz, sağ siyah - sağa hareket;
  • ikisi de siyah renkte - dümdüz.
O. eşit sensör okumalarıyla (her ikisi de beyaz veya her ikisi de siyah), robot düz hareket eder. Robotu başlatmadan önce her iki sensörü de otomatik olarak kalibre edeceğiz. Daha sonra bir P-regülatörüyle bir çizgi boyunca hareket etme algoritması şöyle görünecektir:

K katsayısı, çizginin eğriliğine, robotun manevra kabiliyetine ve sahadaki siyah ile beyaz arasındaki farka bağlı olarak oldukça geniş bir aralıkta (1'den 20'ye veya daha fazla) değişebilmektedir.
Önemli durum. Otomatik kalibrasyon tek renkli bir yüzey üzerinde ve tercihen yolun en büyük kısmını kaplayacak aydınlatma altında yapılmalıdır. Örneğin robot beyaz bir alanda siyah bir çizgi boyunca hareket ediyorsa beyaz alanda kalibre edilmesi gerekir. Onlar. Robotun başlangıçtaki konumu şu şekilde olmalıdır:


Ve bir not daha. Okumaları% 10-20 farklılık gösteren sensörler var. Bunları büyük katsayılı bir regülatörle eşleştirmemeniz tavsiye edilir, çünkü genel aydınlatmada keskin bir değişiklik olduğunda, tek tip bir beyaz alanda bile sapmalar farklı olabilir ve bu da beklenmedik sonuçlara yol açabilir. Ayrıntılar Yazar: Konovalov Igor     Oransal kontrolör bir gelişmedir. Rölenin en büyük dezavantajı akım değerlerinin sensörün normal değerinden ne kadar farklı olduğunu umursamamasıdır. Yalnızca iki durumu vardır - ya sensör değerlerini normal değerden düşükse belirli bir sabit sayı kadar artırmaya çalışın ya da artırın. Bu nedenle salınımlar sabit bir genlikte meydana gelir ve bu da çok verimsizdir.
    Mevcut okumaların normalden ne kadar “uzak” olduğunu belirlemek ve buna bağlı olarak genliği değiştirmek çok daha mantıklıdır. Daha açık hale getirmek için bir örneğe bakalım. Örnek, önceki makalede olduğu gibi aynı: Lego Mindstorms EV3'ten bir robot, ışık modunda bir renk sensörünü kullanarak siyah bir çizgi boyunca ilerliyor.

Robot beyaz ve siyah arasındaki sınır boyunca ilerlemeye çalışıyor ve orada sensör aydınlatmanın yaklaşık %50'sini gösteriyor. Ve normal konumdan ne kadar uzaklaşırsa robot %50'ye dönmek için o kadar fazla çaba harcar.
    Bir program yazmak için “hata” ve “kontrol eylemi” terimlerini kullanacağız. Hata, mevcut sensör okuması ile normal olan arasındaki farktır. Bizim durumumuzda robot artık aydınlatmanın %20'sini görüyorsa hata 20-50 = -%30 olur. Hata işareti robotun hatadan kurtulmak için hangi yöne dönmesi gerektiğini gösterir. Artık motorlara robotun hangi yöne, hangi hızda ve ne kadar keskin bir şekilde dönmesi gerektiğini söylememiz gerekiyor. Motorlara bir kontrol etkisi uygulamak gerekir, bu da ne kadar hızlı bir şekilde normal konumuna dönmesi gerektiği anlamına gelir. Kontrol eylemi (UP), hatanın (hata) orantı faktörü (k) ile çarpılmasıyla hesaplanır. Bu katsayı, hatanın kontrol eylemi üzerindeki etkisini arttırmak veya azaltmak için kullanılır. Kontrol eylemi şuraya sağlanır: direksiyon Robotun ortalama hızının ayarlandığı yer.
    Orantılılık faktörü nasıl ayarlanır? Değerleri deneysel olarak seçin; yörüngeyi hareket ettirmek için robotun hızına ve tasarımına bağlı olarak örneğin 0,2 ila 1,5 arasında olabilir. Katsayı çok büyükse robot çok fazla yalpalayacak; küçükse sorunsuz bir şekilde hareket edecek, ancak bir noktada yetersiz kontrol girişi nedeniyle dönerken kayacaktır. Programın iki versiyonunu yazalım - değişkenli (onları daha önce incelemiş olanlar için) ve değişkensiz.


    Ancak bu düzenleyici orantısal ve integral bir bileşen getirilerek de güçlendirilebilir; açıklaması aşağıdaki makalelerde olacaktır. Yakında görüşürüz!

Oransal kontrolör

Tanım

Otomatik kontrolde, kontrol eylemi u(t) genellikle dinamik hatanın bir fonksiyonudur - kontrol edilen değişken x(t)'nin ayar değeri x0(t)'den e(t) sapması:

e(t) = x0(t) – x(t).

Bu, Polzunov-Watt'ın sapma yoluyla düzenleme ilkesi veya geri bildirim ilkesidir. İstenilen kontrol eylemi u0(t)'nin kontrolör tarafından ölçülen büyüklüklere fonksiyonel bağımlılığının matematiksel ifadesine yukarıda tartışılan yasa veya kontrol algoritması denir.

Orantılı denetleyici, bir nesnenin belirli bir durumdan sapması ile orantılı olarak kontrol etkisi uygulayan bir cihazdır:

Burada k kontrolör kazancıdır.

Verilen x0 durumu genellikle ayar noktası olarak adlandırılır ve bundan sapma e, artık olarak adlandırılır. Aşağıda kesinlik sağlamak amacıyla, artığı err kısaltmasıyla göstereceğiz ( İngilizce kelime"hata" - hata).

Motor kontrolü

Deneyimli bir savaşçı, röle kontrol cihazındaki bir robotun yaptığı gibi kılıcını sallamayacaktır. Kılıcı tutan motoru kesinlikle sabit bir konumda tutacak bir algoritma bulmamız gerekiyor (Şekil 7.1). P-regülatörü bu konuda yardımcı olacaktır.

E 1'in - A motorundaki hız sensörünün 1 okumaları - ayarlanabilir bir değişken olmasına izin verin. Ayar x0 = 45 ve kalan e = 45 – e 1. Daha sonra motor üzerindeki kontrol eylemi formülle verilir.

sen = k ∙ (45 – e 1).

Burada k, ayar noktasından küçük sapmalarda bile motor tepkisini artıracak kazanç faktörüdür (örneğin 5).

1 Artık e'nin (hatadan) matematiksel gösterimini, önceden tanımlanmış bir Robolab ortam değişkeni olan kodlayıcı e 1'in (kodlayıcıdan) okumalarıyla karıştırmayın.

Eğer bir sapma varsa olumlu taraf motora negatif bir kontrol girişi uygulanacaktır ve bunun tersi de geçerlidir. Bu kontrol, kontrolörün yükünü hafifletmek için motora 1-10 ms'lik kısa bir gecikmeyle bir döngü halinde uygulanabilir (Şekil 7.8).

Pirinç. 7.8. Oransal denetleyici kullanan motor kontrol algoritması.

Kazanç faktörünün 5'ten 100'e çıkarılması durumunda oransal denetleyicimiz röle görevi görmeye başlayacak ve aşma etkisi nedeniyle güçlü dalgalanmalara neden olacaktır.

RobotC dili, Robolab'da olduğu gibi kodlayıcı okumaları için bu kadar kullanışlı bir gösterime sahip değildir, bu nedenle program biraz daha uzun görünür:

int k=5, u; nMotorEncoder=0; süre (doğru)

u=k*(45-nMotorEncoder); motor=u;

Ayrıca “kılıçla vuruş” yapmak için 45 sayısı yerine bir değişkene sahip olmak ve değerini dışarıdan, örneğin paralel bir görevden değiştirmek yeterlidir. Bu, Bölüm 8'deki robot davulcularla ilgili bölümde ele alınmaktadır.

Şimdi motorun sadece statik konumunu değil aynı zamanda hareket hızını da kontrol eden bir regülatör inşa edelim. Algoritmanın mantığını takip edersek şu ana kadar sabit olan ve değişmeyen set noktasının artma veya azalma yönünde hareket etmeye başlaması gerekir. Regülatöre itaat eden motor kaçınılmaz olarak onu takip edecektir. Ayar noktası değerini sürekli olarak artırmak için en basit araç bir zamanlayıcıdır.

NXT kontrol cihazında her biri zamanı saniyenin onda biri, yüzde biri ve binde biri cinsinden ölçebilen dört yerleşik zamanlayıcı bulunur. Saniyede 10 "ipucu" gerçekleştiren ilk zamanlayıcıda ustalaşalım.

kov". Robolab'da T1 veya Timer100ms1 olarak adlandırılır ve RobotC'de timer100'dür.

Önceki örnekte 45'te belirtilen motor sapma açısını alfa, hızlanma katsayısı k 2 ile zamanlayıcının okumalarına bağlı olarak yapalım:

alfa = k2 ∙ T1.

Kontrol eylemi amplifikasyon faktörü k 1 ile aynı kalacaktır:

u = k 1 ∙ (alfa – e 1).

Kısaca Robolab dilindeki programda, daha önce zamanlayıcıyı başlatmış olarak kontrol eylemini doğrudan motora uygulayacağız.

Pirinç. 7.9. Motor hız kontrolü saniyede bir devirdir.

K 2 = 36 katsayısı, bir saniyede alfa değerinin 360'a yükseldiğini belirler; bu, motorun bir tam devrine karşılık gelir:

int k1=2, k2=36, u, alfa; nMotorEncoder=0; ClearTimer(T1); süre (doğru)

alfa=zamanlayıcı100*k2; u=k1*(alpha-nMotorEncoder); motor=u;

Tamsayı tipindeki değişkenler için C dilinde (ve Robolab'da) benimsendiği gibi tamsayı bölmeyi kullanarak, açıda ayrık bir değişiklik elde etmek mümkündür; saniyede bir artırır:

alfa = T 1 / 10 ∙ k 2.

k 2 = 60 katsayısı ile ışının hareketi saat kadranındaki saniye ibresinin hareketine karşılık gelecektir. Ama bu yeterli değil

dikkat çekici. Açıklık sağlamak için, k2 = 30'u ayarlayabilirsiniz, ardından ok, her biri 30 derecelik 12 "tik" ile tam bir dönüş yapacaktır. Tamsayı bölme ve çarpma işlemlerinin sırasına dikkat edin; bunların sırasını değiştirmek veya "azaltmak" sonucu kesinlikle değiştirecektir (Şekil 7.10).

Pirinç. 7.10. Bir saat ibresinin hareketinin hızlandırılmış taklidi.

Ve son olarak bir matematik davulcusu örneği. İğne sürekli ileri doğru hareket etmek yerine, P-regülatörünün kontrolü altında ileri geri salınacaktır. C'de % işaretiyle gösterilen kalanla bölme işlemi bu konuda yardımcı olacaktır. Negatif olmayan bir tam sayının 2'ye bölümünden kalan her zaman 0 veya 1 olacaktır:

alfa = T %1 2 ∙ k 2.

Sapmayı k 2 = 15 kat artırarak, kontrol cihazını motoru saniyede 5 kez, 0° veya 15 derece hareket ettirmeye zorlayacak salınımlı bir ayar noktası alfa elde ederiz. Programdaki değişiklikler önemsizdir. RobotC'deki bir örneğe bakalım:

int k1=3, k2=15, u, alfa; nMotorEncoder=0; ClearTimer(T1); süre (doğru)

alfa=zamanlayıcı%1002*k2; u=k1*(alpha-nMotorEncoder); motor=u;

Bu prototip davulcu düzenli aralıklarla masaya vuruyor. Önemli olan doğru pozisyonda başlamaktır. Tamsayı matematiğini kullanarak daha karmaşık bir ritmik kalıp ayarlayabilirsiniz, örneğin (Tablo 7.1):

alfa = T %1 %5 2 ∙ k 2.

merkez = S3.

Katsayı döngüde belirlenir:

k 1 = c + (S 3 - merkez) / k 2.

Pirinç. 7.36. Değişken katsayılı oransal kontrolör üzerinde çizgi boyunca hareket.

Ortaya çıkan kazanç kontrol yasası yalnızca orantısal bileşene değil, aynı zamanda diğer herhangi bir bileşene ve ayrıca bir bütün olarak kontrol eylemine uygulanabilir (Şekil 7.36).

PID denetleyicisi

Orantılı-integral-türev (PID) denetleyicisi en popülerlerden biridir ve en çok sayıda cihazda kullanılır. farklı türler Sistemin hızlı yanıt vermesini ve konumlandırma doğruluğunu gerektiren. Adından da anlaşılacağı gibi bu regülatör üç bileşenin toplamından oluşur ve Şekil 2'de grafiksel olarak gösterilmektedir. 7.37.

Pirinç. 7.37. PID denetleyici devresi.

Bu basitleştirilmiş bir diyagramdır. Dinamik hata e(t)'nin değeri kontrolör girişine sağlanır ve çıkışta kontrol eylemi u(t) oluşturulur:

sen (t) = p + ben + d = k p ∙ e (t) + k ben ∙ ò t

e (τ)d τ + k d ∙

de.

Diyagramda üçgen olarak gösterilen orantısal bileşen, sistemin belirli bir duruma konumlandırılmasından sorumludur. Bazı durumlarda, daha sonraki kendi kendine salınımlarla aşırıya kaçmaya neden olabilir. Yani, P-regülatörü "aşırıya kaçabilir" ve robot bir yandan diğer yana sürüklenmeye başlayacaktır.

İntegral bileşen, olumsuz deneyimleri biriktirir (hataları toplar) ve telafi edici bir etki yaratır. Minimum sapmalarla orantısal bileşen "zayıflar" ve integral bileşen, toplama yoluyla hızlı artışı nedeniyle kontrollü değerin ayar noktasına "ulaşılmasına" yardımcı olur.

Diferansiyel bileşen (D bileşeni), sistemin durumundaki değişim hızını izler ve olası aşmayı önler. Bazı durumlarda, D bileşeni orantılı olanın işareti bakımından zıttır, diğerlerinde ise çakışır.

Oransal bileşeni zaten biliyoruz, diferansiyel olanı önceki 6. bölümde anlatılmıştı. Haydi integrali ele alalım. Bu bileşen dinamik olarak belirlenir ve önceki değerle toplanır:

i = i + ki × e(t) × dt.

e (t) × dt miktarının fiziksel anlamı şudur:

sistemin hata durumunda kalma süresiyle orantılıdır. k i katsayısı parantezlerin dışına alındığı için i değerinden hata sürelerinin toplamı olarak bahsedebiliriz. Böylece integrali toplama yoluyla buluyoruz.

İki tekerlek üzerinde dengeleme yapan bir robot örneğini kullanarak bir PID denetleyicinin kullanımını ele alalım. Bu klasik problem, farklı sensörler kullanılarak çeşitli şekillerde çözülebilir. Önerilen örnekte bir ışık sensörü kullanılmış ve en basit biçim PID denetleyicisi. Ancak robot stabilizasyonunun sağlanması, daha doğru sensör okumalarının kullanılmasını gerektirecektir.

RAW formatı

Sensör verileri NXT kontrol cihazına işlenmemiş, ham formda girer. Tüm sensörler iletir işletim sistemi 0 ila 1023 arasında bir dijital değer, daha sonra ilgili sürücü tarafından işlenir ve daha anlaşılır bir forma indirgenir (mesafe 0...255, aydınlatma 0...100, dokunma 0 veya 1, vb.). Ancak veriler sürücüyü atlayarak doğrudan alınabilir. Bu ham formata genellikle RAW adı verilir (İngilizce "ham"dan gelir). Bazı durumlarda daha fazla doğruluk elde etmek için kullanılabilir. Örneğin ışık sensörü değerlerinin aralığı yaklaşık 10 kat artabilir. Daha fazla kullanılan bu fırsattır.

Hem Robolab hem de RobotC'de RAW formatında veri alabilirsiniz. Bunu yapmak için sensör uygun şekilde başlatılır ve veriler önceden tanımlanmış özel bir değişken kullanılarak ondan okunur.

Dengeleme robotu

Segway robotunun tasarımı Şekil 2'de gösterilmektedir. Şekil 7.38: dikey olarak konumlandırılmış kontrol ünitesi, yakın yerleştirilmiş tekerlekler ve aşağıya bakan ışık sensörü. Algoritma biraz daha karmaşık olacak.

Segway'i dengeli bir pozisyonda sabitleme prensibi aşağıdaki gibidir. Robot öne eğilirse, yansıyan ışık nedeniyle ışık sensörü okuması artar. Buna yanıt olarak robotu ileri doğru hareket etmeye ve dolayısıyla tekrar dikey pozisyon almaya zorlayan bir kontrol eylemi oluşturulur.

Geriye doğru hareket ederken sensör okumaları azalır ve robot geriye doğru hareket etmeye başlar. Tüm bunlardan orantısal bileşen sorumludur. İntegral ve diferansiyel bileşenlerin rolü, aşıma karşı sigorta tarafından oynanır.

Pirinç. 7.38. Segway robotunu dengeleme.

Şek. 7.39, Robolab'daki algoritmayı göstermektedir. Çoğu değişkenlerin başlatılmasıyla meşgul. Doğruluğu artırmak için, yalnızca sensör verileri RAW formatında okunmaz, aynı zamanda değişkenlerin çoğu gerçek kayan formatta bildirilir. PID algoritmasının kendisi bir döngü içerisindedir.

Pirinç. 7.39. Dengeleyici algoritması bir PID denetleyiciye dayanmaktadır.

Çizgi boyunca hareket etme geleneğini takip ederek, gri değişkeni bir ayar noktası olarak kullanırız; bu, denge konumundaki ışık sensörünün ortalama okumalarıdır. Yeni ölçek parametresi, kontrol eyleminin ölçeklendirmesini belirtir. Bu aslında bir zayıflama faktörüdür çünkü regülatör tarafından üretilen değer NXT motorları için çok yüksektir. Mevcut katsayıların içine eklemek mümkün olacaktır ancak RobotC için bu parametre farklı olacaktır ancak katsayılar aynı olacaktır.

Verilen katsayılarla robot düz, açık renkli bir muşamba veya masa üzerinde iyi bir şekilde dengelenir. Yani ihtiyacı yok beyaz yüzeyler. Başlatmak için Segway'i doğru bir şekilde denge konumuna ayarlamanız gerekir. Robot ileri veya geri bir miktar eğimle başlarsa hemen eğim yönünde hareket etmeye başlayacaktır.

RobotC'deki benzer bir örnek, çeşitli nedenlerden dolayı biraz farklıdır. Öncelikle NXT'nin bu ortamın firmware'i ile performansı Robolab'ınkinden yaklaşık 1,4 kat daha yüksektir, bu nedenle ölçek faktörünün arttırılması gerekir. İkinci olarak RAW değerleri aktarılır. doğru sırayla ve motorları tersine çevirecek şekilde ayarlamanız veya basitçe bir negatif kontrol eylemi uygulamanız gerekecektir:

int grey=SensorRaw; int hata, hata=0;

float kp=25, ki=350, kd=0.3; kayan ölçek=14;

kayan nokta dt=0,001; float p, i=0, d, u; iken (doğru)

err= grey-SensorRaw; //Ters işaretli sapma p=kp*hata;

i=i+ki*hata*dt; d=kd*(hata-hata)/dt; hata=hata; u=(p+i+d)/ölçek; motor=u; motor=u; wait1Msec(1);

Okulda otomatik kontrol teorisinin unsurları1

Önemli ve ilginç bir metodolojik görev, bir uzmanın ve öğrencinin bilgi alanları arasında "bir köprü kurmak", okul öğrencilerinin gelecekteki bir uzmanlık alanını görmelerine yardımcı olmaktır; kariyer rehberliğini yürütürler ve öğrenciler kendi kariyer rehberliklerinin pratik uygulanabilirliğini görürler mesleki bilgi. Benzer bir etki elde etmek için, düzenleyicilerin hesaplanmasına yönelik yöntemler, matematiksel araçların ötesine geçmeyen matematiksel araçlar kullanılarak geliştirildi. okul programları matematik ve fizikte. Özellikle, bunun yerine diferansiyel denklemler Bilgisayar kontrolünde nesne ile kontrolör arasındaki etkileşimin ayrık doğasına iyi karşılık gelen farklar kullanılır.

Örneğin, mobil bir robotun duvar boyunca hareketinin kontrol edilmesi probleminde orantılı (P) ve orantısal-türevli (PD) kontrolörlerin oluşturulması problemini ele alalım. t = 0, 1, 2 olmak üzere sırasıyla robot ile duvar arasındaki mesafeyi x t ile, θt ile robotun yön açısını ve u t ile - o andaki kontrol eylemini t seri numarası ile gösterelim. ... - değişim anlarının sayısı

renyum. Sensörlerin yoklanmasının ve kontrol eyleminin büyüklüğündeki değişikliklerin eşit h zaman aralıklarında gerçekleştirildiğine inanılmaktadır. Lego NXT robotlarının kontrol görevleri için kontrol eyleminin fark olduğunu varsaymak doğaldır. açısal hızlar yön açısının değişim hızıyla orantılı tekerlek dönüşü:

Nominal θt =0'dan rota sapmalarının küçük olduğu ve robotun ortalama hızının sabit olduğu varsayılırsa: vt=v, robotun durum değişkenlerindeki değişikliklerin dinamiği bir ilk yaklaşımla tanımlanabilir. doğrusal denklemlerşunu belirtir:

burada g = h2vr / b.

Duvara istenilen mesafeyi x*>0 olarak ayarlayalım ve şu bağıntı ile kontrol hedefini (CT) belirleyelim.

xt → x*, t→∞ olarak.

Şimdi doğal olarak asimptotik kararlılık kavramını asimptotik stabilite kavramını sistem (4) çözümlerinin bir özelliği olarak tanıtalım ve hedef değerden (5) çok az farklı olan herhangi bir başlangıç ​​koşulu altında hedef değere (5) ulaşılmasını garanti edelim. u t = 0 için denklem (4)'ün çözümünün herhangi bir x t = x* sabit değeri olduğunu görmek kolaydır. Ancak çift integratör (çift toplayıcı) modeline karşılık gelen denklem (4) asimptotik kararlılık özelliğine sahip olmadığından, kontrol merkezi (5) sürekli yönetim ulaşılamıyor. Bu, bir takım hususların özetlenmesiyle analitik olarak kolaylıkla kanıtlanabilir.



 


Okumak:



Bütçe ile yerleşimlerin muhasebeleştirilmesi

Bütçe ile yerleşimlerin muhasebeleştirilmesi

Muhasebedeki Hesap 68, hem işletme masraflarına düşülen bütçeye yapılan zorunlu ödemeler hakkında bilgi toplamaya hizmet eder hem de...

Bir tavada süzme peynirden cheesecake - kabarık cheesecake için klasik tarifler 500 g süzme peynirden Cheesecake

Bir tavada süzme peynirden cheesecake - kabarık cheesecake için klasik tarifler 500 g süzme peynirden Cheesecake

Malzemeler: (4 porsiyon) 500 gr. süzme peynir 1/2 su bardağı un 1 yumurta 3 yemek kaşığı. l. şeker 50 gr. kuru üzüm (isteğe bağlı) bir tutam tuz kabartma tozu...

Kuru erikli siyah inci salatası Kuru erikli siyah inci salatası

Salata

Günlük diyetlerinde çeşitlilik için çabalayan herkese iyi günler. Monoton yemeklerden sıkıldıysanız ve sizi memnun etmek istiyorsanız...

Domates salçası tarifleri ile Lecho

Domates salçası tarifleri ile Lecho

Kışa hazırlanan Bulgar leçosu gibi domates salçalı çok lezzetli leço. Ailemizde 1 torba biberi bu şekilde işliyoruz (ve yiyoruz!). Ve ben kimi...

besleme resmi RSS