Faida:
- Uwezo wa kuunda mantiki ya muunganisho (kichungi cha kiunganishi/Kalman) kinachochanganya IMU, kisimbaji na data ya kitambuzi cha umbali na AI.
- Uwezo wa kusanidi na kutafsiri mitiririko ya data ya IoT yenye msingi wa MQTT na telemetry kwa msaada wa AI.
- Uwezo wa kugundua na kusahihisha kelele ya sensorer, urekebishaji na maswala ya usawazishaji wa wakati katika pato la AI
Hakuna kihisi ambacho ni kamilifu. Gyroscope ni sahihi sana kwa muda mfupi, lakini inapita kwa muda. Kipimo cha kasi ni thabiti kwa muda mrefu lakini hupata kelele kutoka kwa mtetemo. Kisimbaji hupima nafasi kwa usahihi, lakini si sahihi wakati kuna mtelezo. GPS inafanya kazi katika eneo pana lakini ni masafa ya chini na kelele. Mhandisi wa mechatronics lazima atoe ukweli mmoja, wa kutegemewa kutoka kwa vitambuzi hivi visivyo kamili; Hii ni mchanganyiko wa sensor. Aidha, katika mifumo ya kisasa, data hii haibaki tu ya ndani, lakini inapita kwenye vituo vya wingu na udhibiti kupitia mitandao ya IoT. Akili Bandia ni msaada mkubwa katika kusanidi algoriti za muunganisho na kusanidi na kutafsiri telemetry ya IoT. Katika kitengo hiki, tunashughulikia kichujio cha ziada, mantiki ya kichujio cha Kalman na jinsi ya kusanidi mtiririko wa IoT kulingana na MQTT na AI na kunasa mitego ya kelele na usawazishaji.
Kwa nini Sensor Fusion?
Kila sensor ina "eneo la mzunguko mzuri". Madhumuni ya muunganisho ni kutumia kila kihisi katika eneo ambapo kina nguvu na kukiunga mkono na kingine katika eneo ambalo ni dhaifu.
sensor
hatua kali
udhaifu
gyroscope
Kasi ya angular ya muda mfupi, majibu ya haraka
Drift baada ya muda
kipima kasi
Rejeleo la muda mrefu la mteremko (mvuto)
Mtetemo/kelele kwenye harakati
encoder
Eneo la ubora wa juu
Hitilafu ya kuteleza/ kurudi nyuma
GPS
msimamo kamili
Mzunguko wa chini, kelele, hakuna ndani
Kutegemea sensor moja huleta udhaifu wa sensor hiyo kwenye mfumo. Fusion, kwa mfano, inachanganya pembe ya kasi lakini inayopeperuka ya gyroscope na marejeleo ya polepole lakini thabiti ya kiongeza kasi, na kutoa pembe ambayo ni ya haraka na isiyo na mteremko.
Kichujio cha Kukamilisha
Mchanganyiko rahisi na wa kawaida ni kichujio cha ziada. Wazo ni angavu: amini gyroscope kwa mzunguko wa juu (mabadiliko ya haraka), accelerometer kwa mzunguko wa chini (polepole, imara). Muhtasari wa mstari mmoja:
# Kichujio cha ziada: ukadiriaji wa maumivu (lami) # alpha ~ 0.98 : zaidi kwa gyroscope, chini ya kipima kasi (digrii/sec) acceleration_ange : pembe inayokokotolewa kutoka kipima kasi (digrii) dt : kipindi cha sampuli (sek) """ gyro_pac gyroskopu = gyroskopu ya awali *rejesho la awali * gyroskopu = alpha iliyounganishwa gyro_pace + (1 - alpha) * acceleration_angle# Mantiki ya uthibitishaji: gyroscope safi (drifts) ikiwa alpha=1, # ikiwa alpha=0 kipima kasi cha kasi (chenye kelele).
Mgawo wa alpha hapa huamua usawa: ikiwa ni karibu na 1, inategemea gyroscope (hatari ya kuongezeka kwa drift), ikiwa ni karibu na 0, inategemea accelerometer (kelele huongezeka). Thamani ya kawaida ni 0.95–0.98. AI inaweza kupendekeza thamani hii, lakini alfa sahihi inategemea kiwango cha sampuli ya mfumo wako na tabia ya kelele; imewekwa kwa majaribio.
Kidokezo: Unapochapisha kichujio muhimu kwa AI, hakikisha kuuliza jinsi dt inavyopimwa. Makosa mengi hutoka kwa kudhani dt ni ya kila wakati lakini kwa kweli wakati wa mzunguko hutofautiana. Pima dt real na millis()/timestamp, usiandike viunga.
Mantiki ya Kichujio cha Kalman
Kichujio cha nyongeza ni rahisi lakini hakionyeshi takwimu za kelele. Kichujio cha Kalman hutoa makadirio bora (chini ya dhana fulani) kwa kuiga kelele za kihisia zinazowezekana na mchakato wa kutokuwa na uhakika. Inafanya kazi katika hatua mbili:
- Bashiri: Tabiri hali inayofuata na kutokuwa na uhakika kwake na muundo wa mfumo.
- Sasisha: Pima kipimo kipya dhidi ya uaminifu wa kipimo (Faida ya Kalman) na urekebishe makadirio.
Kalman gain K hujibu swali kiotomatiki "ninapaswa kuamini kipimo au mfano zaidi" katika kila hatua. Ikiwa kelele ya kipimo ni kubwa, K inakuwa ndogo (kujiamini katika mfano), ikiwa kutokuwa na uhakika wa mchakato ni kubwa, K inakuwa kubwa (kujiamini katika kipimo). AI huandika kwa urahisi kichujio cha Kalman chenye mwelekeo mmoja; lakini ni kazi yako kuchagua covariances za kelele (`Q`, `R`) kwa usahihi na zinatoka kwa kelele halisi ya mfumo.
Makini: Thamani za Q (mchakato wa kelele) na R (kelele ya kipimo) zinazotolewa na AI ni sampuli/kishika nafasi. Usipobainisha haya kutokana na kelele halisi ya kipimo ya mfumo (k.m. tofauti inayopimwa wakati kihisi kimesimama), kichujio kitakuwa polepole sana au chenye kelele nyingi. Usiamini nakala zilizotolewa na AI kama "thamani ya kweli".
Mtiririko wa data wa IoT: MQTT na Telemetry
Data safi unayotoa kwa muunganisho kawaida husafirishwa hadi katikati kupitia mtandao wa IoT. Itifaki ya kawaida katika sekta hiyo ni MQTT: nyepesi, modeli ya kuchapisha-kujiandikisha, inayofaa kwa bandwidth ya chini. AI huanzisha kwa haraka msimbo wa mchapishaji/msajili wa MQTT na schema ya telemetry ya JSON.
agiza json, timeimport paho.mqtt.client kama mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast(joto, halijoto, vibration_rms): message = {"ts": time.time --": kwa ajili ya maingiliano_ya muda round(maumivu, 2), "temperature_c": round(joto, 1), "vibration_rms": round(joto_rms, 3), "unit": {"pain": "deg", "temperature": "C", "vibration": "mm/s"} } client.publish("machine/line1/sendumps(s) qos=1: imewasilishwa angalau mara moja. Kutumia qos=0 (inaweza kupotea) kwenye data muhimu.
Maamuzi mawili ya kihandisi ni muhimu hapa: (1) kuweka muhuri wa nyakati (ts) kila ujumbe—vihisi tofauti huchukuliwa sampuli kwa nyakati tofauti, ulandanishaji unawezekana tu kwa kuweka alama za nyakati; (2) Kiwango cha QoS—data muhimu hutumia angalau qos=1 (iliyowasilishwa angalau mara moja), qos=0 inaruhusu kupoteza ujumbe.
Kelele, Urekebishaji na Usawazishaji
Haijalishi jinsi mchanganyiko ni mzuri, shida tatu na pembejeo hupotosha matokeo:
- Kelele: Ikiwa data ya kihisi mbichi itaunganishwa bila kuchujwa, pato la muunganisho pia litakuwa na kelele. Kuchuja mapema (wastani, pasi ya chini) kunaweza kuhitajika.
- Urekebishaji: Hitilafu za kurekebisha na kupima (k.m. nukta sifuri ya kipima kasi huhamishwa) hupotosha muunganisho huo kwa utaratibu. Sensorer lazima zirekebishwe kabla ya matumizi.
- Usawazishaji wa wakati: Uwekaji mpangilio wa nyakati na ukalimani unahitajika ili kupanga vitambuzi vilivyotolewa kwa viwango tofauti (k.m. GPS 10 Hz na 1 kHz IMU).
AI inaweza kuongeza hatua hizi kwenye nambari, lakini ikiwa kila moja inahitajika na vigezo vyake ni maalum kwa mfumo wako. Katika pato la AI "urekebishaji uko wapi?" na "je muhuri wa muda umelingana?" Hakikisha kuuliza maswali.
Uhamasishaji dhaifu / Uhamasishaji Wenye Nguvu
DHAIFU:"Kokotoa pembe kutoka kwa data ya IMU."(Kichujio kipi? Inashughulikiwa? Dt? Si wazi.)STRONG:"Changanya data ya kipima kasi kasi na gyroscope kutoka MPU6050 na kichujio muhimu na kadiria pembe ya sauti. Kokotoa dt kutoka kwa muhuri wa muda halisi, usichukue mara kwa mara. Weka alpha kama kigezo cha kigezo cha kikokotoo cha 0.9 (defa). tane2. Chuja kama andika kama darasa, weka pembe ya awali, ongeza kichujio cha wastani cha kelele."
Kesi Ndogo
Mhandisi wa roboti Selin anataka kichujio kijacho kutoka kwa AI kwa ukadiriaji wa pembe kwenye roboti ya kusawazisha ya magurudumu mawili. AI inatoa nambari safi, lakini roboti polepole hutegemea upande mmoja. Selin hukagua dt: msimbo huchukulia dt ni 0.01 s mara kwa mara, ilhali muda wa mzunguko hutofautiana kutokana na telemetry ya Bluetooth. Wakati dt inakokotolewa kutoka kwa muhuri wa muda halisi, drift hupungua lakini haipotei kabisa. Kisha anaangalia calibration ya accelerometer; Hata wakati sensor ni stationary kuna 2 ° kukabiliana. Ninapoondoa urekebishaji wa kurekebisha, roboti husimama wima. Hatimaye, inatambua kwamba hutumia qos=0 inapotangaza telemetry kupitia MQTT na kuiongeza hadi qos=1 kwa data ya pembe muhimu. AI ilitoa mifupa ya fusion kwa dakika; lakini uthibitishaji wa mhandisi ulipata masuala matatu mahususi ya mfumo: variable dt, urekebishaji wa kurekebisha, na QoS.
Makosa ya Kawaida
- Kwa kudhani dt ni mara kwa mara, ilhali muda wa mzunguko hutofautiana (fusion drifts).
- Kuunganisha sensorer bila kuzirekebisha (kukabiliana kwa utaratibu).
- Kujaribu kupanga vitambuzi vya kasi tofauti bila kuweka muhuri wa wakati.
- Inaondoka na sampuli ya thamani ya AI bila kupima nakala za Kalman Q/R kutoka kwa kelele halisi.
- Kuruhusu upotezaji wa ujumbe kwa kutumia qos=0 kwenye data muhimu ya IoT.
- Kutoa data mbichi yenye kelele ili kuunganishwa bila kuchuja mapema.
Kwa muhtasari
- Fusion hutumia kila kihisi katika eneo la masafa ambapo ni imara na hufidia udhaifu wake.
- Kichujio kinachosaidia ni rahisi; Huanzisha usawa wa gyroscope-accelerometer na alpha.
- mifano ya vichungi vya Kalman hupiga kelele kwa uwezekano; Q/R hutoka kwa mfumo halisi.
- Katika telemetry ya MQTT, kuweka alama za nyakati na QoS inayofaa ni maamuzi muhimu ya kihandisi.
- Kelele, urekebishaji na usawazishaji wa wakati huamua ubora wa muunganisho.
- dt hupimwa kutoka kwa wakati halisi; calibration na QoS zinathibitishwa bila kuiacha kwa AI.
Jukumu la maombi
Kwa IMU (data halisi au iliyoigizwa ya gyro + accelerometer) fanya AI itengeneze kichujio muhimu na uhakikishe kuwa dt imekokotolewa kutoka kwa muhuri halisi wa saa. Kisha: (1) jaribu alpha ya 0.90, 0.98 na 1.0 na uangalie usawa wa kuteleza na kelele, (2) ongeza urekebishaji usiobadilika wa kimakusudi (hitilafu ya urekebishaji) kwenye kitambuzi na uone jinsi matokeo ya muunganisho yanavyosogezwa, (3) badilisha data kuwa schema ya MQTT JSON na kuongeza muhuri wa muda na sehemu za kitengo. Kumbuka ni thamani gani ya alpha inatoa matokeo ya usawa zaidi kwa data yako na ni kiasi gani urekebishaji hupotosha matokeo.