İçindekiler:
- Adım 1: Araçlar ve Malzeme
- Adım 2: PCB'yi Asın
- Adım 3: Bileşenleri Lehimleyin
- Adım 4: Mikrodenetleyiciyi Programlayın
- Adım 5: Montaj ve Kalibre Etme
- Adım 6: PID Ayarı
- Adım 7: Paketleyin
Video: PID Sıcaklık Kontrol Cihazı: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Arkadaşım plastik geri dönüşüm için plastik bir ekstrüder yapıyor (https://preciousplastic.com). Ekstrüzyon sıcaklığını kontrol etmesi gerekiyor. Bu amaçla bir meme ısıtıcı bandı kullanıyor. Bu nozülde bir termokupl ve sıcaklığı ölçmemizi ve son olarak istenen sıcaklığa ulaşmamızı sağlayan bir ısıtma ünitesi (retroaction loop yapın) bulunmaktadır.
Tüm bu nozul ısıtıcı bantlarını kontrol etmek için birkaç PID kontrol cihazına ihtiyaç duyduğunu duyduğumda, hemen kendiminkini yapmaya çalışma isteği uyandırdı.
Adım 1: Araçlar ve Malzeme
Aletler
- havya, lehim teli ve akı
- cımbız
- freze makinesi (PCB prototipleme için kimyasal aşındırma da mümkündür) (PCB'yi kartal dosyamla da sipariş edebilirsiniz)
- termometre (kalibrasyon için)
- arduino (herhangi bir tür) veya bir AVR programcısı
- FTDI seri TTL-232 USB kablosu
- lazer kesici (isteğe bağlı)
- multimetre (ohmmetre ve voltmetre)
Malzeme
- Bakalit tek tarafı bakır levha (minimum 60*35 mm) (Cam elyafı alırken testeremi mahvettim o yüzden dikkatli olun: Bakalit)
- Attiny45 mikrodenetleyici
- LM2940IMP-5 voltaj regülatörü
- AD8605 işlemsel yükselteç
- NDS356AP transistör
- bir grup direnç ve kapasitör (SMT 0603 adafruit kitabına sahibim)
- 230V-9V ac-dc transformatör
- 1N4004 diyotlar
- katı hal rölesi
- oje (isteğe bağlı)
Adım 2: PCB'yi Asın
PCB'yi frezelemek için Proxxon MF70 CNC dönüştürülmüş ve konik bir uç ucu kullandım. Herhangi bir gravür bitiş bitinin işe yarayacağını düşünüyorum. Gcode dosyası, doğrudan Eagle ve pcb-gcode eklentisi tarafından oluşturuldu. İyi bir rota ayrımı sağlamak için, ancak tüm bakırı öğütmek için saatler harcamadan yalnızca üç geçiş yapılır. PCB CNC makinesinden çıkınca rotaları kesici ile temizledim ve multimetre ile test ettim.
Parametreler: ilerleme hızı 150 mm/dak, derinlik 0,2 mm, dönüş hızı 20'000 t/dak
Adım 3: Bileşenleri Lehimleyin
Cımbız ve havya ile bileşenleri doğru yerlere yerleştirin ve en küçük bileşenlerden başlayarak akı kullanarak (yardımcı olur) lehimleyin. Yine, herhangi bir kısa devre veya bağlantısız öğeniz olmadığını bir multimetre ile kontrol edin.
Amplifikatör kazancını istediğiniz rezistörü seçerek seçebilirsiniz (kazanç=(R3+R4)/R4). 1M ve 2.7k aldım, bu yüzden benim durumumda kazanç yaklaşık 371'e eşit. Tam değeri bilmiyorum çünkü %5 tolerans direnci kullanıyorum.
Termokuplum J tipi. Her derece için 0.05mV verdiği anlamına gelir. 371 kazanç ile amplifikatör çıkışından (0.05*371) derece başına 18.5mV elde ediyorum. Amplifikatör çıkışının yaklaşık 3,7V (0,0185*200) olması için 200°C civarında ölçmek istiyorum. 5V referans voltajı (harici) kullandığım için sonuç 5V'u geçmemelidir.
Görüntü, yaptığım ilk (çalışmayan) versiyona karşılık geliyor ama prensip aynı. Bu ilk versiyonda bir röle kullandım ve kartın tam ortasına koydum. Yüksek voltajla geçiş yaptığım anda, denetleyiciyi yeniden başlatan ani yükselmeler yaşadım.
Adım 4: Mikrodenetleyiciyi Programlayın
Bu talimatlardaki gibi bir arduino kullanarak: https://www.instructables.com/id/How-to-Program-a… kodu yükleyebilirsiniz.
Attiny 45'i programlamak için FTDI-USB kablosu ile profesyonel bir biblo kullandım ancak bu yöntem eşdeğerdir. Daha sonra seri verileri almak ve hata ayıklamak için PB1 ve GDN pinini doğrudan FTDI-USB kablosunun RX ve GND'sine taktım.
Arduino krokisinde tüm parametreleri sıfıra (P=0, I=0, D=0, K=0) koymalısınız. Ayarlama adımı sırasında ayarlanacaktır.
Duman veya yanık kokusu görmüyorsanız, bir sonraki adıma geçebilirsiniz!
Adım 5: Montaj ve Kalibre Etme
Dikkat: Güç kaynağını ve 5V'yi asla aynı anda programlayıcıya bağlamayın! Aksi takdirde, bir önceki adımda aldığım dumanı göreceksiniz. Buna saygı gösterip gösteremeyeceğinizden emin değilseniz, programcının 5v pinini çıkarmanız yeterlidir. Denetleyiciyi güç kaynağı olmadan programlamak ve ısıtıcıyı önümde deli gibi ısıtmadan denetleyiciyi test etmek benim için daha uygun olduğu için izin verdim.
Şimdi termokupl'u amplifikatörde dallandırabilir ve bir şeyi ölçüp ölçmediğinizi görebilirsiniz (polariteye saygı gösterin). Isıtma sisteminiz oda sıcaklığında ise sıfırı ölçmelisiniz. Elle ısıtmak zaten bazı küçük değerlere yol açmalıdır.
Bu değerler nasıl okunur? PB1 ve GDN pinlerini doğrudan FTDI-USB kablosunun RX ve GND'sine takın ve arduino seri monitörünü açın.
Kontrolör başladığında, çipin dahili termometresi tarafından kırmızı değeri gönderir. Sıcaklığı bu şekilde telafi ediyorum (özel bir çip kullanmadan). Bu, çalışma sırasında sıcaklık değişirse, dikkate alınmayacağı anlamına gelir. Bu değer bir çipten diğerine çok farklıdır, bu nedenle çizimin başında REFTEMPERATURE tanımına manuel olarak girilmelidir.
Katı hal rölesini bağlamadan önce, voltaj çıkışının röleniz tarafından desteklenen aralıkta olduğunu doğrulayın (benim durumumda 3V - 25V, devre yaklaşık 11V üretir). (kutuplara saygı gösterin)
Bu değerler derece veya Fahrenhayt cinsinden sıcaklıklar değil, analogdan dijitale dönüşümün sonucudur, bu nedenle 0 ile 1024 arasında değişirler. 5V referans voltajını kullanıyorum, bu nedenle amplifikatör çıkışı 5V'a yakın olduğunda, dönüştürme sonucu 1024'e yakındır.
Adım 6: PID Ayarı
Bir kontrol uzmanı olmadığımı belirtmeliyim, bu yüzden benim için çalışan bazı parametreler buldum ama herkes için çalıştığını garanti etmiyorum.
Öncelikle programın ne işe yaradığını açıklamam gerekiyor. Bir tür PWM yazılımı uyguladım: her yinelemede 20.000'e ulaşana kadar bir sayaç artırılır (bu durumda 0'a sıfırlanır). Gecikme, döngüyü bir milisaniyeye kadar yavaşlatır. En seçici olanımız, kontrol süresinin 20 saniye civarında olduğunu fark edecektir. Her döngü, sayaç ve eşik arasında bir karşılaştırma ile başlar. Sayaç eşikten düşükse röleyi kapatıyorum. Daha büyükse, açarım. Bu yüzden eşiği ayarlayarak gücü düzenlerim. Eşik hesaplaması her saniye gerçekleşir.
PID denetleyicisi nedir?
Bir işlemi kontrol etmek istediğinizde, ölçtüğünüz değere (analogData), ulaşmak istediğiniz değere (tempCommand) ve bu işlemin durumunu değiştirmenin bir yoluna (seuil) sahipsiniz. Benim durumumda, anahtarın ne kadar süreyle açılıp kapanacağını (görev döngüsü) ve dolayısıyla enerji miktarını belirleyen eşik (fransızca "seuil") ancak yazması ve telaffuz etmesi çok daha kolay ("sey" olarak telaffuz edilir) ile yapılır. sisteme koyun.
Ulaşmak istediğiniz noktadan uzaktaysanız büyük bir düzeltme yapabileceğinizi, yakınsanız küçük bir düzeltmeye ihtiyaç duyulduğu konusunda herkes hemfikirdir. Bu, düzeltmenin hatanın bir işlevi olduğu anlamına gelir (error=analogData-tempComand). Evet ama ne kadar? Diyelim ki hatayı bir faktör (P) ile çarpıyoruz. Bu bir Oransal kontrolördür. Mekanik olarak bir yay orantılı bir düzeltme yapar çünkü yay kuvveti yay sıkıştırmasıyla orantılıdır.
Muhtemelen araba süspansiyonlarınızın bir yay ve bir amortisörden (amortisör) oluştuğunu biliyorsunuzdur. Bu amortisörün rolü, arabanızın bir trambolin gibi geri tepmesini önlemektir. Türev teriminin tam olarak yaptığı şey budur. Sönümleyici olarak, hata değişimiyle orantılı bir tepki oluşturur. Hata hızla değişiyorsa, düzeltme düşürülür. Salınımları ve aşmaları azaltır.
Entegratör terimi kalıcı hatayı önlemek için buradadır (hatayı bütünleştirir). Somut olarak, hatanın pozitif veya negatif olması durumunda artan veya azalan bir sayaçtır. Daha sonra bu sayaca göre düzeltme artırılır veya azaltılır. Mekanik eşdeğerliği yoktur (veya bir fikriniz var mı?). Belki de aracınızı servise getirdiğinizde benzer bir etki vardır ve tamirci amortisörlerin sistematik olarak çok düşük olduğunu fark edip biraz daha ön yük eklemeye karar verir.
Bütün bunlar şu formülde özetlenmiştir: düzeltme=P*e(t)+I*(de(t)/dt)+D*integral(e(t)dt), P, I ve D üç parametredir. ayarlanacak.
Benim versiyonumda, belirli bir sıcaklığı korumak için gereken "a priori" (ileri besleme) komutu olan dördüncü bir terim ekledim. Sıcaklığa orantılı bir komut seçtim (ısıtma kayıplarının iyi bir tahminidir. Radyasyon kayıplarını (T^4) ihmal edersek doğrudur). Bu terim ile entegratör hafifler.
Bu parametreler nasıl bulunur?
"pid tuning sıcaklık kontrolörü" google'da bulabileceğiniz geleneksel bir yöntem denedim ama uygulamakta zorlandım ve kendi yöntemimle sonuçlandım.
benim yöntemim
Önce P, I, D'yi sıfırlayın ve "K" ve "tempCommand" değerlerini küçük değerlere koyun (örneğin K=1 ve tempCommand=100). Sistemi açın ve bekleyin, bekleyin, bekleyin… sıcaklık dengelenene kadar. Bu noktada 1*100=100'lük bir "seuil" ile sıcaklığın X eğiliminde olduğunu biliyorsunuz. Yani biliyorsunuz ki 100/20000=%5 komutuyla X'e ulaşabilirsiniz. Ama amaç 100'e ulaşmak. çünkü "tempCommand". Bir orantı kullanarak 100'e (tempCommand) ulaşmak için K'yi hesaplayabilirsiniz. Önlem olarak hesaplanandan daha küçük bir değer kullandım. Aslında ısıtmak soğutmaktan daha kolaydır. En sonunda
Kfinal=K*tempKomut*0.9/X
Şimdi kontrolörü başlattığınızda, doğal olarak istediğiniz sıcaklığa yönelmelidir, ancak bu gerçekten yavaş bir işlemdir çünkü sadece ısıtma kayıplarını telafi edersiniz. Bir sıcaklıktan diğerine geçmek istiyorsanız, sisteme bir miktar termal enerji eklenmelidir. P, sisteme enerjiyi hangi oranda koyacağınızı belirler. P'yi küçük bir değere ayarlayın (örnek P=10). (Neredeyse) soğuk bir başlangıç deneyin. Eğer büyük bir aşımınız yoksa, ikili (P=20) ile deneyin, eğer şimdi bir tane varsa, arada bir şey deneyin. %5 fazlalık varsa, bu iyidir.
Şimdi, aşmanız kalmayana kadar D'yi artırın. (her zaman denemeler, bunun bilim olmadığını biliyorum) (D=100 aldım)
Ardından I=P^2/(4*D) ekleyin (Ziegler-Nicholts yöntemine dayalıdır, kararlılığı garanti etmelidir)(benim için I=1)
Neden tüm bu denemeler, neden bilim olmasın?
Biliyorum biliyorum! Devasa bir teori var ve transfer fonksiyonunu ve Z dönüşümünü ve blablabla'yı hesaplayabilirsiniz. Üniter bir sıçrama oluşturmak ve ardından 10 dakika boyunca reaksiyonu kaydetmek ve transfer fonksiyonunu yazmak istedim ve sonra ne oldu? 200 terimle aritmetik yapmak istemiyorum. Bu yüzden, birinin bir fikri varsa, bunu nasıl düzgün bir şekilde yapacağımı öğrenmekten mutlu olurum.
En iyi arkadaşlarım Ziegler ve Nichols'ı da düşündüm. Salınım oluşturan bir P bulmamı ve ardından yöntemlerini uygulamamı söylediler. Bu salınımları hiç bulamadım. Bulduğum tek şey gökyüzüne doğru bir oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooshot).
Ve ısıtmanın soğutma ile aynı süreç olmadığı gerçeği nasıl modellenir?
Araştırmama devam edeceğim ama şimdi elde ettiğiniz performanstan memnunsanız kontrol cihazınızı paketleyelim.
Adım 7: Paketleyin
Moskova fablab'ına (fablab77.ru) ve lazer kesicilerine erişimim vardı ve minnettarım. Bu fırsat, istenilen boyutlarda (h=69 l=66 d=42 mm) kutular yapan bir eklentinin tek tıkla oluşturduğu güzel bir paket yapmamı sağladı. Üstte led ve switch için iki adet delik (çap=5mm), yanlarda ise programlama pinleri için bir adet yarık bulunmaktadır. Transformatörü iki parça tahta ve PCB'yi iki vida ile sabitledim. Terminal bloğunu kablolara ve PCB'ye lehimledim, transformatör ile PCB güç girişi arasındaki anahtarı ekledim, led'i bir dirençle (300 Ohm) seri olarak PBO'ya bağladım. Elektrik yalıtımı için de oje kullandım. Son testten sonra kutuyu yapıştırdım. Bu kadar.
Önerilen:
Arduino Otomatik Sıcaklık ve Nem Kontrol Cihazı Nasıl Yapılır: 3 Adım
Arduino Otomatik Sıcaklık ve Nem Kontrol Cihazı Nasıl Yapılır: 1
160A Fırçalı Elektronik Hız Kontrol Cihazı ve Servo Test Cihazı Kullanılarak DC Dişli Motor Nasıl Kontrol Edilir: 3 Adım
160A Fırçalı Elektronik Hız Kontrol Cihazı ve Servo Test Cihazı Kullanılarak DC Dişli Motor Nasıl Kontrol Edilir: Özellikler: Voltaj: 2-3S Lipo veya 6-9 NiMH Sürekli akım: 35A Patlama akımı: 160A BEC: 5V / 1A, lineer mod Modlar: 1. ileri &ters; 2. ileri &fren; 3. ileri & fren & ters Ağırlık: 34g Boyut: 42*28*17mm
Yüksek Hassasiyetli Sıcaklık Kontrol Cihazı: 6 Adım (Resimlerle)
Yüksek Hassasiyetli Sıcaklık Kontrol Cihazı: Bilim ve mühendislik dünyalarında sıcaklığı takip etmek (termodinamikte atomların hareketi), hücre biyolojisinden sert yakıt roketine kadar hemen hemen her yerde göz önünde bulundurulması gereken temel fiziksel parametrelerden biridir
$10ish DIY Değişken Sıcaklık Havya Kontrol Cihazı: 3 Adım (Resimlerle)
10$'lık DIY Değişken Sıcaklıklı Havya Denetleyicisi: Bu talimat, size Radioshack "ateş başlatıcı" havyanızı yaklaşık 10$'lık parçalar kullanarak değişken sıcaklıklı bir versiyona nasıl dönüştüreceğinizi gösterecektir. 30w kullandığım için devre kartındaki izleri kaldırmaya başladıktan sonra bu fikir aklıma geldi
SMD Tava Yeniden Akışı için IR Sıcaklık Kontrol Cihazı: 4 Adım
SMD Tava Yeniden Akışı için IR Sıcaklık Kontrol Cihazı: Bu talimat, SMD (yüzeye montaj cihazı) yeniden akışını kullanarak kendi devre kartlarınızı yapmaya çalışıyorsanız yardımcı olacaktır. Bir sürü panoyu elle lehimledikten sonra kendim gerçekten ilgilenmeye başladım. Bu talimatta çoğunlukla ab