diff --git a/figs/vionic_drifts_linear_fit.pdf b/figs/vionic_drifts_linear_fit.pdf new file mode 100644 index 0000000..fe65659 Binary files /dev/null and b/figs/vionic_drifts_linear_fit.pdf differ diff --git a/figs/vionic_drifts_linear_fit.png b/figs/vionic_drifts_linear_fit.png new file mode 100644 index 0000000..8a1c63f Binary files /dev/null and b/figs/vionic_drifts_linear_fit.png differ diff --git a/figs/vionic_drifts_time.pdf b/figs/vionic_drifts_time.pdf new file mode 100644 index 0000000..2a54741 Binary files /dev/null and b/figs/vionic_drifts_time.pdf differ diff --git a/figs/vionic_drifts_time.png b/figs/vionic_drifts_time.png new file mode 100644 index 0000000..caeeaa2 Binary files /dev/null and b/figs/vionic_drifts_time.png differ diff --git a/figs/vionic_noise_asd.pdf b/figs/vionic_noise_asd.pdf index caf5719..6b81cc5 100644 Binary files a/figs/vionic_noise_asd.pdf and b/figs/vionic_noise_asd.pdf differ diff --git a/figs/vionic_noise_asd.png b/figs/vionic_noise_asd.png index b0ecd31..8044e89 100644 Binary files a/figs/vionic_noise_asd.png and b/figs/vionic_noise_asd.png differ diff --git a/figs/vionic_noise_asd_combined.pdf b/figs/vionic_noise_asd_combined.pdf new file mode 100644 index 0000000..1ed3734 --- /dev/null +++ b/figs/vionic_noise_asd_combined.pdf @@ -0,0 +1,1274 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20210211151515+01'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +95 0 obj +<< /Length 96 0 R /Filter /FlateDecode >> +stream +x̽ɮ$K_?NhM@ #" :սD͇7>f*#xOKק?jYu/s^-Ռ?z[c2G伾??SA?} x [/?ʷGՖ\'_{t|>}$ӯIU>/լVp񣯐~^5oRoGǏBy=S? +*iX}+*[/? +*Ŵi? +OHnC7T/> +祪 >~Ryv\|'zKvXO}XW5፥%>}%b}^nxac}N맏D+ZڭK~Kj]kϙX}XW[}`KD /kA_//J.T\譧DkmsyKkVҭLFKG>}%b}^˷oZ[;k/Z6g/Zu%/:E9>>7bO/:q%|^o 詧Dk^mW+=їy585_/?{ovG_"z.(XNH/Z~yG_"֟էDkїy-?+~ً~Kʳїy-?Ǻg//Z~Bg//Z~}+^G_"󖞼O$yRVj¹|ҭ}X+x>ǻ 2ӆj"Ԟnܵ>ǏDIePO}PBދ~Um]z'g<~r}^q[mWtG.5S-?u>%']_\A/2vǑ_'7Z6~3KǏ~]薫` yѯy#]r_EJzn\Ͽ. sJRvk#vG.i2Yv0)BǏ~]e O_4}r~gѯs=T>u~N^~]8l^~]W;_}nSF]{=~R-{^Ozz:0Eˇ){ۛ.{*Tk;Qn}yDY_ZZ"M{ +Dbw7HAo胖 ݺF =AsDt~ܔ$7Hv>h~D>h } $wH A:DM~ A|D4> }$wHf ч1wKQgo胦 ĿAZDt>h w7HAf }¿AZDt~$aOwHN K 3O5Vۿ^3IrK#8/ׯ wm8/֯7f8/4֯Iw_8կwX 8/LկwP8ԯ)wH~8/Lԯw@~8ӯiw8~8T[ly%~Mu[J|~z _i1$ʮ[q Rx|dJ}+Uz|A f4˴GAplק'n`g$z$׍D/$!]e*דD_73zs}JI\}HOA3$a\?e=V^g=C>#ԯ'ng$z$ D/$_eדD_7S=Mz|}F^O}݀OI#'ng$z$ D/Þ$befؓD_7<3=O {Ɔ}J9a}Oƿh~ᨰ +=ְ|'QnP'$zL(׍(ͽ?eT4?GMyA짨DoJDoJDoJDoJDoZD:k5}Qӧ<(oM$ KIGM%sYGM%sYGM%sYGM%sYGM-cE7GM%sYGM-SEwGMJ+ykmsIGM%sYGM%sYGM%sYGM%sYGM%SYwGM-SEwGM]W5EQӧJgQZ5}QSJ5}QS5}QS5}QS5}QS5}QSE7GM'M·GMbs?[i7njZN+ĖdɆro/k~+_*[<_PC0E> I*|皿B$N˷4K}ς߲~({EsV/6VoYj?[eE h԰֔kr) p-sů[f?[ͣ.7N.}6xϋ${^$[~aK*\Aii|PMQ-6V#%X B?|io/V*{|O;^s<|ߚȵU'w4ȟ%ȼMJ1'Zmϧ[ۃD3nW{&vҚNfxH֦p{M'cr?}!^άM]9~?K{kO!pHiT,k6Vp˝csjuo`iAKi\*U,$^5o/2,U #U|5ע5rVYxe2.ЋҀQV!ʄM~q` WWϢ~/nukR[cbbB. W(xdxx^-.r,(^*t 1?l`i-$FbiKR[b\ +z{ 2@! y{+p3J`D{V.$|*icqT-9V\d9qeo?2|91FӒiĽ'jR3ި1 P#^bN[ӔBAsrfUP{[h(N(ĭAC[-twli9)Ϫ5n8|pwuѰ7Jh\Լcgljk|1⭀A(^'NJr.3ro/͉Lh$e9 a,[An:j8QC%ɲXÐMM?6׆o>ٰkَÓ'woam!`PM$hJ \6`m71ӓUA5_pCcc=5qdc81`76,-mlȽqz149쎂b{p IƇvkF`XУ؈o6^ȡLHkx 'xQݘ2Ǧ\49.aaVx(-xf [@e +RK6l~^ d{d2ei|Z%ed ߐ>!_w# c +d0X%·\ނ6ѧS^| >@ػ{?Є虃 4 HyxA-k0^s`=vO:PU%wЄŤh[9ZqDkDM͜fFx{"%j?l? kF! 澬!#p$Bn7O)eыvwaj0Ǐ,Xh 0stuڼu!4}av6\as a_' WJ`}C=Yo%J&GX8}>+k1,!-0 &MJU=YaSCÍxDD}zRsOameA0nR sV`xv 1l5w_pZr`ʚ{5!4l,;qf oe>|!JqZ,A5FwMaơ&=H<1\1#:3-ZHjA} +d}7޼>}ěXaQb,&۱ܠz} K<׼Va*g0Xf`:sMw4|apf-ׅtD{̇bx4ccO2P8j089/$Alx?%IXɻd^|X'+Z@xiZ:Nnmčъ8u߰zɗd`  [DFs]x`6N^o :00Na+p"1aKe;LP)b柄q[*Ě@"}z@- xraaV9xwu&J 7fs|_mCL "sף̉a1n*^0aȮ~2Ke٦g (Em:O5in:RRXap޸%^u.d2sskYF/\.z-08gj }jkmx%;2~p-oMX4a(y廃5W' VXΎlQ<2K9&Ln9%VԌT4҇3"Hex=\9"Y—^I n>J>pjEK 3b]qaNa95WP:sɽg'L b%ZV 2z<.Ò@8z($b=sԍ{<΃MgK%mQC\U< +=>,+,  ϪVz]ճ-Ʊ&걅gd-hi㚅) +*RxV}@0^3M'_0u1{2m-o[@І;GV4vJ0}w&td˴7)9S(M,."@!Bq*(1_ 6_aXG 9ZEgX^miV\$3 O;?Yn&`+6i{I61N |quveJ& 8NrƢmfljũPy]mw vTA݂'-yd4X=k ʯ*e vf@?A\A)AwfVQVXa +Y$CJF&NN\`)q-xEq˙lDap ºj +p"FCbH#li'm>4!.\JSnwi1#w@;NwpdPeHux!7AtuSB?)"dxx{A9+>FҮ+0JfaH`T%T]X,^щ1Qb Mj&oٝe k H+l1AڲN;y1ز#İXGVxGģ~?OAδY33}OMx%0Zuע:߳k׏ihb\ʆ%87aGq!X%N{`#3# VRMumo`"aG脧lc\BX,shAbecf$0PB\)H`UDz׽OTb4 Ӊb#s, + 4U +[Msj1ƽO ~U' +W}*ڢi>oWT^F簜 w9qݴ=旘j@- br%X{};*hWgMZicx?N;b2?Igǭ̅d˩2<tP誨# d ejhK&Ί'Fw=k<Z,9 P`vGr|@2*vf6Z`xÛ67%Q]FBk{X?3=V`Pʰ/G:)>ib&0H:%/~erĘ-!CJًeOr;*62⭯Izyi6l*15mɫe8 +jtl]_j ۩c 54a}̚ni 6x J)gzW{ؖ p:iOL >pkx%I#z`j&_JT~FTwu7w69YX(5Y8dk@>hʃAD/ѓ![,"d}2x\uaF!+Lc(qE,Oqi[bvtG&avmN]ƺFeD¤@1vŎ[qjߐ$xFe©]٧,k6S!J.*fa%0EM~P' /֎ºW8+r7DI2%W4[  !0< 0:ar8zA @gL'7 pq?u3##c4ښˤP؟ ,*gGOU%05Y/[-V28Ueed[:`&":6/*RhD-> +YWWWm.8189j"Bf9UJU"6sQ&|v90m+| @'Sf89,O%hV -5[m*n ^Heiw뚪=6pְpMV}))lY#/]qhv`cVWw" >rn=%4| e8{X;0Ȑ}ѥ + ;'{MA[mbw(|HW[+IҰ뇆a'eRb^gP0x v׻72s"0F U*)1 .`]fU ?gLp㜜0xPa c{{'꣤Y{VjoBdj۽B nf֜7BR3v"EfK)XMٍDukBڔ>:E#H)`@R[rib;Ue8[*5z*\e ++cnvT:JL-su񋥮H!&WM2 (,bYB_i:`$λF'Z;i9.p V-SF2F5dUisמjijgԅB<۸2so.H㽪qJ4hvDEM*!MMJعd GY;5g] hCvu:eq}r,tCI>ؕr9cnXS,<ρ;6q}`tCѩۀGzǩ]ƄIS. +#bt9 (Nefsh64,\n>KD@x^Q F68.~Gsv;&$t8b^,cw?R{R%'UjkD!Q3Ě簎 P:.[KY8fX[>"Йn %uو0=腒e}aUkLhI$ku+|7@Z5,Ytje<8X]Ԃ;fk5xAuD!mc\{!ɨcc\Ue 7ǼqBr.KW/mR|>IT6n<֜ U8|c:Juh %| 1X3ץ{Hla|<}ǓlJU1T\Rn-:i FspZ'#鼡1_,)w%.RxX +TѺ꺄 Xj&|I[iyasWF<#0YZp+L:Rkx\/U<aRcK lTëzÖWnmtqnEvLQ?jsO%D!Y`hb^do Xm^afLh[H֥?F,r> f?QySVia$\ 4[ :d$a5QAmR(YƊM%=} 4nt]='C+㛥 +˸Tr!( +!!vqa2vYf%0X#рX3%"'ܠ2=R:Tv {W0HE +d/b]CcD̃U'? +ւW 1+6ZtLjs]r,`Êc422[@wʖ՝lEeX-+sVE,+Annihɣ!*b' ld$s`z̖f<2-ܔ )e*J_dcd#>>2ީr4&2ޔ4?cb V'=:J٫gn#+v&ىSNl<9QEE 1H6w +RV79k] sWj(8{-B@OڄaCyrTml~N%ˈrl)j>RbtR[nZb4Yչ"nUR zr邰r}0 ,,S=Qs]ŵ!qZ.,n2־9X9Q ytH<:GNVa%c8~ }QEj~h& "&cuSD$%[9U2If/'iv\H1!1 JBBҭK +c 7Sѭ{,MӸ\1RBd19ͻ<9Rܶr yEXh\%-)nD 'ۋ،:ŵ\cbGk.px؟qgc݉ n/`,~05x@G@8v0Wt3s8Xg{U[PٸC.;yNٱ&D]a { sE˄^ȶ$ #{V.]fb%Uԝ5n1vs~H[$D)Wg]3-&1V:JȸD?X6CÜnjY6ј0`[u9SwZ&,g +ujh'XABSN[ +dqfn%4dӴz*e) ֊z1<]OX"&INAl] v +EP)k&N~•x&b W3y2(mAex~zak'z]: +;*f{1%b7B lKhղ98f:NTY%0<\ +hqS3GU6_]vc9p +e;ݩ'C0JM"(^>fFpY1%5%6L)3?O.b!L[8uLUա}J0 "Zbvԏq= oλ1D ŤrC?0[(z{ ..P؈0|v[6[Rz?ah2hOJѐ6DR#[U"F{D4` Pn1V{.[7+.PWGc,8)8lI#k33KmᐮpV4M yؕ\ͬv* x2$2pAq*Q=nHGQ;}n +zNN(N3b۴{]-SԳ= +?I2SD;m07u S$8KtNs w@8sTj5ɧ)2̌D _kAf-+Ůay 40w%賕 ^{6XG!{<gמ*#ٵ* >"GCY*!|'pwg`U;W0wBXTɎbZ"?؉rBMHSLX&ǙIY0W7&òƍ o߭{oKNN/1% ItAf*'OtQWXn{'6{6I`$)+Ӹ0> E5#rت7lv<ê;SO' ac95ˍgf NG #TMvFxvη;.w:vd׸Zd8c+ +Z{M &e`: + odZiqKgEԩ+1UQW l| +e3!2sQk[μ2;mGr2 b)&|,C-l*k> 8W\WKNd`XB +_?=KYX9M$ҹ+`cZt/>ئ1^2L֯ cKKfSBKz t]$`؊!jl|%8W+5%9^OPyQYqnq]sys`@8(]x=g8Cb.^Ab+c hr9܁*)VW0v `RZ_MN`ڙmv]-&Xg169lxԽtbgLؽa{M,l\u&SƸTܜUF&-t&SN14u{}mK1Ne*{`-i*v$ 2< c!QjH,ږO'Xu1f9\\/l>c(°&+ic`rN+HR}bߞͰ)j3v܄3sT٘r(bQ8#Y™S$:]`NbeHkvY^XQ2$XV[P i.(ʘG Mnx1¦R.W;%DVa@%6uy!TMҢ_]ц!B5Mbz#7X%,bl/̨l1{ia&GlBL^v3I֤.ݷlBc u4#SY8&NeW+˂$Svy3H!wJRڇZإuw=1v#ف z쭱P7Q%ǥiy)[g1ɌD報. +I p56ny6:>ljzg +2!fAb54^㭱<#*̼z+hn˕^cG:]hT"4FD9^'ž3k4ǜ249`9`tӾBD%gbj*l=#-b-ANÕp~*-3ꊏL`lVwS| +AFf-gJqbsp.4Ȟuax'5+HYIfړЉ6bn__sȟ-DN` 0?0CH3:"l(3IZFT0|~eǝL/1HP+V@cC">YL[5*W> *n@ + Sն^QjI=z@x_dth +mmJl3;K8A ]cTۚSĦXzŴ?7r{R5P5#gkS)-X< cE11.Oy;Xטcbws&)Vĺ:ϧ)pR^TK# {mk|:xN&S:u{ž/.euQÉ?nl`Gc5ٖ%dišZ~'.4r5 ŀFO&7U̍E1m Ov?{1v5KwU&Ô wJdnA&δL}.o? ]Mh xAwn84NUR& +&)ܱ#1?j+ +2g(1REl]XPx3swḫ'l+ȓN㞄7eoa5mF,4 uEq=T!El;CjM0 c.SK +Gɭ} sy:1=Ck=N*CjgB6"_g1FG},s4}Ʋ歬l%HPq@5N +A $rBLlYIA3MtXfl$ GlS=0APq'39z< )uO*۞Cl.^>!ZW֣({&fʲ1gD{/@oj!jH⺻4S{isy\`4Oz +Rbn9_ E0׫P!4I]4nр85+sL!9Re+ -DTw3fU1!wsbbu5kX1VJ(Wry!g(U|)AV{Шz, f̩ȸ@QN3:X88S( + 4EE#A,d3;st +bgn'j:#XEc/-Ίb>ֵHhWvC(Ds`T3 Ukz^=%7Dl}b/cEJLRݣcjIS9k᥻k]qT3VNTs8/l#+wؾ[qFu<1 i`fs4y' l\)q-R8*|*r ִs<pC@']Ɔ]a3RYy՝ n2v[9V=SEKUsdOn3Gq8.+]$xą(_'VٲCw~䅭h+bCR+ڂݮsֳlyrb4t8E ǃűcu1'wUnaCELG=٠aKk4TyELvei50&C]+ݚG'lx@zt +]WOPmY<,N>"[@v 4422հI2btZa &]b3_fL|(U8:ٿڅ!6F`H(<7Խ +0t+4ą,k Dz=@K,?P݆=2 BPZ"CX[5 b|Lm95BO=rDjv;HRb@$4w%f3=c{s}d1'Ɓ@W^ݧ\;g޽B)v/s])1Nb6Нd*pˍ]~WUbH);vݔ}NY+O. ֏sh\9Q̔fV [Wk%LFh35rYE/vdU;f$5.l?Uìb%9گ1yBiXjCt!Rv +yiKئ.wE57V \7vͨiŹ0[*rx4i(y _X$F5`HKHJ%`'h]c+^HR1\ +b6D&U4\bBU)aGbd1972^yfQwA<Z':UG/]L|:zմ%)Em0$azq}ce1v=-+ě+?S`_}(Rßf ?ҷ?wLd%Z󏜾?rՈ;kbA5P>VYlqȗM!2eY3ӱe>eZd4Lܑ` (YpLcM`td??9jR{L:10,) bI9 ,eHvio q5Ν̐/pr 'Ӥ4;rj6_Xp6jnbЄ a e[fqN(#Y_5!dg12G}ǿ05\-α(6 % ou5N +|XN$יO=tO3t\nI0>gk0 F tR1 dH7(ϣH9ƃ&4$NUM?QX֥/l3bCpES9&\&^3 Mo SԬ,5I++TEpE(h3ݲEâd+tʳkz`*LR|+jI6 c[8ӽU3h7V& y:cZ~(, +fi>wEa/U9 5^TquwC񬓢q-e&+!LEVx60y k79s!Q g\ĤB]j \zBۛKX%PeeatwOS!^}ˌ-+3ƬnÞ5 +d{ҤZ~r\%J׭qٗ.Q0E.ʼn)*/,b 7WT@ + LF۳}MiB_8JZ"7'ؽǕ"ncd520Z Bk_hBE!qŅX×0W{O 1=lϵAw)("e&IzáZo|[ڜŠ4!֩`H)N,bqN$-{F2aoD |!^4ٶ. +,rwȁ_Eur1;bv3ToC$ 1V],S&|n!D.&5ec-q!*^a<$'qٳ㵺Fik,6_!!/Ǽ! 8ATz lgEvYjr];rx<ź8A08qN +%1Oj͞||g8؄P둷z06}цNf,_y@ rн8B +,^cIN:Y}0RpDvS7DS%U@H|oT+,"`\L^3{TD m7̗p1jfY(h[[71@6" oݜX:]# b\*!\q{Q1r:z3઼'ag5EuSPVѐ̨<~d%TT*fhpU7]SQAmf֣ WSr`Hwκ"sb}[F6(|, ;mpH0IĨ\InA|D3XC 1$KCQ7wTPNnW*.\FaA\DDb^fb̿--V%Ęa:Gf)6u@0aj2/ c#!b2 xS%.Nb㔴# Yb[U0,u-*Ziq_VbSvTM}e +Nz`XsUO1x K+)5UQhZk\w<`Hn%J\LHdUqc5[T Sol3).4Gi*YbOq;J* +2yE3ZZ!n?IjcXb  Mfퟦ.v`Q:GQ욧{=%'K*E$tD$3>Zr gt@ľXd8 +G꫽5JW} +lKpޚio؋Z6/eOoޅb>3 + VY4I^>] H0=M5y"!ht#YuȒɁTj EbzrP&fl>W3y y#ž6IhX5Lyj'ח|D`3\{ʳ%xMI.cqKI/BS&_,XdL{ԗIJx*X'5,haiւʄFN P]IN <{HMD1edUFLsr LIc@5 ʫf.4XO{tC!)uC[gkAXo&Krzs+kY`ejTa2``'B" 2*9] RIl5]s" K̞d65UC^|!'A@J5r$4H,Bnc E^D^ SL&6~IBxŲ"f~QWb5 6ym49z̒;Ģ1%VIwP`15p6MԢp +#s8{x{/N?b01ftC=3M./LO;8Rr`}DO{{9TIhbnѤg^9\b+U4WN ͳ,M- uؔlh{x',ZyRB*++=& "2Yc5FOb6flBXkg/cH(fFM#QvB3l;0 h+d9:,EKXCus)]2ɏ,oZJm2^c ONgLgj\NJoRq,wj¸Z>3e8a"g5i'5f% r1do. +3,#yFzO34Mƌ̠x*vAukӆ6ŇEʃ<hOǮTG5WpevA'Z9˟QUbz0{=KFw@1'΂VvS/Q[n'FyGvX8Ez +;`z b⷏R/f!Ǭ#0P}ܴw=l;~q}~Px`՚ŏkjcHY)ˈ>ACd*` "5&>tY0!(E \[߶=Qw^]Aվov171$C!-gKr0Z n1`Vs:U8Ža zUIY7u ^abhJ<fyGrq ETm31Po}2\CqT2l.ƑJ!Zԉ0#=&WTBj?͇ K^c*[Mwl#0>ǰP}%W|p;Lms\+p\\h/޼cZ,lؑǰTB;Pahwh;2F^G.Dy%I7EK6Az4}`E-"J4uy9QSIwc8PW'd7=w`>f,)9Īˈc::9\ĪNik$1=ɟ1Ǝ,MkZSxT~*$"y0lNjl%0+Z64-0uM2KQŽ6dMTxǶ|O~EE4Y3cTS\.IٷM2LXF]-eJ 95n?g1:dh3h נ-lz8!F!upqo*c}C;.<|M찡Z8HM!'N cY%gb:Xg2vhA:|z$@'ư(z2UKcФ0(~ӬcC<|y.^Ln;86*Z1Fvk"q-Ϭʠ|"ETl^}M&= MkZ*4V4iR*g®ޜE1 a[1W*bj֩N,\a$qk0+:g9ڙn_9d qbU3[4n8ϠS4i#Dl-?𔹽'W<]RO+,sEcdً֩@-FY4{^2IH`p\ۍK,QYIdj,vU_\@G}3*j~MZĪjy)**mO?[<1b2ZƲԧ4[3$ua8m e4G`]řzҬ7۹ʪL0蒘hګ{V Xw?'z##HV$5CKs1ȡTs(ktI3zy^4lsVԀ]F`TMoc(iq!KEzug摟>=6w=K{wuM9Z|5Pv4>{׈sa`EtͶo?+x$B P^lwU2%hcdadj7^?1)pKꛔNx?Ysy"-5Xb# EHbWB{&4I H>} A'EF4#)3ɾ(#|Ԣʲ$f`&^E/>;A_m9;޹:^i,)k*̄N.QuZ',H Uc0qFnlX\ABei52+VN)#88e&mX'+řW`Np\` PSqVUgKg8'9T|*k> +endobj +101 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAA+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 102 0 R + /CIDSet 103 0 R +>> +endobj +102 0 obj +<< + /Length1 3092 + /Length 104 0 R + /Filter /FlateDecode +>> +stream +xV L[}mqH^~`cl < $G!QP` &dYEiU-fQ7iiiuASEYԭJ(Цiڤ(R:MU7]bȲێ}s=@ 4L{fTuf =b?!3^HOǾ@'Ew% $н<@.%ɩ> eTz }i/-S3~FTзP3s`F{lbPZ̠, @;Gֆ2Ğ`apnU p L8aC B 8`J۸21^gĞeO>V=kG#}6Dm C"E1f=x;- 7:[p {9dy\xs=g Sp2pL|`}Ѝw@f߲5-fSѐh5jϱ MpGE1<~\ *ZP?tJ'i*%1rV_*]΍@ /4,tX\K$&"Ƅr(8u`[Ƕ R#)1 Gv cQ#~b1v{ſP- <OʘWPr  '.ёHHl$Z GȢ#V+zOJ-PK{%V "'%J K9VShO7aLbȂ 2E/EX@T + \N#\Nyl̕.hQ|6|@*ħ2O +Ϝ̱k\)L4++^۸}m1y X1SX>Ji!>^YhSMWѫùoB7f~s T,Иlڡ=2T[7K=6 ^n (Z,Rn8Gt MM_V< d1<ٟ4ə,fP,fAGe1_Q0Ab%cf"d1zҚ4,fPBPH,-D 3x6I$́V`z8 1<=LB +qރL +-3hykEFQ 18jVo ˞> +stream +xk```dP` +endstream +endobj +105 0 obj +17 +endobj +106 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 107 0 R + /DescendantFonts [108 0 R] +>> +endobj +108 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 101 0 R +/DW 0 +/W [ 0 [365 877 500 831 464 ] ] +>> +endobj +107 0 obj +<< /Length 109 0 R /Filter /FlateDecode >> +stream +x]j0 y +YaB]hpl954qC޾R',޽PH]@qҦjZh3wö{,4Y%W+G,opzvKLp;&@I>4NֽpgFyν"s S|n&8.s3aq-p}֦osԨ7ZEkHey'3DN !ӅS=_v4#Vc46j }]> +endobj +111 0 obj +<< + /Length1 1992 + /Length 113 0 R + /Filter /FlateDecode +>> +stream +xUmle=Ҏ{`3^wLz׭s%["AZC[خueAM/CD%:_r4!HBb  m >s/^:jxiZ |'T~lTvvSdg҆70$\qm#U7s3lxl~b{gUg +l;"9I=g,Q!_^~uK_2 +y'.zWJYN,1qPo~eev2EcQw)8fg33 uk5Uuen(H",͍!UYl3&񆞄Mzmb'LHU3vUYy1VMHi=iD%S˺\> 5'- JnML1DIO&^S|r]O>Rl͹-6Wl0ȹAсQMU%EƉRXɤ0Yk4+R%nH+0EYL2&'kQU􀪜EX􊰨$-p&L"aMXTTao BUrIU̺vua7YKn-&#*ĸ9 Ony}-4h"'\YxkC%B5nń`9U;[ֽq_.|[_ޮٰT]ɚ` +U;͞6c%Z!_FΈghyF'ʌ +hR}Bfp'ޥ.Kd km ѽwBxc[EwqrSaw0/;`l>pJv.BLXG uLr0*`-,`l^sMtFS 4ioh:F֠SO KxzGI;MJ$El-Z (;Iˎ9DHu<&*+qdlU;Aԡ٩L*=-m InEb&+ -R@feVbFј*@gKӇQ]'Igt&?H{U5JQ#TG*;Ixtld> +stream +xk +endstream +endobj +114 0 obj +9 +endobj +115 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 116 0 R + /DescendantFonts [117 0 R] +>> +endobj +117 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 110 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +116 0 obj +<< /Length 118 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +118 0 obj +234 +endobj +119 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAC+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 120 0 R + /CIDSet 121 0 R +>> +endobj +120 0 obj +<< + /Length1 5592 + /Length 122 0 R + /Filter /FlateDecode +>> +stream +xX tՕߴX%Ymy[mI%YV˲;8*ر;^HX @P9@s4) 1t +V43:~z߻2 h`!rME {@ +vou;t4팏 |"\J?0MON] yӽ?u߿ JBx KN^@;O8] x<0a6A7tB\1BAB ++?gwJN&Kl.59;YfcL^3xo1tw8 g40'd-c]p`IKaV^1.KP +X;OkzXve-] Xjz^1z//ܚ1zYgf'X'"m'#]=v{~I¹4=vkoYk+/%:Im/7})O  H^<4GnKm V#÷L-EZHpb4'!J,ID6YDdILY/Fi # F&4e9>mp聿r 6I="]=Ȗ^HV,9zT(ԔwPBS>VQ{~~-eO"T+?N +{,C"di^W;'NؒPr_Z)w#jСr+5/CXS BzA ٤7M?-LX3 g(Z@Pܠí_ς8?x*y2T@!TŸD@B~|ġͧ{"/d"/rÂy}ڟH+.:z@w} @k4 :&apJ?1J3\)L*?*ٕ*o2L +L VGUPU9j+FAtBU &`:\6z{)Pj˛+klt pY!'6 cᣫްc-hnYGs?=||\C6-Mfȅ+3:j51׫,tjFusV9VaD4C$0s +mܹٕX9tcjc,\_3HYC0J5:pRIranxW8Đ=[,g=")hPP/=(!nN[~,ͻodιu>ͱ:ſ;_$D"00;A+MRkȩՠ1dFo)&#?PMQCNS#^(i Bm}fr ܮjf͈T1{cup+l_LH:Q._b;P@0)g*Ke# c., +Jގ]zZJ)gʑRiF"Eߜ;;鮾rnӎZ&Ca0 S7[{&Zo5?EFԃ;nMNruC+U(:D]JVDz3o֖dRtK}%ʙfK8)zI[ U޿j{gߜ[O..?0ж䲜2Xqs=7u~5Y ۀ[~߽3S._VȱDJ +юWʠ@._eV+h"d7L{ Svqp:z*w(CqF~ey aM|s|EUS{p45WSg~%l6PI@(@ QIP7@g(hꯤ4K$hHᴴ_69ז<ܷLqw1hsQIzZb3^ S^ByEP>a@)$&>5ƾمҚrDz[V#W+NYn}knvՕ^޴Ź- 0w$KNNR X)fܢ(ޥyrҚTvy@eykwt{lދ7ǩǓ/{ϖM߾r8q{վB(zhVVxʲY!, 2S2xʘ`>`B'Q5^- W- +'TXRdy8ͻnɶOkM'n^3\|ƚwE6YQؑCdG=_tl߷N iᮭ]xM7k;V߾Iw{q1|Sz,pwdrsd 5J%'#%BV]& .RЯq3a5F_(A1il?H};jUchhC#BWõVgxBUь۩DW#bd.'R KZ^L,n애-O|}lK`S]<=s]R+dsmOM:;#nA1:p756]24._vCKQKnCF!!UP!3PEExEfk[L hTVR*Jwxo>9|(PO憟xͽ~n ֯xH)| < .d_瞀A@d|Opz[j4&+M: [Tũ!$gkU}6WuVaUZfH,p6-O[|,-gӲ@ӓȩhtZ~K hK h1-`3we,0sF`aJ[z?݂5P^Izfī6hQI0\3HOt^mR P?@gLw?=YI{=N6h#ig I+iF3# +Z-sGl%-6MMOږsQ[ؤs`r`@y?/owB^ۊQ_n31FIso6Od!} +C{F$\]dkC:}|VAD*d^ +c|WS##G\+IBud)8Fmbfb-Z߸ѓ{N <Hx +endstream +endobj +122 0 obj +4179 +endobj +121 0 obj +<< /Length 123 0 R /Filter /FlateDecode >> +stream +xk`2Z0S\ +endstream +endobj +123 0 obj +20 +endobj +124 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 125 0 R + /DescendantFonts [126 0 R] +>> +endobj +126 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 119 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 651 391 443 526 555 555 443 526 276 750 443 276 500 500 750 555 763 ] ] +>> +endobj +125 0 obj +<< /Length 127 0 R /Filter /FlateDecode >> +stream +x]j0)rX4`Y([ +^@m &V1Ded&OmG^W4O^ڍ̄iߺSnjFJ"L.*H>0YlM_Ӄ0,oސo]lnպ[MPGv)5Mn/ʽDqv vwO9;tohpJWNKU\ú.ٳ nu_MXW&(Ms @)(eTLt`:F`ΠhSP d5jTL2Ҁb}"c}𓨯$#|]d흞m)~-j-zx +endstream +endobj +127 0 obj +327 +endobj +128 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAD+mwa_cmsy10 + /FontBBox [-28 -959 1123 778] + /Flags 33 + /CapHeight 683 + /Ascent 778 + /Descent -959 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 129 0 R + /CIDSet 130 0 R +>> +endobj +129 0 obj +<< + /Length1 2060 + /Length 131 0 R + /Filter /FlateDecode +>> +stream +xUolewuz]7e]A,,n 2P[ۤ]: +4$J7JBn`1I4`FEIDc" &1dn>wt$o{?y{ G#ժ-L=c)iu7Ktd\]_%3:'B?BRsuZ)R ITvu|I-+21KfY`u:/,MhY7FB=lz>4o ' /ѱ,}kǙ98x G1>İ[b3B_^_f-. +BLaVE_bE51_{(,x_!+(bЊb/@ Y]ڳrUtTEs rGD{Dh ŭ˚ gK`Q)r+ Eب:&URZh [įIpxfpGc!ؚao Bxo׵oPkz +Mj-m<յ!E]03QO2xZb)F? _fKaM6z3WմUUd/իaJI<Yf9~FLSiƒCFx$nSd2E<J7E("w5-S!>^: a7avfںJv۞;fEۮ,oS],tQ}{|&IbJ}LSP|LB'ްzUV!GVA;]7XC(cWAy9H# aiiR 2a42{4[hzHcz,IYE'ȳ;,o2Ir(02t&mY,Yt(:@.L'SSҺH :eI +4Zfҋ'b[A}'UE5?7AH.Ǧҹ YڦR,PvÔG2Iy@O)iT bzrF#\NԚV1FsI}r2 RAY!GXO @-ءlPN57y]G]UB2ƪ8v:pk+'7g +endstream +endobj +131 0 obj +1399 +endobj +130 0 obj +<< /Length 132 0 R /Filter /FlateDecode >> +stream +xk` +endstream +endobj +132 0 obj +12 +endobj +133 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwa_cmsy10 + /Encoding /Identity-H + /ToUnicode 134 0 R + /DescendantFonts [135 0 R] +>> +endobj +135 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwa_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 128 0 R +/DW 0 +/W [ 0 [365 833 ] ] +>> +endobj +134 0 obj +<< /Length 136 0 R /Filter /FlateDecode >> +stream +x]PKj0 Z.vE7@I)dM{ǖSCcYB43 ]{@S&%F@|YJd- ;ˬ`Ympy4a;0hK \k?8O +_Ռ ڛLrifs zϠ%*Mj-ͮVtmQmJ28V <[!_ +} +endstream +endobj +136 0 obj +235 +endobj +100 0 obj +<< /Type /Pages +/Count 1 +/Kids [98 0 R ] >> +endobj +137 0 obj +<< + /Type /Catalog + /Pages 100 0 R + /Lang (x-unknown) +>> +endobj +99 0 obj +<< + /Font << + /F677 106 0 R + /F678 115 0 R + /F679 124 0 R + /F680 133 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R +>> +>> +endobj +xref +0 138 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001568 00000 n +0000001621 00000 n +0000001674 00000 n +0000001727 00000 n +0000001780 00000 n +0000001833 00000 n +0000001886 00000 n +0000001939 00000 n +0000001992 00000 n +0000002045 00000 n +0000002098 00000 n +0000002151 00000 n +0000002204 00000 n +0000002257 00000 n +0000002310 00000 n +0000002363 00000 n +0000002416 00000 n +0000002469 00000 n +0000002522 00000 n +0000002575 00000 n +0000002628 00000 n +0000002681 00000 n +0000002734 00000 n +0000002787 00000 n +0000002840 00000 n +0000002894 00000 n +0000002948 00000 n +0000003002 00000 n +0000003056 00000 n +0000003109 00000 n +0000003162 00000 n +0000003215 00000 n +0000003268 00000 n +0000003321 00000 n +0000003374 00000 n +0000003427 00000 n +0000003480 00000 n +0000003533 00000 n +0000003586 00000 n +0000003639 00000 n +0000003692 00000 n +0000003745 00000 n +0000003798 00000 n +0000003851 00000 n +0000003904 00000 n +0000003957 00000 n +0000004010 00000 n +0000004063 00000 n +0000004116 00000 n +0000004169 00000 n +0000004222 00000 n +0000004275 00000 n +0000004328 00000 n +0000004381 00000 n +0000004434 00000 n +0000004487 00000 n +0000004540 00000 n +0000004593 00000 n +0000004646 00000 n +0000004699 00000 n +0000004752 00000 n +0000004805 00000 n +0000004859 00000 n +0000004913 00000 n +0000004967 00000 n +0000005021 00000 n +0000005075 00000 n +0000033878 00000 n +0000033900 00000 n +0000033925 00000 n +0000048417 00000 n +0000048279 00000 n +0000034120 00000 n +0000034376 00000 n +0000036706 00000 n +0000036684 00000 n +0000036801 00000 n +0000036821 00000 n +0000037224 00000 n +0000036981 00000 n +0000037555 00000 n +0000037576 00000 n +0000037828 00000 n +0000039272 00000 n +0000039250 00000 n +0000039359 00000 n +0000039378 00000 n +0000039769 00000 n +0000039538 00000 n +0000040081 00000 n +0000040102 00000 n +0000040357 00000 n +0000044656 00000 n +0000044634 00000 n +0000044754 00000 n +0000044774 00000 n +0000045243 00000 n +0000044933 00000 n +0000045648 00000 n +0000045669 00000 n +0000045925 00000 n +0000047444 00000 n +0000047422 00000 n +0000047534 00000 n +0000047554 00000 n +0000047945 00000 n +0000047714 00000 n +0000048258 00000 n +0000048340 00000 n +trailer +<< + /Root 137 0 R + /Info 1 0 R + /ID [<150E4C8C4389EF945EABE8BFF4A96BB7> <150E4C8C4389EF945EABE8BFF4A96BB7>] + /Size 138 +>> +startxref +49954 +%%EOF diff --git a/figs/vionic_noise_asd_combined.png b/figs/vionic_noise_asd_combined.png new file mode 100644 index 0000000..9c71199 Binary files /dev/null and b/figs/vionic_noise_asd_combined.png differ diff --git a/figs/vionic_noise_asd_low_freq.pdf b/figs/vionic_noise_asd_low_freq.pdf new file mode 100644 index 0000000..a5e9ee6 Binary files /dev/null and b/figs/vionic_noise_asd_low_freq.pdf differ diff --git a/figs/vionic_noise_asd_low_freq.png b/figs/vionic_noise_asd_low_freq.png new file mode 100644 index 0000000..1e2308e Binary files /dev/null and b/figs/vionic_noise_asd_low_freq.png differ diff --git a/figs/vionic_noise_asd_model.pdf b/figs/vionic_noise_asd_model.pdf index 4b0ed94..d3c8070 100644 Binary files a/figs/vionic_noise_asd_model.pdf and b/figs/vionic_noise_asd_model.pdf differ diff --git a/test-bench-vionic.html b/test-bench-vionic.html index 3b934bf..99a91be 100644 --- a/test-bench-vionic.html +++ b/test-bench-vionic.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Encoder Renishaw Vionic - Test Bench @@ -39,22 +39,21 @@

Table of Contents

@@ -64,7 +63,7 @@

This report is also available as a pdf.


-
+

You can find below the documentation of:

@@ -89,25 +88,25 @@ In particular, we would like to measure: This document is structured as follow:

    -
  • Section 1: the expected performance of the Vionic encoder system are described
  • -
  • Section 2: a simple model of the encoder is developed
  • -
  • Section 3: the noise of the encoder is measured and a model of the noise is identified
  • -
  • Section 4: the linearity of the sensor is estimated
  • +
  • Section 1: the expected performance of the Vionic encoder system are described
  • +
  • Section 2: a simple model of the encoder is developed
  • +
  • Section 3: the noise of the encoder is measured and a model of the noise is identified
  • +
  • Section 4: the linearity of the sensor is estimated
-
-

1 Expected Performances

+
+

1 Expected Performances

- +

-The Vionic encoder is shown in Figure 1. +The Vionic encoder is shown in Figure 1.

-
+

encoder_vionic.png

Figure 1: Picture of the Vionic Encoder

@@ -135,21 +134,21 @@ Interpolation is within the readhead, with fine resolution versions being furthe

-The expected interpolation errors (non-linearity) is shown in Figure 2. +The expected interpolation errors (non-linearity) is shown in Figure 2.

-
+

vionic_expected_noise.png

Figure 2: Expected interpolation errors for the Vionic Encoder

-The characteristics as advertise in the manual as well as our specifications are shown in Table 1. +The characteristics as advertise in the manual as well as our specifications are shown in Table 1.

- +
@@ -169,7 +168,7 @@ The characteristics as advertise in the manual as well as our specifications are - + @@ -201,11 +200,11 @@ The characteristics as advertise in the manual as well as our specifications are -
-

2 Encoder Model

+
+

2 Encoder Model

- +

@@ -218,38 +217,53 @@ It is also characterized by its measurement noise \(n\) that can be described by

-The model of the encoder is shown in Figure 3. +The model of the encoder is shown in Figure 3.

-
+

encoder-model-schematic.png

Figure 3: Model of the Encoder

-We can also use a transfer function \(G_n(s)\) to shape a noise \(\tilde{n}\) with unity ASD as shown in Figure 2. +We can also use a transfer function \(G_n(s)\) to shape a noise \(\tilde{n}\) with unity ASD as shown in Figure 2.

-
+

encoder-model-schematic-with-asd.png

-
-

3 Noise Measurement

+
+

3 Noise Measurement

- +

+

+This part is structured as follow: +

+
    +
  • Section 3.1: the measurement bench is described
  • +
  • Section 3.2: long measurement is performed to estimate the low frequency drifts in the measurement
  • +
  • Section 3.3: high frequency measurements are performed to estimate the high frequency noise
  • +
  • Section 3.4: the Spectral density of the measurement noise is estimated
  • +
  • Section 3.5: finally, the measured noise is modeled
  • +
-
-

3.1 Test Bench

+ +
+

3.1 Test Bench

+

+ +

+

To measure the noise \(n\) of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured. Then, the measured signal \(y_m\) corresponds to the noise \(n\). @@ -257,62 +271,138 @@ Then, the measured signal \(y_m\) corresponds to the noise \(n\).

-
-

3.2 Thermal drifts

+
+

3.2 Thermal drifts

-
    -
  • [ ] picture of the setup
  • -
  • [ ] long thermal drifts
  • -
  • [ ] once stabilize, look at the noise
  • -
  • [ ] compute low frequency ASD (may still be thermal drifts of the mechanics and not noise)
  • -
+

+ +Measured displacement were recording during approximately 40 hours with a sample frequency of 100Hz. +A first order low pass filter with a corner frequency of 1Hz +

+ +
+
enc_l = load('mat/noise_meas_40h_100Hz_1.mat', 't', 'x');
+
+
+ +

+The measured time domain data are shown in Figure 5. +

+ +
+

vionic_drifts_time.png +

+

Figure 5: Measured thermal drifts

+
+ +

+The measured data seems to experience a constant drift after approximately 20 hour. +Let’s estimate this drift. +

+ +
+The mean drift is approximately 60.9 [nm/hour] or 1.0 [nm/min]
+
+ + +

+Comparison between the data and the linear fit is shown in Figure 6. +

+ +
+

vionic_drifts_linear_fit.png +

+

Figure 6: Measured drift and linear fit

+
+ +

+Let’s now estimate the Power Spectral Density of the measured displacement. +The obtained low frequency ASD is shown in Figure 7. +

+ +
+

vionic_noise_asd_low_freq.png +

+

Figure 7: Amplitude Spectral density of the measured displacement

+
-
-

3.3 Time Domain signals

+
+

3.3 Time Domain signals

-First we load the data. -The raw measured data as well as the low pass filtered data (using a first order low pass filter with a cut-off at 10Hz) are shown in Figure 5. +

-
+

+Then, and for all the 7 encoders, we record the measured motion during 100s with a sampling frequency of 20kHz. +

+ +

+The raw measured data as well as the low pass filtered data (using a first order low pass filter with a cut-off at 10Hz) are shown in Figure 8. +

+ +

vionic_noise_raw_lpf.png

-

Figure 5: Time domain measurement (raw data and low pass filtered data with first order 10Hz LPF)

+

Figure 8: Time domain measurement (raw data and low pass filtered data with first order 10Hz LPF)

-The time domain data for all the encoders are compared in Figure 6. +The time domain data for all the encoders are compared in Figure 9.

-
+

+We can see some drifts that are in the order of few nm to 20nm per minute. +As shown in Section 3.2, these drifts should diminish over time down to 1nm/min. +

+ +

vionic_noise_time.png

-

Figure 6: Comparison of the time domain measurement

+

Figure 9: Comparison of the time domain measurement

-
-

3.4 Noise Spectral Density

+
+

3.4 Noise Spectral Density

-The amplitude spectral density is computed and shown in Figure 7. +

-
+

+The amplitude spectral densities for all the encoder are computed and shown in Figure 10. +

+ +

vionic_noise_asd.png

-

Figure 7: Amplitude Spectral Density of the measured signal

+

Figure 10: Amplitude Spectral Density of the measured signal

+
+ +

+We can combine these measurements with the low frequency noise computed in Section 3.2. +The obtained ASD is shown in Figure 11. +

+ +
+

vionic_noise_asd_combined.png +

+

Figure 11: Combined low frequency and high frequency noise measurements

-
-

3.5 Noise Model

+
+

3.5 Noise Model

+

+ +

+

Let’s create a transfer function that approximate the measured noise of the encoder.

@@ -322,23 +412,18 @@ Let’s create a transfer function that approximate the measured noise of th

-The amplitude of the transfer function and the measured ASD are shown in Figure 8. +The amplitude of the transfer function and the measured ASD are shown in Figure 12.

-
+

vionic_noise_asd_model.png

-

Figure 8: Measured ASD of the noise and modeled one

-
-
+

Figure 12: Measured ASD of the noise and modeled one

-
-

3.6 Validity of the noise model

-

-The cumulative amplitude spectrum is now computed and shown in Figure 9. +The cumulative amplitude spectrum is now computed and shown in Figure 13.

@@ -346,24 +431,24 @@ We can see that the Root Mean Square value of the measurement noise is \(\approx

-
+

vionic_noise_cas_model.png

-

Figure 9: Meassured CAS of the noise and modeled one

+

Figure 13: Meassured CAS of the noise and modeled one

-
-

4 Linearity Measurement

+
+

4 Linearity Measurement

- +

-
-

4.1 Test Bench

+
+

4.1 Test Bench

In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity. @@ -372,7 +457,7 @@ An actuator should also be there so impose a displacement.

-One idea is to use the test-bench shown in Figure 10. +One idea is to use the test-bench shown in Figure 14.

@@ -385,22 +470,22 @@ As the interferometer has a very large bandwidth, we should be able to estimate

-
+

test_bench_encoder_calibration.png

-

Figure 10: Schematic of the test bench

+

Figure 14: Schematic of the test bench

-
-

4.2 Results

+
+

4.2 Results

Author: Dehaeze Thomas

-

Created: 2021-02-10 mer. 15:14

+

Created: 2021-02-11 jeu. 15:21

diff --git a/test-bench-vionic.org b/test-bench-vionic.org index eb5769a..5d9f3cc 100644 --- a/test-bench-vionic.org +++ b/test-bench-vionic.org @@ -169,7 +169,18 @@ We can also use a transfer function $G_n(s)$ to shape a noise $\tilde{n}$ with u * Noise Measurement <> + +** Introduction :ignore: + +This part is structured as follow: +- Section [[sec:noise_bench]]: the measurement bench is described +- Section [[sec:thermal_drifts]]: long measurement is performed to estimate the low frequency drifts in the measurement +- Section [[sec:vionic_noise_time]]: high frequency measurements are performed to estimate the high frequency noise +- Section [[sec:noise_asd]]: the Spectral density of the measurement noise is estimated +- Section [[sec:vionic_noise_model]]: finally, the measured noise is modeled + ** Test Bench +<> To measure the noise $n$ of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured. Then, the measured signal $y_m$ corresponds to the noise $n$. @@ -192,16 +203,21 @@ addpath('./matlab/'); addpath('./mat/'); #+end_src -** TODO Thermal drifts - -- [ ] picture of the setup -- [ ] long thermal drifts -- [ ] Identification of the drifts (exponential fit) -- [ ] once stabilize, look at the noise -- [ ] compute low frequency ASD (may still be thermal drifts of the mechanics and not noise) +** Thermal drifts +<> +Measured displacement were recording during approximately 40 hours with a sample frequency of 100Hz. +A first order low pass filter with a corner frequency of 1Hz #+begin_src matlab -enc_l = load('mat/noise_meas_40h_200Hz_1.mat', 't', 'x'); +enc_l = load('mat/noise_meas_40h_100Hz_1.mat', 't', 'x'); +#+end_src + +The measured time domain data are shown in Figure [[fig:vionic_drifts_time]]. +#+begin_src matlab :exports none +enc_l.x = enc_l.x(enc_l.t > 5); % Remove first 5 seconds +enc_l.t = enc_l.t(enc_l.t > 5); % Remove first 5 seconds +enc_l.t = enc_l.t - enc_l.t(1); % Start at 0 + enc_l.x = enc_l.x - mean(enc_l.x(enc_l.t < 1)); % Start at zero displacement #+end_src @@ -212,67 +228,94 @@ plot(enc_l.t/3600, 1e9*enc_l.x, '-'); hold off; xlabel('Time [h]'); ylabel('Displacement [nm]'); +xlim([0, 40]); #+end_src -Exponential fit -#+begin_src matlab -f = @(b,x) b(1)*(1 - exp(-x/b(2))); - -y_cur = enc_l.x; -t_cur = end_l.t; - -nrmrsd = @(b) norm(y_cur - f(b,t_cur)); % Residual Norm Cost Function -B0 = [400e-9, 2*60*60]; % Choose Appropriate Initial Estimates -[B,rnrm] = fminsearch(nrmrsd, B0); % Estimate Parameters ‘B’ +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/vionic_drifts_time.pdf', 'width', 'wide', 'height', 'normal'); +#+end_src + +#+name: fig:vionic_drifts_time +#+caption: Measured thermal drifts +#+RESULTS: +[[file:figs/vionic_drifts_time.png]] + +The measured data seems to experience a constant drift after approximately 20 hour. +Let's estimate this drift. + +#+begin_src matlab :exports none +t0 = 20*3600; % Start time [s] +x_stab = enc_l.x(enc_l.t > t0); +x_stab = x_stab - x_stab(1); +t_stab = enc_l.t(enc_l.t > t0); +t_stab = t_stab - t_stab(1); #+end_src -The corresponding time constant is (in [h]): #+begin_src matlab :results value replace :exports results -B(2)/60/60 +sprintf('The mean drift is approximately %.1f [nm/hour] or %.1f [nm/min]', 3600*1e9*(t_stab\x_stab), 60*1e9*(t_stab\x_stab)) #+end_src -Comparison of the data and exponential fit +#+RESULTS: +: The mean drift is approximately 60.9 [nm/hour] or 1.0 [nm/min] + +Comparison between the data and the linear fit is shown in Figure [[fig:vionic_drifts_linear_fit]]. #+begin_src matlab :exports none figure; hold on; -plot(enc_l.t/60/60, 1e9*enc_l.x); -plot(enc_l.t/60/60, 1e9*f(B, enc_l.t)); +plot(t_stab/3600, 1e9*x_stab, '-'); +plot(t_stab/3600, 1e9*t_stab*(t_stab\x_stab), 'k--'); hold off; -xlim([0, 17.5]) -xlabel('Time [h]'); ylabel('Displacement [nm]'); +xlabel('Time [h]'); +ylabel('Displacement [nm]'); +xlim([0, 20]); #+end_src -Let's get only the data once it is stabilized -#+begin_src matlab -x_stab = enc_l.x(enc_l.t > 20*3600); -x_stab = x_stab - mean(x_stab); -t_stab = enc_l.t(enc_l.t > 20*3600); -x_stab = x_stab - x_stab(1); +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/vionic_drifts_linear_fit.pdf', 'width', 'wide', 'height', 'normal'); #+end_src +#+name: fig:vionic_drifts_linear_fit +#+caption: Measured drift and linear fit +#+RESULTS: +[[file:figs/vionic_drifts_linear_fit.png]] + +Let's now estimate the Power Spectral Density of the measured displacement. +The obtained low frequency ASD is shown in Figure [[fig:vionic_noise_asd_low_freq]]. #+begin_src matlab :exports none % Compute sampling Frequency -Ts = (enc{1}.t(end) - enc{1}.t(1))/(length(enc{1}.t)-1); +Ts = (enc_l.t(end) - enc_l.t(1))/(length(enc_l.t)-1); Fs = 1/Ts; % Hannning Windows -win = hanning(ceil(60/Ts)); +win = hanning(ceil(60*10/Ts)); -[pxx, f] = pwelch(x_stab, win, [], [], Fs); +[pxx_l, f_l] = pwelch(x_stab, win, [], [], Fs); #+end_src #+begin_src matlab :exports none figure; hold on; -plot(f, sqrt(pxx)) +plot(f_l, sqrt(pxx_l)) set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]'); -% xlim([10, Fs/2]); -% ylim([1e-11, 1e-10]); +xlim([1e-2, 1e0]); +ylim([1e-11, 1e-8]); #+end_src +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/vionic_noise_asd_low_freq.pdf', 'width', 'side', 'height', 'normal'); +#+end_src + +#+name: fig:vionic_noise_asd_low_freq +#+caption: Amplitude Spectral density of the measured displacement +#+RESULTS: +[[file:figs/vionic_noise_asd_low_freq.png]] + ** Time Domain signals -First we load the data. +<> + +Then, and for all the 7 encoders, we record the measured motion during 100s with a sampling frequency of 20kHz. + #+begin_src matlab :exports none %% Load all the measurements enc = {}; @@ -310,6 +353,9 @@ exportFig('figs/vionic_noise_raw_lpf.pdf', 'width', 'wide', 'height', 'normal'); [[file:figs/vionic_noise_raw_lpf.png]] The time domain data for all the encoders are compared in Figure [[fig:vionic_noise_time]]. + +We can see some drifts that are in the order of few nm to 20nm per minute. +As shown in Section [[sec:thermal_drifts]], these drifts should diminish over time down to 1nm/min. #+begin_src matlab :exports none figure; hold on; @@ -333,7 +379,9 @@ exportFig('figs/vionic_noise_time.pdf', 'width', 'wide', 'height', 'normal'); [[file:figs/vionic_noise_time.png]] ** Noise Spectral Density -The amplitude spectral density is computed and shown in Figure [[fig:vionic_noise_asd]]. +<> + +The amplitude spectral densities for all the encoder are computed and shown in Figure [[fig:vionic_noise_asd]]. #+begin_src matlab :exports none % Compute sampling Frequency Ts = (enc{1}.t(end) - enc{1}.t(1))/(length(enc{1}.t)-1); @@ -361,7 +409,7 @@ end set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]'); xlim([10, Fs/2]); -ylim([1e-11, 1e-10]); +ylim([1e-11, 1e-9]); legend('location', 'northeast'); #+end_src @@ -374,7 +422,33 @@ exportFig('figs/vionic_noise_asd.pdf', 'width', 'wide', 'height', 'normal'); #+RESULTS: [[file:figs/vionic_noise_asd.png]] +We can combine these measurements with the low frequency noise computed in Section [[sec:thermal_drifts]]. +The obtained ASD is shown in Figure [[fig:vionic_noise_asd_combined]]. +#+begin_src matlab :exports none +[pxx_h, f_h] = pwelch(enc{2}.x, hanning(ceil(10/Ts)), [], [], Fs); + +figure; +hold on; +plot(f_h(f_h>0.6), sqrt(pxx_h(f_h>0.6)), 'k-'); +plot(f_l(f_l<1), sqrt(pxx_l(f_l<1)), 'k-') +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]'); +xlim([1e-2, Fs/2]); +ylim([1e-12, 1e-8]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/vionic_noise_asd_combined.pdf', 'width', 'wide', 'height', 'normal'); +#+end_src + +#+name: fig:vionic_noise_asd_combined +#+caption: Combined low frequency and high frequency noise measurements +#+RESULTS: +[[file:figs/vionic_noise_asd_combined.png]] + ** Noise Model +<> + Let's create a transfer function that approximate the measured noise of the encoder. #+begin_src matlab Gn_e = 1.8e-11/(1 + s/2/pi/1e4); @@ -385,7 +459,7 @@ The amplitude of the transfer function and the measured ASD are shown in Figure #+begin_src matlab :exports none figure; hold on; -plot(f, sqrt(p1), 'color', [0, 0, 0, 0.5], 'DisplayName', '$\Gamma_n(\omega)$'); +plot(f, sqrt(enc{1}.pxx), 'color', [0, 0, 0, 0.5], 'DisplayName', '$\Gamma_n(\omega)$'); for i=2:7 plot(f, sqrt(enc{i}.pxx), 'color', [0, 0, 0, 0.5], ... 'HandleVisibility', 'off'); @@ -408,7 +482,6 @@ exportFig('figs/vionic_noise_asd_model.pdf', 'width', 'wide', 'height', 'normal' #+RESULTS: [[file:figs/vionic_noise_asd_model.png]] -** Validity of the noise model The cumulative amplitude spectrum is now computed and shown in Figure [[fig:vionic_noise_cas_model]]. We can see that the Root Mean Square value of the measurement noise is $\approx 1.6 \, nm$ as advertise in the datasheet. diff --git a/test-bench-vionic.pdf b/test-bench-vionic.pdf index 78451a3..d0f2002 100644 Binary files a/test-bench-vionic.pdf and b/test-bench-vionic.pdf differ
Table 1: Characteristics of the Vionic compared with the specifications
Time Delay < 10 ns < 0.5 ms