Jedinica 4 / 9

Fuzija senzora i integracija podataka interneta stvari

Dobici:

  • Sposobnost konstruiranja fuzijske logike (integrator/Kalmanov filtar) koja kombinira IMU, koder i podatke senzora udaljenosti s AI
  • Sposobnost konfiguriranja i tumačenja IoT tokova podataka i telemetrije temeljenih na MQTT-u uz pomoć umjetne inteligencije
  • Sposobnost otkrivanja i ispravljanja problema s šumom senzora, kalibracijom i sinkronizacijom vremena u AI izlazu

Nijedan senzor nije savršen. Žiroskop je kratkoročno vrlo precizan, ali se s vremenom mijenja. Akcelerometar je dugotrajno stabilan, ali stvara šum zbog vibracija. Enkoder precizno mjeri poziciju, ali je pogrešan kada dođe do klizanja. GPS radi u širokom području, ali ima niske frekvencije i bučan je. Inženjer mehatronike mora proizvesti jednu, pouzdanu istinu iz ovih nesavršenih senzora; Ovo je fuzija senzora. Štoviše, u modernim sustavima ti podaci ne samo da ostaju lokalni, već teku u oblak i kontrolne centre putem IoT mreža. Umjetna inteligencija moćna je pomoć u postavljanju algoritama fuzije i konfiguriranju i tumačenju IoT telemetrije. U ovoj jedinici pokrivamo komplementarni filtar, logiku Kalmanova filtra i kako postaviti protok IoT-a temeljen na MQTT-u s AI i uhvatiti buku i sinkronizacijske zamke.

Zašto Sensor Fusion?

Svaki senzor ima "dobru frekvencijsku zonu". Svrha fuzije je koristiti svaki senzor u području gdje je jak i poduprijeti ga s drugim u području gdje je slab.

senzor

jaka točka

slabost

žiroskop

Kratkotrajna kutna brzina, brz odziv

Kretanje kroz vrijeme

akcelerometar

Dugoročna referenca nagiba (gravitacija)

Vibracije/bučno pri kretanju

koder

Lokacija visoke rezolucije

Pogreška klizanja/zazora

GPS

apsolutni položaj

Niska frekvencija, buka, nema unutarnje prostorije

Oslanjanje na jedan senzor unosi slabost tog senzora u sustav. Fusion, na primjer, kombinira brzi, ali drifterski kut žiroskopa sa sporom, ali stabilnom referencom akcelerometra, dajući kut koji je i brz i bez drifta.

Komplementarni filtar

Najjednostavnija i najčešća fuzija je komplementarni filtar. Ideja je intuitivna: vjerujte žiroskopu na visokoj frekvenciji (brza promjena), akcelerometru na niskoj frekvenciji (sporo, stabilno). Sažetak u jednom redu:

# Komplementarni filtar: procjena boli (visina) # alfa ~ 0,98 : više prema žiroskopu, manje prema akcelerometru (stupnjevi/s) acceleration_ange : kut izračunat iz akcelerometra (stupnjevi) dt : period uzorkovanja (sek) """ gyro_pac = prethodni + žiroskop_brzina * dt # integrirati povratni alfa žiroskopa * gyro_pace + (1 - alpha) * acceleration_angle# Logika provjere: čisti žiroskop (driftovi) ako je alpha=1, # ako je alpha=0 čisti akcelerometar (šumno).

Koeficijent alfa ovdje određuje ravnotežu: ako je blizu 1, oslanja se na žiroskop (povećava se rizik od zanošenja), ako je blizu 0, oslanja se na akcelerometar (povećava se buka). Tipična vrijednost je 0,95–0,98. AI može predložiti ovu vrijednost, ali točna alfa ovisi o brzini uzorkovanja vašeg sustava i karakteru šuma; postavlja se eksperimentalno.

Savjet: kada ispisujete integralni filtar na AI, svakako pitajte kako se mjeri dt. Većina pogrešaka dolazi od pretpostavke da je dt konstantan, ali u stvarnosti vrijeme ciklusa varira. Mjerite dt real pomoću millis()/timestamp, nemojte pisati konstante.

Logika Kalmanova filtra

Komplementarni filtar je jednostavan, ali ne modelira statistiku šuma. Kalmanov filtar daje optimalnu (pod određenim pretpostavkama) procjenu probabilističkim modeliranjem šuma senzora i nesigurnosti procesa. Djeluje u dva koraka:

  1. Predvidjeti: Predvidjeti sljedeću situaciju i njenu neizvjesnost s modelom sustava.
  2. Ažuriranje: Izvažite novo mjerenje u odnosu na pouzdanost mjerenja (Kalmanov dobitak) i ispravite procjenu.

Kalman gain K na svakom koraku automatski odgovara na pitanje "trebam li više vjerovati mjerenju ili modelu". Ako je mjerni šum velik, K postaje manji (povjerenje u model), ako je nesigurnost procesa velika, K postaje veći (povjerenje u mjerenje). AI lako piše jednodimenzionalni Kalmanov filter; ali vaš je posao da ispravno odaberete kovarijance buke (`Q`, `R`) i one dolaze iz stvarne buke sustava.

Pažnja: Q (procesna buka) i R (mjerna buka) vrijednosti koje je dao AI su uzorak/rezervirano mjesto. Ako ih ne odredite iz stvarnog mjernog šuma sustava (npr. varijance izmjerene kada senzor miruje), filtar će biti ili prespor ili previše bučan. Ne vjerujte kovarijancama koje daje AI kao "pravu vrijednost".

IoT tok podataka: MQTT i telemetrija

Čisti podaci koje proizvedete fuzijom obično se prenose u centar putem IoT mreže. Najčešći protokol u industriji je MQTT: lagani model objavljivanja i pretplate, prikladan za nisku propusnost. AI brzo uspostavlja MQTT kod izdavača/pretplatnika i JSON telemetrijsku shemu.

import json, timeimport paho.mqtt.client kao mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast(temperature, temperature, vibration_rms): message = { "ts": time.time(), # timestamp -- uvjet za sinkronizaciju "pain_deg": round(pain, 2), "temperature_c": round(temperature, 1), "vibration_rms": round(temperature_rms, 3), "unit": {"pain": "deg", "temperature": "C", "vibration": "mm/s"} } client.publish("machine/line1/sensor", json.dumps(message), qos=1)# qos=1: isporučeno najmanje jednom. Korištenje qos=0 (može se izgubiti) na kritičnim podacima.

Ovdje su važne dvije inženjerske odluke: (1) vremensko žigosanje (ts) svake poruke—različiti senzori se uzorkuju u različito vrijeme, sinkronizacija je moguća samo s vremenskim žigom; (2) QoS razina—kritični podaci koriste najmanje qos=1 (isporučeno najmanje jednom), qos=0 dopušta gubitak poruke.

Šum, kalibracija i sinkronizacija

Bez obzira na to koliko je fuzija dobra, tri problema s unosom iskrivljuju rezultat:

  • Šum: Ako neobrađeni podaci senzora idu u fuziju bez filtriranja, fuzijski izlaz će također biti šum. Možda će biti potrebno prethodno filtriranje (medijan, niskopropusni).
  • Kalibracija: Pogreške u pomaku i mjerilu (npr. nulta točka akcelerometra je pomaknuta) sustavno dovode u zabludu fuziju. Senzori moraju biti kalibrirani prije uporabe.
  • Vremenska sinkronizacija: vremensko žigosanje i interpolacija potrebni su za usklađivanje senzora uzorkovanih različitim brzinama (npr. 10 Hz GPS s 1 kHz IMU).

AI može dodati ove korake kodu, ali jesu li svaki potrebni i njegovi parametri specifični za vaš sustav. U AI izlazu "gdje je kalibracija?" i "jesu li vremenske oznake usklađene?" Svakako postavljajte pitanja.

Slab upit / Jak upit

SLABO: "Izračunajte kut iz IMU podataka." (Koji filter? Obrađuje li se pomak? Kako dt? Nejasno.) JAK: "Kombinirajte podatke akcelerometra i žiroskopa iz MPU6050 s integralnim filtrom i procijenite kut nagiba. Izračunajte dt iz stvarne vremenske oznake, nemojte pretpostavljati konstantu. Postavite alfa kao parametar (zadano 0,98). Izračunajte kut akcelerometra s tane2. Filtrirajte kao klasu pisanja, zadržite prethodni kut, dodajte izborni srednji predfilter za šum."

Mini torbica

Inženjer robotike Selin želi komplementarni filtar od umjetne inteligencije za procjenu kuta na robotu za balansiranje na dva kotača. AI ​​daje čist kod, ali robot se polako naginje na jednu stranu. Selin provjerava dt: kod pretpostavlja da je dt konstantan 0,01 s, dok vrijeme ciklusa varira zbog Bluetooth telemetrije. Kada se dt izračuna iz stvarne vremenske oznake, pomak se smanjuje, ali ne nestaje u potpunosti. Zatim pogleda kalibraciju akcelerometra; Čak i kada senzor miruje, postoji pomak od 2°. Kad uklonim pomak kalibracije, robot stoji uspravno. Konačno, primjećuje da koristi qos=0 pri emitiranju telemetrije putem MQTT-a i povećava ga na qos=1 za podatke o kritičnom kutu. AI je dostavio fuzijski kostur za nekoliko minuta; ali inženjerova verifikacija uhvatila je tri problema specifična za sustav: varijablu dt, kalibracijski pomak i QoS.

Uobičajene greške

  • Pod pretpostavkom da je dt konstantan, dok vrijeme ciklusa varira (pomaci fuzije).
  • Spajanje senzora bez njihove kalibracije (sustavni pomak).
  • Pokušavamo uskladiti senzore različitih brzina bez označavanja vremena.
  • Odlazak s vrijednošću uzorka AI ​​bez mjerenja Kalmanovih Q/R kovarijancija iz stvarnog šuma.
  • Dopuštanje gubitka poruka korištenjem qos=0 na kritičnim IoT podacima.
  • Davanje neobrađenih podataka s šumom u fuziju bez prethodnog filtriranja.

Ukratko

  • Fusion koristi svaki senzor u frekvencijskom području gdje je jak i kompenzira njegovu slabost.
  • Komplementni filtar je jednostavan; Uspostavlja ravnotežu žiroskopa i akcelerometra pomoću alfe.
  • Kalmanov filtar probabilistički modelira buku; Q/R dolazi iz stvarnog sustava.
  • U MQTT telemetriji, vremensko žigosanje i odgovarajući QoS kritične su inženjerske odluke.
  • Šum, kalibracija i vremenska sinkronizacija određuju kvalitetu fuzije.
  • dt se mjeri iz stvarnog vremena; kalibracija i QoS provjeravaju se bez prepuštanja AI-u.

Zadatak aplikacije

Za IMU (stvarni ili simulirani žiroskop + podaci akcelerometra) neka AI generira integralni filtar i osigura da se dt izračunava iz stvarne vremenske oznake. Zatim: (1) isprobajte alfu za 0,90, 0,98 i 1,0 i promatrajte ravnotežu pomaka i buke, (2) dodajte namjerni fiksni pomak (pogreška kalibracije) senzoru i pogledajte kako fuzijski izlaz pomiče, (3) pretvorite podatke u MQTT JSON shemu i dodajte vremensku oznaku i polja jedinica. Zabilježite koja alfa vrijednost daje najuravnoteženiji rezultat za vaše podatke i koliko pomak kalibracije iskrivljuje izlaz.