ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Eiropas Sociālais fonds
Prioritāte: 1.1. Augstākā izglītība un zinātne
Pasākums: 1.1.1. Zinātnes un pētniecības potenciāla attīstība Aktivitāte: 1.1.1.2. Cilvēkresursu piesaiste zinātnei
Projekta nosaukums: ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS)
Līguma noslēgšanas datums: 27.11.2009.g. Projekta sākuma datums: 01.01.2010.g. Projekta beigu datums: 31.12.2012.g.
Vienošanās Nr.2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020
Eiropas Savienības fonda finansējuma saņēmējs: Elektronikas un datorzinātņu institūts (EDI)
ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Pārskata numurs Nr.12. par periodu no 01.10.2012.g līdz 31.12.2012.g.
Projekta zinātniskais vadītājs: Xxx Xxxxxx, Ph.D. datorzinātnēs.
Pētījuma projekta izpildītāju saraksts: Xxxxxx Xxxxxxxx, Dr.sc.comp.
Xxxxx Xxxxxx, topošais zinātnieks, Mg.Fizikā. Xxxx Xxxxx, doktorants.
Xxxxxxx Xxxxxxx, doktorants. Xxxxx Xxxxxxxx, doktorants.
Xxxxx Xxxxxx, Mg. Elektronikā. Xxxxxxx Xxxxx, doktorants.
Xxxxxx Xxxxxxxxxx, Mg. Elektronikā. Xxxxx Xxxxxxx, Mg. Elektronikā.
Xxxxx Xxxxxx, Dr.phys.
Xxxxxxx Xxxxxxx, Mg. Elektronikā. Xxxxxx Xxxxxxxx, doktorants.
Xxxxxxxx Xxxxxxxx, Mg. Datorzinātnēs. Xxxxxx Xxxxxxxxxx, Mg. Elektronikā.
ELEKTRONIKAS UN DATORZINĀTŅU INSTITŪTS
Rīga, Latvija 2012.gads
Saturs
Ievads 3
VieSenTIS 3
1 BioSen grupas atskaite 4
1.1 Ievads 4
1.2 Saistītie risinājumi 5
1.3 Risinājums 5
1.3.1 Sejas detektēšana 5
1.3.2 Acu lokalizācija 6
1.3.3 Sejas atpazīšana 7
1.4 Eksperimenti un-vai testi 7
1.5 Rezultāti 7
1.6 Kopsavilkums un secinājumi 8
1.7 Nākotnes perspektīvas 8
Literatūra 8
2 CarMote grupas atskaite 9
2.1 Ievads 9
2.2 Saistītie risinājumi 9
2.3 Risinājums 10
2.3.1 Navigācijas sistēma 10
2.4 Rezultāti un secinājumi 15
2.5 Nākotnes perspektīvas 15
Literatūra 15
3 EdiMote grupas atskaite 16
3.1 Ievads 17
3.2 EdiMote arhitektūra 18
3.3 Perifērijas moduļi 19
3.3.1 Komunikācijas modulis 19
3.3.2 Signālu konversijas modulis 20
3.3.3 Barošanas modulis 21
Literatūra 21
4 MansOS grupas atskaite 23
4.1 Ievads 23
4.2 Metodika 23
4.3 Rezultāti 25
4.4 Interpretācija 26
4.5 Kopsavilkums un nākotnes perspektīvas 26
Literatūra 27
5 SAntArray grupas atskaite 28
5.1 Ievads 28
5.2 Risinājums 28
5.2.1 Pasīvā elementa vadība slodzes vadība 29
5.2.2 Antenas vadības saskarsne I2C kopnei 29
5.2.3 Sensoru tīkla mezgla emulators 30
5.3 Kopsavilkums 31
Literatūra 31
6 SenSigA grupas atskaite 33
6.1 Ievads 33
6.2 Saistītie risinājumi 34
6.2.1 ASDM ķēdes parametru izvēle 34
6.2.2 Konstanto ASDM parametru neefektivitāte 35
6.3 Risinājums 35
6.4 Rezultāti 37
6.5 Kopsavilkums un secinājumi 38
6.6 Nākotnes perspektīvas 39
Literatūra 39
Ievads
Anotācija
”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS) ir ESF atbalstīts projekts zinātnisko grupu veidošanai. Šis projekts nodarbojas ar bezvadu sensoru un tīklotu iegulto sistēmu pētniecību. Projekta ietvaros ir sekojošas apakšgrupas: BioSen – sensoru sistēmu pielietojumi biometrijā, CarMote – viedās transporta sensoru sistēmas, EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai, MansOS – operētājsistēma un programmatūras rīki bezvadu sensoru un iegulto sistēmu atbalstam, SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās, un SenSigA – sensoru signālu apstrādes metodes. Šajā dokumentā izklāstītas zinātniskās pētniecības aktivitātes un rezultāti augšminētajās grupās. Pielikumā ir iekļautas šajā periodā iesniegtās un apstiprinātas zinātniskās publikācijas. Projektu atbalsta Eiropas Savienības fondi, līguma Nr. 2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020.
VieSenTIS
VieSenTIS grupas galvenais pētniecības virziens ir tīklotu iegulto sistēmu un viedu sensoru risinājumi un pielietojumi cilvēku dzīves kvalitātes uzlabošanai, industrijā un citās nozarēs. Miniatūras iegultās sistēmas ir ar ierobežotiem resursiem, piemēram, enerģijas avots bieži vien ir neliela baterija. Tāpēc ir aktuāli pētīt kā šos resursus pēc iespējas efektīvi izmantot, kā arī radīt rīkus jaunas aparatūras un programmatūras izstrādei. Bez tam, bezvadu sensoriem rodami pielietojumi arvien jaunas dzīves sfērās, kas prasa gan specifisku signāla apstrādi gan pielietojuma metožu pētniecību.
VieSenTIS projektā ir sekojošas apakšgrupas saskaņā ar pētnieku individuālo pieredzi un interesēm:
• BioSen – sensoru sistēmu pielietojumi biometrijā;
• CarMote – viedās transporta sensoru sistēmas;
• EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai;
• MansOS – operētājsistēma un programmatūra bezvadu sensoru un iegulto sistēmu atbalstam;
• SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās;
• SenSigA – sensoru signālu apstrādes metodes.
Turpmākajās nodaļās ir apkopoti galvenie sasniegumi minētajos virzienos.
Nodaļa 1
BioSen grupas atskaite
Anotācija
Šajā atskaitē tiks apskatīti rezultāti, kas ir sasniegti projekta ietvaros. Tika izveidoti vairāki algoritmi automātiskas sejas atpazīšanai. Konkrēti tiek izveidotas pieejas sejas detektēšanai, acu lokalizācijai un sejas atpazīšanai. Šie etapi var kalpot par algoritmisko bāzi iegultajās vai datorbalstītajās sejas atpazīšanas sistēmās. Algoritmu pamatā ir Local Binary Pattern (LBP) transformācija un vairāki attēlu apstrādes un mašīnapmācības un optimizācijas paņēmieni. Algoritmu testēšanai tika izmantota FERET datubāze [1], lai pētījumu rezultāti būtu pieejami un saprotami zinātniskiem kas darbojas šajā jomā.
1.1 Ievads
Ikdienā cilvēki tiek identificēti pēc trīs galvenajiem parametriem: pēc tā, kas viņiem ir (pases, apliecības), pēc tā, ko viņi zina (dažādas paroles un PIN kodi) un pēc tā, kas viņi ir (viņu ķermenis). Drošākais no šie parametriem ir cilvēka ķermenis, jo dokumentus ir iespējams nozagt un viltot, bet paroles uzlauzt. Tieši šī iemesla dēļ BioSen grupa nodarbojas un pēta dažādus cilvēka ķermeņa biometriskos parametrus. Sākotnēji tika apskatīti vairāki bimetriskās atpazīšanas principi, tomēr par primāro pētniecisko virzienu tika izvēlēta sejas atpazīšana. Tika apskatīti vairāki algoritmi automātiskas sejas atpazīšanas uzdevuma risināšanai, tomēr visefektīvākais no izveidotājiem risinājumiem balstās uz Local Binary Patterns transformācijas. Automātisks sejas atpazīšanas algoritms sastāv no vairākiem soļiem:
• Sejas detektēšana. Šīs solis ir paredzēts aptuvenai sejas pozīcijas noteikšanai ieejas attēlā.
• Acu lokalizācija. Sejas detektēšanas etaps var noteikt sejas pozīciju un izmēru ar salīdzinoši lielu kļūdu, kas var negatīvi ietekmēt atpazīšanas procesa precizitāti. Acu lokalizācija ir paredzēta precīzai sejas pozīcijas noteikšanai balstoties uz atskaites punktiem. Par labiem atskaites punktiem var uzskatīt acu zīlītes.
Att. 1.1: Sejas atpazīšanas algoritmu vispārināta blokshēma
• Sejas atpazīšana. Šinī etapā no sejas attēla tiek iegūti sejas parametri, kas pēc iespējas efektīvāk apraksta cilvēka unikalitāti. Parametru vektors tālāk tiek salīdzināts ar datubāzi ar mērķi atrast vislīdzīgāko cilvēku datubāzē.
1.2 Saistītie risinājumi
Šeit minētie algoritmi detalizēti tiek aprakstīti BioSen grupas publikācijās. Pirmais automātiskais sejas atpazīšanas algoritms tiek aprakstīts [4], kur tika piedāvāta sejas un acu detektēšanas pieeja, kas balstās uz LBP un NNC klasifikatora, ka arī vienkāršs sejas atpazīšanas algoritms. Tālāk sejas un acu detektēšana tika attīstīta publikācijā [2], kur NNC klasifikators tiek aizvietots ar Neironu Tīkliem un LBP histogrammas papildinātas ar telpisko informāciju kas paaugstināja detektora precizitāti. Uzlabotais sejas atpazīšanas algoritms tiek piedāvāts [3], kur automātiskais svaru piemeklēšanas algoritms ievērojami paaugstināja NNC klasifikatora precizitāti.
1.3 Risinājums
1.3.1 Sejas detektēšana
Pirmais automātiskā sejas atpazīšanas algoritma etaps ir sejas detektēšana. Vispārināta sejas detektēšanas algoritma blokshēma tiek attēlotā Att. 1.1. Ieejas attēls tiek skenēts ar bīdāmo logu. Katrā loga pozicijā tiek rēķināta objekta LBP reprezentācija, kas mūsu gadījumā ir telpiski bagātināta LBP histogramma. Šī histogramma tālāk tiek klasificēta ar mērķi noteikt piederības klasi – sejas vai „ne-sejas” objekts. Tika izpētīti vairāki klasifikatori un ir dabūti sekojošie rezultāti:
Att. 1.2: Sejas atpazīšanas algoritmu vispārināta blokshēma
• LBP un NNC (Nearest Neighbour Classifier), detektēšanas precizitāte ir 89 %,
• LBP un ANN (Arteficial Neural Network), detektēšanas precizitāte ir 94.2
%,
• LBP un SVM (Support Vector Machines), detektēšanas precizitāte ir 98.2
%.
Ir skaidrs, ka LBP un SVM kombinācija nodrošināja vislabāko sejas detektēšanas precizitāti.
1.3.2 Acu lokalizācija
Otrais automātiskā sejas atpazīšanas algoritma etaps ir acu lokalizācija. Vispārināta acu lokalizācijas algoritma blokshēma tiek attēlotā Att. 1.2. Ieejas sejas attēls tiek skenēts ar bīdāmo logu. Katrā loga pozicijā tiek rēķināta objekta LBP reprezentācija, kas mūsu gadījumā ir telpiski bagātināta LBP histogramma. Šī histogramma tālāk tiek klasificēta ar mērķi noteikt piederības klasi – acs vai „ne-acs” objekts. Tika izpētīti vairāki klasifikatori un ir dabūti sekojošie rezultāti:
• LBP un ANN (Arteficial Neural Network), detektēšanas precizitāte ir 96.7
%,
• LBP un SVM (Support Vector Machines), detektēšanas precizitāte ir 96.3
%.
Šinī gadījumā NNC klasifikators netiek apskatīts jo tas nodrošināja salīdzinoši zemu precizitāti sejas detektēšanas uzdevumā.
Atšķirībā no sejas detektēšanas uzdevuma ANN klasifikators ir efektīvāks par SVM un LBP-ANN kombinācija nodrošināja vislabāko acu lokalizācijas precizitāti.
1.3.3 Sejas atpazīšana
Sejas atpazīšanas algoritmi balstās uz LBP un Multi Scale LBP (MSLBP) transformācijām. Algoritmi tika testēti uz FERET datubāzes un tika dabūti sekojošie rezultāti:
• LBP (k = 8, P = 8, R = 3): 95.8%,
• LBP + Empirical Feature-level Weighting (EFW): 96.2%,
• LBP + EFW + Iterative Feature-level Weighting (IFW): 97.6%,
• LBP + EFW + Iterative Block-level Weighting (IBW): 98.9%,
• MSLBP (L = 11, k = 8, P = 8, nR = 3): 96.8%,
• MSLBP + Mean Filter (MF): 97.8%,
• MSLBP + MF + EFW: 98.1%,
• MSLBP + MF + EFW + IFW: 98.9%,
• MSLBP + MF + EFW + IBW: 99.2%.
• MSLBP + MF + EFW + IBW + PCA (N = 731): 99.1%.
kur k ir reģionu daudzums sejas attēla, (P, R) - LBP operatora parametri, L – LBP reģiona izmērs, nR - MSLBP rādiusu daudzums.
1.4 Eksperimenti un-vai testi
Visi algoritmi tika testēti uz zinātniskajā pasaulē populāras seju datubāzes ar nosaukumu Color FERET. Konkrēti tika izvēlētas fa un fb kopas, kas satur frontālus sejas attēlus. Tātad piedāvātie algoritmi ir paredzēti frontālu attēlu apstrādei.
1.5 Rezultāti
Šeit tiek apkopoti labākie rezultāti, katrām automātiskas sejas atpazīšanas algoritma etapam:
• Sejas detektēšana. LBP + SVM, : 98.2%,
• Acu lokalizācija. LBP + ANN, : 96.7%,
• Sejas atpazīšana. MSLBP + MF + EFW + IBW: 99.2%.
1.6 Kopsavilkums un secinājumi
BioSen grupas darbības rezultātā tika izveidoti vairāki efektīvie attēlu apstrādes algoritmi pielietojumiem biometrijā. Tika izveidots automātisks sejas atpazīšanas algoritms, kas ir raksturīgs ar augsto precizitāti un salīdzinoši lielu skaitļošanas efektivitāti. Par algoritmiem tika sagatavotās vairākās starptautiskas publikācijas, kas ir pieejamas IEEE datubāzē.
1.7 Nākotnes perspektīvas
Nākotnē tiek plānots izstrādāto algoritmisko bāzi pielietot citos projektos un izveidot iegultas sejas atpazīšanas sistēmas demonstrātoru.
Literatūra
[1] xxxx://xxxx.xxxx.xxx/xxxxxxxxxx/.
[2] X. Xxxxxxxx and X. Xxxxxxxx. Local binary patterns and neural network based technique for robust face detection and localization. Proceedings of the Special Interest Group on Biometrics and Electronic Signatures (BIOSIG 2012), pages 147–158, September 2012.
[3] X. Xxxxxxxx and X. Xxxxxxxx. A mini-batch discriminative feature weighting algorithm for lbp - based face recognition. Peoceedings of IEEE International Conference on Imaging Systems and Techniques (IST 2012), pages 170–175, July 2012.
[4] X. Xxxxxxxx and X. Xxxxxxxx. Reduced complexity automatic face recognition algorithm based on local binary patterns. Peoceedings of 19th International Conference on Systems, Signals and Image Processing (IWSSIP 2012), pages 447–450, 2012.
Nodaļa 2
CarMote grupas atskaite
Anotācija
Līdz ar dažādu transporta veidu attīstību, aizvien lielāka nozīme ir viedajām transporta sistēmām, kuras tiek veidotas, izmantojot aparatūras un programmatūras risinājumus. Šie risinājumi ietver gan transporta plūsmu un apkārtējo vidi raksturojošu datu ieguvi, gan arī to apstrādi un koplietošanu. CarMote grupa nodarbojas ar multimodālu datu ieguves un apstrādes problēmu risināšanu transporta nozarē, izmantojot gan dažādu konvenciālu mobilu datortehniku, gan arī speciāli izstrādātas iegultas iekārtas. Šajā darbā ir aprakstītas aktivitātes, kas ir saistītas ar navigācijas sistēmas izstrādi.
2.1 Ievads
CarMote grupas mērķis ir kooperatīva transportlīdzekļa izstrāde, kas spēj efektīvi plānot kustību un pārvietoties līdzīga veida transportlīdzekļu plūsmā. Šī mērķa sasniegšanai tika noteikti vairāki uzdevumi elektronikas, programinženierijas, digitālās signālu apstrādes, bezvadu komunikācijas u.c. jomās. Par kooperatīva transportlīdzekļa izstrādes prasību pamatu tika paņemti GCDC noteikumi [1], kas deva vairākas priekšrocības:
• ekonomēja laiku prasību uzstādīšanai;
• tika izmantots lokāls standarts, kuru izstrādāja un novērtēja professionālu zinātnieku/izstrādātāju grupa;
• varēja veikt sekmīgu izstrādāta risinājuma testēšanu, salīdzinot to ar citu komandu risinājumiem no dažādiem pasaules institūcijam un valstīm;
2.2 Saistītie risinājumi
Kooperatīvo transportlīdzekļu un autonomo transportlīdzekļu izstrāde ir ļoti populārā tēma pasaules zinātnē [2]. Katru gadu parādās ar vien vairāk transportlīdzekļu, līdz ar to efektīva transportlīdzekļu plūsmas plānošana un drošības paaugstināšana ir aizvien svarīgāka. Tēmas attīstību atbalsta dažādu sacensību rīkošana [3, 4].
2.3 Risinājums
2.3.1 Navigācijas sistēma
Iepriekšējās CarMote grupas atskaitēs tika stāstīts par augstas precizitātes navigācijas risinājuma veidošanas progresu, kas atbilstu gan uzstādītām precizitātes prasībam, gan būtu kompakts un viegli lietojams. Apkopojot iepriekšējo darbu var izdarīt sekojošus secinājumus:
• Vairāki eksperimenti rada, ka UKF filtrs, kurš tika veiksmīgi lietots INS sensoru un GPS uztvērēja datu sapludināšanas mērķiem, tomēr ir dārgs skaitlošanas ziņā un tas izmaksas aug eksponenciāli ar dinamiskās sistēmas stāvokļa izmeru;
• Pašlaik INS modulis nodarbojas tikai ar datu iegūšanu, vienkaršo pirmsapstrādi un sūtīšanu datoram, kur turpmāk tiek veikta INS sensoru un GPS uztvērēja datu sapludināšana ar UKF filtru;
• Orientācijas korekcija notiek tikai UKF filtra korekcijas fazes laikā.
Ņemot vērā secinājumus tika nolemts samazināt UKF filtra dinamiskās sistēmas stāvokļa izmēru un turpmāk veikt orientācijas novērtēšanu INS modulī. Tas atļautu gan labāk sadalīt noslodzi, kas varētu būt kritiski pielietojumos ar mazu skaitļošanas jaudu, gan arī biežāk koriģēt orientāciju, kas varētu dod iespēju uzlabot pozīcijas noteikšanas precizitāti.
Apskatīsim jaunu programmatūras arhitektūru (sk. att. 2.1). Lai veiktu efektīvāko orientācijas un pozīcijas novērtēšanu, datu apstrādes noslodze tiek sadalīta starp INS moduli un datoru, kas nākotnē var tikt aizvietots ar iegūlto sistēmu. Tagad INS modulī darbojas DCM filtrs, kas veic INS sensoru datu sapludināšanu, t.i. orientācijas novērtēšanu, kā arī pielieto korekciju, izmantojot GPS uztvērēja ātruma novērtējumu, kad tas ir pieejams. Turpmāk akselerometra dati un orientācijas novērtējums, kā arī GPS uztvērēja dati tiek sūtīti datoram, kur tiek veikta datu sapludināšana, t.i. [tikai] pozīcijas novērtēšana, ar UKF filtra palīdzību.
Att. 2.1: Programmatūras arhitektūra
Orientācijas noteikšana un DCM filtrs
DCM filtrs [5, 6] ir jaudīga orientācijas novērtēšanas metode, kas tomēr neprasa lielu skaitļošanas jaudu. Tā spēj noteikt izsekojama objekta orientāciju ar augstu precizitāti un atjaunot to ļoti bieži. Šī gadījumā orientācijas reprezentācijai tiek lietota DCM (Direction Cosine Matrix) jeb rotācijas matrica, kuru var lietot, lai veikt transformāciju starp dažādam atskaites koordinātu sistēmam:
Qx
(1) Q = Qy - ir vektors (piem., virziens, ātrums, paātrinājums)
Qz
(2) QP - ir vektors Q mērīts izsekojama objekta koordinātu sistēma
(3) QG - ir vektors Q mērīts navigācijas koordinātu sistēma
(4) R =
ryx ryy ryz
rzx rzy rzz
- ir rotācijas matrica
rxx rxy rxz
·
(5) QG = R QP - ir transformācija no izsekojama objekta uz navigācijas koordinātu sistēmu
·
(6) QP = R−1 QG - ir transformācija no navigācijas uz izsekojama objekta koordinātu sistēmu (rotācijas matricas gadījumā R−1 = RT )
Apskatīsim DCM filtra darbības shēmu (sk. att. 2.2). Filtra darbību var sadalīt trijos posmos:
• DCM matricas atjaunošana;
• Kļūdas novērtēšana;
• Kļūdu korekcija ar PI kontroliera palīdzību.
Att. 2.2: DCM filtra darbības shēma
DCM matricas atjaunošana
No kinemātikas ir zināms, ka rotācijas vektora izmaiņu ātrumu var aprakstīt sekojoši:
∂t
(7) ∂r(t) = ω(t) × r(t), kur ω(t) ir rotācijas izmaiņu vektors
∫
Integrējot vienādojuma (7) abas puses, iegūstam sekojošo rotācijas vektora atjaunošanas vienādojumu:
0
(8) r(t) = r(0) + t dΘ(τ ) × r(τ ), kur
(9) dΘ(τ ) = ω(τ )dτ
∫
(10) r(0) - vektora sākuma vērtība
0
(11) t dΘ(τ ) × r(τ ) - vektora izmaiņu vērtība Praksē vienādojumi (8) un (9) tiek lietoti sekojoši:
(12) r(t + dt) = r(t) + r(t) × dΘ(t), kur
(13) dΘ(t) = ω(t)dt
Pielietojot vienādojumus (12) un (13) katrai DCM matricas asij, iegūstam tādu kompaktu vienādojumu:
(14)
R(t + dt) = R(t)
1 dΘz dΘy
− d , kur
Θz 1 −dΘx
−dΘy dΘx 1
(15) dΘx = ωxdt
(16) dΘy = ωydt
(17) dΘz = ωzdt
Skaitļošanas kļūdas (integrēšanas un kvantēšanas dēļ) ar laiku izraisa ortogonalitātes nosacījuma neizpildīšanu DCM matricai, tāpēc šī gadījuma papildus tiek veikta renormalizācija. Pirmais solis ir DCM matricas X un Y rindu skalāra reizinājuma rēķināšana, kas nosaka kļūdu jeb cik liela mērā X un Y rindu vektori ir pagriezti viens pret otru (ideālā gadījuma tie ir ortogonāli un skalārais reizinājums ir 0):
(18) X = rxy un Y = ryy
rxx ryx
rxz
ryz
(19) error = X · Y = XT Y =
rxx rxy rxz
[
] ryx
ryy
ryz
Ņemot vērā izrēķināto kļūdu, pagriezīsim X un Y rindu vektorus pretējos virzienos tā:
(20) r xy
rxx
rxz ryx
(21) ryy
orthogonal
= Xorthogonal = X − error Y
2
2
= Yorthogonal = Y − error X
ryz
orthogonal
Nākamais solis ir DCM matricas Z rindas noteikšana, ko var paveikt izreķinot
Xorthogonal un Yorthogonal vektoru reizinājumu tā:
rzx
(22) rzy rzz
orthogonal
= Zorthogonal = Xorthogonal × Yorthogonal
Un pēdējais solis renormalizācijas procesā ir DCM matricas rindu merogošana, lai nodrošinātu katras rindas vektoru gārumu vienādu ar 1. Viens veids, kā to paveikt ir dalīt katru rindas vektora elementu ar rindas vektora gārumu. Tomēr, ņemot vērā, ka vektoru gārums vienmēr ir tūvu 1, vienkāršākais veids ir Teilora rindas izmantošana tā:
2
(23) Xnormalized = 1 (3 − Xorthogonal · Xorthogonal)Xorthogonal
2
(24) Ynormalized = 1 (3 − Yorthogonal · Yorthogonal)Yorthogonal
2
(25) Znormalized = 1 (3 − Zorthogonal · Zorthogonal)Zorthogonal
Kļūdu novērtēšana
Orientācijas kļūdu novērtēšana sastāv no divam daļam, t.i. tangāžas un sansveres kļūdu novērtēšana, izmantojot akselerometra un GPS uztvērēja datus [7], un kursa kļūdas novērtēšana, izmantojot magnetometra datus.
Lai novērtētu tangāžas un sansveres kļūdas, izmantojot akselerometra un GPS uztvērēja datus, ņemsim sekojošo vektoru kā atskaites vektoru:
(26) Ab(t) = gb(t) − ab(t), kur
(27) gb(t) ir gravitācijas vektors izsekojama objekta koordinātu sistēmā
(28) ab(t) ir paātrinājuma vektors izsekojama objekta koordinātu sistēmā
(29) Ab(t) ir akselerometra dati
Mūsu rotācijas matricas novērtējums veido saiti starp izsekojama objekta un navigācijas koordinātu sistēmam tā:
(30) R(t) · Ab(t) = ge − ae(t), kur
(31) ge ir gravitācijas vektors navigācijas koordinātu sistēmā
(32) ae(t) ir paātrinājuma vektors navigācijas koordinātu sistēmā
(33) R(t) ir rotācijas matricas novērtējums
Ja rotācijas matricas novērtējums būtu pareizs, vienādojums (30) izpildītos, tomēr praksē tas neizpildas žiroskopa vērtību dreifa dēļ. Lai atrisinātu šo problēmu, integrēsim vienādojuma (30) abas puses:
t1
b
e
e
e
(34) ∫ t2 R(τ ) · A (τ ) · dτ = (t2 − t1) · g − (V (t2) − V (t1))
Kā rezultāts, kļūdas novērtējums navigācijas koordinātu sistēmā ir vienāds ar vektoru reizinājumu no vienādojuma (34):
earth
t1
b
e
e
e
(35) error (t2) = ∫ t2 R(τ ) · A (τ ) · dτ × (t2 − t1) · (g − (V (t2) − V (t1)))
Praksē izmantosim kļūdas novērtējumu izsekojama objekta koordinātu sistēmā:
(36) errorbody = errorrollP itch = R(t2) · errorearth(t2)
Savukārt, lai novērtētu kursa kļūdu, izmantojot magnetometra datus, ņemsim sekojošo vektoru kā atskaites vektoru:
(37) errorearth = rxxCOGY − ryxCOGX, kur
(38) COGX = cos(cog)
(39) COGY = sin(cog)
(40) cog ir magnetometra kursa novērtējums
Praksē izmantosim kļūdas novērtējumu izsekojama objekta koordinātu sistēmā:
rzx
(41) errorbody = erroryaw = errorearth rzy
rzz
Kļūdu korekcija ar PI kontroliera palīdzību
Žiroskopa vērtību dreifa korekcija notiek ar PI kontroliera palīdzību tā:
1. solis Tiek aprēķināts kopējas kļūdu korekcijas vektors -
TotalCorrection = WRP · errorrollP itch + WY · erroryaw, kur
WRP un WY ir ietekmes svari
2. solis Tiek aprēķināts proporcionalitātes parameters -
ωP Correction = KP · TotalCorrection
3. solis Tiek aprēķināts integrēšanas parameters -
ωICorrection = ωICorrection + KI · dt · TotalCorrection
4. solis Tiek aprēķināta kopējas korekcijas vērtība -
ωcorrection = ωPCorrection + ωICorrection
5. solis Tiek veikta žiroskopa vērtību korekcija -
ω(t) = ωgyro(t) + ωcorrection(t)
2.4 Rezultāti un secinājumi
Navigācijas sitēmas pilnveidošanas laikā tika paveikts:
• DCM filtra un tas pielietošanas iespēju pētīšana;
• DCM filtra implementācija octave vidē;
• Kombinētas UKF+DCM metodes izstrāde un implementācija octave vidē orientācijas un pozīcijas noteikšanai;
• Eksperimentu veikšana, UKF+DCM metodes pielietošana praksē.
Secinājumi:
• Jauna programmatūras arhitektūra dod iespēju sadalīt skaitļošanas noslodzi un tāda veidā efektivāk izmantot pieejamus skaitļošanas resursus;
• Orientācijas novērtēšana ar DCM filtra palīdzību uzlabo orientācijas noteikšanas precizitāti;
• Uzlabota orientācijas precizitāte paaugstinā arī pozīcijas noteikšanas precizitāti;
• Izveidota pieeja ir labi piemērota ne tikai transportlīdzekļa navigācijas mērķiem, bet arī citiem pielietojumiem, piem., cilvēka kustību izsekošanai.
2.5 Nākotnes perspektīvas
Nākotnē tiek plānota navigācijas sistēmas programmatūras pilnveidošana un attīstīšana, kā arī pielietošana praksē.
Literatūra
[1] GCDC organization. GCDC 2011 Rules & Technology Document Final version, April 2011.
[2] The New York Times: Google Car. xxxx://xxx.xxxxxxx.xxx/0000/00/ 10/science/10google.html.
[3] DARPA Grand Challenge. xxxx://xxx.xxxxxxxxxxxxxxxxxxx.xxx/.
[4] Grand Cooperative Driving Challenge. xxxx://xxx.xxxx.xxx/.
[5] X. Xxxxxx et al. Complementary filters. xxxx://xxxxxxxxx.xxxxxxxxxx. com/files/MahonyPapers.zip.
[6] W. Premerlani and P. Bizard. Direction Cosine Matrix IMU: Theory. http:
//xxxxxxxxx.xxxxxxxxxx.xxx/xxxxx/XXXXxxxx0.xxx.
[7] W. Premerlani. Roll-Pitch Gyro Drift Compensation. xxxx://xxxxxxxxx. xxxxxxxxxx.xxx/xxxxx/XxxxXxxxxXxxxxXxxxxxxxxxxxXx0.xxx.
Nodaļa 3
EdiMote grupas atskaite
Anotācija
EdiMotes grupa nodarbojas ar universālas platformas izstrādi, kas būtiski atvieglo iegulto sistēmu aparatūras un programmatūras izstrādes procesu. Šāds rīks ir modulārs un nav piesaistīts pie konkrētiem iegulto sistēmu moduļiem (MCU, radio, sensoru, atmiņu, utt.) kā tas ir vairumā izstrādes rīku [1] [2] [3]. Tas nodrošina iegulto sistēmu izstrādātājam iespēju savstarpēji savienot iekārtas moduļus ar minimālu vai bez iespiedplašu projektēšanas nepieciešamības, izstrādes gaitā, kā arī veikt atsevišķu moduļu un kopējās sistēmas testēšanu. Tiek veidota arī analogo un ciparu signālu atkļūdošanas un analīzes iespēja, kā arī atsevišķu moduļu enerģijas mērīšanas funkcija. Platforma tiek vadīta no datora, kā arī analizējamo datu apstrāde, attēlošana un glabāšana notiek datorā.
EdiMote [4] palīdzētu atrisināt tipiskās iegulto sistēmu projektēšanas problēmas, ar ko saskaras gan inženieri, gan pētnieki. Šīs problēmas var iedalīt ar aparatūru saistītās problēmās un ar programmatūru saistītās problēmās:
• aparatūras problēmas:
– moduļu savstarpējā savienošana;
– signālu komutēšana;
– enerģijas patēriņa mērīšana;
• programmatūras problēmas:
– dažādu mikrokontrolieru programmēšanas atbalsts;
– ciparu un analogo signālu atkļūdošana;
– programmu veicamo operāciju ietekme uz enerģijas patēriņu.
3.1 Ievads
Iegulto sistēmu izstrāde ir laikietilpīgs un sarežģīts process. To iespējams atvieglot, izmantojot dažādus palīgrīkus, kas palīdzētu savienot atsevišķos iegultās sistēmas moduļus, nodrošināt to savstarpējo signālu savietojamību, analogo un ciparu signālu atkļūdošanu, kā arī novērtēt atsevišķu moduļu un sistēmas kopumā patērējamo enerģiju konkrētu procesu veikšanas brīdī. Izstrādājot iegultās sistēmas, kas izstrādes sākumā tiek veidotas kā prototipi, jāveic moduļu vai atsevišķu integrālo mikroshēmu savienošana, kam nepieciešama laikietilpīga spiesto plašu izstrāde [5] , nepieciešamas specifiskas ierīces procesoru programmēšanai un dažādi mērinstrumenti signālu novērošanai un atkļūdošanai. EdiMote [4] ir universāls iegulto sistēmu izstrādes rīks, kas paredzēts visu iepriekšminēto uzdevumu atvieglošanai.
Iepriekšējā laika posmā tika izstrādāts jaunas arhitektūras koncepts. Tās pamatā ir dažāda veida moduļi - perifērijas, testa, kuri savā starpā ir savienojami ar konektoru palīdzību. Tāda arhitektūra ir mērogojama.
3.2 EdiMote arhitektūra
EdimoTes arhitektūra ir modulāra, tā sastāv no dažāda tipa moduļiem, kurus var saspraust vienu virs cita. Lai moduļu savstarpējā savienošana būtu pēc iespējas universālāka un lietotājam draudzīga tika veiktas vairākas izpētes attiecībā pret moduļu saskarni. Lai to panāktu moduļi tika sadalīti pēc funkcionalitātes kā arī katram modulim ir savs mikrokontrolieris, kas nodrošina veicamo funkciju izpildi. Šie divi aspekti ļāva abstrahēties no specifisko signālu iedalīšanas. Kopumā var izdalīt divas grupas, kas noteikti ir katram modulim tās ir - UART pieslēgvietas un barošanas izvadi. Papildus šiem signāliem ir speciāli rezervētas vietas analogiem un ciparu izvadiem.
Katram modulim ir aktīva UART pieslēgvieta, caur kuru ir iespējama datu apmaiņa ar datoru un mikrokontroliera pārprogrammēšana. Lai moduli būtu iespējams izmantot atsevišķi no kopējās sistēmas, papildus UART pieslēgvietai ir USB pieslēgvieta, kas pārveido USB saskarni UART sasakarnē. Abas UART kopnes tiek padodas multipleksoram un atkarībā no izmantotā pieslēgšanas veida tiek izvēlēta viena vai otra UART kopne.
Trīs barošanas izvadi tiek izmantoti, tie ir:
• 4V5 - perifērijas moduļu barošanas spriegums;
• GND - zeme;
• testa iekārtu barošanas spriegums - paredzēts testa iekārtām, kuras ir pieslēdzamas pie EdiMotes.
Šie aspekti ļāva vienkāršot moduļu savstarpējo savienošanu un moduļu autonomu izmantošanu citos projektos.
Att. 3.1: Moduļu izvadu standarts
3.3 Perifērijas moduļi
Perifērijas moduļi nodrošina sekojošas funkcionalitātes:
• analogu un ciparu signālu atkļūdošana, ģenerēšana,
• mainīt testējamās iekārtas darba spriegumu,
• nomērīt testa iekārtas patērēto strāvu, jaudu, enerģiju.
Ir izveidoti sekojoši perifērijas moduļi:
• komunikācijas modulis,
• signālu konversijas modulis,
• barošanas modulis.
Att. 3.2: EdiMotes moduļi
3.3.1 Komunikācijas modulis
Funkcionāls mezgls, kas nodrošina EdiMotes periferiālo moduļu sasaisti ar datoru. To ir iespējams pieslēgt pie USB vai arī pie Ethernet saskarnes. USB ir ērti izmantot, ja testējamo iekārtu iz maz (līdz 3 iekārtām), ja testējamo iekārtu skaits palielinās, tad izdevīgāk izmantot Ethernet pieslēgvietu.
Lai automātiski izvēlētos pieslēgto kopni, tiek izmantot multipleksors. Ja tiek izmantota USB sasakrne, tad automātiski tiek izvēlēta USB UART’a kopne, pretējā gadījumā tiek izvēlēta Ethernet kopne.
Šis modulis nodrošina trīs periferiālo iekārtu un vienas testa iekārtas pieslēgšanu. Tas tiek panākts implementējot UART demultipleksoru, kas no vienas UART kopnes izveido četras. Šis demultipleksors tiek vadīts no datora izmantojot UART papildus signālus - RTS, DTR. Nosūtot attiecīgās komandas ir iespējams pārslēgties no viena kanāla uz citu.
Att. 3.3: EdiMotes
3.3.2 Signālu konversijas modulis
Modulis pilda oscioloskopa un ģeneratoru funkcijas. Tas atbalsta gan analogos signālus, gan ciparu. Analogo signālu iegūšanai tiek lietots Analogais Ciparu Pārveidotājs (ACP), kuram ir 12 bitu izšķirtspēja ar 1MHz maksimālo diskretizācijas frekvenci, izmantotajam ACP (ADS8638) ir 8 ieejas. Savukārt analogo signālu ģenerēšanai tiek izmantots Ciparu Analogais Pārveidotājs (CAP). Izmantotajam CAP – DAC7718 ir 8 analogās izejas ar 12 bitu izšķirtspēju un 1MHz maksimālo diskretizācijas frekvenci.
Ciparu signālu atkļūdošanai un ģenerēšanai tiek izmantoti mikrokontroliera (MCU) 16 izvadi, kuri var tik nokonfigurēti gan kā ieejas, gan kā izejas.
Att. 3.4: Signālu konversijas moduļa blokshēma
Att. 3.5: Signālu konversijas moduļa iespiedplate
3.3.3 Barošanas modulis
Barošanas moduļa galvenie veicamie uzdevumi ir kontrolēt barošanas spriegumu un novērtēt enerģijas patēriņu testa moduļiem. Vienā šādā modulī ir implementēts:
• viens programmistiski vadāms sprieguma avots, kas nodrošina sprieguma vērtības robežās no 1V25 līdz 5V;
• divi patērētās enerģijas mērītāji ar kuriem ir iespējams nomērīt enerģijas patēriņu.
Barošanas sprieguma programmistiska vadīšana
Barošanas sprieguma vadīšana ir nepieciešama, jo Bezvadu Sensoru Mezglu (BSM) enerģijas avoti ir baterijas, kas ar laiku izlādējas, tas nozimē, ka to barošanas spriegums nokrīt. Pie šādām spriegumu izmaiņām aparatūra var sākt neprognozējami ”uzvesties”, lai to laicīgi pārbaudītu kā arī iespējams novērstu, šādām situācijām, ir jāveic emulācija. Šim nolūkam tika izveidota shēmas daļa, kas nodsrošina programmistisku barošanas sprieguma avota kontroli. Sprieguma programmistiska vadīšana tiek panākta izmantojot lineārus sprieguma regulatorus (LDO) ar Vadj ieeju (mainot sprieguma dalītāja attiecību tiek iegūts vēlamais izjeas spriegums). Ar roku maināms potenciometrs tiek aizstāts ar I2C vadāmu ciparu potenciometru, kas ir pieslēgts pie mikrokontroliera. Lai novērstu programmistiskas kļūdas, izejas spriegums, no LDO, iesākumā tiek pārbaudīts. Tas tiek panākts saciparojot šo spriegumu ar ADC. Ja uzstādītā vērtība un faktiskā sprieguma vērtība sakrīt, tad izejas spriegumu padod uz testa iekārtu. To nodrošina P kanāla MOSFET tranzistors, kura iekšējā pretestība (Rds on) ir mazāka par 0.4 omiem.
Enerģijas patēriņa mērīšana
Pēc noregulētā sprieguma seko shēmas daļas, kas mēra strāvu I, zinot strāvu un spriegumu konkrētā laika momentā mēs varam iegūt momentāno jaudas patēriņu (P = I*U), enerģiju patēriņu iegūstam E = P*t. Strāvas mērīšana notiek netieši, tas ir, izmantojot R sense rezistoru, caur kuru plūstot strāvai rodas sprieguma kritums, mērot šo sprieguma kritumu mēs varam iegūt strāvu. Lai šāds papildus rezistotrs neieviestu papildus kļūdu tas jāizvēlas atkarībā no maksimālās slodzes strāvas (Iload) Ja maksimālā slodzes strāva ir 50mA pie 3V3. Tad Rload = 66 omi. Ja mēs vēlamies 1% kļūdu, tad Rsense rezistors jāizvēlas 1% no maksimālās slodzes pretestības, tas ir 0.66 omi.
Literatūra
[1] Xxxxxx Xxxxxxxx, Xxxxxx Xxxxxxxx, and Xxxxx Xxxxxx. Telos: enabling ultra- low power wireless research. In Proceeding IPSN ’05 Proceedings of the 4th international symposium on Information processing in sensor networks. IPSN, 2005.
[2] Xxxxxx Xxxxx and Xxxxx Xxxxxx. Demo: Epic: An Open Mote Platform for Application-Driven Design. In In Proceedings of the Seventh International
Att. 3.6: Barošanas moduļa blokshēma
Conference on Information Processing in Sensor Networks (IPSN’08) Track on Sensor Platforms, Tools, and Design Methods. IPSN, 2008.
[3] Micaz. xxxx://xxx.xxx-xxxx.xx/XXXXx.xxx.
[4] X. Xxxxxxx and Xxxxxx X. EdiMote: A Flexible Sensor Node Prototyping and Profiling Tool. In Real-World Wireless Sensor Networks 4th International Workshop, REALWSN 2010 Colombo, Xxx Xxxxx, December 2010 Proceedings, pages 194–197. ACM, 2010.
[5] Spiestās elektriskās plates. xxxx://xx.xxxxxxxxx.xxx/xxxx/Xxxxxxx_ circuit_board.
Nodaļa 4
MansOS grupas atskaite
Anotācija
MansOS grupas mērķis ir izstrādāt operētājsistēmu bezvadu sensoru tīkliem (BST), kā arī strādāt pie šīs operētājsistēmas praktiskajiem pielietojumiem. Lai gan jau eksistē vairākas BST specifiskas operētājsistēmas, tām ir tādi trūkumi kā krauja apmācības līkne vai slikta pārnesamība. MansOS izvairās no šīm problēmām, sekojot savas arhitektūras vadlīnijām – strādāt mērķauditorijai ar UNIX un C programmēšanas pieredzi, būt lietotājdraudzīgiem, un piedāvāt vieglu pārnesamību uz jaunām aparatūras platformām.
Lai padarītu mūsu programmatūru pieejamu vēl plašākam lietotāju lokam, tiek izstrādāta domēnspecifiskā valoda SEAL [4]. Tika veikts tās lietojamības novērtējums.
4.1 Ievads
Valoda SEAL ir deklaratīva domēnspecifiska valoda, kura izveidota, lai padarītu lietojumprogrammu prototipēšanu vienkāršāku – tai skaitā iespējamu tiem, kuri nav profesionāli programmētāji, tomēr būdami potenciāli sensoru tīklu lietotāji. Tādi ir, piemēram, dabaszinātnieki, inženieri, kā arī gluži vienkārši cilvēki, kuri darbošanos ap iegultajām sistēmām uzskata par savu hobiju.
Lai pārliecienātos, ka šī lietotāju grupa spēj lietot SEAL prakstisku uzdevumu risināšanai, kā arī lai noteiktu, cik labi to spēj darīt datorzinātņu studenti bez bezvadu sensoru tīklu pieredzes, tika veikti empīrisks lietojamības novērtējums.
4.2 Metodika
Pētījuma mērķis bija noskaidrot atbildes uz sekojošiem jautājumiem:
• Vai iesācēji programmētāji spēj veiksmīgi izveidot lietojumprogrammas SEAL?
• Vai iesācēji BST lietotāji spēj veiksmīgi izveidot lietojumprogrammas SEAL?
• Vai programmētāji spēj saprast iepriekš nepazīstama SEAL koda mērķi?
• Kāda daļa no SEALizsrādātajām programmām tiek veiksmīgi pabeigta, salīdzinot ar citām BST programmēšanas valodām?
• Cik lielā mērā programmētāja veiksmīgums ir atkarīgs no viņa iepriekšējās pieredzes?
• Kādas specifiskas grūtības rada SEAL lietošana?
Mēs adaptējām metodoloģiju no SensorBASIC lietotāju pētījuma [5]. Arī uzdevumu tika adaptēti no tā paša pētījuma. Dokomentācijai mēs adaptējām TinyScript lietošanas pamācību no Bai et al. [3] un uzrakstījām analogu lietošanas pamācību priekš SEAL. Mēs pārtulkojām pamācības latviski, laia samazinātu iespējamās izpratnes problēmas. Visi materiāli tika padarīti pieejami Internetā [2] pēc pētījuma.
TinyScript (TinyOS v1.1.15 kopā ar Mate´ virtuālo mašīnu) tika
lietots salīdzināšanai tāpēc, ka tā joprojam ir vienīgā vispārīga lietojuma BST programēšanas valoda ar brīvi pieejamu pirmkodu un kompilatoru. Salīdzinājumam, SensorBASIC un WASP kompilatoru tīmekļa saskarne [1] mūsu eksperimentu laikā nebija funkcionāla.
Kā lietotājus izvērtējumam mēs izvelējāmies datorzinātņu bakalaura studentus bez BST programmēšans pieredzes (”pieredzējušie programmētāji”), kā arī studentus un zinātniskos darbiniekus ar nelielām vai bez programmēšanas pieredzes no citiem domēniem (”iesācēji programmētāji”). Visi dalībnieki tika sadalīti divās grupās – SEAL un TinyScript lietotāji. Tikai pieredzējušie programmētāji tika iekļauti TinyScript grupā, tā kā iepriekšējie pētījumi [5]
[3] jau tika demonstrējuši TinyScript nepiemērotību iesācējiem.
Dalībniekiem tika dota pieeja datoram, kurā bija instalēta vai nu MansOS izstrādes vide (IDE), vai arī TinyScript instrādes vide, atkarībā no viņu grupas. Datoram bija pieslēgta arī sensoru ierīce, uz kuras atradās gaismas, temperatūras un mitruma sensori.
Testa sākumā dalībniekiem tika doti norādījumi lasīt lietošans pamācību un izpētīt izstrādes vidi (20 minūtes laia). Kad šis laiks bija pagājis, viņiem tika doti 4 uzdevumi. Xxxxxx tika dotas 70 minūtes to izpildei. Testa beigās dalībniekiem vajdzēja nosūtīt savus risinājumsu uz instruktora e-pastu, kā arī aizpildīt aptaujas lapu par savu specialitāti un iepriekšējo programmēšanas pieredzi.
Pirmie trīs uzdevumi prasīja no lietotājiem noprogrammēt konkrētu lietojumprogrammu, un bija adaptēti no [5] raksta:
1. Mirkšķināt gaismas diodi ar 2 sekunžu periodu (Listing 4.1);
2. Nosūtīt ziņojumu bāzes stacijai gadījumā, ja gaismas sensorsir aizsegts (Listing 4.2);
3. Iesēgt gaismas diodi tad un tikai tad, ja gaismas sensorsir aizsegts (Listing 4.3).
Kopumā bija četras atsevišķas pētījumu grupas. Pēc mūsu pieredzes ar pirmo grupu mēs sapratām, ka pirmie trīs uzdevumi nepārbauda lietotāju spējas saprast eksistējošo kodu, tāpēc tika pievienotss ceturtais uzdevumus: ”aprakstīt koda Listing ?? redzmā koda jēgu”.
Pētījuma beigu rezultātos mēs iekļāvām visas pētījuma grupas, ieskaitot pirmo. Lai dokumentētu studijas, tās tika ierakstītas video.
Uzd. Uzd.2 Uzd.3 Uzd.4 Kopā, %
TinyScript, pieredzējušie 3/3 3/3 3/3 3/3 100 % SEAL, pieredzējušie 3/3 3/3 3/3 3/3 100 % SEAL, iesācēji 1 3/3 0/3 2/3 n/a 55.6 % SEAL, iesācēji 3/3 2/3 2/3 2/3 75 %
Tabula 4.1: Lietāju pētījuma uzdevumu izpildīšanas veiksmīgums
Listing 4.1: Uzdevuma 1 risinājums use RedLed , p e r i o d 2 s ;
Listing 4.2: Uzdevuma 2 risinājums when Light < 100 :
use Print , format ”No l i g h t ” , out Radio ;
end
Listing 4.3: Uzdevuma 3 risinājums
when Light < 100 : use RedLed , on ;
e l s e :
use RedLed , o f f ;
end
4.3 Rezultāti
Kopumā bija 12 dalībnieku: seši datorzinātņu studenti, trīs fiziķi, divi vides zinātnieki, un viens elektronikas inženieris. Septiņi no tiem bija bakalaura studenti, pieci - vai nu augstāka līmeņa studenti (maģistrantūra vai doktorantūra), vai arī zinātniskie darbinieki. Pētījuma rezultāti ir doti tabulā
4.1. Sekojot [5] pieejai, uzdevums tika uzskatīts par pabeigtu arī tad, ja tajā bija tikusi lietota nekorekta funkcija datu nosūtīšanai (piemēram, uart tā vietā, lai lietotu send_lqi).
Pirmo uzdevumu veiksmīgi izpildījha visi pētījuma dalībnieki.
Otro un trešo uzdevumu veiksmīgi izpildīja visi datorzinātnes studenti abās grupās (SEAL un TinyScript). Tajā pašā laikā otro uzdevumu neizpildīja neviens no “iesācēji 1” grupas. Viens skaidrojums ir tāds, ka uzdevuma tulkojumsbija nekonkrēts un uzvedināja lietotājus darīt ko tādu, kas tajā brīdī SEAL nebija iepējams. Pēc šīs lietotāju grups rezultātu analīzes mēs pārformulējām uzdevumu, uzlabojām dokumentāciju, un pievienojām SEAL drukāšanu uz tīklu (kā redzama Listing 4.2). Pēc tam rezultāti uzlabojās.
Trešo uzdevumu veiksmīgi izpildīja lielākā daļa, kaut arī daži SEAL lietotāji tika iekļāvuši nevajadzīgu read Light komandu pirms when bloka.
Ceturto uzdevumu veiksmīgi izpildīja visi, kuri to mēģināja darīt (viens no dalībniekiem kļuva parāk frustrēts un beidza dalību pētījumā priekšlaicīgi).
4.4 Interpretācija
Pētījums neizrādījās tik veiksmīgs, ka mēs gribētu būt cerējuši. Tajā pašā laikā tas demonstrē, ka iesācēji programmētāji spēj lietot SEAL un veiksmīgi pabeigt savas programmas vairāk nekā pusē gadījumu. Jāņem arī vērā, ka pateicoties nelieliem uzlabojumiem dokumentācijā, izstrādes vidē un pašā SEAL valodā, otrā iesācēju grupa sasniedza labākus rezultātus, kaut arī bija ar mazāku pieredzi programmēšanā. Rezultāti demonstrē arī to, ka datorzinātņu studentiem nav grūtību iemācīties programmēt BST, jas tas ir jādara SEAL.
Mūsu rezultāti ir salīdzināmi ar iznākumiem no [5] (54 %, 45 %, un 46 % veiksmīguma procenti grupā bez programmēšanas pieredzes, 100 %, 89 % un 67 % grupā ar nelielu programmēšanas pieredzi). Lietotāju pētījums no raksta [3] (trīs citi programmēšans uzdevumi) sniedz datus par 40.6 % vidējo veiksmīguma procentu starp visām BST prpgrammēšanas valodām (lai arī WASP un WASP2 sasniedza 80.6 %).
Mēs gribētu izcelt faktu, ka risinājumi SEAL ir ~50 % īsāki nekā SensorBASIC (9 versus 14 rindiņas kopumā) un satur mazāk sintaktiskos elementus.
Lietojamības pētnieku viedoklis, ka “kontroles struktūras ir iesācējiem grūti apgūstams valodas elements” [6] mūsu pētījumā tika apstiprināts: daudzi no lietotājiem iesācējiem izjuta grūtības ar when bloku sintaksi.
Arhetipiem specifiskas valodas (tādas kā WASP) ir mazākas nekā SEAL, tātad var sagaidīt, ka tās būs vieglāk apgūt, un ka tās būs veiksmīgākas šāda veida pētījumos. Jebkurā gadījuma, [3] raksts norāda, ka SEAL rezultātus varētu uzlabot, ja mēs vai nu piedāvātu lietotajiem koda šablonus (kā WASP vai TinyTemplate), vai arī liktu programmēt tikai vizuāli (kā WASP2 vai SwissQM). SEAL IDE satur izvēlni lietotņu piemēru apskatei. Mēs neizcēlām šo izvēlni pirms pētījuma, jo mēs baidījāmiem, ka pieeja šiem piemēriem padarītu uzdevumu pārāk triviālu. Skatoties atpakaļ, ta bija kļūda. Neviens no pirmās studiju grupas nebija atklājis šo izvēlni saviem spēkiem un bija ļoti ieinterrešei, kas uzzināja par to pēc pētījuma. Daudzi lietotāji izteica arī vēlmi redzēt vairāk
piemēru dokumentācijā.
Lietotāji aprakstīja vizuālo redaktoru kā palīdzīgu un bieži vien lietoja to pētījuma laikā.
Stiprā korelācija starp veiksmīgumu šajā pētījumā un iepriekšējo programmēšans pieredzi liek domāt, ka tekstuālā programmēšana ir piemērotāka datorzinātnes profesionāļiem pat gadījumos, ja valoda ir maza un BST-specifiska.
4.5 Kopsavilkums un nākotnes perspektīvas
Tika veikta valodas SEAL lietojamības testi ar četrām lietotāju grupām (kopumā 12 lietotāji). Testi parāda, ka SEAL ir aptuveni tikpat viegli vai vieglāk lietot nekā, piemēram, citu augsta līmeņa sensoru tīklu programmēšanas valodu TinyScript.
Vēl MansOS grupā šajā ceturksnī tika veikta:
• MansOS tīmekļa saskarnes izstrāde;
• MansOS papildināšana ar Beijesa tīklu pielietojumu automašīnas aktivitātes noteikšanā;
• MansOS papildināšana ar testbed2 platformu – atbalstu EdiMote otrajai versijai.
Nākotnes darbā ietilpst MansOS pielietošana konkrētos lietojumus un attīstīšana citu projektu ietvaros.
Literatūra
[1] ABSYNTH - The Archetype-Based SYNTHesis Project. http:// xxxxxxx-xxxxxxx.xxx/, 2012.
[2] MansOS operating system. xxxx://xxxxxx.xxx, 2012.
[3] L. Xxx, X. Xxxx, and P. Dinda. Archetype-based design: Sensor network programming for application experts, not just programming experts. In Proceedings of the 2009 International Conference on Information Processing in Sensor Networks, pages 85–96. IEEE Computer Society, 2009.
[4] X. Xxxxx and X. Xxxxxx. A User-Centric Approach to Wireless Sensor Network Programming Languages. In SESENA ’12: Proceedings of the 3rd Workshop on Software Engineering for Sensor Network Applications, pages 29–30, New York, NY, USA, 2012.
[5] X. Xxxxxx, X. Xxxxx, and R. Dick. Evaluating a basic approach to sensor network node programming. In Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems, pages 155–168. ACM, 2009.
[6] J. Pane and X. Xxxxx. Usability issues in the design of novice programming systems,. Human-Computer Interaction Institute Technical Report CMU- HCII-96-101, 1996.
Nodaļa 5
SAntArray grupas atskaite
Anotācija
XXxxXxxxx grupas mērķis ir izveidot vienkāršu antenu ar elektroniski vadāmu virziendarbību. Šeit aprakstīa elektroniski vadāma parazītisko (pasīvo) elementu masīva (ESPAR) tipa virziena darbības antena, kuras pasīvo elementu slodzes veido spiestās plates līnijas, kā arī tās vadības shēmas.
5.1 Ievads
Lai nodrošinātu bezvadu sensora darbību tam nepieciešams enerģijas avots. Bieži bezvadu sensoru pielietojumos nepieciešams ilgs datu ievākšanas laiks
– sekojoši arī ilga bezvadu sensora darbība. Tādējādi var teikt, ka enerģijas taupīšana un racionāla izlietošana ir svarīgs uzdevums sensoru mezgla ilgas darbības nodrošināšanai. SAntArray darba grupā apskatām iespēju ieaupīt enerģiju samazinot raidīšanas jaudu izmantojot ESPAR tipa virziena darbības antenu. Šobrīd eksistē vairāki šāda tipa antenu varianti: sākot no 7 elementu ESPAR antenas [5] līdz pat SPIDA antenai [4].
5.2 Risinājums
Izstrādājot vienkāršu antenu ar elektroniski vadāmas virziendarbības antenu, tika nolemts apvienotu abu iepriekš minēto antenu labākās īpašības, [1]:
• ESAPR antenas konstrukciju izmantojot monolītu metāla pamatni;
• Pasīvos elementus vadīt izmantojot elektroniski vadāmu slēdzi kā SPIDA antenai;
• Lai samazinātu antenas izmērus, to ievieto cilindrā, kas izgatavots no dielektriskā materiālā ar lielu ϵr.
Vispirms tika izveidota antena izmantojot rezistoru un kondenzatoru kā reaktīvās pretestibas, [1, 2]. Taču iegūtais rezultāts nebija tik labs kā plānots. Atskaitē [3] tika parādīts, kā izmantot spiestās plates līnijas kā antenas pasīvo elementu reaktīvās slodzes, kas arī tika izmantots antenas jaunā varianta konstrukcijā.
ANT1
5
UPG2214TB
IN OUT1 OUT2
1
3
JP1
2 6
1 4
VC1
VC2 GND
2
C2 C1
1000 1000
GND
GND
Att. 5.1: Pasīvā elementa slodzes vadības shēma
5.2.1 Pasīvā elementa vadība slodzes vadība
Līdzīgi kā [1, 2], antenas pasīvā elementa slodzes vadībai izmantots analogais slēdzis UPG2214. Šoreiz tās izejām OUT1 un OUT2 pieslēgtas dažāda garuma spiestās plates līnijas kas veido elementus ar dažādu reaktīvo pretestību. Šāds risinājums ļauj atteikties no slēdza līdzstrāvas komponenti atsaistošajiem kondenzatoriem, kā tas tiek prasīts slēdža standartslēgumā [7]. Kopējam līnijas elektriskajam garumam no antenas pasīvā elementa ANT1 līdz līniju OUT1 un OUT2 galiem ir jābūt apmēram λ/4, tātad ap 17 mm.
5.2.2 Antenas vadības saskarsne I2C kopnei
Sensoru tīkla mezglam ne vienmēr ir pieejami brīvi 6 IO-porti. Tāpēc antenas vadībai izstrādāta saskarsne, kas izmanto I2C kopni. Saskarsnes principiālā shēma dota 5.2. zīmējumā. Tās pamatā izmantota mikroshēma MCP23008 standartslēgumā, [6]: RESET ķēde, I2C pullup rezistori, saskarsnes adreses izvēles shēma. Antenas pasīvo elementu vadības signālu formēšanai izmantoti CMOS Šmita trigeri. Vadības signālu pāri apkopoti savienotājos JP2, JP3 un JP4. Pasīvo elementu slēdža stāvokli parāda spīddiodes LED1, LED2 un LED3. Kā redzams, shēma satur vadību tikai 3 elementiem. Pilnu saskarsni veido divas šadas spiestās plates. Pirmā ir pilnībā samontēta, uz otrās nav MCP23008 un ar to sasitītie elementi nav uzmontēti. Pareizi savienojot spraudņus JP1 abām platēm, iegūst pilntiesīgu saskarsni. Šads risinājums izvēlēts sekojošu apsvērumu dēļ:
• Antenas centrā atrodas radiofrekvences pievadspraudnis un salāgošanas shēma. Salāgošanas shēma savukārt ir plate antenas pamatnes platumā. Izgatavot antenas izmēra spiesto plati ar tādu centrālo caurumu nav nedz tehniski vienkārši nedz arī praktiski lietderīgi. Pusplatē pilno saskarsni izvietot neizdevās. Tāpēc nācās shēmu dalām divās daļās.
• Lai minimizētu izstrādes laiku kā arī plates izgatavošanas izmaksas, saskarsne izveidota no divām vienādām platēm, un tikai uz vienas no tām
I2C
U1
1
2
3
V+
1 SCL
SL1
GND
2
3
4
5
6
7
8
0.1 mkF 9
SDA A2 A1 A0
*RESET NC
INT VSS
VDD GP7 GP6 GP5 GP4 GP3 GP2 GP1 GP0
18
17
16
15
14
13
12
11
10
JP1
8
7
6
5
4
3
2
1
C2
MCP23008-E/SO
GND
GND
GND
JP2
470
IC1A
IC1F
1 2 13 12
LED1
R6
2
1
74HC14M
74HC14M
IC1B
IC1E
JP3
470
3
4 11
10
LED2
R7
2
1
74HC14M
74HC14M
V+
JP5
2
1 0.1 mkF
C1
R8
IC1C
IC1D
JP4
5 6 9 8
LED3
470
2
1
74HC14M
74HC14M
GND
SJ1
R5
5K R4
SJ2
5K R3
5K
SJ3
V+
R2
1K R1
1K R12
5K
V+
Att. 5.2: Antenas vadības saskarsne I2C kopnei, principiālā shēma.
ir uzmontēta MCP23008 un ar to sasitītie elementi. Pilntiesīgu saskarsni iegūst savienojot spraudņu JP1 kontaktus atbilstoši tabulai
Plate ar MCP23008 | 1 | 5 | 6 | 7 | 8 |
Plate bez MCP23008 | 1 | 2 | 3 | 4 | 8 |
Citi savienojumi, tai skaitā arī barošanas kabeļa pievadīšana, nav nepieciešami.
5.2.3 Sensoru tīkla mezgla emulators
Veicot antenas pārbaudi pēc izgatavošanas kā arī demonstrējot tās virziendarbības maiņu, bieži vien ir neērti lietot klasisku sensoru tīkla mezglu. Iepriekš [2] tika izmantoti DIP slēdži, kas ar plakanā kabeļa palīdzību pievienoti tieši pasīvo elementu slodzes vadības shēmām. Pieslēdzot antenas vadības saskarsni I2C kopnei, to iespējams vadīt izmantojot 3 vadu kabeli. Tāpēc tika izstrādāts vienkāršs mezgls, kas pārraida informāciju no DIP slēdžiem pa I2C kopni uz antenu. Mezgla shēma dota 5.3. zīmējumā.
C2
2
1
VCC
0.22
SL2
1
2
3
GND
U1
MSP430F2013
I2C
GND
1
VCC 10
11
14
VCC
~RST/NMI/SBWTDIO TEST/SBWTCK
VSS
P1.7/A3-/SDI/SDA/TDO/TDI 9
P1.6/TA1/A3+/SDO/SCL/TDI/TCLK 8
P1.5/TA0/A2-/SCLK/TMS 7
P1.4/SMCLK/A2+/TCK 6
XIN/P2.6/TA1 13
P1.3/VREF/A1- 5
P1.2/TA1/A1+/A4- 4
P1.1/TA0/A0-/A4+ 3
P1.0/TACLK/ACLK/A0+ 2
GND
XOUT/P2.7 12
47k R1
S1
VCC
1 12
VCC
R2
470
6 5 4 3 2 1
ON
2 11
1 3 3 10
2 4 4 9
LED1
6 7
RESET 5 8
SW
0.33
C1
R3
47k R4
47k R5
47k R6
47k R7
47k R8
GND GND
GND
VCC
Att. 5.3: Sensoru tīkla mezgla emulatora shēma
5.3 Kopsavilkums
Šeit aprakstīa ESPAR tipa virziena darbības antena, kuras pasīvo elementu slodzes veido spiestās plates līnijas. Īpašā uzmanība pievērsta antenas vadības shēmu izstrādei. Antenas un vadības sistēmu montāžas plates ir izstrādes procesā.
Literatūra
[1] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 6, Jūnijs 2011.
[2] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 8, Decembris 2011.
[3] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 10, Jūnijs 2012.
[4] X. Xxxxxxx. Directional antennas for wireless sensor networks. In Proceedings of 9th Scandinavian Workshop on Wireless Adhoc Networks (Adhoc’09), page 4, Uppsala, Sweden, 2009.
[5] R. Xxxxxx, X. Lu, and T. Ohira. Seven-element ground skirt monopole espar antenna design from a genetic algorithm and the finite element method. IEEE Trans. Antennas Propag., 51:3033–3039, 2003.
[6] MCP23008/MCP23S08, 8-Bit I/O Expander with Serial Interface.
[7] NEC’s 1⁄2w low voltage L, S-band SPDT switch UPG2214TB.
Nodaļa 6
SenSigA grupas atskaite
Anotācija
Šajā nodaļā tiek apskatīta iepriekšējās atskaitēs aprakstītā asinhronā sigma- delta modulatora (ASDM) adaptīvā versija, lai samazinātu ASDM enerģijas patēriņu analogā ieejas signāla pārveidošanai ciparu formā. Piedāvāto versiju var saukt par amplitūdas-adaptīvu ASDM (AA-ASDM), jo šajā gadījumā ASDM atgriezeniskajā saitē vērā tiek ņemta signāla laikā mainīgā apliecēja, tādējādi samazinot ASDM izejas trigera pārslēgumu skaitu vienā laika vienībā. Neskatoties uz šo samazinājumu, signāla perfekta atjaunošana no iegūtajām laika vērtībām joprojām ir iespējama, jo maksimālais attālums starp divām secīgām pārslēgumu vietām nepārsniedz Naikvista soli. AA-ASDM ir īpaši efektīvs signāliem ar lielu dinamisko diapazonu, tāpēc viens no apskatītajiem pielietojumiem ir EEG signālu pārveidošanu.
6.1 Ievads
Enerģijas patēriņam liela nozīme ir bezvadu sensoru tīklos, kuru darbību bieži vien nodrošina ierobežotas enerģijas avoti, tāpēc uzdevums ir maksimāli šo patēriņu samazināt.
Viena no komponentēm, kas būtiski paildzina sensoru darbības laiku, ir analogciparu pārveidotāji (ACP), kurus klasiskā izpildījumā nepārtraukti darbina takts ģeneratori. Ja klasiskos ACP aizstāj ar asinhroniem risinājumiem, tad šo ģeneratoru neesamība samazina ne tikai pārveidotāju enerģijas patēriņu, bet arī izmērus, kā arī novērš elektromagnētisko viļņu interferences problēmas un taktimpulsu frontes drebēšanu [4], [5], [1].
Viens no šādiem pārveidotājiem ir asinhronais sigma-delta modulators (ASDM), kas informāciju par ieejas analogā signāla amplitūdu pārvērš diskrēta laika secībā. Kā rāda jaunākie rezultāti, tad pārveidotāja enerģijas patēriņu var samazināt pat līdz 180 µW un vēl zemāk [2].
Lai palielinātu ASDM energoefektivitāti, vērā var ņemt ieejas signāla laikā mainīgo apliecēju. Literatūrā sastopamos pielietojumos ASDM ķēdes parametrus parasti izvēlas atbilstoši signāla maksimālajai vērtībai. Šāda pieeja nav efektīva liela dinamiskā diapazona signāliem (piemēram, EEG signāliem), jo mazu to vērtību intervālos ASDM ķēdes aktivitāte kļūst nevajadzīgi liela,
un attiecīgi palielinās ASDM trigera izejas signāla pārslēgumu skaits. Lai lieko aktivitāti mazinātu, ASDM parametrus izvēlas nevis konstantus, bet gan laikā mainīgus atbilstoši signāla apliecējai. Rezultātā iegūts tiek nodaļā apskatītais amplitūdas adaptīvs ASDM (AA-ASDM).
6.2 Saistītie risinājumi
ASDM blokshēma parādīta 6.1. attēlā. Tas sastāv no integratora ar parametru κ un Xxxxx trigera ar parametriem δ and b. Šo parametru vērtības nosaka vidējo trigera pārslēgumu skaitu sekundē un līdz ar to arī ASDM ķēdes enerģijas patēriņu [3].
Integrator
Schmitt Trigger
b
x (t )
κ ∫dt
1
y (t )
b
δ
−b t0 t1 t2 tk t
-δ
z ( t )
−b
Att. 6.1: ASDM blokshēma
Ieejas signālam x(t) jābūt ierobežotam saskaņā ar izteiksmi
|x(t)| ≤ c < b (6.1)
Ņemot vērā, ka trigera izejas signāls z(t) pieņem vērtības b vai −b, tad integratora ieejas signāls ir attiecīgi x(t) − b vai x(t) + b. No (6.1) seko, ka integratora izejas signāls y(t) laika intervālā t ∈ [tk, tk+1] ir vai nu augoša, vai dilstoša funkcija, tāpēc y(tk) = (−1)kδ un
x(t)dt = (−1)k[2κδ − b(tk+1 − tk)] (6.2)
∫ tk+1
tk
∈
visiem k, k Z. Tāpat no (6.1) un (6.2) izriet, ka attālumi starp divām secīgām pārslēgumu vietām tk un tk+1 ir ierobežoti saskaņā ar izteiksmi
2κδ 2κδ
τmin = b + c ≤ tk+1 − tk ≤ b − c = τmax (6.3)
6.2.1 ASDM ķēdes parametru izvēle
−
Jautājums ir, kādas izvēlēties parametru b un δ vērtības? Ja pārveidojamais signāls ir frekvenču joslā [ Ω, Ω] ierobežots, tad nepieciešamais nosacījums signāla atjaunošanai no iegūtās laika secības tk ir:
k∈Z
sup (t
π
k+1
k
Ω
− t ) ≤
= T (6.4)
Tas nozīmē, ka τmax nevar pārsniegt π/Ω, un parametrus b un δ var izvēlēties saskaņā ar vienādību
τmax =
2κδ
b − c
= T (6.5)
Minimālais attālums τmin šajā gadījumā kļūst
2κδ
τ =
= b − c T = 1
T, (6.6)
min
b + c
b + c
1 + 2/α
−
kur b = (1 + α)c un α > 0. No (6.6) seko: jo mazāks koeficients α, jo mazāks attālums τmin un lielāks trigera pārslēgumu skaits, un ASDM ķēdes enerģijas patēriņš. Savukārt, jo lielāks koeficients α, jo mazāk atšķiras τmin un τmax vērtības, kas attiecīgi prasa lielāku attālumu tk+1 tk mērīšanas precizitāti, un vairāk biti ir nepieciešami šo attālumu kodēšanai.
6.2.2 Konstanto ASDM parametru neefektivitāte
| |
Kāpēc konstanta b parametra pielietojums ir neefektīvs? Pieņemsim ir dots signāls s(t) ar tā moduļa maksimālo vērtību C. ASDM parametrus b1 un δ1 izvēlas saskaņā ar (6.5): b1 = (1 + α)C un δ1 = αCT /(2κ). Ņemot vērā, ka signāla moduļa s(t) maksimālā vērtība, ko apzīmēsim ar c(t), laikā mainās, tad laikā mainīgi ir arī maksimālais un minimālais attālumi τmax un τmin:
2κδ1 T
τ (t) = =
(6.7)
max1
b1 − c(t)
1 + 1/α − c(t)/(αC)
2κδ1 T
τ (t) = =
(6.8)
min1
b1 + c(t)
1 + 1/α + c(t)/(αC)
∈
Šo attālumu atkarība no c(t) [0, C] parādīta 6.2. attēlā ar nepārtrauktām līnijām dažādām α vērtībām: 0.1 (melnās līnijas), 1 (tumši pelēkās līnijas) un 5 (gaiši pelēkās līnijas). Krītošās līnijas atbilst τmin1 un augošās – τmax1. Kā redzams, tad abi attālumi τmin1 un τmax1 mazām c(t) vērtībām ir mazāki par T , tāpēc pārslēgumu biežums ir nevajadzīgi liels. Lieko aktivitāti var samazināt, ja koeficientu α palielina, tomēr pārāk lielām α vērtībām starpība τmax1 −τmin1 kļūst maza un lielāks bitu skaits ir nepieciešams attālumu tk+1 − tk kodēšanai.
6.3 Risinājums
Lai novērstu iepriekš minētās neefektivitātes, parametru b var mainīt saskaņā ar c(t) tā, lai izpildītos vienādība
τmax2
(t) = = const. = T (6.9)
2κδ2
b2(t) − c(t)
Starpībai b2(t) − c(t) šajā gadījumā jābūt konstantai, tāpēc b2(t) var rakstīt:
b2(t) = c(t) + βC, (6.10)
kur β > 0. Otrais parametrs δ2 = βCT /(2κ) seko no (6.9), un minimālais attālums kļūst
2κδ2 T
τ (t) = =
(6.11)
min2
b2(t) + c(t)
1 + 2c(t)/(βC)
∈
Attāluma τmin2 atkarība no c(t) [0, C] parādīta 6.2. attēlā ar svītrlīniju pie trīs dažādām β vērtībām: 0.1 (melnā līnija), 1 (tumši pelēkā līnija) un 5
T
τ min , τ max
T
2
0
0 0.2 0.4 0.6 0.8 1
c/C
∈
Att. 6.2: Attālumi τmax (augošās līnijas) un τmin (krītošās līnijas) atkarībā no c(t) [0, C] pie trīs dažādām α = β vērtībām 0.1 (melnās līnijas), 1 (tumši pelēkās līnijas) un 5 (gaiši pelēkās līnijas): nepārtrauktās līnijas atbilst konstantam parametram b1, bet svītrlīnijas – laikā mainīgam parametram b2(t)
−
(gaiši pelēkā līnija). Kā redzams, tad τmin2 > τmin1 un τmax2 > τmax1 visām c(t) un β = α vērtībām, kas nozīmē ASDM liekās aktivitātes samazināšanos salīdzinājumā ar klasisko b = const. gadījumu. Savukārt starpība τmax2 τmin2 visām c(t) < C ir lielāka.
AA-ASDM blokshēma parādīta 6.3. attēlā. Papildus ASDM ķēdei klāt nāk signāla apliecējas noteicējs, kura izejas signāls c(t) slēgts atgriezeniskajā saitē. Tagad vienādojuma (6.2) vietā spēkā ir izteiksme
∫
∫
tk+1 tk+1
x(t)dt = (−1)k[2κδ − βC(tk+1 − tk) −
−
−
tk tk
c(t)dt] (6.12)
βC
−1
s (t )
−1
κ ∫dt
1
δ
-δ
−1 t0 t1 t2 tk t
z ( t )
−1
c(t )
bc
bc
^ ^ ^ ^ t
κ ∫dt
1
δc
−bc t0 t1 t2 tk
c
-δ
c
zc( t )
−bc
Att. 6.3: AA-ASDM blokshēma
Ņemot vērā, ka apliecēja c(t) ir nepieciešama signāla s(t) atjaunošanai, tad
to ciparu formā pārveido ar otro ASDM ķēdi, kuras parametri ir κc, δc and bc. Lai piedāvātajam AA-ASDM blokshēmas 6.3. attēlā parādītajā izpildījumā būtu priekšrocība salīdzinājumā ar ASDM, signāla apliecējai c(t) jābūt ar salīdzinoši zemām frekvencēm nekā pašam signālam. Tas attiecīgi nodrošina daudz mazāku signāla zc(t) pārslēgumu skaitu nekā tas ir signālam z(t).
6.4 Rezultāti
ASDM un tā adaptīvā versija AA-ASDM tika pielietoti frekvenču joslā līdz 49 Hz ierobežotu EEG signālu pārveidošanai. Signāla piemērs un tā atrastā apliecēja parādīti 6.4. attēlā, bet trigera izejas binārie signāli pie koeficientiem α = β = 0.1 parādīti 6.5. attēlā.
U,(V)
0.4
0.2
0
−0.2
0 0.5 1 1.5 2 2.5 3t,(s)
Att. 6.4: Ieejas EEG signāls (pelēkā nepārtrauktā līnija) un tā zemo frekvenču apliecēja (melnā nepārtrauktā līnija)
0.5 U,(V)
0.4
0.3
0.2
0.1
0
−0.1
1.1 1.15 1.2 1.25 1.3 1.35 1.4 t,(s)
0.5U,(V)
0.4
0.3
0.2
0.1
0
−0.1
1.1 1.15 1.2 1.25 1.3 1.35 1.4 t,(s)
Att. 6.5: ASDM (augšējais attēls) un AA-ASDM (apakšējais attēls) xxxxxxx xxxxxx xxxxxxx signāli
Trigeru pārslēgumu skaits pie dažādām α = β vērtībām parādīts zemāk redzamajā tabulā. AA-ASDM gadījumā kopējo pārslēgumu skaitu NAA-ASDM veido 2 skaitļi – pirmais atbilst augšējā trigera izejai 6.3. attēlā, bet otrais skaitlis – apakšējā trigera izejai. Ja izmanto precīzāku apliecēju (svītrlīnija 6.4. attēlā), kas attiecīgi satur augstākas frekvences, tad mazāks pārslēgumu skaits būs pirmā trigera izejā, bet lielāks skaits būs nepieciešams otrā trigera izejā, lai atjaunotu apliecēju.
Enerģijas ietaupījumu AA-ASDM gadījumā, salīdzinot ar neadaptīvo
ASDM, aprēķina pēc formulas
− ·
E = (1 NAA-ASDM ) 100%, (6.13)
NASDM
pieņemot, ka lielāko daļu enerģijas patērē tieši trigeru pārslēgšanās notikumi.
α = β | NASDM | NAA-ASDM | Enerģijas ietaupījums, % |
0.1 | 2917 | 1120+51 | 59.86 |
0.3 | 1200 | 600+51 | 45.75 |
0.7 | 690 | 437+51 | 29.28 |
1 | 573 | 397+51 | 21.82 |
1.3 | 510 | 374+51 | 16.67 |
1.9 | 442 | 350+51 | 9.28 |
2.5 | 407 | 337+51 | 4.67 |
Kā izriet no tabulas, tad AA-ASDM izteikti pārāks ir pie zemām α = β vērtībām, tomēr tās nav ieteicamas, jo liels pārslēgumu biežums ir abos gadījumos. Optimālā izvēle varētu būt α = β = 1, kad minimālais attālums starp divām secīgām pārslēgumu vietām abos gadījumos ir T /3.
11 t,(ms)
10
9
8
tk+1-tk
7
6
5
4
0
3 0.5 1 1.5 2 2.5 3 t,(s)
tk
Att. 6.6: Laika intervāli starp secīgiem pārslēgumiem ASDM (gaišā līnija) un AA-ASDM (tumšā līnija) gadījumos
−
Attālumi tk+1 tk starp secīgiem pārslēgumiem pie α = β = 1 parādīti 6.6. attēlā. Gaiši pelēkā līnija atbilst ASDM gadījumam, un maksimālā to vērtība tuvu Naikvista solim T parādās, kad signāls s(t) sasniedz pīķu vērtības pie
1.32 un 2.45 sekundēm. Tā kā parametrs b ir konstants, tad lieka pārslēgšanās notiek praktiski visā signāla pārveidošanas laikā, un attālumi tuvināti svārstās ap to vidējo vērtību T /2. Savukārt AA-ASDM gadījumā (tumši pelēkā līnija) attālumi tuvu Naikvista solim parādās visā pārveidošanas laikā, turklāt vērtības
tˆk+1 − tˆk ir vairāk izkliedētas.
6.5 Kopsavilkums un secinājumi
Šajā nodaļā tika parādīts, ka ņemot vērā signāla laikā mainīgo apliecēju, iespējams samazināt ASDM ķēdes aktivitāti. Rezultātā samazinās iegūto laika
kodu daudzums, neskatoties uz ko, signāla perfekta atjaunošana joprojām ir iespējama, jo maksimālais attālums starp secīgām laika vērtībām nepārsniedz Naikvista soli.
Dažādām α = β vērtībām enerģiju AA-ASDM gadījumā var ietaupīt pat līdz 59.86%. Pieaugot α = β vērtībām, adaptīvās ķēdes priekšrocība samazinās, tomēr nav ieteicams izvēlēties lielas šīs vērtības, jo laika intervāli starp secīgiem pārslēgumiem tad samazinās un lielāks bitu skaits ir nepieciešams to kodēšanai. Pārāk zemas α = β vērtības arī nav ieteicamas, jo tad augsta ķēdes aktivitāte ir gan ASDM, gan AA-ASDM gadījumos.
6.6 Nākotnes perspektīvas
AA-ASDM efektivitāti var uzlabot, ja nav nepieciešama signāla apliecējas pārraide. Ņemot vērā, ka apliecēja izriet no paša signāla, tad izstrādāt varētu tādu atjaunošanas algoritmu, kas tikai no augšējā trigera (6.3. attēlā) ģenerētās laika secības spētu atjaunot sākotnējo signālu. Rezultātā signāla apliecēju vairs nebūtu jāpārraida, samazinātos kopējais pārsūtāmo datu apjoms, kā arī vienkāršotos AA-ASDM blokshēma. Šāda algoritma izstrāde ir turpmāko pētījumu mērķis.
Literatūra
[1] X.Xxxxxxxxx, X.Xxxxxxxx, and X.Xxx. Synchronous and asynchronous a- d conversion. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 8:217–220, 2000.
[2] X.Xxxxxx, X.Xxxxxxx, X.Xxxxxx, X.Xxxxxxx, X.Xxxxx, and X.Xxxxxxxx. A 120nm low power asynchronous adc. In International Symposium on Low Power Electronics and Design (ISLPED 2005), 2005.
[3] B. K. Mathew. The Perception Processor. PhD thesis, The University of Utah, 2004.
[4] X.Xxxxxxxx. Asynchronous circuits and systems: a promising design alternative. Microelectronic Engineering, 54:133–149, 2000.
[5] X.Xxxxx, X.Xxxxxx, and X.Xxxxxx. Limit cycle frequency jittering of an asynchronous sigma-delta modulator. In 9th International Conference on Telecommunication in Modern Satellite, Cable, and Broadcasting Services (TELSIKS 2009), 2009.