SmartDashboard ile PID Ayarı

PID (Orantılı, İntegral, Diferansiyel), bir ayar noktasına mümkün olan en hızlı şekilde ulaşmak için sensör geri bildirimine dayalı olarak motor hızını belirleyen bir algoritmadır. Örneğin, önceden belirlenmiş bir konuma hareket eden bir asansöre sahip bir robot, orada olabildiğince hızlı hareket etmeli ve ardından salınıma yol açan aşırı aşma olmadan durmalıdır. PID denetleyicinin bu şekilde davranmasını sağlamak “ayarlama” olarak adlandırılır. Buradaki fikir, mekanizma geri besleme elemanının mevcut değeri ile istenen (ayar noktası) değeri arasındaki fark olan bir hata değerini hesaplamaktır. Kol durumunda, kolun pozisyonuyla orantılı bir voltaj sağlayan bir analog kanala bağlı bir potansiyometre olabilir. İstenilen değer, kolun hareket etmesi gereken konum için önceden belirlenmiş voltajdır ve mevcut akım değeri, kolun gerçek konumu için olan voltajdır.

LiveWindow ile ayar noktası değerlerini bulma

Seting a motor's speed with LiveWindow.

Her mekanizma için geri bildirimli bir PID Alt Sistemi oluşturun. PID Alt Sistemleri, aktüatörü (motor) ve geri bildirim sensörünü (bu durumda potansiyometre) içerir. Alt sistem sensörlerini ve aktüatörleri görüntülemek için Test modunu kullanabilirsiniz. Kaydırıcıyı kullanarak aktüatörü istenen her konuma manuel olarak ayarlayın. İstenen konumların her biri için sensör değerlerini (2) not edin. Bunlar, PID kontrolörü için ayar noktaları olacaktır.

PIDController’ı LiveWindow’da görüntüleme

Controlling a PIDController in LiveWindow.

Test modunda, PID Alt Sistemleri kodda ayarlanan P, I ve D parametrelerini görüntüler. P, I ve D değerleri, (P) hesaplanan hataya uygulanan ağırlıklar, (I) zaman içindeki hataların toplamı ve (D) hataların değişim oranıdır. Bu terimlerin her biri ağırlıklarla çarpılır ve motor değerini oluşturmak için toplanır. En uygun P, I ve D değerlerini seçmek zor olabilir ve bir miktar deneme gerektirir. Robot üzerindeki Test modu, değerlerin değiştirilmesine ve mekanizma yanıtının gözlemlenmesine izin verir.

Önemli

Etkinleştirme seçeneği, denetleyici her robot döngüsünde güncellendiği için 2020’de tanıtılan PIDController <https://first.wpi.edu/wpilib/allwpilib/docs/release/java/edu/wpi/first/wpilibj/controller/PIDController.html> __ ‘ı etkilemez. Bu işlevselliğin nasıl korunacağına ilişkin örneğe bakın : ref: burada <docs/software/wpilib-tools/shuffleboard/advanced-usage/shuffleboard-tuning-pid:Enable Functionality in the New PIDController>.

PIDController’ı Ayarlama

Using the PIDController to tune the control.

PID denetleyicisini ayarlamak zor olabilir ve kullanılabilecek teknikleri açıklayan birçok makale vardır. İlk önce P değeriyle başlamak en iyisidir. Farklı değerleri denemek için P için düşük bir sayı girin, bu belgede daha önce belirlenen bir ayar noktası bulun ve mekanizmanın ne kadar hızlı tepki verdiğine dikkat edin. Çok yavaş yanıt verirse, belki de ayar noktasına asla ulaşmazsa, P’yi artırın. Çok hızlı yanıt verirse, belki de salınım yaparsa, P değerini azaltın. Salınım olmadan olabildiğince hızlı yanıt alana kadar bu işlemi tekrarlayın. Bir P terimine sahip olmak, mekanizmanız üzerinde yeterli kontrol elde etmek için gereken tek şey olabilir. Daha fazla bilgi: doc: / docs / software / advanced-controls / Introduction / tuning-pid-controller dokümanında bulunmaktadır.

P, I ve D değerlerini belirledikten sonra bunlar programa eklenebilir. Bunları ya RobotBuilder’daki PIDSubsystem’in özelliklerinde ya da kodunuzdaki PID Alt Sisteminin yapıcısından bulacaksınız.

F (ileri besleme) terimi, bir PID kontrolörü ile hızı kontrol etmek için kullanılır.

Daha fazla bilgi şu adreste bulunabilir :ref: docs / software / advanced-controls / controllers / pidcontroller: PID Control in WPILib.