diff --git a/implementation/SCARA/06_arm/arm_model-v2.emx b/implementation/SCARA/06_arm/arm_model-v2.emx new file mode 100644 index 0000000..0a4b528 --- /dev/null +++ b/implementation/SCARA/06_arm/arm_model-v2.emx @@ -0,0 +1,10134 @@ + + + + + + 4.8 +0 + False + C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model-v2.emx + 2020-7-23 13:55:45 + +'; + type Mainmodel + end; + implementation bg + submodels + Body1 720 464 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.01;0.065] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + Body2 360 560 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.025;0.01] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + Body3 272 448 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.01;0.065] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + Body4 680 192 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.05;0.01] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + Body5 848 224 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.025;0.01] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + Body6 960 224 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq +parameters + real dimension[3] = [0.005;0.025;0.01] {m}; +variables + real position[3]; + real rotation[3]; + real R[3,3]; +equations + position = input[1:3,4]; + rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); + //[input[3,2];input[1,3];input[2,1]]; + R = input[1:3,1:3];implementation_end; + COM_body1 624 352 + description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters + real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s}; + real m = 0.00455 {kg};'; + type Submodel + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power out p [6,1]; + end; + icon bg bottom + figures + rectangle 608 320 640 384 color 0 fill 139; + text 'COM' 624 352 color 0 'Clear Sans' 16; + terminals + Hin 608 336 fixed; + p 608 368 fixed; + end; + implementation bg + submodels + AdHi0 544 400 + description '4.01False2007-9-25 12:3:3True'; + type MTF + ports + power in p1 [6,1]; + power out p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg left + figures + text 'MTF' 544 400 color 0 18 bold; + end; + implementation eq +variables + real onlyRotH[4,4]; +code + //Only rotations with respect to the inertial system matter! + onlyRotH = H; + onlyRotH[1,4] = 0; + onlyRotH[2,4] = 0; + onlyRotH[3,4] = 0; + + p2.e = transpose(Adjoint(onlyRotH)) * p1.e; + p1.f = Adjoint(onlyRotH) * p2.f; +implementation_end; + EJS 616 336 + description '4.01False2007-10-31 11:43:6True'; + type MGY + ports + power in p1 [6,1]; + end; + icon bg top + figures + text 'MGY' 616 336 color 0 18 bold; + end; + implementation eq +//EJS / Gyroscopic effects +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Q[6,6]; + real QI[6,6]; + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + Q = transpose(adjoint(p1.f)); + QI = Q*II; + p1.e = QI*p1.f;implementation_end; + Gravity 624 400 + description '4.01False2007-9-25 12:3:26True'; + type Se + ports + power out p [6,1]; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'Se' 624 400 color 0 18 bold; + end; + implementation eq +parameters + real global m; +variables + real effort[6]; +equations + effort = [0;0;0;0;0;-g_n*m]; + p.e = effort; +implementation_end; + InertialTensor 544 272 + description '4.01False + Bond Graph\3D\I-3.emx + 2007-9-25 12:12:14 +'; + type 'I-3' + ports + power in p [6,1]; + signal out state [6,1]; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 544 272 color 0 18 bold; + end; + implementation eq +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + state = int(p.e); //state = generalized momentum + p.f = inverse(II)*state; +implementation_end; + plug Hin 433.4 496; + plug Hout 691.2 496; + plug p 439.4 336; + Splitter1 544 496 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; + ellipse 539.7 491.7 548.3 500.3 color -1; + terminals + input 544 496 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Ta0j 544 336 + description ' + 4.0 + 1 + False + Bond Graph\OneJunction.emx + 2007-9-27 9:51:18 + True + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg bottom + figures + text '1' 544 336 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + ZeroJunction1 504 336 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 336 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 + AdHi0\p2 => Ta0j\p; + Gravity\p => AdHi0\p1; + Hin -> Splitter1\input; + Splitter1\output -> AdHi0\H; + Splitter1\output -> Hout; + Ta0j\p => EJS\p1; + Ta0j\p => InertialTensor\p; + ZeroJunction1\p => p; + ZeroJunction1\p => Ta0j\p; + end; + implementation_end; + COM_body2 344 704 + description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters + real density = 1400 {kg/m3}; + real dimension[3] = [0.005;0.025;0.01] {m}; +variables + real I[3,1] {N.m.s}; + real m {kg}; +initialequations + m = dimension[1] * dimension[2] * dimension[3] * density; + I[1] = m/12 * ( dimension[2]^2 + dimension[3]^2); + I[2] = m/12 * ( dimension[1]^2 + dimension[3]^2); + I[3] = m/12 * ( dimension[1]^2 + dimension[2]^2);'; + type Submodel + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power out p [6,1]; + end; + icon bg bottom + figures + rectangle 312 688 376 720 color 0 fill 139; + text 'COM' 344 704 color 0 'Clear Sans' 16; + terminals + Hin 360 688 fixed; + p 328 688 fixed; + end; + implementation bg + submodels + AdHi0 544 400 + description '4.01False2007-9-25 12:3:3True'; + type MTF + ports + power in p1 [6,1]; + power out p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg left + figures + text 'MTF' 544 400 color 0 18 bold; + end; + implementation eq +variables + real onlyRotH[4,4]; +code + //Only rotations with respect to the inertial system matter! + onlyRotH = H; + onlyRotH[1,4] = 0; + onlyRotH[2,4] = 0; + onlyRotH[3,4] = 0; + + p2.e = transpose(Adjoint(onlyRotH)) * p1.e; + p1.f = Adjoint(onlyRotH) * p2.f; +implementation_end; + EJS 624 336 + description '4.01False2007-10-31 11:43:6True'; + type MGY + ports + power in p1 [6,1]; + end; + icon bg top + figures + text 'MGY' 624 336 color 0 18 bold; + end; + implementation eq +//EJS / Gyroscopic effects +variables + real global I[3]; + real global m; + real II[6,6]; //Inertial tensor + real Q[6,6]; + real QI[6,6]; + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + Q = transpose(adjoint(p1.f)); + QI = Q*II; + p1.e = QI*p1.f;implementation_end; + Gravity 624 400 + description '4.01False2007-9-25 12:3:26True'; + type Se + ports + power out p [6,1]; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'Se' 624 400 color 0 18 bold; + end; + implementation eq +variables + real global m; + real effort[6]; +equations + effort = [0;0;0;0;0;-g_n*m]; + p.e = effort; +implementation_end; + InertialTensor 544 256 + description '4.01False + Bond Graph\3D\I-3.emx + 2007-9-25 12:12:14 +'; + type 'I-3' + ports + power in p [6,1]; + signal out state [6,1]; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 544 256 color 0 18 bold; + end; + implementation eq +variables + real global I[3]; + real global m; + real II[6,6]; //Inertial tensor + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + state = int(p.e); //state = generalized momentum + p.f = inverse(II)*state; +implementation_end; + plug Hin 433.4 496; + plug Hout 691.2 496; + plug p 439.4 336; + Splitter1 544 496 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; + ellipse 539.7 491.7 548.3 500.3 color -1; + terminals + input 544 496 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Ta0j 544 336 + description ' + 4.0 + 1 + False + Bond Graph\OneJunction.emx + 2007-9-27 9:51:18 + True + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg bottom + figures + text '1' 544 336 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + ZeroJunction1 504 336 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 336 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 + AdHi0\p2 => Ta0j\p; + Gravity\p => AdHi0\p1; + Hin -> Splitter1\input; + Splitter1\output -> AdHi0\H; + Splitter1\output -> Hout; + Ta0j\p => EJS\p1; + Ta0j\p => InertialTensor\p; + ZeroJunction1\p => p; + ZeroJunction1\p => Ta0j\p; + end; + implementation_end; + COM_body3 272 328 + description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters + real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s}; + real m = 0.00455 {kg};'; + type Submodel + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power out p [6,1]; + end; + icon bg bottom + figures + rectangle 256 296 288 360 color 0 fill 139; + text 'COM' 272 328 color 0 'Clear Sans' 16; + terminals + Hin 256 312 fixed; + p 256 344 fixed; + end; + implementation bg + submodels + AdHi0 544 400 + description '4.01False2007-9-25 12:3:3True'; + type MTF + ports + power in p1 [6,1]; + power out p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg left + figures + text 'MTF' 544 400 color 0 18 bold; + end; + implementation eq +variables + real onlyRotH[4,4]; +code + //Only rotations with respect to the inertial system matter! + onlyRotH = H; + onlyRotH[1,4] = 0; + onlyRotH[2,4] = 0; + onlyRotH[3,4] = 0; + + p2.e = transpose(Adjoint(onlyRotH)) * p1.e; + p1.f = Adjoint(onlyRotH) * p2.f; +implementation_end; + EJS 616 336 + description '4.01False2007-10-31 11:43:6True'; + type MGY + ports + power in p1 [6,1]; + end; + icon bg top + figures + text 'MGY' 616 336 color 0 18 bold; + end; + implementation eq +//EJS / Gyroscopic effects +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Q[6,6]; + real QI[6,6]; + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + Q = transpose(adjoint(p1.f)); + QI = Q*II; + p1.e = QI*p1.f;implementation_end; + Gravity 624 400 + description '4.01False2007-9-25 12:3:26True'; + type Se + ports + power out p [6,1]; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'Se' 624 400 color 0 18 bold; + end; + implementation eq +parameters + real global m; +variables + real effort[6]; +equations + effort = [0;0;0;0;0;-g_n*m]; + p.e = effort; +implementation_end; + InertialTensor 544 272 + description '4.01False + Bond Graph\3D\I-3.emx + 2007-9-25 12:12:14 +'; + type 'I-3' + ports + power in p [6,1]; + signal out state [6,1]; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 544 272 color 0 18 bold; + end; + implementation eq +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + state = int(p.e); //state = generalized momentum + p.f = inverse(II)*state; +implementation_end; + plug Hin 433.4 496; + plug Hout 691.2 496; + plug p 439.4 336; + Splitter1 544 496 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; + ellipse 539.7 491.7 548.3 500.3 color -1; + terminals + input 544 496 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Ta0j 544 336 + description ' + 4.0 + 1 + False + Bond Graph\OneJunction.emx + 2007-9-27 9:51:18 + True + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg bottom + figures + text '1' 544 336 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + ZeroJunction1 504 336 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 336 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 + AdHi0\p2 => Ta0j\p; + Gravity\p => AdHi0\p1; + Hin -> Splitter1\input; + Splitter1\output -> AdHi0\H; + Splitter1\output -> Hout; + Ta0j\p => EJS\p1; + Ta0j\p => InertialTensor\p; + ZeroJunction1\p => p; + ZeroJunction1\p => Ta0j\p; + end; + implementation_end; + COM_body4 560 48 + description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters + real I [3,1] = [7.583333333333335e-7; 3.645833333333334e-8; 7.364583333333335e-7] {N.m.s}; + real m = 0.0035 {kg};'; + type Submodel + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power out p [6,1]; + end; + icon bg bottom + figures + rectangle 528 32 592 64 color 0 fill 139; + text 'COM' 560 48 color 0 'Clear Sans' 16; + terminals + Hin 576 64 fixed; + p 544 64 fixed; + end; + implementation bg + submodels + AdHi0 544 400 + description '4.01False2007-9-25 12:3:3True'; + type MTF + ports + power in p1 [6,1]; + power out p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg left + figures + text 'MTF' 544 400 color 0 18 bold; + end; + implementation eq +variables + real onlyRotH[4,4]; +code + //Only rotations with respect to the inertial system matter! + onlyRotH = H; + onlyRotH[1,4] = 0; + onlyRotH[2,4] = 0; + onlyRotH[3,4] = 0; + + p2.e = transpose(Adjoint(onlyRotH)) * p1.e; + p1.f = Adjoint(onlyRotH) * p2.f; +implementation_end; + EJS 616 336 + description '4.01False2007-10-31 11:43:6True'; + type MGY + ports + power in p1 [6,1]; + end; + icon bg top + figures + text 'MGY' 616 336 color 0 18 bold; + end; + implementation eq +//EJS / Gyroscopic effects +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Q[6,6]; + real QI[6,6]; + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + Q = transpose(adjoint(p1.f)); + QI = Q*II; + p1.e = QI*p1.f;implementation_end; + Gravity 624 400 + description '4.01False2007-9-25 12:3:26True'; + type Se + ports + power out p [6,1]; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'Se' 624 400 color 0 18 bold; + end; + implementation eq +parameters + real global m; +variables + real effort[6]; +equations + effort = [0;0;0;0;0;-g_n*m]; + p.e = effort; +implementation_end; + InertialTensor 544 272 + description '4.01False + Bond Graph\3D\I-3.emx + 2007-9-25 12:12:14 +'; + type 'I-3' + ports + power in p [6,1]; + signal out state [6,1]; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 544 272 color 0 18 bold; + end; + implementation eq +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + state = int(p.e); //state = generalized momentum + p.f = inverse(II)*state; +implementation_end; + plug Hin 433.4 496; + plug Hout 691.2 496; + plug p 439.4 336; + Splitter1 544 496 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; + ellipse 539.7 491.7 548.3 500.3 color -1; + terminals + input 544 496 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Ta0j 544 336 + description ' + 4.0 + 1 + False + Bond Graph\OneJunction.emx + 2007-9-27 9:51:18 + True + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg bottom + figures + text '1' 544 336 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + ZeroJunction1 504 336 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 336 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 + AdHi0\p2 => Ta0j\p; + Gravity\p => AdHi0\p1; + Hin -> Splitter1\input; + Splitter1\output -> AdHi0\H; + Splitter1\output -> Hout; + Ta0j\p => EJS\p1; + Ta0j\p => InertialTensor\p; + ZeroJunction1\p => p; + ZeroJunction1\p => Ta0j\p; + end; + implementation_end; + COM_body5 992 128 + description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters + real I [3,1] = [0.018;0.159;0.159] {mN.m.s}; + real m = 0.015 {kg};'; + type Submodel + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power out p [6,1]; + end; + icon bg bottom + figures + rectangle 976 96 1008 160 color 0 fill 139; + text 'COM' 992 128 color 0 'Clear Sans' 16; + terminals + Hin 976 144 fixed; + p 976 112 fixed; + end; + implementation bg + submodels + AdHi0 544 400 + description '4.01False2007-9-25 12:3:3True'; + type MTF + ports + power in p1 [6,1]; + power out p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg left + figures + text 'MTF' 544 400 color 0 18 bold; + end; + implementation eq +variables + real onlyRotH[4,4]; +code + //Only rotations with respect to the inertial system matter! + onlyRotH = H; + onlyRotH[1,4] = 0; + onlyRotH[2,4] = 0; + onlyRotH[3,4] = 0; + + p2.e = transpose(Adjoint(onlyRotH)) * p1.e; + p1.f = Adjoint(onlyRotH) * p2.f; +implementation_end; + EJS 616 336 + description '4.01False2007-10-31 11:43:6True'; + type MGY + ports + power in p1 [6,1]; + end; + icon bg top + figures + text 'MGY' 616 336 color 0 18 bold; + end; + implementation eq +//EJS / Gyroscopic effects +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Q[6,6]; + real QI[6,6]; + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + Q = transpose(adjoint(p1.f)); + QI = Q*II; + p1.e = QI*p1.f;implementation_end; + Gravity 624 400 + description '4.01False2007-9-25 12:3:26True'; + type Se + ports + power out p [6,1]; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'Se' 624 400 color 0 18 bold; + end; + implementation eq +parameters + real global m; +variables + real effort[6]; +equations + effort = [0;0;0;0;0;-g_n*m]; + p.e = effort; +implementation_end; + InertialTensor 544 272 + description '4.01False + Bond Graph\3D\I-3.emx + 2007-9-25 12:12:14 +'; + type 'I-3' + ports + power in p [6,1]; + signal out state [6,1]; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 544 272 color 0 18 bold; + end; + implementation eq +parameters + real global I[3]; + real global m; +variables + real II[6,6]; //Inertial tensor + real Ia[6]; +initialequations + Ia[1:3] = I; + Ia[4:6] = m; + II = diag(Ia); +equations + state = int(p.e); //state = generalized momentum + p.f = inverse(II)*state; +implementation_end; + plug Hin 433.4 496; + plug Hout 691.2 496; + plug p 439.4 336; + Splitter1 544 496 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; + ellipse 539.7 491.7 548.3 500.3 color -1; + terminals + input 544 496 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Ta0j 544 336 + description ' + 4.0 + 1 + False + Bond Graph\OneJunction.emx + 2007-9-27 9:51:18 + True + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg bottom + figures + text '1' 544 336 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + ZeroJunction1 504 336 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 504 336 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 + AdHi0\p2 => Ta0j\p; + Gravity\p => AdHi0\p1; + Hin -> Splitter1\input; + Splitter1\output -> AdHi0\H; + Splitter1\output -> Hout; + Ta0j\p => EJS\p1; + Ta0j\p => InertialTensor\p; + ZeroJunction1\p => p; + ZeroJunction1\p => Ta0j\p; + end; + implementation_end; + Ground1 620 727.5 + description ' + + 4.8 +1 + Bond Graph\MR\Ground.emx + 2020-7-23 09:30:51 + +'; + type Submodel + ports + power in p [6,1]; + signal out output [4,4]; + end; + icon bg bottom + figures + line 584 720 600 736 color 0 fill 15132390; + line 592 720 608 736 color 0 fill 15132390; + line 576 720 592 736 color 0 fill 15132390; + line 616 736 600 720 color 0 fill 15132390; + line 624 736 608 720 color 0 fill 15132390; + line 632 736 616 720 color 0 fill 15132390; + line 648 736 632 720 color 0 fill 15132390; + line 640 736 624 720 color 0 fill 15132390; + line 656 736 640 720 color 0 fill 15132390; + line 664 736 648 720 color 0 fill 15132390; + line 576 720 664 720 color 0 fill 15132390 width 2; + line 656 720 664 728 color 0 fill 15132390; + line 576 728 584 736 color 0 fill 15132390; + terminals + p 600 720 fixed; + output 632 720 fixed; + end; + implementation bg + submodels + plug p 240 88; + plug output 240 120; + OneJunction2 192 88 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 192 88 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + Sf2 136 88 + description '4.01False + Bond Graph\2D\Sf-2.emx + 2007-9-25 12:7:5 +'; + type 'Sf-2' + ports + power out p [6,1]; + restrictions + causality fixed in p; + end; + icon bg bottom + figures + text 'Sf' 136 88 color 0 18 bold; + end; + implementation eq +parameters + real flow[6,1] = 0; +variables + real effort [6]; +equations + p.f = flow; + effort = p.e; +implementation_end; + Zero 144 120 + description '4.01False + Signal\Sources\Zero.emx + 2007-9-27 15:54:36 + +'; + type Zero + ports + signal out output [4,4]; + end; + icon bg bottom + figures + rectangle 128.1 104 159.9 136 color 0 fill 15132390; + text '0' 144 120 color 16711680 18 bold; + end; + implementation eq +equations + output = eye(4);implementation_end; + end; + connections + p => OneJunction2\p; + Sf2\p => OneJunction2\p; + Zero\output -> output; + end; + implementation_end; + inverse_kinematics 784 784 + description ' + + 4.8 + SCARA\inverse_kinematics_v1.emx +1 + False + 2020-7-10 12:26:18 +False + +'; + type 'Submodel-Equation' + ports + signal in input [2,1] {m} ; + signal out angle1 {rad} ; + signal out angle2 {rad} ; + signal out a {rad} ; + signal out b {rad} ; + signal out c {rad} ; + signal out phi {rad} ; + end; + implementation eq +parameters + real A_length = 0.065 {m}; // length of first arm + real B_length = 0.05 {m}; // length of second arm + real to_rad = 1 {rad}; +variables + real x {m}, y {m}; + real C_length {m}; // length to x and y. +equations + x = input[1]; + y = input[2]; + phi = atan2(y, x); + C_length = sqrt(x^2 + y^2); + a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length)); + b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length)); + c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length)); + angle1 = b + phi; + angle2 = angle1 - pi * to_rad + c; + + + + implementation_end; + JointA 560 512 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 528 488 592 536 color 0 fill 14745599; + text 'Joint' 560 512 color 0 'Clear Sans' 16; + terminals + Pin 544 536 fixed; + Hin 576 488 fixed; + Hout 576 536 fixed; + Pout 544 488 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + JointB 560 192 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 528 168 592 216 color 0 fill 14745599; + text 'Joint' 560 192 color 0 'Clear Sans' 16; + terminals + Pin 544 216 fixed; + Hin 576 168 fixed; + Hout 576 216 fixed; + Pout 544 168 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + JointC 512 632 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 488 600 536 664 color 0 fill 14745599; + text 'Joint' 512 632 color 0 'Clear Sans' 16; + terminals + Pin 488 648 fixed; + Hin 536 616 fixed; + Hout 488 616 fixed; + Pout 536 648 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + JointD 200 488 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 168 464 232 512 color 0 fill 14745599; + text 'Joint' 200 488 color 0 'Clear Sans' 16; + terminals + Pin 184 464 fixed; + Hin 216 512 fixed; + Hout 216 464 fixed; + Pout 184 512 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + JointE 200 168 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 168 144 232 192 color 0 fill 14745599; + text 'Joint' 200 168 color 0 'Clear Sans' 16; + terminals + Pin 184 144 fixed; + Hin 216 192 fixed; + Hout 216 144 fixed; + Pout 184 192 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + JointF 720 128 + description ' + + 4.8 +1 + Bond Graph\MR\joint-v3.emx + 2020-7-21 12:08:53 + +'; + type 'Submodel-v3' + ports + power in Pin [6,1]; + power in Pdiff [6,1]; + signal in Hin [4,4]; + signal out Hout [4,4]; + signal out Hdiff [4,4]; + power out Pout [6,1]; + end; + icon bg bottom + figures + rectangle 696 96 744 160 color 0 fill 14745599; + text 'Joint' 720 128 color 0 'Clear Sans' 16; + terminals + Pin 744 112 fixed; + Hin 696 144 fixed; + Hout 744 144 fixed; + Pout 696 112 fixed; + end; + implementation bg + submodels + AdHji 424 424 + description ' + 4.0 + 1 + False + Bond Graph\MTF.emx + 2007-9-25 12:3:3 + True +'; + type MTF + ports + power out p1 [6,1]; + power in p2 [6,1]; + signal in H [4,4]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg bottom + figures + text 'MTF' 424 424 color 0 18 bold; + end; + implementation eq +equations + p2.e = transpose(Adjoint(H)) * p1.e; + p1.f = Adjoint(H) * p2.f;implementation_end; + FlowSensor2 184 311.9 + description ' + + 4.2 +1 + False + Bond Graph\FlowSensor.emx + 2011-11-29 15:50:53 + +'; + knot FlowSensor + ports + power knot in p1 [6,1]; + power knot out p2 [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint not_equal p1 p2; + end; + icon bg ellipse + figures + ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215; + text 'f' 184 311.2 color 0; + end; + implementation eq +equations + p2.f = p1.f; + p1.e = p2.e; + flow = p1.f; +implementation_end; + Hmatrix 256 312 + description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False'; + type 'Submodel-Equation' + ports + signal in flow [6,1]; + signal out H [4,4]; + end; + icon bg + figures + rectangle 224 296 288 328 color 0 fill 15132390; + text 'name' 256 312 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real init[4] = [1;0;0;0]; +variables + real q[4]; //quaternions + real W[3,4]; //Quaternion Rates Matrix + real R[3,3]; //Rotation Matrix + real p[3]; //Position Vector + real dq[4]; + real Wb[3,4]; +equations + dq = transpose(Wb) * flow[1:3] ./ 2; + q = int(dq,init); + p = int(flow[4:6]); + W = [-q[2], q[1], -q[4], q[3]; + -q[3], q[4], q[1], -q[2]; + -q[4], -q[3], q[2], q[1]]; + Wb = [ -q[2], q[1], q[4], -q[3]; + -q[3], -q[4], q[1], q[2]; + -q[4], q[3], -q[2], q[1]]; + R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]); + 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]); + 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2]; + H = homogeneous(R,p); + implementation_end; + MatrixMul 320 576 + description ' + 4.0 + 1 + False + Signal\Block Diagram\Gain.emx + 2007-9-26 12:15:12 + True +'; + type Gain + ports + signal in input1 [4,4]; + signal out output [4,4]; + signal in input2 [4,4]; + end; + icon bg bottom + figures + rectangle 304.1 560 335.9 592 color 0 fill 15132390; + text 'X' 320 576 color 16711680 16 bold; + end; + implementation eq +equations + output = input2*input1; implementation_end; + plug Pin 492.1 424; + plug Pdiff 184 225; + plug Hin 130.8 576; + plug Hout 478.4 576; + plug Hdiff 320 222; + plug Pout 134.7 424; + Splitter2 320 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; + ellipse 315.7 307.7 324.3 316.3 color -1; + terminals + input 320 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Wbai 184 424 + description ' + 4.0 + 1 + False + Bond Graph\ZeroJunction.emx + 2007-9-27 9:51:43 + True +'; + knot ZeroJunction + ports + power knot duplicatable none p [6,1]; + signal knot out effort [6,1]; + restrictions + causality constraint one_in p; + end; + icon bg bottom + figures + text '0' 184 424 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 + FlowSensor2\flow -> Hmatrix\flow; + FlowSensor2\p2 => Wbai\p; + Hin -> MatrixMul\input2; + Hmatrix\H -> Splitter2\input; + MatrixMul\output -> Hout; + Pdiff => FlowSensor2\p1; + Pin => AdHji\p2; + Splitter2\output -> AdHji\H 424 312; + Splitter2\output -> Hdiff; + Splitter2\output -> MatrixMul\input1; + Wbai\p <= AdHji\p1; + Wbai\p => Pout; + end; + implementation_end; + Joint_dynA 704 512 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + signal in angle {rad} ; + end; + implementation bg + submodels + C 264 200 + description ' + + 4.2 +1 + False + Bond Graph\C.emx + 2011-11-29 15:58:35 + +'; + type C + ports + power in p; + signal out state; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 264 200 color 0 18 bold; + end; + implementation eq +parameters + real c = 0.001; +equations + state = int(p.f); + p.e = state / c; +implementation_end; + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 468 216; + plug angle 224 80; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 312 200 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 312 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 402 216 + specifications active 'rot_x' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 400 192 400 240 color 0 width 2; + rectangle 396 192 408 240 color -1; + text '1' 405 210 color 8421504 8; + terminals + input 400 200 fixed; + output 400 216 fixed; + input_rot2 400 232 fixed; + input_pos3 400 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' +description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 312 152 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 312 152 color 0 18 bold; + end; + implementation eq +parameters + real r = 100; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + stepper_model 360 80 + description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters + real I_phase = 3.4 {mH}; + real R_phase = 2.9 {ohm}; + real u_max = 3.4 {V}; + real RotorInertia = 5.6e-6 {kg.m2}; + real StepperMass = 0.29 {kg}; + real angle_step = 1.8 {deg}; + real n_phase = 2 {none}; + real fluxLinkage = 0.0022 {Wb}; + real detentTorque = 0.01 {N.m}; +variables + real omega; + real p; // rotor division +initialequations + p = 2 * pi / (2 * n_phase * angle_step); + omega = 200;'; + type Submodel + ports + signal in angle; + rotation out p; + end; + implementation bg + submodels + I 560 104 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 560 104 color 0 18 bold; + end; + implementation eq +parameters + real global I_phase; +equations + state = int(p.e); + p.f = state / I_phase; +implementation_end; + I1 608 328 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 608 328 color 0 18 bold; + end; + implementation eq +parameters + real global I_phase; +equations + state = int(p.e); + p.f = state / I_phase; +implementation_end; + I2 752 160 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 752 160 color 0 18 bold; + end; + implementation eq +parameters + real global RotorInertia; +equations + state = int(p.e); + p.f = state / (RotorInertia); +implementation_end; + MGY_a 656 160 + description ' + + 4.2 +1 + False + Bond Graph\MGY.emx + 2011-11-29 16:03:53 + +'; + type MGY + ports + power in p1; + power out p2; + signal in r; + restrictions + causality constraint equal p1 p2; + end; + icon bg bottom + figures + text 'MGY' 656 160 color 0 18 bold; + end; + implementation eq +equations + p1.e = r * p2.f; + p2.e = r * p1.f; +implementation_end; + MGY_b 656 272 + description ' + + 4.2 +1 + False + Bond Graph\MGY.emx + 2011-11-29 16:03:53 + +'; + type MGY + ports + power in p1; + power out p2; + signal in r; + restrictions + causality constraint equal p1 p2; + end; + icon bg bottom + figures + text 'MGY' 656 272 color 0 18 bold; + end; + implementation eq +equations + p1.e = r * p2.f; + p2.e = r * p1.f; +implementation_end; + MSe_a 512 160 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + electric out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 512 160 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + MSe_b 512 272 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + electric out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 512 272 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + plug angle 200 216; + plug p 1472 216; + OneJunction1 840 216 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 840 216 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction2 584 160 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + electric knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 584 160 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction3 584 272 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + electric knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 584 272 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction4 752 216 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 752 216 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + phase_control 512 216 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type Submodel + ports + signal in angle; + signal out a; + signal out b; + end; + icon bg + figures + rectangle 472 200 552 232 color 0 fill 15132390; + text 'name' 512 216 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real global u_max {V}; +variables + real global p; + boolean hidden eventa, eventb; +equations + a = u_max * (cos (p*angle)); + eventa = event(a); + b = u_max * -(sin (p*angle)); + eventb = event(b); + + + + implementation_end; + R 608 104 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 608 104 color 0 18 bold; + end; + implementation eq +parameters + real global R_phase; +equations + p.e = R_phase * p.f; +implementation_end; + R1 560 328 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 560 328 color 0 18 bold; + end; + implementation eq +parameters + real global R_phase; +equations + p.e = R_phase * p.f; +implementation_end; + R2 824 264 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 824 264 color 0 18 bold; + end; + implementation eq +parameters + real r = 1.0e-3; +equations + p.e = r * p.f; +implementation_end; + RotorAngle 656 216 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type Submodel + ports + signal out output_b; + signal out output_a; + signal in omega {rad/s} ; + signal out output_d; + end; + icon bg + figures + rectangle 616 200 696 232 color 0 fill 15132390; + text 'name' 656 216 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real global fluxLinkage; + real global detentTorque; +variables + real global p; + real angle {rad}; +equations + angle = int(omega,-1.57); + output_a = -p * fluxLinkage * sin(p * angle); + output_b = p * fluxLinkage * sin(p * angle - pi / 2); + output_d = detentTorque * sin(2 * p * angle); + implementation_end; + Se 752 272 + 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' 752 272 color 0 18 bold; + end; + implementation eq + +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + end; + connections + angle -> phase_control\angle; + I2\p <= OneJunction4\p; + MGY_a\p2 => OneJunction4\p; + MGY_b\p2 => OneJunction4\p; + MSe_b\p => OneJunction3\p; + OneJunction1\p => p; + OneJunction2\p <= MSe_a\p; + OneJunction2\p => I\p; + OneJunction2\p => MGY_a\p1; + OneJunction2\p => R\p; + OneJunction3\p => I1\p; + OneJunction3\p => MGY_b\p1; + OneJunction3\p => R1\p; + OneJunction4\flow -> RotorAngle\omega; + OneJunction4\p => OneJunction1\p; + OneJunction4\p => R2\p; + phase_control\a -> MSe_a\effort; + phase_control\b -> MSe_b\effort; + RotorAngle\output_a -> MGY_a\r; + RotorAngle\output_b -> MGY_b\r; + RotorAngle\output_d -> Se\effort; + Se\p => OneJunction4\p; + end; + implementation_end; + ZeroJunction1 360 200 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + rotation knot duplicatable none p [1]; + signal knot out effort [1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 360 200 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 + angle -> stepper_model\angle; + C\p <= OneJunction8\p; + C1\p <= OneJunction7\p; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => R\p; + PowerMux\input <= ZeroJunction1\p; + PowerMux\output => output; + ZeroJunction1\p <= OneJunction8\p; + ZeroJunction1\p <= stepper_model\p; + end; + implementation_end; + Joint_dynB 456 192 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + implementation bg + submodels + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 396 216; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 288 200 + 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' 288 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 330 216 + specifications active 'rot_x' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 328 192 328 240 color 0 width 2; + rectangle 324 192 336 240 color -1; + text '1' 333 210 color 8421504 8; + terminals + input 328 200 fixed; + output 328 216 fixed; + input_rot2 328 232 fixed; + input_pos3 328 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' +description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 288 152 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg top + figures + text 'R' 288 152 color 0 18 bold; + end; + implementation eq +parameters + real r = 0.0001; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + end; + connections + C1\p <= OneJunction7\p; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => PowerMux\input; + PowerMux\output => output; + R\p <= OneJunction8\p; + end; + implementation_end; + Joint_dynC 512 712 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + signal in angle {rad} ; + end; + icon bg + figures + rectangle 472 696 552 728 color 0 fill 15132390; + text 'name' 512 712 color 0 'Clear Sans' 16; + end; + implementation bg + submodels + C 264 200 + description ' + + 4.2 +1 + False + Bond Graph\C.emx + 2011-11-29 15:58:35 + +'; + type C + ports + power in p; + signal out state; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 264 200 color 0 18 bold; + end; + implementation eq +parameters + real c = 0.001; +equations + state = int(p.f); + p.e = state / c; +implementation_end; + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 468 216; + plug angle 224 80; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 312 200 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 312 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 402 216 + specifications active 'rot_x' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 400 192 400 240 color 0 width 2; + rectangle 396 192 408 240 color -1; + text '1' 405 210 color 8421504 8; + terminals + input 400 200 fixed; + output 400 216 fixed; + input_rot2 400 232 fixed; + input_pos3 400 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' +description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 312 152 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 312 152 color 0 18 bold; + end; + implementation eq +parameters + real r = 100; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + stepper_model 360 80 + description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters + real I_phase = 3.4 {mH}; + real R_phase = 2.9 {ohm}; + real u_max = 3.4 {V}; + real RotorInertia = 5.6e-6 {kg.m2}; + real StepperMass = 0.29 {kg}; + real angle_step = 1.8 {deg}; + real n_phase = 2 {none}; + real fluxLinkage = 0.0022 {Wb}; + real detentTorque = 0.01 {N.m}; +variables + real omega; + real p; // rotor division +initialequations + p = 2 * pi / (2 * n_phase * angle_step); + omega = 200;'; + type Submodel + ports + signal in angle; + rotation out p; + end; + implementation bg + submodels + I 560 104 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 560 104 color 0 18 bold; + end; + implementation eq +parameters + real global I_phase; +equations + state = int(p.e); + p.f = state / I_phase; +implementation_end; + I1 608 328 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 608 328 color 0 18 bold; + end; + implementation eq +parameters + real global I_phase; +equations + state = int(p.e); + p.f = state / I_phase; +implementation_end; + I2 752 160 + description ' + + 4.2 +1 + False + Bond Graph\I.emx + 2011-11-29 15:55:55 + +'; + type I + ports + power in p; + signal out state; + restrictions + causality preferred in p; + end; + icon bg bottom + figures + text 'I' 752 160 color 0 18 bold; + end; + implementation eq +parameters + real global RotorInertia; +equations + state = int(p.e); + p.f = state / (RotorInertia); +implementation_end; + MGY_a 656 160 + description ' + + 4.2 +1 + False + Bond Graph\MGY.emx + 2011-11-29 16:03:53 + +'; + type MGY + ports + power in p1; + power out p2; + signal in r; + restrictions + causality constraint equal p1 p2; + end; + icon bg bottom + figures + text 'MGY' 656 160 color 0 18 bold; + end; + implementation eq +equations + p1.e = r * p2.f; + p2.e = r * p1.f; +implementation_end; + MGY_b 656 272 + description ' + + 4.2 +1 + False + Bond Graph\MGY.emx + 2011-11-29 16:03:53 + +'; + type MGY + ports + power in p1; + power out p2; + signal in r; + restrictions + causality constraint equal p1 p2; + end; + icon bg bottom + figures + text 'MGY' 656 272 color 0 18 bold; + end; + implementation eq +equations + p1.e = r * p2.f; + p2.e = r * p1.f; +implementation_end; + MSe_a 512 160 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + electric out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 512 160 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + MSe_b 512 272 + description ' + + 4.2 +1 + False + Bond Graph\MSe.emx + 2011-11-29 16:12:33 + +'; + type MSe + ports + electric out p; + signal in effort; + restrictions + causality fixed out p; + end; + icon bg bottom + figures + text 'MSe' 512 272 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + plug angle 200 216; + plug p 1472 216; + OneJunction1 840 216 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 840 216 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction2 584 160 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + electric knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 584 160 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction3 584 272 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + electric knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 584 272 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction4 752 216 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + rotation knot duplicatable none p [1]; + signal knot out flow [1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 752 216 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + phase_control 512 216 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type Submodel + ports + signal in angle; + signal out a; + signal out b; + end; + icon bg + figures + rectangle 472 200 552 232 color 0 fill 15132390; + text 'name' 512 216 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real global u_max {V}; +variables + real global p; + boolean hidden eventa, eventb; +equations + a = u_max * (cos (p*angle)); + eventa = event(a); + b = u_max * -(sin (p*angle)); + eventb = event(b); + + + + implementation_end; + R 608 104 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 608 104 color 0 18 bold; + end; + implementation eq +parameters + real global R_phase; +equations + p.e = R_phase * p.f; +implementation_end; + R1 560 328 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 560 328 color 0 18 bold; + end; + implementation eq +parameters + real global R_phase; +equations + p.e = R_phase * p.f; +implementation_end; + R2 824 264 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg bottom + figures + text 'R' 824 264 color 0 18 bold; + end; + implementation eq +parameters + real r = 1.0e-3; +equations + p.e = r * p.f; +implementation_end; + RotorAngle 656 216 + description '4.0 + Template\Submodel-Equation.emx +1 + False + 2007-11-1 22:32:1 + False +'; + type Submodel + ports + signal out output_b; + signal out output_a; + signal in omega {rad/s} ; + signal out output_d; + end; + icon bg + figures + rectangle 616 200 696 232 color 0 fill 15132390; + text 'name' 656 216 color 0 'Clear Sans' 16; + end; + implementation eq +parameters + real global fluxLinkage; + real global detentTorque; +variables + real global p; + real angle {rad}; +equations + angle = int(omega); + output_a = -p * fluxLinkage * sin(p * angle); + output_b = p * fluxLinkage * sin(p * angle - pi / 2); + output_d = detentTorque * sin(2 * p * angle); + implementation_end; + Se 752 272 + 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' 752 272 color 0 18 bold; + end; + implementation eq + +variables + real flow; +equations + p.e = effort; + flow = p.f; +implementation_end; + end; + connections + angle -> phase_control\angle; + I2\p <= OneJunction4\p; + MGY_a\p2 => OneJunction4\p; + MGY_b\p2 => OneJunction4\p; + MSe_b\p => OneJunction3\p; + OneJunction1\p => p; + OneJunction2\p <= MSe_a\p; + OneJunction2\p => I\p; + OneJunction2\p => MGY_a\p1; + OneJunction2\p => R\p; + OneJunction3\p => I1\p; + OneJunction3\p => MGY_b\p1; + OneJunction3\p => R1\p; + OneJunction4\flow -> RotorAngle\omega; + OneJunction4\p => OneJunction1\p; + OneJunction4\p => R2\p; + phase_control\a -> MSe_a\effort; + phase_control\b -> MSe_b\effort; + RotorAngle\output_a -> MGY_a\r; + RotorAngle\output_b -> MGY_b\r; + RotorAngle\output_d -> Se\effort; + Se\p => OneJunction4\p; + end; + implementation_end; + ZeroJunction1 360 200 + description ' + + 4.2 +1 + False + Bond Graph\ZeroJunction.emx + 2011-11-29 16:45:16 + +'; + knot ZeroJunction + ports + rotation knot duplicatable none p [1]; + signal knot out effort [1]; + restrictions + causality constraint one_in p; + end; + icon bg + figures + text '0' 360 200 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 + angle -> stepper_model\angle; + C\p <= OneJunction8\p; + C1\p <= OneJunction7\p; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => R\p; + PowerMux\output => output; + stepper_model\p => ZeroJunction1\p; + ZeroJunction1\p => OneJunction8\p; + ZeroJunction1\p => PowerMux\input; + end; + implementation_end; + Joint_dynD 88 488 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + implementation bg + submodels + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 396 216; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 288 200 + 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' 288 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 330 216 + specifications active 'rot_x' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 328 192 328 240 color 0 width 2; + rectangle 324 192 336 240 color -1; + text '1' 333 210 color 8421504 8; + terminals + input 328 200 fixed; + output 328 216 fixed; + input_rot2 328 232 fixed; + input_pos3 328 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' +description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 288 152 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg top + figures + text 'R' 288 152 color 0 18 bold; + end; + implementation eq +parameters + real r = 0.0001; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + end; + connections + C1\p <= OneJunction7\p; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => PowerMux\input; + PowerMux\output => output; + R\p <= OneJunction8\p; + end; + implementation_end; + Joint_dynE 88 168 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + implementation bg + submodels + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 396 216; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 288 200 + 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' 288 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 330 216 + specifications active 'rot_x' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 328 192 328 240 color 0 width 2; + rectangle 324 192 336 240 color -1; + text '1' 333 210 color 8421504 8; + terminals + input 328 200 fixed; + output 328 216 fixed; + input_rot2 328 232 fixed; + input_pos3 328 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' +description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 288 152 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg top + figures + text 'R' 288 152 color 0 18 bold; + end; + implementation eq +parameters + real r = 0.0001; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + end; + connections + C1\p <= OneJunction7\p; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => PowerMux\input; + PowerMux\output => output; + R\p <= OneJunction8\p; + end; + implementation_end; + Joint_dynF 720 48 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + implementation bg + submodels + C 264 200 + description ' + + 4.2 +1 + False + Bond Graph\C.emx + 2011-11-29 15:58:35 + +'; + type C + ports + power in p; + signal out state; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 264 200 color 0 18 bold; + end; + implementation eq +parameters + real c = 0.001; +equations + state = int(p.f); + p.e = state / c; +implementation_end; + C1 191.8 216.2 + description '4.01False + Bond Graph\3D\C-3.emx + 2007-9-25 12:12:8 +'; + type 'C-3' + ports + power in p [3,1]; + signal out state [3,1]; + restrictions + causality preferred out p; + end; + icon bg top + figures + text 'C' 191.8 216.2 color 0 18 bold; + end; + implementation eq +parameters + real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + C4 191.8 232.2 + description '4.01False + Bond Graph\2D\C-2.emx + 2007-9-25 12:7:27 +'; + type 'C-2' + ports + power in p [2,1]; + signal out state [2,1]; + restrictions + causality preferred out p; + end; + icon bg bottom + figures + text 'C' 191.8 232.2 color 0 18 bold; + end; + implementation eq +parameters + real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + plug output 396 216; + OneJunction 328 200 + 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' 328 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction5 239.8 232.2 + 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' 239.8 232.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction7 239.8 216.2 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [3,1]; + signal knot out flow [3,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 239.8 216.2 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction8 296 200 + 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' 296 200 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + PowerMux 362 216 + specifications active 'rot_z' + specification 'rot_x' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-20 14:35:23 +1 + False + True + +'; + type 'PowerMux-Rotation' + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 360 192 360 240 color 0 width 2; + rectangle 356 192 368 240 color -1; + text '1' 365 210 color 8421504 8; + terminals + input 360 200 fixed; + output 360 216 fixed; + input_rot2 360 232 fixed; + input_pos3 360 216 fixed; + end; + implementation eq +equations + output.e[1] = input.e; + output.e[2:3] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[1] = input.f; + output.f[2:3] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_y' +description ' + 4.1 + Bond Graph\PowerMux.emx + 2011-3-4 15:12:50 +1 + False + True +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 242 274 290 274 color 0 width 2; + rectangle 242 266 290 278 color -1; + text '1' 260 269 color 8421504 8; + terminals + input 250 274 fixed; + output 266 274 fixed; + input_rot2 282 274 fixed; + input_pos3 266 274 fixed; + end; + implementation eq +equations + output.e[1] = input_rot2.e[1]; + output.e[2] = input.e; + output.e[3] = input_rot2.e[2]; + output.e[4:6] = input_pos3.e; + output.f[1] = input_rot2.f[1]; + output.f[2] = input.f; + output.f[3] = input_rot2.f[2]; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + specification 'rot_z' + description ' + + 4.8 + Bond Graph\MR\PowerMux-Rotation.emx + 2020-7-21 12:05:13 +1 + False + True + +'; + type PowerMux + ports + power in input; + power out output [6,1]; + power in input_rot2 [2,1]; + power in input_pos3 [3,1]; + restrictions + causality constraint not_equal input output; + causality constraint not_equal input_rot2 output; + causality constraint not_equal input_pos3 output; + end; + icon bg bottom + figures + line 360 192 360 240 color 0 width 2; + rectangle 356 192 368 240 color -1; + text '1' 365 210 color 8421504 8; + terminals + input 360 200 fixed; + output 360 216 fixed; + input_rot2 360 232 fixed; + input_pos3 360 216 fixed; + end; + implementation eq +equations + output.e[3] = input.e; + output.e[1:2] = input_rot2.e; + output.e[4:6] = input_pos3.e; + output.f[3] = input.f; + output.f[1:2] = input_rot2.f; + output.f[4:6] = input_pos3.f;implementation_end; +specification_end; + end; + R 296 120 + description ' + + 4.2 +1 + False + Bond Graph\R.emx + 2011-11-29 16:35:37 + +'; + type R + ports + power in p; + end; + icon bg top + figures + text 'R' 296 120 color 0 18 bold; + end; + implementation eq +parameters + real r = 1000; +equations + p.e = r * p.f; +implementation_end; + R4 239.8 288.2 + description '4.01False + Bond Graph\2D\R-2.emx + 2007-9-25 12:6:54 +'; + type 'R-2' + ports + power in p [2,1]; + end; + icon bg bottom + figures + text 'R' 239.8 288.2 color 0 18 bold; + end; + implementation eq +parameters + real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad}; +equations + p.e = r * p.f; +implementation_end; + R5 239.8 168.2 + description '4.01False + Bond Graph\3D\R-3.emx + 2007-9-25 12:11:54 +'; + type 'R-3' + ports + power in p [3,1]; + end; + icon bg top + figures + text 'R' 239.8 168.2 color 0 18 bold; + end; + implementation eq +parameters + real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m}; +equations + p.e = r * p.f; +implementation_end; + end; + connections + C\p <= OneJunction8\p; + C1\p <= OneJunction7\p; + OneJunction\p => PowerMux\input; + OneJunction5\p => C4\p; + OneJunction5\p => PowerMux\input_rot2; + OneJunction5\p => R4\p; + OneJunction7\p => PowerMux\input_pos3; + OneJunction7\p => R5\p; + OneJunction8\p => OneJunction\p; + PowerMux\output => output; + R\p <= OneJunction8\p; + end; + implementation_end; + Link1 632 128 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 600 104 664 152 color 0 fill 8454041; + text 'Link' 632 128 color 0 'Clear Sans' 16; + terminals + Hin 600 144 fixed; + Hout 664 144 fixed; + Pin 664 112 fixed; + Pout 600 112 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link10 800 128 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 768 104 832 152 color 0 fill 8454041; + text 'Link' 800 128 color 0 'Clear Sans' 16; + terminals + Hin 768 144 fixed; + Hout 832 144 fixed; + Pin 832 112 fixed; + Pout 768 112 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link2 384 128 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 352 104 416 152 color 0 fill 8454041; + text 'Link' 384 128 color 0 'Clear Sans' 16; + terminals + Hin 352 144 fixed; + Hout 416 144 fixed; + Pin 416 112 fixed; + Pout 352 112 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link3 560 424 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 536 392 584 456 color 0 fill 8454041; + text 'Link' 560 424 color 0 'Clear Sans' 16; + terminals + Hin 576 392 fixed; + Hout 576 456 fixed; + Pin 544 456 fixed; + Pout 544 392 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link4 200 256 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 176 224 224 288 color 0 fill 8454041; + text 'Link' 200 256 color 0 'Clear Sans' 16; + terminals + Hin 216 288 fixed; + Hout 216 224 fixed; + Pin 184 224 fixed; + Pout 184 288 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link5 408 632 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 376 608 440 656 color 0 fill 8454041; + text 'Link' 408 632 color 0 'Clear Sans' 16; + terminals + Hin 440 616 fixed; + Hout 376 616 fixed; + Pin 376 648 fixed; + Pout 440 648 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link6 560 280 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 536 248 584 312 color 0 fill 8454041; + text 'Link' 560 280 color 0 'Clear Sans' 16; + terminals + Hin 576 248 fixed; + Hout 576 312 fixed; + Pin 544 312 fixed; + Pout 544 248 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link7 272 632 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 240 608 304 656 color 0 fill 8454041; + text 'Link' 272 632 color 0 'Clear Sans' 16; + terminals + Hin 304 616 fixed; + Hout 240 616 fixed; + Pin 240 648 fixed; + Pout 304 648 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link8 904 128 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 872 104 936 152 color 0 fill 8454041; + text 'Link' 904 128 color 0 'Clear Sans' 16; + terminals + Hin 872 144 fixed; + Hout 936 144 fixed; + Pin 936 112 fixed; + Pout 872 112 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Link9 200 400 + description ' + + 4.8 + Bond Graph\MR\link-v3.emx +1 + False + 2020-7-21 11:14:41 +False + +'; + type 'Submodel-Equation' + ports + signal in Hin [4,4]; + signal out Hout [4,4]; + power in Pin [6,1]; + power out Pout [6,1]; + restrictions + causality constraint not_equal Pin Pout; + end; + icon bg bottom + figures + rectangle 176 368 224 432 color 0 fill 8454041; + text 'Link' 200 400 color 0 'Clear Sans' 16; + terminals + Hin 216 432 fixed; + Hout 216 368 fixed; + Pin 184 368 fixed; + Pout 184 432 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1 +variables + real Hab[4,4]; + real AdHab[6,6]; + real R[3,3]; + real omega[3]; +initialequations + omega = offset[1:3]; + R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega); + Hab = homogeneous(R,offset[4:6]); + AdHab = Adjoint(Hab); +equations + Hout = Hin * Hab; + Pout.e = transpose(AdHab) * Pin.e; + Pin.f = AdHab * Pout.f; + + implementation_end; + Negate1 704 696 + description '4.01False + Signal\Block Diagram\Negate.emx + 2007-9-26 12:14:11 +'; + type Negate + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + rectangle 688 680 720 712 color 0 fill 15132390; + text '-1' 704 696 color 16711680 16 bold; + end; + implementation eq +equations + output = - input; + implementation_end; + Negate2 624 784 + description '4.01False + Signal\Block Diagram\Negate.emx + 2007-9-26 12:14:11 +'; + type Negate + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + rectangle 608 768 640 800 color 0 fill 15132390; + text '-1' 624 784 color 16711680 16 bold; + end; + implementation eq +equations + output = - input; + implementation_end; + OneJunction1 328 648 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 328 648 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction2 544 368 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 544 368 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction3 544 112 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 544 112 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction4 184 344 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 184 344 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + OneJunction5 600 648 + description ' + + 4.2 +1 + False + Bond Graph\OneJunction.emx + 2011-11-29 16:17:51 + +'; + knot OneJunction + ports + power knot duplicatable none p [6,1]; + signal knot out flow [6,1]; + restrictions + causality constraint one_out p; + end; + icon bg + figures + text '1' 600 648 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); +implementation_end; + rectanglepath 1024 784 + description ' + + 4.8 + setpoint\rectanglepath.emx +1 + False + 2020-7-10 12:30:38 +False + +'; + type 'Submodel-Equation' + ports + signal out output [2,1]; + end; + icon bg + figures + rectangle 968 768 1080 800 color 0 fill 15132390; + text 'name' 1024 784 color 0 'Clear Sans' 16; + end; + implementation eq +/* +This will generate coordinates for the box that has to be drawn +*/ +parameters + real w = 0.07 {m} ; + real h = 0.05 {m}; + real t = 2.0 {s}; + real origin[2] = [0.01;0.03] {m}; +variables + real v {m/s}; + real t_w {s}; + real t_h {s}; + real period {s}; + boolean y; +initialequations + v = (2*w + 2*h)/t; + t_w = w / v; + t_h = h / v; +code +y = frequencyevent (t,0); +period = time + floor(time / t) * t; + +if period < t_w or time < 4 then + output = origin; +else + if period < t_w + t_h then + output = origin + [w;0]; + else + if period < 2 * t_w + t_h then + output = origin + [w;h]; + else + output = origin + [0;h]; + end; + end; +end; + + + + //output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1]; + //output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2]; +implementation_end; + Splitter1 360 616 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 356.8 612.8 363.2 619.2 color -1 fill 0; + ellipse 355.7 611.7 364.3 620.3 color -1; + terminals + input 360 616 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter10 960 144 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 956.8 140.8 963.2 147.2 color -1 fill 0; + ellipse 955.7 139.7 964.3 148.3 color -1; + terminals + input 960 144 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter2 576 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 [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 572.8 332.8 579.2 339.2 color -1 fill 0; + ellipse 571.7 331.7 580.3 340.3 color -1; + terminals + input 576 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter3 216 312 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 212.8 308.8 219.2 315.2 color -1 fill 0; + ellipse 211.7 307.7 220.3 316.3 color -1; + terminals + input 216 312 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter4 576 144 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 572.8 140.8 579.2 147.2 color -1 fill 0; + ellipse 571.7 139.7 580.3 148.3 color -1; + terminals + input 576 144 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter7 216 448 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 212.8 444.8 219.2 451.2 color -1 fill 0; + ellipse 211.7 443.7 220.3 452.3 color -1; + terminals + input 216 448 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter8 576 464 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 572.8 460.8 579.2 467.2 color -1 fill 0; + ellipse 571.7 459.7 580.3 468.3 color -1; + terminals + input 576 464 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter9 848 144 + description '4.0 + Signal\Block Diagram\Splitter.emx + 2008-01-17 11:28:29 +1 + False +'; + knot Splitter + ports + signal knot duplicatable out output [4,4]; + signal knot in input [4,4]; + end; + icon bg ellipse + figures + ellipse 844.8 140.8 851.2 147.2 color -1 fill 0; + ellipse 843.7 139.7 852.3 148.3 color -1; + terminals + input 848 144 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + stepper_control 704 592 + description '4.81Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx2020-7-23 13:09:57parameters + real max_acceleration = 250 {rad/s2}; + real max_velocity = 25 {rad/s}; + real initial_velocity = 0 {rad/s}; + real initial_angle = -1.57 {rad};'; + type Submodel + ports + signal in setpoint {rad} ; + signal out output {rad} ; + end; + icon bg bottom + figures + rectangle 648 576 760 608 color 0 fill 15132390; + text 'name' 704 592 color 0 'Clear Sans' 16; + end; + implementation bg + submodels + Acceleration_int 648 336 + 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 632 320 664 352 color 0 fill 15132390; + text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real global initial_velocity; // initial value +equations + output = int (input, initial_velocity); + implementation_end; + Acceleration_limit 568 336 + description '4.01False + Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx + 2007-9-26 12:47:40 +'; + type 'SignalLimiter-Limit' + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + group + rectangle 552 320 584 352 color 0 fill 15132390; + line 567.9 324.5 567.9 349 color 0 fill 15132390; + line 555 336.2 580.7 336.2 color 0 fill 15132390; + spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2; + spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2; + spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2; + end; + end; + implementation eq +parameters + real global max_acceleration {rad/s2}; +equations + output = limit (input, -max_acceleration, max_acceleration); + implementation_end; + plug setpoint 136 336; + plug output 791 336; + PlusMinus1 240 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 232 328 248 344 color 0 fill 16777215; + end; + implementation eq +equations + output = sum (collect (plus)) - sum (collect (minus)); + implementation_end; + PlusMinus2 432 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 424 328 440 344 color 0 fill 16777215; + end; + implementation eq +equations + output = sum (collect (plus)) - sum (collect (minus)); + implementation_end; + Position_control 296 336 + description ' + 4.0 + 1 + False + Signal\Control\PID Control\Continuous\PD.emx + 2008-1-17 10:49:7 +'; + type PD + ports + signal in error; + signal out output; + end; + icon bg bottom + figures + rectangle 280 320 312 352 color 0 fill 15132390; + text 'PD' 296.5 336.1 color 16711680 18 bold; + end; + implementation eq +parameters + real kp = 4 {}; // Proportional gain + real tauD = 100 {s}; // Derivative time constant: tauD > 0 + real beta = 0.4 {}; // Tameness constant: 0 < beta << 1 +variables + real state, rate; +equations + rate = (kp * error - output) / (beta * tauD); + state = int (rate); + output = state + kp * error / beta; + implementation_end; + Splitter3 688 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 684.8 332.8 691.2 339.2 color -1 fill 0; + ellipse 683.7 331.7 692.3 340.3 color -1; + terminals + input 688 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter4 752 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 748.8 332.8 755.2 339.2 color -1 fill 0; + ellipse 747.7 331.7 756.3 340.3 color -1; + terminals + input 752 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Velocity_control 480 336 + description ' + 4.0 + 1 + False + Signal\Control\PID Control\Continuous\PD.emx + 2008-1-17 10:49:7 +'; + type PD + ports + signal in error; + signal out output; + end; + icon bg bottom + figures + rectangle 464 320 496 352 color 0 fill 15132390; + text 'PD' 480.5 336.1 color 16711680 18 bold; + end; + implementation eq +parameters + real kp = 12 {}; // Proportional gain + real tauD = 10 {s}; // Derivative time constant: tauD > 0 + real beta = 0.4 {}; // Tameness constant: 0 < beta << 1 +variables + real state, rate; +equations + rate = (kp * error - output) / (beta * tauD); + state = int (rate); + output = state + kp * error / beta; + implementation_end; + Velocity_int 720 336 + 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 704 320 736 352 color 0 fill 15132390; + text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real global initial_angle; // initial value +equations + output = int (input, initial_angle); + implementation_end; + Velocity_limit 376 336 + description '4.01False + Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx + 2007-9-26 12:47:40 +'; + type 'SignalLimiter-Limit' + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + group + rectangle 360 320 392 352 color 0 fill 15132390; + line 375.9 324.5 375.9 349 color 0 fill 15132390; + line 363 336.2 388.7 336.2 color 0 fill 15132390; + spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2; + spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2; + spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2; + end; + end; + implementation eq +parameters + real global max_velocity {rad/s}; +equations + output = limit (input, -max_velocity, max_velocity); + implementation_end; + end; + connections + Acceleration_int\output -> Splitter3\input; + Acceleration_limit\output -> Acceleration_int\input; + PlusMinus1\output -> Position_control\error; + PlusMinus2\output -> Velocity_control\error; + Position_control\output -> Velocity_limit\input; + setpoint -> PlusMinus1\plus; + Splitter3\output -> PlusMinus2\minus 688 288 432 288; + Splitter3\output -> Velocity_int\input; + Splitter4\output -> output; + Splitter4\output -> PlusMinus1\minus 752 400 240 400; + Velocity_control\output -> Acceleration_limit\input; + Velocity_int\output -> Splitter4\input; + Velocity_limit\output -> PlusMinus2\plus; + end; + implementation_end; + stepper_control1 512 784 + description '4.81Motor\stepper_control.emx2020-7-22 15:25:26parameters + real max_acceleration = 250 {rad/s2}; + real max_velocity = 25 {rad/s}; + real initial_velocity = 0 {rad/s}; + real initial_angle = 0 {rad}; + '; + type Submodel + ports + signal in setpoint {rad} ; + signal out output {rad} ; + end; + implementation bg + submodels + Acceleration_int 648 336 + 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 632 320 664 352 color 0 fill 15132390; + text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real global initial_velocity; // initial value +equations + output = int (input, initial_velocity); + implementation_end; + Acceleration_limit 568 336 + description '4.01False + Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx + 2007-9-26 12:47:40 +'; + type 'SignalLimiter-Limit' + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + group + rectangle 552 320 584 352 color 0 fill 15132390; + line 567.9 324.5 567.9 349 color 0 fill 15132390; + line 555 336.2 580.7 336.2 color 0 fill 15132390; + spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2; + spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2; + spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2; + end; + end; + implementation eq +parameters + real global max_acceleration {rad/s2}; +equations + output = limit (input, -max_acceleration, max_acceleration); + implementation_end; + plug setpoint 136 336; + plug output 791 336; + PlusMinus1 240 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 232 328 248 344 color 0 fill 16777215; + end; + implementation eq +equations + output = sum (collect (plus)) - sum (collect (minus)); + implementation_end; + PlusMinus2 432 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 424 328 440 344 color 0 fill 16777215; + end; + implementation eq +equations + output = sum (collect (plus)) - sum (collect (minus)); + implementation_end; + Position_control 296 336 + description ' + 4.0 + 1 + False + Signal\Control\PID Control\Continuous\PD.emx + 2008-1-17 10:49:7 +'; + type PD + ports + signal in error; + signal out output; + end; + icon bg bottom + figures + rectangle 280 320 312 352 color 0 fill 15132390; + text 'PD' 296.5 336.1 color 16711680 18 bold; + end; + implementation eq +parameters + real kp = 4 {}; // Proportional gain + real tauD = 100 {s}; // Derivative time constant: tauD > 0 + real beta = 0.4 {}; // Tameness constant: 0 < beta << 1 +variables + real state, rate; +equations + rate = (kp * error - output) / (beta * tauD); + state = int (rate); + output = state + kp * error / beta; + implementation_end; + Splitter3 688 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 684.8 332.8 691.2 339.2 color -1 fill 0; + ellipse 683.7 331.7 692.3 340.3 color -1; + terminals + input 688 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter4 752 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 748.8 332.8 755.2 339.2 color -1 fill 0; + ellipse 747.7 331.7 756.3 340.3 color -1; + terminals + input 752 336 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Velocity_control 480 336 + description ' + 4.0 + 1 + False + Signal\Control\PID Control\Continuous\PD.emx + 2008-1-17 10:49:7 +'; + type PD + ports + signal in error; + signal out output; + end; + icon bg bottom + figures + rectangle 464 320 496 352 color 0 fill 15132390; + text 'PD' 480.5 336.1 color 16711680 18 bold; + end; + implementation eq +parameters + real kp = 12 {}; // Proportional gain + real tauD = 10 {s}; // Derivative time constant: tauD > 0 + real beta = 0.4 {}; // Tameness constant: 0 < beta << 1 +variables + real state, rate; +equations + rate = (kp * error - output) / (beta * tauD); + state = int (rate); + output = state + kp * error / beta; + implementation_end; + Velocity_int 720 336 + 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 704 320 736 352 color 0 fill 15132390; + text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic; + end; + implementation eq +parameters + real global initial_angle; // initial value +equations + output = int (input, initial_angle); + implementation_end; + Velocity_limit 376 336 + description '4.01False + Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx + 2007-9-26 12:47:40 +'; + type 'SignalLimiter-Limit' + ports + signal in input; + signal out output; + end; + icon bg bottom + figures + group + rectangle 360 320 392 352 color 0 fill 15132390; + line 375.9 324.5 375.9 349 color 0 fill 15132390; + line 363 336.2 388.7 336.2 color 0 fill 15132390; + spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2; + spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2; + spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2; + end; + end; + implementation eq +parameters + real global max_velocity {rad/s}; +equations + output = limit (input, -max_velocity, max_velocity); + implementation_end; + end; + connections + Acceleration_int\output -> Splitter3\input; + Acceleration_limit\output -> Acceleration_int\input; + PlusMinus1\output -> Position_control\error; + PlusMinus2\output -> Velocity_control\error; + Position_control\output -> Velocity_limit\input; + setpoint -> PlusMinus1\plus; + Splitter3\output -> PlusMinus2\minus 688 288 432 288; + Splitter3\output -> Velocity_int\input; + Splitter4\output -> output; + Splitter4\output -> PlusMinus1\minus 752 400 240 400; + Velocity_control\output -> Acceleration_limit\input; + Velocity_int\output -> Splitter4\input; + Velocity_limit\output -> PlusMinus2\plus; + end; + implementation_end; + Zero 808 536 + description '4.01False + Signal\Sources\Zero.emx + 2007-9-27 15:54:36 + +'; + type Zero + ports + signal out output; + end; + icon bg bottom + figures + rectangle 792.1 520 823.9 552 color 0 fill 15132390; + text '0' 808 536 color 16711680 18 bold; + end; + implementation eq +equations + output = 0;implementation_end; + end; + connections + COM_body3\p => OneJunction4\p; + COM_body4\p => OneJunction3\p; + COM_body5\p => Link8\Pin; + Ground1\output -> JointC\Hin 632 616; + Ground1\p <= OneJunction5\p; + inverse_kinematics\angle1 -> Negate1\input; + inverse_kinematics\angle2 -> Negate2\input; + inverse_kinematics\input <- rectanglepath\output; + Joint_dynB\output => JointB\Pdiff; + Joint_dynC\output => JointC\Pdiff; + Joint_dynD\output => JointD\Pdiff; + Joint_dynE\output => JointE\Pdiff; + Joint_dynF\output => JointF\Pdiff; + JointA\Pdiff <= Joint_dynA\output; + JointA\Pout => Link3\Pin; + JointB\Hin <- Splitter4\output; + JointB\Hout -> Link6\Hin; + JointB\Pin <= Link6\Pout; + JointB\Pout => OneJunction3\p; + JointC\Hout -> Link5\Hin; + JointC\Pin <= Link5\Pout; + JointD\Hin <- Link7\Hout 216 616; + JointD\Hout -> Splitter7\input; + JointD\Pin <= Link9\Pout; + JointD\Pout => Link7\Pin 184 648; + JointE\Pout => Link4\Pin; + JointF\Hout -> Link10\Hin; + JointF\Pout => Link1\Pin; + Link1\Hout -> JointF\Hin; + Link10\Hout -> Splitter9\input; + Link10\Pout => JointF\Pin; + Link2\Hin <- JointE\Hout; + Link2\Hout -> Splitter4\input; + Link2\Pin <= OneJunction3\p; + Link2\Pout => JointE\Pin 184 112; + Link3\Hout -> Splitter8\input; + Link4\Hout -> JointE\Hin; + Link5\Hout -> Splitter1\input; + Link5\Pin <= OneJunction1\p; + Link6\Hout -> Splitter2\input; + Link6\Pin <= OneJunction2\p; + Link8\Hout -> Splitter10\input; + Link8\Pout => Link10\Pin; + Link9\Hout -> Splitter3\input; + Link9\Pin <= OneJunction4\p; + Negate1\output -> stepper_control\setpoint; + Negate2\output -> stepper_control1\setpoint; + OneJunction1\p <= COM_body2\p; + OneJunction1\p <= Link7\Pout; + OneJunction2\p <= COM_body1\p; + OneJunction2\p <= Link3\Pout; + OneJunction3\p <= Link1\Pout; + OneJunction4\p <= Link4\Pout; + OneJunction5\p <= JointC\Pout; + OneJunction5\p => JointA\Pin; + Splitter1\output -> Body2\input; + Splitter1\output -> COM_body2\Hin; + Splitter1\output -> Link7\Hin; + Splitter10\output -> Body6\input; + Splitter10\output -> COM_body5\Hin; + Splitter2\output -> COM_body1\Hin; + Splitter2\output -> Link3\Hin; + Splitter3\output -> COM_body3\Hin; + Splitter3\output -> Link4\Hin; + Splitter4\output -> Body4\input; + Splitter4\output -> COM_body4\Hin; + Splitter4\output -> Link1\Hin; + Splitter7\output -> Body3\input; + Splitter7\output -> Link9\Hin; + Splitter8\output -> Body1\input; + Splitter8\output -> JointA\Hin; + Splitter9\output -> Body5\input; + Splitter9\output -> Link8\Hin; + stepper_control\output -> Joint_dynA\angle; + stepper_control1\output -> Joint_dynC\angle; + end; + implementation_end; +]]> + + + + + + + Experiment 1 + + + + 4.8 + + + + + + + + + + COM_body1\InertialTensor\state_initial + 6 + 1 + 0 0 0 0 0 0 + + + COM_body2\InertialTensor\state_initial + 6 + 1 + 0 0 0 0 0 0 + + + COM_body3\InertialTensor\state_initial + 6 + 1 + 0 0 0 0 0 0 + + + COM_body4\InertialTensor\state_initial + 6 + 1 + 0 0 0 0 0 0 + + + COM_body5\InertialTensor\state_initial + 6 + 1 + 0 0 0 0 0 0 + + + JointA\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + JointB\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + JointC\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + JointD\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + JointE\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + JointF\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + Joint_dynA\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynA\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynA\C\state_initial + 0 + + + Joint_dynA\stepper_model\I1\state_initial + 0 + + + Joint_dynA\stepper_model\I2\state_initial + 0 + + + Joint_dynA\stepper_model\I\state_initial + 0 + + + Joint_dynB\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynB\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynC\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynC\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynC\C\state_initial + 0 + + + Joint_dynC\stepper_model\I1\state_initial + 0 + + + Joint_dynC\stepper_model\I2\state_initial + 0 + + + Joint_dynC\stepper_model\I\state_initial + 0 + + + Joint_dynC\stepper_model\RotorAngle\angle_initial + rad + 0 + + + Joint_dynD\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynD\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynE\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynE\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynF\C1\state_initial + 3 + 1 + 0 0 0 + + + Joint_dynF\C4\state_initial + 2 + 1 + 0 0 + + + Joint_dynF\C\state_initial + 0 + + + stepper_control1\Position_control\state_initial + 0 + + + stepper_control1\Velocity_control\state_initial + 0 + + + stepper_control\Position_control\state_initial + 0 + + + stepper_control\Velocity_control\state_initial + 0 + + + + + + time + Body1\position[1] + Body1\position[2] + Body1\position[3] + Body1\R[1,3] + Body1\R[2,3] + Body1\R[3,3] + Body1\R[1,2] + Body1\R[2,2] + Body1\R[3,2] + Body1\dimension[1] + Body1\dimension[2] + Body1\dimension[3] + Body2\dimension[1] + Body2\dimension[2] + Body2\dimension[3] + Body2\position[1] + Body2\position[2] + Body2\position[3] + Body2\R[1,3] + Body2\R[2,3] + Body2\R[3,3] + Body2\R[1,2] + Body2\R[2,2] + Body2\R[3,2] + Body3\dimension[1] + Body3\dimension[2] + Body3\dimension[3] + Body3\position[1] + Body3\position[2] + Body3\position[3] + Body3\R[1,3] + Body3\R[2,3] + Body3\R[3,3] + Body3\R[1,2] + Body3\R[2,2] + Body3\R[3,2] + Body4\dimension[1] + Body4\dimension[2] + Body4\dimension[3] + Body4\R[1,3] + Body4\R[2,3] + Body4\R[3,3] + Body4\R[1,2] + Body4\R[2,2] + Body4\R[3,2] + Body4\position[1] + Body4\position[2] + Body4\position[3] + Body5\dimension[1] + Body5\dimension[2] + Body5\dimension[3] + Body5\position[1] + Body5\position[2] + Body5\position[3] + Body5\R[1,3] + Body5\R[2,3] + Body5\R[3,3] + Body5\R[1,2] + Body5\R[2,2] + Body5\R[3,2] + stepper_control\setpoint + Joint_dynA\stepper_model\angle + Joint_dynA\stepper_model\RotorAngle\angle + stepper_control1\setpoint + Joint_dynC\angle + Joint_dynC\stepper_model\RotorAngle\angle + Body6\position[3] + Body6\position[2] + rectanglepath\output[2] + rectanglepath\output[1] + + + + GraphPlot + + 1 + false + 16777215 + true + + + true + 15780518 + 12624260 + 0 + 10 + 10 + 10 + false + + 16777215 + true + 1 + StepperA + 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 + 50.0 + true + 3 + + + + + + -2.3 + -1.2999999999999998 + true + 2 + + + + -4.08637499341765 + 0.0 + true + 2 + + + + -4.08637499341765 + 0.0 + true + 2 + + + + + + + + 3355111 + 1 + 3355111 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + stepper_control\setpoint + + + + 6076255 + 1 + 6076255 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + Joint_dynA\stepper_model\angle + + + + 12553035 + 1 + 12553035 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + Joint_dynA\stepper_model\RotorAngle\angle + + + + + true + 0 + 16777215 + + + + D3DPlot + + 2 + false + 16777215 + true + + 3D Animation + 137 + true + false + 4294967295 + Gradients\BlueWhite.png + true + 1.0 + 1.0 + + + + + 1 + + + 1 + + + 1 + + + true + Reference Frame + + + + + + Bryant + + false + false + false + false + false + false + + + + + 1 + + + 1 + + + 1 + + + false + Default Lights and Cameras + + + + + + Bryant + + false + false + false + false + false + false + + + false + Ambient + + + + + + 1 + + + + + 1 + + + Direct3D + + false + false + false + false + false + false + + + 0 + + + + 0.3 + + + 0.3 + + + 0.3 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + + 0.3 + + + 0.3 + + + 0.3 + + + + + + + 1 + + + 1 + + + 1 + + + true + + true + false + false + + + false + Parallel + + + -3 + + + 5 + + + 3 + + + + + + 0.457495710997814 + + + -0.762492851663023 + + + -0.457495710997814 + + + + + 0.235379601434674 + + + -0.392299335724456 + + + 0.889211827642101 + + + Direct3D + + false + false + false + false + false + false + + + 3 + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + 1.0 + + + 0.0 + + + 0.0 + + + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + false + true + true + + + false + Spot Light 1 + + + -3 + + + -5 + + + 1 + + + + + + 0.50709255283711 + + + 0.845154254728517 + + + -0.169030850945703 + + + + + 0.0869656553478673 + + + 0.144942758913112 + + + 0.985610760609162 + + + Direct3D + + false + false + false + false + false + false + + + 2 + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + 1.0 + + + 0.05 + + + 0.05 + + + + 1.0471975511965976 + + + 1.0471975511965976 + + 0.0 + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + false + true + true + + + false + Spot Light 2 + + + 2 + + + -3 + + + -1 + + + + + + -0.534522483824849 + + + 0.801783725737273 + + + 0.267261241912424 + + + + + 0.14824986333222 + + + -0.22237479499833 + + + 0.963624111659432 + + + Direct3D + + false + false + false + false + false + false + + + 2 + + + + 1 + + + 1 + + + 1 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + 1.0 + + + 0.05 + + + 0.05 + + + + 1.5707963267948966 + + + 1.5707963267948966 + + 0.0 + + + + 1 + + + 1 + + + 1 + + + + + + + 1 + + + 1 + + + 1 + + + true + + + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 1 + + + true + + false + true + true + + + false + Camera Looking at Origin + + + 0.145719696848087 + + + 0.00771906321726964 + + + 0.116837947253578 + + + + + + -0.883129107704613 + + + -0.046561942628002 + + + -0.46681362943209 + + + + + -0.46616615439618 + + + -0.0245780617428944 + + + 0.884355717670463 + + + Direct3D + + false + false + false + false + false + false + + + 0.01 + 100.0 + true + 0.003926990816987242 + 45.0 + -10.0 + 10.0 + 10.0 + -10.0 + true + + + -0.000627364166602552 + + + 3.08669776184333e-006 + + + 0.0394802856014185 + + + true + + + 1 + + + true + true + true + + + false + Front(XY)-Camera + + + 10 + + + + + + -1 + + + + + 1 + + + Direct3D + + false + false + false + false + false + false + + + 0.01 + 100.0 + true + 9.999999999999998 + 45.0 + -9.999999999999998 + 9.999999999999998 + 9.999999999999998 + -9.999999999999998 + true + + + true + + + 1 + + + true + false + false + + + false + Side(YZ)-Camera + + + 10 + + + + + + -1 + + + + + 1 + + + Direct3D + + false + false + false + false + false + false + + + 0.01 + 100.0 + true + 9.999999999999998 + 45.0 + -9.999999999999998 + 9.999999999999998 + 9.999999999999998 + -9.999999999999998 + true + + + true + + + 1 + + + true + false + false + + + false + Top(XZ)-Camera + + + 10 + + + + + + -1 + + + + + 1 + + + Direct3D + + false + false + false + false + false + false + + + 0.01 + 100.0 + true + 9.999999999999998 + 45.0 + -9.999999999999998 + 9.999999999999998 + 9.999999999999998 + -9.999999999999998 + true + + + true + + + 1 + + + true + false + false + + + + + + + 1 + + + 1 + + + 1 + + + false + Scenery + + + + + + Bryant + + false + false + false + false + false + false + + +
Bottom
+ 1.0 + true + 4 + + + Body1\dimension[1] + 0.005 + + + Body1\dimension[2] + 0.01 + + + Body1\dimension[3] + 0.065 + + + true + + + 0 + + + 0.501960784313725 + + + 0.501960784313725 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + Body1\position[1] + 0.0 + + + Body1\position[2] + -1.0544452114340241e-4 + + + Body1\position[3] + -3.650733400542561e-5 + + + + + + Body1\R[1,3] + 0.0 + + + Body1\R[2,3] + 0.5179032193456982 + + + Body1\R[3,3] + 0.8554392178240144 + + + + + Body1\R[1,2] + 0.0 + + + Body1\R[2,2] + 0.8554392178240144 + + + Body1\R[3,2] + -0.5179032193456982 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Center
+ 1.0 + true + 4 + + + Body2\dimension[1] + 0.005 + + + Body2\dimension[2] + 0.025 + + + Body2\dimension[3] + 0.01 + + + true + + + 1 + + + 0.501960784313725 + + + 0 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + Body2\position[1] + 0.0 + + + Body2\position[2] + -0.010891116074686562 + + + Body2\position[3] + -0.006056910383998224 + + + + + + Body2\R[1,3] + 0.0 + + + Body2\R[2,3] + -0.4874093624920096 + + + Body2\R[3,3] + 0.8731735871836326 + + + + + Body2\R[1,2] + 0.0 + + + Body2\R[2,2] + 0.8731735871836326 + + + Body2\R[3,2] + 0.4874093624920096 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Bottom
+ 1.0 + true + 4 + + + Body3\dimension[1] + 0.005 + + + Body3\dimension[2] + 0.01 + + + Body3\dimension[3] + 0.065 + + + true + + + 0.501960784313725 + + + 0.501960784313725 + + + 1 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + Body3\position[1] + 0.0 + + + Body3\position[2] + -0.02178223215904808 + + + Body3\position[3] + -0.012112104568558652 + + + + + + Body3\R[1,3] + 0.0 + + + Body3\R[2,3] + 0.5107213704282335 + + + Body3\R[3,3] + 0.8597462891969393 + + + + + Body3\R[1,2] + 0.0 + + + Body3\R[2,2] + 0.8597462891969393 + + + Body3\R[3,2] + -0.5107213704282335 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Center
+ 1.0 + true + 4 + + + Body4\dimension[1] + 0.005 + + + Body4\dimension[2] + 0.05 + + + Body4\dimension[3] + 0.01 + + + true + + + 0.501960784313725 + + + 0 + + + 0 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + Body4\position[1] + 0.0 + + + Body4\position[2] + 0.0335347846656958 + + + Body4\position[3] + 0.0555071396541279 + + + + + + Body4\R[1,3] + 0.0 + + + Body4\R[2,3] + -0.46775115900174147 + + + Body4\R[3,3] + 0.8838602000613716 + + + + + Body4\R[1,2] + 0.0 + + + Body4\R[2,2] + 0.8838602000613716 + + + Body4\R[3,2] + 0.46775115900174147 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Center
+ 1.0 + true + 4 + + + Body5\dimension[1] + 0.005 + + + Body5\dimension[2] + 0.025 + + + Body5\dimension[3] + 0.01 + + + true + + + 0.501960784313725 + + + 0 + + + 0 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + Body5\position[1] + 0.0 + + + Body5\position[2] + 0.06667959735242092 + + + Body5\position[3] + 0.0730331226976036 + + + + + + Body5\R[1,3] + 0.0 + + + Body5\R[2,3] + -0.46775087171205454 + + + Body5\R[3,3] + 0.8838603520990255 + + + + + Body5\R[1,2] + 0.0 + + + Body5\R[2,2] + 0.8838603520990255 + + + Body5\R[3,2] + 0.46775087171205454 + + + Matrix + + false + false + false + false + false + false + + +
+
+ +
+ +
+
+ + GraphPlot + + 3 + false + 16777215 + true + + + true + 15780518 + 12624260 + 0 + 10 + 10 + 10 + false + + 16777215 + true + 1 + StepperD + 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 + 50.0 + true + 3 + + + + + + -1.0 + 1.0 + true + 2 + + + + -1.0 + 1.0 + true + 2 + + + + -1.0 + 1.0 + true + 2 + + + + + + + + 3355111 + 1 + 3355111 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + stepper_control1\setpoint + + + + 6076255 + 1 + 6076255 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + Joint_dynC\angle + + + + 12553035 + 1 + 12553035 + 0 + true + 1 + 1 + 1 + true + + true + time + + + true + Joint_dynC\stepper_model\RotorAngle\angle + + + + + true + 0 + 16777215 + + + + GraphPlot + + 4 + false + 16777215 + true + + + true + 15780518 + 12624260 + 0 + 10 + 10 + 10 + false + + 16777215 + true + 1 + Plot + 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.025000001857932178 + 0.0831680151788676 + true + 3 + + + + + + -0.020000000000000004 + 0.08 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + -0.06 + 0.14 + true + 2 + + + + + + + + 3355111 + 1 + 3355111 + 0 + true + 1 + 1 + 1 + true + + true + Body1\position[2] + + + true + Body1\position[3] + + + + 6076255 + 1 + 6076255 + 0 + true + 1 + 1 + 1 + true + + true + Body2\position[2] + + + true + Body2\position[3] + + + + 12553035 + 1 + 12553035 + 0 + true + 1 + 1 + 1 + true + + true + Body3\position[2] + + + true + Body3\position[3] + + + + 15086320 + 1 + 15086320 + 0 + true + 1 + 1 + 1 + true + + true + Body4\position[2] + + + true + Body4\position[3] + + + + 15790150 + 1 + 15790150 + 0 + true + 1 + 1 + 1 + true + + true + Body5\position[2] + + + true + Body5\position[3] + + + + 1696255 + 1 + 1696255 + 0 + true + 1 + 1 + 1 + true + + true + Body6\position[2] + + + true + Body6\position[3] + + + + 4089775 + 1 + 4089775 + 0 + true + 1 + 1 + 1 + true + + true + rectanglepath\output[1] + + + true + rectanglepath\output[2] + + + + + true + 0 + 16777215 + + +
+ + + 1 + true + Window 1 + 0 + + 1 + 3 + + Base + + + 2 + true + Window 2 + 0 + + 2 + + Base + + + 3 + true + Window 3 + 0 + + 4 + + Base + + + + +0.135417 0.109259 0.885417 0.809259 + + +0.132292 0.142593 0.930729 0.903704 + + +0 0.0259259 1 1 + + +
+ + + 0.0 + 50.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.0 + false + 0.0 + 1.0e-6 + 1.0e-6 + 0.9 + 0.33 + 6.0 + 0.0 + false + 100000 + false + 1000 + + + RungeKuttaFehlberg + false + 0.0 + false + 0.0 + 1.0e-6 + 1.0e-6 + + + VodeAdams + false + 0.0 + false + 0.0 + 1.0e-6 + 1.0e-6 + true + true + + + BDFMethod + 1.0e-5 + 1.0e-5 + 1.0e-5 + 1.0e-5 + false + 0.0 + false + 0.0 + + + MeBDFiMethod + 1.0e-6 + 1.0e-6 + 1.0e-6 + 1.0e-6 + false + 0.0 + false + 0.0 + + 9 + + + + 10 + false + true + true + false + true + 0 + 0.0 + true + MultipleRun + true + + UseEndValue + 0.001 + BroydonFletcherGoldfarbShanno + + + + + true + true + true + true + + + false + + + time + + + + + + + + + 1.0 + +
+
+
+