Njësia 4 / 9

Fusion sensor dhe Integrimi i të dhënave IoT

Fitimet:

  • Aftësia për të ndërtuar logjikën e bashkimit (integrator/filtër Kalman) që kombinon të dhënat IMU, koduesin dhe sensorin e distancës me AI
  • Aftësia për të konfiguruar dhe interpretuar rrjedhat e të dhënave IoT të bazuara në MQTT dhe telemetrinë me ndihmën e AI
  • Aftësia për të zbuluar dhe korrigjuar zhurmën e sensorit, kalibrimin dhe sinkronizimin e kohës në daljen e AI

Asnjë sensor nuk është i përsosur. Xhiroskopi është shumë i saktë në afat të shkurtër, por lëviz me kalimin e kohës. Akselerometri është i qëndrueshëm në afat të gjatë, por merr zhurmë nga dridhjet. Koduesi mat pozicionin me saktësi, por është i gabuar kur ka një rrëshqitje. GPS funksionon në një zonë të gjerë, por është me frekuencë të ulët dhe me zhurmë. Inxhinieri i mekatronikës duhet të prodhojë një të vërtetë të vetme dhe të besueshme nga këta sensorë të papërsosur; Ky është bashkimi i sensorëve. Për më tepër, në sistemet moderne, këto të dhëna jo vetëm që mbeten lokale, por rrjedhin në qendrat cloud dhe të kontrollit nëpërmjet rrjeteve IoT. Inteligjenca artificiale është një ndihmë e fuqishme si në vendosjen e algoritmeve të bashkimit ashtu edhe në konfigurimin dhe interpretimin e telemetrisë IoT. Në këtë njësi, ne mbulojmë filtrin plotësues, logjikën e filtrit Kalman dhe mënyrën e konfigurimit të rrjedhës së IoT të bazuar në MQTT me AI dhe kurthe të zhurmës dhe sinkronizimit.

Pse Fusion Sensor?

Çdo sensor ka një "zonë të mirë të frekuencës". Qëllimi i shkrirjes është të përdoret çdo sensor në zonën ku është i fortë dhe ta mbështesë atë me tjetrin në zonën ku është i dobët.

sensor

pikë e fortë

dobësi

xhiroskop

Shpejtësia këndore afatshkurtër, përgjigje e shpejtë

Drift me kalimin e kohës

akselerometri

Referenca afatgjatë e pjerrësisë (graviteti)

Dridhje/zhurmë në lëvizje

kodues

Vendndodhja me rezolucion të lartë

Gabim i rrëshqitjes/kthimit

GPS

pozicion absolut

Frekuencë e ulët, zhurmë, pa ambiente të brendshme

Mbështetja në një sensor të vetëm paraqet dobësinë e atij sensori në sistem. Fusioni, për shembull, kombinon këndin e shpejtë por lëvizës të xhiroskopit me referencën e ngadaltë por të qëndrueshme të përshpejtuesit, duke dhënë një kënd që është njëkohësisht i shpejtë dhe pa lëvizje.

Filtri plotësues

Fuzioni më i thjeshtë dhe më i zakonshëm është filtri plotësues. Ideja është intuitive: besoni xhiroskopit në frekuencë të lartë (ndryshim i shpejtë), akselerometri në frekuencë të ulët (i ngadalshëm, i qëndrueshëm). Përmbledhje me një rresht:

# Filtri plotësues: vlerësimi i dhimbjes (katërsia) # alfa ~ 0,98 : më shumë për xhiroskopin, më pak për përshpejtuesin (gradë/sek) shpejtësia_përshpejtimi : këndi i llogaritur nga akselerometri (gradë) dt : periudha e marrjes së mostrës (sek) """ gyro_pactergy = integrateroscopes alfa * gyro_pace + (1 - alfa) * acceleration_angle# Logjika e verifikimit: xhiroskop i pastër (drifts) nëse alfa=1, # nëse alfa=0 akselerometri i pastër (zhurmë).

Koeficienti alfa këtu përcakton balancën: nëse është afër 1, ai mbështetet në xhiroskop (rreziku i lëvizjes rritet), nëse është afër 0, mbështetet në përshpejtuesin (zhurma rritet). Vlera tipike është 0,95-0,98. AI mund të sugjerojë këtë vlerë, por alfa e saktë varet nga shpejtësia e mostrës dhe karakteri i zhurmës së sistemit tuaj; vendoset eksperimentalisht.

Këshillë: Kur printoni një filtër integral në AI, sigurohuni që të pyesni se si matet dt. Shumica e gabimeve vijnë duke supozuar se dt është konstante, por në realitet koha e ciklit ndryshon. Matni dt real me millis()/vulën kohore, mos shkruani konstante.

Logjika e filtrit Kalman

Filtri plotësues është i thjeshtë, por nuk modelon statistikat e zhurmës. Filtri Kalman prodhon një vlerësim optimal (nën supozime të caktuara) duke modeluar në mënyrë probabilistike zhurmën e sensorit dhe pasigurinë e procesit. Ajo funksionon në dy hapa:

  1. Parashikoni: Parashikoni situatën e ardhshme dhe pasigurinë e saj me modelin e sistemit.
  2. Përditësim: Peshoni matjen e re kundrejt besueshmërisë së matjes (fitimi Kalman) dhe korrigjoni vlerësimin.

Kalman gain K i përgjigjet automatikisht pyetjes "a duhet t'i besoj më shumë matjes apo modelit" në çdo hap. Nëse zhurma e matjes është e madhe, K bëhet më e vogël (besimi në model), nëse pasiguria e procesit është e madhe, K bëhet më e madhe (besimi në matje). AI shkruan lehtësisht një filtër Kalman njëdimensional; por është detyra juaj të zgjidhni saktë kovarianca të zhurmës (`Q`, `R`) dhe ato vijnë nga zhurma aktuale e sistemit.

Vëmendje: Vlerat Q (zhurma e procesit) dhe R (zhurma e matjes) të dhëna nga AI janë kampion/vendndodhës. Nëse këto nuk i përcaktoni nga zhurma aktuale e matjes së sistemit (p.sh. varianca e matur kur sensori është i palëvizshëm), filtri do të jetë ose shumë i ngadalshëm ose shumë i zhurmshëm. Mos u besoni kovariancave të dhëna nga AI si "vlera e vërtetë".

Rrjedha e të dhënave IoT: MQTT dhe telemetria

Të dhënat e pastra që prodhoni me shkrirje zakonisht transportohen në qendër nëpërmjet një rrjeti IoT. Protokolli më i zakonshëm në industri është MQTT: model i lehtë, publiko-subscribe, i përshtatshëm për bandwidth të ulët. AI krijon shpejt kodin e botuesit / pajtimtarit MQTT dhe skemën e telemetrisë JSON.

import json, timeimport paho.mqtt.client as mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast(temperatura, temperature, vibration_rms): message = { "ts": time.time condition(), #time.time (), # time. 2), "temperatura_c": rrumbullakët(temperatura, 1), "vibrimi_rms": rrumbullakët(temperatura_rms, 3), "njësia": {"dhimbja": "gradë", "temperatura": "C", "dridhja": "mm/s"} } klient.publish("machine/line.1/sensor", qo. qos=1: dorëzuar të paktën një herë. Përdorimi i qos=0 (mund të humbasë) në të dhëna kritike.

Dy vendime inxhinierike janë të rëndësishme këtu: (1) vulosje kohore (ts) çdo mesazh - sensorë të ndryshëm janë mostruar në kohë të ndryshme, sinkronizimi është i mundur vetëm me vulosjen kohore; (2) Niveli QoS—të dhënat kritike përdorin të paktën qos=1 (dorëzuar të paktën një herë), qos=0 lejon humbjen e mesazhit.

Zhurma, kalibrimi dhe sinkronizimi

Pavarësisht se sa i mirë është shkrirja, tre probleme me hyrjen shtrembërojnë rezultatin:

  • Zhurma: Nëse të dhënat e papërpunuara të sensorit kalojnë në bashkim pa u filtruar, dalja e shkrirjes do të jetë gjithashtu e zhurmshme. Mund të kërkohet filtrim paraprak (mesatar, kalim i ulët).
  • Kalibrimi: Gabimet e zhvendosjes dhe shkallës (p.sh. pika zero e përshpejtuesit zhvendoset) mashtrojnë sistematikisht shkrirjen. Sensorët duhet të kalibrohen përpara përdorimit.
  • Sinkronizimi i kohës: Vënia kohore dhe interpolimi kërkohet për të rreshtuar sensorët e kampionuar me shpejtësi të ndryshme (p.sh. GPS 10 Hz me IMU 1 kHz).

AI mund t'i shtojë këto hapa në kod, por nëse secili kërkohet dhe parametrat e tij janë specifikë për sistemin tuaj. Në daljen e AI "ku është kalibrimi?" dhe "a janë të përafruara vulat kohore?" Sigurohuni që të bëni pyetje.

Prompt i dobët / Prompt i fortë

I DOBËT:"Llogarit këndin nga të dhënat IMU."(Cili filtër? A trajtohet zhvendosja? Sa dt? E paqartë.) STRONG:"Kombinoni të dhënat e akselerometrit dhe xhiroskopit nga MPU6050 me filtrin integral dhe vlerësoni këndin e lartësisë. Llogaritni dt nga vula kohore reale, mos supozoni konstante. caktoni alfaometrin decelerofault si paraprakisht. tane2 Filtro si shkrim si klasë, mbaje këndin e mëparshëm, shto parafiltër opsional mesatar për zhurmën.

Mini Case

Inxhinieri i robotikës Selin dëshiron një filtër plotësues nga AI për vlerësimin e këndit në një robot balancues me dy rrota. AI jep një kod të pastër, por roboti ngadalë anon në njërën anë. Selin kontrollon dt: kodi supozon se dt është konstante 0,01 s, ndërsa koha e ciklit ndryshon për shkak të telemetrisë Bluetooth. Kur dt llogaritet nga vula kohore reale, zhvendosja zvogëlohet, por nuk zhduket plotësisht. Pastaj ai shikon kalibrimin e akselerometrit; Edhe kur sensori është i palëvizshëm, ka një zhvendosje prej 2°. Kur heq kompensimin e kalibrimit, roboti qëndron drejt. Së fundi, vëren se përdor qos=0 kur transmeton telemetrinë përmes MQTT dhe e rrit atë në qos=1 për të dhënat e këndit kritik. AI dorëzoi skeletin e shkrirjes në minuta; por verifikimi i inxhinierit kapi tre çështje specifike të sistemit: variablin dt, kompensimin e kalibrimit dhe QoS.

Gabimet e zakonshme

  • Duke supozuar se dt është konstante, ndërsa koha e ciklit ndryshon (driftimet e shkrirjes).
  • Kombinimi i sensorëve pa i kalibruar (kompensimi sistematik).
  • Përpjekja për të lidhur sensorë me shpejtësi të ndryshme pa vulosje kohore.
  • Duke u larguar me vlerën e mostrës së AI-së pa matur kovarianca të Kalman Q/R nga zhurma reale.
  • Lejimi i humbjes së mesazhit duke përdorur qos=0 në të dhënat kritike të IoT.
  • Dhënia e të dhënave të papërpunuara të zhurmshme në fuzion pa filtrim paraprak.

Në përmbledhje

  • Fusion përdor çdo sensor në rajonin e frekuencës ku është i fortë dhe kompenson dobësinë e tij.
  • Filtri i komplementit është i thjeshtë; Vendos ekuilibrin xhiroskop-akselerometër me alfa.
  • Filtri Kalman modelon zhurmën sipas probabilitetit; Q/R vjen nga sistemi real.
  • Në telemetrinë MQTT, vulosja e kohës dhe QoS e përshtatshme janë vendime inxhinierike kritike.
  • Zhurma, kalibrimi dhe sinkronizimi i kohës përcaktojnë cilësinë e shkrirjes.
  • dt matet në kohë reale; kalibrimi dhe QoS verifikohen pa e lënë atë në AI.

Detyra e aplikimit

Për një IMU (të dhëna të vërteta ose të simuluara xhiro + akselerometri) bëni që AI të gjenerojë filtrin integral dhe sigurohuni që dt të llogaritet nga vula kohore reale. Më pas: (1) provoni alfa për 0.90, 0.98 dhe 1.0 dhe vëzhgoni balancën e lëvizjes dhe zhurmës, (2) shtoni një zhvendosje fikse të qëllimshme (gabim kalibrimi) në sensor dhe shikoni se si lëviz dalja e shkrirjes, (3) konvertoni të dhënat në skemën MQTT JSON dhe shtoni vulën kohore dhe fushat e njësisë. Vini re se cila vlerë alfa jep rezultatin më të balancuar për të dhënat tuaja dhe sa kompensimi i kalibrimit e shtrembëron daljen.