PID Ayarlamasına Başlarken
Her bir terimin ve etkisinin ayrıntılı teknik ve matematiksel açıklaması için PID hakkındaki WPILib belgeleri sayfası iyi bir kaynaktır.
FRC Kullanımı
FRC'de PID döngüleri, volan atıcılardan dikey kollara kadar birçok mekanizma türünde kullanılır. Bunların, kullandıkları birimlere ve mekanizmanın fiziksel tasarımına bağlı olarak farklı değişkenlere ayarlanması gerekir, ancak bu değişkenleri bulma süreci hemen hemen aynıdır.
Çoğu ekip, hesaba katmak için bir kullanarak, öncelikle ve ile ayarlanmış kontrolörleri kullanarak başarı elde eder.
Değişkenler
P - Oransal Kazanç
Oransal kazanç olan P, kontrol döngüsünün birincil faktörüdür. Bu, hata ile çarpılır ve bu kazanç çıkışa eklenir. Bu, motoru gitmesi gereken yöne doğru iterek hareketin ağır yükünü kaldırır.
I - İntegral Kazanç
I, integral kazancı, FRC'de genellikle tavsiye edilmez. Kararlı durum hatasını veya diğer kazançların geride bıraktığı ve ele alamadığı hatayı ortadan kaldırmak için kullanışlıdır. Zaman içinde hatayı biriktirir ve I kazancı ile çarparak, hata dengelenene kadar sağladığı gücü kademeli olarak artırır. Gerekirse, önlemek için sınırlı kullanılması önerilir.
D - Türev Kazanç
Türev kazancı, D, salınımı ayarlamak ve hareketi sönümlemek için kullanılır. Harekete direnir ve mekanizma hareket ederken gücü azaltır. Salınım olmadan yumuşak bir hareket yapmak için iyi bir P ve D dengesi gereklidir.
Ayarlama
PID ayarı için WPILib dokümanlarındaki bu kılavuz gibi çeşitli kılavuzlar mevcuttur. Özellikle sizin özel mekanizmanıza atıfta bulunanlar olmak üzere birden fazla kılavuza başvurmak faydalı olabilir.
Bununla birlikte, mekanizma ne olursa olsun, PID ayarı için herhangi bir yöntem aynı kavramla başlayacaktır. Mekanizmanızı ayarlamadan önce, REV Hardware Client veya benzer bir yardımcı program aracılığıyla ayar noktasının ve ölçülen değerin bir grafiğini oluşturmalısınız. Bu, her testi analiz etmenize ve yapılacak değişiklikleri doğru bir şekilde değerlendirmenize olanak sağlayacaktır.
Daha sonra temel bir PID döngüsünü ayarlamak için aşağıdaki adımları izleyin:
Tüm sabitleri (P, I, D, F, arb İleri Besleme, vb.) 0'a ayarlayın
Hız Kontrol Modunda (veya hıza dayalı bir kontrol modunda) çalışıyorsanız, F Parametresi bölümünde açıklandığı gibi F'yi motorun değerine ayarlayın
Mekanizmanın çalıştırılmasının güvenli olduğundan emin olun. Bu işlem motoru potansiyel olarak beklenmedik hızlarda ve beklenmedik yönlerde döndürecektir
Motorun yönünü kontrol edin ve pozitif çıkışın istenen yönde olması için gerekirse ters çevirin
P'yi çalıştığınız birimlere göre çok küçük bir sayıya ayarlayın
Motorun hareket etmesi için bir hedef belirleyin. Bunun mekanizmanızın menzili içinde olduğundan emin olun.
Hareket görene kadar P'yi küçük artışlarla kademeli olarak artırın
Hareketi gördüğünüzde, hedefe istenen hızda ulaşana kadar P'yi küçük artışlarla artırın
Salınım görürseniz, P'yi azaltın veya D'yi küçük bir miktar artırmaya başlayın
Hareket hızlı, hassas ve tekrarlanabilir olana kadar bu parametreleri ayarlamaya devam edin
Arbitrary İleri Besleme
SPARK Flex ve SPARK MAX, daha karmaşık fizik tabanlı İleri Besleme modelleri için herhangi bir desteğe sahip değildir, ancak ekip kodunuzda hesaplanabilen ve API'ye aktarılabilen rastgele bir voltaj uygulama aracı içerir.
Aşağıda görüldüğü şekilde ayar noktası ile uygulanabilir:
// Set the setpoint of the PID controller in raw position mode, with a feedforward
m_pidController.setReference(
setPoint,
CANSparkBase.ControlType.kPosition,
feedForward
);API Belgeleri: SparkPIDController, setReference
// Set the setpoint of the PID controller in raw position mode, with a feedforward
m_pidController.SetReference(
SetPoint,
rev::CANSparkBase::ControlType::kPosition,
feedForward
);API Belgeleri: SparkPIDController, SetReference
Last updated
Was this helpful?