From 7b2c727900452ecefe3ca78fe4d56140d15af53e Mon Sep 17 00:00:00 2001 From: Andy Snawerdt <Andy Snawerdt> Date: Sat, 4 Feb 2017 16:45:51 -0600 Subject: [PATCH] Updated model parameters Kd, Kt, rx, ry, and rz --- controls/model/modelParameters.m | 10 +++++----- .../ModelingParameters.docx | Bin 14315 -> 14497 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/controls/model/modelParameters.m b/controls/model/modelParameters.m index 103e14e9b..9dc4ceacd 100644 --- a/controls/model/modelParameters.m +++ b/controls/model/modelParameters.m @@ -10,11 +10,11 @@ Kh = 0; % Rotor in-plane drag constant %Kd = 1.8087e-07; % Rotor drag constant %Kd = 1.7473e-07; - %Kd = 1.0327e-6; % Kd value without rotor 3 - Kd = 1.0317e-6; - rhx = 0.016; % X-axis distance from center of mass to a rotor hub - rhy = 0.016; % Y-axis distance from center of mass to a rotor hub - rhz = 0.003; % Z-axis distance from center of mass to a rotor hub + %Kd = 1.0327e-7; % Kd value without rotor 3 + Kd = 1.0317e-7; + rhx = 0.16; % X-axis distance from center of mass to a rotor hub + rhy = 016; % Y-axis distance from center of mass to a rotor hub + rhz = 0.03; % Z-axis distance from center of mass to a rotor hub Rm = 0.2308; % Motor resistance Kq = 96.3422; % Motor torque constant Kv = 96.3422; % Motor back emf constant diff --git a/controls/parameterIdentification/ModelingParameters.docx b/controls/parameterIdentification/ModelingParameters.docx index fcf758acb355225ec99b41114ae2bcb501574ee1..0ffd67157fe73136e056cb4150359e31c92327f6 100644 GIT binary patch delta 5061 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 L;P*@ZH~7B*?qz<* delta 4867 zcmZ8_XEYlQ+kRqiV(&eI+AC(wkeV?{6*a3ysoBO#&=M7;f*Lhy6vfX7p+svdp=N8V z-Kt$%jraHbKm6b4y!W?zT=$3TI@h_+x!(nC1=gKX(MV|-oNm(s0AJ6rKx!@|F?b8l zwfOY?UdNb}Pam_GDSlhsy6@y;*|7TRw8XBN8eiITQK)Dqsz?mcFjPFD_KP%hEV@u6 zI#CN2BqRnG_IjCBk&GO15Tst}XS{4?6x9249=@$HEAl?poM2Jr@=coi#LRuh<+IKC z0r4+3+=!O*&#g5k#-~y&ytbc^JJ$z{fzUVX3I-gJW~-uvrQo%^{6Un$O~YN<Az(P% zD(o>f9d+dJO*A0oC<344C!$~DXi&TL=Sz7{k6y=Io8F=bjTA^d<ZWuM(HPpEoh(l! z1O@J1<x07jHFRuBc8tuiDgg*Bc0;3cCO2nGzxu{iiRlmPKZn?xW;h~y!7^cAo$mry zJW{<+sKP+2<&6(QKzs?;)Dqhw4|(t&IO_7s!d_34a%Ss2Md2XDbtBu4wgf|%Q~ZXH zy&Zz5vc|t2THlQjbdj&Ss@(l(RCzF@XSNn(C&BM5A*=RhOPxH&3lf;=@R01VPGDd> zjP+-g<o9D<W{~K6l|RV3G=HUy9wWS(U(4v|5Pg7lxo<xiw<+0I5(0nHUBhB_v-un! z%;hz)^fESmv=EMa0Nv3Hgp`S0UT`-GKhBw2TJjp2XG|M0pHY$fycPLexO<s5XvWVe zDmMcqUR^rA4)539s2fS_!ZnVS!FapOZ`v=bCOviP#f6U%s>oE|@6P4LTZCchc9$f% z_FipP4YRdhQy0B<rq=IQjG;JUhq1VKXE~(f2xQ;t*!LrkyLO!Iv+eaodcv~dKuxg^ z<kWv<-@-{pxZFnXrA^Fv?Ip8XX7YrRvwXj}PT)805gMn%pq0*h1)wo8m@XzK-Y8|M z(#D5K+FLKmf=qcSd&4S8dFpU5OW}rT>D{tvyZub>5a0hI;r6GD4g)xeejg0Z`StXX zzW$hm7_LCO@4Kz<4;DoX&%{V5tjT)<weT7~iH_eG@!X&f(x1vBS~~52>GxykhCpq+ z84qSMIx8EZi|}F$f3?<?l`B1t`+StS2Z%q1CyC`d$VQ?}KpT!?HJtNX)?@RB*}v6R zhA@-P4T^lNIjwnxX;NSnXI5K-W-Hn8^`Xm3{KG8tu|f&zm-7&DHPhp?-62~%^(fnd zSP@gR=M!ZY<aysS)IbZmekK(L=cS2WbChE3WZ(TbX6x8#xvRg-2mgYWy1?cPI!`8C z!21)BgGpZ<PGeTMdtgCs4Ix!z;0y|~mJnc!_&+;B#*w-f=;SYO2lX#OKZ7sFaQCcq zW5)U7FT-U&`}wXGoUl`hH$^Mt4P}*?*ve4lMoRnXC<(PcwKXw0R@kraR?sTG#ht9~ zRmYLhX-<Xwcq@>@CX4f(pmN4<Lw_@$D}t^xGQa+5!Se$3Xq}$j;Ao1i-`|o??g393 zmJw>Z(PPDlS0r8W(@w4VS4_gm%+QLBVpsA4=A;iK3Y_lyAqvwDMdS)+@*YnN0@<Ie zGQ|r~#P9!^n^AGs@*@GAwG1n8xeEQ>sZ{x1bxcbY!E~hiOw3&C^B5f!s<u-(*+HDF z134~pSUmfW0YJ+s`=05===yj`V<xY_#8J~*D9{=8%(3;GOOANBd?w?DZ)y3lWJKeP z=>2EH@Gzmb{6Amr7ABv?V%QcAp2c$B+T`Cz|7WqHnf6&IdiO7AA@NH8)JL#YpmE{- zZP!AL7vjN@T$BKU<e-14(D4#d_OzYTAq%;;HtaXYJy!B$pD9ULn1=KYFr(qlh&YTu z3toQ$A3R6Iejx*sThSC{TscmRkcj5#vDb9~N8Pj~u<uMPEoplI8oc08h_(!~EI<Pg z3it(}<vpCmLyy3`T871FbQj7RP*y#z^wKSI4(OL23DXf$Z82gsx9sU8+!;MZzKuss z=*IfY<qy&a(+@7Z1xwHJIw3k&*41T#J_ajS5#~~U+#J-ZsRT*Icv(CVxCr_%n2Uk# zbv(Pb1*@qYrkdKg-+lj=pR;9X1A7y5ML|GIJ@&i1M?-!E_K#q?PgJR4{saRsF3U5q ziceK{)V_k2i|I%<uJ9kTklsZvBxdt2?3;^3fTiDEkI<@FV-HQH(Kqq#=S7xy_awtH zCK*7r7DVFcjj$}3R3%1o2?b!yDx(yO?Fw&N^lc)Ny$IUsr={db2<~1R0r>OdqEFXG z9-7O(qVKdBvMk{X+t`Gr<+Wu66o3p|eg&A6OnE@Tgq|O;;neB+x@KqOo8vzRbA-tI zNPuJmew%#iXXQb)61Izt`^<WZBBZ>*X%1XaUg5*cGb-<z3)4Edh|EgSFe>&P&-hx2 zF{wBbc?GrkGwMIcZ$eT(ZIcPuP!N;Wqdv?|o#D=`p{xz&SMr9HZR%Md0K2zf{3y+- zzWge;pBCA7I)ecj417rN%wp1>Afq3<(be#hn66$eIr%+QoU2N+i*{f^VVCbN1<%|c z-`#T@tzca)ZN<eexJvb+j+(1!@(;?oaN4ayxwjLY7g}UhHI|xgc*HjNIZqX+Jnxv0 zv#9Lr&9i^geDknnz(=5YVk*Tjhdz~f!GA^k&^bqKY)Mq;%SJNTU%YrTl(h6UwVLW_ zjG#sbFWc_r(44UDeuIBd#`C4rX`%PS;s-dzFBeG?!KQwUIRvtfKP9cyjRiBbV>jue zDC@ebpe1J-?2DCnwduBju9kgIx5K;HEK6PHckk8DPqj}jE4@qn>ty&kP#734voO>r z5&W~#D>>7H#ZMbKXl#<nF$eE`dS4l;EUNlGI8BoZ8)ygnVki3Ymigv6%|}wqLjEub zhMbdD9#3V=f~sHg2KN0YZwpb%17M<G1XFUhQ5OLEvLMg?QhFrcZmma14<)4l`UYRF zcR5@&qAULGNlT&X6a61r0z4kPn^*EbkrkS2bj?E|y?sD`6Xo0D<%y3Obyld`P;H;D zyg^yrO0kKa1BITb_YkzcdXLXDQo~n}E7G1#gSy>h+;1NoP@p8PhB?nMZ$7?;**+QV z!5Drg%4JrOkw=VykM-cD(15Nj6UbE)kKunwc3&6jl?M?N(S`c>ao>k(1}Sm1Nvpl` z+?Yc~QUOYM3Fc;e*<D}?#Y73(G3h<EcXe|_yO8B%tIY?MB-vym(gU4PU|V;=3rTzc zT;PEXCgG0LLN8+)o1Y(_e3tG0+XKE1hnY`iwfNu1!o?(Dyi&h>;6r<IPs%hm<Frop zbN=8){wDJSYU5!#$zG<9snfcFEDZ~b3rol!H|KlRbDd0)rz$6^BSJ^~)n3ST5F?WQ z;FQU1XW=TPPycuRezxBW|Kc2$36L7669+>2Q)S)eJ`Y{BWHSTQmQ^9i;L)T=%q)(t z;BUdr=9nwWU3bXBUJ*UxrOC{X3q#K^;q*{*s!d0|yOwzGws%!xhLFMb{p;o=J!G)m zaPuDv{f$Kbax{tZKDwh5{F9`ugU&SYjN(__-sn5}QD6}%)f4+sU<yzJMG<h1^sv$< zAr<sP3-)N*eVG8zV}j{0oMZ4C7^8i=lyp|faxDN)hA88-RKo@ylc+r}MPlj3|4FE? z?nC7IA*v6==Z;Ge&W+`iyA7&E_RCYEPwJrv9o-Kl`I*r(g08It-?9GMsIZI%`UeEL zCUhx4dgnzi#lK`OH-$>CKBBcLCC8%N>}k`sG~)=VmFBJ~E1czub1`z>+hplBnZuuh zlmd)(uWqhdsm|3d6^GCJ0@&vUBcva`=AyXOp5Y|`kN{Yqw(&F)oNmZ3W4t;lr$Ylc zSAEe09MrOecVOWnUa9sm)Ov1wZ~YQh`+eko@2+%N^F$cdH{VDGQRTx|(1bFb>f~N! zS$1H`jh&(LuvB8{(l01GmZU~7%ZoPGM6DmrKCrhDZ8ql`CMS(gdzbvnia|oo_r89} zd2Ii^J=^Q+SSOJX&OBs^6p_-;QPCP+xjF6G?Cvzt@!`j34nGWYAyiy`slO&%se$G5 z$c`=5i?hoJ8@AUQ+M0IPuHmwm{oDSi*Drj^gBR1vwe_dxeQvYTI@;il{uUaX(%J(G z*wCLsG^F}PU+K!dE;4%j&G?%(;t`XdFyk%vgq14X!VM_^aC3w01vBApvyoF$^XZ&C z_xrbIj5X(#M7|QK#_fAeyf>LGp1lIxDfSX3#FlP9OTLaw%y^_eT)clGIr%n6sXIqK zR3|FROBv!?mb65aZ-;dO4xx?DpAz?pKNBB;C}ss0g{2@a2@=)asi(KE_m>@f{pngZ z0pJ$ddpNq&zAuWe!f^d`n><1alusmB4JdT%IFw3VkP%!eaWGF4bFe}=#55fN8Ap3f zOS`;c1&O3EJ8om>C3^#mxwWnjK)-Vd24C(fYj@ALVCuVAeVLs0k|qmMt{$iYP7Bud zAH0Fc|Gs+V6Wkk?s^9bz?Kg-6S|?HX(UZDQa+sWDK#<0vU!zGs_DgF>QCYG)ZLKDp z>BMa#`8u6e_e#Lfmkx!TF~^3vE)(g%2;nAuUx$`@foe$sO<C3tk{P7Y)JwjxRkDOc znHwoG+E-;gA7bJ0hUuahnNemLNsSu#;ke}3A%0dQiI1$Eqis+yUdY<itP*Qupb&@Y zZ?HkfG7-Frx-}<l4!OQ%f|%bjP|1eprOY66wXG`@9PF4?I`E)*uwMHE=@^!Wq{Y_q zhYDRVe+|2MC!shI3j1i0PVX`I`}b<U94plWWg~OvG7h{fo>@8WFd}K(2!ZJxqV_Ni zR-Z9y*!O{j4`=L(y*=ImcO3_=-d%129hvKd+~XZ;sAvjmz#d!hsy8aj{Iv?VC_f<$ zKYTiIWu-?wM2}NGYNMRLm7RCVzBiwvBl69hP?C7@o(+1rl|u|*xqG{N;|ow*N>l)m zTy9#5(19`s6i^+8FHB{ouGD?yV5(l;qg=mGZu;rKoh^#LLg)vOzLnb;d*eIL_CZSX z@g=5|H>-4a+{*;ktX7$ii>+l}3^+x?pU$AY7>E=@(M5fWbcFtHPa<KbD{$j6ZXhf2 zzRnCyptShh{M^QO{OwpnJ#V?X&)1K3H1#SWD<^NLk>1?7MKv+a@pNwOJ+7Q#mGK5i z5A<$Y#3*8z#eBFTnnv_go0m(}w5W>J0;6Oe=C9vRVCN!R4zLZ3TX=a>#s1e(OPTC@ zy+(b6_0_NyM2ve<W;s?~AF(ZwScaH+xdF-`lkhIANj7g?sHSLvboT;oj^!V$;Vfq! zHx53`1CMZ2J*v-V8`}w2`WxDu8_2%Z_SsnI;s&sL1H^WMS#jqA)}%CXArSr$AOJ8x zg0mA503xl47Txkp1d#(q_-+lBDwF0h#!9*;_RS=~n>ZuN{_61zMH6x)p-~9UqrUSs zqF;%n`}ot;fW$>nwd6!pP8l_~kDu49VsvEy$CffRJlpY+U!55v=eS=?48_Qz#u41j z1l{#qamPK>9z#CkCfAkTmmr>U+>V~S$eMW%M>03xjX8QGEZyMW`$S-D(m`(CF#8q8 zzVP64X;WtWr+r60-h-fux~GnYYpLDuDO7=0GvLs&h&A<28`6>D-VRz<4`AT;sYwp5 zy87ql5`?tZU8{(C;V6oZln_T4NYehgsI<9LRRM9qo<~R4v0;p&+qQ~%#>V)zVnb$L zI>3M?IIjO?BVsIKxwWLDGCrS`TWu|0O`nqNgtVjY#Da6h!^S9TZ@JelT+=hi>74$n z|EJ37owsT6*~!G?`F(#fP5pXtN^Al(O7lX<g^^?QAD?=i{BuoC;V8Zb;v@D%%%{B} z3r?=W0=gTL|L8#eceGGd3+Ey(3PfVkolU#tSrhiiZwv;a^BOaS-VN`^JF7FP!U?nk z_c;8=(|W?LPVr$|Z+E+h-H5N<krviNr>(ETmk7RQN#oCps4$O8744E-z9*lt8|gd| zK`d~B;gtNtGskv9x7bqRy{8<W=*6Z+U=M7knI9X}v3khii#}RLbR7+wuOgKhqc^4e zKb|eIEn(8QzB9F~#jfgc&JCa$?nsK4U4<Tl(?|^Hxy|+==GIZ}q>vps228#{>D_m@ zCm?NAiHN;#WcbH<jpyi-bDK+ilw(R&-ymHxGiv%tVea3$ZOe~v!9C4zZ%>XIy1>o> ztEJB!@~f`p3C*rECT3ni4iF3tr4|Zvp?joxU4NK+Tk9VVw3ldpuMazRCU<^RtK>O> z<80~@R>26o4jdXuF$VIm6e4L($Z?(E1^WN~Dpjajl8~`s&Dl7xOlnL#|NpK~0RSMt ze+M;IQ%wh0f{jqSO)@Bil@(^cWn~H^kpZv*C;<OX1B3woYY_l|>A$gnV`1!-nlSJG e6YyUTxsm+e?FC|3O^7xSghfDvDOgqh1O6W*^b?T) -- GitLab