diff --git a/implementation/SCARA/06_arm/arm_model-v2.emx b/implementation/SCARA/06_arm/arm_model-v2.emx index e1de3ac..8a88de4 100644 --- a/implementation/SCARA/06_arm/arm_model-v2.emx +++ b/implementation/SCARA/06_arm/arm_model-v2.emx @@ -8,8 +8,9 @@ 0 False C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model-v2.emx - 2020-7-23 16:28:58 - + 2020-7-24 16:11:50 +True + '; type 'Mainmodel-v2' end; @@ -87,7 +88,7 @@ equations rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); //[input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; - Body4 480 192 + Body4 480 64 description '4.0 Template\Submodel-Equation.emx 1 @@ -111,7 +112,7 @@ equations rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); //[input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; - Body5 992 224 + Body5 992 48 description '4.0 Template\Submodel-Equation.emx 1 @@ -135,7 +136,7 @@ equations rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input); //[input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; - Body6 1104 224 + Body6 1416 184 description '4.0 Template\Submodel-Equation.emx 1 @@ -828,14 +829,17 @@ implementation_end; 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.075;0.01] {m}; + real servoweight = 5 {g}; variables real I[3,1] {N.m.s}; - real m {kg}; + real m {kg}; + real mass; 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);'; + mass = dimension[1] * dimension[2] * dimension[3] * density; + I[1] = mass/12 * ( dimension[2]^2 + dimension[3]^2); + I[2] = mass/12 * ( dimension[1]^2 + dimension[3]^2); + I[3] = mass/12 * ( dimension[1]^2 + dimension[2]^2); + m = mass + servoweight;'; type Submodel ports signal in Hin [4,4]; @@ -1049,7 +1053,7 @@ implementation_end; ZeroJunction1\p => Ta0j\p; end; implementation_end; - COM_body5 1184 128 + COM_body5 1472 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};'; @@ -1061,11 +1065,11 @@ implementation_end; end; icon bg bottom figures - rectangle 1168 96 1200 160 color 0 fill 139; - text 'COM' 1184 128 color 0 'Clear Sans' 16; + rectangle 1456 96 1488 160 color 0 fill 139; + text 'COM' 1472 128 color 0 'Clear Sans' 16; terminals - Hin 1168 144 fixed; - p 1168 112 fixed; + Hin 1456 144 fixed; + p 1456 112 fixed; end; implementation bg submodels @@ -3641,7 +3645,7 @@ implementation_end; ZeroJunction1\p <= stepper_model\p; end; implementation_end; - Joint_dynB 672 192 + Joint_dynB 456 192 description ' 4.8 1 @@ -3652,8 +3656,8 @@ implementation_end; end; icon bg figures - rectangle 632 176 712 208 color 0 fill 15132390; - text 'name' 672 192 color 0 'Clear Sans' 16; + rectangle 416 176 496 208 color 0 fill 15132390; + text 'name' 456 192 color 0 'Clear Sans' 16; end; implementation bg submodels @@ -3675,7 +3679,7 @@ implementation_end; end; implementation eq parameters - real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m}; + 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; @@ -3698,7 +3702,7 @@ implementation_end; end; implementation eq parameters - real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad}; + 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; @@ -4929,6 +4933,11 @@ implementation_end; ports power out output [6,1]; end; + icon bg + figures + rectangle 48 472 128 504 color 0 fill 15132390; + text 'name' 88 488 color 0 'Clear Sans' 16; + end; implementation bg submodels C1 191.8 216.2 @@ -4949,7 +4958,7 @@ implementation_end; end; implementation eq parameters - real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m}; + 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; @@ -4972,7 +4981,7 @@ implementation_end; end; implementation eq parameters - real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad}; + 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; @@ -5297,7 +5306,7 @@ implementation_end; end; implementation eq parameters - real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m}; + 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; @@ -5320,7 +5329,7 @@ implementation_end; end; implementation eq parameters - real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad}; + 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; @@ -5627,6 +5636,34 @@ implementation_end; end; implementation bg submodels + C 264 168 + 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 168 color 0 18 bold; + end; + implementation eq +parameters + real c = 0.1; +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 @@ -5645,7 +5682,7 @@ implementation_end; end; implementation eq parameters - real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m}; + 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; @@ -5904,7 +5941,7 @@ specification_end; end; implementation eq parameters - real r = 0.0001; + real r = 0.01; equations p.e = r * p.f; implementation_end; @@ -5948,6 +5985,7 @@ equations implementation_end; end; connections + C\p <= OneJunction8\p; C1\p <= OneJunction7\p; OneJunction5\p => C4\p; OneJunction5\p => PowerMux\input_rot2; @@ -5959,163 +5997,2517 @@ implementation_end; 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' + LiftingArm 824 240 + description ' + 4.8 + 1 + '; + type Submodel 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; + rectangle 752 208 896 272 color 0 fill 15132390; + text 'name' 792 232 color 0 'Clear Sans' 16; terminals - Hin 600 144 fixed; - Hout 664 144 fixed; - Pin 664 112 fixed; - Pout 600 112 fixed; + Hin 752 256 fixed; + Pin 896 224 fixed; + Pout 752 224 fixed; end; - implementation eq + implementation bg + submodels + Body_Lift1 376 336 + 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 offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1 + real dimension[3] = [0.02;0.02;0.02] {m}; variables - real Hab[4,4]; - real AdHab[6,6]; + real position[3]; + real rotation[3]; 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 944 128 - description ' - - 4.8 - Bond Graph\MR\link-v3.emx + 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; + Body_Lift2 680 336 + description '4.0 + Template\Submodel-Equation.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 912 104 976 152 color 0 fill 8454041; - text 'Link' 944 128 color 0 'Clear Sans' 16; - terminals - Hin 912 144 fixed; - Hout 976 144 fixed; - Pin 976 112 fixed; - Pout 912 112 fixed; - end; - implementation eq + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq parameters - real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1 + real dimension[3] = [0.01;0.003;0.002] {m}; variables - real Hab[4,4]; - real AdHab[6,6]; + real position[3]; + real rotation[3]; 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; - Link11 784 128 - description ' - - 4.8 - Bond Graph\MR\link-v3.emx + 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; + Body_Lift3 1104 336 + description '4.0 + Template\Submodel-Equation.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 752 104 816 152 color 0 fill 8454041; - text 'Link' 784 128 color 0 'Clear Sans' 16; - terminals - Hin 752 144 fixed; - Hout 816 144 fixed; - Pin 816 112 fixed; - Pout 752 112 fixed; - end; - implementation eq + False + 2007-11-1 22:32:1 + False +'; + type 'Submodel-Equation' + ports + signal in input [4,4]; + end; + implementation eq parameters - real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1 + real dimension[3] = [0.003;0.025;0.001] {m}; variables - real Hab[4,4]; - real AdHab[6,6]; + real position[3]; + real rotation[3]; 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 ' + 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; + Body_Lift4 1416 336 + 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.0159;0.003;0.002] {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; + Joint 488 240 + description ' 4.8 - Bond Graph\MR\link-v3.emx 1 - False - 2020-7-21 11:14:41 -False - + 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 464 208 512 272 color 0 fill 14745599; + text 'Joint' 488 240 color 0 'Clear Sans' 16; + terminals + Pin 512 224 fixed; + Hin 464 256 fixed; + Hout 512 256 fixed; + Pout 464 224 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; + Joint1 952 240 + 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 928 208 976 272 color 0 fill 14745599; + text 'Joint' 952 240 color 0 'Clear Sans' 16; + terminals + Pin 976 224 fixed; + Hin 928 256 fixed; + Hout 976 256 fixed; + Pout 928 224 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; + Joint2 1256 240 + 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 1232 208 1280 272 color 0 fill 14745599; + text 'Joint' 1256 240 color 0 'Clear Sans' 16; + terminals + Pin 1280 224 fixed; + Hin 1232 256 fixed; + Hout 1280 256 fixed; + Pout 1232 224 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_dynF1 488 136 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + icon bg + figures + rectangle 448 120 528 152 color 0 fill 15132390; + text 'name' 488 136 color 0 'Clear Sans' 16; + 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] = [1, 0.0, 0.0; 0.0, 1, 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] = [1, 0.0; 0.0, 1] {mN.m/rad}; +equations + state = int(p.f); + p.e = inverse(c) *state; +implementation_end; + MSe 288 304 + 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' 288 304 color 0 18 bold; + end; + implementation eq +variables + real flow; +equations + p.e = effort; + flow = p.f; +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_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 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 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_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 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[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 112 + 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 112 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; + Square 288 392 + description ' + 4.0 +1 + False + Signal\Sources\WaveGenerator-Square.emx + 2009-3-5 16:05:33 +'; + type 'WaveGenerator-Square' + ports + signal out output; + end; + icon bg bottom + figures + rectangle 272.1 376 303.9 408 color 0 fill 15132390; + line 276.1 379.9 275.9 406.2 color 0 fill 0; + line 273.9 404.1 299.9 404.1 color 0 fill 0; + line 276.1 404.1 280 404.1 280 392 color 16711680 fill 0; + line 288 392 280 392 288 392 color 16711680 fill 0; + line 288 404.1 288 392 288 404.1 color 16711680 fill 0; + line 296 392 296 404.1 296 392 color 16711680 fill 0; + line 299.9 392.1 295.7 392.1 color 16711680 fill 0; + line 288 404.1 296 404.1 color 16711680 fill 0; + end; + implementation eq +parameters + real amplitude = 0.0; // amplitude of the wave + real omega = 3.1415926535898 {rad/s}; // angular frequency of the wave +variables + real hidden s, half; + boolean hidden change; +equations + "calculate at least 2 points per period + (just after the change in sign)" + half = pi / omega; + change = frequencyevent (half, 1e-14); + + "calculate the square wave" + s = sign (sin (omega * time)); + output = if( s == 0 ) then + amplitude + else + (amplitude / 2) * (s + 1) + end; +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 <= MSe\p; + OneJunction8\p => PowerMux\input; + PowerMux\output => output; + R\p <= OneJunction8\p; + Square\output -> MSe\effort; + end; + implementation_end; + Joint_dynF2 952 136 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + icon bg + figures + rectangle 912 120 992 152 color 0 fill 15132390; + text 'name' 952 136 color 0 'Clear Sans' 16; + 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] = [1, 0.0, 0.0; 0.0, 1, 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] = [1, 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_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 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 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[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_dynF3 1256 136 + description ' + 4.8 + 1 + '; + type Submodel + ports + power out output [6,1]; + end; + icon bg + figures + rectangle 1216 120 1296 152 color 0 fill 15132390; + text 'name' 1256 136 color 0 'Clear Sans' 16; + 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] = [1, 0.0, 0.0; 0.0, 1, 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] = [1, 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_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 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 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[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; + Link1 800 240 + 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 216 832 264 color 0 fill 8454041; + text 'Link' 800 240 color 0 'Clear Sans' 16; + terminals + Hin 768 256 fixed; + Hout 832 256 fixed; + Pin 832 224 fixed; + Pout 768 224 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0.005;0;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; + Link12 304 240 + 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 272 216 336 264 color 0 fill 8454041; + text 'Link' 304 240 color 0 'Clear Sans' 16; + terminals + Hin 272 256 fixed; + Hout 336 256 fixed; + Pin 336 224 fixed; + Pout 272 224 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0.0059;0;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; + Link13 592 240 + 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 560 216 624 264 color 0 fill 8454041; + text 'Link' 592 240 color 0 'Clear Sans' 16; + terminals + Hin 560 256 fixed; + Hout 624 256 fixed; + Pin 624 224 fixed; + Pout 560 224 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;0.005;0;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; + Link14 1048 240 + 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 1016 216 1080 264 color 0 fill 8454041; + text 'Link' 1048 240 color 0 'Clear Sans' 16; + terminals + Hin 1016 256 fixed; + Hout 1080 256 fixed; + Pin 1080 224 fixed; + Pout 1016 224 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; + Link15 1360 240 + 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 1328 216 1392 264 color 0 fill 8454041; + text 'Link' 1360 240 color 0 'Clear Sans' 16; + terminals + Hin 1328 256 fixed; + Hout 1392 256 fixed; + Pin 1392 224 fixed; + Pout 1328 224 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;-0.00795;0;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 1168 240 + 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 1136 216 1200 264 color 0 fill 8454041; + text 'Link' 1168 240 color 0 'Clear Sans' 16; + terminals + Hin 1136 256 fixed; + Hout 1200 256 fixed; + Pin 1200 224 fixed; + Pout 1136 224 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; + Link3 1472 240 + 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 1440 216 1504 264 color 0 fill 8454041; + text 'Link' 1472 240 color 0 'Clear Sans' 16; + terminals + Hin 1440 256 fixed; + Hout 1504 256 fixed; + Pin 1504 224 fixed; + Pout 1440 224 fixed; + end; + implementation eq +parameters + real offset[6]= [0;0;0;-0.00795;0;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; + plug Hin 224 256; + plug Pin 1584 224; + plug Pout 192 224; + Splitter1 680 256 + 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 676.8 252.8 683.2 259.2 color -1 fill 0; + ellipse 675.7 251.7 684.3 260.3 color -1; + terminals + input 680 256 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter2 376 256 + 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 372.8 252.8 379.2 259.2 color -1 fill 0; + ellipse 371.7 251.7 380.3 260.3 color -1; + terminals + input 376 256 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter3 1104 256 + 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 1100.8 252.8 1107.2 259.2 color -1 fill 0; + ellipse 1099.7 251.7 1108.3 260.3 color -1; + terminals + input 1104 256 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + Splitter4 1416 256 + 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 1412.8 252.8 1419.2 259.2 color -1 fill 0; + ellipse 1411.7 251.7 1420.3 260.3 color -1; + terminals + input 1416 256 fixed; + end; + implementation eq +equations + collect (output) = input; +implementation_end; + end; + connections + Hin -> Link12\Hin; + Joint_dynF1\output => Joint\Pdiff; + Joint_dynF2\output => Joint1\Pdiff; + Joint_dynF3\output => Joint2\Pdiff; + Joint\Hout -> Link13\Hin; + Joint\Pin <= Link13\Pout; + Joint1\Hout -> Link14\Hin; + Joint1\Pin <= Link14\Pout; + Joint2\Hout -> Link15\Hin; + Joint2\Pin <= Link15\Pout; + Link1\Hout -> Joint1\Hin; + Link1\Pin <= Joint1\Pout; + Link12\Hout -> Splitter2\input; + Link12\Pin <= Joint\Pout; + Link12\Pout => Pout; + Link13\Hout -> Splitter1\input; + Link13\Pin <= Link1\Pout; + Link14\Hout -> Splitter3\input; + Link14\Pin <= Link2\Pout; + Link15\Hout -> Splitter4\input; + Link15\Pin <= Link3\Pout; + Link2\Hout -> Joint2\Hin; + Link2\Pin <= Joint2\Pout; + Link3\Pin <= Pin; + Splitter1\output -> Body_Lift2\input; + Splitter1\output -> Link1\Hin; + Splitter2\output -> Body_Lift1\input; + Splitter2\output -> Joint\Hin; + Splitter3\output -> Body_Lift3\input; + Splitter3\output -> Link2\Hin; + Splitter4\output -> Body_Lift4\input; + Splitter4\output -> Link3\Hin; + 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.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; + Link10 944 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 912 104 976 152 color 0 fill 8454041; + text 'Link' 944 128 color 0 'Clear Sans' 16; + terminals + Hin 912 144 fixed; + Hout 976 144 fixed; + Pin 976 112 fixed; + Pout 912 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; + Link11 784 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 752 104 816 152 color 0 fill 8454041; + text 'Link' 784 128 color 0 'Clear Sans' 16; + terminals + Hin 752 144 fixed; + Hout 816 144 fixed; + Pin 816 112 fixed; + Pout 752 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 @@ -6400,7 +8792,7 @@ equations Pin.f = AdHab * Pout.f; implementation_end; - Link8 1048 128 + Link8 1360 128 description ' 4.8 @@ -6422,13 +8814,13 @@ equations end; icon bg bottom figures - rectangle 1016 104 1080 152 color 0 fill 8454041; - text 'Link' 1048 128 color 0 'Clear Sans' 16; + rectangle 1328 104 1392 152 color 0 fill 8454041; + text 'Link' 1360 128 color 0 'Clear Sans' 16; terminals - Hin 1016 144 fixed; - Hout 1080 144 fixed; - Pin 1080 112 fixed; - Pout 1016 112 fixed; + Hin 1328 144 fixed; + Hout 1392 144 fixed; + Pin 1392 112 fixed; + Pout 1328 112 fixed; end; implementation eq parameters @@ -6678,6 +9070,33 @@ equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); +implementation_end; + OneJunction7 1264 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' 1264 112 color 0 18 bold; + end; + implementation eq +equations + sum (direct (p.e)) = 0; + equal (collect (p.f)); + flow = first (p.f); implementation_end; rectanglepath 856 768 description ' @@ -6764,7 +9183,7 @@ implementation_end; equations collect (output) = input; implementation_end; - Splitter10 1104 144 + Splitter10 1416 144 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 @@ -6778,10 +9197,10 @@ implementation_end; end; icon bg ellipse figures - ellipse 1100.8 140.8 1107.2 147.2 color -1 fill 0; - ellipse 1099.7 139.7 1108.3 148.3 color -1; + ellipse 1412.8 140.8 1419.2 147.2 color -1 fill 0; + ellipse 1411.7 139.7 1420.3 148.3 color -1; terminals - input 1104 144 fixed; + input 1416 144 fixed; end; implementation eq equations @@ -8082,7 +10501,7 @@ equations implementation_end; specification_end; end; - Zero 816 592 + Zero 816 680 description '4.01False Signal\Sources\Zero.emx 2007-9-27 15:54:36 @@ -8094,8 +10513,8 @@ specification_end; end; icon bg bottom figures - rectangle 800.1 576 831.9 608 color 0 fill 15132390; - text '0' 816 592 color 16711680 18 bold; + rectangle 800.1 664 831.9 696 color 0 fill 15132390; + text '0' 816 680 color 16711680 18 bold; end; implementation eq equations @@ -8132,6 +10551,9 @@ equations JointE\Pout => Link4\Pin; JointF\Hout -> Link10\Hin; JointF\Pout => Link11\Pin; + LiftingArm\Hin <- Splitter6\output 728 256; + LiftingArm\Pin <= OneJunction7\p 1264 224; + LiftingArm\Pout => OneJunction6\p 696 224; Link1\Hout -> Splitter6\input; Link10\Hout -> Splitter9\input; Link10\Pout => JointF\Pin; @@ -8148,7 +10570,7 @@ equations Link6\Hout -> Splitter2\input; Link6\Pin <= OneJunction2\p; Link8\Hout -> Splitter10\input; - Link8\Pout => Link10\Pin; + Link8\Pout => OneJunction7\p; Link9\Hout -> Splitter3\input; Link9\Pin <= OneJunction4\p; Negate2\output -> stepper_control1\setpoint; @@ -8161,6 +10583,7 @@ equations OneJunction5\p <= JointC\Pout; OneJunction5\p => JointA\Pin; OneJunction6\p => Link1\Pin; + OneJunction7\p => Link10\Pin; Splitter1\output -> Body2\input; Splitter1\output -> COM_body2\Hin; Splitter1\output -> Link7\Hin; @@ -8195,6 +10618,12 @@ equations 4.8 + + + + + + @@ -8377,23 +10806,87 @@ equations 1 0 0 + + Joint_dynF\C\state_initial + 0 + + + LiftingArm\Joint1\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint2\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint\Hmatrix\p_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint_dynF1\C1\state_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint_dynF1\C4\state_initial + 2 + 1 + 0 0 + + + LiftingArm\Joint_dynF2\C1\state_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint_dynF2\C4\state_initial + 2 + 1 + 0 0 + + + LiftingArm\Joint_dynF3\C1\state_initial + 3 + 1 + 0 0 0 + + + LiftingArm\Joint_dynF3\C4\state_initial + 2 + 1 + 0 0 + + + COM_body4\ZeroJunction1\p1.e_initial + 6 + 1 + 0 0 0 0 0 0 + + + COM_body5\ZeroJunction1\p1.e_initial + 6 + 1 + 0 0 0 0 0 0 + + + LiftingArm\Joint\AdHji\p2.e_initial + 6 + 1 + 0 0 0 0 0 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] @@ -8461,10 +10954,60 @@ equations Body6\R[2,2] Body6\R[3,2] Body6\position[1] + Body1\position[1] + Body1\position[2] + 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] + Body1\position[3] + LiftingArm\Body_Lift2\dimension[1] + LiftingArm\Body_Lift2\dimension[2] + LiftingArm\Body_Lift2\dimension[3] + LiftingArm\Body_Lift2\position[1] + LiftingArm\Body_Lift2\position[2] + LiftingArm\Body_Lift2\position[3] + LiftingArm\Body_Lift2\R[1,3] + LiftingArm\Body_Lift2\R[2,3] + LiftingArm\Body_Lift2\R[3,3] + LiftingArm\Body_Lift2\R[1,2] + LiftingArm\Body_Lift2\R[2,2] + LiftingArm\Body_Lift2\R[3,2] + LiftingArm\Body_Lift3\dimension[1] + LiftingArm\Body_Lift3\dimension[2] + LiftingArm\Body_Lift3\dimension[3] + LiftingArm\Body_Lift3\position[1] + LiftingArm\Body_Lift3\position[2] + LiftingArm\Body_Lift3\position[3] + LiftingArm\Body_Lift3\R[1,3] + LiftingArm\Body_Lift3\R[2,3] + LiftingArm\Body_Lift3\R[3,3] + LiftingArm\Body_Lift3\R[1,2] + LiftingArm\Body_Lift3\R[2,2] + LiftingArm\Body_Lift3\R[3,2] + LiftingArm\Body_Lift4\dimension[1] + LiftingArm\Body_Lift4\dimension[2] + LiftingArm\Body_Lift4\dimension[3] + LiftingArm\Body_Lift4\position[1] + LiftingArm\Body_Lift4\position[2] + LiftingArm\Body_Lift4\position[3] + LiftingArm\Body_Lift4\R[1,3] + LiftingArm\Body_Lift4\R[2,3] + LiftingArm\Body_Lift4\R[3,3] + LiftingArm\Body_Lift4\R[1,2] + LiftingArm\Body_Lift4\R[2,2] + LiftingArm\Body_Lift4\R[3,2] stepper_control\setpoint Joint_dynA\stepper_model\angle stepper_control1\setpoint Joint_dynC\angle + Body_Lift2\position[2] + Body_Lift2\position[3] @@ -8538,7 +11081,7 @@ equations 0.0 - 3.2420091467026997 + 6.0 true 3 @@ -9248,36 +11791,36 @@ equations Camera Looking at Origin - 0.245976429808248 + 0.223787984479337 - -0.0388302746466069 + 0.0954804685656807 - 0.0780771451714441 + 0.105305809287375 - -0.976228248439824 + -0.88839104703304 - 0.15372928256777 + -0.37796546340258 - -0.152793045094702 + -0.260582915837574 - -0.150933112017381 + -0.239783703536445 - 0.0237678422676611 + -0.1020158396758 - 0.988258207843825 + 0.965451471578757 Direct3D @@ -9572,44 +12115,44 @@ equations Body1\position[1] - 0.0 + -4.192318903545271e-13 Body1\position[2] - -0.013216742557477136 + -0.01794560018514256 Body1\position[3] - 0.02929685427745184 + 0.02587531783732037 Body1\R[1,3] - 0.0 + 1.8808915239954715e-11 Body1\R[2,3] - -0.39150905335206887 + -0.5026328576019784 Body1\R[3,3] - 0.9201742558577516 + 0.8644999771306355 Body1\R[1,2] - 0.0 + -6.441531859206288e-11 Body1\R[2,2] - 0.9201742558577516 + 0.8644999771306355 Body1\R[3,2] - 0.39150905335206887 + 0.5026328576019784 Matrix @@ -9691,44 +12234,44 @@ equations Body2\position[1] - 0.0 + 3.9961335365673003e-13 Body2\position[2] - -0.010731870933632882 + -0.010668707667296126 Body2\position[3] - -0.006377522947254681 + 0.006619337182379103 Body2\R[1,3] - 0.0 + 1.4843149326684468e-11 Body2\R[2,3] - -0.5128634791918395 + 0.525080867694379 Body2\R[3,3] - 0.8584701810262496 + 0.8510523382150583 Body2\R[1,2] - 0.0 + 6.025411718535906e-12 Body2\R[2,2] - 0.8584701810262496 + 0.8510523382150583 Body2\R[3,2] - 0.5128634791918395 + -0.525080867694379 Matrix @@ -9810,44 +12353,44 @@ equations Body3\position[1] - 0.0 + 8.37962015923301e-13 Body3\position[2] - -0.03440839742237934 + -0.03735447750060467 Body3\position[3] - 0.016889663750438287 + 0.041486728665558394 Body3\R[1,3] - 0.0 + 1.3203517771817197e-12 Body3\R[2,3] - -0.4003112042408226 + -0.493262820072999 Body3\R[3,3] - 0.9163792554173531 + 0.8698803310419384 Body3\R[1,2] - 0.0 + 1.3861294680230433e-10 Body3\R[2,2] - 0.9163792554173531 + 0.8698803310419384 Body3\R[3,2] - 0.4003112042408226 + 0.493262820072999 Matrix @@ -9929,44 +12472,44 @@ equations Body4\position[1] - 0.0 + 2.287910135372518e-12 Body4\position[2] - -0.02583103540960315 + -0.03421787608812493 Body4\position[3] - 0.05894321641561122 + 0.05382727747127006 Body4\R[1,3] - 0.0 + -4.592834816856213e-11 Body4\R[2,3] - -0.49847598509542 + 0.639676262061669 Body4\R[3,3] - 0.8669035080579329 + 0.7686444430000199 Body4\R[1,2] - 0.0 + 3.8196097794433654e-11 Body4\R[2,2] - 0.8669035080579329 + 0.7686444430000199 Body4\R[3,2] - 0.49847598509542 + -0.639676262061669 Matrix @@ -10048,44 +12591,44 @@ equations Body5\position[1] - 0.0 + -1.059715378988415e-9 Body5\position[2] - 0.0064755680322661725 + -0.0054321911761190805 Body5\position[3] - 0.07751973284114312 + 0.029862793849851747 Body5\R[1,3] - 0.0 + -6.900190287113113e-10 Body5\R[2,3] - -0.4984759842502531 + 0.6396762644345244 Body5\R[3,3] - 0.8669035085439103 + 0.7686444410252977 Body5\R[1,2] - 0.0 + -1.526597654298108e-7 Body5\R[2,2] - 0.8669035085439103 + 0.7686444410252886 Body5\R[3,2] - 0.4984759842502531 + -0.6396762644345171 Matrix @@ -10116,44 +12659,44 @@ equations Body6\position[1] - 0.0 + -2.965264415716501e-9 Body6\position[2] - 0.017244532392109463 + 0.004162279705310155 Body6\position[3] - 0.08371196768126417 + 0.021878145857768656 Body6\R[1,3] - 0.0 + -6.900190287113113e-10 Body6\R[2,3] - -0.4984759842502531 + 0.6396762644345244 Body6\R[3,3] - 0.8669035085439103 + 0.7686444410252977 Body6\R[1,2] - 0.0 + -1.526597654298108e-7 Body6\R[2,2] - 0.8669035085439103 + 0.7686444410252886 Body6\R[3,2] - 0.4984759842502531 + -0.6396762644345171 Matrix @@ -10460,7 +13003,364 @@ equations - + + +
Center
+ 1.0 + true + 4 + + + LiftingArm\Body_Lift2\dimension[1] + 0.01 + + + LiftingArm\Body_Lift2\dimension[2] + 0.003 + + + LiftingArm\Body_Lift2\dimension[3] + 0.002 + + + true + + + 1 + + + 1 + + + 1 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + LiftingArm\Body_Lift2\position[1] + 0.010884341933766452 + + + LiftingArm\Body_Lift2\position[2] + -0.02469354731052049 + + + LiftingArm\Body_Lift2\position[3] + 0.045832181943591406 + + + + + + LiftingArm\Body_Lift2\R[1,3] + 3.5494701038080086e-7 + + + LiftingArm\Body_Lift2\R[2,3] + 0.639676572691222 + + + LiftingArm\Body_Lift2\R[3,3] + 0.7686441844897325 + + + + + LiftingArm\Body_Lift2\R[1,2] + 0.009434918925523509 + + + LiftingArm\Body_Lift2\R[2,2] + 0.7686099701193403 + + + LiftingArm\Body_Lift2\R[3,2] + -0.6396481033646668 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Center
+ 1.0 + true + 4 + + + LiftingArm\Body_Lift3\dimension[1] + 0.003 + + + LiftingArm\Body_Lift3\dimension[2] + 0.025 + + + LiftingArm\Body_Lift3\dimension[3] + 0.001 + + + true + + + 1 + + + 1 + + + 1 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + LiftingArm\Body_Lift3\position[1] + 0.015877282608288686 + + + LiftingArm\Body_Lift3\position[2] + -0.015169225940552214 + + + LiftingArm\Body_Lift3\position[3] + 0.03783707830340231 + + + + + + LiftingArm\Body_Lift3\R[1,3] + 1.765807711687116e-7 + + + LiftingArm\Body_Lift3\R[2,3] + 0.6396768859853879 + + + LiftingArm\Body_Lift3\R[3,3] + 0.7686439237618458 + + + + + LiftingArm\Body_Lift3\R[1,2] + 2.064718926187933e-5 + + + LiftingArm\Body_Lift3\R[2,2] + 0.7686439235956867 + + + LiftingArm\Body_Lift3\R[3,2] + -0.639676885851851 + + + Matrix + + false + false + false + false + false + false + + +
+ +
Center
+ 1.0 + true + 4 + + + LiftingArm\Body_Lift4\dimension[1] + 0.0159 + + + LiftingArm\Body_Lift4\dimension[2] + 0.003 + + + LiftingArm\Body_Lift4\dimension[3] + 0.002 + + + true + + + 1 + + + 1 + + + 1 + + + 1.0 + + + 1 + + + 1 + + + 1 + + + + + true + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + 15 + + false + false + Block + + + LiftingArm\Body_Lift4\position[1] + 0.007938757231490916 + + + LiftingArm\Body_Lift4\position[2] + -0.005608695269323513 + + + LiftingArm\Body_Lift4\position[3] + 0.02981184307274159 + + + + + + LiftingArm\Body_Lift4\R[1,3] + -1.0363837672010732e-9 + + + LiftingArm\Body_Lift4\R[2,3] + 0.6396761815866475 + + + LiftingArm\Body_Lift4\R[3,3] + 0.76864450997241 + + + + + LiftingArm\Body_Lift4\R[1,2] + -1.530724086042814e-7 + + + LiftingArm\Body_Lift4\R[2,2] + 0.7686445099724009 + + + LiftingArm\Body_Lift4\R[3,2] + -0.6396761815866402 + + + Matrix + + false + false + false + false + false + false + + +
@@ -10538,7 +13438,7 @@ equations 0.0 - 3.2420091467026997 + 6.0 true 3 @@ -10708,8 +13608,8 @@ equations false - -0.041708787744804604 - 0.08638068231201962 + -0.04237372378417744 + 0.08650812025464483 true 3 @@ -10781,11 +13681,11 @@ equations true true - Body1\position[2] + Body_Lift2\position[2] true - Body1\position[3] + Body_Lift2\position[3] @@ -10980,7 +13880,7 @@ equations 0.0 - 3.2420091467026997 + 6.0 true 3 @@ -11151,7 +14051,7 @@ equations 0.0 - 3.2420091467026997 + 6.0 true 3 @@ -11288,14 +14188,14 @@ equations - -0.0770833 0.135185 0.827083 0.859259 + +0.0203125 0.075 0.770312 0.799074 -0.075 0.0861111 0.917708 0.938889 +0.114583 0.0472222 0.922917 0.859259 -0 0.0259259 1 1 +0.0328125 0.172222 0.782292 0.897222
@@ -11330,7 +14230,7 @@ equations AdamsBashforth - 0.01 + 1.0e-4 false @@ -11402,7 +14302,7 @@ equations false 0.0 - 8 + 7