From 9035286609187448c8e7d69a0fdf3f04fce39646 Mon Sep 17 00:00:00 2001 From: "John M. Penn" Date: Sat, 5 Sep 2015 15:42:41 -0500 Subject: [PATCH] Create README for SIM_cannon_analytic --- trick_sims/SIM_cannon_analytic/README.md | 48 ++++++++++++++++++ .../SIM_cannon_analytic/images/CannonInit.png | Bin 0 -> 44826 bytes .../images/initial_vel_x.png | Bin 0 -> 1086 bytes .../images/initial_vel_y.png | Bin 0 -> 1104 bytes .../SIM_cannon_analytic/images/solution_x.png | Bin 0 -> 846 bytes .../SIM_cannon_analytic/images/solution_y.png | Bin 0 -> 1269 bytes .../images/time_of_impact.png | Bin 0 -> 1569 bytes 7 files changed, 48 insertions(+) create mode 100644 trick_sims/SIM_cannon_analytic/README.md create mode 100644 trick_sims/SIM_cannon_analytic/images/CannonInit.png create mode 100644 trick_sims/SIM_cannon_analytic/images/initial_vel_x.png create mode 100644 trick_sims/SIM_cannon_analytic/images/initial_vel_y.png create mode 100644 trick_sims/SIM_cannon_analytic/images/solution_x.png create mode 100644 trick_sims/SIM_cannon_analytic/images/solution_y.png create mode 100644 trick_sims/SIM_cannon_analytic/images/time_of_impact.png diff --git a/trick_sims/SIM_cannon_analytic/README.md b/trick_sims/SIM_cannon_analytic/README.md new file mode 100644 index 00000000..2a88aa1d --- /dev/null +++ b/trick_sims/SIM_cannon_analytic/README.md @@ -0,0 +1,48 @@ +#SIM\_cannon\_analytic +--- +This is first of eight Trick-based simulations that one builds in the Trick +Tutorial (Section 3). It's purpose is to introduce the fundamentals of building +a Trick simulation. + +Here we simulate the flight of a cannon ball, given an initial position, and +velocity subject to the following assumptions and limitations: + +* The **only** force acting on the cannon ball is gravity. +* The acceleration of gravity (g) is constant and equal to -9.81 meters per + second squared. +* The ground is flat, and here, defined as where y=0. + +![X(t) = Vx * t + X0](images/CannonInit.png) + +-- +### Approach + +Since this problem has a closed-form solution, that's what we use : + +![X(t) = Vx * t + X0](images/solution_x.png) + +![Y(t) = (1/2)gt^2 + Vy * t + Y0](images/solution_y.png) + +The time when the cannon ball impacts the ground is: + +![](images/time_of_impact.png) + +-- +### Inputs +Variable | Type | Units +-----------------------|----------------|------- +dyn.cannon.pos0 | double[2] | m +dyn.cannon.init\_angle | double | r +dyn.cannon.init\_speed | double | m/s + +The initial velocity is : + +![Vx = speed * cos(angle)](images/initial_vel_x.png), +![Vy = speed * sin(angle)](images/initial_vel_y.png) + +-- +### Outputs +Variable | Type | Units +-----------------------|----------------|-------- +dyn.cannon.pos | double[2] | m +dyn.cannon.vel | double[2] | m/s diff --git a/trick_sims/SIM_cannon_analytic/images/CannonInit.png b/trick_sims/SIM_cannon_analytic/images/CannonInit.png new file mode 100644 index 0000000000000000000000000000000000000000..404ff6c7e2f78224e3452032687cd2cd41f9967c GIT binary patch literal 44826 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 De&BLT literal 0 HcmV?d00001 diff --git a/trick_sims/SIM_cannon_analytic/images/initial_vel_x.png b/trick_sims/SIM_cannon_analytic/images/initial_vel_x.png new file mode 100644 index 0000000000000000000000000000000000000000..9775d322f567a20f13c8834f3152ace5ab62a401 GIT binary patch literal 1086 zcmV-E1i|}>P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt16fH#K~z}7?U>z_;y4h6KkexN3?Y~d+=SrHz;p;E1BMV_BQS(u zIszaB(Gh?{Fl2D|!SWwAGqbzqOwTzZy-*UqDoM9)m5un*b0zAZsmFi0lRwi}I_sJE zvGND_xnehC#Mf>oEwNn9^Hx|Z;H`nb(G3WBH2^#1%niQ-qxOoP%BP@(zEUc2Ry|t$ z`s-IS=Ev=W@QLU<#SQBq%gn&Ud{$%cY{c)tD8E;s76Y*?Y@z$I65=eXQL9km1y0J? zaxid}k7Y859_*9@5Hc}4WkAFc_+;boHv-65GBSPkTHrAz@Ac?|^}}_?K;WL*DZ?Y< z-DytSGg|vS$aDWX;#G*R#tK|&^xR1X+7EJ5dlfexYbB8?7cK=CBO+9);=a-ccJcqH zqfn6+5|Kor@NO=4>jtg$MJ`W$o(Zpk5Gv3@3oYcUsa#0BSmx%Un>)#O{O|H)?rx*q zeAah&e&hzgijg@fB*QCm2Obvqrkt69t5TLd_NL4=&{3$JS!*VkX-e9f*~oG-09#&7 zVHf-znVSxJGi}e{qH*JS%h8>~R#9tz*D~JATT2Ftd@F=P$5XMYRtObKpje3#C9Z3CVzOt)Tk3 z(0fzN%*@P;k;+g^9kS2dTm?1duNu>~Z{Q^M$P_4ore5u0z-nSn92)g<{S?4OH0%|t zUe87b)wpA~ev0jGvbg1fXr=I_5|I+^E2jOs9y&bhUI1)$w?UOOY{g-#uI(w8$Q@_; zc<%L#)rCZ&vue8;_-)VH<$>qYM?0Yv<$)2f(~$rw`2?6~|DOwmgR+u=F7Y3k;&CH# zm{+Y_+IVMVy7oZ@mjaediCw|aY*%&1F50$GF8Z5*Ta`$Gk0*5AGGG_g&AD z6R^>3kYlQ=w6EFLX8UmNs*f@-pH1z(0-?uWe7-{e-iN!=?|%T4njpTneiQ5f001R) zMObuXVRU6WV{&C-bY%cCFflbPFgYzSG*mJ$IyE&qF)=MLH99ab#>m3^0000bbVXQn zWMOn=I&E)cX=Zr#$Fgi6fIx;scFf}?bFtrFHpa1{>07*qoM6N<$ Ef;X!2Bme*a literal 0 HcmV?d00001 diff --git a/trick_sims/SIM_cannon_analytic/images/initial_vel_y.png b/trick_sims/SIM_cannon_analytic/images/initial_vel_y.png new file mode 100644 index 0000000000000000000000000000000000000000..8806727db965109a46f86d6eb50f3947cf2436e4 GIT binary patch literal 1104 zcmV-W1h4yvP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 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 literal 0 HcmV?d00001 diff --git a/trick_sims/SIM_cannon_analytic/images/time_of_impact.png b/trick_sims/SIM_cannon_analytic/images/time_of_impact.png new file mode 100644 index 0000000000000000000000000000000000000000..fcba2ded39dc00f9874288a06bd4eeadde67067c GIT binary patch literal 1569 zcmV++2HyFJP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt1w2VaK~#9!?VIa;s!R~Z|NH(@fJq6Y1GNM_6_}J@I?$AWsQ^*} zrUIn|v;wsRu!HCQz=D_K74@L!@XQBgU3L~`=d!b-5f%0$(M#D=_zf~oWl!P0@kvC( zY`2azC1#0lii~+V{ww>n+%pm_c8Dy|g1#9T=$B-sDxn>KOK(SO#1{Z{!a}3^8t6l9 zjf;z1744x|E$#kgCLwz2==@PV#Y)FOL4o^)DxvKs_sC0iG%N7Z9Yyx8j+}x*tIXqG z1iT#xG~VR#S|AXKiR?FrMbW91y`ImdNP#t5v1*0Z`nh_xi=(SZnVBp~>zWp;Cr_SS zxmxEaf*nSIH8FLKZYH$4_HzsrDAr8w1>9q;eA-NoVx?^(ZF20W_vk_! zDRtrLm3uQy^Wt@Ox(;)^j7GUJbhq|<^?Y$;99!yX^@KCkBpy2C4`~?i)i+ZTL5NdmoS^}C{aWt_ zIl@410_YdWYE1Nl!&qYtm4^IHmH_ygQs3x1S4azhENz|kEM0HTr$Ak;0tFE()r?wU zE$C_e-qx1hZFBS_(rB+B%2@GF+9_=6U4ouX%>T_hK z5T32s%@Wpa69X`{F{KsST$6`A4eb)*>nDHYBIvPTBACeG`RJzL@@29@Ukw2a1s?_= z(K~GeeftUE(wDE;_Asfe+UnSb$HPPo1J6n>n*Xcn3{6|X2|}Cei#lI;`AaR1p(2_r zh#BN#`GN(`eu<>klN)C7Zc8&cN*(uQ<9I?rzE3(#(G5J>Ib;M()Z(&rS|$dnu{<%; zaR^2*J0WvF*DvPA*J4dK{w&N$At6gTht%<(Kwk@nC%u7dEt8@!;;}v2zX&71Xk`|L zimsscyP~iU#XEXBr5TyWg%M-DuX(gY$D^m?XecOju4|`M;UJ#YH+8@X0q-eT6c!n% z(!3*h%J$ibBHCu4h@naJO-zdgAub^>#W#t*Sx^VExT!CPB@0`$nY!l|F+VsA)ZJPD zm3h1xvicxbt5j$pfo*N&dy+t+rdXn*NTOwXxb|2)PdCX4>zPf3 zX6e^d6tO*~%UbIiDa$x_>~XlWkte^#xl={^=n3A;TdsHCbb*zhoAM0=_A1I-n|a%m z=GrgVevQiH-4I(@{vY1)l?g3T8kmH1@C8#Gz*moF^MV7UY38vUQh$|bqC{!0vLEg5 z#a3ZYCod^!7>Mlm7U`L4h=Z>s0|Rd+l&=@+eA71&YM>fvrn)Kr%EuNJ)^XOR=vDK| z?A-y*D4`qc8s|rkg+wk6X>CS%xyEgrEVM*l#LQKE)BJdt>lYEvCeaI{vL~~KDra;6 z4R!Og;`mCrqHEwUs1dmpwkvg|%HOh4 z1tJH~*9#5{+&inFsf2bEr`L}BDOBe1DDKUpRYKc~-z$Ib2Y2~T(0f1=7-~VB|0nc* z@IT%2D%C*x@nZl003~!qSaf7zbY(hYa%Ew3WdJfTF*PkPIV~_XR53F;F*iCgHZ3qU zIxsL+4}h%z001R)MObuXVRU6WZEs|0W_bWIFflbPFgYzSHB>P(Ix#jnG%_tPH99ab T`mlbx00000NkvXXu0mjfX^z-X literal 0 HcmV?d00001