(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. ***********************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 58391, 1806]*) (*NotebookOutlinePosition[ 59333, 1837]*) (* CellTagsIndexPosition[ 59289, 1833]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[ "A Dynamics Workbench Model of a Pendulum"], "Title", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "This is an example of using the Dynamics Workbench to model a pendulum, \ perform a variety of analyses, and perform a simulation, all within the \ Mathematica environment"], "Subsubtitle", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["Step 1: Building the Model"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "First, it is necessary to load the Dynamics Workbench package. Make sure it \ is in your path before you execute this command."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["Needs[\"DynamicsWorkbench`\"]", "Input", AspectRatioFixed->True], Cell[TextData["Now, initialize the modeling workspace:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["NewModel[]", "Input", AspectRatioFixed->True], Cell[TextData[{ "The system to be modeled is a pendulum, with a linear spring attached to \ the body, and a torsional spring and damper acting at the hinge joint. The \ inertial reference frame is called ", StyleBox["ground", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", and the pendulum, body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", has its own reference frame as well." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHggYjN[Vi^OShn03ooeGooj[oooclo5H/1EGooj[ooc/k>gYjN[Vi^OShn03o oclo?ginO[fm_Oclo5D00:X00?l00000EED0EJX00=d81Slo?ginO[fm_Oclo0<30d92@X61PL30`000 EED0EJX0EOl0E@00ZUD0ZZX0E@<30d92@X61PL30`000E@L71dI6AXF5QLC4a000ZUD0ZZX0Z_l0ZP00 e5D0ojX0ZPL71dI6AXF5QLC4a000ZP/;2dY:BXV9RLS8b000oeD0ojX0ool0o`1E05EE0:X0o`/;2dY: BXV9RLS8b000o`l?3di>CXf=SLcCXf=SLc0003o`000;l0002I0003o`3o00h000?o0000_`0009T000?o0?l03P000ol0002o0000V@02o`h0 00?o0000`00009T00_l>0003o`000<00002I00;o3P000ol000300000V@02o`h000?o0000`00009T0 00?o000030000ol000310000V@000ol0000<0003o`000<40002I0003o`0000`000?o0000`@0009T0 00?o00002`000ol000320000V002o`d000?o0000`P0009P00_l=0003o`000<80002H00;o3@000ol0 00320000U`000ol0o`0<0003o`000<<0002G0003o`3o00`000?o0000``0009L000?o0?l030000ol0 00330000U`000ol0o`0<0003o`000<<0002F0004o`00o`/000?o0000a00009H000Co003o2`000ol0 00340000UP001?l00?l;0003o`000<@0002F0004o`00o`X000?o0000a@0009D000Go0000o`0:0003 o`0000003o`0003h000?o000020001Ol0003o06D02Ol300Co0`0@o`800_l300Co 1002oc@0001500;o1`000ol0000n0003o`0000`000?o000040000ol0001?00;o0P02o`030?oo00<0 0_l200;o00@0ool00_l0103oo`04o`030?oo00<00_l200;o0P02o`<00_ld0000A`02o`D000?o0000 50000ol0000W0003o`0000`000?o00004003odl00_l200;o00<0ool00`02o`800_l0103oo`02o`04 0?oo00Co00<0ool00`02o`H00_l300;o=00004T00_l30003o`0001@000?o00001`000ol0000M0003 o`0000/000?o00004@02oe000_l200;o00@0oooo0P02o`800_l0103oo`02o`040?oo00Co00<0ool0 0`02o`@00ol400;o=00004/000Co003o5@02o`T000?o000070000ol0000<0003o`00018000?o0000 C`0;o`030?oo00;o00<0ool02Ol200Co0`02o`H00_l300;o=00004`00olE00;o2002o`X000?o0000 4@000ol0000<0003o`00018000?o0000K`02o`<00_l200;o0P02o`<00_ld0000CP000ol0000B0004 o`00o`L00_l:0003o`0000L000?o00001`000ol0000<0003o`0001<000?o0000K@03o`<00ol200Co 0`03oc@0001500;o1`07o`h000Co003o1P001?l00?l800;o2@000ol000060003o`0000`000?o0000 5@000ol0002e0000A`02o`D000?o00001005o`P000Go0000o`060004o`00o`P00_l80003o`3o00L0 00?o000030000ol0000E0003o`0005800_mQ0000B@03o`8000?o000020000ol000060005o`000?l0 1P001?l00?l70004o`00o`L000?o0?l01`000ol0000<0003o`0001H000?o0000DP02of00001<00?o 2`000ol000040003o`00008000?o00000`001Ol0003o00L000Co003o1P001Ol0003o00H000?o0000 30000ol0000F0003o`0005800_mP0000CP000ol000090003o`0000<000?o000010000ol000020005 o`000?l01P001Ol0003o00H000Go0000o`050003o`0000`000?o000060000ol0001B00;oG`0004D0 0_l70003o`0000X000?o00000P000ol000040005o`000?l01@000ol000030005o`000?l01P001Ol0 003o00D000?o000030000ol0000H0003o`0005@000?o0000G00004L00_l50003o`0000X000Go0000 o`070005o`000?l01@000ol000020003o`00008000?o00000`000ol000030003o`00008000?o0000 30000ol0000I0003o`0005@000?o0000F`0004T00_l30003o`0000X000Go0000o`070004o`00o`H0 00Go0000o`060003o`00008000?o00000`000ol000020003o`0000`000?o00006@000ol0001E0003 o`0005X0001;0004o`00o`d000?o0?l020001?l00?l60005o`000?l01P001Ol0003o00L01?l>0003 o`0001/000?o0000E@000ol0001I0000C003o`d000?o0?l020001?l00?l60004o`00o`L000Go0000 o`0;00Go2@000ol0000L0003o`0005D000?o0000F00004h000?o000030000ol0000800;o1`001?l0 0?l70004o`00o`/000?o00000`03o`H000?o000070000ol0001F0003o`0005L0001500;o1`000ol0 000G00;o2002o`P000Co003o2P000ol0000<0003o`0001h000?o0000EP000ol0001F0000A`02o`D0 00?o00005`000ol0000700;o20001?l00?l:0003o`0000`000?o00007P000ol0001G0003o`0005D0 001900?o0P000ol0000Q0003o`0000P00_l;0003o`0000`000?o00007`03oeL000?o00007`04ob40 0ol900?o0@0004`00ol^00;o2`000ol0000<0003o`0001l000?o00000omE0003o`0002400_lP00;o 2`02o`40001>0003o`0002`000?o00002@000ol0000<0003o`00020000?o00000`04oe8000?o0000 7@09o`<01?l3013o0P02o`<01?l400;o0@0004h000?o0000>0000ol0000<0003o`0001l000?o0000 2003oe0000?o00006`02o`800_l00`3oo`0300;o0P02o`040?oo00;o00@0ool01?l00`3oo`0300;o 1002o`D00_l10000CP000ol0000h0003o`0000`000?o00007`000ol0000;00CoC@0Io`@00_l200;o 00<0ool00`02o`800_l0103oo`02o`040?oo00Co00<0ool00`02o`@00_l500;o0@0008T000?o0000 30000ol0000O0003o`0000l00ol20003o`0004D000?o00004`03o`@00_l200;o00@0oooo0P02o`80 0_l0103oo`02o`040?oo00Co00<0ool00`02o`@00_l500;o0@0008P000?o000030000ol0000O0003 o`0001<01Om50003o`0001/02ol00`3oo`02o`030?oo00Wo0P04o`<00_l400;o1@02o`4000280003 o`0000`000?o00007`000ol0000Q00?o2@03obd000?o0000>`02o`<00_l300?o1@02o`4000280003 o`0000`000?o00007`000ol0000Q00;o2`02obd000?o0000>P03o`<00ol300;o1003o`4000270003 o`0000`000?o000080000ol0000I00Go0`02o`<01?l400;o;@000ol0001@0000Q`000ol0000<0003 o`0001l000?o00006`02o`030?oo00800_l400;o1@02obd000?o0000D00006L01OlK0003o`0000`0 00?o00007`000ol0000K00;o00<0ool00P02o`@00_l500;o;@000ol0001@0000I@02o`D00_lI0003 o`0000`000?o00007`000ol0000K00;o00<0ool00P02o`@00_l500;o;@000ol0001@0000I0000ol0 00070003o`0001D000?o000030000ol0000O0003o`0001`01?l300;o1002o`D00_l]0003o`000500 001<00?o50000ol000090003o`0000h00_l40003o`0000`000?o00007`000ol0000L00;o1@02o`<0 0ol500;o;@000ol0001@0000C@000ol0000C0003o`0000X000?o00002P05o`@000?o000030000ol0 000O0003o`0001/00ol500?o0`02o`@00ol]0003o`000500000/00;o0`02o`D01?l200;o00<0o`00 0_l0103oo`03o`040?ooo`<00_l200?o2P000ol0000:0003o`0000T01?l50003o`0000`000?o0000 7`000ol0001O0003o`000500000[0006o`00o`3o1P001?l00?l20004o`00o`<000Co003o0P001?l0 0?l20003o`3o008000Co003o3002o`/000?o00001`04o`D000?o000030000ol0000O0003o`000600 00?o0000D00002/000Go0000o`070004o`00o`8000Co003o0`001?l00?l20004o`00o`8000?o0?l0 1@000ol0000<0003o`0000T000?o00001002o`030?oo00H000?o000030000ol0000O0003o`000600 00?o0000D00002`000Go0?l0o`060004o`00o`<00ol30004o`00o`8000Co003o0P000ol0o`03o`80 00?o00003@000ol000090003o`0000800_l:0003o`0000`000?o00007`000ol0001P0003o`000500 000]0003o`0000;o1@001?l00?l20004o`00o`<000Co003o0P001?l00?l20003o`3o008000Co003o 3`000ol0000>0003o`0000P000?o00003@000ol0000O0003o`00060000?o0000D00002`000?o0?l0 2@03o`<00_l30005o`3oo`000_l200Co0`02o`8000Co0?oo3P000ol0000<0003o`0000T000?o0000 30000ol0000O0003o`00064000?o0000D00002`000Co003o2P000ol0000[00;o3@000ol0000:0003 o`0000`000?o00007`000ol0001Q0003o`000500000]00;o2P02ob400ol400Go3P000ol0000;0003 o`0000`000?o00007`000ol0001Q0003o`000500001O00Co4`000ol0000:0003o`0000`000?o0000 7`000ol0001R0003o`000500001e0003o`0000/000?o000030000ol0000O00;oH`000ol0001@0000 @`03oa400olK0003o`0000/000?o000030000ol0000O0003o`00068000?o0000D00004@000?o0000 3`001Ol0003o01T000?o000030000ol0000<0003o`0001l000?o0000HP000ol0000200Co8@03o`T0 0olJ00003`03o`<00ol200?o00@0oooo0P03o`040?ooo`800ol0103oo`02o`030?l000?o0`03o`<0 0ol200?o00<0ool01?l0103oo`03oaT00_l=0003o`0000`000?o000080000ol0001R0003o`0000D0 0_lP00;o2`02oaX0000@0005o`000?l00`001?l00?l20004o`00o`8000?o0?l00`001?l00?l20003 o`3o008000Go0000o`040004o`00o`8000Co003o0P001Ol0003o008000Ko003o0?lL0003o`3o00`0 00?o000030000ol000250003o`0000802Ol300Co0`0@o`800_l200Ko0`02oaX0000@0005o`000?l0 0`001?l00?l50006o`00o`3o0`001?l00?l20003o`3o008000Go0000o`070004o`00o`8000Co003o 0`001?l00?l20003o`0000;o6P03o``000?o000030000ol0000Y00?o2@03od`00_l300;o0P02o`03 0?oo00<00_l200;o00@0ool00_l0103oo`04o`030?oo00<00_l300;o00<0ool00`02oaX0000@0005 o`000?l00`001?l00?l300;o0`000ol0o`030004o`00o`8000?o00000ol30003o`0000<00_l30004 o`00o`8000Go0000o`020006o`00o`3o0P000ol0000F00?o30000ol0000300Go1@000ol0000Y00;o 2`02od`00_l300;o0P02o`030?oo00<00_l200;o00@0ool00_l0103oo`04o`030?oo00<00_l400;o 1@02oaX0000@0005o`000?l00`001?l00?l20004o`00o`8000?o0?l00`001?l00?l20003o`3o0080 00Go0000o`040004o`00o`8000Co003o0P001Ol0003o008000Ko003o0?l20003o`0001H00_l=0004 o`0000;o1@02o`8000?o00008P05o`<00_l200Ko0`02odd000Co00000_l200;o00@0oooo0P02o`80 0_l0103oo`02o`040?oo00Co00<0ool00`02o`D00_l400;o6P00010000?o00000P03o`8000Go0?oo 0003o`030?oo00800ol20004o`3oo`<00_l40003o`0000<00ol00`3oo`02o`8000?o0?l00ol00`3o 0002o`<00_l00`3o000F0003o`0000`000?o00000_l700;o00<0o`009002o`030?oo00800_l300;o 00<0ool00`02oe802ol00`3oo`02o`030?oo00Wo0P04o`<00_l200;o0P02o`<00_lJ00003@001?l0 0?l20003o`0002<000?o0000A@001?l00?l300;o10000ol0o`0U00;o00<0ool00P02o`@00_l500;o LP02o`<00_l200;o0P02o`<00_lJ00003@07oa0000?o00004@02oa@000?o0000;`001?l00?l400;o 1@000ol0000T00;o00<0ool00P02o`D00_l400;oL@03o`<00ol200Co0`03oaX0002000Co1002o`D0 00?o00009004o`<00_l200;o0P02o`<00_nP0000P`000ol000090003o`0002@00_l500;o0P02o`80 0_l300;oX00008<000?o00002@000ol0000S00?o1@03o`801?l300?oX00008<000?o00002@000ol0 003J0000P`000ol000090003o`000=X0001]03Oob000078000?o00000`000ol000040003o`0000<0 00?o000010000ol000030003o`0000@000?o00000`000ol0003:0000L@000ol000030003o`0000@0 00?o00000`000ol000040003o`0000<000?o000010000ol000030003o`000"], "Graphics", Evaluatable->False, AspectRatioFixed->True, ImageSize->{364, 146}, ImageMargins->{{0, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "The ", StyleBox["AddBody", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command specifies that body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " will be added, attached to ground via a ", StyleBox["Hinge", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " joint. Specified are the mass, and the diagonal elements of the inertia \ matrix. The vector from the center of mass of the pendulum ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to the ", StyleBox["Hinge", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " joint is 1.5 m, in the direction of the ", StyleBox["b[2]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " axis. We also choose for the ", StyleBox["Hinge", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " joint to be located at the origin of the ", StyleBox["ground", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " reference frame. If it were located elsewhere, a vector ", StyleBox["InbToJnt", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " would specify that location.\n\nMoments of inertia are given relative to \ the three mutually orthogonal axes of a body's reference frame. If the \ inertia matrix has cross-terms, it may optionally be specified as a matrix or \ as a dyadic. " }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "AddBody[ b, ground, Hinge, Mass->M, Inertia->{5,1,5},\n\tBodyToJnt->1.5 b[2] \ ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {{1}, {1}}\ \>", "\<\ {{1}, {1}}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ StyleBox["AddBody", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " returns two lists: the first is a list of the generalized coordinate \ indices, and the second is the list of the generalized speed indices. These \ coordinates and speeds, labeled ", StyleBox["q[i]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and ", StyleBox["u[i]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", describe the states of the body. Their definition depends on the type of \ joint used. In the case of the ", StyleBox["Hinge", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " joint, which defaults to rotation about the ", StyleBox["ground[3]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " axis, ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is the angle (in radians) of body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", measured counter-clockwise with respect to ground. ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is the time derivative of ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["Gravitational Force"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Next we apply a force to body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " with the ", StyleBox["AppFrc", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command. This force is the weight vector applied at the center of mass. \ The third argument is the vector from the center of mass to the point of \ application of the force\[LongDash]in this case, the vector 0. ", StyleBox["AppFrc", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " returns the number of forces applied thus far." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["AppFrc[ b, M grav, 0 ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ 1\ \>", "\<\ 1\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "Gravity is defined as a vector in the negative ", StyleBox["ground[2]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " direction." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["grav = -9.8 ground[2];"], "Input", AspectRatioFixed->True] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Linear Spring Force"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHggYjN[Vi^OShn03ooeGooj[oooclo5H/1EGooj[ooc/k>gYjN[Vi^OShn03o oclo?ginO[fm_Oclo5D00:X00?l00000EED0EJX00=d81Slo?ginO[fm_Oclo0<30d92@X61PL30`000 EED0EJX0EOl0E@00ZUD0ZZX0E@<30d92@X61PL30`000E@L71dI6AXF5QLC4a000ZUD0ZZX0Z_l0ZP00 e5D0ojX0ZPL71dI6AXF5QLC4a000ZP/;2dY:BXV9RLS8b000oeD0ojX0ool0o`1E05EE0:X0o`/;2dY: BXV9RLS8b000o`l?3di>CXf=SLcCXf=SLc@0000L00olO00?o80000ol0o`06o`H000?o0000=`0000T000?o00007@001?l00?lO0003 o`0000Ko1@02ocT00002o`L000?o00007P001?l00?lM0004o`0000Ko1@000ol0000h00000P02o`D0 00?o00007P001Ol0003o01`000Co00001_l50003o`0003P0000400?o0P000ol0000M00?o00@0oooo 6`000ol0000200Go0`03o`P00ol_00001`03od4000?o00001003o`030?oo008000?o00002@03ob`0 00090003o`0003h000?o000020001Ol0003o00`000?o00000_lZ00000_l70003o`0003h000?o0000 30000ol0000i00000P02o`D000?o000050000ol0000W0003o`0000`000?o00002@000ol0000]0000 1002o`<000?o000050000ol000070003o`0001d000?o00002`000ol0000900;o;`0000H000Co003o 5@02o`T000?o000070000ol0000<0003o`0000X000?o0000;@0000L00olE00;o2002o`X000?o0000 4@000ol0000<0003o`0000X000?o0000;@0000T000?o00004P001?l00?l700;o2P000ol000070003 o`0000L000?o000030000ol000090003o`0002h00002o`L01ol>0004o`00o`H000Co003o2002o`T0 00?o00001P000ol0000<0003o`0000X000?o0000;P0000800_l50003o`0000@01Ol80005o`000?l0 1P001?l00?l800;o20000ol0o`070003o`0000`000?o00002P000ol0000N00?o2@03o`40000400?o 0P000ol000080003o`0000H000Go0000o`060004o`00o`L000Co003o1`000ol0o`070003o`0000`0 00?o00002P000ol0000N00;o2`02o`40000700?o2`000ol000040003o`00008000?o00000`001Ol0 003o00L000Co003o1P001Ol0003o00H000?o000030000ol000090004o`0000?o0`02o`<01?l700Go 0`02o`801_l300;o0@0000T000?o00002@000ol000030003o`0000@000?o00000P001Ol0003o00H0 00Go0000o`060005o`000?l01@000ol0000<0003o`0000X000?o00000_l00`3oo`0600;o0P02o`L0 0_l00`3oo`0200;o0`02o`030?oo00<00_l100000_l70003o`0000X000?o00000P000ol000040005 o`000?l01@000ol000030005o`000?l01P001Ol0003o00D000?o000030000ol0000:0003o`0000;o 00<0ool02P02o`L00_l00`3oo`0200;o1002o`D00_l100000P02o`D000?o00002P001Ol0003o00L0 00Go0000o`050003o`00008000?o00000P000ol000030003o`0000<000?o00000P000ol0000<0003 o`0000T000Co00000_l00`3oo`0:00;o1`02o`030?oo00800_l500;o1002o`40000400;o0`000ol0 000:0005o`000?l01`001?l00?l60005o`000?l01P000ol000020003o`0000<000?o00000P000ol0 000<0003o`0000T000Co00000_l00`3oo`0600Go2004o`<00_l200;o0P02o`<00_l100001P001?l0 0?l=0003o`3o00P000Co003o1P001Ol0003o00H000Go0000o`0700Co3P000ol0000:0004o`0000;o 00<0ool01P02o`/00_l500;o0P02o`800_l300;o0@0000L00ol=0003o`3o00P000Co003o1P001?l0 0?l70005o`000?l02`05o`040?ooo`D000?o00002P000ol0000200?o1`06o`H00ol500?o0P04o`<0 0ol100002@000ol0000<0003o`0000P00_l70004o`00o`L000Co003o2`000ol0000300Co1@000ol0 00090003o`0003400002o`L000?o00005`02o`P00_l80004o`00o`X000?o000030000ol0000900;o <`0000800_l50003o`0001L000?o00001`02o`P000Co003o2P000ol0000<0003o`0000T00_lc0000 1003o`8000?o00008@000ol0000800;o2`000ol0000200?o1`000ol0000900;o<`0000L00ol^00;o 2`000ol000030003o`0000H000?o00001@03o`030?l003<000090003o`0002`000?o00002@000ol0 00040003o`0000D000?o00002@03oc<000090003o`0003P000?o00001@000ol000040003o`0000`0 0_la00002@000ol0000h0003o`0000D01?l30003o`0003l000140003o`0000D000Go0000o`020003 o`0003l000130003o`0000L000Co00000_m20000@`000ol000070004o`0000;o@P0004<000?o0000 1P05o`030?l0044000120003o`0000`000?o0000@@00048000?o000030000ol000110000@P000ol0 000<0003o`00044000120003o`0000`000?o0000@@00044000?o000030000ol000120000@@000ol0 000<0003o`00048000110003o`0000`000?o0000@P00044000?o000030000ol000120000@0000ol0 000<0003o`0004<000100003o`0000`000?o0000@`00040000?o000030000ol000130000?`000ol0 000=0003o`0004<0000o0003o`0000`000?o0000A00003l000?o000030000ol000140000?`000ol0 000<0003o`0004@0000n0003o`0000`000?o0000A@0003h000?o000030000ol000150000?P000ol0 000<0003o`0004D0000n0003o`0000`000?o0000A@0003d000?o000030000ol000160000?@000ol0 000<0003o`0004H0000m0003o`0000`000?o0000AP0003`000?o00000`05o`D000?o0000AP0003`0 00Co00000_l500;o0P000ol000170000?0000ol00002o`L00_l00`3o00180000?0001?l00?l300;o 10000ol0o`190000>`001?l00?l400;o1@000ol000180000>`04o`@00_l50003o`0004P0000n0003 o`0000T000?o0000B00003h000?o00002@000ol000180000?P000ol000090003o`0004P0000n0003 o`0000T000?o0000B00002P0=olf0000;@000ol000030003o`0000@000?o00000`000ol000040003 o`0000<000?o000010000ol000030003o`0003P0000/0003o`0000<000?o000010000ol000030003 o`0000@000?o00000`000ol000040003o`0000<000?o0000>@0002`000?o00000`000ol000040003 o`0000<000?o000010000ol000030003o`0000@000?o00000`000ol0000i0000:`000ol000040003 o`0000<000?o000010000ol000030003o`0000@000?o00000`000ol000040003o`0003T0000[0003 o`0000<000?o000010000ol000030003o`0000@000?o00000`000ol000040003o`0000<000?o0000 >P0002X000?o000010000ol000030003o`0000@000?o00000`000ol000040003o`0000<000?o0000 10000ol0000j0000:P000ol000040003o`0000<000?o000010000ol000030003o`0000@000?o0000 0`000ol000040003o`0003X0000Z0003o`0000<000?o000010000ol000030003o`0000@000?o0000 0`000ol000040003o`0000<000?o0000>`0002T000?o000010000ol000030003o`0000@000?o0000 0`000ol000040003o`0000<000?o000010000ol0000k0000:@000ol000040003o`0000<000?o0000 10000ol000030003o`0000@000?o00000`000ol000040003o`0003/0000X0003o`0000@000?o0000 0`000ol000040003o`0000<000?o000010000ol000030003o`0000@000?o0000?0000001\ \>"], "Graphics", CellMargins->{{20, Inherited}, {Inherited, Inherited}}, Evaluatable->False, AspectRatioFixed->True, ImageSize->{149, 146}, ImageMargins->{{0, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We now define the point ", StyleBox["P", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " where the linear spring applies its force. Point ", StyleBox["P", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is located 0.5 m from the pendulum's center of mass, along the ", StyleBox["b[2]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " axis. The ", StyleBox["PosPnt", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function gives this position relative to the origin of the inertial \ reference frame. Note that this position need not be specified using the ", StyleBox["ground", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " frame's axes." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["P = PosPnt[ 0.5 b[2], b ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ PV[{-1., b, 2}]\ \>", "\<\ -1. b[2]\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "We now define a vector ", StyleBox["R", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " between the point ", StyleBox["P", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and the fixed attachment for the spring. The fixed attachment is located \ at ", StyleBox["-1 ground[1] - 1 ground[2]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", or 1 m to the left of and 1 m below the ", StyleBox["Hinge", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " joint." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["R = P - (-1 ground[1] -1 ground[2])"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ PV[{-1., b, 2}, {1, ground, 1}, {1, ground, 2}]\ \>", "\<\ -1. b[2] + ground[1] + ground[2]\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "The ", StyleBox["Dist", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function can be used to find the distance between ", StyleBox["P", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and the attachment point. Equivalently, the ", StyleBox["Norm", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function could be used to return the magnitude of ", StyleBox["R", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["length = Dist[ P, -1 ground[1] -1 ground[2] ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData[ "\<\ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)\ \>", "\<\ Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]]\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "We next define the force produced by the spring, which is proportional to \ the stretched length ", StyleBox["(length - lfree)", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " with spring constant ", StyleBox["Klin", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", along the unit vector given by ", StyleBox["Normed[R]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " (normalized vector)." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["F = -Klin (length - lfree) Normed[ R ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ PV[{-((Klin*(-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)), ground, 1}, {-((Klin* (-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)), ground, 2}, {(1.*Klin* (-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2), b, 2}]\ \>", "\<\ -((Klin (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]]) ground[1] \\ + -((Klin (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]]) ground[2] \\ + (1. Klin (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]] b[2]\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "The ", StyleBox["AppFrc", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is now used to apply the spring force ", StyleBox["F", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to the pendulum, body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", at the specified location of ", StyleBox["P", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " in ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["AppFrc[ b, F, 0.5 b[2] ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ 2\ \>", "\<\ 2\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Torsional Spring & Damper"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The torsional spring has spring constant ", StyleBox["Kr", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", and a viscous friction constant ", StyleBox["Ffric", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". Similar to the free length of the linear spring, it has a resting angle \ qbias. The ", StyleBox["AppTrq", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command is used to apply this torque, a function of the generalized \ coordinate ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", which is the angle of the pendulum, to body ", StyleBox["b", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". The axis of this torque is coincident with the ", StyleBox["ground[3]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " axis." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "AppTrq[ b, \n\t(-Kr (q[1] - qbias) - Ffric u[1]) ground[3] ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ 1\ \>", "\<\ 1\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Form equations of motion"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The ", StyleBox["EOM", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command forms the equations of motion for this system. In this case, \ there is a single equation in terms of ", StyleBox["u[1]'", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", the time derivative of ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["eom = EOM[]", "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {(-1.*Klin*Cos[qt[1][t]]* (-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2) + Sin[qt[1][t]]*((0.5*Klin* (-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)\\ + 1.5*(-9.8*M - (Klin*(-lfree + (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^(1/2)))/ (3. - 2.*Cos[qt[1][t]] + 2.*Sin[qt[1][t]])^ (1/2))) - Kr*(-qbias + qt[1][t]) - Ffric*ut[1][t] + (-5 - 2.25*M)* Derivative[1][ut[1]][t] == 0}\ \>", "\<\ {(-1. Klin Cos[q[1]] (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]] + Sin[q[1]] ((0.5 Klin (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]] + 1.5 (-9.8 M - (Klin (-lfree + Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) \\ / Sqrt[3. - 2. Cos[q[1]] + 2. Sin[q[1]]])) - Kr (-qbias + q[1]) - Ffric u[1] + (-5 - 2.25 M) (u[1])' == 0}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[ "One convenient way of assigning parameters is to put them in the form of \ rules, which makes it easy to perform analyses using different sets of \ parameters."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "parms = {M->10, qbias->0.3, Klin->10, Ffric->10, Kr->100,\nlfree -> 1 };"], "Input", AspectRatioFixed->True] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Static Equilibrium Analysis"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Let's first perform a static analysis to see where the pendulum rests, \ given the default parameters shown above. The ", StyleBox["FindEquil", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command will find the equilibrium for any variable, given a solvable set \ of equations and sufficient fixed parameters. Here, the equation of motion is \ given, with its parameters set to default, and velocity and acceleration, ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and ", StyleBox["u[1]'", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", respectively, set to zero. An equilibrium is sought for ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", with a provided initial guess of 0 as its value." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "static = FindEquil[ eom /. parms /. {u[1]->0,u[1]'->0},\n\t{q[1],0}]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {qt[1][t] -> 0.1169211768223861}\ \>", "\<\ {q[1] -> 0.116921}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "Note that the ", StyleBox["FindEquil", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command is not confined to static analysis. For example, it can also be \ used to perform dynamic analysis. Here, the acceleration is sought for the \ condition where the pendulum is momentarily at rest in its home position (", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " equal to 0)." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "FindEquil[ eom /. parms /. {q[1]->0,u[1]->0},\n\t{u[1]',0} ]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {Derivative[1][ut[1]][t] -> 1.090909090909091}\ \>", "\<\ {(u[1])' -> 1.09091}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData["Dynamic Analysis on Equilibrium Point"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "One way to determine whether the static equilibrium point found above is \ stable is to integrate the equations of motion, starting at a configuration \ slightly different from the equilibrium point. First, we define a perturbed \ value for q[1], by adding 0.001 to the static equilibrium value:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["perturb = q[1] + 0.0001 /. static"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ 0.1170211768223861\ \>", "\<\ 0.117021\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "The ", StyleBox["AtT0", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function is used to define a set of initial conditions. Here, ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is defined equal to the perturbed value, and ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " equal to 0." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData["initcond = AtT0[ q[1] == perturb,\n\tu[1]==0]"], "Input", AspectRatioFixed->True], Cell[OutputFormData["\<\ {qt[1][0] == 0.1170211768223861, ut[1][0] == 0}\ \>", "\<\ {q[1][0] == 0.117021, u[1][0] == 0}\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]], Cell[TextData[{ "The ", StyleBox["NDSolve", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " command then integrates the equations of motion. The full set of \ equations includes the equations of motion with parameters set, the \ kinematical differential equations provided by the Dynamics Workbench (and \ stored in ", StyleBox["Kinematics", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "), and the initial conditions. ", StyleBox["NDSolve", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " will solve for ", StyleBox["q[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and ", StyleBox["u[1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", from time 0 to 0.5 sec." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "trajectory = NDSolve[ Join[ eom/.parms, Kinematics, initcond],\n\t\ {q[1],u[1]}, {t,0.,4}];"], "Input", PageBreakWithin->Automatic, GroupPageBreakWithin->Automatic, AspectRatioFixed->True], Cell[TextData[ "We can then plot the trajectory vs. time, and verify that the pendulum \ oscillates about and gradually approaches the equilibrium point, verifying \ that it is stable. "], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell[TextData[ "Plot[ Evaluate[ q[1] /. trajectory ],\n\t{t, 0, 4}, \ PlotRange->{Automatic,{.1168,.1171}} ]"], "Input", AspectRatioFixed->True], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.238095 -240.621 2060.11 [ [(1)] .2619 .41202 0 2 Msboxa [(2)] .5 .41202 0 2 Msboxa [(3)] .7381 .41202 0 2 Msboxa [(4)] .97619 .41202 0 2 Msboxa [(0.1168)] .01131 0 1 0 Msboxa [(0.11685)] .01131 .10301 1 0 Msboxa [(0.1169)] .01131 .20601 1 0 Msboxa [(0.11695)] .01131 .30902 1 0 Msboxa [(0.11705)] .01131 .51503 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .2619 .41202 m .2619 .41827 L s P [(1)] .2619 .41202 0 2 Mshowa p .002 w .5 .41202 m .5 .41827 L s P [(2)] .5 .41202 0 2 Mshowa p .002 w .7381 .41202 m .7381 .41827 L s P [(3)] .7381 .41202 0 2 Mshowa p .002 w .97619 .41202 m .97619 .41827 L s P [(4)] .97619 .41202 0 2 Mshowa p .001 w .07143 .41202 m .07143 .41577 L s P p .001 w .11905 .41202 m .11905 .41577 L s P p .001 w .16667 .41202 m .16667 .41577 L s P p .001 w .21429 .41202 m .21429 .41577 L s P p .001 w .30952 .41202 m .30952 .41577 L s P p .001 w .35714 .41202 m .35714 .41577 L s P p .001 w .40476 .41202 m .40476 .41577 L s P p .001 w .45238 .41202 m .45238 .41577 L s P p .001 w .54762 .41202 m .54762 .41577 L s P p .001 w .59524 .41202 m .59524 .41577 L s P p .001 w .64286 .41202 m .64286 .41577 L s P p .001 w .69048 .41202 m .69048 .41577 L s P p .001 w .78571 .41202 m .78571 .41577 L s P p .001 w .83333 .41202 m .83333 .41577 L s P p .001 w .88095 .41202 m .88095 .41577 L s P p .001 w .92857 .41202 m .92857 .41577 L s P p .002 w 0 .41202 m 1 .41202 L s P p .002 w .02381 0 m .03006 0 L s P [(0.1168)] .01131 0 1 0 Mshowa p .002 w .02381 .10301 m .03006 .10301 L s P [(0.11685)] .01131 .10301 1 0 Mshowa p .002 w .02381 .20601 m .03006 .20601 L s P [(0.1169)] .01131 .20601 1 0 Mshowa p .002 w .02381 .30902 m .03006 .30902 L s P [(0.11695)] .01131 .30902 1 0 Mshowa p .002 w .02381 .51503 m .03006 .51503 L s P [(0.11705)] .01131 .51503 1 0 Mshowa p .001 w .02381 .0206 m .02756 .0206 L s P p .001 w .02381 .0412 m .02756 .0412 L s P p .001 w .02381 .0618 m .02756 .0618 L s P p .001 w .02381 .0824 m .02756 .0824 L s P p .001 w .02381 .12361 m .02756 .12361 L s P p .001 w .02381 .14421 m .02756 .14421 L s P p .001 w .02381 .16481 m .02756 .16481 L s P p .001 w .02381 .18541 m .02756 .18541 L s P p .001 w .02381 .22661 m .02756 .22661 L s P p .001 w .02381 .24721 m .02756 .24721 L s P p .001 w .02381 .26781 m .02756 .26781 L s P p .001 w .02381 .28842 m .02756 .28842 L s P p .001 w .02381 .32962 m .02756 .32962 L s P p .001 w .02381 .35022 m .02756 .35022 L s P p .001 w .02381 .37082 m .02756 .37082 L s P p .001 w .02381 .39142 m .02756 .39142 L s P p .001 w .02381 .43262 m .02756 .43262 L s P p .001 w .02381 .45322 m .02756 .45322 L s P p .001 w .02381 .47383 m .02756 .47383 L s P p .001 w .02381 .49443 m .02756 .49443 L s P p .001 w .02381 .53563 m .02756 .53563 L s P p .001 w .02381 .55623 m .02756 .55623 L s P p .001 w .02381 .57683 m .02756 .57683 L s P p .001 w .02381 .59743 m .02756 .59743 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p p .004 w .02381 .45565 m .02505 .4556 L .02629 .45552 L .02753 .45539 L .02877 .45521 L .03001 .45498 L .03125 .4547 L .03373 .45398 L .03621 .45306 L .03869 .45194 L .04365 .44911 L .05357 .44114 L .06349 .43025 L .08333 .40051 L .10317 .36211 L .14286 .27023 L .18254 .17819 L .20238 .13933 L .2123 .12287 L .22222 .10874 L .23214 .09701 L .24206 .08791 L .24702 .08435 L .25198 .08148 L .25694 .07931 L .25942 .07848 L .2619 .07783 L .26438 .07734 L .26563 .07716 L .26687 .07702 L .26811 .07693 L .26935 .07687 L .27059 .07686 L .27183 .07688 L .27307 .07695 L .27431 .07706 L .27555 .07721 L .27679 .0774 L .27927 .07792 L .28175 .07859 L .28671 .08044 L .29167 .08297 L .30159 .09002 L .31151 .09965 L .32143 .11147 L .34127 .14097 L .38095 .21604 L .42063 .29524 L .44048 .33018 L .46032 .35901 L Mistroke .47024 .3706 L .48016 .38016 L .48512 .38413 L .49008 .38753 L .49504 .39035 L .5 .3926 L .50496 .39428 L .50744 .39491 L .50992 .39541 L .5124 .39576 L .51364 .39589 L .51488 .39598 L .51612 .39604 L .51736 .39606 L .5186 .39605 L .51984 .396 L .52108 .39591 L .52232 .3958 L .5248 .39545 L .52728 .39496 L .52976 .39433 L .53472 .39263 L .53968 .39036 L .5496 .38403 L .55952 .37564 L .57937 .35347 L .61905 .29285 L .65873 .22503 L .67857 .19359 L .69841 .16661 L .70833 .15525 L .71825 .14558 L .72817 .13768 L .73313 .13444 L .7381 .13168 L .74306 .12939 L .74802 .12756 L .7505 .12682 L .75298 .12621 L .75546 .12571 L .75794 .12533 L .75918 .12519 L .76042 .12507 L .76166 .12499 L .7629 .12494 L .76414 .12492 L .76538 .12493 L .76662 .12497 L .76786 .12505 L .7691 .12515 L Mistroke .77034 .12529 L .77282 .12566 L .7753 .12616 L .77778 .12679 L .78274 .12843 L .7877 .1306 L .79762 .13627 L .80754 .14361 L .81746 .15252 L .85714 .20098 L .89683 .25899 L .93651 .31155 L .95635 .33167 L .97619 .34608 L Mfstroke P P P % End of Graphics MathPictureEnd \ \>"], "Graphics", Evaluatable->False, AspectRatioFixed->True, ImageSize->{282, 174}, ImageMargins->{{34, Inherited}, {Inherited, Inherited}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHggYjN[Vi^OShn03ooeGooj[oooclo5H/1EGooj[ooc/k>gYjN[Vi^OShn03o oclo?ginO[fm_Oclo5D00:X00?l00000EED0EJX00=d81Slo?ginO[fm_Oclo0<30d92@X61PL30`000 EED0EJX0EOl0E@00ZUD0ZZX0E@<30d92@X61PL30`000E@L71dI6AXF5QLC4a000ZUD0ZZX0Z_l0ZP00 e5D0ojX0ZPL71dI6AXF5QLC4a000ZP/;2dY:BXV9RLS8b000oeD0ojX0ool0o`1E05EE0:X0o`/;2dY: BXV9RLS8b000o`l?3di>CXf=SLcCXf=SLcX0000800;o2@02o`@00_l500?o0`02o`D000?o0000 jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000 jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000 jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000jP0002d000?o0000 =`04ojl0000]0003o`0003<01?l300?o[@0002d000?o0000`000ol0000e0003o`0001/0000]0003 o`0001`000?o0000=`000ol0000j0003o`0003L000?o00006P0002d000?o00006`000ol0000i0003 o`0003T000?o0000=`000ol0000J0000;@000ol0000K0003o`0003T000?o0000>0000ol0000i0003 o`0001T0000]0003o`0001/000?o0000>P000ol0000f0003o`0003/000?o0000600002d000?o0000 6P000ol0000k0003o`0003H000?o0000>`000ol0000H0000;@000ol0000J0003o`0003/000?o0000 =@000ol0000m0003o`0001L0000]0003o`0001T000?o0000?@000ol0000c0003o`0003l000?o0000 5P0002d000?o00006@000ol0000m0003o`0003<000?o0000@0000ol0000E0000;@000ol0000H0003 o`0003l000?o0000<@000ol000110003o`0001D0000]0003o`0001P000?o0000?`000ol0000a0003 o`00048000?o0000500002d000?o000060000ol000100003o`0002l000?o0000A0000ol0000C0000 ;@000ol0000G0003o`00044000?o0000;P000ol000160003o`000180000]0003o`0001L000?o0000 @P000ol0000]0003o`0004L000?o00004@0000800_l400;o0`03o`<00ol400;o0`03o`<00ol50003 o`0001H000?o0000@`000ol0000/0003o`0004P000?o00004@0000050?l00?l00`02o`@000?o0000 0`000ol000020004o`00o`D000?o00000`000ol000020003o`0001H000?o0000A0000ol0000Z0003 o`0004X000?o0000400000050?l00?l02@000ol000030003o`00008000Co003o0`03o`D000?o0000 0P02oaL000?o0000A@000ol0000Y0003o`0004/000?o00003`0000050?l00?l02@000ol000030003 o`0000800ol30004o`00o`800ol50003o`0001D000?o0000AP000ol0000X0003o`0004d000?o0000 3P0000050?l00?l02@000ol000030003o`00008000?o00000`001?l00?l20003o`0000D000?o0000 5@000ol000170003o`0002L000?o0000CP000ol0000=00000P02o`T00_l400;o1@03o`<00_l300Co 10000ol0000D0003o`0004P000?o00009P000ol0001@0003o`0000`0000]0003o`0001@000?o0000 B@000ol0000T0003o`00058000?o00002`0002d000?o00004`000ol0001;0003o`0002<000?o0000 D`000ol0000:0000;@000ol0000C0003o`0004/000?o00008P000ol0001E00;o2P0002d000?o0000 4`000ol0001<0003o`00024000?o0000E`02o`P0000]0003o`00018000?o0000CP000ol0000O0003 o`0005X000?o00001@0002d000?o00004P000ol0001?0003o`0001d000?o0000G0000ol000040000 ;@000ol0000A0003o`00050000?o00007@000ol0001S0000;@000ol0000A0003o`00054000?o0000 6`000ol0001T0000;@000ol0000A0003o`00058000?o00006@000ol0001U0000;@000ol0000@0003 o`0002400ol_0003o`0000D01?l?0003o`0002<00olh00?o1@0002d000?o000040000ol0000R0003 o`0002l000?o00001@000ol0000>0003o`0002L000?o0000=P000ol000040000;@000ol0000?0003 o`0002<000?o0000<0000ol000050003o`0000`000?o0000:0000ol0000d00Co1@0002d000?o0000 3`000ol0000S0003o`00034000?o00001@000ol0000900;o:@02ocL000?o0?l01P0002d000?o0000 3P000ol0000T0003o`00038000Go0000o`020003o`0000P000?o0000:`000ol0000d0003o`3o00H0 000]0003o`0000d000?o00009002ocD000Co00000_l:0003o`0002T00olh00;o1P0002d000?o0000 3@000ol0001L00;o30000ol0001]0000;@000ol0000<0003o`0005l00_l90003o`0006h0000]0003 o`0000`000?o0000H@09og40000]0003o`0000/000?o0000g00002d000?o00002`000ol0003L0000 ;@000ol0000:0003o`000=d0000W0?;o0@0002d000?o00002002o`X000?o000020000ol000090003 o`0000P000?o00002@000ol000080003o`0000T000?o000020000ol000090003o`0000P000?o0000 2@000ol000080003o`0000T000?o000020000ol000090003o`0000P000?o00002@000ol000080003 o`0000T000?o0000100002d000?o000020000ol0000[0003o`0003L000?o0000=P000ol0000g0003 o`0000@0000]0003o`0000P000?o0000g`0002d000?o00001`000ol0003P0000;@000ol000060003 o`000>40000]0003o`0000D000?o0000hP0002d000?o00000`02onD0000]0003o`00008000?o0000 i@0002d000Go0000o`3X0000;@001?l0oooY0000;@02on/0000]0003o`000>X0000]0003o`000>X0 000]0003o`000>X0000]0003o`000>X0000]0003o`000>X0000]0003o`000>X0000]0003o`000>X0 000]0003o`000>X0000]0003o`000>X0000]0003o`000>X0000]0003o`000>X0000200;o1002o`<0 0ol300?o10000ol0000300;o0`03o`D000?o0000jP0000050?l00?l00`02o`@000?o00000`000ol0 00030003o`00008000Co003o1@000ol000020003o`000>X000001@3o003o00T000?o00000`000ol0 00040005o`000?l00P000ol000030003o`0000800_o[000000D0o`00o`090003o`0000<000?o0000 10001Ol0003o008000?o00000ol50003o`000>X000001@3o003o00T000?o00000`000ol000050004 o`00o`8000Co003o1`000ol0003Z00000P02o`T00_l400;o1004o`<00_l300Co10000ol0003Z0000 ;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000 ;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000 ;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000 ;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000;@000ol0003Z0000 ;@000ol0003Z0000;@000ol0003Z0000o`0K0000o`0K0000o`0K0000o`0K0000o`0K0000o`0K0000 o`0K0000o`0K0000o`0K0000\ \>"], ImageRangeCache->{{{0, 281}, {173, 0}} -> {-0.782993, 0.116771, 0.0173922, 2.01009*^-6}}], Cell[OutputFormData["\<\ Graphics[\"<<>>\"]\ \>", "\<\ -Graphics-\ \>"], "Output", Evaluatable->False, AspectRatioFixed->True] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, FrontEndVersion->"4.0 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 687}}, WindowToolbars->{"RulerBar", "EditBar"}, CellGrouping->Automatic, WindowSize->{520, 653}, WindowMargins->{{124, Automatic}, {Automatic, 1}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, 128}}, ShowCellLabel->True, ShowCellTags->False, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, CharacterEncoding->"MacintoshAutomaticEncoding" ] (*********************************************************************** Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. ***********************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1739, 51, 116, 3, 150, "Title", Evaluatable->False], Cell[1858, 56, 253, 5, 89, "Subsubtitle", Evaluatable->False], Cell[CellGroupData[{ Cell[2136, 65, 103, 2, 53, "Section", Evaluatable->False], Cell[2242, 69, 201, 4, 52, "Text", Evaluatable->False], Cell[2446, 75, 72, 1, 30, "Input"], Cell[2521, 78, 113, 2, 33, "Text", Evaluatable->False], Cell[2637, 82, 53, 1, 30, "Input"], Cell[2693, 85, 519, 16, 73, "Text", Evaluatable->False], Cell[3215, 103, 12184, 155, 154, 12044, 150, "GraphicsData", "Bitmap", \ "Graphics", Evaluatable->False], Cell[15402, 260, 1570, 53, 189, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[16997, 317, 134, 3, 48, "Input"], Cell[17134, 322, 122, 6, 27, "Output", Evaluatable->False] }, Open ]], Cell[17271, 331, 1398, 51, 134, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[18694, 386, 99, 2, 47, "Subsection", Evaluatable->False], Cell[18796, 390, 666, 21, 92, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[19487, 415, 75, 1, 30, "Input"], Cell[19565, 418, 104, 6, 27, "Output", Evaluatable->False] }, Open ]], Cell[19684, 427, 238, 9, 34, "Text", Evaluatable->False], Cell[19925, 438, 75, 1, 30, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[20037, 444, 99, 2, 47, "Subsection", Evaluatable->False], Cell[20139, 448, 9151, 117, 154, 8953, 111, "GraphicsData", "Bitmap", \ "Graphics", Evaluatable->False], Cell[29293, 567, 860, 30, 93, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[30178, 601, 78, 1, 30, "Input"], Cell[30259, 604, 125, 6, 27, "Output", Evaluatable->False] }, Open ]], Cell[30399, 613, 647, 25, 74, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[31071, 642, 88, 1, 30, "Input"], Cell[31162, 645, 182, 7, 27, "Output", Evaluatable->False] }, Open ]], Cell[31359, 655, 606, 24, 54, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[31990, 683, 98, 1, 30, "Input"], Cell[32091, 686, 190, 8, 27, "Output", Evaluatable->False] }, Open ]], Cell[32296, 697, 555, 20, 73, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[32876, 721, 91, 1, 30, "Input"], Cell[32970, 724, 1018, 44, 187, "Output", Evaluatable->False] }, Open ]], Cell[34003, 771, 647, 29, 54, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[34675, 804, 77, 1, 30, "Input"], Cell[34755, 807, 104, 6, 27, "Output", Evaluatable->False] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[34908, 819, 105, 2, 47, "Subsection", Evaluatable->False], Cell[35016, 823, 998, 36, 94, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[36039, 863, 114, 2, 48, "Input"], Cell[36156, 867, 104, 6, 27, "Output", Evaluatable->False] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[36309, 879, 104, 2, 47, "Subsection", Evaluatable->False], Cell[36416, 883, 506, 20, 54, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[36947, 907, 54, 1, 30, "Input"], Cell[37004, 910, 1336, 60, 267, "Output", Evaluatable->False] }, Open ]], Cell[38355, 973, 234, 5, 52, "Text", Evaluatable->False], Cell[38592, 980, 129, 3, 48, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[38758, 988, 107, 2, 47, "Subsection", Evaluatable->False], Cell[38868, 992, 928, 27, 131, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[39821, 1023, 125, 3, 48, "Input"], Cell[39949, 1028, 153, 7, 27, "Output", Evaluatable->False] }, Open ]], Cell[40117, 1038, 625, 21, 73, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[40767, 1063, 114, 2, 48, "Input"], Cell[40884, 1067, 169, 7, 27, "Output", Evaluatable->False] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[41102, 1080, 117, 2, 47, "Subsection", Evaluatable->False], Cell[41222, 1084, 370, 6, 90, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[41617, 1094, 86, 1, 30, "Input"], Cell[41706, 1097, 129, 7, 27, "Output", Evaluatable->False] }, Open ]], Cell[41850, 1107, 490, 19, 54, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[42365, 1130, 98, 1, 48, "Input"], Cell[42466, 1133, 185, 7, 27, "Output", Evaluatable->False] }, Open ]], Cell[42666, 1143, 873, 32, 93, "Text", Evaluatable->False], Cell[43542, 1177, 210, 5, 66, "Input", PageBreakWithin->Automatic], Cell[43755, 1184, 244, 5, 52, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[44024, 1193, 146, 3, 48, "Input"], Cell[44173, 1198, 14032, 593, 182, 5145, 478, "GraphicsData", "PostScript", \ "Graphics", Evaluatable->False], Cell[58208, 1793, 131, 7, 27, "Output", Evaluatable->False] }, Open ]] }, Open ]] }, Open ]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)