Ayarlayıcılar için genetik algoritma kullanma


9

Doğrusal olmayan sistemleri (örneğin doğrusal olmayan sarkaç) kontrol etmek için bazı makaleler okudum . Doğrusal olmayan sistemleri hedeflemek için çeşitli yaklaşımlar vardır. En yaygın olanları geribildirim doğrusallaştırma , geri adım atma ve kayan mod kontrolörleridir.

Benim durumumda, basit bir sarkaçın doğrusal olmayan modelini ve C ++ 'da diğer manipülatör problemlerini kontrol etmenin teorik ve pratik kısımlarını yaptım. Sarkaç için açısal yer değiştirme ve hız için izleme görevini çözmek için bir geri adım atma denetleyicisi kullandım. Sonuçlar

θ¨+(k/m)θ˙+(g/L)sinθ=u

burada ve .m=0.5,k=0.0001,L=.2g=9.81

Grafik 1

Grafik 2

Sonuçlar iyi. Ancak, denetleyicinin ayarlanması zaman alıcıdır. Makalelerin çoğu PD, PID ve geri adım atma denetleyicileri gibi denetleyicilerini ayarlamak için genetik algoritmalar kullanır . Ben bu alanda clueless ve umarım en azından basit bir sarkaç kontrol etmek için bir MATLAB örneği varsa, birisi bu kavram biraz ışık tutuyor umuyoruz.

Şimdiye kadar denetleyiciyi manuel olarak ayarlamak için C ++ / Qt'de basit bir GUI tasarladım. Aşağıdaki resimde, adım fonksiyonu için kontrolörün yanıtı.

Denetleyici ayarlama uygulamasının GUI'sinin ekran görüntüsü

Yanıtlar:


1

Parametre ayarlama için evrimsel yöntemler (GA bunlardan biridir) gerçekten kontrol alanında yaygın bir yöntemdir [1]. Özellikle doğrusal olmayan sistemler için, optimum parametreler için analitik çözümlerin bulunması zor olabilir. Evrimsel yöntemler, optimal parametreye yakın bir aramayı verimli bir şekilde gerçekleştirmenin bir yoludur.

Yaygın olarak kullanılan çok başarılı ve evrensel bir yöntem CMA-ES'dir . MATLAB dahil olmak üzere çok sayıda uygulama var. Çeşitli şekillerde kutup dengelemesinin genellikle bir ölçüt olarak kullanıldığını biliyorum.

Algoritmayı uygulamak genellikle o kadar zor değildir. Sonuçlarınızın performansını derecelendirin - buna EA'daki fitness fonksiyonu denir - genellikle en çok dahil olan kısımdır.

[1] PJ Fleming, RC Purshouse, Kontrol sistemleri mühendisliğinde evrimsel algoritmalar: bir anket, Kontrol Mühendisliği Uygulaması, Cilt 10, Sayı 11, Kasım 2002, Sayfa 1223-1241, ISSN 0967-0661, http: //dx.doi. org / 10.1016 / S0967-0661 (02) 00081-3 .


GA hakkında okumaya değer olduğunu düşündüğünüz iyi bir kitapla karşılaştınız mı?
CroCo

8

Genetik algoritmalar, bir kullanıcının bir sistemi 'ince ayar' yapma ihtiyacını ortadan kaldıran ve bunun yerine bir bilgisayarın sistemi nasıl ayarlayacağını anlamasına izin veren bir makine öğrenme tekniğidir. Bu yaklaşımın faydaları, araştırmacıların / kullanıcıların zamanını serbest bırakması ve genellikle araştırmacının / kullanıcının kendi başarabileceğinden daha iyi ayarlanmış bir sisteme yol açabilmesidir.

Genetik bir algoritma kullanma fikri, aşağıdaki gibi bazı temel kontrol akışlarını izleyecektir:

Create_X_Number_Of_Random_Controllers()
while (Not_Yet_Satisfied_With_tuning)
    Score_Each_Controller_Based_On_Performance()
    Remove_Lowest_Performing_Controllers()
    Create_New_Controllers_By_Mixing_Best_Performers()
    Add_Slight_Randomness_For_Evolution()
Display_Top_Performer()

Pratikte bu prensibi kolayca gösterebileceğim en iyi örnek, bir rota üzerinde sürüş yapabilen araçları tasarlamak için genetik evrimi kullanan bu 'oyun'. Aynı fikir, herhangi bir ayarlama yapmak zorunda kalmadan ince ayar yapmak istediğiniz herhangi bir sistem için de geçerlidir. Örnek: http://rednuht.org/genetic_cars_2/


@CroCo'nun genetik bir algoritma kullanarak anlamı buysa, Ziegler Nichols ayar yöntemi uygulamak için harika bir aday olacaktır, çünkü güzel prosedüreldir.
SteveO

@CroCo'nun başka ne anlama geldiğini göremiyorum, ancak Ziegler Nichols ile ilgili sorun, genetik bir algoda olduğu gibi sistemin herhangi bir yönünü değiştirebileceğiniz ve 'evrim geçireceği' bileşenlerden birini ayarlamanızı gerektirmesidir. kaba iş yapmak zorunda olmadan geliştirici olmadan maç
beeedy

1
Bu cevap hala bunu başarmak için genel bir süreç olarak duruyor. Genetik Algoritmalar, bütün bir çalışma alanıdır ve karmaşıktır, ancak kısa bir yanıtla gerçekten açıklamak için, ancak modellerinizi ayarlamak için kullanmak istiyorsanız, bunları okumanızı tavsiye ederim!
beeedy

2
Aşırı ayarlama yaparken dizeyi oldukça mutlu eden kötü sınırlı bir genetik algoritma hayal ediyorum.
Ramrod

1
@octopus'un belirttiği gibi, bilgisayarın ayarlamaya çalıştığınız cihazı fiziksel olarak kontrol etmesine izin vermek için uzun bir süre izin vermek istemiyorsanız, gerçek fizik ekipmanı ile elde etmek zordur, o zaman bile izleyen bazı 'koruyucu' programa ihtiyacınız vardır ve her denetleyiciyi performansa göre puanlar ve makineye zarar vermeyeceğini doğrular. Tüm bunlar, genetik algoritmaları uygulamak için çok fazla okuma alacak nispeten karmaşık bir görevdir, bu küçük bir görev değildir.
beeedy

2

Genetik algoritma dediğin şeyle kafam karıştı. PD, PID vb. Kontrolörler sezgisel veya stokastik yöntemler değildir ve evrimsel algoritmalara dayanmazlar. Bunun yerine, istenen performansı (hata minimizasyonu, tepki hızı, çökme süresi, kararlılık ve bozulma reddi) sağlamak için bir sistem tepkisinin kutuplarının ve sıfırlarının yerleştirilmesine izin vermeyi amaçlayan deterministik algoritmalardır. Bence Kuo'nun Otomatik Kontrol Sistemleri kitabı iyi bir öğrenme referansı . Raven'ın Otomatik Kontrol Mühendisliği kitabında daha az titiz bir muamele bulabilirsiniz .


Genetik algoritmayı (GA) tanımıyorum. Bazı kağıtların denetleyicilerinin ayar kısmının GA kullanılarak yapıldığını iddia ettiğini gördüm. Bu konuyla ilgili makalelerinde daha fazla ayrıntı yoktur. GA'nın ne olduğunu ve onu nasıl kullanabileceğimi bilmiyorum.
CroCo

Parametre ayarlama için evrimsel yöntemler kullanmak çok yaygın bir tekniktir. Açıkladığınız analitik yaklaşımlara alternatif bir yöntem olarak düşünürdüm.
Jakob
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.