diff --git a/docs/figs/flex_joints_rot_primary_plant_L.pdf b/docs/figs/flex_joints_rot_primary_plant_L.pdf index 73af338..677f241 100644 Binary files a/docs/figs/flex_joints_rot_primary_plant_L.pdf and b/docs/figs/flex_joints_rot_primary_plant_L.pdf differ diff --git a/docs/figs/flex_joints_rot_primary_plant_L.png b/docs/figs/flex_joints_rot_primary_plant_L.png index ac83f0f..872045c 100644 Binary files a/docs/figs/flex_joints_rot_primary_plant_L.png and b/docs/figs/flex_joints_rot_primary_plant_L.png differ diff --git a/docs/figs/flex_joints_rot_study_dvf.pdf b/docs/figs/flex_joints_rot_study_dvf.pdf index 770f58c..bf4f2b8 100644 --- a/docs/figs/flex_joints_rot_study_dvf.pdf +++ b/docs/figs/flex_joints_rot_study_dvf.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20200505092031+02'00') +/CreationDate (D:20200505112230+02'00') >> endobj 2 0 obj @@ -1034,44 +1034,43 @@ $` 5L=,.U<-4t9Z,WcyZ:_ҊQ',4LN#- l1ýZZ4hi-vs Ҩ\.MV^SE\-y-&e".Mf\9r^ډ7Qv\*Y+ḯLBSML6hLGXݪn1!=4 QA9`v=i0f@LB`ߵ\T pf%db$n3btNk 44Z( Ӭ|s4`Li]iW<4Mw6$g4+ipx2]Qӎ܎Դn}ԑ&7h&Q =4 !irZ5,@kViU$дq#?AӞR93dδ0;0H/e=4R3 f_ip7 g_iDirT{iM9S4 @ݹ yh#Fi2  дl6*6 4M5@紶Mh1Bo 4Ȅ,-iVz=5Ma0@MĘ}&MCgVo%дʦ7U!&i'Cj[4 FfiU04hi4h<f;K'6EZdQ!e`Vnf0T61f\g+g x)=LS22 9dz?C!=Vp4XFiV?r%YZiH3.֨h 1 #aw;bzl<1 ųE%1,1 Ұ-[ 0=1 =綄ivVD 4df"0vw1䶟fNyLK)* 4~4}?00$0Mij`:LC!ׁF}2ӎiau:fưf66k4-0 ̴^~Kii+wr3Yi!)|дs`e4MѷvFMYzI.A؍S`wJMniricv5qjBM\+<5*;`~+k|]HiL7M 6mj ش{RlNCYd@H^kO -4hv wi2 ]; gː;v6N{N(4+; qmGI-P<#̡Ӟ:ipZcNn:홡.ؤ rCGerK :gAa-mi0[gq5.]]iԵ֩J0XimNAgͳӴ"z~یNC], zi>+:Ma0{ɼD/io-/#+״KJZ\^tr:4l#;&䃜rZ9 brQ^NPYc9X$h,"ߧ 죜jf9UN N`NtUNir VxP4YWӰeNӤyVuyĦqJ4i\ZشI@M[7YM_ЇMS[]QU?Kjj&=D<*nZ@4uwԱMclc`6o&k`pܟZ)i]NBE6 w0-}d##E-}4ixKcpHӖ ]MjEM [7 {ͨS5Ϳi4*-#iR64iMÎ)yi$7 ]ƶ.4k27mM뗉'8 8nINݸm4` ZH!$:mwR':mEck+l{0]E,ixS0:M-cdpz4 |*?iV1LC~z}4,G1 3mGJKfz:kiYMWfځs}L;P5j6i*-X|6=<~4|NyO4U&NsĒ 3`ł)i1m)4 {{4 9_:1v4> 4dDŽ]:+ -ik.i*>` b7% rn2,{W{3 Vn'pE":=z#fmVQ3%4 69b M\9:4g7kYޜMw!i'944q sn(i:+hڰT/,i&u`bެl%i C爦mXh'O˖LC f»40ڎf>33I3 ŗjkz3 4ȇ1#iKw&4m3 M9_6ZNh[ۑ4;rs4 31-dʃH4iW¶&3M|8i!z4}x|Q,uǢv1YRӤ[l4RaZUӎbT5M>?V5.jE5 iij!'RizMuhZp0ikp^4O> MCU'4 _񃗦w˴I^'fJҮwxi;%=ҎŇ/m%Cn,yixiryxi 3zi+Twj8yi'9/j􁖶AIKÜ^sBL{7IK`cGQKCf&M/Zii &/qi]1s*\u4. Bx;. ٝ-piE. Kf6J/\e.M -f. 5pi3/pi[_32&b6K[͹u}'yiX<%/Mnxix?\Ή/mG܏KCr/3d/ ʰ]-&xi:9w6-3xi]S5XKYåv5xi6o/-^[T4 ,\. -d.MH/\ں`K3o9K%a۽l/ YVT4$5c8 nziDl,yiBKɴ¥[,\ 4i.P\Kiĥ¥1aiirNa*ad-M*sYSEKxTEsZ^443ơ̌ό. Z\r,|,yi/M//MnmN^U))`qjLӅn,^f4,yҒ_K`U[ïi%/mTkK6ߧ&=3~ -6kZ0p=S1:kL[-g*f|{68Эdyg;gBX 4.޾"iXhMcDӰIaי{r˂%MOj%i-Vhz7HVReMUR%5zUՒXón}q1uYjh yv4MnۢhM۽6i3a -EM"+hi8d4|VӰn`IMCȒ&߀o+jli2\%44o\QYyjdIM;^4 -Qƨ ,hڅ$ç2vFAM; 'Mw6)ix2pAX}A4Ќa"LS44^*f04BՎѴæGGhڹbAӸ9I?JF藊^L4 u*vQkLc, L1Tdi@L&bb*d6lL;]Pdڂ!=&Xe2qiml3"ӤWi@PA!d CPDdL.i+KLS,Lɍ2/dJ$LL\뵈iobN+iskKl/P4PuzYӖᾂi]4Lg olZg$`1 4eljIwuҶRv?4[JiKU)vFR联PJvk;3‡RZkGPkJ?Ga-+J{SGP51& -sgJ^JJن, -MAzBi9gg: C -J[ P~ J E'i9_mu!BHEtl`vѶ*.چ6]4MSvѶEF YFۼ`hL=hP"1DDm`g"ٌYt[qVڱqqFggFȌ -If6,h{0t/Tsk],;CFc;&*vHeMz1RaŝTM~,a"ˬeH휽h`,Ikd[&窌vbOhd[`Xh/F\ewBhiPEFӥ'"EFJi$]䦑v5d40-hr9vJ]ѯhr&l^|θhw{TE,6;|6Qq4( yw<2̣ɸVeV=vh$֪͢a.˪ܞRu4&NM^ i%m9Y]PGl[3h -SfM~K: :`h_eHwh:1m&7aÜ⣩ fZѺ܅GC9̣a˖7G۷9֢MmY&{EGuq?l}u~h:M˨/>B4vD㮤GC cGs&Mcmٻ->zmβoI% M:dY4y豐c H)E!m0i$]|+!M46Y4y؀O#"OdH{Z r5|mgd=v푑e&^.i$ӯ%iOm}l1[].H>ˋ M6-DG%" I6Y^4`@1ҎH;$c6BoB6\mi@SFlEi-" +xE:9 2xa%?vb:SaN)ZLQRzq,xfQE;0B:8T4LMEE֨ˣrvmcT߈ +hVYZT߽T4i#lfv'ҒvӐEEӤ2% ,FEM+2DwS#&{nE ;ǵ HWr6n,hO_nXGcVB,Vf 9{O ,VkA//,ߎ~d0qjMEþ@lP,hh 5!Zl  -r&K.ډ77h06yF @rr.b>h. 7]EpXǢa\b o ,\ZM0x^6 X4 /C4er~g:MHESb7M?ʶaf(]4샑Oe tϢam8hWcE}zj}2OFwѰ`@be;ա@G3 y!.f>FtѴ۶',j%=x-34ŧc.6&率Tv\4m;䉼¢AP% X;wXSCEsġRO -"=I\4FECsIEñSz]6^i׻hPp( ,MսNL ,MzcѠ-?h-Y4LoF T'"Ex f aa0g۷DmB#hX1Pѐ9<5h|h9ņYPfݚlMRa;\m&hY X48RX4:VX4i6.WMw9" -*ڮỲw0'h8n0,nEmg^A ߂BEñs>WdM)EB=dmÎ 0uf'Fvש)h8SYFC#pa9Oz@z\Sа*'@A*La #FN\g"m Wfa26szmץ/v 6ڮ֭ -6/k_AJL(Λ{Z9K>bVjaشԧ!σE,p.)*꘶06g`% +a^d4) e4rݺ`*2->h@3/˾XUр2s*2ډyEd4Ї7 |Za[i* 7GѠjAFC&[}/ع\46.%h=ԔQjE@?Kv{ꢋMZHtѰ-˔]4 !16hAQT{eCo!@zV]4袡tQ7Wًy "a4L+3vsX_ ;,z,y+hR>hK#uHFCX-sSѐ$,?' DŶVp4lѐ,cM&HhSºN,夣R1m9h8gc& z,͝5"6mOfP ۧ8:`+hqDTp4$Ƶ؈\nYD 9o}CݜE6w3h`قl#6l'GÜI:yY\:ڌǢ͠DMPVܮ :é㨣Z5,uE u4,YMДu4<֨ Llq0ͮ :ڌ!rKѰW~iN{ !QGC DD .%n^i6#z{?8ڥGMS[| hAGw[F4]6 :an}aNmܪ?yt|J:k4ծ^GñGu4rȈ^G$H:vɷAu@h[lѰE^Z?>D)X!H@]u'LD .[yCFkGCGCA<.M?Vu <ڣC7_X<IM8*y4l}lH0z Ղ 恾?f /hzlp~HZqGPn{e} p|4Ͽ|Ѱ`Sܭ!K>WF0{"EX uDj%>%dtoiGf)࣡jG x=V0cٮHC1~YJn6:i7WxO;il;Wvcw$!ᢐvcϥ(!C&! Sվ& M=D@,=hN]||!`!& I-(5h>U,:&Y7|ˇQ;h*? &Gk?ģ,oۭwFKBb=F,KwOIG!v!u4=toEi ǰKGC׫h8Aﴔr[{t4acIG;=3 x4[x4kYͧXPx4 :;휉GpyA>_d2fz ]Ii'@Ie Mlh-h;/>J>z~{^H(>݋&: H{td H޸sHoaq1i:;ɸͷ& BZ:, -wtrJRV16'i:m}}4rsn+}Gt_M-Px8)[|4zM>CaG %;We ]Q# -֍/@z{ &nV  5^[4\>vUGG澊EMKޞXF,huILm{⣽qGۈhX׷nQXz邥$ UͽK:G$MP=,hN+,:ڼ4hXNKnmO]"ҀMdY$7˴iH/=_i(llv"Pc2vX"\Z4ki BJ6IHCWS&Ұք0ɔhVCi-6Cz#mHD0#is_B4L6daX8 -|HMH4xdiQ&LHhՔ45;NFƁXQLi%WH~+I<˾L%H&'övphfbhDҰ~47%"iX zvh-ɬℤ'ZwKHfF|d1ҞhF/&# {gIF}WAҮ Hf6F"$ 2f[uF$ < 4tIc]B_W.HUHڦF^@ҰVQK7ڱ횺jmAtu IÔfIFI6e -FmOIm> 4I"p+$$ f= IфBE$md?)i`4_u%fX2*i0OnOJ%Y|OJAd}=e$m^C$M~:U(HQ$z$ &M$M:_[oJf>%M>I'##ckI{"ge䷳ ʤmca^,I{4zhq6Gf'Myf$^PKN[]Nځ~6ۏn&89i輳F' ͆%m%$2"vA& H6!47tJHڍ?x ICo54̇KGbvRҰy}IK QI;r1e"imMsxF,br iOۙR]^,7$M.v9Ԕ4yx~EBҰ Ō%$MW|cAҎmKH.BI I; I{04lDۏle$Mi%$ 1"7;$Qv ix>t4J>34󐪑v^[Ki<ӦB/UBmƀ}itci>W >R -b H{ZeM:hm'H1hP|)hrոG&_ |7@@,h`E N;-hu9\ ->xk|4]<|?i7s-ir݊ -ZFH~%1^/iڥ,ȩibia@BC?X4m?y ;&}T=k+@|Hm*&EN A4ģd Kx:GeYUjUG\,ŵeyzGץGp -{Hk;%*v&U S|4Rnl kީɏGZIѤ58p/>dM3В&?mG# G{6 gmd⣭B4a>S_7_4T.>m-iXJ>ͧZG9}C~FhDqGj&`~Q>|x,hO#|4iMVk*V>ҤsilVs3N:L@o{ U MŌ -D&/ck 0&d䣵f]ֽDEX|49&o 媏͛wq(xeJ{?qۿrm”AX+bb%ӂ!,Kjܕ\_.?ώűcE:_/\n=Dg#[9U9/D\a\@c5x?b2ZYeH. -o[2Jצj`dͺcSǟUK_~Տgu=q/<g~}~UIAu9akW[l~\c.?ʝ2x\?Z!JgG^n =p\?,|:?6;?Owσg|>_`9xE8?ў~(iP?^_pG7/pz“]H_jQwH?-*$u2/lQ?]-ЗEtoѢ~7ZԏFhQ?^-nM)-}Ep~oQ+J_iQ?]+- |EtE -ՌC&mԢc>_8\*,Ri؄B?ҥkpKo^7y7Niյ ڬ?ܦ|:?OM%.)Qca|EY9\WTf_9?V7Lx+'{?~k;p Hi?0!ֹz_ g3,ciZ[f ~߅A_,r ? +4hv wi2 ]; gː;v6N{N(4+; qmGI-P<#̡Ӟ:ipZcNn:홡.ؤ rCGerK :gAa-mi0[gq5.]]iԵ֩J0XimNAgͳӴ"z~یNC], zi>+:Ma0ii`6r/}io*rb!4Z\}+o5r7N6zr +Axi<>ixQ-4I aKʵm9 nr;\NN*<ڍ:1 W pZk<&vt'9MO4^G6itB>i;]ڪ4w-4'=ndsf+:bLEM83b4MdyM6r hzMCOyr;hH +Lh21iJoIh>nhpOϙiG2tLcj97L`cllD:yz/F4;f hlrϹB7i4|-[4o3M;ey(MC y3gE{4pSJ sh gծC6Xx4M٣iu,ٛib3P<83 [efFm{3!蜙⋵5F3 RMF3i h~r@Ӱڎ1܉9CM8\QaDGM0i\WdSMsM'u$,iۅG? =lYLf)Sʹ>iOBӰ ˳r̅]~@.?F. MBr{*shk3v! +Vvj6MC +F"mMc͒vEMݫiFmNMc l24F6KyqhоiWD0m{KkMh6<|Bv)~Ѵa4D3m̡PLHyNdr Md>LiLc$Ӷ%2 IJ,4z?8u$wF0̓i؀Kf?1mE鉘JĴZĴ8-i"VH˄L$.vt!i*xТV?CX.E +f淞(D3J\/m͢hZ>_AӸbV6%4MSVCP1h4MXqLfHa2ӄ/#i7rF0ݧj}ۏuђhxLMYIMx$5 "޴DM>^Ջj>,T>i!ǼvI&hdAMn=LM FղV4մ>Դy5 iԴZ)SDP^@8S &4 j-d0ip4Oy8h6w^o/i4O,E(K0*xr׊a&- F%-mZ4t749y. NRK>\j6dxI\6\4z`X(ėO  ZZ2{9iJX=aΊѕ$`.Kcĥa_$.KCvgH\J=xKÒVĥQ3XȥT7$. oɋM\ZK 477I^چn[M^]צ%_/xit `?K2N$yiq? +z/ ɽ~!ziow J`b’Ɠ2N^ځeFI^㔼4z[ VxVEq襝h e𚼴jFKcH&/W%.GvEȥiKK[^^ jL4<󚣑/Q&/ ue3yi(Һ!ce KO/m-B(qiWLK\`K FͅʙK~oҴqi}R4|gZ#4tJkiXyz%QK䜤arTsZ^443N-YO\i4hX潵 H^_[I^V4~SZubB7OZ&/G{ximlvqb7^Z-5W:]49^F/I4pi]"zK۪λ̸4 3C(_S. d/!riX'kiRp*FS%S`DKZlIJ۰)VV˘IiR&DIJ[56gRZKPIi NO&(m vX-JEJM&)ΤM5K~M4T,Iim3ZҨb40WҬD)Hii.[YJkRLJ;,|&Rw6;4]{MmYJLJ=LJi60nn^s)*>Z;:%([ ݦ&(jϠ"k49F qg J^JӁk +lk*5 (Ci-&lɦ >4Bi:yMr0Ai! JrP~ J[E'i;6h!c-l`tюJ.ځ6/(h,={#6vX+hLe4z[(R"P0BlFla,h<\-h;wd +q F<*' \I0EMvL03vj/3hG÷3+3F=âfюjMMr48h!xXtG;]㱍E+mWlk"QT3VLMO.ґM0s,hz$2#hԃYU1.Zi`F%uF\$K-hmA3hU莉 UcFfd,{e4lP2,q!Ǣ&H$\+hR(ǢFnn2/]2ډQ@IF&[ &91, ,A%I2V +.3NnhtuE Cn=gѮV i=u&V3vWMz,b)h=#h09hh_BEƵG7h-7hO嬣af w:hmY)YGdeË!ܽLt"0wAG+6u4kh"ȭu4})ƁjME Z0t4/jADRp$h/V'kܨƘxbucnÜ䣱 Zц܉GC*stGÖ-k"V8֤򖉎Vljѯe^z +/uRvGVJx4..*G+݅>c +S$ %PFEH# 3hk+䣕|΢Ɵ_BrQB=F=X +C?eҸHzIH+f̄S8\ +IH!qf"6 ˌHyS`@=-9i33He&\4ҤhQ?FwǪoBj_NHʪ􂢑>'" ru<ף$,ODzH@2.H\t/$c4z|N"jQF\$# a*HR'#ق9!ҰCW=b'"S'Vk#h[uV><0 i424b8 iNu) +it1 i8d"QH$Q j"!2 iIHÄP$M IHoH$*.iN!F?ǭFҨe$Q+xS ԝH0f' v +e"vq?i4⫵L}4]tM>uO|4:y|4AFC/ vrY4rZu=h^@(QѰ.*:w7#h t1:hXSaOUhu +2gp>@$~r]wm0gL252!he&MY&2=dʣ&2"9F| L`4/ҪIFC£nI0e+ oE$M"DT +.m}&-E{to=ƋL\GtEC D8džqE;{\@ё\4\!woəh^ +.l;])_vbMQcU鼊bxg˚S΄RAf.$ [. * ^E; V'*Vд4h׸{#hF<*څH *է!I1d K +s,Fy+aas,oWz:y/Y4rv9X4\rcE{r=.4Ϣnedѐ ϢqE1r<QϢ!޾w=iD C1kEC5 +o\4L(Й4Iƻhh'z&saBOn.2Z]4<ն޹hg]-Eîs18l`Ѱm.9 H.Z$0#E uıh^iYw,X4EcբƧ)ٜ\4(+;Z4dtѰ>6#=WX`a_SǜE S}2F {Z4h+8h@]4bs}6hm[gdNh 5 AEC FDEC)6B9m*UT4>39IE" ЄE~(EQ`ձĢQwxVxPDNE+U4D Ϣ[QcъjcpmjԱh8vsyoiޔY4~,x{sdma4CFceaUw,IFC_% hFSѐs[eb)f^ (.IF;1h{=FZ|jUF>H0QY + F06՗sA;[Etƥ8 2*s0'%{E/؞:l:Z*]4m.R]4 wrK/om!zZ]4z~wPH[Vٛy "a4L+X ;(z4yhS6h#yɈFCX.s%hHHث8 AE'ehHC򱝎~H>hSºN,~堣R1uh8gc E{Y ;m IEmL觊8`hqDǒp4$ƵX\fYx 9ӽhhnE6q4^lAG[YϣaΤex ,VY:ڊǢ͠xPV̮s:K5hhvKs:ƃp:Ҵ&h:CZukPFWVhfעǜ"$3hrhU,8 {7?}0h8u4v%hhl h)EFi..,ZhbAGЖn:S qfK_6t:ǰ,an}aNm\?zx| :s]cOGu4rHQG$:vɷAU!TMx4DC9y4lG7NGCM zl$QQygq9GC =}y4њ򸷁PBGďz]9ᡛ-y $&*y4l}a*'4gS "3}3#&ޡ<=jG#GC X6a܀ #{ :;D ]!n}e _PjGCoxA27#zf)wGCkբ݃zaG]briJnV:i7WXO;il;Wvcv!ἐvcϤ/!C! S־ =$7e{0l0hCV{ Í]4V |4$a|4d7)uG{| 4mh||c <\x4>fEO`#&X^C҅g}<t4.EYMv85h8SS6evň^{t4aG2boѴx4l>Ăģq٩ <}ۣ RѤ% RtKbR@ډ`c5#&BE lhzɚ|GGS ߞeGgUA$MEFG;H{xd& M9FqFf̣xBv qm @Z\Z:R $ *(z-mxQh\Wvܹ |GZ;GCc5R6h\}4$%lOJBh}=E$m_S$~: UHHRBHM'[&Hu,!>!il5!*iR4$͞LVt؊Hv+0 +HbDnO}uҍG*̘3zCFZ7i,ɱ@:8Ґ~4j4 ,HOīH; HE @ZjI>ڐ|4P}4:fja&>Mw |4T"|4T&OI@Zf .^/iR Ҩ_)\iܥ94)ibiNa@BCX4m?fq@! Z H{W4d J@ڃh:vnAX=ڰNxf:^ZfAGCTNdMbE\>}\}4z]ў}4 q@Z+i'@Z)6E%@Zlїr[g+h&O'~D+>jLF%NMѤZ5 hn2z~V|aG+,|8\H&f곐{YHNXG- ~_G#hh P>Z|^3(>ڃ6hC^?9}4_"yD> ^r,hO#'% aR&e>Z@6byM1r0i\dH=$J=Z@*4? Hy Hl$|k*F 㢐UҎ2$I +4ϐ¶'HҁS!yY5ٚHk˓3# z FڹC4鱈P$`C;4CҸF]V:CxϜ!imcPFҨ X3$mA^I߉}zd# oY2e#(x'"m B'[g@J@]`棍2h?hV?Ѩ5ٵ@ھku H kk +huv;4@5{Hk3 ^uk& *2ZUHӮk /uh⣵FT d\ю.Nh~Gۖa"zI ; ?wT-[~] š];0o@om0=eI w&?;~cP'y志n|pў;:goϏAO>wQ 4oϾ^}9hD7o/=rE(f۠}|{~$| ||{q`\+pr5H&M4p v_gwD;'wDh2h2^M ||{4o&>dm+A("|~Ķ@؏7!HdG7D/?d9?/%q-_ߝ1'g[|♗4~(;Lnew޿~X>IG l2Em;b~ ܢc1UAgX3l8Z[ K}yٖoѼbM endstream endobj 124 0 obj -107305 +107393 endobj 125 0 obj [123 0 R] @@ -1179,43 +1178,45 @@ endobj endobj 139 0 obj << - /Length1 9292 + /Length1 9148 /Length 141 0 R /Filter /FlateDecode >> stream -xZ T\y}ˬ0 2 3 0 0,ð$@b`[-[X΢(ꨎ*XM5I];;O"qV=%FߛqӾ7޻P` ~CqYm6@pw=xb,|w<&f"ϴJOns >_1)[x?`?orvR3vfnJGgG^4a߼sdv6W=:ӣ~> Tb8s[.WxnB.p(Yz:`-!? `$qr׸(wusRmVĘ[LC?,NKnɃ0%vxW||W\k"<߂ E)xp9X9id h4A^ըU)J\&P+hF^J!@cR\}ƪ~R#^(iT!ۅ(B2'GƢ(h1= X;k7LF%(tYLQ42ֿVlv v}#c$g4Zc"njADsiڴ5q7-tPqo oDY[(=7OE#fQh B3b-S[h*Jm067O6y pw_W4W9ʜ٢d$Ԃ - E[nm yw `VSDE:AnTۘO@)J8+Քk+e9TB+~p^|K_=5(+nh}BΟ%Ob+gw'PzQ(OA 4K]i vfD\*/3d{@r%:A!($,":R.HZD=жYSާM<32 um[|ivs;-8]臽;&W_ZskOli޻ٲ얹tCm'+ɣ|٩`ɖVCrnD`H2dv` b!a/Uwo1!7ɢ*AoUˋ2crңa<-'%/E@Ʋ:#z#ZHbo,^[|rHG\?>*$Z} Yvu9l<澥=X?fdAXD~nꍸo*9K@.')z'C'8,Agm?'^ /t s,Ā9s -H+#&)DH6!B(-P2KW*&MzQҤH8psaʂ"]VJ 3,Y&JSn*Kp!`0i0-c4x[y:FY򰜥7o_Ssr΅e-ʰMfw$RߏQO H˪xQGDGaO2b-Pvg0wAS0PTΤdZ5MvH"JIYI>O&LP0a=axZJԼ>AL+ /u4T%{lgI]x[SlijQCCQIC#`oǾsj?b֎'FZWZi?>U#=6e~5)AgN2M@ f #yZ[Z 5Xekx|Y*`Y n@"ڞ_a?I4){e2Dtݮ4Ibh<58/TV+=T!˳EuuEԝomȁo}qm)=դiղ/ -AwF{Ls'v}sbަJsYSwVJjb @ݑs6ҥg<͏36ȂيBF."T,TU x|^Ԩ=N=Nx`1hsVWVChny(P*d 4e836szE-Z5_V!|lTtT8߿υvo\ -2a.@>@L[Ctf7PrHE*!Ĭ1$lSB>=VOPӥ!OO9yJ6uޡh?V]wsi:n@.z7L~Kf\ֺ];ͽ,CJٕiv]8\]u\5rcR~OAuؚ Xe"YFCk3idlRC 3.dv9q6‡#b>[thʓ+7R_Z{^sEB%FH*9(3AF %ɪr"N%(Y$xN#Oknڵ0˲vKlifTKyFjLSJ^zB#ho#O}#`TgPtd n5ZFC>,?pȵ٩sFJVLmI`";F,%4@]7T#3om>0k>Z"ѓ3Y^_P7_@h<%ࣔ=-b͑̇P2PxH8 -:ڲT(%ńa%|!S԰צ/͒II#`66';]c=6CgۯF.VTUithohG7yq̓o\?߽PX%| O)=~އq1iXI&ZQ0&4VVi@,Yu{9YYX=ЛߘObWİ3 O~Q݈#ADd#¯P8ـw -G1:-[ 74q JΛ3WyTPr6~rt&eEHJ|4p+xK{7\Y-5%]58z:8ph&8|+Tk 8 fZyǎm(m[ Y{4s; C%yTHEdc z"uTU^@3<]"?p馝-b,`%zR -U>\ #|(3rd'D- Yx裏DҤkT+ĺ 1]Z1h&MXh 4;8iX_uGJ@@MZ:6"҄W=ƽ>{3_u7{%*A7-?7)Ҷ47o+፜*EŸGymY4a_mx_x<Vͨ7ZG<:g9E($ÓA_;0VTk1rK\AlR1T+|ƝH%r5q5 [9֧OA+O &gpdH׫W. BŹP\ܣ`@T2D!gJ|kpſeIޢJ! sM,?82Wf))[-Us - g"W є[D}och{N6-Ό`-YTP<^\o2虞=z1:+2!$xOWIA'΄KQ:q -_xC?Zwc߅u}apG_;#}hN[[y vYq įSj* -#8] `VE[&损YǟoQ'JW&/%wT ])L| -RݧjWgL..4Wij7qVL!ԲGP/ ƚG -gYۅ9Y X?΍Mv -ω]3f,U_]_<&hE]XE2`%J'.q )O)zpG̀,%HWmRȵD_㓄ay-M@K̉6TRh3`&6 mA9fQRfGl]Magp3w{|⾙l$.^'ĽW;dΉՉJqXX j@Nq1SU=G<o*r*9"١llkaW \ᅿ=4(򐯐+nkod?KVO< <Q\(h V 6fE\N F v4/3d{@G:A!($(":R6H RD\-жZRqJӇ[{ǟLî}^q}l鎅- N=Qζ-u՗}{\[n6=eoF{:PyG[e(-<_vi>X%ܷ-4|YM&I=_zY@: +מ| \&τ6TD}q+&x+qWN(l֠% +/ ϋѦ*gAuu"kn2O/NWM}w~dlT)%$E&?qVUT۬lZ{bG" ==ޘʰL7ྫqzȄ=P=HrtLN-3QɩhH&٤p(zQZGpWe:Wgi^WVQK0hTkx+~1 &]fIn3yiD W#f<B%ِKx*I#29:[$/7';3JVJ0̢)l$PK3Ëa#M'?_|+{έqâ/:ޢ`4 +Cpei",KdNC8%ɀRx4_m$Œ3  [~C{jms]x0>ǧc#+?xx{``{mEBY !Piϑi$͖y6ё2W8Q +d b$u{:'` +úG- ć ]OŇe0+S}x/hzPU 1R`)HC*gYɞR6CQf`%dnm'.`H^zçh+\P.Ɵ}c״5c̀whp짋n$Do{D 1Nb~gk. +tf4nAZ`I^K)d0"̤[ͪx'%/Y@Ʋ:#z#Hbo,\[|H|~j}*UH4cQsp}?{~̀Q*"kq T#!S03"}ۻC#]߸= <$#_{sO1/R`2%T!NRM+HP|<iwJyϤxa$BJTV+ )7?^j51K@WSӪ+x.rQb~gWVYZ,m~8S#Ń +|s6UwY3arBu\!7fjIEm9RNYONHĢUJ'@QG]ͱ]WFtoɊ^7\ܞUhpǖ=GgE"Rv#UzMTWy*4۲mP`4ߓìP,iY_DXjN}*LS)m5B3Dመϖ2\ +&31# TpeᗺVn^#}Jilñb/|XՈ^ +*+ XP5[LRҞQL8 x7) gq)Ʃl^PqoH~ˊZA]/hHWn8eɷkJ:k6q'ltpڑW};0RpVWNO<4ǎm( + m[ Y{4s軸 C%i<+)f),4 Dj,y8(2s+W `}&$gz'4^,L n8mXPjxҮR iuyoSӧ7TQeZY;trbU~]<!o`YJ;[eZyW'u{kgHqfq7h,DzN^ˡjά}vKVm5晾rX +Y$rUv'!Hʒ*%U;j7G ;ܕ,{VgW6 T\g~rf~\sӹٗ?wx} 1^^;:6Cfֵ .Wޝigئ|NUt/| MCPT죩';ŸJ: 30]*yG$P&gI0j^iz}&4uF:-~X! u[34:`RXɈU&PͻiE\Np $Ԩn"Mdsi[q*7c8Yks \InB9Ni[] oR$/y(]]= jkƾ>\z$[5#\hDu4qPHΧˇ& 7f~`bi[Que5e4 + %M&*6绗~F~;C!uyUD<ơ |.[L!]*S k1eW??u :,r7\S%޷l{Ctw_mpfkp|x=sA@;ޑ3ݍuZ[u% 1e 'Xpwnq&)PY0k<-NвuQlHۃڿ|o?8|8l%b+4lqb"U1G&֍WxkKZBT~uRzH5Е$(})fuAť'qb!ԲGP/̣Pcy+`{<'58熱]8wW|(Km5*;a+0K*\^xqU2RhSDYL$k6ƙa)M@CL6TRh3`"=6sI9"_Ky0 s0 0{įPRm!y3uPm82- X3VW{cxwQYkk +%gag A*a1؆#AVMcxǃO4EwOO14Jݦi]mx::?10=m͛v-*)- m65cLtZM{BX@鶠3()J3 [.Ŧqƻ56~06{iޫ]CxeՉfKv\v/^@iQiqi}v[G_,"s%Ƣȓd#i] R|U4/ endstream endobj 141 0 obj -6685 +6594 endobj 140 0 obj << /Length 142 0 R /Filter /FlateDecode >> stream -xk`(cx  +xk`(cx  endstream endobj 142 0 obj @@ -1239,19 +1240,20 @@ endobj /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> /FontDescriptor 138 0 R /DW 0 -/W [ 0 [365 500 500 500 500 500 750 833 555 276 276 388 555 555 443 276 500 750 276 500 500 651 391 526 555 443 526 750 443 333 500 500 680 555 500 394 500 776 500 776 360 513 500 ] ] +/W [ 0 [365 500 500 500 500 500 750 833 555 276 276 388 555 555 443 276 500 750 276 500 500 651 391 526 555 443 526 750 443 333 500 500 680 555 500 394 500 776 500 360 513 500 ] ] >> endobj 144 0 obj << /Length 146 0 R /Filter /FlateDecode >> stream -x]n E -"D"U*yчljs#)p0DĢw;Ȋ&vZYJb :ォNNkj'K,AMd,p.lvloluj6ziKm^XJ傺i994AhjI7ڝc7.eo=ɰiwm֍'(2P -=!K)W"YPX4UJLrȢ@җe6xVs ]ogh{v endstream endobj 146 0 obj -423 +417 endobj 147 0 obj << @@ -1271,28 +1273,27 @@ endobj endobj 148 0 obj << - /Length1 2552 + /Length1 2348 /Length 150 0 R /Filter /FlateDecode >> stream -xV}L޻{l6 ac|9!@Ҕb'p٘`!Y6(]#UMiMMUuQEݪl(GimՄI*2{0і^=߿Bɧ[;`Q;: לCR=30_(ǧ \ ~&;oaL (rc2ptV5\o\QNg3c~gLWp.[|lFUFRߠ `za0Vm~ϳkt^#{pn=p <ia8`?a.vp@$|.?oW?} ޥз ,=ES3Gyn-fﰷ5fiav[Kv~=snux\E,/"58/"x 'u0Ad>}Ⱦ!*ǬrsYihxʱ o{D\\37 9'ZS>J"d*,{NdR)NXgXʴ:qU.")z(:uXG]pTSH_QᩨVjQEEڞήL'u{6# ]eVeq@ ~(UV - C#)*ApZUԐ"ZTjJ0 R82RX-mbO wH"o͢ΰaI%JxVO)b ]?^-{{T[ [#K|=0> tnm<]we: ڃn\#vtX}Xh$ȗoqwg`CvD;#4M&0 @S W^j7kqG$B);H:l7[όOE]RCLVYUigj&R#̌mo{!0Rtvt:;\Y= 9g'Bx3>9p﹉]Fﷹ\Ikρ\Yz}OXUtU樥5JF &3\n?R;3O!R -!U۟6wK/mn'w 0vcۀr7oo#,WA\VN|6I~.Q}@-mk3!m䥡K^ܼwo2ٹBasך#G׎UxB.?=s_e2peQww - er05s cG#u k1ױ5T̻u僿(;D[&yM4`0َ|5W 3n}2u8[YSD*]skqq}XDÈ@*b,"EL|X<3tK03-bH9XjZ< $aDhBg?^aP 4Ay5iaTu]/j4r95H.M;bXɥOR˹d|'b|o +!E΢!MS W<_0;<2K!VT.)'2>6b'4Zݡl">g;,UEY쇬_%-6PvQvHg n:*8w\Ve$Q.\gx %@ +xVL{g`jHr03$XBR lL0!aQU(jCu[S@UVEYԭJt6mU#MH?:i*&Ru۳}>サ @%zx"{zneYY{Xb*'8Kߥ>4 wn:'>g_PUoH%hN/gʿiqz=| t1_X~.Jk/.%OP&v8pxX -E9|Wq O"y$0 qCGq}E7<8h/}d+'ߖ_]_O?҇ҌX?"-_ +ŞcG~l?7&n5\&~^*i|R,x)3NQ =suT;*+6Kߤs*jdl ǭn556ͿsaeTI CRRTՕF8>Pۀ1~*fɫ wD7H`=4v7t[4wύֿ%~l{5h` CꙙᙈQ Ql2GWjt]CR#FVba]tC Mh6q`j$cjĨlHzX߀|trlzD5 OƌLܜOP%Ah濭 Wgt1zml0t lڤvm@{&_tGqz=Nϰ4W!%9ULb$|@lVr'X5Z&]vhEb4.Z,;zXGm}HvԹE]t:nQsl afMP/rHrمKnf(g.Lf6t]V7JU +ae7z+e%iu˟|pkd'm]5:x`Gr rأֻ(+9xHg~Nv(N1/iUpVZ,ZgQ}ꁿS}o_oaMNl7._gmpÒ9"`&OunRiWx,TldD1?.a*V E2[V\L)a6T"X%y91eQH5s 2G}遟p:U 8yY$V,ÿlJR9V蚠N8h~IB)Te2%i1UfJ҈FեL*F}JǯDB&q=ZH'WP6Lae"YH.$`WDˏh~l69/ɕdV9'uӤ#G $y}z. K+'KaKd&S:[}ZҘRɥûls :k4z'i?4 ;]PYwն/ÃhS(b꧝ iU8pi{;O T endstream endobj 150 0 obj -1836 +1669 endobj 149 0 obj << /Length 151 0 R /Filter /FlateDecode >> stream -xk`F +xk` endstream endobj 151 0 obj -13 +12 endobj 152 0 obj << @@ -1312,19 +1313,18 @@ endobj /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> /FontDescriptor 147 0 R /DW 0 -/W [ 0 [365 520 464 ] ] +/W [ 0 [365 520 ] ] >> endobj 153 0 obj << /Length 155 0 R /Filter /FlateDecode >> stream -x]Pj0 +t=,N%PR -9l[[N m琿*cah❼1N~!0h]Qՠ;[M2"u8uxn, >gIϠi$F8}~pB:ͯh2 AϥӉdzI?jՖAys -I[K&_7`ԷmR5qPv53W!s Dq='{ 5jˠ9H$݈ťL嚪tMQPY Y%o㈨r j!<d}C endstream endobj 155 0 obj -241 +236 endobj 128 0 obj << /Type /Pages @@ -1597,46 +1597,46 @@ xref 0000006481 00000 n 0000006536 00000 n 0000006591 00000 n -0000113974 00000 n -0000113998 00000 n -0000114025 00000 n -0000128199 00000 n -0000128060 00000 n -0000114223 00000 n -0000114475 00000 n -0000115919 00000 n -0000115897 00000 n -0000116006 00000 n -0000116025 00000 n -0000116416 00000 n -0000116185 00000 n -0000116728 00000 n -0000116749 00000 n -0000117004 00000 n -0000123809 00000 n -0000123787 00000 n -0000123907 00000 n -0000123927 00000 n -0000124480 00000 n -0000124086 00000 n -0000124981 00000 n -0000125002 00000 n -0000125258 00000 n -0000127214 00000 n -0000127192 00000 n -0000127305 00000 n -0000127325 00000 n -0000127720 00000 n -0000127485 00000 n -0000128039 00000 n -0000128122 00000 n +0000114062 00000 n +0000114086 00000 n +0000114113 00000 n +0000128009 00000 n +0000127870 00000 n +0000114311 00000 n +0000114563 00000 n +0000116007 00000 n +0000115985 00000 n +0000116094 00000 n +0000116113 00000 n +0000116504 00000 n +0000116273 00000 n +0000116816 00000 n +0000116837 00000 n +0000117092 00000 n +0000123806 00000 n +0000123784 00000 n +0000123904 00000 n +0000123924 00000 n +0000124473 00000 n +0000124083 00000 n +0000124968 00000 n +0000124989 00000 n +0000125245 00000 n +0000127034 00000 n +0000127012 00000 n +0000127124 00000 n +0000127144 00000 n +0000127535 00000 n +0000127304 00000 n +0000127849 00000 n +0000127932 00000 n trailer << /Root 156 0 R /Info 1 0 R - /ID [<100B45F2E6D8262D8EDEFAD5C57416E2> <100B45F2E6D8262D8EDEFAD5C57416E2>] + /ID [<0E3978AF20BB7BE7F6384D994E114EDA> <0E3978AF20BB7BE7F6384D994E114EDA>] /Size 157 >> startxref -130189 +129999 %%EOF diff --git a/docs/figs/flex_joints_rot_study_dvf.png b/docs/figs/flex_joints_rot_study_dvf.png index 218813c..e2644b3 100644 Binary files a/docs/figs/flex_joints_rot_study_dvf.png and b/docs/figs/flex_joints_rot_study_dvf.png differ diff --git a/docs/figs/flex_joints_rot_study_dvf_root_locus.pdf b/docs/figs/flex_joints_rot_study_dvf_root_locus.pdf index 2cace6d..d76874d 100644 Binary files a/docs/figs/flex_joints_rot_study_dvf_root_locus.pdf and b/docs/figs/flex_joints_rot_study_dvf_root_locus.pdf differ diff --git a/docs/figs/flex_joints_rot_study_dvf_root_locus.png b/docs/figs/flex_joints_rot_study_dvf_root_locus.png index f4d38da..a441211 100644 Binary files a/docs/figs/flex_joints_rot_study_dvf_root_locus.png and b/docs/figs/flex_joints_rot_study_dvf_root_locus.png differ diff --git a/docs/figs/flex_joints_rot_study_primary_plant.pdf b/docs/figs/flex_joints_rot_study_primary_plant.pdf index 1f629ae..272d896 100644 --- a/docs/figs/flex_joints_rot_study_primary_plant.pdf +++ b/docs/figs/flex_joints_rot_study_primary_plant.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20200505094524+02'00') +/CreationDate (D:20200505112559+02'00') >> endobj 2 0 obj @@ -1049,50 +1049,52 @@ U 4xm~r4iax|խ<:a4#n?STFԧ<'jOs~LMPHMQ]عEj&DM9g bFl~36MΌMCkNi4ɻքMCD+󨝱i*&APWɛ33 Vr#4,[iЁyʄL >B5#zixNcE~vLL̴][&fel)+-2tm2陙yd`lTq7ci:s" 4xWrr4X My MѫC34A[QMaV/Q!lBUi6.\&UV 45vaT$M4K30{hnC٠zuYdIWOܴ[]!^iucM!;AqڨX{.n,ϣN4$v:NÌ1-]&pbW 4'Np'1|{Cd!#nA?Ꮑwor: DDN;~ZipH9h: ]1iՙi'Oc6.5T?N sft5sft{q8,.(U%t\wO: Ѓ+x 4)pk9 #>NtZ ktԭ}F7Ӫ~NSOtM$tg;4.ռ, v)v@A 5v4Yif^0 ۻ i"kK4q -ܴ[+G5M7 nAYe[n zA7p C2qkіimfHpS3&nbh6":qӠeYv\9<_K`- 4gOe y DzY=ҥzWժbdl/i `Xzvv+PmNFc ѹi0B!Ep{7 imFY(;NdG9 ӳiC[b]<VYjMpFt8fz7 % 4钸4t %ls0sGwO3"C2ܢsǮEMECg]M4߻vE=i(!]\NC 7 ,ȄnM۱SĦa-i8o\ ax-#i8\hǜVE5pZS[#am@sp}64lsdش)d#ihO>OlZ#rz4NEM;0Z.j@`p [apӎ/-lv0Mα6H4oi]Vx| -ً“ݢrB(iȉ~ϧq\Ry> {LW|Z`%OFx>wKi6OkVHZ93ǧaŝ 9>)_ayO 4Z5,2jˠPCUc!T9ieVq>#Ws|Zņ+'>.)JttAҜKu@PkOv9.Zj( I܂FAP-ћl%Am[HQ5ێ <>Y|^i+G= i^ߤR+4Z5IL zۭG{IO{= ]#migѕzz -4lVV8IOaOIO;nzNnC%?~g?2I -咞9RVm =.W:szKzPn<4`8DLhwN<ֹD}$jT -4FoE9#8iKt ]R 4J4Ҋn8 cN_E8nKhnU NhuNUp{G-ZDE8MN2Z{%;OnZS*Xpv(dE7GhפZih.4VJiZDp(4Zױ jgLَD1 ?,Mbt4QWE̍b V4b(ԋiڂFzJWӦ$9{ b6Nu11JQL-4d{Ibt -4ZgĴ;qۂLgӃD/]O_;4zO--ȴ~k݂LcTY ;Od~@]WAћij^' fڻȴFd2!Kdڎ鯺,L;XsAML*`Ӣv}SKÞ.zv &/E.K)CWyif[xirXE/cwgK+hrҐV$w'yi20{i;7Q4 o.ziUGߒo E/V8K3W)!.xi7s]ffh,xtyMZRs5G&ji>o1^0cA3* Uc&MسUt*qiP?ِVf%.~e\ޭ1iim%-BH'- \d&,'&,Jj~.gHAh@ZbҰ?iYܝ%! wC BZjֿ-!8 c- %n HثuF9 υkHC8 @k @ZGm/ +uԧ-=iXñ@ -(?gMc  Y-K@#=4t򶁰d3kQ.ժIHjVFB(AH06邐_̓4Ԗ4* avۛ "^@#ʎwVsqsBڃⅴU iY-/焴l:B3x! ?h@'9" fK4,#ix-dH P1!inb4J8l$AYI5Dޤv;%[" Q![TXy;.Va)U4ځΥG;Uj|49qWI%!hȗO̜1>o_Gk(,$h -.yܒpLӔ>v)M>V@ -EO %KaH,4Vy! j%tPCOsBt愴$/,]tٸBIoan:0z# {'3Ґ3~Hcф@qT| O]zDH i|.%HCm!HvF9&ށH^%"_ Ґ*uωHCPc5qHCY%ixi}.F&5EC>Z5'iHGn?y/H .mhPWNGC$Ky R,>Ryl.m~:JG!7l; s.9^~E{}w;]u.wVxa4Mݯ^FC% =,FCTp#mWz MFC<ΤC8 V_ܘe4DrE TYMN2x^FCm9nhP$^hH7:NFC1}qVd4N9 = *r0c@%׹hlA=ovPs=q"y?܎EWY4NKlbјX:8A4)8 -y1]Ļ Cp.sB*a7s.{;\4qsXlrXǹKmk碱rsqW0 ]=5碁8X3& sy\4셈%V# hv}mn ,qG5Ǣ!>,űֲY`tX4U  )a.Ҥ<嬢[ۯWVѐBٺ{76!ӃgFB9 ^Fx ΍4c|&|8̕*GW0ӭ7ɩhz 6-.s@ڜ|9&Xn>B5EѶ]4:;MZdsGW..*6?EM'T ]4$%Hإ*ٻh8e>Җ2 fMyl?]u2fFXQf4w0`4 uFC}FGya48hHB$ylN@bh4 y𖻵z rJ+sN@D>r12Za9($56e"d4Z(e4de4רB0atA'!d4{he0d/w1B5h Hyh'Mq 4 U>,oallyp|}FêlK4. 4 43#FCGl\oE*h -p/1Gδ#V1!hHSG ѸmL"u8 6ΚFm4l7dAZQK杍\W=n4OD 614ve__F "|lF Q]i4Vy (;4Z=Iр7L6h[!EFC}G/F:vʢV9z/2z9Yz }uZO.z&M.ſ=.$OqMc=I*Wq4ZejThY3E> !^=/J.7y5' kSļU/w)Hؑrd44 8h4cFcd -Yb9/Ʉ͵S2G 8 7J4 -_ hM^ދP2Hq^F{8F'OaHO.g(F{'O!~$I\<-wl4+hyXem9<6riaҤ^h4wm4Њfos=FۭJGCtبas=:Иh|DiJQGC~0y e6hha;9a}^GC\z NV4hk: nK 껠a{ ?h8hhؠ\z0#4BЈ-hyэB&3GC9k xG{$h\?r=d|h(UGvAp4?2F ㌂m4?)vxW#80i: g!ޛFR E%m`] шh4J0U6hA8h44qf`Ӏ$q -i=aYf:! kPa}a wF{;cxZռ> -Lj24FVlQFC/3bXܫ88d{ϚV*ٹHpB_F@`]$T*h8MWe;oIFkZ-3hKjud23{鲩d4qaNFr !O9RtD?s25 mrmIF9q ǡ$AFth^xƕ/+hf`ÜVOqR+l4wѪ ㌿/)wFtE^0d5)9><=+4jlFFM8\s@a%Fn1s426hԖ@(:F-h͸S!6rhX[ဣu4V-* -8 -B<bT ;omFC{6RMǽ:uAxIwFto%6ݜv̔qѰ-ˆ`bL6d1h4Dst$aF-h.-1H2%2]<(m  lZd42&EmLK053DMja"09,FCO&-EF -Ijs2Ο? hSKr𫻤(h74h9MQN2ZY =2Qf  gk{)Eږh4c]`0m ްF f,t8jhH5)h<%hiG0a*|t0h8B9(hڲh͊-h{Gt4qnϠݪ!,:^1U7'hy4q/ht=\pᣱb$GÔ%HC(4Z-i)Fʂ0 F+*϶/9 @ځk[>$ W-iXi'nG6nkG&h1o~{G6v|y!x4ZvX)w$Q~G8 Ņv\-Gة)G#drn]yiy4nx4 c[hM7v˶ړF)dYh4XB+=> -BNiZ*=IH. '"xyFwmWn #\$B&yIéD$M- HCt؈=ol@@ҐE2f$ Ig $ ;&F$m:fMHZ{T֌X iB:!i|+뫄BED&z:!i42*0$X i'4O4 i:uk/!iӏ#iV6)I;Ρ'$M8wI0!i g$$*)iǻBkMvOJպP9ڒ& cNI JL Pڅ&(M PC4# -PgS]D(MJAIPݡ,8Bi'KwX%Bi$6Ai'Ait}k$'~Kk<իLNڅ M9KN}lKN8Z\8i!^th'fXUOKF{;g;Aiz?ɶJ}`[@i5"( $mPZ9nY GuFW)yIk_APҞ5tD%~#6KI"LL* >rLZ-9iÊFG3YKDtҺǶp҄PktlX0iW.; L[\4hRR^%˃GN"Wb+FGTŊ>ZճF3giG{Oi8}d;GCq,p)j竃G}k%"`ѦhÈ)GyFޕ4ZIy0h4 vF+<h4m"fYFF9 ?9/yc\KwiZE}y/@4!DqHC%|Eb"s 켧w5;K$X;gLPsV?V?>ՏՏV?V*<~ sk)s_s2?sCɈaտáۉz]?q܍Ο9|~*/P 0ڰaӏ/ިԏ/p_O_ |Z'U](G_QVt mQ?ON~S FO/## Ĉ~bD?1~|Q=6:?#*3iEʝ]e~dD#ꇗȈ3# Ȉ~dDz]7樈g6ІVd"1ۯ? -9?BŐ?k?.1_ϟ"=x~qa &e?ǏW #Z`$]?'@E r_5\RmIr@,1*cx7vzcez=B?^v~ +ܴ[+G5M7 nAYe[n zA7p C2qkіimfHpS3&nbh6":qӠeud)<^J*Ip zF0^J^#.m{r.'CKpnÄ4ݴʶ6Pvsj7 H8ѽ鋴Ћ6F#,~'Mc#^4-.MXHU5MǦZug#ik4In:6ҹi]=tûi[M!F.M[c"}A讳.qhn]i+Z4[Lg._MCdvgdBx7mভ،gbӰCvsE47xw0X֖4cM+Тfg8|-0`h98 >  n92vIl44E'6m#rz4NצEM1Z&j@`p Zap/-lt0MPǻi +:ܴ:v7 1H +R͹i%ie8i8UIjpehNCߥ7 %,vh77'G'Wg+4$p=cGr$4,Nc#NB_V +z8 ftw0iN\qٖFfG8 -Y)pZ1$TtNK4S+iwaNH4.~~+Ɩ8@@s~VaMvnt)7 }4ay8 tkEDa:  9 No:m}} vr=i4k +tZ)@!3އrrN"@̸@v%i[:S +9 ?i4EPOAV t$Njk]ӐRfy: 3CNC"d"ʻ:Ry9-)irx+iز3NZe^!xvPXBih%=>i'Vr<ͪݩK63_T'/ ORvAOÚh2Iϧ;.ؘZk#p߿YϧwYi(d/z O~v. !'xw4.-E?Kϧ!ؘ?i |%Eʙ9> /iH4*w |^@ħqժ>9]OOÍ\_4*BϧOPpgO;G3i+4n\M~:]A6WHfI eO?j\Vcj~cm<]gDPC3%zo5ip*]rDvVBKt ]R 4J4Ҋn8 mN۾ԯWpyݖ +ܚvNְ%GKpl' ƙehS8vܴ§cM[TݴRn=KlZ^q%6 '!]&lJ.I2JlZ1{[&ln~ាɎeh}g}F8fK4s2iMRc ryn<UDNCv$9 S,= +r>\er4h`vF3iw@$8MS)=D,"v\m$8(Bp +*u"iODrݖ4hfOrh#+7 {cK4ެ)i1شjlNx4 l42D3ֽuLȴpA@lGpE1M +b"F1`@Hb~t_1ib 4TsSmALvHWӆ$9{ b6u11m6&'ix2Ӑ1%ia(FhnuӚ-2UFo4K<~ |L$=q2!ڥv2 ۷QeL+τ>ivEoyy0ivJ"Ӷ'b&iO Y"VLeIdڮŚ2mdW˟J^$tћK0yi)r^NoK0(0K".zi[i:vg/m{itm\^ߊ$/ޢVf/m1ʂ&~E/ AMї[E@CKήqd業4|m39yiJ{ȿ ^Žmڥ4 n]$-|r^\͑Z↴/hiS4̘wz +Ť!HXIfm,pitUVݤJ\+234i6YK_e&.֝kx 6{LZi[|IK;oIKW% K) KۤSai4 vM49biva7vӋ&XZl5lX.,f/$,>%vh:m}24nBWYKMGf{,M6XZݎ Ke,[&(Xڳ4 (4ǙiV{eBjGv x,hi]OmZns -&-# K, %9', Άd, O4d*=V?eE ,}fXƹʃK4;n04]%,F*cPQ},J$,IX]XUfX|M4. +R +,ai+4)L}XUfXy8گ4_-=:8oJ/o , &2FC&1M׷,~)ٚ4pLJX31hi4m%-퉤pīKCvuKsir˓o%qi+r\6qiś 6L4kF.)piWo1qiR%F.U:If\^)WIz1K7ZK;}4/ZZZԲVwqgZC鿌ZԙcIK+v +6ˬߒa4,xeji&`i=SywXҬir(KѝF3,.lf, `6qZis3-M׉LK K;IV>VvhxJ~B6҆[F[Ҫ c KۚOvxѵ7!E=:ѐ3 tѸT6*_G!$s6ב!1\s8Wp4,Y4T3Y#FO1Uw_QGSK䃎v % Q'hXנcSPDGIѸ3ڟu4mDxI <=9{|Z FvVk`IvQviTҰ-H&j HsvlI@[/逴˶ 1?pԣv&lGǣC|yW*@ EKwp]cwp4w"x4.8u~x4AKtP..S6rh!\ +yhחex4*>_qIȣ]YWѐT=hة} t&L >j~.gHA{o@ZbҰ?iYٸ;yIBj@6 %8i }[ڥ1i ]q@ZZ 8 K +G]ְWi-PHk8Ys@Z ~4D"q^ @Z{Vb HkO[zc4aQ~HCFo@Zn4)G%z"imaF !ײű$ ]U44Qn&o! Cߤ B2OަpP ;PKPЂooN4zU" 1Vv4+u戴*%i9G7'٭~*^HQ5J@ l^rNHǦS_/㎋Pd+x"#lH俫IN<ǞB +USVF IC!c +6*ixL +4l>|Q{qJNTMjS.?/J D% sJbJFX߫RuNIcU!`{3#ix&=IC,7HFVμ7"ixWHʩkD=?tF$ MjDҰ7x$ D'rIi85#ih¤qOp/HZpZG$4TrPcQ<&h ~U`lDUF"\oK$PN0WG" H!t4)`D~y" ])hGHCC+}[zx4L yXH% +ixhX%ڻ4| k9cp*o2HÁG?t:he-xe࣡`ߵ ,hأYm'hUՂ$q_/aV eN='hUV m>e8S,3ϱ%"G* +; >CUTU +Aơ D͢vk며}kPAa򼐆{ѱi%tPq]OsBt愴$/,]4ٸBIoan:0z# {3ҐHcք@qT| OzDHti*%HCe!HvNF9*ށH^%"_ Ґ*uωHCPm5qHCQ%ixim,F&5EC>m`!8#W|$# KeiX#K4b`#`a1sm14HHB[d8,Fiy#۾E4$vE# hr3oe,i8^{7XAnx# { dNGt i(鐐6#4{.4@ X~je@?i88E^F +{!pc+鄴ut4. HOLMmVc!AHC4n`JNp=v"0k^ZY@B$j)<ƠQ?@vfi(NvdM}@UHQknE }4]="磡<1"HZW:j h X^GC}بlpu4LP+d6h9GD U{ EJ4G9hVxG{ PQ: Q4`ܹhhesѰu.ڍs迣s!o~2*iDe0B|pĶ˧` mhxm Ԇ0qhx_ƴ(!3%hD/P;e4іꆜENZzd4g?NFm3'[Bq!vG ]4_`4t8(;3hD}hx7-v.2s鮏\1#,5Iu.[P-E]#pOHގ%hl:=cѸ,~FmlX4&vuMm>B/NmB޹hLnƜ EcbSE9w_p.9a6h\멶sXyjtѸ+󅦞szsiL .BDQYFBX>6 I8-ԚcѐU Xk,G0 ,6 X )a.Ҥ<娢[ά!9ny~^E3KyqSrL>HCK* +ҩh+?S@ҜrD ^ E s*$hܼ\NEX%ޘ|6*ZsUol^ECόs*`uU487Ҍmٓ|}7Wޫhh@^ExNbk*b'RY4lp E#;jc`1 gz;({ۚwѠ4njG5YwwPYYߍ.o:1_$ؘ}TJ!)F&UE)Ζ1M'7kccÅ`4>0v* +6h w`0I0:Uc0n8ʓOvš?FCR"cc@hܭhȤSZyc&"뎹 +ve4A86& a-9'!Ԣ@9/! skl,QFCq}*4y At2BoΫ_NFþg鍆^F+بA NF+ 2څ|#TNz@ѰiYѐ:m4Lރ00`8nmDѰ?0[ vHyP,h`Jof84vѰ3mmϘm4^h6&:aeM]hmm4lWmFD; zi4W94mbi4˾Pe#DX"Ah3=4Pgim'Ft0i*h!nz x )6vm4F{hɊhVۮ4 >gѤmTh8vB4@(4vh(i*Dm@;Fۘ=Tvr2چ"lѐL/|林P@%셵\b^F*$H4k 2t:dK1G12,1vyhחdBlC2G 8 7J4 + hM^ދPHq^F8F'OaHO.g(Fǝ'O!~$I<-wl4+h7F 1rk%h;sx-m4B¤Jh ٞU C+sAH l*y YUcͅh@cng)E Տu4dlNl٨ٻtSw䜎!z qFu48Y^QGCf_N0,x4dp_4Hx4ʩOǣ!A2)hX1 aM%hر9(aI<曥ǽGX"hHdJqX9tI<GstѮH<7g!q@s>ShK{M: u_9s:wXΎCO :fgsN hΥ*wmL=B#HȈZ"ƞ(d2q4q4!GB<=hOVg=x^q4a;G-caP8(X1FC jxE9qjpC<4hX(ׇK,Xj$UѰ1.YKю 6(FSeS*FCCgvF0 8L06M0*EnmѰ= 508nW 0ְya3Fw5Qͻhhh.Jhлhdae4j?h(n{0]@E;޳fmp\$ht!/NY#**\u+2Z$U d%:2 +{ ˙4T 2 K0'c9l^'NFC):n9 5 mr-IFk96 2C#I騧нx0+_zWѰ.9`:V,h(mFۜdm4g}7m4L0S.!Iyh'YyPc3j" hN 4u)&ѐA4B!7z,FCmƵ +I&_FŲ^aqӢaY hSV@q&+@43h(DeqMFC=viXvdv!hhfm}W#htq2R/Zѐ|FlO61m㕷h +Mx )_ͦFhmBxIwFt%6ݜqѰYK FŘl4l{b4h ,F;D=GIFÎ[ \Zbd4 5RKLd4yPZ&2ٴ +6he MR#0ZL`kfω0ˆEacYL[ +g#& d?#@pцWwJQp.lYWipߚd&PeAFuLd4@ 2מTF%%hfF `> [&6a+8~Xp4tАjSx)Kh=Sy+I8-MGƪ!q@񀣡֞3Ϡa ~|`^GT`p[Q?e!Kn\%(hhyAGUIGCXu4ڮAGc(kޜģj\$MLȣs SvH ]R—h B,sA) H4s5<3oHx}Lv^!imӒ vpx4`s +xs-=)&' xa5e (?@1aN\w0)iHPѽ3y&nR4=䔴c\%%JɽԑJ0s7#0+h3 I<`4L6H'v(sS&y9DZ9#}Vf*&LD4X~ ZU+{MA4JS,hV=3/g"D_3 EM綯) D ^ +fM@4%A9hUa@Ҕ x7Ah43Z;o`]&!`N`n`+7 _݃˂{/7^c~_`_o^n4fėێW^GoGD]ziU|O<YfD~Jk+3@`ooy~lhP/P#Jhp)=f#q.6=* 3ǂz6{Lʟ6,J7?m0{2>`0{>/ `}0{̾ځ y?p" SVbdzogp]Cxe>1{L>#-{/u%_/=?jϏo_VA/ o_xo^o_ob~z| ᐸ) k+NN֐F%띉CطLشLH ^Cb|2='̷'̷/! |b|2>'̷/!X 3yoDB!s|C&*ti}e>2dyO2=G7G 7JoG~cH~s611$~WFwfP*Bg 8??"{߽[ ! p +%scy^N`{;hf,vd/eO6z~9e]'c߹h*y 篓1察x~dki +N#۫谪ϟx~tޤ>F2&_C; i@c|웧> stream -xZ X\u>eV}Y`f؆aaF @J Y0B%۲X$UGꨎ**V(K];'D&㺎/mRs97{{s9C@@ GMEM,ޱ3il59;6M5? ^K`̞ѡN||8l˱sǧ-<EKS3;0`顅Yb5[vMWgg= zpvvYRH,pC831y"yކ7,%x.Yx#0 `B7tB(?]:]NNʾJ8sIoe:ME 9B5_U7:w|Q| @iA `eFyY(" d4uZZTeR ϱ %๊`99|\-hZXwWT%yAiP!Ǎhד!K`?GGdYbx, !sɮ+ρ5GhK8=VPkc/\dk?{|snߋCyV<ٸ4 Mll{=%J(װpҎ7X{8mI!芳5N,,Kfl ͥ&Rwq -bO,Q{xIYX#^wA(U by2'%2nBzB{ՠi@qK)znx=uK/$ #i;?aʰ/@1>';T]>5ƙ8cH,exb߀sq4kƸ(tی!U_RmUbcaN*wTǶOc8kZl|3Ԝ`LB憲%6 20ZKa Gt*sKRA';G$)=i -֥~wPfK2PvRLxjJ]٨L[+ͦ=]Zum<);߬ʉgٌ E|d]%Uo -*+uP()gBS{&JǰRҖVD8 m·T3 1krK zfhNeXqvgQ&`Vf1S7fkx䬔D՝'!\= 5kdit-ʲ[Nk1"z.ޙ9̇0)tw&N"O~주D6-Lnc??0C^oMW]=!otYNy|p?(:vszՃK; -^O F/>]Ȅ( ٲ )x94djYI*Ap -Z ]`TX^pP6.@3gyn}噸jUɋoGcomFr ID -dAPJA5J N^*%l,[&,4+$DC | A3ux~۠& -5M}z?uH1n)њr_cEEr ݻzAQvjodOC|YPXer TRFNL"d0 -/#TNӹ,%pUUa\ ?^oko'E_`:v/mi^oƺ7ʏ50oTdFGjߚ?#fڵn[GÝu|:ܷ:T${Ԑ"~ (8=GI>@u c}>h.8's}3P ) =ja٫.\݃GXMqFgčYl\L%z%x1YC^EP &D,2sIH33ťlLLØׯM7q=,R][*Fӧu -44?3P.ŸOgoqi{ں~2/:\WA._qCpgo3.wo3̗0O/Τ*AgCM2mrVҥa<-'CVb!C4 ZHnO__zа|nrc*UH1wt znlxJ"c x/TcPzE -9 ㈚#$uա'5>{$?cUNa80pBB.0M_#Y4Gˬ>EkZP5i|JL1OOpsaJCN"MVJIž3LY) 7)8_a5V12lż\DGXnS[ᛣH[ 1JndVR -[Ȭљִ]#e%zS#-uk{<[N<[X[[ zWև{/ #>k |SWiղ4 VzB!OϱGTc]'|{lݙHN4_m_'V`fc&MR9mld;;yweftX)OD_(n1::{!V@P xni2;QL-x|b :''f3@Βɐ+t㴩hM ]^#%  :"ԏ"Mf"bT CG]Ew6_ѵՓ+{߿›fU-#~>sThÞ2gF_ʹ,7!-+?'u}4ZUѓe<fP-%R@"$t꡵526U)&TYHRZ2f8n1-e:LG^}uLfbG=z+/uJ}%"?5Gd()Tbĩ2d hХ(yNVͬq. xHD]gkT I|-Tni-{Y&zE®\w% Mj)H5[Ig\K?P<&,R?0d[KVf#G 8 2ۂ$, RJ3pFҡeɚj#ړ&2Mq#hg3:1\\AMy`龽QGf~ve[ -,0?B}B ?ɚh%y3m؉xA)b\ 2V&sbzޓC˝E /$o>,( gB ʥ<ח&{bpq~ein`HJl8p'|ziK\z BW>+ - ^?_ -4]UUS}y ㅛJC;6F{nKb }uAK(\\JYITܖ, #RgXudȃE#f2FkRpjc!|&cJ">0sW\FDd+:F$*g{&ڂr/Wk'N ՟j5FoP(9YtGYDY57])y4<ӻFOMdHQ'IMmA0Zo8IɲIuᅺCs -gz3}Wûf/x}8;7{KTYraݴ)gl[RIw:ӝuIS5yb}~|_;8Y `ԩ&1n2A RU! #rFΑUJ5sQ*Q:CIKӨ2iW艵n{IQ刓fZXDk i_ 5e~>֠}+O k2T826+EMYW{U IM%dN|ߛoIco$Ղu51WrA&L2tjN)ْY,QN$2qOQ:7wxcϞضrH\YDs^@ď|gtD A tNIvԕ*0#tDbZwW.;ꁆCO.6:L BsN!/f:Wi}ˡ߽6v"`ʫNmAA؝aK\٧`'(8X0w1އ{7qZd6U@TXݧBW/p> -iwOKk3Wldz;y%;q0j=N . cQıwYWxOx <>KxN|2={|'e87Z1Q,$D# $uI+kml #e6EmKPd jA -l8$ae{^|KhKM!& XHw3$d'<߄Y^1}Wk j[ ev`(V8~qG':f{x5>Yssn,Є7FaLw)ZĕF.hgkȷTVy,᡹)ˆBKTln|t~j)<6gݻt43' =@x !@< ۀc6 08;qnϛzSouMI:MivM|nyϽi}ϣ;3w9g?%B7od{ct?cT!4MŶ׋/Vѡ?|N|_>)[x?b;o|z_l_6#/N--`7}%j~yvfnϝC|voOؤ +p/>wg gcs2MX$\3< av8ln6X QC !~AX$q;5n;:9)&+e-&~Hߣ4NKn0&vxW|| W\k<< ߂5E)xp91id pj^MרUi)J\&P+ 'l^ϕEp*{[x[.uy=nH ^[&"cǻym G NtXz,Y=B%ơE豘^H["-\|H v5JyTZAD"04554[ +\[ >XdmE+Ζ82r/֛.TLE)- ! ƨl /(|Yq,5Tݴ=*ƚz@1ӧ,2,z3dڙ(G&k13@e#FD >CgxWUx9a5>Em-j3qnOEؗQkf ʖX%',hd/%IOc:woy4+ZY;}$[B Z|c +`Y +w8pJ U9AnTjۘO@ 9+Ui}9T\/vpo럿|>K{hDh5*'$ +z9Ug ?x1Qn"ʓU (ԞBI8\ +-OmY(JI[Fဴs HN.}ZO%6k!ՒmV\ZRCPTA늓m ۱ޡ_Wb+ \UD5Ywc8E?Ѻ ;]9wTVWw]}y\8[_B54 viDۻ /(18K'|,ϐAEgk 5M/+8W5$:m*wA*=&XG}qH[zƞ]{:Ϳ0 X}ku+)b𹾵'4lYzG2@9gku(u/=8*ڊ~9yG/C?N%Jb ZD#*yFfh&֤ji f[O,[SV@2:]Na6T@xYUʿoGXqrίy0Bb̓2;ZHpm)W:|VeLd8k!'I ʬnR~d|*CCk*_a⫝ȕݷ Sݿ~W0YB =۱'HOck +*\Uv[̩&ؽڑ|nTezva;}nB FjIaefuMK{iHJY[@TݑG;|Փ P{ :FW,pJQZOl ~T䝉x\ @n|s"}KcbH_:0/QMK:#v؏P[ShnU~uy*)<}Sr>]>8n 1 +^O F/-Ȃ\( [stT)L!V1r%9Y(TTj-,4@PRY50:Qg2x|dK3:Ta#Ͽ?> I($W**Iܛ Ci +Vq8T)ad92d$gش\!)&j_P눜Pr:K7oА %TOiϷr\ I\,iB +DDC0Q0raWpO#\8g"$iqEˀlO$"-z}Lj I]a0FrF)(i'<`v"VlP,@528n\zPXoVm  ?txtGo l,wn-#6( *2Y2\"":M*'JԾ+6O:N7(7yZSO،p<_G^7fys2hW[ +{AYkB>7$)E 5 fG&K F1_i6zXV0JUOj i"{fb?> ]?OvOS5ɣejñ.y\&6fG;c]*b:/`_ȝEӴ2C*i6/S@UYHUTxٲYdDL QSpjI 1?}maɾB_?T!貟Ȓ{cañ-3&*F*% +S[빉nGPf.E + ㈊#$uMGO}wIq:99 =H+Q'AU;MJsjS4 +IwTue>] H,740)2d*T$irF%3t%& p9 c؂9F]wwK %Yzs)g?eX޾ERʾ{XƁ4ڈmDDqfe#W\S}EN@#yxC)DBBWiT4jVVА."JHiq!>O&L@0QaxZJZ}~ +Dwhi%Ѿ_MUm^32[vximIQ}DŶ?d֛gJ1iPdj"@ fL{~f>?rJ5E~xo՞tJ6CjBB^O(9`oj>èyo7֜VK# eBu DxJT*'VÝLpg",#H4_$# n+d +Yj +mwtZNTSo]G'}xQiu>wV>;gwؽXpz%G%CAtJjr!kHIch8beShu;" +qOgeߦ~ܩ0y.; 厀aJG|Q s d7>pM)k\Uw@5yU "!Cm-GίݞCC Ϯ=P$cr+0AYdbrI'QO3MN)O=|D"Dȵb~*P~~6yB~K|G)jnQ@W'Sv\He1K`,\t* GǶ =W ͓`~_=mߌoU*$|,VAgu$ť6rSVqT&.##% 3p~_k0/6JWa Φm./&tm1e +U0 bohD.JϴkѪ4o[(3,ew0T)'u#!eI-cSҡOt(& @a~]KtW_Zd&~>J$RDWb.]sEB%HirQfdu)JU08<$ȖnϨZꫛv ,]B|3[TRk&7~}xLoO`ReRlb n5ZtC>f:&A6ϠBejtĤUӓ KV |uWN:=K"$7}m=]K?eDڄto\^ߩhhW΢l rZhh o_h?A' y&Zm8@v"xP +xjU+9 vA-ɥ"^uvح8O%>M +PB|RVKP]Xzp$\&ϑXpfO 'yVKuqGQ&񹮶?}rG4<vXi :]UUzر %mu7k&1:%..KKYK*n˕$uDOFy((<2)06IGJNPAmt[YDYԴ7])y<ӻJO dHQIUmA0Z珿~td9rfs`xnP\‘itdh{~y`vs}/f'gf55y3##kZί6no];0t7{K<G#m}ҿdkM~iyX߼?86Ny;ޟ j8ܵ›g*brJ-p]8V"q&?Rᔐ`%C~ƾ ;vCМáˏr`Z\;LUU'}|"vYr%jpWW,pCAU7Q-iտ\K+;Oq[ M)LV;O9%լθra`iҝ,sv1_vi˜m/< {9al86u0N|]g8qTL"E]XHEMcH +Wuϭ/#e:EmKPdIrA +/82l=+% h9YJjṳ;YgqC:Fd30 1 0GԀ2`= C0c +{Ŀҏ(Gѹ:ۜ(Gpd1]*ιf2Cv&fm3!>hW'^|af6{bl|9e.,CsSu֡BsԔS6gݽwt4> stream -xk`(cx  +xk`(cx  endstream endobj 137 0 obj @@ -1257,18 +1268,21 @@ endobj /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> /FontDescriptor 133 0 R /DW 0 -/W [ 0 [365 500 500 500 500 500 500 500 750 833 555 276 276 388 555 555 443 276 500 750 276 500 500 651 391 526 555 443 526 750 443 333 680 555 500 394 500 776 776 360 513 500 ] ] +/W [ 0 [365 500 500 500 500 500 500 500 750 833 555 276 276 388 555 555 443 276 500 750 276 500 500 651 391 526 555 443 526 750 443 333 680 555 500 394 500 776 360 513 500 ] ] >> endobj 139 0 obj << /Length 141 0 R /Filter /FlateDecode >> stream -x]j0y -C%o @I)Ѕ}YZ}W/ 'ifY\tK>ܠ438Nk֙LwjU/.eM; lMƒOg#ԮN̍=|_uz2K~˫o'?ZKݴbԠiRFSי^:g9̚VH]o:4 JAAP@%Ut@@UL9t :rЙ: DВCJ2-ed h 'IP e.RhA~9ȡDt*ȡDuEuZ TBz[3iԚ!&G0;J TQVc0_n}Fu9z +u$69xؾCL˘-ea5;70vggx/ endstream endobj 141 0 obj -414 +410 endobj 142 0 obj << @@ -1288,28 +1302,27 @@ endobj endobj 143 0 obj << - /Length1 2552 + /Length1 2348 /Length 145 0 R /Filter /FlateDecode >> stream -xV}L޻{l6 ac|9!@Ҕb'p٘`!Y6(]#UMiMMUuQEݪl(GimՄI*2{0і^=߿Bɧ[;`Q;: לCR=30_(ǧ \ ~&;oaL (rc2ptV5\o\QNg3c~gLWp.[|lFUFRߠ `za0Vm~ϳkt^#{pn=p <ia8`?a.vp@$|.?oW?} ޥз ,=ES3Gyn-fﰷ5fiav[Kv~=snux\E,/"58/"x 'u0Ad>}Ⱦ!*ǬrsYihxʱ o{D\\37 9'ZS>J"d*,{NdR)NXgXʴ:qU.")z(:uXG]pTSH_QᩨVjQEEڞήL'u{6# ]eVeq@ ~(UV - C#)*ApZUԐ"ZTjJ0 R82RX-mbO wH"o͢ΰaI%JxVO)b ]?^-{{T[ [#K|=0> tnm<]we: ڃn\#vtX}Xh$ȗoqwg`CvD;#4M&0 @S W^j7kqG$B);H:l7[όOE]RCLVYUigj&R#̌mo{!0Rtvt:;\Y= 9g'Bx3>9p﹉]Fﷹ\Ikρ\Yz}OXUtU樥5JF &3\n?R;3O!R -!U۟6wK/mn'w 0vcۀr7oo#,WA\VN|6I~.Q}@-mk3!m䥡K^ܼwo2ٹBasך#G׎UxB.?=s_e2peQww - er05s cG#u k1ױ5T̻u僿(;D[&yM4`0َ|5W 3n}2u8[YSD*]skqq}XDÈ@*b,"EL|X<3tK03-bH9XjZ< $aDhBg?^aP 4Ay5iaTu]/j4r95H.M;bXɥOR˹d|'b|o +!E΢!MS W<_0;<2K!VT.)'2>6b'4Zݡl">g;,UEY쇬_%-6PvQvHg n:*8w\Ve$Q.\gx %@ +xVL{g`jHr03$XBR lL0!aQU(jCu[S@UVEYԭJt6mU#MH?:i*&Ru۳}>サ @%zx"{zneYY{Xb*'8Kߥ>4 wn:'>g_PUoH%hN/gʿiqz=| t1_X~.Jk/.%OP&v8pxX -E9|Wq O"y$0 qCGq}E7<8h/}d+'ߖ_]_O?҇ҌX?"-_ +ŞcG~l?7&n5\&~^*i|R,x)3NQ =suT;*+6Kߤs*jdl ǭn556ͿsaeTI CRRTՕF8>Pۀ1~*fɫ wD7H`=4v7t[4wύֿ%~l{5h` CꙙᙈQ Ql2GWjt]CR#FVba]tC Mh6q`j$cjĨlHzX߀|trlzD5 OƌLܜOP%Ah濭 Wgt1zml0t lڤvm@{&_tGqz=Nϰ4W!%9ULb$|@lVr'X5Z&]vhEb4.Z,;zXGm}HvԹE]t:nQsl afMP/rHrمKnf(g.Lf6t]V7JU +ae7z+e%iu˟|pkd'm]5:x`Gr rأֻ(+9xHg~Nv(N1/iUpVZ,ZgQ}ꁿS}o_oaMNl7._gmpÒ9"`&OunRiWx,TldD1?.a*V E2[V\L)a6T"X%y91eQH5s 2G}遟p:U 8yY$V,ÿlJR9V蚠N8h~IB)Te2%i1UfJ҈FեL*F}JǯDB&q=ZH'WP6Lae"YH.$`WDˏh~l69/ɕdV9'uӤ#G $y}z. K+'KaKd&S:[}ZҘRɥûls :k4z'i?4 ;]PYwն/ÃhS(b꧝ iU8pi{;O T endstream endobj 145 0 obj -1836 +1669 endobj 144 0 obj << /Length 146 0 R /Filter /FlateDecode >> stream -xk`F +xk` endstream endobj 146 0 obj -13 +12 endobj 147 0 obj << @@ -1329,19 +1342,18 @@ endobj /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> /FontDescriptor 142 0 R /DW 0 -/W [ 0 [365 520 464 ] ] +/W [ 0 [365 520 ] ] >> endobj 148 0 obj << /Length 150 0 R /Filter /FlateDecode >> stream -x]Pj0 +t=,N%PR -9l[[N m琿*cah❼1N~!0h]Qՠ;[M2"u8uxn, >gIϠi$F8}~pB:ͯh2 AϥӉdzI?jՖAys -I[K&_7`ԷmR5qPv53W!s Dq='{ 5jˠ9H$݈ťL嚪tMQPY Y%o㈨r j!<d}C endstream endobj 150 0 obj -241 +236 endobj 123 0 obj << /Type /Pages @@ -1604,46 +1616,46 @@ xref 0000006213 00000 n 0000006268 00000 n 0000006323 00000 n -0000112899 00000 n -0000112923 00000 n -0000112950 00000 n -0000127002 00000 n -0000126863 00000 n -0000113148 00000 n -0000113400 00000 n -0000114844 00000 n -0000114822 00000 n -0000114931 00000 n -0000114950 00000 n -0000115341 00000 n -0000115110 00000 n -0000115653 00000 n -0000115674 00000 n -0000115929 00000 n -0000122625 00000 n -0000122603 00000 n -0000122723 00000 n -0000122743 00000 n -0000123292 00000 n -0000122902 00000 n +0000112981 00000 n +0000113005 00000 n +0000113032 00000 n +0000126804 00000 n +0000126665 00000 n +0000113230 00000 n +0000113482 00000 n +0000114926 00000 n +0000114904 00000 n +0000115013 00000 n +0000115032 00000 n +0000115423 00000 n +0000115192 00000 n +0000115735 00000 n +0000115756 00000 n +0000116011 00000 n +0000122612 00000 n +0000122590 00000 n +0000122710 00000 n +0000122730 00000 n +0000123275 00000 n +0000122889 00000 n +0000123763 00000 n 0000123784 00000 n -0000123805 00000 n -0000124061 00000 n -0000126017 00000 n -0000125995 00000 n -0000126108 00000 n -0000126128 00000 n -0000126523 00000 n -0000126288 00000 n -0000126842 00000 n -0000126925 00000 n +0000124040 00000 n +0000125829 00000 n +0000125807 00000 n +0000125919 00000 n +0000125939 00000 n +0000126330 00000 n +0000126099 00000 n +0000126644 00000 n +0000126727 00000 n trailer << /Root 151 0 R /Info 1 0 R - /ID [<177238E54DA5FB017AD97E6AD6471748> <177238E54DA5FB017AD97E6AD6471748>] + /ID [<956BA91E1C62E503598018473114455A> <956BA91E1C62E503598018473114455A>] /Size 152 >> startxref -128907 +128709 %%EOF diff --git a/docs/figs/flex_joints_rot_study_primary_plant.png b/docs/figs/flex_joints_rot_study_primary_plant.png index cc1842a..bb53ba8 100644 Binary files a/docs/figs/flex_joints_rot_study_primary_plant.png and b/docs/figs/flex_joints_rot_study_primary_plant.png differ diff --git a/docs/flexible_joints_study.html b/docs/flexible_joints_study.html index 7508ee5..c24b72a 100644 --- a/docs/flexible_joints_study.html +++ b/docs/flexible_joints_study.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Study of the Flexible Joints @@ -37,19 +37,19 @@ @@ -106,8 +106,8 @@ In this section, we wish to study the effect of the rotation flexibility of the

-
-

1.1 Initialization

+
+

1.1 Initialization

Let’s initialize all the stages with default parameters. @@ -168,8 +168,8 @@ This corresponds to the optimal identified stiffness.

-
-

1.2.1 Direct Velocity Feedback

+
+

1.2.1 Direct Velocity Feedback

We identify the dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness. @@ -189,8 +189,8 @@ It is shown that the adding of stiffness for the flexible joints does increase a

-
-

1.2.2 Primary Plant

+
+

1.2.2 Primary Plant

Let’s now identify the dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs). @@ -205,13 +205,13 @@ The plant dynamics is not found to be changing significantly.

flex_joints_rot_primary_plant_L.png

-

Figure 2: Dynamics from \(\bm{\tau}^\prime_i\) to \(\bm{\epsilon}_{\mathcal{X}_n,i}\) with perfect joints (dashed) and with flexible joints (solid)

+

Figure 2: Dynamics from \(\bm{\tau}^\prime_i\) to \(\bm{\epsilon}_{\mathcal{X}_n,i}\) with perfect joints and with flexible joints

-
-

1.2.3 Conclusion

+
+

1.2.3 Conclusion

@@ -248,8 +248,8 @@ We also consider here a nano-hexapod with the identified optimal actuator stiffn

-
-

1.3.1 Direct Velocity Feedback

+
+

1.3.1 Direct Velocity Feedback

The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure 3. @@ -279,8 +279,8 @@ It is shown that the bending stiffness of the flexible joints does indeed change

-
-

1.3.2 Primary Control

+
+

1.3.2 Primary Control

The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure 5. @@ -299,8 +299,8 @@ It is shown that the bending stiffness of the flexible joints have very little i

-
-

1.3.3 Conclusion

+
+

1.3.3 Conclusion

@@ -341,8 +341,8 @@ Cz_M = 1*ones(6,1); % [N/(m/s)]

-
-

2.1.1 Initialization

+
+

2.1.1 Initialization

Let’s initialize all the stages with default parameters. @@ -370,8 +370,8 @@ initializeReferences('Rz_type', 'rotating-not-filtered', 'Rz_period', 60);

-
-

2.1.2 Direct Velocity Feedback

+
+

2.1.2 Direct Velocity Feedback

The dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness are identified. @@ -390,8 +390,8 @@ The obtained dynamics are shown in Figure 6.

-
-

2.1.3 Primary Plant

+
+

2.1.3 Primary Plant

Kdvf = 5e3*s/(1+s/2/pi/1e3)*eye(6);
@@ -415,8 +415,8 @@ The dynamics is compare with and without the joint flexibility in Figure 
 
-
-

2.1.4 Conclusion

+
+

2.1.4 Conclusion

@@ -448,8 +448,8 @@ We also consider here a nano-hexapod with the identified optimal actuator stiffn

-
-

2.2.1 Direct Velocity Feedback

+
+

2.2.1 Direct Velocity Feedback

The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure 8. @@ -491,8 +491,8 @@ It can be seen that very little active damping can be achieve for axial stiffnes

-
-

2.2.2 Primary Control

+
+

2.2.2 Primary Control

The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure 11. @@ -508,8 +508,8 @@ The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for

-
-

2.3 Conclusion

+
+

2.3 Conclusion

@@ -533,8 +533,8 @@ We may interpolate the results and say that the axial joint stiffness should be

-
-

3 Conclusion

+
+

3 Conclusion

@@ -556,7 +556,7 @@ For the identified optimal actuator stiffness \(k = 10^5\,[N/m]\), the flexible

Author: Dehaeze Thomas

-

Created: 2020-05-05 mar. 10:44

+

Created: 2020-05-05 mar. 11:26

diff --git a/org/flexible_joints_study.org b/org/flexible_joints_study.org index 047df6e..254d313 100644 --- a/org/flexible_joints_study.org +++ b/org/flexible_joints_study.org @@ -6,12 +6,12 @@ In this document is studied the effect of the mechanical behavior of the flexibl Ideally, we want the x and y rotations to be free and all the translations to be blocked. However, this is never the case and be have to consider: -- Finite x and y rotational stiffnesses (Section [[sec:rot_stiffness]]) -- Translation stiffness in the direction of the legs (Section [[sec:trans_stiffness]]) +- Finite bending stiffnesses (Section [[sec:rot_stiffness]]) +- Axial stiffness in the direction of the legs (Section [[sec:trans_stiffness]]) -This may impose some limitations, also, the goal is to specify the required joints stiffnesses. +This may impose some limitations, also, the goal is to specify the required joints stiffnesses (summarized in Section [[sec:conclusion]]). -* Rotational Stiffness +* Bending and Torsional Stiffness <> ** Introduction :ignore: @@ -67,7 +67,7 @@ Let's consider the heaviest mass which should we the most problematic with it co Kdvf = tf(zeros(6)); #+end_src -** Realistic Rotational Stiffness Values +** Realistic Bending Stiffness Values *** Introduction :ignore: Let's compare the ideal case (zero stiffness in rotation and infinite stiffness in translation) with a more realistic case: - $K_{\theta, \phi} = 15\,[Nm/rad]$ stiffness in flexion @@ -231,7 +231,7 @@ The plant dynamics is not found to be changing significantly. end for j = 1:6 set(gca,'ColorOrderIndex',2); - plot(freqs, abs(squeeze(freqresp(Gl_p(j, j), freqs, 'Hz'))), '--'); + plot(freqs, abs(squeeze(freqresp(Gl_p(j, j), freqs, 'Hz')))); end hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); @@ -241,17 +241,30 @@ The plant dynamics is not found to be changing significantly. hold on; for j = 1:6 set(gca,'ColorOrderIndex',1); - plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl(j, j), freqs, 'Hz'))))); + if j == 1 + plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl(j, j), freqs, 'Hz')))), ... + 'DisplayName', 'Flexible Joints'); + else + plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl(j, j), freqs, 'Hz')))), ... + 'HandleVisibility', 'off'); + end end for j = 1:6 set(gca,'ColorOrderIndex',2); - plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl_p(j, j), freqs, 'Hz')))), '--'); + if j == 1 + plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl_p(j, j), freqs, 'Hz')))), ... + 'DisplayName', 'Perfect Joints'); + else + plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl_p(j, j), freqs, 'Hz')))), ... + 'HandleVisibility', 'off'); + end end hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); ylim([-270, 90]); yticks([-360:90:360]); + legend('location', 'southwest'); linkaxes([ax1,ax2],'x'); #+end_src @@ -261,13 +274,13 @@ The plant dynamics is not found to be changing significantly. #+end_src #+name: fig:flex_joints_rot_primary_plant_L -#+caption: Dynamics from $\bm{\tau}^\prime_i$ to $\bm{\epsilon}_{\mathcal{X}_n,i}$ with perfect joints (dashed) and with flexible joints (solid) +#+caption: Dynamics from $\bm{\tau}^\prime_i$ to $\bm{\epsilon}_{\mathcal{X}_n,i}$ with perfect joints and with flexible joints #+RESULTS: [[file:figs/flex_joints_rot_primary_plant_L.png]] *** Conclusion #+begin_important -Considering realistic flexible joint rotational stiffness for the nano-hexapod does not seems to impose any limitation on the DVF control nor on the primary control. +Considering realistic flexible joint bending stiffness for the nano-hexapod does not seems to impose any limitation on the DVF control nor on the primary control. It only increases a little bit the suspension modes of the sample on top of the nano-hexapod. #+end_important @@ -277,7 +290,7 @@ It only increases a little bit the suspension modes of the sample on top of the We wish now to see what is the impact of the rotation stiffness of the flexible joints on the dynamics. This will help to determine the requirements on the joint's stiffness. -Let's consider the following rotational stiffness of the flexible joints: +Let's consider the following bending stiffness of the flexible joints: #+begin_src matlab Ks = [1, 5, 10, 50, 100]; % [Nm/rad] #+end_src @@ -294,7 +307,7 @@ The dynamics from the actuators to the relative displacement sensor in each leg The corresponding Root Locus plot is shown in Figure [[fig:flex_joints_rot_study_dvf_root_locus]]. -It is shown that the rotational stiffness of the flexible joints does indeed change a little the dynamics, but critical damping is stiff achievable with Direct Velocity Feedback. +It is shown that the bending stiffness of the flexible joints does indeed change a little the dynamics, but critical damping is stiff achievable with Direct Velocity Feedback. #+begin_src matlab :exports none %% Name of the Simulink File @@ -343,7 +356,7 @@ It is shown that the rotational stiffness of the flexible joints does indeed cha hold on; for i = 1:length(Ks) plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G_dvf_s{i}(1, 1), freqs, 'Hz')))), ... - 'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i))); + 'DisplayName', sprintf('$k = %.0f$ [Nm/rad]', Ks(i))); end plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G_dvf_p(1, 1), freqs, 'Hz')))), 'k--', ... 'DisplayName', 'Ideal Joint'); @@ -375,7 +388,7 @@ It is shown that the rotational stiffness of the flexible joints does indeed cha for i = 1:length(Ks) set(gca,'ColorOrderIndex',i); plot(real(pole(G_dvf_s{i})), imag(pole(G_dvf_s{i})), 'x', ... - 'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i))); + 'DisplayName', sprintf('$k = %.0f$ [Nm/rad]', Ks(i))); set(gca,'ColorOrderIndex',i); plot(real(tzero(G_dvf_s{i})), imag(tzero(G_dvf_s{i})), 'o', ... 'HandleVisibility', 'off'); @@ -406,7 +419,7 @@ It is shown that the rotational stiffness of the flexible joints does indeed cha *** Primary Control The dynamics from $\bm{\tau}^\prime$ to $\bm{\epsilon}_{\mathcal{X}_n}$ (for the primary controller designed in the frame of the legs) is shown in Figure [[fig:flex_joints_rot_study_primary_plant]]. -It is shown that the rotational stiffness of the flexible joints have very little impact on the dynamics. +It is shown that the bending stiffness of the flexible joints have very little impact on the dynamics. #+begin_src matlab :exports none Kdvf = 5e3*s/(1+s/2/pi/1e3)*eye(6); @@ -463,7 +476,7 @@ It is shown that the rotational stiffness of the flexible joints have very littl hold on; for i = 1:length(Ks) plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl_s{i}(1, 1), freqs, 'Hz')))), ... - 'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i))); + 'DisplayName', sprintf('$k = %.0f$ [Nm/rad]', Ks(i))); end plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gl_p(1, 1), freqs, 'Hz')))), 'k--', ... 'DisplayName', 'Ideal Joint'); @@ -482,13 +495,13 @@ It is shown that the rotational stiffness of the flexible joints have very littl #+end_src #+name: fig:flex_joints_rot_study_primary_plant -#+caption: Diagonal elements of the transfer function matrix from $\bm{\tau}^\prime$ to $\bm{\epsilon}_{\mathcal{X}_n}$ for the considered rotational stiffnesses +#+caption: Diagonal elements of the transfer function matrix from $\bm{\tau}^\prime$ to $\bm{\epsilon}_{\mathcal{X}_n}$ for the considered bending stiffnesses #+RESULTS: [[file:figs/flex_joints_rot_study_primary_plant.png]] *** Conclusion #+begin_important - The rotational stiffness of the flexible joint does not significantly change the dynamics. + The bending stiffness of the flexible joint does not significantly change the dynamics. #+end_important * Translation Stiffness @@ -735,6 +748,11 @@ The dynamics is compare with and without the joint flexibility in Figure [[fig:f #+RESULTS: [[file:figs/flex_joints_trans_primary_plant_L.png]] +*** Conclusion +#+begin_important + For the realistic value of the flexible joint axial stiffness, the dynamics is not much impact, and this should not be a problem for control. +#+end_important + ** Parametric study *** Introduction :ignore: We wish now to see what is the impact of the *axial* stiffness of the flexible joints on the dynamics. @@ -759,7 +777,7 @@ It is shown that the axial stiffness of the flexible joints does have a huge imp If the axial stiffness of the flexible joints is $K_a > 10^7\,[N/m]$ (here $100$ times higher than the actuator stiffness), then the change of dynamics stays reasonably small. This is more clear by looking at the root locus (Figures [[fig:flex_joints_trans_study_dvf_root_locus]] and [[fig:flex_joints_trans_study_root_locus_unzoom]]). -It can be seen that very little active damping can be achieve for rotational joint axial stiffnesses below $10^7\,[N/m]$. +It can be seen that very little active damping can be achieve for axial stiffnesses below $10^7\,[N/m]$. #+begin_src matlab :exports none %% Name of the Simulink File @@ -868,7 +886,7 @@ It can be seen that very little active damping can be achieve for rotational joi #+RESULTS: [[file:figs/flex_joints_trans_study_dvf_root_locus.png]] -#+begin_src matlab +#+begin_src matlab :exports none xlim([-1e3, 0]); ylim([0, 1e3]); #+end_src @@ -964,9 +982,19 @@ The dynamics from $\bm{\tau}^\prime$ to $\bm{\epsilon}_{\mathcal{X}_n}$ (for the #+begin_important The axial stiffness of the flexible joints should be maximized. - For the considered actuator stiffness $k = 10^5\,[N/m]$, the axial stiffness of the rotational joints should ideally be above $10^7\,[N/m]$. + For the considered actuator stiffness $k = 10^5\,[N/m]$, the axial stiffness of the flexible joints should ideally be above $10^7\,[N/m]$. This is a reasonable stiffness value for such joints. We may interpolate the results and say that the axial joint stiffness should be 100 times higher than the actuator stiffness, but this should be confirmed with further analysis. #+end_important + +* Conclusion +<> + +#+begin_important +For the identified optimal actuator stiffness $k = 10^5\,[N/m]$, the flexible joint should have the following stiffness properties: +- Bending Stiffness: $K_b < 50\,[Nm/rad]$ +- Torsion Stiffness: $K_t < 50\,[Nm/rad]$ +- Axial Stiffness: $K_a > 10^7\,[N/m]$ +#+end_important diff --git a/org/index.org b/org/index.org index fd66199..679b9a5 100644 --- a/org/index.org +++ b/org/index.org @@ -65,6 +65,10 @@ Conclusion are drawn about what experimental conditions are critical on the vari * Optimal Stiffness of the nano-hexapod to reduce plant uncertainty ([[file:uncertainty_optimal_stiffness.org][link]]) +* Effect of flexible joints on the plant dynamics ([[file:flexible_joints_study.org][link]]) +In this document is studied how the flexible joint stiffnesses (in flexion, torsion and compression) is affecting the plant dynamics. +Conclusion are drawn on the required stiffness properties of the flexible joints. + * Active Damping Techniques on the full Simscape Model ([[file:control_active_damping.org][link]]) Active damping techniques are applied to the full Simscape model. diff --git a/org/setup/org-setup-file.org b/org/setup/org-setup-file.org index fc0fa45..da956e4 100644 --- a/org/setup/org-setup-file.org +++ b/org/setup/org-setup-file.org @@ -25,7 +25,7 @@ #+PROPERTY: header-args:shell :eval no-export -#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/thesis/latex/org/}{config.tex}") +#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}") #+PROPERTY: header-args:latex+ :imagemagick t :fit yes #+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150 #+PROPERTY: header-args:latex+ :imoutoptions -quality 100 diff --git a/src/initializeJointDynamics.m b/src/initializeJointDynamics.m index e82d417..297f9e3 100644 --- a/src/initializeJointDynamics.m +++ b/src/initializeJointDynamics.m @@ -11,10 +11,14 @@ function [stewart] = initializeJointDynamics(stewart, args) % - Kt_M [6x1] - Torsion (Rz) Stiffness for each top joints [(N.m)/rad] % - Cf_M [6x1] - Bending (Rx, Ry) Damping of each top joint [(N.m)/(rad/s)] % - Ct_M [6x1] - Torsion (Rz) Damping of each top joint [(N.m)/(rad/s)] +% - Kz_M [6x1] - Translation (Tz) Stiffness for each top joints [N/m] +% - Cz_M [6x1] - Translation (Tz) Damping of each top joint [N/m] % - Kf_F [6x1] - Bending (Rx, Ry) Stiffness for each bottom joints [(N.m)/rad] % - Kt_F [6x1] - Torsion (Rz) Stiffness for each bottom joints [(N.m)/rad] % - Cf_F [6x1] - Bending (Rx, Ry) Damping of each bottom joint [(N.m)/(rad/s)] % - Cf_F [6x1] - Torsion (Rz) Damping of each bottom joint [(N.m)/(rad/s)] +% - Kz_F [6x1] - Translation (Tz) Stiffness for each bottom joints [N/m] +% - Cz_F [6x1] - Translation (Tz) Damping of each bottom joint [N/m] % % Outputs: % - stewart - updated Stewart structure with the added fields: @@ -29,16 +33,20 @@ function [stewart] = initializeJointDynamics(stewart, args) arguments stewart - args.type_F char {mustBeMember(args.type_F,{'universal', 'spherical', 'universal_p', 'spherical_p'})} = 'universal' - args.type_M char {mustBeMember(args.type_M,{'universal', 'spherical', 'universal_p', 'spherical_p'})} = 'spherical' + args.type_F char {mustBeMember(args.type_F,{'universal', 'spherical', 'universal_p', 'spherical_p', 'universal_3dof'})} = 'universal' + args.type_M char {mustBeMember(args.type_M,{'universal', 'spherical', 'universal_p', 'spherical_p', 'spherical_3dof'})} = 'spherical' args.Kf_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 15*ones(6,1) args.Cf_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-4*ones(6,1) args.Kt_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 20*ones(6,1) args.Ct_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-3*ones(6,1) + args.Kz_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 60e6*ones(6,1) + args.Cz_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e2*ones(6,1) args.Kf_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 15*ones(6,1) args.Cf_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-4*ones(6,1) args.Kt_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 20*ones(6,1) args.Ct_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-3*ones(6,1) + args.Kz_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 60e6*ones(6,1) + args.Cz_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e2*ones(6,1) end switch args.type_F @@ -50,6 +58,8 @@ switch args.type_F stewart.joints_F.type = 3; case 'spherical_p' stewart.joints_F.type = 4; + case 'universal_3dof' + stewart.joints_F.type = 5; end switch args.type_M @@ -61,23 +71,25 @@ switch args.type_M stewart.joints_M.type = 3; case 'spherical_p' stewart.joints_M.type = 4; + case 'spherical_3dof' + stewart.joints_M.type = 6; end stewart.joints_M.Kx = zeros(6,1); stewart.joints_M.Ky = zeros(6,1); -stewart.joints_M.Kz = zeros(6,1); +stewart.joints_M.Kz = args.Kz_M; stewart.joints_F.Kx = zeros(6,1); stewart.joints_F.Ky = zeros(6,1); -stewart.joints_F.Kz = zeros(6,1); +stewart.joints_F.Kz = args.Kz_F; stewart.joints_M.Cx = zeros(6,1); stewart.joints_M.Cy = zeros(6,1); -stewart.joints_M.Cz = zeros(6,1); +stewart.joints_M.Cz = args.Cz_M; stewart.joints_F.Cx = zeros(6,1); stewart.joints_F.Cy = zeros(6,1); -stewart.joints_F.Cz = zeros(6,1); +stewart.joints_F.Cz = args.Cz_F; stewart.joints_M.Kf = args.Kf_M; stewart.joints_M.Kt = args.Kf_M; diff --git a/src/initializeNanoHexapod.m b/src/initializeNanoHexapod.m index b00b4fe..3f502ca 100644 --- a/src/initializeNanoHexapod.m +++ b/src/initializeNanoHexapod.m @@ -17,16 +17,20 @@ arguments args.k (1,1) double {mustBeNumeric} = -1 args.c (1,1) double {mustBeNumeric} = -1 % initializeJointDynamics - args.type_F char {mustBeMember(args.type_F,{'universal', 'spherical', 'universal_p', 'spherical_p'})} = 'universal' - args.type_M char {mustBeMember(args.type_M,{'universal', 'spherical', 'universal_p', 'spherical_p'})} = 'spherical' + args.type_F char {mustBeMember(args.type_F,{'universal', 'spherical', 'universal_p', 'spherical_p', 'universal_3dof'})} = 'universal' + args.type_M char {mustBeMember(args.type_M,{'universal', 'spherical', 'universal_p', 'spherical_p', 'spherical_3dof'})} = 'spherical' args.Kf_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 15*ones(6,1) args.Cf_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-4*ones(6,1) args.Kt_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 20*ones(6,1) args.Ct_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-3*ones(6,1) + args.Kz_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 60e6*ones(6,1) + args.Cz_M (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e2*ones(6,1) args.Kf_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 15*ones(6,1) args.Cf_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-4*ones(6,1) args.Kt_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 20*ones(6,1) args.Ct_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e-3*ones(6,1) + args.Kz_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 60e6*ones(6,1) + args.Cz_F (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e2*ones(6,1) % initializeCylindricalPlatforms args.Fpm (1,1) double {mustBeNumeric, mustBePositive} = 1 args.Fph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3 @@ -77,10 +81,14 @@ stewart = initializeJointDynamics(stewart, ... 'Cf_M' , args.Cf_M, ... 'Kt_M' , args.Kt_M, ... 'Ct_M' , args.Ct_M, ... + 'Kz_M' , args.Kz_M, ... + 'Cz_M' , args.Cz_M, ... 'Kf_F' , args.Kf_F, ... 'Cf_F' , args.Cf_F, ... 'Kt_F' , args.Kt_F, ... - 'Ct_F' , args.Ct_F); + 'Ct_F' , args.Ct_F, ... + 'Kz_F' , args.Kz_F, ... + 'Cz_F' , args.Cz_F); stewart = initializeCylindricalPlatforms(stewart, 'Fpm', args.Fpm, 'Fph', args.Fph, 'Fpr', args.Fpr, 'Mpm', args.Mpm, 'Mph', args.Mph, 'Mpr', args.Mpr);