PID parametrelerini anında otomatik olarak nasıl ayarlayabilirim?


15

Geri bildirimi gerçekleştirmek için bir MCU uygulanan PID denetleyicisi kullanan basit bir servo sistemi var. Ancak, sistemin özellikleri dinamik olarak değişir ve bu nedenle PID parametreleri hiçbir zaman tüm koşullar için ayarlanamaz.

Robotum, buna benzer, geri sürülebilir elektrik motorlarına sahip hafif bir kol:

Hafif robot kolu

Kol, ağır ağırlıkların alınması, masa boyunca nesnelerin itilmesi ve çekilmesi dahil olmak üzere çeşitli görevleri yerine getirir. Bu görevlerin her biri, kolayca tahmin edemediğim farklı PID ayarlama parametreleri gerektirir.

Gerçekten istediğim, kolun davranışına yanıt olarak parametreleri dikkatlice ayarlayabilen daha yüksek seviye bir işlev için. Örneğin, kolun salındığını fark ederse, P'yi azaltabilir ve D'yi artırabilir. Veya kolun hedefine ulaşmadığını fark ederse, I'yi artırabilir.

Bu algoritmalar var mı? Algoritma parametreleri hemen mükemmelleştirmeseydi bile mutlu olurum. EG, parametreler yeni değerlerine ayarlanmadan önce kol birkaç kez salınabilir.

Yanıtlar:


10

Bir iş arkadaşı ve ben bir kez bir motor için akım kontrol döngüsünün PID parametrelerinin anında ayarlanması için bir simpleks algoritması uyguladık . Temel olarak algoritma bir kerede bir parametreyi değiştirir ve daha sonra iyilik ölçümüz olan bazı geri bildirim parametresinde veri toplar. Bizimki mevcut hedef ayar noktasından sapma yüzdesiydi. Feedback parametresinin daha iyi veya daha kötü olup olmadığına bağlı olarak, bir sonraki parametre buna göre değiştirildi.

Veya Wikipedia'da konuşun:

Bir doğrusal program kanonik bir tabloyla verilsin. Simpleks algoritması, her biri gelişmiş bir temel uygulanabilir çözüm veren ardışık pivot işlemleri gerçekleştirerek ilerler; her adımda pivot elemanının seçimi büyük ölçüde bu pivotun çözeltiyi geliştirmesi şartı ile belirlenir.

Teknik olarak bir tür simpleks olan Nelder-Mead yöntemini kullandık. Ayrıca, optimum çıkış parametresi ararken giriş parametrelerini nasıl değiştirdiğini izlerseniz tepe tırmanma algoritması olarak da tanımlanabilir .

Nelder-Mead animasyonu

Nedler-Mead bizim durumumuzda en iyi şekilde çalıştı çünkü bir ayar noktasını kovalayabilir. Bu önemliydi çünkü tork talebi arttıkça mevcut hedef ayar noktamız değişti.

Nelder-Mead tekniği durağan olmayan noktalara dönüşebilen buluşsal bir arama yöntemidir


varsa yaklaşımınızı ve sonuçlarınızı bağlayabilir misiniz?
SPRajagopal

@SPRajagopal Üzgünüm ama hayır. Artık bu şirket için çalışmıyorum ve hiçbir veriye erişimim yok.
embedded.kyle

4

Böyle bir sorun için iyi bir yaklaşıma uyarlamalı kontrol denir. Kısacası, modelin bilindiğini varsayan bir kontrol metodolojisidir ancak modelin parametreleri (kütle, atalet vb.) Bilinmemektedir. İşi bilinmeyen parametreleri tahmin etmektir. Wikipedia hakkında kısa bir tanıtım bulabilirsiniz . Robotik: Modelleme, Planlama ve Kontrol metni Siciliano ve ark. konuyu daha ayrıntılı olarak ele alalım.

@Rocketmagnets sorgusuna yanıt olarak düzenleyin:

Kısacası, sisteminizin matematiksel bir modeline, yani sisteminizin zorlandığında veya başka bir şekilde zaman içinde nasıl geliştiğini açıklayan denklemlere sahip olmalısınız, ancak çeşitli bileşenlerin kütlesi, ataletleri vb. Gibi dinamik parametreleri bilmenize gerek yoktur. .. Bu parametreleri tahmin etmek adaptif kontrolörün görevidir. Bununla birlikte, bilinmeyen parametrelerin her biri için bir ilk tahmin vermeniz gerekir. Daha sonra sistem çalışırken, bilinmeyen parametre değerlerini güncellemek için kontrol sinyallerini, çıkış sinyallerini ve doğrusal regresyon veya degrade iniş gibi bir yöntem kullanır. Zaman içinde parametreler, gerçek parametrelerle eşleşmese de sabit bir duruma neden olacak değerlere yakınlaşacaktır, yani kütleyi yanlış alabilir, ancak değer yine de çalışacaktır.

Buradan yöntemi tartışan bir metne atıfta bulunmanızı tavsiye ederim. Örneğin, Dr. Marc Bodson'un Uyarlamalı Kontrol: İstikrar, Sağlamlık ve Yakınsama'nın web sitesinde PDF biçiminde bir kopyasını sunduğunu fark ettim .


Yöntemin bir açıklamasını verebilir misiniz?
Rocketmagnet

1
Bu yöntemi henüz yeni öğrendiğim için adalet yapabileceğimden şüpheliyim. Dahası, bu tek bir yöntem değil, son 50 yıldır geliştirilen bir teknikler topluluğudur. Ancak biraz daha ayrıntıya vereceğim yanıtı düzenleyeceğim.
DaemonMaker

2

Tanımladığınız işlem, uyarlanabilir PID olarak bilinir.

Gerçi biraz abartılı görünüyor. Dışsal bozukluklarla uğraşırken PID'nin oldukça sağlam olduğunu gördüm ve tarif ettiğiniz görevler tek bir kazanım kümesinin yeteneklerinin ötesinde görünmüyor.


Bunlar sadece dışsal rahatsızlıklardan daha fazlasıdır. Bunlar eklemin özelliklerindeki değişikliklerdir. Örneğin, robotun kütlesinin iki katına çıkarılması aşmaya neden olur.
Rocketmagnet
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.