Üksus 4 / 9

Sensor Fusion ja IoT andmete integreerimine

Kasu:

  • Võimalus konstrueerida fusiooniloogikat (integraator/Kalmani filter), mis ühendab IMU, kodeerija ja kaugusanduri andmed tehisintellektiga
  • Võimalus AI abil konfigureerida ja tõlgendada MQTT-põhiseid asjade Interneti andmevooge ja telemeetriat
  • Võimalus tuvastada ja parandada anduri müra, kalibreerimise ja aja sünkroonimise probleeme AI väljundis

Ükski andur pole täiuslik. Güroskoop on lühiajaliselt väga täpne, kuid aja jooksul triivib. Kiirendusmõõtur on pikas perspektiivis stabiilne, kuid saab vibratsioonist müra. Kooder mõõdab asendit täpselt, aga see on vale, kui on libisemine. GPS töötab laial alal, kuid on madala sagedusega ja mürarikas. Mehhatroonikainsener peab tootma nende ebatäiuslike andurite põhjal ühe usaldusväärse tõe; See on andurite liitmine. Veelgi enam, tänapäevastes süsteemides ei jää need andmed ainult lokaalseks, vaid liiguvad IoT võrkude kaudu pilve- ja juhtimiskeskustesse. Tehisintellekt on võimas abivahend nii liitalgoritmide seadistamisel kui ka asjade Interneti-telemeetria konfigureerimisel ja tõlgendamisel. Selles üksuses käsitleme täiendavat filtrit, Kalmani filtri loogikat ja seda, kuidas seadistada MQTT-põhist IoT-voogu koos tehisintellektiga ning püüda müra ja sünkroonimislõksu.

Miks Sensor Fusion?

Igal anduril on "hea sagedusala". Fusiooni eesmärk on kasutada iga andurit piirkonnas, kus see on tugev, ja toetada seda teisega piirkonnas, kus see on nõrk.

andur

tugev külg

nõrkus

güroskoop

Lühiajaline nurkkiirus, kiire reageerimine

Aja jooksul triiv

kiirendusmõõtur

Pikaajaline kalde võrdlus (gravitatsioon)

Vibratsioon/müra liikumisel

kodeerija

Kõrge eraldusvõimega asukoht

Libisemise/tagasilöögi viga

GPS

absoluutne positsioon

Madal sagedus, müra, siseruumides puudub

Ühele andurile tuginemine toob süsteemi selle anduri nõrkuse. Näiteks Fusion ühendab güroskoobi kiire, kuid triiviva nurga kiirendusmõõturi aeglase, kuid püsiva referentsiga, andes nurga, mis on nii kiire kui ka triivivaba.

Täiendav filter

Lihtsaim ja levinum liitmik on täiendav filter. Idee on intuitiivne: usaldage güroskoopi kõrgel sagedusel (kiire muutus), kiirendusmõõturit madalal sagedusel (aeglane, stabiilne). Üherealine kokkuvõte:

# Täiendav filter: valu hindamine (kõrgus) # alfa ~ 0,98 : rohkem güroskoobile, vähem kiirendusmõõturile (kraadides/sek) acceleration_ange : kiirendusmõõturi järgi arvutatud nurk (kraadides) dt : proovivõtuperiood (s) """ gyrod_pac # integreeritud * gyrod_pacpe = eelmine + güroskoop gyro_pace + (1 - alfa) * acceleration_angle# Kontrollimise loogika: puhas güroskoop (triivib), kui alfa=1, # kui alfa=0 puhas kiirendusmõõtur (mürarikas).

Koefitsient alfa määrab siin tasakaalu: kui see on 1 lähedal, toetub see güroskoopile (triivimise oht suureneb), kui see on 0 lähedal, siis kiirendusmõõturile (müra suureneb). Tüüpiline väärtus on 0,95–0,98. AI võib seda väärtust soovitada, kuid õige alfa sõltub teie süsteemi diskreetimissagedusest ja müra iseloomust; seadistatakse eksperimentaalselt.

Näpunäide: AI-le integreeritud filtri printimisel küsige kindlasti, kuidas dt mõõdetakse. Enamik vigu tuleneb eeldusest, et dt on konstantne, kuid tegelikkuses on tsükliaeg erinev. Mõõtke dt real koos millis()/ajatempliga, ärge kirjutage konstante.

Kalmani filtri loogika

Täiendav filter on lihtne, kuid ei modelleeri mürastatistikat. Kalmani filter annab optimaalse (teatud eelduste korral) hinnangu, modelleerides tõenäosuslikult anduri müra ja protsessi ebakindlust. See toimib kahes etapis:

  1. Ennustamine: ennustage süsteemi mudeli abil järgmist olukorda ja selle määramatust.
  2. Värskendus: kaaluge uut mõõtmist mõõtmise usaldusväärsusega (Kalmani võimendus) ja korrigeerige hinnangut.

Kalman gain K vastab automaatselt igal sammul küsimusele "kas ma peaksin mõõtmist või mudelit rohkem usaldama". Kui mõõtmismüra on suur, muutub K väiksemaks (mudeli usaldusväärsus), kui protsessi määramatus on suur, muutub K suuremaks (kindlustunne mõõtmisel). AI kirjutab lihtsalt ühemõõtmelise Kalmani filtri; kuid teie ülesanne on valida õigesti müra kovariatsioonid (Q, R) ja need tulenevad süsteemi tegelikust mürast.

Tähelepanu: AI poolt antud Q (protsessimüra) ja R (mõõtmismüra) väärtused on näidis/kohahoidja. Kui te ei määra neid süsteemi tegeliku mõõtemüra (nt anduri paigaloleku ajal mõõdetud dispersiooni) põhjal, on filter kas liiga aeglane või liiga mürarikas. Ärge usaldage tehisintellekti poolt "tõelise väärtusena" antud kovariatsioone.

IoT andmevoog: MQTT ja telemeetria

Fusiooniga toodetud puhtad andmed transporditakse tavaliselt keskusesse asjade Interneti-võrgu kaudu. Valdkonnas levinuim protokoll on MQTT: kerge, avaldamis-tellimismudel, mis sobib väikese ribalaiusega. AI loob kiiresti MQTT avaldaja/abonendi koodi ja JSON-telemeetria skeemi.

import json, timeimport paho.mqtt.client as mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast(temperatuur, temperatuur, vibration_rms): sõnum = { "ts": timestamp. "valu_deg": round(valu, 2), "temperature_c": round(temperatuur, 1), "vibration_rms": round(temperatuur_rms, 3), "unit": {"pain": "deg", "temperature": "C", "vibration": "mm/s"} } client qos=1)# qos=1: tarnitud vähemalt üks kord. qos=0 kasutamine (võib kaduda) kriitiliste andmete puhul.

Siin on olulised kaks tehnilist otsust: (1) ajatempli (ts) iga teade – erinevate andurite diskreetimine toimub erinevatel aegadel, sünkroniseerimine on võimalik ainult ajatempliga; (2) QoS tase – kriitilised andmed kasutavad vähemalt qos=1 (edastatakse vähemalt üks kord), qos=0 võimaldab sõnumite kadumist.

Müra, kalibreerimine ja sünkroonimine

Ükskõik kui hea liitmine ka poleks, moonutavad tulemust kolm sisendiga seotud probleemi:

  • Müra: kui anduri töötlemata andmed lähevad sulandumisse ilma filtreerimata, on ka liitmise väljund mürarikas. Vajalik võib olla eelfiltreerimine (keskmine, madalpääs).
  • Kalibreerimine: nihke- ja skaalavead (nt kiirendusmõõturi nullpunkti nihkumine) eksitavad süstemaatiliselt fusiooni. Andurid tuleb enne kasutamist kalibreerida.
  • Aja sünkroonimine: erinevatel kiirustel (nt 10 Hz GPS ja 1 kHz IMU) võetud andurite joondamiseks on vaja ajatemplit ja interpoleerimist.

Tehisintellekt võib need sammud koodile lisada, kuid kas igaüks on vajalik ja selle parameetrid on teie süsteemile omased. AI-väljundis "kus on kalibreerimine?" ja "kas ajatemplid on joondatud?" Küsige kindlasti küsimusi.

Nõrk viip / Tugev viip

NÕRK:"Arvutage nurk IMU andmete põhjal." (Milline filter? Kas triivi käsitletakse? Kuidas dt? Ebaselge.) STRONG:"Kombineerige MPU6050 kiirendusmõõturi ja güroskoobi andmed integreeritud filtriga ja hinnake kaldenurka. Arvutage dt reaalajas ajatempli järgi, ärge eeldage konstanti. Määrake parameetriks alfa nurk parameetriga accculatemeter.9eleroult). tane2 Filtreerige klassina, säilitage eelmine nurk, lisage valikuline keskmine müra eelfilter.

Mini korpus

Robootikainsener Selin soovib AI-st täiendavat filtrit kaherattalise tasakaalustusroboti nurga hindamiseks. AI annab puhta koodi, kuid robot kaldub aeglaselt ühele küljele. Selin kontrollib dt: kood eeldab, et dt on konstantne 0,01 s, samas kui tsükli aeg varieerub Bluetoothi ​​telemeetria tõttu. Kui dt arvutatakse reaalsest ajatemplist, siis triiv väheneb, kuid ei kao täielikult. Seejärel vaatab ta kiirendusmõõturi kalibreerimist; Isegi kui andur on paigal, on nihe 2°. Kui eemaldan kalibreerimisnihke, seisab robot püsti. Lõpuks märkab ta, et ta kasutab MQTT kaudu telemeetria edastamisel väärtust qos=0 ja suurendab selle kriitilise nurga andmete puhul väärtuseni qos=1. AI tarnis termotuumaskeleti minutitega; kuid inseneri kontroll tuvastas kolm süsteemispetsiifilist probleemi: muutuja dt, kalibreerimise nihe ja QoS.

Levinud vead

  • Eeldades, et dt on konstantne, samas kui tsükli aeg varieerub (sulandumine triivib).
  • Andurite sulatamine ilma neid kalibreerimata (süstemaatiline nihe).
  • Püüab joondada erineva kiirusega andureid ilma ajatemplita.
  • Lahkudes AI näidisväärtusega, mõõtmata Kalmani Q/R kovariante tegelikust mürast.
  • Sõnumi kadumise lubamine, kasutades kriitilistel asjade Interneti-andmetel qos=0.
  • Toores mürarikaste andmete andmine fusioonile ilma eelfiltreerimiseta.

Kokkuvõttes

  • Fusion kasutab iga andurit sageduspiirkonnas, kus see on tugev, ja kompenseerib selle nõrkust.
  • Komplemendifilter on lihtne; Loob güroskoobi ja kiirendusmõõturi tasakaalu alfaga.
  • Kalmani filter modelleerib müra tõenäosuslikult; Q/R pärineb reaalsest süsteemist.
  • MQTT telemeetria puhul on ajatempli ja asjakohane QoS kriitilised inseneriotsused.
  • Müra, kalibreerimine ja aja sünkroniseerimine määravad fusiooni kvaliteedi.
  • dt mõõdetakse reaalajas; kalibreerimist ja QoS-i kontrollitakse ilma seda tehisintellektile jätmata.

Rakenduse ülesanne

IMU (päris või simuleeritud güroskoop + kiirendusmõõturi andmed) jaoks laske tehisintellektil luua integraalne filter ja veenduda, et dt arvutatakse reaalajatempli põhjal. Seejärel: (1) proovige alfat 0,90, 0,98 ja 1,0 jaoks ning jälgige triivi ja müra tasakaalu, (2) lisage andurile tahtlik fikseeritud nihe (kalibreerimisviga) ja vaadake, kuidas fusiooniväljund triivib, (3) teisendage andmed MQTT JSON-skeemiks ning lisage ajatempli ja ühikuväljad. Pange tähele, milline alfa väärtus annab teie andmete jaoks kõige tasakaalustatuma tulemuse ja kui palju kalibreerimisnihe väljundit moonutab.