PID Kontrolü nasıl öğrenilir?


26

Genelde sıcaklık için PID (Oransal – İntegral-Türev) kontrolünü öğrenmek istiyorum.

Tercihen yapmak kolay bir proje ile öğrenmek istiyorum.

Lütfen öğrenmesi birkaç hafta alacak bir şey tavsiye eder misiniz?

Düzenleme: Bir su tankının sıcaklığını kontrol etmek istiyorum. Isıtma bir direnç ile yapılır.


Birinin öğrenebileceği temel bir proje almaya çalıştım, matematiğin de ilginç olduğunu düşünüyorum. İnsanlar hayatlarını buna adamıştır.
Kortuk

Sıcaklığını ne kontrol etmek istersiniz?
J. Polfer

3
Isıyı kaldıramadığınız için, küçük bir akım uyguladığınızda bile sisteminizin hala soğuyacağından emin olmanız gerekir veya pidinizde düzenleme sorunları olabilir. Denemenizi yaparken muhtemelen bir fan veya buz eklerim. Dolduğunda yukarı çıkmasını ve çıkarken aşağı inmesini istiyorsunuz. Bu durumda geri bildirim sizin için düzenleyecektir.
Rex Logan,

1
Bu gerekli olan su deposunun sıcaklığı ile belirlenir. 80C istiyorsa çevre sıcaklığı yeterli olacaktır, 25C istiyorsa bir sorunu olacaktır. Doğru şekilde ayarlandığında PID, yavaş bir sıcaklık kaybı ile başa çıkabilmelidir.
Kortuk

Yanıtlar:


27

Kontrol sıcaklığı (ortamınıza göre değişir) çok zor değil. Bu başladığımda ilk projemdi. Affedersiniz, bildiğiniz şeyleri tekrar edersem.

Zaten sistemi kontrol etmenin bir yolunu (örneğin bir ısıtıcı ya da soğutucu üniteyi) ve sistemden geri bildirim almayı (bir termistör ya da bir şey gibi bir sıcaklık sensörü) aldığınızı varsayıyorum. Bir tür kapalı döngü kontrolü olan bir PID döngüsü uygulamak için ikisine de ihtiyacınız olacak. Bundan sonra yapmanız gereken tek şey, kontrol komutları göndermek, geri bildirim okumak ve bu geri bildirime karar vermek için biraz yazılım yazmaktır.

Doktora olmadan PID okuyarak başlardım . Bilimsel bir deneyde sıcaklığı ilk kez ayarlamak zorunda kaldığımda kullandığım makale. Bazı kolay anlaşılır resimler ve 'tesisinizi' nasıl kontrol edeceğinizi açıklayan güzel bir örnek kod (yalnızca 30 satırda çimdikleyebileceğiniz temel bir döngü) sağlar - bu durumda, sıcaklığını kontrol etmek istediğiniz şeyi .

PID - Orantılı-İntegral-Diferansiyel - kontrolün özü, belirli bir ayar noktasına ulaşmak için belirli bir zamanda bir sistemin nasıl kontrol edileceğini belirlemek için sistemin anlık, geçmiş ve öngörülen gelecekteki performansını kullanmaktır. Çoğu durumda, ihtiyacınız olan performansı elde etmek için algoritmanın kazanım faktörlerini ayarlamanız gerekecektir - sıcaklık ne kadar hızlı artar, aşımdan ne kadar kaçınmak istersiniz, vs. ya da istediğiniz yere ulaşmak için bütünleşik kontrol bile!


Doktora yapmadan PID ile bu bağlantının nereye gittiğini hatırlayamadım. İsmini unutmuştum ve çok uzun zaman önce ne okuduğumu hatırlayamadım. +1 efendim.
Kortuk

3
Doktora olmadan PID harika bir makale! Ancak, 8-bit mikrodenetleyicim bu kayan nokta aritmetiğinden hoşlanmadı ..
abdullah kahraman

Sadece mükemmel! PHID w / o PID mükemmeldir. Bir doktora derecem var ama kontrol teorisinden uzak durmak için elimden geleni yaptım :) Ayrıca mini çizgi izleyicisini seviyorum.

@Bistromath Lütfen cevap olarak "teşekkür ederim" eklemeyin. Yeterli üne sahip olduğunuzda, yararlı bulduğunuz soruları ve cevapları oylayabileceksiniz .
m.Alin

10

Evet. Bir termistör ve bir direnç edinin. İyi bir akım çekebilecek bir direnç seçin (> 100mA).

Aralarında termal macun kullanın ve bunları bantla birlikte bantlayın. Termistör devresini ADC üzerinden bir mikrodenetleyiciye bağlayın. Direnci kontrol etmek için bir transistör kullanın ve bunu bir PWM ile kontrol edin.

Bir kadran ile sıcaklığı kontrol etmenizi sağlayan bir PID geliştirin ve sıcaklığı aşan ve çalacak bir PID yapma alıştırması yapın. Aşırı sönümlü hale getirin ve sıcaklığa ulaşmak için sonsuza dek sürün ve kritik olarak sönümlemesini sağlayın ve sıcaklıkta maksimum hızda çalışın.

Daha fazla detayın yardımcı olacağını bana bildirin.

Bunu yaptıktan sonra ısı iletkenliklerini azaltın, sıcaklık yayılımını geciktirecek bir aşama eklemeyi deneyin ve kontrolünü iyi bir şekilde sağlamaya çalışın.

Bu aynı zamanda bir LED ve foto-transistör ile yapılabilir.


Bunlar, PID döngülerinin davranış şeklini asmaya çalışmak için iyi önerilerdir.
J. Polfer



1

Şimdiden iyi yanıtlara değecek 2 kuruş ekledim.

Sıcaklık kontrolü için PID'nin pratik kullanımı, sıcaklık hatası tespiti sınırlıysa (op amp kazancı çıkışı doygunlaştırırsa) ve sıcaklığı kontrol etmek için mevcut güç sabitse, genellikle doğrusal olmayan davranışlara sahiptir.

Açma-kapama kontrol cihazı düşünün. Sistem, ısı uygulandığında ve sıcaklıkta bir değişiklik tespit edildiğinde gecikme süresi olacaktır. Hangi PID döngüsünün olmadığı bu gecikme, dengesiz bir döngü salınımı yaratır ve herhangi bir histeri varsa, gürültü ile güç döngüleri (Açık-Kapalı-Açık) Ancak, çok yüksek bir kazanç (karşılaştırıcı gibi) küçük bir artık sıcaklık hatasına neden olur. Gecikme, döngü süresini ve aşmayı etkiler.

Önemli miktarda ısı ekleyebilecek bir tank lambası gibi harici bir rahatsızlık varsa, ısıtıcı regülatörünün lamba sıcaklığından bir sıcaklık artışı tespit edilir edilmez yanıt vermesi gerekir. Lamp swith'iniz PID döngüsünün bir parçası değilse, o zaman etkiyi "tahmin edemez" (türev geri besleme kazancı) Belli ki, eğer lambalar çok fazla ısı üretirse, sıcaklık ayarlanamaz ve ayar noktasını aşacaktır.

PID kontrollü ısı kontrolünüzde, lamba gücünü tekrar ayarlamak için Lamba şalterinin durumu ve çıkış kontrolü için bir girişe sahip olmak zorunda kalabilirsiniz.

Mutlak kontrol hatası,% aşma ve tepki süresi için gereksinimlerinizi tanımlamak, PID döngünüzü optimize etmek için gereken bazı tasarım girdileridir. Aynı derecede önemli olan sistem bozukluklarınızı tanımlamak ve giriş ve çıkış için kontrol sisteminize dahil etmektir. Örneğin. Lamba ısı gücü ve sensör seçimi ve yer seçimi.

Bir kenara tecrübe.

Bir su ısıtıcısı kullanarak ilk deneyimim, öğrenciyken 70'lerin su yatağı dönemi sırasındaydı, kendi sıcaklık kontrolörümü bir termistör, kontrol devresi ve ısıtıcıya sıfır geçişli bir triak anahtarı kullanarak tasarladım. Karşılaştırma kontrolüyle başladım ve yatakta zıplama alışılmadık bir cevap buldum. Bu yüzden, ZCS triyak eşik değerine yakın olduğunda bana orantılı "eksik döngüleri" vermek için sensördeki filtrelenmemiş gürültüyü kullanarak orantılı kontrol eklendi. Sıcaklığı 0,1'C'de düzenleyebilirim. Yanıt daha yumuşaktı ancak sonuç aynıydı.

En büyük hatanın lokasyonda olduğunu ve sensördeki su basıncındaki küçük değişikliklerin olduğunu gördüm. (O zamanlar ufaktım, sadece 185 lbs'di ama 2000 lb su yatağında <su basıncındaki% 10'luk değişiklik küçüktü)

Sensör ve su yatağı arasındaki termal direnç, sensöre karşı su basıncına bağlı olarak küçük bir kayma hatası yarattı. Su tankı senaryonuzda, sensör hatası, sensörün büyüklüğü ve sensör ve ısıtıcı veya sensör arasındaki mesafeden ve suyun en uzak yüzeyinden veya su akışının veya sensör ve ısıtıcı arasındaki kabarcıkların oranından etkilenebilir.

Benim durumumda, yatağa sıçradığımda, termal direnç, ilave basınçtan biraz düşmüştü ve güç ışığı, bir sıcaklık onda bir derecenin altına düşene kadar veya bir veya iki kez daha kısık olarak parlayacaktı ya da ek ağırlık ve basınçtan görünen sıcaklık artışıyla eşleşecekti. su yatağı termostata karşı.

(Alınan ders. Rahatsızlık kaynaklarını ve bunların Kontrol Sistemi hatası üzerindeki etkilerini ihmal etmeyin)

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.