diff --git a/implementation/SCARA/02_physics/scara_physics.emx b/implementation/SCARA/02_physics/scara_physics.emx new file mode 100644 index 0000000..4d6960c --- /dev/null +++ b/implementation/SCARA/02_physics/scara_physics.emx @@ -0,0 +1,1266 @@ + + + + + + 4.8 +0 + False + C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\02_physics\scara_physics.emx + 2020-7-14 13:32:16 + + + parameters + real A = 0.05 {m}; + real B = 0.05 {m}; +variables + real J0_1_BF1[2]; + real J1_2_BF1[2]; + real J1_2_BF2[2]; +initialequations + +'; + type Mainmodel + end; + implementation bg + submodels + Integrate 280 248 + description ' + + 4.3 +1 + False + Signal\Block Diagram\Integrate.emx + 2013-3-8 14:47:42 + +'; + type Integrate + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + rectangle 264 232 296 264 color 0 fill 15132390; + text '∫' 280 248.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real initial = 0; // initial value +equations + output = int (input, initial); + implementation_end; + Integrate1 680 248 + description ' + + 4.3 +1 + False + Signal\Block Diagram\Integrate.emx + 2013-3-8 14:47:42 + +'; + type Integrate + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + rectangle 664 232 696 264 color 0 fill 15132390; + text '∫' 680 248.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real initial = 0; // initial value +equations + output = int (input, initial); + implementation_end; + MSe 504 96 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + power out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 504 96 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + MSe1 72 168 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + power out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 72 168 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + OneJunction 304 304 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 304 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction1 304 456 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 304 456 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction10 704 168 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 704 168 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction11 864 448 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 864 448 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction12 584 304 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 584 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction3 312 168 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 312 168 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction5 152.3 304 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 152.3 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction6 152 456 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 152 456 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 704 304 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 704 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 704 456 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 704 456 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction9 864 304 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [2,1]; + signal knot out flow [2,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 864 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PlusMinus1 512 336 + description '4.01False + Signal\Block Diagram\PlusMinus.emx + 2007-9-27 10:15:13 +'; + knot PlusMinus + ports + signal knot duplicatable in plus [1]; + signal knot duplicatable in minus [1]; + signal knot out output [1]; + end; + icon bg ellipse + figures + ellipse 504 328 520 344 color 0 fill 16777215; + end; + implementation eq +equations + output = sum (collect (plus)) - sum (collect (minus)); + implementation_end; + RTF 304 368 + description ' + + 4.8 +1 + False + Bond Graph\2D\RTF-2.emx + 2020-7-14 12:43:04 + +'; + type 'TF-2' + ports + power in p1 [2,1]; + power out p2 [2,1]; + signal in angle {rad} ; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'RTF' 304 368 color 0 18 bold; + end; + implementation eq +/* +2D rotation transformer. Takes an angle as input and then rotates the dimensions +*/ +variables + real r[2,2]; +equations + r = [cos(angle), -sin(angle); sin(angle), cos(angle)]; + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + RTF1 512 304 + description ' + + 4.8 +1 + False + Bond Graph\2D\RTF-2.emx + 2020-7-14 12:43:04 + +'; + type 'TF-2' + ports + power in p1 [2,1]; + power out p2 [2,1]; + signal in angle {rad} ; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'RTF' 512 304 color 0 18 bold; + end; + implementation eq +/* +2D rotation transformer. Takes an angle as input and then rotates the dimensions +*/ +variables + real r[2,2]; +equations + r = [cos(angle), -sin(angle); sin(angle), cos(angle)]; + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + RTF2 152 368 + description ' + + 4.8 +1 + False + Bond Graph\2D\RTF-2.emx + 2020-7-14 12:43:04 + +'; + type 'TF-2' + ports + power in p1 [2,1]; + power out p2 [2,1]; + signal in angle {rad} ; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'RTF' 152 368 color 0 18 bold; + end; + implementation eq +/* +2D rotation transformer. Takes an angle as input and then rotates the dimensions +*/ +variables + real r[2,2]; +equations + r = [cos(angle), -sin(angle); sin(angle), cos(angle)]; + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + RTF3 704 368 + description ' + + 4.8 +1 + False + Bond Graph\2D\RTF-2.emx + 2020-7-14 12:43:04 + +'; + type 'TF-2' + ports + power in p1 [2,1]; + power out p2 [2,1]; + signal in angle {rad} ; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'RTF' 704 368 color 0 18 bold; + end; + implementation eq +/* +2D rotation transformer. Takes an angle as input and then rotates the dimensions +*/ +variables + real r[2,2]; +equations + r = [cos(angle), -sin(angle); sin(angle), cos(angle)]; + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + RTF4 864 360 + description ' + + 4.8 +1 + False + Bond Graph\2D\RTF-2.emx + 2020-7-14 12:43:04 + +'; + type 'TF-2' + ports + power in p1 [2,1]; + power out p2 [2,1]; + signal in angle {rad} ; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'RTF' 864 360 color 0 18 bold; + end; + implementation eq +/* +2D rotation transformer. Takes an angle as input and then rotates the dimensions +*/ +variables + real r[2,2]; +equations + r = [cos(angle), -sin(angle); sin(angle), cos(angle)]; + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + Splitter1 280 336 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [1]; + signal knot in input [1]; + end; + icon bg ellipse + figures + ellipse 276.8 332.8 283.2 339.2 color -1 fill 0; + ellipse 275.7 331.7 284.3 340.3 color -1; + terminals + input 280 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter2 680 336 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [1]; + signal knot in input [1]; + end; + icon bg ellipse + figures + ellipse 676.8 332.8 683.2 339.2 color -1 fill 0; + ellipse 675.7 331.7 684.3 340.3 color -1; + terminals + input 680 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + TF 384 224 + description ' + + 4.8 +1 + False + Bond Graph\2D\XTF-2.emx + 2020-7-14 13:20:33 + +'; + type 'TF-2' + ports + power in p1; + power out p2 [2,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'XTF' 384 224 color 0 18 bold; + end; + implementation eq +parameters + real x; + real y; +variables + real r[2,1]; +initialequations + r = [-y; x]; +equations + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + TF1 232.3 224 + description ' + + 4.8 +1 + False + Bond Graph\2D\XTF-2.emx + 2020-7-14 13:20:33 + +'; + type 'TF-2' + ports + power in p1; + power out p2 [2,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'XTF' 232.3 224 color 0 18 bold; + end; + implementation eq +parameters + real x; + real y; +variables + real r[2,1]; +initialequations + r = [-y; x]; +equations + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + TF2 784 224 + description ' + + 4.8 +1 + False + Bond Graph\2D\XTF-2.emx + 2020-7-14 13:20:33 + +'; + type 'TF-2' + ports + power in p1; + power out p2 [2,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'XTF' 784 224 color 0 18 bold; + end; + implementation eq +parameters + real x; + real y; +variables + real r[2,1]; +initialequations + r = [-y; x]; +equations + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + TF3 632.3 224 + description ' + + 4.8 +1 + False + Bond Graph\2D\XTF-2.emx + 2020-7-14 13:20:33 + +'; + type 'TF-2' + ports + power in p1; + power out p2 [2,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'XTF' 632.3 224 color 0 18 bold; + end; + implementation eq +parameters + real x; + real y; +variables + real r[2,1]; +initialequations + r = [-y; x]; +equations + p1.e = transpose (r) * p2.e; + p2.f = r * p1.f; +implementation_end; + ZeroJunction 384 304 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [2,1]; + signal knot out effort [2,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 384 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.f)) = 0; + equal (collect (p.e)); + effort = first (p.e); +implementation_end; + ZeroJunction1 232.3 304 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [2,1]; + signal knot out effort [2,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 232.3 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.f)) = 0; + equal (collect (p.e)); + effort = first (p.e); +implementation_end; + ZeroJunction2 784 304 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [2,1]; + signal knot out effort [2,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 784 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.f)) = 0; + equal (collect (p.e)); + effort = first (p.e); +implementation_end; + ZeroJunction3 632.3 304 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [2,1]; + signal knot out effort [2,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 632.3 304 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.f)) = 0; + equal (collect (p.e)); + effort = first (p.e); +implementation_end; + ZeroJunction4 504 168 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [1]; + signal knot out effort [1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 168 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.f)) = 0; + equal (collect (p.e)); + effort = first (p.e); +implementation_end; + end; + connections + Integrate\output -> Splitter1\input; + Integrate1\output -> Splitter2\input; + MSe1\p => OneJunction3\p; + OneJunction\p => RTF\p1; + OneJunction\p => ZeroJunction\p; + OneJunction\p => ZeroJunction1\p; + OneJunction10\flow -> Integrate1\input; + OneJunction10\p => TF2\p1; + OneJunction10\p => TF3\p1; + OneJunction3\flow -> Integrate\input; + OneJunction3\p => TF\p1; + OneJunction3\p => TF1\p1; + OneJunction3\p => ZeroJunction4\p; + OneJunction5\p => RTF2\p1; + OneJunction7\p => RTF3\p1; + OneJunction7\p => ZeroJunction2\p; + OneJunction7\p => ZeroJunction3\p; + OneJunction9\p => RTF4\p1; + PlusMinus1\output -> RTF1\angle; + RTF\p2 => OneJunction1\p; + RTF1\p2 => OneJunction12\p; + RTF2\p2 => OneJunction6\p; + RTF3\p2 => OneJunction8\p; + RTF4\p2 => OneJunction11\p; + Splitter1\output -> PlusMinus1\plus; + Splitter1\output -> RTF\angle 280 344; + Splitter1\output -> RTF2\angle 176 336; + Splitter2\output -> PlusMinus1\minus; + Splitter2\output -> RTF3\angle 680 344; + Splitter2\output -> RTF4\angle 832 336; + TF\p2 => ZeroJunction\p; + TF1\p2 => ZeroJunction1\p; + TF2\p2 => ZeroJunction2\p; + TF3\p2 => ZeroJunction3\p; + ZeroJunction\p => RTF1\p1; + ZeroJunction1\p => OneJunction5\p; + ZeroJunction2\p => OneJunction9\p; + ZeroJunction3\p => OneJunction12\p; + ZeroJunction4\p <= MSe\p; + ZeroJunction4\p => OneJunction10\p; + end; + implementation_end; +]]> + + + + + + + Experiment 1 + + + + 4.8 + + + + + + + time + + + + GraphPlot + + 1 + false + 16777215 + true + + + true + 15780518 + 12624260 + 0 + 10 + 10 + 10 + false + + 16777215 + true + 1 + model + true + + + Arial + 12 + 34 + 400 + 0 + 0 + 0 + 0 + + + Arial + 12 + 34 + 400 + 0 + 0 + 0 + 0 + + + Arial + 10 + 34 + 400 + 0 + 0 + 0 + 0 + + + Arial + 12 + 34 + 400 + 0 + 0 + 0 + 0 + + + true + true + false + + + 0.0 + 10.0 + true + 3 + + + + + + 0.0 + 10.0 + true + 2 + + + + + + + + 3355111 + 1 + 3355111 + 0 + true + 1 + 1 + 1 + true + + true + time + + + + + true + 0 + 16777215 + + + + + + 1 + true + Window 1 + 0 + + 1 + + Base + + + + + + 0.0 + 10.0 + false + false + false + false + 0.1 + 1.0e-6 + 1.0e-7 + false + true + + + + Euler + 0.01 + false + + + BackwardEuler + 1.0e-5 + 1.0e-5 + 1.0e-5 + 1.0e-5 + 0.01 + 1.0 + + + AdamsBashforth + 0.01 + false + + + RungeKutta2 + 0.01 + false + + + RungeKutta4 + 0.01 + false + + + RungeKutta8 + false + 0.001 + false + 1.0 + 1.0e-6 + 1.0e-6 + 0.9 + 0.33 + 6.0 + 0.0 + false + 100000 + false + 1000 + + + RungeKuttaFehlberg + false + 0.001 + false + 1.0 + 1.0e-6 + 1.0e-6 + + + VodeAdams + false + 0.001 + false + 1.0 + 1.0e-6 + 1.0e-6 + true + true + + + BDFMethod + 1.0e-5 + 1.0e-5 + 1.0e-5 + 1.0e-5 + false + 0.001 + false + 1.0 + + + MeBDFiMethod + 1.0e-5 + 1.0e-5 + 1.0e-5 + 1.0e-5 + false + 0.001 + false + 1.0 + + 8 + + + + 10 + false + true + true + false + true + 0 + 0.0 + true + MultipleRun + true + + UseEndValue + 0.001 + BroydonFletcherGoldfarbShanno + + + + + true + true + true + true + + + false + + + time + + + + + + + + + + +