From 57c53b26e613255581c9b36e5f5f22003c874383 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Fri, 24 Apr 2020 18:46:49 +0200 Subject: [PATCH] Finish explanation of noise budgeting --- figs/h-infinity-2-blocs-constrains.pdf | Bin 49700 -> 74226 bytes figs/h-infinity-2-blocs-constrains.png | Bin 22682 -> 30921 bytes index.html | 678 +++++++++++++++---------- index.org | 226 +++++---- 4 files changed, 556 insertions(+), 348 deletions(-) diff --git a/figs/h-infinity-2-blocs-constrains.pdf b/figs/h-infinity-2-blocs-constrains.pdf index df7064ada082dc7848119857a885abe7178e765f..6d2317250bd050b4246a0b125ecb7c154870d1bc 100644 GIT binary patch delta 27976 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 NC1tRB_*UAQBe^@q&uX$MM6SAI;EtM4&lx1 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 TZ(HJZ#FVCnu6l-=+1398N6B&Z literal 22682 zcmYg&1z1#TwDtfZA>ExKAdQj|(%mAcqzFobfP|zBA<`%K*XNvpnb|XY@Aa*C-*>H#*V>v&__#E<2m}IOMOj`Kfk2;y-;c1b!ehC1m?Zo_ zbJ10jMf>>=w;w#gaZ-NZfyIJttl#n2*lp$td#+*8uUe%dQJt9axx#|5fhW6eayS~Lp zG4;4l=3dp&a&65+tddmJ9~*C(hgl{kDdkwDF#e zPxIU@@(6RysWG|t#!81ApX5n@(=E}FyQD7fbxF+fB~Q;{g zoLR|mHNwU)Shz=m{lRK=>CjQ3Iknwp=@8$OJjNDXM$@` ziSq}m2A_vaALk_$WZ2&+?JW<$5iw1_svVaFhWSkDYohafyQ7)e)DO0%oBAK;V=;wCM)sK} zKOM|e=}J{WWRnXZcgYd8(bA9dkO?qKB0? zpFRpsPNtcs5_@^bJx}$s#+fxeZ|dvUFz0aWE3ee6s_^mfp3t#6I5@yLA|oTiEv}1+ zCAo#ScXkRE|LP2ZiXPx!W?xiTNY#`hVn5z4s@Rt* z2Dd&mJp7<3Cn7wYs;hge>9S8$@x|8EH&I1#*Og{*#V1dm!0VN^qwu)9*hAfvv$3&3 z-Gv?1WkJsh3l={8<42CxQ##i9t|)jcF==>wo~Eg$Wv#9`yt#OIlUv@(D!bbi;%a48&{17gMMXwIA!sGr5+A?2yE|09zrSBeQ!}#L zl{euU4-ZeLrS~S)Ki|G#Ms?Y~75Mn!1A?6Vogy_WL@6AeJ1Wq+ychG1t#(gASC>Rw zTs%Tpk%Tl!gv`d)R!&tl-=r%vEsdeQLqP-yP8QI=Ji12pPj~lSXXmnRS4&Gvj++;k znl;mYm-JW!bRPQ%G=tXG|kf&yOgJldpJRaKSGF38QjD0K!!CjJ)jOosuI+HH!NAYnnF#*BBiVcy(Ron(9CXqu!LtgZ(b`K)kW}BOv zX9_w)6A~!v8ydExeNJ5Q5tk2xoS+^Z*sc!cZ66$9`m-H7{PDRx)WV9mgY{=8zM4et&J5qRRrG-87p`gGP^G8`a981H8GJbbMD!3z~7= zi-tFTTN}D=k~|sOi8%h6N$kkz&RbD!vmV2vao2)cSxTqxg%ZgspQn7Cb@E0VC(-;{ zR+R%k5&icYYtVKigxH+AyDbZxhs8BAG<1f4lKLHdYCdS&3|7;!>X!hiEVlKCD1xQ- z#l~05T75CNiOy@Y$e|>cvXLH_Ca(ir$EkYj=p*O(PJBp;G`6o^y^4;Fm3^<- z_|V4YX5afeIT+$HX}6uNt*vYPE`1v$o3uIFA?#@u8m_amv);V98t3-3KP@Yg-A!;x zGfg57>u!*&XdY$L`5`UtwQJH3C@Cm{-`{bc%Srcb9r&aKv1mX(mn5&CU_Rd&!7nWA z5Pg&Z;Vb5{G-T-VXV+3*US2yVuA~Zbd^q(jD{_D9A(~9iH{s#P^z`)ZeMqs}f6g9W zmeJD)IZjD%aB>QDzeM>{b+t&EglFqRJzd>b8^5acy5KvW4X~)EiaL|}?;x0DG-PQW z`ua-6b3Z@_Plo(Vd-dwo(6F%9&z3!AW@i4~-OAw%lC|R!Vq#*6(tc7G7pIO+qNz0L zem}A`_yq-9GgaamSKVH$j}bS#JnCHfmQn`SxGE}(ZN9U+s8-=P&7i2LSXxnmgllZ? z=y2Yg5QDfg+g};b*4I~nJU`Xw^TyvF;o;$7))h%Voc46I*!bCSKDpP?rt$pl$4{Ti zT$VN0C%)_zV4POj|Khh9;-I_p0*{7zX&8taUqHOfX$ts1(0*r)^|}!lE-gATN*8 zje!}-FY38_{eFo_1gxd3`ue5&XVZEQVkj;wAuimHs_>wG<_q(1a^kRSrO7)vZL=r1 z@2}_>eR-~Mz1{cY5nCyEM8a(<)S(>3dy&NJ21`{5CgF#r5q$KL~ z_4Ry>sECM;cU%TD3k&=IEJN~9HrKq!^@BS$(7FO%>aVdwB=VtS6pFSzR3&7N+{X{vtyzgyr__iu+w5 zq`ITbMv~If(!ZLU{U0KS3f4wTMm^N4gMu)}s~t`4lcS;tvo+u2;=CT;sELV*$@?+7 zzOZn`&(AM2Cr1w}c1accZsUg!ACC22#$o?4f(WC!{VZD9g8&;Ff!JRg)q0ZF+uLiy zEFmI7nZRdSd|-}z{P^+A^Dk~EQa7~H@Ejc-SG5OcnCrFS{tQ!0(~;g0$HyK}=9xJ; zU+?UA?k&AmzvHrmXJ>CO{b%Ce{BP#Hu4f>I=KtyyI=?ZODVRahYri?@8f7kqic4og zT->MoOm5Pp$KK)eckVx_ZEBK6@E13|++RVnx8KP3Gp%*Sp`f6Me)sNtVHW@toVxGW z(7re@{r&rIq79DIjjrTmgB;AM(N_lw4EWy0$A7dPEjFxiVlFmm2!mkH?>gQ8tyd%^ zCPobf4ZOE-$Ma}wItq%n#ZCx= z?|V-3sLHMdVihdS{CR+lg#{flQ_+sti_Hlfs1@5D5;0xeJUpoKotQ|qdQX?n+sB8P zl=K!>^A=gFO5meLZ!tiKfrW+K>r)N1Z6SmqP&AhM-uKjyiwg@=Krz+6ckhW$pXAHK z50Io11ub!d@u*pzf7CQHW5UD3vys44eE5*Y%E}7++BFOBiSBOf{xr!?1lJEBlCJ`0 zi+t*b!e!mtlJbXxi_4(k&wP}0sl#NgR$~=D zt#GL?PHuiai-16kcr=l$O-A;7OOm&Zag*b;6t{6LS#wCwM0R%e{YRrp^774Jzv6m% zc?t2ND$$DS?ksB2!vz`$TZw5=r&i&aRda{RWjv9Y0{VQF#VA8#pCY8iS3UMfnbS=6_j z_pNqnc$gfliSU1Uv?;?xbnm4DL@0!E`M3mlhh;s9LAAr=hx~liHLt-Zvd38$=cina zewS$wz;AMMIZ$9+YNY(B*4cI&;V`egz6uA~=QMu|gb^?0?(VLBz#VSx!twZo?QN%+ z$qX#Rm>DU0^lY^FefM*lT5QasH5Ch_6BcBPe?ER> zu_4ywlXA=H0Yqu|=+PT>109{b+V|%<6Ls!{zTwGkR^uJF^;?zA_ z9p-{Mm_1$roZ~)yqcWK3o~$VI!Pn{ObT>5*KyYX0=hXc+BErI*b?#d>4dGGMkpP^S zIXH4xr@f^ZZ&~#cePM1ZHm;K|?%mzNO}pQlDYY^2g%sRk4-x)xgz4MQWd=f%FU2L_ z8mPdgkimI(C!jVJyx<&%JTMO_d06u^m!H9Iq-ZGWxeE>rVIg*W^!)(vCsSfVpJJndiJBW7fb0;~Ex@3`E_V7DKy zXqoupf{GNtnWzx{q!`f}fPq!&G%GtcK0XIE*5i1a8CBO$CLl|s*Q>KIo3aWDl0Y)q zK%>&Ljb19;&1Zu|RD2)-iSw?9$1(fb%_9$Ax>kLCeF2vxby0EgIlvv;dwXrD`e-}C zU1(fKfr*K^y}#cM2#uMIt%If+;%uPO)?ig$m#?+04K8z<*q<39gNZ@X>&l%wchr*v zF+V9qb*>D2GJpK|m5Afi%<;~=ldEfcs+bGa^1FBMg5JF&mz9&V#hd-|BShOeZztL>OCcq z#SVnb0?|eO`}c47t`P9J)c5Z*^73Bu8rOyvrbv%8`T5n<)%iUa16O(WtBS|f&8S+?xK<39PtV!VjgL$t;CmC?S?V5QNOkOf%3LhLVs(t*EkXD%8}_APGd; zq~3%1x!|H7=9Me_3`>H5bby#KOG?rM0@0_{XJKL4227QhoE$cxyL-Yu2D zJc%3LKf=hl!rs1po2#Jw9uCJ@Vm!XkDI*wQ5Mazm>huw5%y*ScLd_%$WDkFn=cW;lFoII!}fzJXM zv0LMMYAW4Ct=lyQ28JQx%rB>wuo8=cf`X8(RFXv;8DwQ;qvPYRB9yhXLNYSUhZ~q6 zl0wiht~R%{Wb`F8xNn)DfZN+ZWyn*q$rU)HH<-Yn?wb>6+p{M#fmnpF@*<^xiH&NU zGDfPEF6hdwzO@2Dk@`X&6kQ_pd_ftHT5v(!KV*nz;n8)#etdjzmnmaf|+W)G8fWricUE_Q16~V6Wn+L)Bc&`0*>F3Xni$Jp|NjOq%l+@JJ zbb9{0ws+QvLEAPuyHINMC6I_t$V5A9B~5e7>3$&1(4okcl9EzP%Fa*_a9uhnZz`oo zI`f8vpu|MO2JfzD$Nn1Ud47nmCNVlq?CsgB1PBC*b={3f4)x|?h%%Vp2x$tw%LHs% zfM%}dzEnD)nAjJs5g_LLQyX#7eEk21mmw-1g?Jx$)s&W&nrv}D(ANIW_ay zCPH&{v3!5a56h_Tg~sPyyeB|BdHOy8ZhZq8MMn+z94YQ>LI^%>_VKh@Gcgc40a1hl z9=-Uzu&#L>Th#k^Lq4H?Y|nLEGivnyi3f=`Rhb9%MLp$D`<-T6gANhG48nLY;9v54Rq_AOV9d{-Kg-sR2*BaW zvIuWjyb;=1IL_MeT^G`J_m6k&144MuXcw}oYdHhF!Sd{f2=HJuU0q!wN=iPAyOg^( zkkJ&OJ&X5?mwV8lV8FX@d)azQ`fbsEQ!}2Bf)x4_&_lHT%jcX8p0Pe{m#2bYNdJp%}UtHy}8@(RjfT;2XI6%;#2pWauS?fv){a4DljsCyC>0+mE zpKdj|06_igA?kg87k_g8It=Qp8AO}604e+d9$|xuF;7v1caBENjimH+ts)t0W)1%< zLTGSYqf!*ZY)R9_Dq1sLv)bQ7A8bxHMM1fIgyDf;iiadG3@R289bNeM@7fYRCuGFL z#Gz49NPZ*G(de6P=RX#|~5QH;(e~7TJ5a9+zzkQ3+9Dpj#E-eMi z1YVWV)s3Zzx$Oz~q7!1<3L`X=NHbYs`w&3T?;knNdrKN*WMo5zd_>sVMn>UK(dzv! z8D?i^S%d(S1w=&PdmXF>0l@#{wl*^K9iq%XEG%rh>GGTqP&EpY0n*XAckkX>b6Qf; zYg!S98K^DMF)=OeuSrqY0Q^U1KGrG_3=#{;W9Iko*HAy1Z`~@lsm;&7=^?=YpuFYX z+xG8LKKvgYO{vy?%joM6JL>5<^Rb{OY)+w^6wy33Mg_(7E@XPZ3jv^E0~?qdE3-iO z!wJk6x?`Y5$O2H!+reSZWB{>cW-v<)h4i4%X#*$OaMsY!a0S5z5CB{_2OnPuUc#GM zpVP;o5%}tOcued(5jiEM^L_JOH9OnPpFJhW$jMu}y0E0Aq*g{t7~^@3!+<2{2F6*D zwoX^r4ClWGL?bGMW33JpVeE?wyRgHAVdd~IAdb*C3970Ro|u>b4jyUlbJF~BQFX=U z*}aq|h)24O_0q{n`mSQ*wuz!gQ078}?Z=rUBz7)Yc|K$G{+_q6!5WN?uX% zF+hTqu`=qL>PZZ=|)gwL_el|74^bL@OFR zd>95=%tx?hC@7He@f09&zMh#e16Cocu8v15YF%LZ@ea`@W>onN8x zH3YaR7L>ny$>PGoaKK_S`@erEtEshtKbb)t864D2mGYqx78ZtOYDv2Fl!*vCw_LeF z$G`y4{$pW(2^;)DqmItb$D0#h_;25C2c-;D^eb*|ZYbpq@(PM$tPU4YM@^d4z2E^f zInX~yQs;M)*NM0=6@D*1I}=8Z@CROe1q-VUI)dOHqCO|LK?;ikiDp1N^|m-f2L}ho z6SNr}Z1xCVpc{vWhhq&dMUb-0sEkX=XEM{p=vSD}$-&VKEg%BK*zZ|1mDl}u-kIOK zyjYq3gas0>^YOO%h&cE$pujnB129xOFjgiWo(Ra7<`Xr}0GOJ0=DP}t+hvuF$H6X8 zF79K9s)MqU0+wz0`I8!8zbME^zziUZIj@fipqK+h_R7SUTWe<^H;Ve6iGoTYLCIHq z5FD=>7fcZ3))hIk;{iBQ97rcI$jnfBnfdq#p`o`jTtErW6y7V)e1lTaGQUHCAu0o+ zOa6xsOs-o~^uTnq_4H6M9d-G+xw-cW>YV4VhP`=XZf+NDV(PI}_a=@M(cIr(a{mBe zJrcA-5>nDK0Ikq$ng@24DB&qMUTGTwl#X<9adGH1GTQN>tLyC>>WTh`8^7jZ{UNk~ zAU@2)W!8y*?{ur6X!*{I_0ZF!t+rpk zXrW<+N(^9wvZwtF*g>+Z5`!zi)fAmqhd9T6{X%tQjB8zGl$Eis;?uMn(h?J+Az(?m zDEUhKjy4hga8v!`u|*jf0YEBQrKA|3100f_eZ!>jD+$g2%mOs|MgTQ!>FvdXln3h4 zCjvI4w;l^Cs{llU>*^3rj^=xGL^zEQF3@ktta8(hKGJJ{R-Z^-Zq>i**Qf3?HZs~? z|9Q*%Xwn^8X|1m?ukkh8>l#~RVW(Ez^XFsy>!3_*H zNQ{uTnW=$1O#r{M!P))EAnl6>q{Ve}f*NovMo3!=5{H!NUnckox}T;8XKrO_d?mTL z;=M?F$*uMEaA+{Qu6#%1!O?(7GRMZnLCL-f zon}C(VH2URq7~cGKExy?{gc5ZAKkyRJu4SZC4fFMGE(FHM-XBVI^%($rp`jG2SVuc zo;!zkWN+uPuK-9QsFow*z{z1L%-}fisKAgAEXd>0DJg37nlx-kQr(hxo=3r8eK|;= zD5d<%bIYRT4TxC8%t>2_X?^9~cvBsny`7zn&(DH!(AN{8U2f9ki%R$v4wE#{ih@ zDuI);a|>vAP7B?{D98tvGK9Px9v+UmGGtKDfEiOENHpNB?-1RfY;}Uk-T*mnotU75 z>4fd0qYzM3tiB}!xurTjK5lMr&oqgbbeg#feQ8!3XPsOgY zv6VgfhXm0)DETt_Pf{IT_36o+g11CPWu<`6$-b9QQ*3N(qOd)UNu&4cTTlC%J3FsJ zLqqiW0yZS@0^TU#uL^;IM1w1^7*N3iUz4(f3XZk8x#@9!A_S%?_5Sl5LVI?mB@lXG z`VEZ)U=i+z71)TG+25}x&d&Oi{TiYO=k)ZB2aw0z$HqBg(0IES87 zW(&{*evmqkL4n|Zd1yyPMFsK;8mdVK5`wt%zn_-Z9~9%<9r?lob%F$B0Dyle)>HEnpe0KgZzj2(eFTINEQxDFED-4D~> zC4_kXsxtpNUI~fJu+*&OsUv+J*ZuqVMV;raz%9-|Y6gAt1Eglq;9DVeqD)OdFKz~= z1erhq0u-M~cNB?8?Ms(7&CbnLF4~Ehg_`TRcLTb0lz23^u~%1Dk3r;gTKUcld{Etiu1oXXSlC(DnB@NrqKe#0kTntd-p+LW&dV7oq0zKrO!RFaCa0)~``F@>d^RQ7LfMOL(5I*zZ&+Ac<76`$gPtAEtgWGeFG=O_ zvH7;5W~!);+vzNH|IIJX{tPqt?aX14kdVlysTmkhzNgv@eE>WRdc%lj0Q5UOd`(Oc z&~g(K-?Qu=g|Cki+V3A^FtLXW9c>X)Q3Uq{1k6xU27;r5a7HEJ!C!3J6nVesp+K7U zTWFSraA%+R-GP`d$8pBaY8?S{6OV&39o%rvr7&j3v`}mH#YER z+OmiuA|g<7JPH_camfL+g*FTP2Q19Lw)RA6{;ci(C(_Hazz;cE1(G+oc<`^qTZpxp zG(MRa|1r{yt%~=OKzF)H3AgQ^Y}MV}XSPqSiz{A1M>cx2)Yx4kCG8fpt5j81le;SS zE1#3I#n9CBiI<8sCyQy5m64*sty?f?6{_wRmm0nqIS zj92uExW1{{HF_zUr;r6g!y+uV7+qYHL*Kkn_j{k%?Vtwn ziBzC+SQs7d)rfAt36syJwXv0ZGka6@rv$^)b+*^)39)bGpT^foC^q^=#OlVB7$j0r z-F-KUrK9*lm}GE}DhC7F5H;N%zQB_KQ0i!F`~RI<@P;G#AZILm0sqT^SolF1wg*qYbANUisdF z8y0qx}>8b((WN3rAqk~pfh+=;4?DRj7W`rCw zBe4Fyy0p|E-sKUA!wyPnje7g;9nR(CE0$eK=miuV0>+d@K$6n$^uh`eX#K98(LG&h zt5Vog^PDZfIZY<8Q(z>DcDd8gZ~qzgnjnJ|w|Q#LBau6uCtqAd1V*;T-Ga(YWMq=c zq;B8iup9oG>YO%Q;6t@$P;zKqm=GUNj!u+z$9;32m+U4NS9!$-IddFfNx_k$wb7`u z#+sVMN_$Yysg{#qz{KJlS`^f4u+}}b;r-{2pea8u2>G~OTnij|9^|8a^TO#`H!h3w zjyIIlYcP6+gd|D=*v9DD)2HlkYenTpYJR4NPd{X_?V@=*EhtCq;ZgD5&FlyCL}lxD zeqazY4&ZS%mQ9TSog2Gl`dq(4z0uuMu^ zytZ#@?dv-(>ICQIKKf2C-h`f$1}0|a7SaBxhL_aKVo-A|8er@qI-GZ6xua~!Bl=9|q zb$6e}YCdjy)Jp9vN@w`+p`cXfeoyuD9>=;DANN+)Qc8!^1V%9Y-;yOb*ETld%u9g4 z8h#)s_`I-(h}1%gyHTI(7RW>V4g*i8BC>mH@WjLpjhk-Vpl4!b9gnUf%FM7;qHi zZ5ta)EKBQI6dZvGnPzC3Yo$p*<-!GGkD8A{QA)tf9*67H^PiId@s&rqRjJV=r=)xe zHRno>j3iLI%;V>kgZj&=7~UL8%$h%C@c1zcu$aIswFDL*_wY~O4>XbS@o|=yA0g@M z7#ZPNb8^Nwe|s1EN}#9gy#NkQu362Cii|4Z1*+o8l%$k5M|h9i7oR*a%Psm=Q@y~} zMxly$R+NKf9h_p5`P7m*#C+oBKRt2@=7gFcQa+}xszvk9%V3_5A6W>;TewB%lAoQ4 zjI@`pj_&U1=6BHfwzNak|NK)q3{PadHRs9|mb>EybR2*k;U$ck(C&L&hx9m7*8if& z5@?~tql$~8hy9mXS=qsn_Tw}7YL^v4w~?ZHm-R10yo1{iL+{>YWU$mO7MIo}I$sk6 z2rJfO5>lO)$MLx4M^QXX|K7J@Nbj$qRMwS6w>PZv=(xcqFy*hPrAHcuH~mRWf?<$a zbAp$LOU_dPQ(Z%2XNOqsH7pJq6{rbZNGh?&jJNI-xs?d?}^adC$aefbZ>evHiX z(X+yUh*fHcJz;csIG%+M#OzXUQeamUBP(>cpz#iq7AWNd8hks@#2=`#d@#y+^QItg zV2@=V4WKY8!6(=bQ}wSw3Uc~lRAK*%0$9TLCtu2QP*cl-uGCVr?*LKu9yes<=YJK~ zD!9J^u6C-EQf*P>I9hz?$}8O9@Q=-gC0SYhi6V(r45M$)r7HOL1WvrXil~SB z;C7-jZTNKgRY;8Exw=FcQfURH4DPn=XL-L2O=LjR%iw%i#|Lk<5ia zxKQ#Ypru*RMOLPpr01Ovk>15$i5h{kYY6^H_cYc-9Xx2q4FhxqSAO7_A)~dhc0f#T z1woq6v{Amv_dK7V>H31L+;KKs!9RlUJG8Jdq3J3~;BOD>oiH=HJKlqgUWM-a?A8_` zaBG0F%~MlpuSE0Wps@wV(hNXh;P*W{MniDt31Me2X+BH?_0w!9S4R%v`jJQzbqVsR z;%>M(TImd!&1nw*aNF72&6c%}&;g>g~aI5-E5s-vY6?S2tO+yuUuRsQ*N?q72y!?$VNb8xs(Uw?nL zIbhhyxlG~y$Q}4P=p$k}%QB}9v9qxW^`z4th zGx+Sv>T1>4QEGa6U|865!~{+G;Kr|~&Ku(bP|JaKP@&6Us;Y(wIM1;pCb@MieJkg8 z{)qLkQm};LnTY*!1#4@8>ugyF#Nwjm_YvXti7zSns~+`qc9Y_iBqXuX(b4jro}9iX z)`Vo_`Ur%Af;Sl@rLgMh?H(c%9i2$bYr*EzjkK`MfEBL&>(^CK1qu$0=H^H==7e++ z>)bJ8HDQVm4uvBQccj)gQFEgHMVXcq5Ve0A*V>EsIh}+v+JCp9G**xsVQ&@Oa zR#US~rT+5kzO_40>PJwERKKwz4g9-$E}j_c5HnKp(kb3;#^kt}FRRprEnz~ius}95 z_nE?|_;x%WW7K3_$^8^QfgK?NMiVRoB|NxoB3w)uK?tclU;+(tA-}e}o9XOe)I?du z8FbYTnVG>s*W61R6{XTc^b2lWoEAh+Ml+M<^Mt_CreDOIYiSc%*-wRs#<6D<7ph0- zz9;h6fY!b-kbF*?$YgQ~%K7b}YoaeUXk?@4KV60BS(DNJ?#BH{m?G{5PjJE7!f1&W=m^H|+Ua6^RO)w$TT@#c^rq)w zjGUUd+bSkwIzB8ovV2e1b;V47-ZnN)51F&PsAx}#JCn(#($m}ix#1;q+ail3*ELRR z>f8^u=H;GGEG*Y3iQj3)uoGdT zqNm3Q@W#yAy6fTIf(ioh;ZgOf5V)vj>NYaZnq56<*Coy_gyKv3Mt6*cVWkbr{UUKZ z_apmZbWz00Z)%I}8Af87RlY%M^`>Gv`kXgcoC5Cp$FaMcw})Dfec2a&j0Sa-QPZ+qdOg|NOaC>Nt&yM<+@# zG7^~F`*OO}90R7f%cz@!D5zWeQ-5OdmFOE*^B6udXeADWGa&9^hD(wRC7D|RgcA|SAmCHc} zX#1W)YAX~4el)`MO`jobu;DbM@WpN>yH)=tA+JI0Y8a=+gEzRdP3Kiau=W(ZXO;I4 zSe5#6-MY}5|LkGy9B!!9)L!g55;^!2kdP`R@cNjU50F|}8Joioz ztmzxLzb~Je#l|Ec5bSo%=h-tvW|pP%+6Xno)UEOAEdr%3YiIe4E$!84E;W=bLg(0rk#sv8?ynkG)}H(CFWVR}k>)V4v%Gcu^{ zcztP;QO0$};H!^v^KCLro3@%GWV5o z$mi#ilB|!XFZ)n#OeHme{YkO1qvMT~vdU}Hydnv^v5^;7tols|sj0;f%{9&rC~wWv zt4s0r8(sV6b+~C94AV4pVkB2QJr%B8F+$dzYS(_8RadDk2rW^CEZz)E$$4=G_SnNJI-k5kzaO1Kmfs>1mP|Ktd8K1u@@Er>IYZ_(KN>kO6Ck++XS7g}P`|Ld0kZYngeQGZk$$^a-UpBi|D`Zq;o= z7TfqWnNMG$ryU*gBj?D+xyyHTR3F3|hbakst^N)w;a;M0tDmr)M{j1&vylD{U>3!w zG(91oGY@yjnDgro_yCo82d6+g`1f1R;c7(ao3KwygM1%*a3I7$(y;{Ziy&$4}8K73vc%qb8+J2Cz6SY zG5q{erG*`^ko%Y_u z#GKM<_xvg$=!r)BY8yQgh>e>zJ3H2dut!x9D(Oa2-(z!%g~g`z?Dy{s#LQ3KhKo{o zjEqKL4i-nB{FN$r3E5D1)Z4-AWBosFOVDKH^pCsokHwt4vdZV_-h7yvf%u7Z7ja}+ zSkVd3DT+r1rH128bVd~HU`^{jeTsZ98nB-t;_TgaHJ9V2Zd(imaXVm#(e>#c$2-@c zAxy??EKbABd|7a42x`9F_(GUTL$IuhipIjp3<#FW${s;Y7vr#f#I?JJi$&@J6BlXc&qX&He*! zpCz~o0!l00+P}D90VghJ;woU$jY~=jE-;9a)zPW!yw>#8G7APyVs>^0J}ozoy3=aD zAIE2BPq;DgdTZ+ZQXh@OKhANu0Er~Lgz=0N@%Z|9B%<$*n3xajweH9hv$@YqglY-^ zmgC^yM%EW{3*lPtGdVaqM%C2Rcp*($2b<59D-s4J+)>hEx&*Ha*4w!G;xN0zJ z`XMh5>(MV_mPeDMB#()xJaA%TjXXToWsh*p5C|%E)ZYa_-evL!MC$r`FlW_i>GNk@ z$f?bMl~I;N0UxFr^l<2o7#V$3sZ>}jNCKSF(SjIC-n(o3WtS+Pmp&rh_j&8?B9^(? z_w3a&$R@M%nXkZ&&h_ivR+zzCkw{MRL--|l4U^?w;K)&sQR*}wq69N+%G{y0s=A(If z+YQe#jbU5X#N!iun)9P+KT5O@M13qbg(>PZ)2=ktP<48F@eho4?H{aVFmb(chF)HD zrH~Mb^$?Q-O!C7ZhTTs=TIj`c8UjUW{c6LsHm}ZpFFE@b|JrJmqK%D2goA9d0L%)&J_APJv%W(#NTM4gB#e(!va=ar z`G6tbf>8}%3~Gn4QF86>wL1Ir>bWK~?~5}Y;HMuHQJ}ApxF>-TnU?0PPvrR30KvS@ zffU(8NV(ml$3Sgo^;UxoQO+yTesP3zz=N;>$*WXbqCn)6CnLGcMi2lG3X4mmRRF%o zCgV*)3p`SrBQu^U6BABhw=3ffMJDF7S0auX4q z0SWO(;Svp~kQ|LaQZUpUvH)&B-G~qAGLh zzkv5YVdj6Hz$`aPjrptC_|Y;?oWVew7^s9pEGUEyBF)`32xSt`X>zOR!SMTC9vL_scTR%?83i2=x`h5^y?+mZ`DpNJNqx20rdUKgY^TECTK$->yfo{hKlH7OM}4ju<*l&yF9Y+`rs}$+Isq} zrhZ0fiUJMeQAQ11OO+W|y>V%P%zA^xxD$udjif*Pv| z6EFWc03lX$9Eb;Mi%Ux=tqnpD=HyYIrO|o*To4AJ`6Lmms6fS?Z4wMRsi~6tz_g}p*S`lWM zm|^qyOT?JQzn-{D2iu%M_b*4I%l^BfgYuw=!yg`a2bu#V>8{_#r02ci#m253!ZFo%4~OB|J3($_0l^3OU-Oip6XTyz$$r2DGQ6F-@%!M2yGt6O4~ zoNPr`*(*Rd+aBOFbKzX|wDMT8Nz>|!i1buR<=JvwW54fAUHbViMiE+J>^TB5BBBp4 z-;b^`iamS93I3SQs~TFOR?u<~h%3$_LE8}!xP<@o^;xmNyM6nkFwhhaf8oKB1c5!r zK-T&QHk6)_laUcM!$(rP)N~6#JNGhe`1+_1ji_Cc6B&pgXpVrG0iBad0XiqTp&4bzUF6I2b+X$le_fJ7F6L+4Ir&l>5`QNMIIABgi z5FikDiQEmawbWEp{wRHUzKA`8n2}J3HBnbntD_(zYe#)vk^`v)e}SWi5dI*HKZgG; z4RsZjFBDW%-PiwpGvOxOP1;gf7lR%QrirMIxBNZpGU!hRAn1-LpA_B;b^>ij3xAf; zd%NYTtSA`f76@g(KSfDBWVP1HyY@fkV&@S0pUXO`AewT3y-bnkV_xv#Tp0ePJs$G{ zOA=n2wS}QdxzFY0aKAGWCb7aVV56D3g9GmmxSyjBM4QTRNo*Z3Gke>5F!S`fz6A}K zxbNB=%>8KF*sPw%=8KCXNt@B$UWXJi3^SMM@o)d$?0d>~cJ)LUZK;Tf6~7~lItBqB zP3v|3pX=h|WR}RW`}tX6YKrYn9K7G0tE}q)0|=@oZVU*S32Wy1=MD~=S^4?}B=BaE ztjqJ~xSNfq4mZ&JnKosZ>*ZPfF*tt1xb(vEvH?e4v^Bzi@0Ev{*#`(ZzqhW##Hceh z<1F>3m$bIFN~FsqHK)1*lM!Y zBj_8vMWt6XIz;MkZ9BU{KN!l0``0=Qr_eGxC8O{<@=M{=Enop1*0@cqXqBm5_+Kh#6OyVH!ehVph&?{(Hz7 z_+zcd&SQO*SvHn`?KgvDy3k{w|JV1N9uqZDw}vzxj@x>|)&V$;QyPm3#&UnUpOC0% z;(zBih1owNr%_{fVw4T1U`PFTHxR=Av*CmV5v-jebh>q*4W6KO68hJO$ISs4!?4|w zEw;+b2%8bboztxMoUb8Y)<;cT#uj86mMAmp~(6!1Z|HQJh(Z5|2 zSw=%N6@7hIVBPX6%58JPJ>OJ%HgZ$)X&+sYVc8s~%IS5>KeaAI7Z(9wXar(nfXU>` zbD?TK`l$(Wc<%pF*5m%YdqZw8xcL9NIQMX-`#z5UJU!KY>k&Ol=|FO7D3ul}c1Ot? z(R4&fPPrYH%9(Mca#!3+g-kTIF~ur}In6{F6=Gw=tXh$Y38Tig=cDU-{&=3hTT+_ngBtwrbt@;^pPX;tLYa=S>4w9(f-4017b7jM3 zq(L6FM-_=m1WBdI&Yja&D5g$}keuP%*zqHdjxEtx>#G-#2@N-zQztk$G~;6KE({Pb zlm|h8QeZ&UY=mWnSZ=(!2!6n$a7ldm>cm}ug}q@9<-ZB};Iz7_v2h-%W^WCUhD8JO zn%6$U26muGx9;@y1H&D7%^aQYa15^J2ys*TD)XQ zdj>CAV>zO;$=LWHsJQ(M1+Nx9E%mI<2e3>7yYJWkZ&3T~BQztCWEaJR+MJwacTLsl zpGZ!jBmNTzfK~17?6Q`?3zHHy__+bPvP^p^V$~x9UF}5S5v0L>B4Q;nfk2Sr0*a?~ z$o=@?c>_tbuu)FFF`t8QyzO^n;*o};3;2&DXnx~5W_j89v1feF*V#k7Mz{g;snYjFkkwy1DAKVa3_C5I#X)%LRh47I)M5 z*KmaX0Z$>w_*0UuN1irFnoTxtY>-3{w(XfKZ%!R;^_4s#ux%POCd@U3ac;|+8rQts zaPiZ(zVrz{E$sUYs4jpaBeLJTemy4qkPRnQ)Xq+-w~o)&``|Uyk#Iy$&vRIE&#mxp zd8yvKI@D#^8&UJ{?dIkuw6#YDd=g2)eJqk*1LXju!+J_$KZ}g3u0GV!ayCDa^sV=W zsN?szgvaZOPnFRCYJIg|Py~{bf00+lDt-=!fB$q~$wwpDM=&b@Epdl|v>^ibo)+I~ zv1?bxXdOuqDU64Q*I|ftKb%(2!s)7}L<*)&#dzxLP5@GK?kj#WeGIXnOJKK}enb+z zLW(jo`J-%p>grXiI-D?<8vsyN1ZarvsNOiqe{9C??lOFU1X z9pN5?_*=gHTsZ#1YHfzR1C7PE<1x?m=-*j>`GZ zURGe1B#M1_mOZ3Rn=$oCt6k`y>*j#u9p;?t>}IvjKY#XB+pwF57gk>?1SRfS`qIUVN6I>EEye{P+Sp)y@g?2`i#-Ad z?k!Syg&;8V%82pxrGTu?cc9?FEv=dhAFohtft#*?Cg8!`=oxId{pps$y{<4nEXI!% z9^T*sdX3Xkad#OHWG=-_A+aA1V9i6&J_XXfsxIu?;$FUO{8{vr|AGDcPl`KiW^=|w zG;e_PJ7AbN5Jzl!VP}uQnwTg$_*OiLj~Nja{XURy5}sP?=Vi$X3JQeVr9i39GW(lC zE6HT?QYU%pT69b|FE1<0>OD^a+2eaadrKfU8>SsCOC}PDj7hSjq@*(9P|C`z9w>vy z7SY+Dj2{Z*1`|G^LkdpXZ8j(Pd%;#C_Cs>q#sid-u&W1!Fa+a&8s1!nEZ z8Ba8}oA5Cu3K!GsFR>||^6)IDm@qFm{KEkKtj{NTH0=D(G&W`Ox(v&YKk4}wWeGFN zL5x#H^U|u@^S>M*@cH4U0S1ThkI0Jqlwf<-&7gYbMTdVI{9GfRGdx{=&EjHf_!z34 zQ<2;nkgoVnX#Y#FHz8=1CqLtps=?UvQ{4SSX)KJ{NF7<{V~vAWrfFban~wUM`QxqT z24B{Q(Vl$Sr>%!%T|>qVZNW2xTTnt*##l_d$@mkBnY~R*ILqSa(XMcNIguY;QKgw) zkLJCpF71CMxP33MEYhAoWgnJs_j0ofB*7jPKpcFI*WWD6v+D<0aDk z^Nxz~%-lQ6N*Rx>Fxc_?XhKgRE2yJkbGQ!2zej7%#=Q{GLL(g%_Fb&&vS_}v rq-sa01bW^vg>ndrz_2|+h%QQX)lDtoDB)($h2OCU4(~6uJA36nUJ-)W diff --git a/index.html b/index.html index 4497f64..a7656b0 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Design of the Nano-Hexapod and associated Control Architectures - Summary @@ -35,60 +35,66 @@

Table of Contents

+ +
  • 2. Identification of the Micro-Station Dynamics
  • -
  • 4. Multi Body Model +
  • 3. Identification of the Disturbances
  • -
  • 5. Optimal Nano-Hexapod Design +
  • 4. Multi Body Model
  • -
  • 6. Robust Control Architecture +
  • 5. Optimal Nano-Hexapod Design
  • +
  • 6. Robust Control Architecture + +
  • +
  • 7. Further notes
  • @@ -99,7 +105,7 @@ The overall objective is to design a nano-hexapod an the associated control arch

    -To understand the design challenges of such system, a short introduction to Feedback control is provided in Section 1. +To understand the design challenges of such system, a short introduction to Feedback control is provided in Section 1. The mathematical tools (Power Spectral Density, Noise Budgeting, …) that will be used throughout this study are also introduced.

    @@ -108,60 +114,131 @@ The mathematical tools (Power Spectral Density, Noise Budgeting, …) that To be able to develop both the nano-hexapod and the control architecture in an optimal way, we need a good estimation of:

      -
    • the micro-station dynamics (Section 2)
    • -
    • the frequency content of the important source of disturbances in play such as vibration of stages and ground motion (Section 3)
    • +
    • the micro-station dynamics (Section 2)
    • +
    • the frequency content of the important source of disturbances in play such as vibration of stages and ground motion (Section 3)

    We then develop a model of the system that must represent all the important physical effects in play. -Such model is presented in Section 4. +Such model is presented in Section 4.

    A modular model of the nano-hexapod is then included in the system. The effects of the nano-hexapod characteristics on the dynamics are then studied. -Based on that, an optimal choice of the nano-hexapod stiffness is made (Section 5). +Based on that, an optimal choice of the nano-hexapod stiffness is made (Section 5).

    Finally, using the optimally designed nano-hexapod, a robust control architecture is developed. -Simulations are performed to show that this design gives acceptable performance and the required robustness (Section 6). +Simulations are performed to show that this design gives acceptable performance and the required robustness (Section 6).

    -
    -

    1 Feedback Systems and Noise budgeting

    +
    +

    1 Introduction to Feedback Systems and Noise budgeting

    - + +

    + +

    +In this section, we first introduce some basics of feedback systems (Section 1.1). +This should highlight the challenges in terms of combined performance and robustness. +

    + + +

    +In Section 1.2 is introduced the dynamic error budgeting which is a powerful tool that allows to derive the total error in a dynamic system from multiple disturbance sources. +This tool will be widely used throughout this study to both predict the performances and identify the effects that do limit the performances.

    -
    -

    1.1 Simple Feedback System

    +
    +

    1.1 Feedback System

    -We usually analyze dynamical systems in the frequency domain using the Laplace transform. +

    - - -
    -

    classical_feedback_small.png +

    +The use of feedback control as several advantages and pitfalls that are listed below (taken from schmidt14_desig_high_perfor_mechat_revis_edition):

    -

    Figure 1: Figure caption

    -
      -
    • \(y\) is the relative position of the sample with respect to the granite
    • -
    • \(d\) is the disturbances affecting \(y\) (ground motion, vibration of stages)
    • -
    • \(n\) is the noise of the sensor measuring \(y\)
    • -
    • \(r\) is the reference signal, corresponding to the wanted \(y\)
    • -
    • we note \(\epsilon = r - y\) the position error
    • +
    • Advantages: +
        +
      • Reduction of the effect of disturbances: +Disturbances affecting the sample vibrations are observed by the sensor signal, and therefore the feedback controller can compensate for them
      • +
      • Handling of uncertainties: +Feedback controlled systems can also be designed for robustness, which means that the stability and performance requirements are guaranteed even for parameter variation of the controller mechatronics system
      • +
    • +
    • Pitfalls: +
        +
      • Limited reaction speed: +A feedback controller reacts on the difference between the reference signal (wanted motion) and the measurement (actual motion), which means that the error has to occur first before the controller can correct for it. +The limited reaction speed means that the controller will be able to compensate the positioning errors only in some frequency band, called the controller bandwidth
      • +
      • Feedback of noise: +By closing the loop, the sensor noise is also fed back and will induce positioning errors
      • +
      • Can introduce instability: +Feedback control can destabilize a stable plant. +Thus the robustness properties of the feedback system must be carefully guaranteed
      • +
    • +
    +
    + +
    +

    1.1.1 Simplified Feedback Control Diagram for the NASS

    +
    +

    +Let’s consider the block diagram shown in Figure 1 where the signals are: +

    +
      +
    • \(y\): the relative position of the sample with respect to the granite (the quantity we wish to control)
    • +
    • \(d\): the disturbances affecting \(y\) (ground motion, vibration of stages)
    • +
    • \(n\): the noise of the sensor measuring \(y\)
    • +
    • \(r\): the reference signal, corresponding to the wanted \(y\)
    • +
    • \(\epsilon = r - y\): the position error

    +And the dynamical blocks are: +

    +
      +
    • \(G\): representing the dynamics from forces/torques applied by the nano-hexapod to the relative position sample/granite \(y\)
    • +
    • \(G_d\): representing how the disturbances (e.g. ground motion) are affecting the relative position sample/granite \(y\)
    • +
    • \(K\): representing the controller (to be designed)
    • +
    + + +
    +

    classical_feedback_small.png +

    +

    Figure 1: Block Diagram of a simple feedback system

    +
    + +

    +Without the use of feedback (i.e. nano-hexapod), the disturbances will induce a sample motion error equal to: +

    +\begin{equation} + y = G_d d \label{eq:open_loop_error} +\end{equation} +

    +which is out of the specifications (micro-meter range compare to the required \(\approx 10nm\)). +

    + +

    +In the next section, we see how the use of the feedback system permits to lower the effect of the disturbances \(d\) on the sample motion error. +

    +
    +
    + +
    +

    1.1.2 How does the feedback loop is modifying the system behavior?

    +
    +

    +If we write down the position error signal \(\epsilon = r - y\) as a function of the reference signal \(r\), the disturbances \(d\) and the measurement noise \(n\) (using the feedback diagram in Figure 1), we obtain: \[ \epsilon = \frac{1}{1 + GK} r + \frac{GK}{1 + GK} n - \frac{G_d}{1 + GK} d \]

    @@ -172,83 +249,203 @@ We usually note: S &= \frac{1}{1 + GK} \\ T &= \frac{GK}{1 + GK} \end{align} -

    -\(S\) is called the sensibility transfer function and \(T\) the transmissibility transfer function. +where \(S\) is called the sensibility transfer function and \(T\) the transmissibility transfer function.

    -And we have: -\[ \epsilon = S r + T n - G_d S d \] +And the position error can be rewritten as:

    +\begin{equation} + \epsilon = S r + T n - G_d S d \label{eq:closed_loop_error} +\end{equation} +

    -Thus, we usually want \(|S|\) small such that the effect of disturbances are reduced down to acceptable levels and such that the system is able to follow the change of reference with only small tracking errors. -

    - -

    -However, when \(|S|\) is small, \(|T| \approx 1\) and all the sensor noise is transmitted to the position error. -

    - - -
    -

    h-infinity-2-blocs-constrains.png -

    -

    Figure 2: Figure caption

    -
    - -

    -The nano-hexapod characteristics will change both \(G\) and \(G_d\). -

    -
    -
    - -
    -

    1.2 Noise Budgeting

    -
    -
    -
    -

    1.2.1 Power Spectral Density

    -
    -

    -The Power Spectral Density (PSD) \(S_{xx}(f)\) of the time domain \(x(t)\) (in \([m]\)) can be computed using the following equation: -\[ S_{xx}(f) = \frac{1}{f_s} \sum_{m=-\infty}^{\infty} R_{xx}(m) e^{-j 2 \pi m f / f_s} \ \left[\frac{m^2}{\text{Hz}}\right] \] -where +From Eq. \eqref{eq:closed_loop_error} representing the closed-loop system behavior, we can see that:

      -
    • \(f_s\) is the sampling frequency in \([Hz]\)
    • -
    • \(R_{xx}\) is the autocorrelation
    • +
    • the effect of disturbances \(d\) on \(\epsilon\) is multiplied by a factor \(S\) compared to the open-loop case
    • +
    • the measurement noise \(n\) is injected and multiplied by a factor \(T\)
    • +
    + +

    +Ideally, we would like to design the controller \(K\) such that: +

    +
      +
    • \(|S|\) is small to limit the effect of disturbances
    • +
    • \(|T|\) is small to limit the injection of sensor noise
    • +
    + +

    +As shown in the next section, there is a trade-off between the disturbance reduction and the noise injection. +

    +
    +
    + +
    +

    1.1.3 Trade off: Disturbance Reduction / Noise Injection

    +
    +

    +We have from the definition of \(S\) and \(T\) that: +

    +\begin{equation} + S + T = \frac{1}{1 + GK} + \frac{GK}{1 + GK} = 1 +\end{equation} +

    +meaning that we cannot have \(|S|\) and \(|T|\) small at the same time. +

    + +

    +There is therefore a trade-off between the disturbance rejection and the measurement noise filtering. +

    + + +

    +Typical shapes of \(|S|\) and \(|T|\) as a function of frequency are shown in Figure 2. +We can observe that \(|S|\) and \(|T|\) exhibit different behaviors depending on the frequency band: +

    +
      +
    • At low frequency (inside the control bandwidth): +
        +
      • \(|S|\) can be made small and thus the effect of disturbances is reduced
      • +
      • \(|T| \approx 1\) and all the sensor noise is transmitted
      • +
    • +
    • At high frequency (outside the control bandwidth): +
        +
      • \(|S| \approx 1\) and the feedback system does not reduce the effect of disturbances
      • +
      • \(|T|\) is small and thus the sensor noise is filtered
      • +
    • +
    • Near the crossover frequency (between the two frequency bands): +
        +
      • The effect of disturbances is increased
      • +
    +
    +

    h-infinity-2-blocs-constrains.png +

    +

    Figure 2: Typical shapes and constrain of the Sensibility and Transmibility closed-loop transfer functions

    +
    +
    +
    + +
    +

    1.1.4 Trade off: Robustness / Performance

    +

    -The PSD \(S_{xx}(f)\) represents the distribution of the (average) signal power over frequency. + +

    + +

    +As shown in the previous section, the effect of disturbances is reduced inside the control bandwidth. +

    + +

    +Moreover, the slope of \(|S(j\omega)|\) is limited for stability reasons (not explained here), and therefore a large control bandwidth is required to obtain sufficient disturbance rejection at lower frequencies (where the disturbances have large effects). +

    + +

    +The next important question is what effects do limit the attainable control bandwidth? +

    + + +

    +The main issue it that for stability reasons, the behavior of the mechanical system must be known with only small uncertainty in the vicinity of the crossover frequency. +

    + +

    +For mechanical systems, this generally means that control bandwidth should take place before any appearing of flexible dynamics (Right part of Figure 3). +

    + + +
    +

    oomen18_next_gen_loop_gain.png +

    +

    Figure 3: Envisaged developments in motion systems. In traditional motion systems, the control bandwidth takes place in the rigid-body region. In the next generation systemes, flexible dynamics are foreseen to occur within the control bandwidth. oomen18_advan_motion_contr_precis_mechat

    +
    + +

    +This also means that any possible change in the system should have a small impact on the system dynamics in the vicinity of the crossover. +

    + +

    +For the NASS, the possible changes in the system are: +

    +
      +
    • a modification of the payload mass and dynamics
    • +
    • a change of experimental condition: spindle’s rotation speed, position of each micro-station’s stage
    • +
    • a change in the micro-station dynamics (change of mechanical elements, aging effect, …)
    • +
    + +

    +The nano-hexapod and the control architecture have to be developed such that the feedback system remains stable and exhibit acceptable performance for all these possible changes in the system. +

    + +

    +This problem of robustness represent one of the main challenge for the design of the NASS. +

    +
    +
    +
    + +
    +

    1.2 Dynamic error budgeting

    +
    +

    + +

    +

    +The dynamic error budgeting is a powerful tool to study the effect of multiple error sources and to see how the feedback system does reduce the effect +

    + +

    +To understand how to use and understand it, the Power Spectral Density and the Cumulative Power Spectrum are first introduced. +Then, is shown how does multiple error sources are combined and modified by dynamical systems. +

    + +

    +Finally, +

    +
    + +
    +

    1.2.1 Power Spectral Density

    +
    +

    +The Power Spectral Density (PSD) \(S_{xx}(f)\) of the time domain signal \(x(t)\) is defined as the Fourier transform of the autocorrelation function: +\[ S_{xx}(\omega) = \int_{-\infty}^{\infty} R_{xx}(\tau) e^{-j \omega \tau} d\tau \ \frac{[\text{unit of } x]^2}{\text{Hz}} \] +

    + +

    +The PSD \(S_{xx}(\omega)\) represents the distribution of the (average) signal power over frequency.

    Thus, the total power in the signal can be obtained by integrating these infinitesimal contributions, the Root Mean Square (RMS) value of the signal \(x(t)\) is then:

    \begin{equation} - x_{\text{rms}} = \sqrt{\int_{0}^{\infty} S_{xx}(f) df} \ [m,\text{rms}] + x_{\text{rms}} = \sqrt{\int_{0}^{\infty} S_{xx}(\omega) d\omega} \end{equation}

    -One can also integrate the infinitesimal power \(S_{xx}(f)df\) over a finite frequency band to obtain the power of the signal \(x\) in that frequency band: +One can also integrate the infinitesimal power \(S_{xx}(\omega)d\omega\) over a finite frequency band to obtain the power of the signal \(x\) in that frequency band:

    \begin{equation} - P_{f_1,f_2} = \int_{f_1}^{f_2} S_{xx}(f) df \quad [m^2] + P_{f_1,f_2} = \int_{f_1}^{f_2} S_{xx}(\omega) d\omega \quad [\text{unit of } x]^2 \end{equation}
    -
    -

    1.2.2 Cumulative Power Spectrum

    +
    +

    1.2.2 Cumulative Power Spectrum

    The Cumulative Power Spectrum is the cumulative integral of the Power Spectral Density starting from \(0\ \text{Hz}\) with increasing frequency:

    \begin{equation} - CPS_x(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit}^2] + CPS_x(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2 \end{equation}

    The Cumulative Power Spectrum taken at frequency \(f\) thus represent the power in the signal in the frequency band \(0\) to \(f\). @@ -259,7 +456,7 @@ The Cumulative Power Spectrum taken at frequency \(f\) thus represent the power An alternative definition of the Cumulative Power Spectrum can be used where the PSD is integrated from \(f\) to \(\infty\):

    \begin{equation} - CPS_x(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit}^2] + CPS_x(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2 \end{equation}

    And thus \(CPS_x(f)\) represents the power in the signal \(x\) for frequencies above \(f\). @@ -267,22 +464,23 @@ And thus \(CPS_x(f)\) represents the power in the signal \(x\) for frequencies a

    -The Cumulative Power Spectrum can be used to determine in which frequency band the effect of disturbances should be reduced and the approximated required control bandwidth in order to obtained some specified vibration amplitude. +The Cumulative Power Spectrum will be used to determine in which frequency band the effect of disturbances should be reduced, and thus the approximate required control bandwidth.

    -
    -

    1.2.3 Modification of a signal’s PSD when going through an LTI system

    +
    +

    1.2.3 Modification of a signal’s PSD when going through an LTI system

    -Let’s consider a signal \(u\) with a PSD \(S_{uu}\) going through a LTI system \(G(s)\) that outputs a signal \(y\) with a PSD (Figure 3). +Let’s consider a signal \(u\) with a PSD \(S_{uu}\) going through a LTI system \(G(s)\) that outputs a signal \(y\) with a PSD (Figure 4).

    -
    +

    psd_lti_system.png

    +

    Figure 4: LTI dynamical system \(G(s)\) with input signal \(u\) and output signal \(y\)

    @@ -294,135 +492,73 @@ The Power Spectral Density of the output signal \(y\) can be computed using:

    -
    -

    1.2.4 PSD of combined signals

    +
    +

    1.2.4 PSD of combined signals

    -Let’s consider a signal \(y\) that is the sum of two uncorrelated signals \(u\) and \(v\). +Let’s consider a signal \(y\) that is the sum of two uncorrelated signals \(u\) and \(v\) (Figure 5).

    -We have that the PSD of \(y\) is equal to sum of the PSD and \(u\) and the PSD of \(v\): +We have that the PSD of \(y\) is equal to sum of the PSD and \(u\) and the PSD of \(v\) (can be easily shown from the definition of the PSD): \[ S_{yy} = S_{uu} + S_{vv} \]

    -
    +

    psd_sum.png

    +

    Figure 5: \(y\) as the sum of two signals \(u\) and \(v\)

    -
    -

    1.2.5 Dynamic Noise Budgeting

    +
    +

    1.2.5 Dynamic Noise Budgeting

    -Let’s consider the Feedback architecture, -

    - -

    -The position error \(\epsilon\) is equal to: +Let’s consider the Feedback architecture in Figure 1 where the position error \(\epsilon\) is equal to: \[ \epsilon = S r + T n - G_d S d \]

    -If we suppose that the signals \(r\), \(n\) and \(d\) are uncorrelated, the PSD of \(\epsilon\) is: +If we suppose that the signals \(r\), \(n\) and \(d\) are uncorrelated (which is a good approximation in our case), the PSD of \(\epsilon\) is: \[ S_{\epsilon \epsilon}(\omega) = |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) \]

    -And the RMS residual motion is equal to: +And we can compute the RMS value of the residual motion using:

    \begin{align*} \epsilon_\text{rms} &= \sqrt{ \int_0^\infty S_{\epsilon\epsilon}(\omega) d\omega} \\ - &= \sqrt{ \int_0^\infty |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) d\omega } + &= \sqrt{ \int_0^\infty \Big( |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) \Big) d\omega } \end{align*} +

    -To estimate the PSD of the position error \(\epsilon\) and thus the RMS residual motion, we need: +To estimate the PSD of the position error \(\epsilon\) and thus the RMS residual motion (in closed-loop), we need to determine:

    • The Power Spectral Densities of the signals affecting the system:
        -
      • \(S_{rr}\)
      • -
      • \(S_{nn}\)
      • -
      • \(S_{dd}\)
      • +
      • \(S_{dd}\): disturbances, this will be done in Section 3
      • +
      • \(S_{nn}\): sensor noise, this can be estimated from the sensor data-sheet
      • +
      • \(S_{rr}\):
    • -
    • The dynamics of the system \(G\), \(G_d\) and the controller \(K\) (or alternatively \(S\), \(T\) and \(G_d\))
    • +
    • The dynamics of the complete system comprising the micro-station and the nano-hexapod: \(G\), \(G_d\). +To do so, we need to identify the dynamics of the micro-station (Section 2), include this dynamics in a model (Section 4) and add a model of the nano-hexapod to the model (Section 5)
    • +
    • The controller \(K\) that will be designed in Section 6
    - -
    -

    1.3 Trade off Robustness / Performance

    -
    -

    -If we want high level of performance, the experimental conditions should be carefully controlled. -

    - - -
    -

    oomen18_next_gen_loop_gain.png -

    -

    Figure 5: Envisaged developments in motion systems. In traditional motion systems, the control bandwidth takes place in the rigid-body region. In the next generation systemes, flexible dynamics are foreseen to occur within the control bandwidth. oomen18_advan_motion_contr_precis_mechat

    -

    -Limitation of feedback control: -

    -
      -
    • bandwidth is limited at a frequency where the behavior of the system is not known
    • -
    - -

    -Predictible system. -

    - -

    -For instance, ASML, everything is calibrated (wafer, some size, mass, etc…) -

    - -

    -Here, the main difficulty is that we want a very high performance system that is robust to change of: -

    -
      -
    • Micro Station Configuration: position of the stages, change of on stage
    • -
    • Payload mass and dynamics
    • -
    • Spindle’s rotation speed
    • -
    -
    -
    - -
    -

    1.4 Sensibility Transfer Function and Control Bandwidth

    -
    -

    -When applying feedback in a system, it is much more convenient to look at things in the frequency domain. -

    - - -
      -
    • [ ] Add a
    • -
    - -

    -we will generally decrease the effect of the disturbances -

    - -
      -
    • [ ] Find the citation where it is said that the bandwidth is the consequence of the wanted disturbance rejection at some lower frequency
    • -
    -
    -
    -
    - -
    -

    2 Identification of the Micro-Station Dynamics

    +
    +

    2 Identification of the Micro-Station Dynamics

    - +

    https://tdehaeze.github.io/meas-analysis/ @@ -437,8 +573,8 @@ The obtained dynamics will allows us to compare the dynamics of the model.

    -
    -

    2.1 Setup

    +
    +

    2.1 Setup

    In order to perform to Modal Analysis and to obtain first a response model, the following devices were used: @@ -453,13 +589,13 @@ In order to perform to Modal Analysis and to obtain first a response mode The measurement thus consists of:

      -
    • Exciting the structure at the same location with the Hammer (Figure 7)
    • +
    • Exciting the structure at the same location with the Hammer (Figure 7)
    • Move the accelerometers to measure all the DOF of the structure. The position of the accelerometers are:
      • 4 on the first granite
      • 4 on the second granite
      • -
      • 4 on top of the translation stage (figure 6)
      • +
      • 4 on top of the translation stage (figure 6)
      • 4 on top of the tilt stage
      • 3 on top of the spindle
      • 4 on top of the hexapod
      • @@ -471,7 +607,7 @@ In total, 69 degrees of freedom are measured (23 tri axis accelerometers).

        -
        +

        accelerometers_ty_overview.jpg

        Figure 6: Figure caption

        @@ -479,7 +615,7 @@ In total, 69 degrees of freedom are measured (23 tri axis accelerometers). -
        +

        hammer_z.gif

        Figure 7: Figure caption

        @@ -487,8 +623,8 @@ In total, 69 degrees of freedom are measured (23 tri axis accelerometers).
        -
        -

        2.2 Results

        +
        +

        2.2 Results

        From the measurements, we obtain @@ -501,14 +637,14 @@ From the measurements, we obtain

      -
      +

      mode1.gif

      Figure 8: Figure caption

      -
      +

      mode6.gif

      Figure 9: Figure caption

      @@ -516,8 +652,8 @@ From the measurements, we obtain
      -
      -

      2.3 Conclusion

      +
      +

      2.3 Conclusion

      The reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DOF) to 36 (6 solid bodies with 6 DOF) seems to work well. @@ -530,11 +666,11 @@ This confirms the fact that the stages are indeed behaving as a solid body in th

      -
      -

      3 Identification of the Disturbances

      +
      +

      3 Identification of the Disturbances

      - +

      https://tdehaeze.github.io/meas-analysis/ @@ -558,22 +694,22 @@ The problem are on the high frequency disturbances

      -
      -

      3.1 Ground Motion

      +
      +

      3.1 Ground Motion

      - +

      -
      -

      3.2 Stage Vibration - Effect of Control systems

      +
      +

      3.2 Stage Vibration - Effect of Control systems

      - +

      @@ -589,11 +725,11 @@ Control system of each stage has been tested

      -
      -

      3.3 Stage Vibration - Effect of Motion

      +
      +

      3.3 Stage Vibration - Effect of Motion

      - +

      @@ -606,11 +742,11 @@ We consider:

      -
      -

      3.4 Sum of all disturbances

      +
      +

      3.4 Sum of all disturbances

      -
      +

      dist_effect_relative_motion.png

      Figure 10: Amplitude Spectral Density fo the motion error due to disturbances

      @@ -618,7 +754,7 @@ We consider: -
      +

      dist_effect_relative_motion_cas.png

      Figure 11: Cumulative Amplitude Spectrum of the motion error due to disturbances

      @@ -631,8 +767,8 @@ Expected required bandwidth
      -
      -

      3.5 Better measurement of the effect of disturbances

      +
      +

      3.5 Better measurement of the effect of disturbances

      Here, the measurement were made with inertial sensors. @@ -659,16 +795,16 @@ Detector Requirement:

      -
      -

      3.6 Conclusion

      +
      +

      3.6 Conclusion

      -
      -

      4 Multi Body Model

      +
      +

      4 Multi Body Model

      - +

      https://tdehaeze.github.io/nass-simscape/ @@ -679,8 +815,8 @@ Multi-Body model

      -
      -

      4.1 Validity of the model

      +
      +

      4.1 Validity of the model

      The mass/inertia of each stage is automatically computed from the geometry and the density of the materials. @@ -704,7 +840,7 @@ Comparison model - measurements : +

      identification_comp_top_stages.png

      Figure 12: Figure caption

      @@ -712,8 +848,8 @@ Comparison model - measurements :
      -

      4.2 Wanted position of the sample and position error

      +
      +

      4.2 Wanted position of the sample and position error

      From the reference position of each stage, we can compute the wanted pose of the sample with respect to the granite. @@ -725,7 +861,7 @@ Then, from the measurement of the metrology corresponding to the position of the

      -
      +

      control-schematic-nass.png

      Figure 13: Figure caption

      @@ -737,8 +873,8 @@ Measurement of the sample’s position - conversion of positioning error in
      -
      -

      4.3 Simulation of Experiments

      +
      +

      4.3 Simulation of Experiments

      Now that the @@ -757,11 +893,11 @@ We can perform simulation of experiments.

      -14 +14

      -
      +

      exp_scans_rz_dist.png

      Figure 14: Position error of the Sample with respect to the granite during a Tomography Experiment with included disturbances

      @@ -769,8 +905,8 @@ We can perform simulation of experiments.
      -
      -

      4.4 Conclusion

      +
      +

      4.4 Conclusion

      @@ -787,11 +923,11 @@ Simulation of experiments to validate performance.

      -
      -

      5 Optimal Nano-Hexapod Design

      +
      +

      5 Optimal Nano-Hexapod Design

      - +

      As explain before, the nano-hexapod properties (mass, stiffness, architecture, …) will influence: @@ -811,12 +947,12 @@ We which here to choose the nano-hexapod properties such that:

    -
    -

    5.1 Optimal Stiffness to reduce the effect of disturbances

    +
    +

    5.1 Optimal Stiffness to reduce the effect of disturbances

    -
    -

    5.2 Optimal Stiffness

    +
    +

    5.2 Optimal Stiffness

    The goal is to design a system that is robust. @@ -887,8 +1023,8 @@ Effect of Nano-hexapod stiffness on the Sensibility to disturbances: -

    5.3 Sensors to be included

    +
    +

    5.3 Sensors to be included

    Ways to damp: @@ -913,22 +1049,22 @@ Sensors to be included:

    -
    -

    6 Robust Control Architecture

    +
    +

    6 Robust Control Architecture

    -
    -

    6.1 Simulation of Tomography Experiments

    +
    +

    6.1 Simulation of Tomography Experiments

    - +

      @@ -941,15 +1077,39 @@ Sensors to be included:
    -
    -

    6.2 Conclusion

    +
    +

    6.2 Conclusion

    +
    +
    +
    +

    7 Further notes

    +
    +

    +Soft granite +

    + +

    +Sensible to detector motion? +

    + +

    +Common metrology frame for the nano-focusing optics and the measurement of the sample position? +

    + +

    +Cable forces? +

    + +

    +Slip-Ring noise? +

    Date: 04-2020

    Author: Thomas Dehaeze

    -

    Created: 2020-04-24 ven. 10:04

    +

    Created: 2020-04-24 ven. 18:43

    diff --git a/index.org b/index.org index 92beec7..bcb1a42 100644 --- a/index.org +++ b/index.org @@ -61,7 +61,7 @@ Simulations are performed to show that this design gives acceptable performance * Introduction to Feedback Systems and Noise budgeting <> -In this section, we first introduce some basics of feedback systems (Section [[sec:feedback]]). +In this section, we first introduce some basics of *feedback systems* (Section [[sec:feedback]]). This should highlight the challenges in terms of combined performance and robustness. @@ -72,37 +72,35 @@ This tool will be widely used throughout this study to both predict the performa <> *** Introduction :ignore: +The use of feedback control as several advantages and pitfalls that are listed below (taken from cite:schmidt14_desig_high_perfor_mechat_revis_edition): -From cite:schmidt14_desig_high_perfor_mechat_revis_edition: +- *Advantages*: + - *Reduction of the effect of disturbances*: + Disturbances affecting the sample vibrations are observed by the sensor signal, and therefore the feedback controller can compensate for them + - *Handling of uncertainties*: + Feedback controlled systems can also be designed for /robustness/, which means that the stability and performance requirements are guaranteed even for parameter variation of the controller mechatronics system +- *Pitfalls*: + - *Limited reaction speed*: + A feedback controller reacts on the difference between the reference signal (wanted motion) and the measurement (actual motion), which means that the error has to occur first /before/ the controller can correct for it. + The limited reaction speed means that the controller will be able to compensate the positioning errors only in some frequency band, called the controller /bandwidth/ + - *Feedback of noise*: + By closing the loop, the sensor noise is also fed back and will induce positioning errors + - *Can introduce instability*: + Feedback control can destabilize a stable plant. + Thus the /robustness/ properties of the feedback system must be carefully guaranteed -Feedback control has the following advantages: -- *Reduction of the effect of disturbances*: - Disturbances affecting the sample vibrations are observed by the sensor signal, and therefore the feedback controller can compensate for them -- *Handling of uncertainties*: - Feedback controlled systems can also be designed for /robustness/, which means that the stability and performance requirements are guaranteed even for parameter variation of the controller mechatronics system - -But it also has some pitfalls: -- *Limited reaction speed*: - A feedback controller reacts on the difference between the reference signal (wanted motion) and the measurement (actual motion), which means that the error has to occur first before the controller can correct for it. - The limited reaction speed means that the controller will be able to compensate the positioning errors only in some frequency band, called the *controller bandwidth* -- *Feedback of noise*: - By closing the loop, the sensor noise is also fed back and will introduce positioning errors -- *Can introduce instability*: - Feedback control can destabilize a stable plant. - Thus the /robustness/ properties of the feedback system must be carefully guaranteed - -*** Introduction to Feedback Control +*** Simplified Feedback Control Diagram for the NASS Let's consider the block diagram shown in Figure [[fig:classical_feedback_small]] where the signals are: -- $y$ the relative position of the sample with respect to the granite (the quantity we wish to control) -- $d$ the disturbances affecting $y$ (ground motion, vibration of stages) -- $n$ the noise of the sensor measuring $y$ -- $r$ the reference signal, corresponding to the wanted $y$ -- $\epsilon = r - y$ the position error +- $y$: the relative position of the sample with respect to the granite (the quantity we wish to control) +- $d$: the disturbances affecting $y$ (ground motion, vibration of stages) +- $n$: the noise of the sensor measuring $y$ +- $r$: the reference signal, corresponding to the wanted $y$ +- $\epsilon = r - y$: the position error And the dynamical blocks are: -- $G$ representing the dynamics from forces/torques applied by the nano-hexapod to the relative position sample/granite $y$ -- $G_d$ representing the dynamics from the disturbances (e.g. ground motion) to the relative position sample/granite $y$ -- $K$ representing the controller to be designed +- $G$: representing the dynamics from forces/torques applied by the nano-hexapod to the relative position sample/granite $y$ +- $G_d$: representing how the disturbances (e.g. ground motion) are affecting the relative position sample/granite $y$ +- $K$: representing the controller (to be designed) #+begin_src latex :file classical_feedback_small.pdf \begin{tikzpicture} @@ -131,9 +129,16 @@ And the dynamical blocks are: #+RESULTS: [[file:figs/classical_feedback_small.png]] +Without the use of feedback (i.e. nano-hexapod), the disturbances will induce a sample motion error equal to: +\begin{equation} + y = G_d d \label{eq:open_loop_error} +\end{equation} +which is out of the specifications (micro-meter range compare to the required $\approx 10nm$). + +In the next section, we see how the use of the feedback system permits to lower the effect of the disturbances $d$ on the sample motion error. + *** How does the feedback loop is modifying the system behavior? - - +If we write down the position error signal $\epsilon = r - y$ as a function of the reference signal $r$, the disturbances $d$ and the measurement noise $n$ (using the feedback diagram in Figure [[fig:classical_feedback_small]]), we obtain: \[ \epsilon = \frac{1}{1 + GK} r + \frac{GK}{1 + GK} n - \frac{G_d}{1 + GK} d \] We usually note: @@ -141,24 +146,49 @@ We usually note: S &= \frac{1}{1 + GK} \\ T &= \frac{GK}{1 + GK} \end{align} +where $S$ is called the sensibility transfer function and $T$ the transmissibility transfer function. -$S$ is called the sensibility transfer function and $T$ the transmissibility transfer function. -We can easily see that -\[ S + T = 1 \] -and thus, we cannot have $S$ and $T$ small at the same time. +And the position error can be rewritten as: +\begin{equation} + \epsilon = S r + T n - G_d S d \label{eq:closed_loop_error} +\end{equation} -And we have: -\[ \epsilon = S r + T n - G_d S d \] +From Eq. eqref:eq:closed_loop_error representing the closed-loop system behavior, we can see that: +- the effect of disturbances $d$ on $\epsilon$ is multiplied by a factor $S$ compared to the open-loop case +- the measurement noise $n$ is injected and multiplied by a factor $T$ -Thus, we usually want $|S|$ small such that the effect of disturbances are reduced down to acceptable levels and such that the system is able to follow the change of reference with only small tracking errors. +Ideally, we would like to design the controller $K$ such that: +- $|S|$ is small to limit the effect of disturbances +- $|T|$ is small to limit the injection of sensor noise -However, when $|S|$ is small, $|T| \approx 1$ and all the sensor noise is transmitted to the position error. +As shown in the next section, there is a trade-off between the disturbance reduction and the noise injection. + +*** Trade off: Disturbance Reduction / Noise Injection +We have from the definition of $S$ and $T$ that: +\begin{equation} + S + T = \frac{1}{1 + GK} + \frac{GK}{1 + GK} = 1 +\end{equation} +meaning that we cannot have $|S|$ and $|T|$ small at the same time. + +There is therefore a *trade-off between the disturbance rejection and the measurement noise filtering*. + + +Typical shapes of $|S|$ and $|T|$ as a function of frequency are shown in Figure [[fig:h-infinity-2-blocs-constrains]]. +We can observe that $|S|$ and $|T|$ exhibit different behaviors depending on the frequency band: +- *At low frequency* (inside the control bandwidth): + - $|S|$ can be made small and thus the effect of disturbances is reduced + - $|T| \approx 1$ and all the sensor noise is transmitted +- *At high frequency* (outside the control bandwidth): + - $|S| \approx 1$ and the feedback system does not reduce the effect of disturbances + - $|T|$ is small and thus the sensor noise is filtered +- *Near the crossover frequency* (between the two frequency bands): + - The effect of disturbances is increased #+begin_src latex :file h-infinity-2-blocs-constrains.pdf \begin{tikzpicture} \begin{scope}[shift={(0, 0)}] - \draw[dashed, fill=white] (-0.5, -2.7) rectangle (5.5, 1.4); + \draw[dashed, fill=white] (-0.5, -3.4) rectangle (5.5, 1.4); \draw[] (2.5, 1.0) node[]{$\left| S(j\omega) \right|$}; \draw[fill=blue!20] (-0.2, -2.5) rectangle (1.4, 0.5); \draw[] (0.6, -0.5) node[]{$\sim \left| GK \right|^{-1}$}; @@ -166,11 +196,15 @@ However, when $|S|$ is small, $|T| \approx 1$ and all the sensor noise is transm \draw[] (4.5, -0.5) node[]{$\sim 1$}; \draw[fill=red!20] (2.5, 0.15) circle (0.15); \draw[dashed] (-0.4, 0) -- (5.4, 0); - \draw [] (0,-2) to[out=45,in=180+45] (2,0) to[out=45,in=180] (2.5,0.3) to[out=0,in=180] (3.5,0) to[out=0,in=180] (5, 0); + \draw [] (0,-2) to[out=45,in=180+45] (2,0) to[out=45,in=180] (2.5,0.3) + to[out=0,in=180] (3.5,0) to[out=0,in=180] (5, 0); + \draw[<->] (-0.2, -2.8) -- node[midway, below, align=center]{\footnotesize Low Freq. } (1.8, -2.8); + \draw[<->] (1.8, -2.8) -- node[midway, below, align=center]{\footnotesize Cross Over} (3.2, -2.8); + \draw[<->] (3.2, -2.8) -- node[midway, below, align=center]{\footnotesize High Freq.} (5.2, -2.8); \end{scope} \begin{scope}[shift={(6.4, 0)}] - \draw[dashed, fill=white] (-0.5, -2.7) rectangle (5.5, 1.4); + \draw[dashed, fill=white] (-0.5, -3.4) rectangle (5.5, 1.4); \draw[] (2.5, 1.0) node[]{$\left| T(j\omega) \right|$}; \draw[fill=red!20] (-0.2, -2.5) rectangle (1.4, 0.5); \draw[] (0.6, -0.5) node[]{$\sim 1$}; @@ -179,85 +213,92 @@ However, when $|S|$ is small, $|T| \approx 1$ and all the sensor noise is transm \draw[fill=red!20] (2.5, 0.15) circle (0.15); \draw[dashed] (-0.4, 0) -- (5.4, 0); \draw [] (0,0) to[out=0,in=180] (1.5,0) to[out=0,in=180] (2.5,0.3) to[out=0,in=-45] (3,0) to[out=-45,in=180-45] (5, -2); + \draw[<->] (-0.2, -2.8) -- node[midway, below, align=center]{\footnotesize Low Freq. } (1.8, -2.8); + \draw[<->] (1.8, -2.8) -- node[midway, below, align=center]{\footnotesize Cross Over} (3.2, -2.8); + \draw[<->] (3.2, -2.8) -- node[midway, below, align=center]{\footnotesize High Freq.} (5.2, -2.8); \end{scope} \end{tikzpicture} #+end_src #+name: fig:h-infinity-2-blocs-constrains -#+caption: Typical shape and constrain of the Sensibility and Transmibility closed-loop transfer functions +#+caption: Typical shapes and constrain of the Sensibility and Transmibility closed-loop transfer functions #+RESULTS: [[file:figs/h-infinity-2-blocs-constrains.png]] -The nano-hexapod characteristics will change both $G$ and $G_d$. - -*** Sensibility Transfer Function and Control Bandwidth -When applying feedback in a system, it is much more convenient to look at things in the frequency domain. - -We will generally decrease the effect of the disturbances - -The bandwidth is the consequence of the wanted disturbance rejection at some lower frequency - -*** Trade off Robustness / Performance +*** Trade off: Robustness / Performance <> -If we want high level of performance, the experimental conditions should be carefully controlled. + +As shown in the previous section, the effect of disturbances is reduced /inside/ the control bandwidth. + +Moreover, the slope of $|S(j\omega)|$ is limited for stability reasons (not explained here), and therefore a large control bandwidth is required to obtain sufficient disturbance rejection at lower frequencies (where the disturbances have large effects). + +The next important question is *what effects do limit the attainable control bandwidth?* + + +The main issue it that for stability reasons, *the behavior of the mechanical system must be known with only small uncertainty in the vicinity of the crossover frequency*. + +For mechanical systems, this generally means that control bandwidth should take place before any appearing of flexible dynamics (Right part of Figure [[fig:oomen18_next_gen_loop_gain]]). #+name: fig:oomen18_next_gen_loop_gain #+caption: Envisaged developments in motion systems. In traditional motion systems, the control bandwidth takes place in the rigid-body region. In the next generation systemes, flexible dynamics are foreseen to occur within the control bandwidth. cite:oomen18_advan_motion_contr_precis_mechat [[file:figs/oomen18_next_gen_loop_gain.png]] -Limitation of feedback control: -- bandwidth is limited at a frequency where the behavior of the system is not known +This also means that *any possible change in the system should have a small impact on the system dynamics in the vicinity of the crossover*. -Predictible system. +For the NASS, the possible changes in the system are: +- a modification of the payload mass and dynamics +- a change of experimental condition: spindle's rotation speed, position of each micro-station's stage +- a change in the micro-station dynamics (change of mechanical elements, aging effect, ...) -For instance, ASML, everything is calibrated (wafer, some size, mass, etc...) +The nano-hexapod and the control architecture have to be developed such that the feedback system remains stable and exhibit acceptable performance for all these possible changes in the system. -Here, the main difficulty is that we want a very high performance system that is robust to change of: -- Micro Station Configuration: position of the stages, change of on stage -- Payload mass and dynamics -- Spindle's rotation speed +This problem of *robustness* represent one of the main challenge for the design of the NASS. + +# High performance mechatronics systems (e.g. Wafer stages, or Atomic Force Microscopes) are usually developed in such a way that their mechanical behavior is extremely well known up to high frequency and such that the experimental conditions are usually be carefully controlled. ** Dynamic error budgeting <> *** Introduction :ignore: +The dynamic error budgeting is a powerful tool to study the effect of multiple error sources and to see how the feedback system does reduce the effect + +To understand how to use and understand it, the Power Spectral Density and the Cumulative Power Spectrum are first introduced. +Then, is shown how does multiple error sources are combined and modified by dynamical systems. + +Finally, *** Power Spectral Density -The *Power Spectral Density* (PSD) $S_{xx}(f)$ of the time domain $x(t)$ (in $[m]$) can be computed using the following equation: -\[ S_{xx}(f) = \frac{1}{f_s} \sum_{m=-\infty}^{\infty} R_{xx}(m) e^{-j 2 \pi m f / f_s} \ \left[\frac{m^2}{\text{Hz}}\right] \] -where -- $f_s$ is the sampling frequency in $[Hz]$ -- $R_{xx}$ is the autocorrelation +The *Power Spectral Density* (PSD) $S_{xx}(f)$ of the time domain signal $x(t)$ is defined as the Fourier transform of the autocorrelation function: +\[ S_{xx}(\omega) = \int_{-\infty}^{\infty} R_{xx}(\tau) e^{-j \omega \tau} d\tau \ \frac{[\text{unit of } x]^2}{\text{Hz}} \] - -The PSD $S_{xx}(f)$ represents the distribution of the (average) signal power over frequency. +The PSD $S_{xx}(\omega)$ represents the *distribution of the (average) signal power over frequency*. Thus, the total power in the signal can be obtained by integrating these infinitesimal contributions, the Root Mean Square (RMS) value of the signal $x(t)$ is then: \begin{equation} - x_{\text{rms}} = \sqrt{\int_{0}^{\infty} S_{xx}(f) df} \ [m,\text{rms}] + x_{\text{rms}} = \sqrt{\int_{0}^{\infty} S_{xx}(\omega) d\omega} \end{equation} -One can also integrate the infinitesimal power $S_{xx}(f)df$ over a finite frequency band to obtain the power of the signal $x$ in that frequency band: +One can also integrate the infinitesimal power $S_{xx}(\omega)d\omega$ over a finite frequency band to obtain the power of the signal $x$ in that frequency band: \begin{equation} - P_{f_1,f_2} = \int_{f_1}^{f_2} S_{xx}(f) df \quad [m^2] + P_{f_1,f_2} = \int_{f_1}^{f_2} S_{xx}(\omega) d\omega \quad [\text{unit of } x]^2 \end{equation} *** Cumulative Power Spectrum The *Cumulative Power Spectrum* is the cumulative integral of the Power Spectral Density starting from $0\ \text{Hz}$ with increasing frequency: \begin{equation} - CPS_x(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit}^2] + CPS_x(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2 \end{equation} The Cumulative Power Spectrum taken at frequency $f$ thus represent the power in the signal in the frequency band $0$ to $f$. An alternative definition of the Cumulative Power Spectrum can be used where the PSD is integrated from $f$ to $\infty$: \begin{equation} - CPS_x(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit}^2] + CPS_x(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2 \end{equation} And thus $CPS_x(f)$ represents the power in the signal $x$ for frequencies above $f$. -The Cumulative Power Spectrum can be used to determine in which frequency band the effect of disturbances should be reduced and the approximated required control bandwidth in order to obtained some specified vibration amplitude. +The Cumulative Power Spectrum will be used to determine in which frequency band the effect of disturbances should be reduced, and thus the approximate required control bandwidth. *** Modification of a signal's PSD when going through an LTI system Let's consider a signal $u$ with a PSD $S_{uu}$ going through a LTI system $G(s)$ that outputs a signal $y$ with a PSD (Figure [[fig:psd_lti_system]]). @@ -272,7 +313,7 @@ Let's consider a signal $u$ with a PSD $S_{uu}$ going through a LTI system $G(s) #+end_src #+NAME: fig:psd_lti_system -#+CAPTION: +#+CAPTION: LTI dynamical system $G(s)$ with input signal $u$ and output signal $y$ #+RESULTS: [[file:figs/psd_lti_system.png]] @@ -282,9 +323,9 @@ The Power Spectral Density of the output signal $y$ can be computed using: \end{equation} *** PSD of combined signals -Let's consider a signal $y$ that is the sum of two *uncorrelated* signals $u$ and $v$. +Let's consider a signal $y$ that is the sum of two *uncorrelated* signals $u$ and $v$ (Figure [[fig:psd_sum]]). -We have that the PSD of $y$ is equal to sum of the PSD and $u$ and the PSD of $v$: +We have that the PSD of $y$ is equal to sum of the PSD and $u$ and the PSD of $v$ (can be easily shown from the definition of the PSD): \[ S_{yy} = S_{uu} + S_{vv} \] #+begin_src latex :file psd_sum.pdf @@ -298,30 +339,33 @@ We have that the PSD of $y$ is equal to sum of the PSD and $u$ and the PSD of $v \end{tikzpicture} #+end_src +#+name: fig:psd_sum +#+caption: $y$ as the sum of two signals $u$ and $v$ #+RESULTS: [[file:figs/psd_sum.png]] *** Dynamic Noise Budgeting -Let's consider the Feedback architecture, - -The position error $\epsilon$ is equal to: +Let's consider the Feedback architecture in Figure [[fig:classical_feedback_small]] where the position error $\epsilon$ is equal to: \[ \epsilon = S r + T n - G_d S d \] -If we suppose that the signals $r$, $n$ and $d$ are *uncorrelated*, the PSD of $\epsilon$ is: +If we suppose that the signals $r$, $n$ and $d$ are *uncorrelated* (which is a good approximation in our case), the PSD of $\epsilon$ is: \[ S_{\epsilon \epsilon}(\omega) = |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) \] -And the RMS residual motion is equal to: +And we can compute the RMS value of the residual motion using: \begin{align*} \epsilon_\text{rms} &= \sqrt{ \int_0^\infty S_{\epsilon\epsilon}(\omega) d\omega} \\ - &= \sqrt{ \int_0^\infty |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) d\omega } + &= \sqrt{ \int_0^\infty \Big( |S(j\omega)|^2 S_{rr}(\omega) + |T(j\omega)|^2 S_{nn}(\omega) + |G_d(j\omega) S(j\omega)|^2 S_{dd}(\omega) \Big) d\omega } \end{align*} -To estimate the PSD of the position error $\epsilon$ and thus the RMS residual motion, we need: + +To estimate the PSD of the position error $\epsilon$ and thus the RMS residual motion (in closed-loop), we need to determine: - The Power Spectral Densities of the signals affecting the system: - - $S_{rr}$ - - $S_{nn}$ - - $S_{dd}$ -- The dynamics of the system $G$, $G_d$ and the controller $K$ (or alternatively $S$, $T$ and $G_d$) + - $S_{dd}$: disturbances, this will be done in Section [[sec:identification_disturbances]] + - $S_{nn}$: sensor noise, this can be estimated from the sensor data-sheet + - $S_{rr}$: which is a deterministic signal that we choose. For simple tomography experiment, we can consider that it is equal to $0$ +- The dynamics of the complete system comprising the micro-station and the nano-hexapod: $G$, $G_d$. + To do so, we need to identify the dynamics of the micro-station (Section [[sec:micro_station_dynamics]]), include this dynamics in a model (Section [[sec:multi_body_model]]) and add a model of the nano-hexapod to the model (Section [[sec:nano_hexapod_design]]) +- The controller $K$ that will be designed in Section [[sec:robust_control_architecture]] * Identification of the Micro-Station Dynamics <> @@ -594,6 +638,10 @@ https://tdehaeze.github.io/nass-simscape/optimal_stiffness_control.html * Further notes Soft granite -nano-focusing lenses +Sensible to detector motion? -Detector +Common metrology frame for the nano-focusing optics and the measurement of the sample position? + +Cable forces? + +Slip-Ring noise?