Mérés és adatgyűjtés levelező tagozat Elektromos mennyiségek mérése Mingesz Róbert 2014. április 4. v4.1
Tartalom Valós idejű rendszerek Programozható eszközök Programozási környezetek Szenzorok Hőmérséklet mérése Fény érzékelése Mágneses tér érzékelése Pozíció mérése További szenzorok Aktuátorok
Valós idejű rendszerek
Valós idejű rendszer Megbízhatóan válaszol egy eseményre Műveleteket garantált időn belül elvégez
Fogalmak Ciklusidő / válaszidő Jitter (bizonytalanság) Determinizmus (konzisztens válasz és válaszidő) Determinisztikus feladat (mindig időben kell végezzen) Prioritás
Hagyományos OS A processzoridő megoszlik a programok között Háttérfeladatok megszakíthatják a kritikus programokat Vírusírtók Hálózatkezelés... Magas jitter Nem determinisztikus
Valós idejű operációs rendszerek A magas prioritású feladatok lesnek először végrehajtva Magas megbízhatóság Általában nincs UI Példák: NI ETS Wind River VxWorks Valód idejű Linux
Programozható eszközök
Ember Válaszidő: 1-2 s Magas jitter Konzisztens válasz ? Üzemidő: 8/5 Motiváció → öntanuló, optimalizálás Objektumorientált
PC Válaszidő: ~ 100 ms Magas jitter Általában konzisztens válasz Üzemidő: 24/7, 1-5 éves élettartam „Korlátlan” erőforrások GUI, felhasználói interfész Alacsony ár Nagy méret
Ipari PC Válaszidő: ~ 100 ms Üzemidő: 24/7, 5-10 éves élettartam Környezeti hatásokkal szemben ellenálló „Korlátlan” erőforrások GUI, felhasználói interfész Magas ár
Egylapos PC-k Raspberry Pi ? BeagleBone Ipari egylapos PC-k Windows, Linux, Android, ... Bő erőforrások (< 1 GHz, RAM < 1 GB, Flash < 32 GB) Válaszidő, élettartam ? Kis méret, beágyazható
Mikrovezérlők 8 bit (pl. 8051) 32 bit (pl. ARM cortex m4) Korlátozott erőforrások Memória, flash < 128 kB Órajel < 100 MHz Alacsony fogyasztás (pl. 30 mW, 3 µW alvó mód) Válaszidő ~ µs (rendszerfüggő, determinisztikus) Alacsony ár, beágyazható
DSP (digitális jelprocesszor) 16-32 bit Jelfeldolgozási feladatokra optimalizálva Lebegőpontos számolás, párhuzamos műveletek 1 órajeles végrehajtása a műveleteknek 400 MHz 2,4 GFLOPS (1 mag) 1,43 W
FPGA (field-programmable gate array) Programozható logikai eszköz (20-200 ezer cella, 1 Mbit memória, < 500 MHz) Párhuzamos végrehajtás Magas megbízhatóság Válaszidő < 100 ns (determinisztikus) VHDL Kisebb rokonok: CPLD, PAL
PLC (Programozható logikai vezérlő) Szabványosított be és kimenetek (ipari) Moduláris felépítés Válaszidő: 10-100 ms (determinisztikus) Magas megbízhatóság, 10-20 éves élettartam
cRIO Változatos I/O opciók Válaszidő < 1µ, determinisztikus Jelentős mennyiségű erőforrás (< 1,3 GHz, RAM < 2 GB, Flash < 32 GB, FPGA)
Mobiltelefon, Tablet Elsősorban mérési eredmények megjelenítése, mérések felügyelete Kevés alkalmazás, sok lehetőség
Programozási nyelvek és környezetek
Assembly A hardver összes képessége kihasználható Maximális hatékonyság Magas tudást igényel Hosszú fejlesztési idő Felhasználás: mikrovezérlők optimalizált rutinjai
C Általános célú programozási nyelv A legtöbb eszköz programozható segítségével Alacsony szintű hatékony kód készíthető Eszköztől függő variációk és képességek
C# Elsősorban PC program Platformfüggő Korlátozott eszközhasználat, analíziskönyvtár
JAVA PC, beágyazott rendszerek, mobil eszközök Platform független Korlátozott eszközhasználat, analíziskönyvtár
JavaScript, PHP Webes interfészek készítése
Matlab Cél: numerikus számítások elvégzése Vezérlési feladatok (pl. PID szabályozás) Eszközvezérlés
Simulink Adatvezérelt grafikus programozás Modellezés, szimuláció Valós eszközök vezérlése C kódgenerálás
A LabVIEW fejlesztőkörnyezet
Példa GUI
Példa kód
A LabVIEW környezet Fejlesztő: National Instruments http://www.ni.com/labview/ Oktatóanyagok http://www.ni.com/gettingstarted/labviewbasics/ http://zone.ni.com/wv/app/doc/p/id/wv-3220 http://zone.ni.com/wv/app/doc/p/id/wv-3221
Miért LabVIEW? Könnyű megtanulni és használni Gyors fejlesztés Bárki megtanulhatja, nem szükség programozónak lenni Tudósokra és mérnökökre optimalizálva Vizuális dizájn, egyszerű vizualizáció Gyors fejlesztés Produktivitás növelése Költségek csökkentése
Miért pont a LabVIEW? Teljes funkcionalitás Beépített analízis funkciók Jelanalízis és matematika Számos beépített kommunikációs protokoll Többszálú végrehajtás, eseményvezérlés, objektumok, ... Számos platform programozható egy nyelven keresztül (PC, beágyazott rendszerek, valós idejű rendszerek, FPGA, mikrovezérlők)
Miért pont a LabVIEW? Ipari szabvány Tipikus felhasználások Rengeteg kompatibilis hardver Tipikus felhasználások Mérés, adatgyűjtés, adatok elemzése Ipari vezérlés Egyedi rendszerek, prototípusok fejlesztése Komplex tudományos mérőrendszerek vezérlése (Big Physics) Oktatás
Hátrányok Nem nyílt szabvány Magas ár Futtatókörnyezet szükséges a LabVIEW programok végrehajtásához Bonyolultabb kódok esetén: oda kell figyelni a karbantarthatóság érdekében
Spagetti VI
Példák a LabVIEW alkalmazására
Elektronika Tesztelés Teljesítményelektronikák vezérlése Félvezetők működése Audió áramkörök tesztelése Videó Rádiófrekvenciás áramkörök Vezetéknélküli kommunikáció Teljesítményelektronikák vezérlése http://www.ni.com/solutions/
Járműipar Gyors prototípusfejlesztés Hardware-in-the-Loop Vezérlőelektronikák fejlesztése Tesztelés Végső termék tesztelése Valós idejű mérések http://www.ni.com/solutions/
Hadi és repülőgépipar Repülés Katonai kommunikáció Radar Űrprogramok Automatizált tesztrendszerek http://www.ni.com/solutions/
SpaceX
További területek Olajipar Fényelemek, szélerőművek Egészség Tudomány Műszerek tesztelése Tudomány http://www.ni.com/solutions/
Pl. mosógép fejlesztése http://sine.ni.com/cs/app/doc/p/id/cs-14447
Big Physics - CERN Nem megfelelő irányú részecskék elfogása 120 valós idejű PXI rendszer http://sine.ni.com/cs/app/doc/p/id/cs-10795
Big Physics - TOKAMAK Valós idejű mérések Szabályozás http://www.ni.com/white-paper/6436/en
Lego
A LabVIEW programozás alapjai
Kezdőablak
Virtual Instrument – VI
Projektek
Eszköztárak
Controls palette Előlapi elemek Numeric input / output Boolean: nyomógomb, LED String bemenet/ kimenet Grafikonok …
Functions palette Block diagram elemei Programozási struktúrák Tömbműveletek Numerikus operátorok Boolean, String Összehasonlítás…
Context help A kurzor alatt lévő elem rövid sugúja Aktiválás: CTRL+H
Tools palette Alapbeállítás: automatic tool selection (ajánlott) Leggyakrabban használt: Manipulate Select and edit Modify text Create wire
Adattípusok Numeric: Boolean String and fájl útvonal Referencia Egész, lebegőpontos, komplex, fixpontos Boolean String and fájl útvonal Referencia Objektumok Tömbök Clusterek (struktúrák)
Numerikus adattípusok
Numerikus típus megváltoztatása
Numerikus paletta
További funkciók: Mathematics
While Loop int i = 0; int stop = 0; do { // Some code i++; } while (!stop);
For Loop int i; int N = count; for (i = 0; i < N; i++) { // Some Code }
While Loop int i; int N = count; int stop = 0; for (i = 0 ; i < N; i++) { //Some code if (stop) { break; }
Previous iteration: Feedback node int i; int N = count; int x = 0; for (ind i = 0; i < N; i++) { x = x + i; }
Similar option: Shift register int i; int N = count; int x = 0; for (ind i = 0; i < N; i++) { x = x + i; }
Adatvezérelt programozás Párhuzamos végrehajtás Egy csomópont akkor hajtódik végre, amikor az összes bemenet a rendelkezésre áll A csomópont akkor adja vissza a végeredményt, amikor befejezte a futást A végrehajtást az adatok vezetékeken történő áramlása határozza meg
Adatvezérelt programozás: példa
Sekvencia
LabVIEW toolkit-ek
Programozási lehetőségek
MathScript RT Module MATLAB kódok futtatása 700 beépített funkció GUI Valós idejű rendszerek http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2031/
Control Design and Simulation Module Simulink jellegű programozás http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209850
Application Builder for Windows Önálló* programok készítése Telepítőfájlok készítese .net dll-ek Forráskód elrejtése *: futtatókörnyezetet fel kell telepíteni
Robotics Module Valódi hardverek vezérlése 3D szimulációs környezet http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209856
LEGO MINDSTORMS NXT Module Lego NXT programozása LabVIEW használatával http://www.ni.com/pdf/manuals/372574c.pdf
Vision Development Module 3D algoritmusok Valós idejű felismerés http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2037/
PID and Fuzzy Logic Toolkit P, PI, PD, and PID szabályozások Fuzzy szabályozások Automatikus hangolás (online/offline) http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209054
Statechart Module Állapotvezérelt gépek készítése http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209857
Real-Time Module Valós idejű rendszerek vezérlése Önálló műszerek, vezérlők pl. cRIO, PXI, ... Real-Time Execution Trace Toolkit Debugging Profiling http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2032/
FPGA Module FPGA programozása grafikus nyelven http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2030/
Touch Panel Module HMI panelek programozása http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209858
Datalogging and Supervisory Control Module OPC szerver/kliens HMI NI hardver PLC ... http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209851
Adaptive Filter Toolkit Különböző adaptív szűrő algoritmusok Szimuláció FPGA kód http://sine.ni.com/nips/cds/view/p/lang/hu/nid/205382
Szenzorok
Digitális mérőműszer
A szenzorok működése Energia-átalakítás történik Energiafajták: Sugárzási energia, mechanikai energia, hőenergia, villamos energia, mágneses energia, kémiai energia
Szenzorok jellemzése Bemeneti fizikai mennyiség pl. hőmérséklet, elmozdulás, mágneses térerősség... Kimenő fizikai mennyiség (általában elektromos mennyiség) pl. feszültség, áramerősség, ellenállás... Karakterisztika: a kimenet függése a bemeneti mennyiségtől lineáris / nem lineáris Érzékenység pl. 3 mV/°C
Szenzorok jellemzése Működési elv Aktív pl: termóelem, pH-mérő, fényelem Passzív működéséhez segédenergiára van szükség pl: termisztor, fotóellenállás, Hall-szonda Kialakítás Elérhetőség
Szenzorok tulajdonságai Mérési tartomány Zajhatár: ennél kisebb jelek változása már elvész a zajban Túlterhelési tartomány Felbontóképesség Nullpont-hiba Érzékenység hiba Hiszterézis Linearitás-hiba / alakhiba
Szenzorok tulajdonságai Drift (kúszás) Hőmérsékletfüggés Környezeti hatásokra való érzékenység pl. rezgések, nyomás, nedvesség... Beállási idő Sávszélesség, frekvencia-karakterisztika Követett szabványok pl. IEEE 1451, TEDS Kalibrálás szükségessége
Hőmérséklet mérése
Hőmérséklet mérése A legtöbb folyamat, fizikai, kémiai... tulajdonság hőmérsékletfüggő pl. sűrűség, ellenállás, reakciósebesség... Az egyik leggyakrabban mért paraméter
Mérés elve Hőmérsékletváltozás hatására változás áll be a szenzorban vezetőképesség megváltozása thermoelektromos effektusok hőtágulás hallmazállapot-változás kémiai reakció (egyensúly eltolódás)
Megfelelő hőkontaktus Hőátadás közvetlen érintkezés Hővezetés valamilyen közeg viszi át a hőenergiát Hősugárzás elektromágneses sugárzás útján
Bimetál kapcsoló Két állapot Hiszterézis
Ellenállás-hőmérők RTD
Fémek ellenállása Fémek ellenállása hőmérsékletfüggő Ok: ionok hőmozgása T nő → R nő
PT 100 Platina PT100 szenzorok: 0 °C: 100 Ω Mérési tartomány: -260 °C ..850 °C
Ellenállás hőmérők Nagy pontosság Alacsony drift Széles mérési tartomány Reagálási: idő néhány másodperc Típikus méret > 3 mm Ár > 2000 Ft
Ellenállás hőmérők mérése Feladat: nagy pontossággal és felbontással (24 bit) mérni az ellenállás változást
Ellenállás hőmérők bekötése
Termisztor NTC
Ellenállás hőmérsékletfüggése Hőmérséklet növekedése → töltéshordozók számának növekedése → ellenállás csökkenése Általános képlet: 𝑅 𝑇 = 𝑅 𝑟𝑒𝑓 ∙ 𝑒 𝐴+ 𝐵 𝑇 + 𝐶 𝑇 2 + 𝐷 𝑇 3 Közelítés: 𝑅 𝑇 = 𝑅 25 ∙ 𝑒 𝐵 25/85 𝑇 − 𝐵 25/85 𝑇 25
Termisztor 𝑇= 1 1 𝑇 25 + 1 𝐵 25/85 ∙ln 𝑅 𝑇 𝑅 25 V0 𝑅 𝑇 = 𝑅 0 ∙ 𝑉 𝑇 / 𝑉 0 1− 𝑉 𝑇 / 𝑉 0 R0 VT A/D Rt 𝑇 25 =273.15+25 K 𝐵 25/85 =3977 K 𝑅 0 = 𝑅 25 =10 kΩ MicLab – 09 – 2012.04.18. Mingesz Róbert
Termisztor Mérési tartomány: -90 °C ..130 °C Reakcióidő: néhány s Átmérő > 1,5 mm Ár > 100 Ft
Önfűtés Mérőáram: hőt termel: 𝑃=𝑈∙𝐼 Newton lehűlési törvény: 𝑃 𝑇 =𝐾( 𝑇 𝑅 − 𝑇 𝐾 ) Egyensúlyi állapot: 𝑇 𝐾 = 𝑇 𝑅 − 𝑈 2 𝐾∙ 𝑅 𝑇
PTC eszközök T nő → R nő Alkalmazások: Áram korlátozása (regenerálódó biztosíték) Hőmérsékletszabályozás
Thermoelem
Termoelem Seebeck-effektus: Termoelem (Réz-Konstantán vezetékek)
Termoelem Kis impedancia, kis feszültség: nagy erősítés szükséges Jó közelítéssel lineáris Átmérő > 1.5 mm Ár > 2000 Ft Mérési tartomány K típusú termoelem esetén: -200 °C .. +1350 °C
Termoelem - hidegpont Hidegpont kompenzálás
NI-9211 hidegpont-kompenzálás Termisztor
Integrált hőmérsékletszenzorok
IC hőmérsékletszenzorok LM35 Lineáris kimenet +2 °C - +150 °C
IC hőmérsékletszenzorok AD7414 Digitális kimenet 10 bit -40 °C - +125 °C
IC hőmérsékletszenzorok LM75 Digitális kimenet 9 bit -55 °C - +125 °C
Pirométerek Hőmérséklet → hősugárzás (általában infravörös) A sugárzás spektruma hőmérsékletfüggő → a hőmérséklet meghatározható Kontaktus nélküli mérés Mérési tartomány: -32 °C .. 3000 °C
Fény detektálása
Fény érzékelése Fény → hőmérsékletváltozás elektronok gerjesztése elektronok kilépése
Bolométer Hőhatás mérése (infravörös fény detektálása)
Fotóellenállás (light dependent resistor) Félvezető Fény → elektronok kerülnek át a vezetési sávba Hátrányok: lassú Előnyök: egyszerű alkalmazhatóság, ohmikus Spektrális érzékenység: típustól függ
Fotodióda Előnyök: gyors az áram arányos a fényintenzitással olcsó Érzékenység: szükség szerint optikai szűrővel módosítható
Fotodióda
Fotodióda
Fotótranzisztor Tranzisztor vezérlése: fény (bázisáram helyett) Nagyobb érzékenység/áram
CCD
Hőkamera
Ionizáló sugárzások érzékelése Működési elv: Elektronok gerjesztése (vezetés, fényhatás) Ionizáció Szcintillátor Geiger-Müller számláló
Pulzoximéter Pulzusszám Oxigén szaturáció
Mágneses tér érzékelése
Mágneses terek érzékelése Váltakozó mágneses terek → mágneses indukció Állandó mágneses terek → Hall-effektus, …
Hall-effektus Félvezetők esetén a töltéshordozók mind + mind – előjelűek lehetnek
További mágneses érzékelők Reed-relé SQUID: gyenge terek érzékelése
Kémhatás mérése Nehézségek: nagy belső ellenállás, alacsony feszültség
Páratartalom mérése
Gázok érzékelése – Taguchi szenzorok Ellenállás változás Szenzorok zajának változása
Oxigén koncentráció érzékelése – Lambda-szonda
Pozíció érzékelése
Mikro kapcsolók Felhasználás: pl. végállások detektálása
Fotókapu Felhasználás: pl. áthaladás érzékelése IR fény: a látható fény nem zavarja a szenzor működését Zavarérzéketlenség növelése: moduláció
Fényfüggőny Biztonsági felhasználás
Reflexiós fotókapu Felhasználás: pl. közelség érzékelése
Potenciométer Potenciométer 𝑈= 𝑈 𝑟𝑒𝑓 ∙ 𝑙 𝐿
Potenciométer
Pozíció kódolók
Mágneses elfordulás szenzor
Kapacitív elmozdulásmérők Mérési elv: elmozdulás → kapacitás változása
Induktív elmozdulásmérők Mérési elv: elmozdulás → induktivitás/csatolás/veszteség változása
LVDT (Linear variable differential transformer)
Folyadékszint detektálása
Nyúlásmérő bélyegek (strain gauge) Mérési elv: elmozdulás → ellenállásváltozás
Erő mérése (load cell) Mérési elv: erő → elmozdulás
Erő mérése
Nyomás mérése Mérési elv: nyomáskülönbség → érzékelőfelület torzulása
Gyorsulás érzékelése Mérési elv: tehetetlen tömeg elmozdulása
Integrated circuit piezoelectric sensor Rezgések érzékelése
Fordulatszám mérése
Szögsebesség mérése: Giroszkópok
Áramlás mérése Lapát Rotor/légcsavar
Áramlás mérése Venturi-féle áramlásmérő (nyomáskülönbség) Örvények mérése (vortex)
Áramlás mérése Hővezetés Pitó-cső
Aktuátorok
Aktuátorok
LED Meghajtás: Feszültségforrás + áramkorlátozó ellenállás Áramgenerátor
Lézer dióda
Peltier elem Mozgó alkatrész nélküli hűtés/fűtés Az átvitt hő az árammal arányos
Elektromágnes
Hangszórók
Motorok
Léptető motorok Cél: kis méretű elmozdulások
Léptető motorok
Piezo kristályok Piezó-effektus: mechanikai deformáció ↔ feszültség Alkalmazás: mikrofon/hangszóró (hallható/ultrahang) Mikrószkopikus elmozdulások mérése/létrehozása Órajelek létrehozása (kvarc)
Köszönöm a figyelmet ... vége ...