diff --git a/implementation/SCARA/03_motor/MR_dynamics.emx b/implementation/SCARA/03_motor/MR_dynamics.emx
new file mode 100644
index 0000000..7f235a4
--- /dev/null
+++ b/implementation/SCARA/03_motor/MR_dynamics.emx
@@ -0,0 +1,9018 @@
+
+
+
+
+
+ 4.8
+0
+ False
+ C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\03_motor\MR_dynamics.emx
+ 2020-7-17 13:58:25
+
+';
+ type Mainmodel
+ end;
+ implementation bg
+ submodels
+ Base 392 296
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.0325; 0.0] {m};
+ real dim[3,1] = [0.0; 0.065; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 360 224 424 368 color 0 fill 10025880;
+ text 'Link' 392 296 color 0;
+ terminals
+ p 360 256 fixed;
+ Hin 360 336 fixed;
+ p1 424 256 fixed;
+ Hout 424 336 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 416 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;
+ AdHij 864 304
+ 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 top
+ figures
+ text 'MTF' 864 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ //Only rotations with respect to the inertial system matter!
+
+ p1.e = transpose(Adjoint(H)) * p2.e;
+ p2.f = Adjoint(H) * p1.f;
+implementation_end;
+ AdHik 544 248
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.0325; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 544 248 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ AdHik1 544 360
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.0325; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 544 360 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ EJS 608 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [20.0; 20.0; 20.0];
+ real m = 20.0;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 608 184 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 656 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 20.0;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 656 416 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-9.8*m];
+ p.e = effort;
+implementation_end;
+ Hij 864 496
+ description '
+ 4.1
+1
+ False
+ H.emx
+ 2010-9-21 15:03:50
+True
+';
+ type Gain
+ ports
+ signal in input [4,4];
+ signal out output [4,4];
+ signal out Hab [4,4];
+ parameters
+ real dim[3,1] = [0.024; 0.0; 0.096];
+ end;
+ icon bg bottom
+ figures
+ rectangle 848.1 480 879.9 512 color 0 fill 15132390;
+ text 'H' 864 496 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real baseoffset[3]=[0.143; 0; 0.046]; //coordinates of joint_1
+equations
+ Hab = homogeneous(eye(3),dim+baseoffset);
+ output = input * Hab;
+ implementation_end;
+ InertialTensor 480 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 1.0;
+ real I[3,1] = [20.0; 20.0; 20.0];
+ end;
+ icon bg top
+ figures
+ text 'I' 480 184 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hout 984 496;
+ plug p1 984 304;
+ plug Hin 472 496;
+ plug p 472 304;
+ 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;
+ Ta00 600 416
+ 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' 600 416 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0j 544 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 184
+ 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 top
+ figures
+ text '1' 544 184 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => AdHik1\p1;
+ AdHij\p1 => Ta0j\p;
+ AdHik\p2 => Ta0k\p;
+ AdHik1\p2 => Ta0j\p;
+ Gravity\p => Ta00\p;
+ Hij\Hab -> AdHij\H;
+ Hij\output -> Hout;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => AdHij\p2;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hij\input;
+ Ta00\p => AdHi0\p1;
+ Ta0j\p => AdHik\p1;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base1 584 296
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.025; 0.0] {m};
+ real dim[3,1] = [0.0; 0.05; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 552 224 616 368 color 0 fill 10025880;
+ text 'Link' 584 296 color 0;
+ terminals
+ p 552 256 fixed;
+ Hin 552 336 fixed;
+ p1 616 256 fixed;
+ Hout 616 336 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 664 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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' 664 416 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;
+ AdHij 816 304
+ 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 top
+ figures
+ text 'MTF' 816 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ //Only rotations with respect to the inertial system matter!
+
+ p1.e = transpose(Adjoint(H)) * p2.e;
+ p2.f = Adjoint(H) * p1.f;
+implementation_end;
+ AdHik 664 248
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.01489; 0.00213; 0.00213];
+ end;
+ icon bg left
+ figures
+ text 'TF' 664 248 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ AdHik1 664 360
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power out p1 [6,1];
+ power in p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.01489; 0.00213; 0.00213];
+ end;
+ icon bg left
+ figures
+ text 'TF' 664 360 color 0 18 bold;
+ end;
+ implementation eq
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ EJS 728 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [20.0; 20.0; 20.0];
+ real m = 20.0;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 728 184 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 776 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 20.0;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 776 416 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-9.8*m];
+ p.e = effort;
+implementation_end;
+ Hij 816 496
+ description '
+ 4.1
+1
+ False
+ H.emx
+ 2010-9-21 15:03:50
+True
+';
+ type Gain
+ ports
+ signal in input [4,4];
+ signal out output [4,4];
+ signal out Hab [4,4];
+ parameters
+ real dim[3,1] = [0.024; 0.0; 0.096];
+ end;
+ icon bg bottom
+ figures
+ rectangle 800.1 480 831.9 512 color 0 fill 15132390;
+ text 'H' 816 496 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real baseoffset[3]=[0.143; 0; 0.046]; //coordinates of joint_1
+equations
+ Hab = homogeneous(eye(3),dim+baseoffset);
+ output = input * Hab;
+ implementation_end;
+ InertialTensor 600 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 1.0;
+ real I[3,1] = [20.0; 20.0; 20.0];
+ end;
+ icon bg top
+ figures
+ text 'I' 600 184 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hout 896 496;
+ plug p1 904 304;
+ plug Hin 592 496;
+ plug p 592 304;
+ Splitter1 664 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 660.8 492.8 667.2 499.2 color -1 fill 0;
+ ellipse 659.7 491.7 668.3 500.3 color -1;
+ terminals
+ input 664 496 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Ta00 720 416
+ 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' 720 416 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0j 664 304
+ 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' 664 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 664 184
+ 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 top
+ figures
+ text '1' 664 184 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => AdHik1\p2;
+ AdHik\p2 => Ta0k\p;
+ Gravity\p => Ta00\p;
+ Hij\Hab -> AdHij\H;
+ Hij\output -> Hout;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => AdHij\p2;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hij\input;
+ Ta00\p => AdHi0\p1;
+ Ta0j\p <= AdHij\p1;
+ Ta0j\p <= AdHik1\p1;
+ Ta0j\p => AdHik\p1;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base2 520 512
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.0325; 0.0] {m};
+ real dim[3,1] = [0.0; 0.065; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 488 472 552 552 color 0 fill 255;
+ text 'COM' 520 496 color 0;
+ terminals
+ p 488 488 fixed;
+ Hin 488 536 fixed;
+ p1 552 488 fixed;
+ Hout 552 536 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [20.0; 20.0; 20.0];
+ real m = 20.0;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 20.0;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 400 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-g_n*m];
+ p.e = effort;
+implementation_end;
+ InertialTensor 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 1.0;
+ real I[3,1] = [20.0; 20.0; 20.0];
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hin 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base3 1024 512
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\center_of_mass.emx
+ 2020-7-17 13:52:18
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.0325; 0.0] {m};
+ real dim[3,1] = [0.0; 0.065; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 992 472 1056 552 color 0 fill 255;
+ text 'COM' 1024 496 color 0;
+ terminals
+ p 992 488 fixed;
+ Hin 992 536 fixed;
+ p1 1056 488 fixed;
+ Hout 1056 536 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [20.0; 20.0; 20.0];
+ real m = 20.0;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 20.0;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 400 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-g_n*m];
+ p.e = effort;
+implementation_end;
+ InertialTensor 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 1.0;
+ real I[3,1] = [20.0; 20.0; 20.0];
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hin 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base4 1432 512
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.0325; 0.0] {m};
+ real dim[3,1] = [0.0; 0.065; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 1400 472 1464 552 color 0 fill 255;
+ text 'COM' 1432 496 color 0;
+ terminals
+ p 1400 488 fixed;
+ Hin 1400 536 fixed;
+ p1 1464 488 fixed;
+ Hout 1464 536 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [20.0; 20.0; 20.0];
+ real m = 20.0;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 20.0;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 400 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-g_n*m];
+ p.e = effort;
+implementation_end;
+ InertialTensor 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 1.0;
+ real I[3,1] = [20.0; 20.0; 20.0];
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hin 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Constant 168 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+ True
+';
+ type Constant
+ ports
+ signal out output [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 152.1 320 183.9 352 color 0 fill 15132390;
+ line 156.9 331.6 178.9 331.6 color 16711680 width 2;
+ line 154.2 342.7 179.9 342.7 color 0;
+ line 156.5 326.7 156.5 345 color 0;
+ end;
+ implementation eq
+equations
+ output = eye(4);
+ implementation_end;
+ Constant1 296 48
+ description '4.01False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+';
+ type Constant
+ ports
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 280.1 32 311.9 64 color 0 fill 15132390;
+ line 284.9 43.6 306.9 43.6 color 16711680 width 2;
+ line 282.2 54.7 307.9 54.7 color 0;
+ line 284.5 38.7 284.5 57 color 0;
+ end;
+ implementation eq
+parameters
+ real C = 1.0; // output value
+equations
+ output = C;
+ implementation_end;
+ Joint 1224.1 510
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\joint-v2.emx
+ 2020-7-17 13:36:30
+
+';
+ type 'Submodel-rotz'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -2.9496;
+ real MinEndstopPos = -2.95;
+ real MaxEndstopPos = 2.95;
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 1192.2 472 1256 548 color 0 fill 14745599;
+ text 'Joint' 1224 504 color 0;
+ terminals
+ p 1192 488 fixed;
+ p1 1224 472 fixed;
+ p2 1256 488 fixed;
+ Hin 1192 536 fixed;
+ Hout 1256 536 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;
+ EndstopMax 352 216
+ description '
+ 4.1
+1
+ False
+ True
+ EndstopMax.emx
+ 2011-1-18 16:54:54
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -2.9496;
+ real EndstopPos = 2.95;
+ end;
+ icon bg bottom
+ figures
+ rectangle 303 193 401 239 color 0 fill 14013909;
+ text 'EndstopMax' 353 215 color 0 16;
+ end;
+ implementation bg
+ submodels
+ Cendstop 704 144
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 704 144 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 704 216
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out Collision;
+ restrictions
+ causality fixed out p2;
+ causality fixed out p1;
+ causality fixed in p12;
+ parameters
+ real InitialPos = -2.9496;
+ real EndstopPos = 2.95;
+ end;
+ icon bg
+ figures
+ text 'X0e' 704 216 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon < 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug Collision 408 192;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ mechanical in p1;
+ mechanical out p2;
+ mechanical out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = 2.95;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -2.9496;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> Collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopPos;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 648 216;
+ plug collision 800 216;
+ OneJunction5 704 176
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 704 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 736 176
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 736 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf1 704 264
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 704 264 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\Collision -> collision;
+ Collision\p12 => OneJunction5\p;
+ Collision\p2 => p2;
+ OneJunction5\p => Cendstop\p;
+ OneJunction5\p => Rendstop\p;
+ Sf1\p => Collision\p1;
+ end;
+ parameterrelations
+Collision\InitialPos = InitialPos;
+Collision\EndstopPos = EndstopPos;
+Rendstop\Rendstop = Rendstop;
+Cendstop\Cendstop = Cendstop;parameterrelations_end;
+ implementation_end;
+ EndstopMin 352 136
+ description '
+ 4.1
+1
+ False
+ True
+ EndstopMin.emx
+ 2011-1-18 16:54:44
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Cendstop = 1.0e-4;
+ real Rendstop = 1000.0;
+ real InitialPos = -2.9496;
+ real EndstopPos = -2.95;
+ end;
+ icon bg bottom
+ figures
+ rectangle 303 113 401 159 color 0 fill 14013909;
+ text 'EndstopMin' 353 135 color 0 16;
+ end;
+ implementation bg
+ submodels
+ Cendstop 248 208
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 248 208 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 248 120
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out collision;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ parameters
+ real InitialPos = -2.9496;
+ real EndstopLocation = -2.95;
+ end;
+ icon bg
+ figures
+ text 'X0e' 248 120 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon > 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug collision 400 200;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -2.95;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -2.9496;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopLocation;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 152 120;
+ plug collision 360 120;
+ OneJunction 248 160
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 248 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 288 160
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 288 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf2 248 64
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 248 64 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\collision -> collision;
+ Collision\p12 => OneJunction\p;
+ Collision\p2 => p2;
+ OneJunction\p => Cendstop\p;
+ OneJunction\p => Rendstop\p;
+ Sf2\p => Collision\p1;
+ end;
+ parameterrelations
+Cendstop\Cendstop = Cendstop;
+Rendstop\Rendstop = Rendstop;
+Collision\InitialPos = InitialPos;
+Collision\EndstopLocation = EndstopPos;parameterrelations_end;
+ implementation_end;
+ JointType 240 312
+ description '4.81FalseTrueparameters
+ real joint = 2;';
+ type Submodel
+ ports
+ mechanical in p1;
+ signal out output [4,4];
+ power out p2 [6,1];
+ end;
+ implementation bg
+ submodels
+ Integrate 320 272
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -2.9496;
+ end;
+ icon bg
+ figures
+ rectangle 304 256 336 288 color 0 fill 15132390;
+ text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+ real qa[6];
+ real temp [4,4];
+initialequations
+ qa = 0;
+equations
+q = -int(input,init);
+qa[joint] = q;
+R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa);
+output = homogeneous(R,qa[4:6]);implementation_end;
+ plug p1 240 188;
+ plug output 320 368;
+ plug p2 240 412;
+ OneJunction2 240 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\FlowSensor.emx
+ 2011-11-29 15:50:53
+
+';
+ knot FlowSensor
+ ports
+ mechanical knot in p1 [1];
+ power knot out p2 [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215;
+ text 'f' 240 271.2 color 0;
+ end;
+ implementation eq
+equations
+ p2.f = p1.f;
+ p1.e = p2.e;
+ flow = p1.f;
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real i;
+ real state[6];
+equations
+ /*p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint);
+ p2.e[3] = p1.e;
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[3];*/
+ state = int(p2.f);
+ for i = 1 to 6 do
+ if i == joint then
+ p1.f = p2.f[i];
+ p2.e[i] = p1.e;
+ else
+ p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint);
+ end;
+ end;
+implementation_end;
+ end;
+ connections
+ Integrate\output -> output;
+ OneJunction2\flow -> Integrate\input;
+ OneJunction2\p2 => uTbai\p1;
+ p1 => OneJunction2\p1;
+ uTbai\p2 => p2;
+ end;
+ implementation_end;
+ MultiplyDivide1 320 576
+ description '4.01False
+ Signal\Block Diagram\MultiplyDivide.emx
+ 2007-9-27 10:14:59
+';
+ knot MultiplyDivide
+ ports
+ signal knot duplicatable in multiply [4,4];
+ signal knot duplicatable in divide [4,4];
+ signal knot out output [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 312 568 328 584 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = mul (collect (multiply)) ./ mul (collect (divide));
+ implementation_end;
+ plug Hout 504 576;
+ plug Hin 112 576;
+ plug p2 496 424;
+ plug p 112 424;
+ plug p1 240 40;
+ OneJunction 240 176
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 240 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Or 456 176
+ description '
+ 4.0
+ 1
+ False
+ Signal\Logical\Discrete\Or.emx
+ 2007-12-18 23:20:57
+';
+ type 'Or-Or'
+ ports
+ signal boolean in input1;
+ signal boolean out output;
+ signal boolean in input2;
+ end;
+ icon bg bottom
+ figures
+ rectangle 440.1 160 471.9 192 color 0 fill 15132390;
+ group
+ line 442.3 169.3 452.8 169.3 color 16711680 fill 16711680;
+ line 442.3 183.1 452.8 183.1 color 16711680 fill 16711680;
+ end;
+ spline 451.9 164.8 453.9 176.5 451.9 187.7 color 16711680 fill 16711680;
+ line 460.7 176 469.5 176 color 16711680 fill 16711680;
+ spline 451.7 164.3 457.9 166.6 460.8 176.4 457.6 185.4 451.7 187.7 color 16711680 fill 15132390;
+ end;
+ implementation eq
+equations
+ output = if input1 or input2 then
+ true
+ else
+ false
+ end;
+
+ implementation_end;
+ Rjoint 168 176
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 168 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ 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 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 104
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 104 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
+ EndstopMax\collision -> Or\input1;
+ EndstopMin\collision -> Or\input2;
+ Hin -> MultiplyDivide1\multiply;
+ JointType\output -> Splitter2\input;
+ JointType\p2 => Wbai\p;
+ MultiplyDivide1\output -> Hout;
+ OneJunction\p <= EndstopMax\p2;
+ OneJunction\p <= EndstopMin\p2;
+ OneJunction\p => JointType\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Rjoint\p <= OneJunction\p;
+ Splitter2\output -> AdHji\H 424 312;
+ Splitter2\output -> MultiplyDivide1\multiply;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;
+
+parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 680 488 color 0;
+ implementation_end;
+ JointBase1 488.2 296
+ description '
+ 4.1
+1
+ False
+ True
+ Joint-roty.emx
+ 2011-1-18 17:30:05
+';
+ type 'Submodel-roty'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -1.13;
+ real MaxEndstopPos = 1.57;
+ real MinEndstopPos = -1.131;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 456.5 224 520 368 color 0 fill 14745599;
+ text 'Joint-roty' 488.5 299 color 0;
+ terminals
+ p 456 256 fixed;
+ p1 487.5 224 fixed;
+ p2 520 256 fixed;
+ Hin 456 336 fixed;
+ Hout 520 336 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;
+ EndstopMax 471 217
+ description '
+ 4.1
+ 1
+ False
+ True
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg bottom
+ figures
+ rectangle 422 194 520 240 color 0 fill 14013909;
+ text 'EndstopMax' 472 216 color 0 16;
+ terminals
+ p2 472 240 fixed;
+ end;
+ implementation bg
+ submodels
+ Cendstop 704 144
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 704 144 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 704 216
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out Collision;
+ restrictions
+ causality fixed in p12;
+ causality fixed out p2;
+ causality fixed out p1;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg
+ figures
+ text 'X0e' 704 216 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon < 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug Collision 408 192;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ mechanical in p1;
+ mechanical out p2;
+ mechanical out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = 1.57;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> Collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopPos;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 648 216;
+ plug collision 800 216;
+ OneJunction5 704 176
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 704 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 736 176
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 736 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf1 704 264
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 704 264 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\Collision -> collision;
+ Collision\p12 => OneJunction5\p;
+ Collision\p2 => p2;
+ OneJunction5\p => Cendstop\p;
+ OneJunction5\p => Rendstop\p;
+ Sf1\p => Collision\p1;
+ end;
+ parameterrelations
+Collision\InitialPos = InitialPos;
+Collision\EndstopPos = EndstopPos;
+Rendstop\Rendstop = Rendstop;
+Cendstop\Cendstop = Cendstop;parameterrelations_end;
+ implementation_end;
+ EndstopMin 312 216
+ description '
+ 4.1
+1
+ False
+ True
+ EndstopMin.emx
+ 2011-1-18 14:37:57
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Cendstop = 1.0e-4;
+ real Rendstop = 1000.0;
+ real InitialPos = -1.13;
+ real EndstopPos = -1.131;
+ end;
+ icon bg bottom
+ figures
+ rectangle 263 193 361 239 color 0 fill 14013909;
+ text 'EndstopMin' 313 215 color 0 16;
+ end;
+ implementation bg
+ submodels
+ Cendstop 248 208
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 248 208 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 248 120
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out collision;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopLocation = -1.131;
+ end;
+ icon bg
+ figures
+ text 'X0e' 248 120 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon > 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug collision 400 200;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.131;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopLocation;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 152 120;
+ plug collision 360 120;
+ OneJunction 248 160
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 248 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 288 160
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 288 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf2 248 64
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 248 64 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\collision -> collision;
+ Collision\p12 => OneJunction\p;
+ Collision\p2 => p2;
+ OneJunction\p => Cendstop\p;
+ OneJunction\p => Rendstop\p;
+ Sf2\p => Collision\p1;
+ end;
+ parameterrelations
+Cendstop\Cendstop = Cendstop;
+Rendstop\Rendstop = Rendstop;
+Collision\InitialPos = InitialPos;
+Collision\EndstopLocation = EndstopPos;parameterrelations_end;
+ implementation_end;
+ Integrate 320 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -1.13;
+ end;
+ icon bg
+ figures
+ rectangle 304 320 336 352 color 0 fill 15132390;
+ text 'ò' 320 333.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+equations
+q = int(input,init);
+R = [ cos(q), 0, sin(q);
+ 0, 1, 0;
+ -sin(q), 0, cos(q)];
+p = [0;0;0];
+output = homogeneous(R,p);
+
+ implementation_end;
+ MatrixMul 320 496
+ 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 480 335.9 512 color 0 fill 15132390;
+ text 'X' 320 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = input2*input1; implementation_end;
+ plug p1 240 56;
+ plug p2 496 424;
+ plug Hin 112 496;
+ plug Hout 504 496;
+ plug p 112 424;
+ OneJunction 240 272
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 240 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Or 392 216
+ description '
+ 4.0
+ 1
+ False
+ Signal\Logical\Discrete\Or.emx
+ 2007-12-18 23:20:57
+';
+ type 'Or-Or'
+ ports
+ signal boolean in input1;
+ signal boolean out output;
+ signal boolean in input2;
+ end;
+ icon bg bottom
+ figures
+ rectangle 376.1 200 407.9 232 color 0 fill 15132390;
+ group
+ line 378.3 209.3 388.8 209.3 color 16711680 fill 16711680;
+ line 378.3 223.1 388.8 223.1 color 16711680 fill 16711680;
+ end;
+ spline 387.9 204.8 389.9 216.5 387.9 227.7 color 16711680 fill 16711680;
+ line 396.7 216 405.5 216 color 16711680 fill 16711680;
+ spline 387.7 204.3 393.9 206.6 396.8 216.4 393.6 225.4 387.7 227.7 color 16711680 fill 15132390;
+ end;
+ implementation eq
+equations
+ output = if input1 or input2 then
+ true
+ else
+ false
+ end;
+
+ implementation_end;
+ Rjoint 192 272
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 192 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ Splitter2 320 368
+ 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 364.8 323.2 371.2 color -1 fill 0;
+ ellipse 315.7 363.7 324.3 372.3 color -1;
+ terminals
+ input 320 368 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Tbai 240 384
+ 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 left
+ figures
+ text '1' 240 384 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = p1.e;
+ p2.e[3] = (Rconstraint*-p2.f[3] + int(-p2.f[3])/Cconstraint);
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[2];
+implementation_end;
+ Wbai 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 104
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 104 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
+ EndstopMax\collision -> Or\input1;
+ EndstopMin\collision -> Or\input2;
+ Hin -> MatrixMul\input2;
+ Integrate\output -> Splitter2\input;
+ MatrixMul\output -> Hout;
+ OneJunction\flow -> Integrate\input 320 272;
+ OneJunction\p <= EndstopMax\p2;
+ OneJunction\p <= EndstopMin\p2;
+ OneJunction\p => Rjoint\p;
+ OneJunction\p => uTbai\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 368;
+ Splitter2\output -> MatrixMul\input1;
+ Tbai\p => Wbai\p;
+ uTbai\p2 => Tbai\p;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 744 400 color 0;
+ implementation_end;
+ JointBase2 296.2 296
+ description '
+ 4.1
+1
+ False
+ True
+ Joint-roty.emx
+ 2011-1-18 17:30:05
+';
+ type 'Submodel-roty'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = 0.0;
+ real MaxEndstopPos = 1.57;
+ real MinEndstopPos = -1.131;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 264.5 224 328 368 color 0 fill 14745599;
+ text 'Joint-roty' 296.5 299 color 0;
+ terminals
+ p 264 256 fixed;
+ p1 295.5 224 fixed;
+ p2 328 256 fixed;
+ Hin 264 336 fixed;
+ Hout 328 336 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;
+ EndstopMax 471 217
+ description '
+ 4.1
+ 1
+ False
+ True
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg bottom
+ figures
+ rectangle 422 194 520 240 color 0 fill 14013909;
+ text 'EndstopMax' 472 216 color 0 16;
+ terminals
+ p2 472 240 fixed;
+ end;
+ implementation bg
+ submodels
+ Cendstop 704 144
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 704 144 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 704 216
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out Collision;
+ restrictions
+ causality fixed in p12;
+ causality fixed out p2;
+ causality fixed out p1;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg
+ figures
+ text 'X0e' 704 216 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon < 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug Collision 408 192;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ mechanical in p1;
+ mechanical out p2;
+ mechanical out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = 1.57;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> Collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopPos;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 648 216;
+ plug collision 800 216;
+ OneJunction5 704 176
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 704 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 736 176
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 736 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf1 704 264
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 704 264 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\Collision -> collision;
+ Collision\p12 => OneJunction5\p;
+ Collision\p2 => p2;
+ OneJunction5\p => Cendstop\p;
+ OneJunction5\p => Rendstop\p;
+ Sf1\p => Collision\p1;
+ end;
+ parameterrelations
+Collision\InitialPos = InitialPos;
+Collision\EndstopPos = EndstopPos;
+Rendstop\Rendstop = Rendstop;
+Cendstop\Cendstop = Cendstop;parameterrelations_end;
+ implementation_end;
+ EndstopMin 312 216
+ description '
+ 4.1
+1
+ False
+ True
+ EndstopMin.emx
+ 2011-1-18 14:37:57
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Cendstop = 1.0e-4;
+ real Rendstop = 1000.0;
+ real InitialPos = -1.13;
+ real EndstopPos = -1.131;
+ end;
+ icon bg bottom
+ figures
+ rectangle 263 193 361 239 color 0 fill 14013909;
+ text 'EndstopMin' 313 215 color 0 16;
+ end;
+ implementation bg
+ submodels
+ Cendstop 248 208
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 248 208 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 248 120
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out collision;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopLocation = -1.131;
+ end;
+ icon bg
+ figures
+ text 'X0e' 248 120 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon > 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug collision 400 200;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.131;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopLocation;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 152 120;
+ plug collision 360 120;
+ OneJunction 248 160
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 248 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 288 160
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 288 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf2 248 64
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 248 64 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\collision -> collision;
+ Collision\p12 => OneJunction\p;
+ Collision\p2 => p2;
+ OneJunction\p => Cendstop\p;
+ OneJunction\p => Rendstop\p;
+ Sf2\p => Collision\p1;
+ end;
+ parameterrelations
+Cendstop\Cendstop = Cendstop;
+Rendstop\Rendstop = Rendstop;
+Collision\InitialPos = InitialPos;
+Collision\EndstopLocation = EndstopPos;parameterrelations_end;
+ implementation_end;
+ Integrate 320 328
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -1.13;
+ end;
+ icon bg
+ figures
+ rectangle 304 312 336 344 color 0 fill 15132390;
+ text 'ò' 320 325.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+equations
+q = int(input,init);
+R = [ cos(q), 0, sin(q);
+ 0, 1, 0;
+ -sin(q), 0, cos(q)];
+p = [0;0;0];
+output = homogeneous(R,p);
+
+ implementation_end;
+ MatrixMul 320 496
+ 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 480 335.9 512 color 0 fill 15132390;
+ text 'X' 320 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = input2*input1; implementation_end;
+ plug p1 240 56;
+ plug p2 496 424;
+ plug Hin 112 496;
+ plug Hout 504 496;
+ plug p 112 424;
+ OneJunction 240 272
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 240 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Or 392 216
+ description '
+ 4.0
+ 1
+ False
+ Signal\Logical\Discrete\Or.emx
+ 2007-12-18 23:20:57
+';
+ type 'Or-Or'
+ ports
+ signal boolean in input1;
+ signal boolean out output;
+ signal boolean in input2;
+ end;
+ icon bg bottom
+ figures
+ rectangle 376.1 200 407.9 232 color 0 fill 15132390;
+ group
+ line 378.3 209.3 388.8 209.3 color 16711680 fill 16711680;
+ line 378.3 223.1 388.8 223.1 color 16711680 fill 16711680;
+ end;
+ spline 387.9 204.8 389.9 216.5 387.9 227.7 color 16711680 fill 16711680;
+ line 396.7 216 405.5 216 color 16711680 fill 16711680;
+ spline 387.7 204.3 393.9 206.6 396.8 216.4 393.6 225.4 387.7 227.7 color 16711680 fill 15132390;
+ end;
+ implementation eq
+equations
+ output = if input1 or input2 then
+ true
+ else
+ false
+ end;
+
+ implementation_end;
+ Rjoint 192 272
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 192 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ Splitter2 320 368
+ 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 364.8 323.2 371.2 color -1 fill 0;
+ ellipse 315.7 363.7 324.3 372.3 color -1;
+ terminals
+ input 320 368 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Tbai 240 376
+ 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 left
+ figures
+ text '1' 240 376 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = p1.e;
+ p2.e[3] = (Rconstraint*-p2.f[3] + int(-p2.f[3])/Cconstraint);
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[2];
+implementation_end;
+ Wbai 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 160
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 160 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
+ EndstopMax\collision -> Or\input1;
+ EndstopMin\collision -> Or\input2;
+ Hin -> MatrixMul\input2;
+ Integrate\output -> Splitter2\input;
+ MatrixMul\output -> Hout;
+ OneJunction\flow -> Integrate\input 320 272;
+ OneJunction\p <= EndstopMax\p2;
+ OneJunction\p <= EndstopMin\p2;
+ OneJunction\p => Rjoint\p;
+ OneJunction\p => uTbai\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 368;
+ Splitter2\output -> MatrixMul\input1;
+ Tbai\p => Wbai\p;
+ uTbai\p2 => Tbai\p;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 744 400 color 0;
+ implementation_end;
+ JointBase3 784.2 496
+ description '
+ 4.1
+1
+ False
+ True
+ Joint-roty.emx
+ 2011-1-18 17:30:05
+';
+ type 'Submodel-roty'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = 0.0;
+ real MaxEndstopPos = 1.57;
+ real MinEndstopPos = -1.131;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 752.5 424 816 568 color 0 fill 14745599;
+ text 'Joint-roty' 784.5 499 color 0;
+ terminals
+ p 752 456 fixed;
+ p1 783.5 424 fixed;
+ p2 816 456 fixed;
+ Hin 752 536 fixed;
+ Hout 816 536 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;
+ EndstopMax 471 217
+ description '
+ 4.1
+ 1
+ False
+ True
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg bottom
+ figures
+ rectangle 422 194 520 240 color 0 fill 14013909;
+ text 'EndstopMax' 472 216 color 0 16;
+ terminals
+ p2 472 240 fixed;
+ end;
+ implementation bg
+ submodels
+ Cendstop 704 144
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 704 144 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 704 216
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out Collision;
+ restrictions
+ causality fixed in p12;
+ causality fixed out p2;
+ causality fixed out p1;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopPos = 1.57;
+ end;
+ icon bg
+ figures
+ text 'X0e' 704 216 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon < 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug Collision 408 192;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ mechanical in p1;
+ mechanical out p2;
+ mechanical out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = 1.57;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> Collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopPos;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 648 216;
+ plug collision 800 216;
+ OneJunction5 704 176
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 704 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 736 176
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 736 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf1 704 264
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 704 264 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\Collision -> collision;
+ Collision\p12 => OneJunction5\p;
+ Collision\p2 => p2;
+ OneJunction5\p => Cendstop\p;
+ OneJunction5\p => Rendstop\p;
+ Sf1\p => Collision\p1;
+ end;
+ parameterrelations
+Collision\InitialPos = InitialPos;
+Collision\EndstopPos = EndstopPos;
+Rendstop\Rendstop = Rendstop;
+Cendstop\Cendstop = Cendstop;parameterrelations_end;
+ implementation_end;
+ EndstopMin 312 216
+ description '
+ 4.1
+1
+ False
+ True
+ EndstopMin.emx
+ 2011-1-18 14:37:57
+';
+ type Submodel
+ ports
+ power out p2;
+ signal boolean out collision;
+ parameters
+ real Cendstop = 1.0e-4;
+ real Rendstop = 1000.0;
+ real InitialPos = -1.13;
+ real EndstopPos = -1.131;
+ end;
+ icon bg bottom
+ figures
+ rectangle 263 193 361 239 color 0 fill 14013909;
+ text 'EndstopMin' 313 215 color 0 16;
+ end;
+ implementation bg
+ submodels
+ Cendstop 248 208
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\C.emx
+ 2007-10-31 10:43:59
+ True
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ parameters
+ real Cendstop = 1.0e-4;
+ end;
+ icon bg right
+ figures
+ text 'C' 248 208 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.f);
+ p.e = state / Cendstop;
+implementation_end;
+ Collision 248 120
+ description '
+ No Version Info
+ 0
+ False
+ True
+';
+ type X0e
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean out collision;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ parameters
+ real InitialPos = -1.13;
+ real EndstopLocation = -1.131;
+ end;
+ icon bg
+ figures
+ text 'X0e' 248 120 color 0 18 bold;
+ end;
+ implementation bg
+ submodels
+ Condition1 224.9 231.5
+ type Condition
+ ports
+ signal in dx;
+ signal boolean out contact;
+ end;
+ icon bg
+ figures
+ rectangle 197.2 215 252.6 248 color 0 fill 15132390;
+ text 'Condition' 224 231.5 color 0;
+ terminals
+ dx 224 248 fixed;
+ contact 224 215 fixed;
+ end;
+ implementation eq
+parameters
+ real global epsilon;
+variables
+ boolean bounce;
+equations
+ contact = if dx - epsilon > 0 then true else false end;
+ bounce = event (dx - epsilon);implementation_end;
+ plug p1 96 176;
+ plug p2 352 176;
+ plug p12 224 64;
+ plug collision 400 200;
+ Splitter1 224 200
+ description '4.0
+ C:\Program Files\20-sim 4.0\System\SplitterBoolean.emx
+ 2007-10-31 11:27:48
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot boolean duplicatable out output [1];
+ signal knot boolean in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 220.8 196.8 227.2 203.2 color -1 fill 0;
+ ellipse 219.7 195.7 228.3 204.3 color -1;
+ terminals
+ input 224 200 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ v1 160 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 160 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v12 224 120
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg right
+ figures
+ text '1' 224 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ v2 296 176
+ description '
+ 0
+ False
+';
+ knot OneJunction
+ ports
+ mechanical knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg top
+ figures
+ text '1' 296 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+ implementation_end;
+ X0 224 176
+ description '
+ 0
+ False
+';
+ type X0
+ ports
+ power in p1;
+ power out p2;
+ power out p12;
+ signal boolean in condition;
+ restrictions
+ causality fixed out p1;
+ causality fixed out p2;
+ causality fixed in p12;
+ end;
+ icon bg
+ figures
+ text 'X0' 224 176 color 8388608 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = if condition then p12.e else 0 end;
+ p2.e = p1.e;
+ p12.f = if condition then p1.f-p2.f else 0 end;
+ implementation_end;
+ x1 160 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.131;
+ end;
+ icon bg left
+ figures
+ rectangle 145 289 175 319 color 0 fill 15132390;
+ text 'ò' 157.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ x12 224 304
+ description '
+ 0
+ False
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 216.5 296.5 231.5 311.5 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ x2 296 304
+ description '
+ 0
+ False
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ parameters
+ real Initial = -1.13;
+ end;
+ icon bg right
+ figures
+ rectangle 281 289 311 319 color 0 fill 15132390;
+ text 'ò' 293.5 304 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+equations
+ output = int (input, Initial);
+ implementation_end;
+ end;
+ connections
+ Condition1\contact -> Splitter1\input;
+ p1 => v1\p;
+ Splitter1\output -> collision;
+ Splitter1\output -> X0\condition;
+ v1\flow -> x1\input;
+ v1\p => X0\p1;
+ v12\p => p12;
+ v2\flow -> x2\input;
+ v2\p => p2;
+ X0\p12 => v12\p;
+ X0\p2 => v2\p;
+ x1\output -> x12\plus;
+ x12\output -> Condition1\dx;
+ x2\output -> x12\minus;
+ end;
+ parameterrelations
+x1\Initial = EndstopLocation;
+x2\Initial = InitialPos;parameterrelations_end;
+ implementation_end;
+ plug p2 152 120;
+ plug collision 360 120;
+ OneJunction 248 160
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 248 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rendstop 288 160
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rendstop = 1000.0;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 288 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rendstop * p.f;
+implementation_end;
+ Sf2 248 64
+ description '4.01False
+ Bond Graph\Sf.emx
+ 2007-9-25 12:3:35
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 248 64 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0.0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ end;
+ connections
+ Collision\collision -> collision;
+ Collision\p12 => OneJunction\p;
+ Collision\p2 => p2;
+ OneJunction\p => Cendstop\p;
+ OneJunction\p => Rendstop\p;
+ Sf2\p => Collision\p1;
+ end;
+ parameterrelations
+Cendstop\Cendstop = Cendstop;
+Rendstop\Rendstop = Rendstop;
+Collision\InitialPos = InitialPos;
+Collision\EndstopLocation = EndstopPos;parameterrelations_end;
+ implementation_end;
+ Integrate 320 328
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -1.13;
+ end;
+ icon bg
+ figures
+ rectangle 304 312 336 344 color 0 fill 15132390;
+ text 'ò' 320 325.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+variables
+ real R[3,3];
+ real p[3];
+ real q[3];
+ real qa;
+ real temp [4,4];
+initialequations
+ q = 0;
+equations
+qa= int(input,init);
+q[2] = qa;
+R = [ cos(q[2]), 0, sin(q[2]);
+ 0, 1, 0;
+ -sin(q[2]), 0, cos(q[2])];
+p = [0;0;0];
+output = dll('EulerAngles.dll','HMatrixFromEulXYZr',q);
+temp = output - homogeneous(R,p);
+
+ implementation_end;
+ MatrixMul 320 496
+ 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 480 335.9 512 color 0 fill 15132390;
+ text 'X' 320 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = input2*input1; implementation_end;
+ plug p1 240 56;
+ plug p2 496 424;
+ plug Hin 112 496;
+ plug Hout 504 496;
+ plug p 112 424;
+ OneJunction 240 272
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 240 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Or 392 216
+ description '
+ 4.0
+ 1
+ False
+ Signal\Logical\Discrete\Or.emx
+ 2007-12-18 23:20:57
+';
+ type 'Or-Or'
+ ports
+ signal boolean in input1;
+ signal boolean out output;
+ signal boolean in input2;
+ end;
+ icon bg bottom
+ figures
+ rectangle 376.1 200 407.9 232 color 0 fill 15132390;
+ group
+ line 378.3 209.3 388.8 209.3 color 16711680 fill 16711680;
+ line 378.3 223.1 388.8 223.1 color 16711680 fill 16711680;
+ end;
+ spline 387.9 204.8 389.9 216.5 387.9 227.7 color 16711680 fill 16711680;
+ line 396.7 216 405.5 216 color 16711680 fill 16711680;
+ spline 387.7 204.3 393.9 206.6 396.8 216.4 393.6 225.4 387.7 227.7 color 16711680 fill 15132390;
+ end;
+ implementation eq
+equations
+ output = if input1 or input2 then
+ true
+ else
+ false
+ end;
+
+ implementation_end;
+ Rjoint 192 272
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 192 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ Splitter2 320 368
+ 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 364.8 323.2 371.2 color -1 fill 0;
+ ellipse 315.7 363.7 324.3 372.3 color -1;
+ terminals
+ input 320 368 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Tbai 240 376
+ 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 left
+ figures
+ text '1' 240 376 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = p1.e;
+ p2.e[3] = (Rconstraint*-p2.f[3] + int(-p2.f[3])/Cconstraint);
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[2];
+implementation_end;
+ Wbai 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 160
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 160 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
+ EndstopMax\collision -> Or\input1;
+ EndstopMin\collision -> Or\input2;
+ Hin -> MatrixMul\input2;
+ Integrate\output -> Splitter2\input;
+ MatrixMul\output -> Hout;
+ OneJunction\flow -> Integrate\input 320 272;
+ OneJunction\p <= EndstopMax\p2;
+ OneJunction\p <= EndstopMin\p2;
+ OneJunction\p => Rjoint\p;
+ OneJunction\p => uTbai\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 368;
+ Splitter2\output -> MatrixMul\input1;
+ Tbai\p => Wbai\p;
+ uTbai\p2 => Tbai\p;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 744 400 color 0;
+ implementation_end;
+ Link 408 512
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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
+ figures
+ rectangle 376 472 440 552 color 0 fill 8454041;
+ text 'name' 408 496 color 0 'Clear Sans' 16;
+ terminals
+ Hin 376 536 fixed;
+ Hout 440 536 fixed;
+ Pin 440 488 fixed;
+ Pout 376 488 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.167; 0.00001; 0.142]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link1 640 512
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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
+ figures
+ rectangle 608 472 672 552 color 0 fill 8454041;
+ text 'name' 640 496 color 0 'Clear Sans' 16;
+ terminals
+ Hin 608 536 fixed;
+ Hout 672 536 fixed;
+ Pin 672 488 fixed;
+ Pout 608 488 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.167;1e-005;0.142]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link2 912 512
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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
+ figures
+ rectangle 880 472 944 552 color 0 fill 8454041;
+ text 'name' 912 496 color 0 'Clear Sans' 16;
+ terminals
+ Hin 880 536 fixed;
+ Hout 944 536 fixed;
+ Pin 944 488 fixed;
+ Pout 880 488 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.167;0.0001;0.142]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link3 1120 512
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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
+ figures
+ rectangle 1088 472 1152 552 color 0 fill 8454041;
+ text 'name' 1120 496 color 0 'Clear Sans' 16;
+ terminals
+ Hin 1088 536 fixed;
+ Hout 1152 536 fixed;
+ Pin 1152 488 fixed;
+ Pout 1088 488 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.167;0.0001;0.142]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link4 1328 512
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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
+ figures
+ rectangle 1296 472 1360 552 color 0 fill 8454041;
+ text 'name' 1328 496 color 0 'Clear Sans' 16;
+ terminals
+ Hin 1296 536 fixed;
+ Hout 1360 536 fixed;
+ Pin 1360 488 fixed;
+ Pout 1296 488 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.167;0.0001;0.142]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ OneJunction 200 256
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 200 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction1 304 488
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 304 488 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction3 488 160
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 488 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ Sf 128 256
+ description '4.01False
+ Bond Graph\3D\Sf-3.emx
+ 2007-9-25 12:11:58
+';
+ type 'Sf-3'
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 128 256 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;
+ Sf1 256 488
+ description '4.01False
+ Bond Graph\3D\Sf-3.emx
+ 2007-9-25 12:11:58
+';
+ type 'Sf-3'
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 256 488 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;
+ Splitter1 296 96
+ 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 292.8 92.8 299.2 99.2 color -1 fill 0;
+ ellipse 291.7 91.7 300.3 100.3 color -1;
+ terminals
+ input 296 96 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter2 232 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 228.8 332.8 235.2 339.2 color -1 fill 0;
+ ellipse 227.7 331.7 236.3 340.3 color -1;
+ terminals
+ input 232 336 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter3 400 96
+ 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 396.8 92.8 403.2 99.2 color -1 fill 0;
+ ellipse 395.7 91.7 404.3 100.3 color -1;
+ terminals
+ input 400 96 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter4 232 536
+ 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 228.8 532.8 235.2 539.2 color -1 fill 0;
+ ellipse 227.7 531.7 236.3 540.3 color -1;
+ terminals
+ input 232 536 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Submodel1 296 144
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel2 488 96
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel7 1464 656
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ implementation_end;
+ Wtip0 664 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 664 256 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real effort = 0.0;
+variables
+ real flow[6];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Wtip1 1504 488
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 1504 488 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real effort = 0.0;
+variables
+ real flow[6];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ ZeroJunction2 808 232
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 808 232 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
+ Base\Hout -> JointBase1\Hin;
+ Base\p => JointBase2\p2;
+ Base1\p => JointBase1\p2;
+ Base2\Hout -> Link1\Hin;
+ Base2\p1 <= Link1\Pout;
+ Base3\Hin <- Link2\Hout;
+ Base3\Hout -> Link3\Hin;
+ Base4\Hin <- Link4\Hout;
+ Base4\Hout -> Submodel7\input;
+ Constant\output -> Splitter2\input;
+ Constant1\output -> Splitter1\input;
+ Joint\p => Link3\Pin;
+ Joint\p2 <= Link4\Pout;
+ JointBase1\Hout -> Base1\Hin;
+ JointBase1\p => Base\p1;
+ JointBase2\Hout -> Base\Hin;
+ JointBase2\p => OneJunction\p;
+ JointBase3\Hout -> Link2\Hin;
+ JointBase3\p => Link1\Pin;
+ JointBase3\p1 <= ZeroJunction2\p;
+ JointBase3\p2 <= Link2\Pout;
+ Link\Hout -> Base2\Hin;
+ Link\Pin <= Base2\p;
+ Link1\Hout -> JointBase3\Hin;
+ Link2\Pin <= Base3\p;
+ Link3\Hout -> Joint\Hin;
+ Link3\Pout => Base3\p1;
+ Link4\Hin <- Joint\Hout;
+ Link4\Pin <= Base4\p;
+ OneJunction\p <= Sf\p;
+ OneJunction1\p <= Link\Pout;
+ OneJunction1\p <= Sf1\p;
+ OneJunction3\p => JointBase1\p1;
+ Splitter1\output -> Splitter3\input;
+ Splitter1\output -> Submodel1\input;
+ Splitter2\output -> JointBase2\Hin;
+ Splitter2\output -> Splitter4\input;
+ Splitter3\output -> Submodel2\input;
+ Splitter4\output -> Link\Hin;
+ Submodel1\p2 => JointBase2\p1;
+ Submodel2\p2 => OneJunction3\p;
+ Wtip0\p => Base1\p1;
+ Wtip1\p => Base4\p1;
+ ZeroJunction2\p <= OneJunction3\p 808 160;
+ ZeroJunction2\p => Joint\p1;
+ end;
+ implementation_end;
+]]>
+
+
+
+
+
+
+ Experiment 1
+
+
+
+ 4.8
+
+
+
+
+
+
+
+
+ epsilon
+ 0
+
+
+
+
+ Base1\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base3\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base4\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ JointBase1\EndstopMax\Cendstop\state_initial
+ 0
+
+
+ JointBase1\EndstopMin\Cendstop\state_initial
+ 0
+
+
+ JointBase2\EndstopMax\Cendstop\state_initial
+ 0
+
+
+ JointBase2\EndstopMin\Cendstop\state_initial
+ 0
+
+
+ JointBase3\EndstopMax\Cendstop\state_initial
+ 0
+
+
+ JointBase3\EndstopMin\Cendstop\state_initial
+ 0
+
+
+ Joint\EndstopMax\Cendstop\state_initial
+ 0
+
+
+ Joint\EndstopMin\Cendstop\state_initial
+ 0
+
+
+ Joint\JointType\uTbai\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ new_state1_initial
+ 0
+
+
+ new_state10_initial
+ 0
+
+
+ new_state11_initial
+ 0
+
+
+ new_state12_initial
+ 0
+
+
+ new_state13_initial
+ 0
+
+
+ new_state14_initial
+ 0
+
+
+ new_state15_initial
+ 0
+
+
+ new_state2_initial
+ 0
+
+
+ new_state3_initial
+ 0
+
+
+ new_state4_initial
+ 0
+
+
+ new_state5_initial
+ 0
+
+
+ new_state6_initial
+ 0
+
+
+ new_state7_initial
+ 0
+
+
+ new_state8_initial
+ 0
+
+
+ new_state9_initial
+ 0
+
+
+ Joint\EndstopMax\Collision\p12.f_initial
+ 0
+
+
+ Joint\EndstopMin\Collision\p12.f_initial
+ 0
+
+
+ Joint\Rjoint\p.e_initial
+ 0
+
+
+ Submodel2\R\p.f_initial
+ 0
+
+
+
+
+
+ time
+ Submodel7\position[1]
+ Submodel7\position[2]
+ Submodel7\position[3]
+ Submodel7\rotation[1]
+ Submodel7\rotation[2]
+ Submodel7\rotation[3]
+
+
+
+ GraphPlot
+
+ 1
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model
+ true
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 10
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ true
+ true
+ false
+
+
+ 0.0
+ 10.0
+ true
+ 3
+
+
+
+
+
+ -1.0
+ 1.0
+ true
+ 2
+
+
+
+ -0.5
+ 0.5
+ true
+ 2
+
+
+
+ -0.5
+ 0.5
+ true
+ 2
+
+
+
+ -0.5
+ 0.5
+ true
+ 2
+
+
+
+ -0.5
+ 0.5
+ true
+ 2
+
+
+
+ -0.5
+ 0.5
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\position[1]
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\position[2]
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\position[3]
+
+
+
+ 15086320
+ 1
+ 15086320
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\rotation[1]
+
+
+
+ 15790150
+ 1
+ 15790150
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\rotation[2]
+
+
+
+ 1696255
+ 1
+ 1696255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Submodel7\rotation[3]
+
+
+
+
+ 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
+
+
+ 8
+
+
+ 4
+
+
+ 4
+
+
+
+
+
+ -0.816496580927726
+
+
+ -0.408248290463863
+
+
+ -0.408248290463863
+
+
+
+
+ -0.365148371670111
+
+
+ -0.182574185835055
+
+
+ 0.912870929175277
+
+
+ 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
+
+
+ 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
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+ true
+ Window 1
+ 0
+
+ 1
+
+ Base
+
+
+ 2
+ false
+ Window 2
+ 0
+
+ 2
+
+ Base
+
+
+
+
+0.330208 0.32963 0.669792 0.67037
+
+
+0.133333 0.00462963 0.895833 0.776852
+
+
+
+
+
+ 0.0
+ 10.0
+ false
+ true
+ 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-5
+ 1.0e-5
+ 1.0e-5
+ 1.0e-5
+ false
+ 0.0
+ false
+ 0.0
+
+ 7
+
+
+
+ 10
+ false
+ true
+ true
+ false
+ true
+ 0
+ 0.0
+ true
+ MultipleRun
+ true
+
+ UseEndValue
+ 0.001
+ BroydonFletcherGoldfarbShanno
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
diff --git a/implementation/SCARA/03_motor/MR_dynamics2.emx b/implementation/SCARA/03_motor/MR_dynamics2.emx
new file mode 100644
index 0000000..62af5ae
--- /dev/null
+++ b/implementation/SCARA/03_motor/MR_dynamics2.emx
@@ -0,0 +1,6251 @@
+
+
+
+
+
+ 4.8
+0
+ False
+ C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\03_motor\MR_dynamics2.emx
+ 2020-7-17 15:47:18
+
+';
+ type Mainmodel
+ end;
+ implementation bg
+ submodels
+ Base 392 296
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.0325; 0.0] {m};
+ real dim[3,1] = [0.0; 0.065; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 360 224 424 368 color 0 fill 10025880;
+ text 'Link' 392 296 color 0;
+ terminals
+ p 360 256 fixed;
+ Hin 360 336 fixed;
+ p1 424 256 fixed;
+ Hout 424 336 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 416 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;
+ AdHij 864 304
+ 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 top
+ figures
+ text 'MTF' 864 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ //Only rotations with respect to the inertial system matter!
+
+ p1.e = transpose(Adjoint(H)) * p2.e;
+ p2.f = Adjoint(H) * p1.f;
+implementation_end;
+ AdHik 544 248
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.0325; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 544 248 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ AdHik1 544 360
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.0325; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 544 360 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ EJS 608 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6];
+ real m = 0.00455;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 608 184 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 656 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 0.00455;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 656 416 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-9.8*m];
+ p.e = effort;
+implementation_end;
+ Hij 864 496
+ description '
+ 4.1
+1
+ False
+ H.emx
+ 2010-9-21 15:03:50
+True
+';
+ type Gain
+ ports
+ signal in input [4,4];
+ signal out output [4,4];
+ signal out Hab [4,4];
+ parameters
+ real dim[3,1] = [0.0; 0.065; 0.0];
+ end;
+ icon bg bottom
+ figures
+ rectangle 848.1 480 879.9 512 color 0 fill 15132390;
+ text 'H' 864 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ Hab = homogeneous(eye(3),dim);
+ output = input * Hab;
+ implementation_end;
+ InertialTensor 480 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 0.00455;
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6];
+ end;
+ icon bg top
+ figures
+ text 'I' 480 184 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hout 984 496;
+ plug p1 984 304;
+ plug Hin 472 496;
+ plug p 472 304;
+ 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;
+ Ta00 600 416
+ 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' 600 416 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0j 544 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 184
+ 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 top
+ figures
+ text '1' 544 184 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => AdHik1\p1;
+ AdHij\p1 => Ta0j\p;
+ AdHik\p2 => Ta0k\p;
+ AdHik1\p2 => Ta0j\p;
+ Gravity\p => Ta00\p;
+ Hij\Hab -> AdHij\H;
+ Hij\output -> Hout;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => AdHij\p2;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hij\input;
+ Ta00\p => AdHi0\p1;
+ Ta0j\p => AdHik\p1;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base1 584 296
+ description '
+
+ 4.8
+1
+ False
+ True
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx
+ 2020-7-16 14:21:54
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+ real COMdim[3,1] = [0.0; 0.025; 0.0] {m};
+ real dim[3,1] = [0.0; 0.05; 0.0] {m};
+ end;
+ icon bg bottom
+ figures
+ rectangle 552 224 616 368 color 0 fill 10025880;
+ text 'Link' 584 296 color 0;
+ terminals
+ p 552 256 fixed;
+ Hin 552 336 fixed;
+ p1 616 256 fixed;
+ Hout 616 336 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 664 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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' 664 416 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;
+ AdHij 816 304
+ 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 top
+ figures
+ text 'MTF' 816 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ //Only rotations with respect to the inertial system matter!
+
+ p1.e = transpose(Adjoint(H)) * p2.e;
+ p2.f = Adjoint(H) * p1.f;
+implementation_end;
+ AdHik 664 248
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1 [6,1];
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.025; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 664 248 color 0 18 bold;
+ end;
+ implementation eq
+//Frame in joint connected to port 1
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ AdHik1 664 360
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power out p1 [6,1];
+ power in p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ parameters
+ real COMdim[3,1] = [0.0; 0.025; 0.0];
+ end;
+ icon bg left
+ figures
+ text 'TF' 664 360 color 0 18 bold;
+ end;
+ implementation eq
+//Principal inertial frame connected in port 2
+variables
+ real d[3]; //distance between frames
+ real R[3,3]; //rotation between frames
+
+ real H[4,4]; //homogeneous matrix
+ real AdH[6,6]; //Adjoint of homogeneous matrix
+equations
+ d = COMdim; //distance of 1 in z direction of frames
+ R = eye(3); //no rotation
+
+ H = homogeneous(R,d);
+ AdH = Adjoint(H);
+
+ p1.f = AdH * p2.f;
+ p2.e = transpose(AdH) * p1.e;
+implementation_end;
+ EJS 728 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [7.583e-7; 3.6458e-8; 7.364583e-7];
+ real m = 0.0035;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 728 184 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+variables
+ real II[6,6]; //Inertial tensor
+ real Q[6,6];
+ real QI[6,6];
+ real v[3];
+ real omega[3];
+equations
+ II = [ I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+ v[1:3] = p1.f[4:6];
+ omega[1:3] = p1.f[1:3];
+
+ Q[1:3,1:3] = -skew(omega);
+ Q[1:3,4:6] = -skew(v);
+ Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros
+ Q[4:6,4:6] = -skew(omega);
+ QI = Q*II;
+
+ p1.e = QI*p1.f;implementation_end;
+ Gravity 776 416
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 0.0035;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 776 416 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-9.8*m];
+ p.e = effort;
+implementation_end;
+ Hij 816 496
+ description '
+ 4.1
+1
+ False
+ H.emx
+ 2010-9-21 15:03:50
+True
+';
+ type Gain
+ ports
+ signal in input [4,4];
+ signal out output [4,4];
+ signal out Hab [4,4];
+ parameters
+ real dim[3,1] = [0.0; 0.05; 0.0];
+ end;
+ icon bg bottom
+ figures
+ rectangle 800.1 480 831.9 512 color 0 fill 15132390;
+ text 'H' 816 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ Hab = homogeneous(eye(3),dim);
+ output = input * Hab;
+ implementation_end;
+ InertialTensor 600 184
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 0.0035;
+ real I[3,1] = [7.583e-7; 3.6458e-8; 7.364583e-7];
+ end;
+ icon bg top
+ figures
+ text 'I' 600 184 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hout 896 496;
+ plug p1 904 304;
+ plug Hin 592 496;
+ plug p 592 304;
+ Splitter1 664 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 660.8 492.8 667.2 499.2 color -1 fill 0;
+ ellipse 659.7 491.7 668.3 500.3 color -1;
+ terminals
+ input 664 496 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Ta00 720 416
+ 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' 720 416 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0j 664 304
+ 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' 664 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 664 184
+ 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 top
+ figures
+ text '1' 664 184 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => AdHik1\p2;
+ AdHik\p2 => Ta0k\p;
+ Gravity\p => Ta00\p;
+ Hij\Hab -> AdHij\H;
+ Hij\output -> Hout;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => AdHij\p2;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hij\input;
+ Ta00\p => AdHi0\p1;
+ Ta0j\p <= AdHij\p1;
+ Ta0j\p <= AdHik1\p1;
+ Ta0j\p => AdHik\p1;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base2 888 504
+ description '4.81FalseTrueBond Graph\MR\center_of_mass.emx2020-7-17 13:52:18Baseparameters
+ real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 856 464 920 544 color 0 fill 255;
+ text 'COM' 888 488 color 0;
+ terminals
+ p 856 480 fixed;
+ Hin 856 528 fixed;
+ p1 920 480 fixed;
+ Hout 920 528 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 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 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 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 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base3 544 504
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\center_of_mass.emx
+ 2020-7-17 13:52:18
+Base
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 512 464 576 544 color 0 fill 255;
+ text 'COM' 544 488 color 0;
+ terminals
+ p 512 480 fixed;
+ Hin 512 528 fixed;
+ p1 576 480 fixed;
+ Hout 576 528 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ parameters
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6];
+ real m = 0.00455;
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 color 0 18 bold;
+ end;
+ implementation eq
+//EJS / Gyroscopic effects
+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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ parameters
+ real m = 0.00455;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 400 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real effort[6];
+equations
+ effort = [0;0;0;0;0;-g_n*m];
+ p.e = effort;
+implementation_end;
+ InertialTensor 472 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ parameters
+ real m = 0.00455;
+ real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6];
+ end;
+ icon bg top
+ figures
+ text 'I' 472 256 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real II[6,6]; //Inertial tensor
+equations
+ II = [I[1],0, 0, 0, 0, 0;
+ 0, I[2],0, 0, 0, 0;
+ 0, 0, I[3],0, 0, 0;
+ 0, 0, 0, m, 0, 0;
+ 0, 0, 0, 0, m, 0;
+ 0, 0, 0, 0, 0, m];
+
+ state = int(p.e); //state = generalized momentum
+ p.f = inverse(II)*state;
+implementation_end;
+ plug Hin 472 496;
+ plug p1 616 304;
+ plug Hout 616 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Constant 168 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+ True
+';
+ type Constant
+ ports
+ signal out output [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 152.1 320 183.9 352 color 0 fill 15132390;
+ line 156.9 331.6 178.9 331.6 color 16711680 width 2;
+ line 154.2 342.7 179.9 342.7 color 0;
+ line 156.5 326.7 156.5 345 color 0;
+ end;
+ implementation eq
+equations
+ output = eye(4);
+ implementation_end;
+ Constant1 296 48
+ description '4.01False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+';
+ type Constant
+ ports
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 280.1 32 311.9 64 color 0 fill 15132390;
+ line 284.9 43.6 306.9 43.6 color 16711680 width 2;
+ line 282.2 54.7 307.9 54.7 color 0;
+ line 284.5 38.7 284.5 57 color 0;
+ end;
+ implementation eq
+parameters
+ real C = 1.0; // output value
+equations
+ output = C;
+ implementation_end;
+ Constant2 480 688
+ description '4.01False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+';
+ type Constant
+ ports
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 464.1 672 495.9 704 color 0 fill 15132390;
+ line 468.9 683.6 490.9 683.6 color 16711680 width 2;
+ line 466.2 694.7 491.9 694.7 color 0;
+ line 468.5 678.7 468.5 697 color 0;
+ end;
+ implementation eq
+parameters
+ real C = 1.0; // output value
+equations
+ output = C;
+ implementation_end;
+ Joint 384.1 502
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\joint-v2.emx
+ 2020-7-17 15:47:03
+
+';
+ type 'Submodel-rotz'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 352.2 464 416 540 color 0 fill 14745599;
+ text 'Joint' 384 496 color 0;
+ terminals
+ p 352 480 fixed;
+ p1 384 464 fixed;
+ p2 416 480 fixed;
+ Hin 352 528 fixed;
+ Hout 416 528 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHji 416 328
+ 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' 416 328 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p2.e = transpose(Adjoint(H)) * p1.e;
+ p1.f = Adjoint(H) * p2.f;implementation_end;
+ JointType 232 216
+ description '4.81FalseTrueparameters
+ real joint = 3;';
+ type Submodel
+ ports
+ mechanical in p1;
+ signal out output [4,4];
+ power out p2 [6,1];
+ end;
+ implementation bg
+ submodels
+ Integrate 320 272
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -2.9496;
+ end;
+ icon bg
+ figures
+ rectangle 304 256 336 288 color 0 fill 15132390;
+ text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+ real qa[6];
+ real temp [4,4];
+initialequations
+ qa = 0;
+equations
+q = -int(input,init);
+qa[joint] = q;
+R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa);
+output = homogeneous(R,qa[4:6]);implementation_end;
+ plug p1 240 188;
+ plug output 320 368;
+ plug p2 240 412;
+ OneJunction2 240 271.9
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\FlowSensor.emx
+ 2011-11-29 15:50:53
+
+';
+ knot FlowSensor
+ ports
+ mechanical knot in p1 [1];
+ power knot out p2 [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215;
+ text 'f' 240 271.2 color 0;
+ end;
+ implementation eq
+equations
+ p2.f = p1.f;
+ p1.e = p2.e;
+ flow = p1.f;
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real i;
+ real state[6];
+equations
+ /*p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint);
+ p2.e[3] = p1.e;
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[3];*/
+ state = int(p2.f);
+ for i = 1 to 6 do
+ if i == joint then
+ p1.f = p2.f[i];
+ p2.e[i] = p1.e;
+ else
+ p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint);
+ end;
+ end;
+implementation_end;
+ end;
+ connections
+ Integrate\output -> output;
+ OneJunction2\flow -> Integrate\input;
+ OneJunction2\p2 => uTbai\p1;
+ p1 => OneJunction2\p1;
+ uTbai\p2 => p2;
+ end;
+ implementation_end;
+ MatrixMul 312 480
+ 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 296.1 464 327.9 496 color 0 fill 15132390;
+ text 'X' 312 480 color 16711680 16 bold;
+ end;
+ implementation eq
+variables
+ real temp[4,4];
+equations
+ output = input2*input1;
+ temp = input2*input1; implementation_end;
+ plug p 104 328;
+ plug p1 232 88;
+ plug p2 488 328;
+ plug Hin 104 480;
+ plug Hout 496 480;
+ Splitter2 312 216
+ 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 308.8 212.8 315.2 219.2 color -1 fill 0;
+ ellipse 307.7 211.7 316.3 220.3 color -1;
+ terminals
+ input 312 216 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Wbai 232 328
+ 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' 232 328 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
+ Hin -> MatrixMul\input2;
+ JointType\output -> Splitter2\input;
+ JointType\p2 => Wbai\p;
+ MatrixMul\output -> Hout;
+ p <= Wbai\p;
+ p1 => JointType\p1;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 416 216;
+ Splitter2\output -> MatrixMul\input1;
+ Wbai\p <= AdHji\p1;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;
+
+parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 672 392 color 0;
+ implementation_end;
+ Joint1 728.1 502
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\joint-v2.emx
+ 2020-7-17 14:55:32
+
+';
+ type 'Submodel-rotz'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ signal out q;
+ end;
+ icon bg bottom
+ figures
+ rectangle 696.2 464 760 540 color 0 fill 14745599;
+ text 'Joint' 728 496 color 0;
+ terminals
+ p 696 480 fixed;
+ p1 728 464 fixed;
+ p2 760 480 fixed;
+ Hin 696 528 fixed;
+ Hout 760 528 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;
+ JointType 240 312
+ description '4.81FalseTrueparameters
+ real joint = 3;';
+ type Submodel
+ ports
+ mechanical in p1;
+ signal out output [4,4];
+ power out p2 [6,1];
+ signal out q;
+ end;
+ implementation bg
+ submodels
+ Integrate 320 272
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ signal out q;
+ parameters
+ real init = -2.9496;
+ end;
+ icon bg
+ figures
+ rectangle 304 256 336 288 color 0 fill 15132390;
+ text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real R[3,3];
+ real p[3];
+ real qa[6];
+ real temp [4,4];
+initialequations
+ qa = 0;
+equations
+q = -int(input,init);
+qa[joint] = q;
+R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa);
+output = homogeneous(R,qa[4:6]);implementation_end;
+ plug p1 240 188;
+ plug output 320 416;
+ plug p2 240 412;
+ plug q 320 184;
+ OneJunction2 240 271.9
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\FlowSensor.emx
+ 2011-11-29 15:50:53
+
+';
+ knot FlowSensor
+ ports
+ mechanical knot in p1 [1];
+ power knot out p2 [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215;
+ text 'f' 240 271.2 color 0;
+ end;
+ implementation eq
+equations
+ p2.f = p1.f;
+ p1.e = p2.e;
+ flow = p1.f;
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real i;
+ real state[6];
+equations
+ /*p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint);
+ p2.e[3] = p1.e;
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[3];*/
+ state = int(p2.f);
+ for i = 1 to 6 do
+ if i == joint then
+ p1.f = p2.f[i];
+ p2.e[i] = p1.e;
+ else
+ p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint);
+ end;
+ end;
+implementation_end;
+ end;
+ connections
+ Integrate\output -> output;
+ Integrate\q -> q;
+ OneJunction2\flow -> Integrate\input;
+ OneJunction2\p2 => uTbai\p1;
+ p1 => OneJunction2\p1;
+ uTbai\p2 => p2;
+ end;
+ 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 p 112 424;
+ plug p1 240 40;
+ plug p2 496 424;
+ plug Hin 112 576;
+ plug Hout 504 576;
+ plug q 112 312;
+ 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 240 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' 240 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
+ Hin -> MatrixMul\input2;
+ JointType\output -> Splitter2\input;
+ JointType\p1 <= p1;
+ JointType\p2 => Wbai\p;
+ JointType\q -> q;
+ MatrixMul\output -> Hout;
+ p <= Wbai\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 312;
+ Splitter2\output -> MatrixMul\input1;
+ Wbai\p <= AdHji\p1;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;
+
+parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 680 488 color 0;
+ implementation_end;
+ JointBase1 488.2 296
+ description '
+ 4.1
+1
+ False
+ True
+ Joint-roty.emx
+ 2011-1-18 17:30:05
+';
+ type 'Submodel-roty'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = -1.13;
+ real MaxEndstopPos = 1.57;
+ real MinEndstopPos = -1.131;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 456.5 224 520 368 color 0 fill 14745599;
+ text 'Joint-roty' 488.5 299 color 0;
+ terminals
+ p 456 256 fixed;
+ p1 487.5 224 fixed;
+ p2 520 256 fixed;
+ Hin 456 336 fixed;
+ Hout 520 336 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;
+ Integrate 320 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -2.9496;
+ end;
+ icon bg
+ figures
+ rectangle 304 320 336 352 color 0 fill 15132390;
+ text 'ò' 320 333.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+equations
+q = -int(input,init);
+R = [ cos(q), -sin(q), 0;
+ sin(q), cos(q), 0;
+ 0, 0, 1];
+p = [0;0;0];
+output = homogeneous(R,p);
+
+ implementation_end;
+ MatrixMul 320 496
+ 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 480 335.9 512 color 0 fill 15132390;
+ text 'X' 320 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = input2*input1; implementation_end;
+ plug p1 240 56;
+ plug p2 496 424;
+ plug Hin 112 496;
+ plug Hout 504 496;
+ plug p 112 424;
+ OneJunction 240 272
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 240 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rjoint 192 272
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 192 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ Splitter2 320 368
+ 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 364.8 323.2 371.2 color -1 fill 0;
+ ellipse 315.7 363.7 324.3 372.3 color -1;
+ terminals
+ input 320 368 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Tbai 240 384
+ 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 left
+ figures
+ text '1' 240 384 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+
+equations
+ p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint);
+ p2.e[3] = p1.e;
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[3];
+implementation_end;
+ Wbai 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 104
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 104 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
+ Hin -> MatrixMul\input2;
+ Integrate\output -> Splitter2\input;
+ MatrixMul\output -> Hout;
+ OneJunction\flow -> Integrate\input 320 272;
+ OneJunction\p => Rjoint\p;
+ OneJunction\p => uTbai\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 368;
+ Splitter2\output -> MatrixMul\input1;
+ Tbai\p => Wbai\p;
+ uTbai\p2 => Tbai\p;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 744 400 color 0;
+ implementation_end;
+ JointBase2 296.2 296
+ description '
+ 4.1
+1
+ False
+ True
+ Joint-roty.emx
+ 2011-1-18 17:30:05
+';
+ type 'Submodel-roty'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ parameters
+ real Rconstraint = 1000.0;
+ real Cconstraint = 1.0e-4;
+ real Rendstop = 1000.0;
+ real Cendstop = 1.0e-4;
+ real InitialPos = 0.0;
+ real MaxEndstopPos = 1.57;
+ real MinEndstopPos = -1.131;
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ rectangle 264.5 224 328 368 color 0 fill 14745599;
+ text 'Joint-roty' 296.5 299 color 0;
+ terminals
+ p 264 256 fixed;
+ p1 295.5 224 fixed;
+ p2 328 256 fixed;
+ Hin 264 336 fixed;
+ Hout 328 336 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;
+ Integrate 320 328
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ parameters
+ real init = -2.9496;
+ end;
+ icon bg
+ figures
+ rectangle 304 312 336 344 color 0 fill 15132390;
+ text 'ò' 320 325.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+variables
+ real R[3,3];
+ real p[3];
+ real q;
+equations
+q = -int(input,init);
+R = [ cos(q), -sin(q), 0;
+ sin(q), cos(q), 0;
+ 0, 0, 1];
+p = [0;0;0];
+output = homogeneous(R,p);
+
+ implementation_end;
+ MatrixMul 320 496
+ 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 480 335.9 512 color 0 fill 15132390;
+ text 'X' 320 496 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = input2*input1; implementation_end;
+ plug p1 240 56;
+ plug p2 496 424;
+ plug Hin 112 496;
+ plug Hout 504 496;
+ plug p 112 424;
+ OneJunction 240 272
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 240 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Rjoint 192 272
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\R.emx
+ 2007-9-25 12:3:18
+ True
+';
+ type R
+ ports
+ power in p;
+ parameters
+ real Rjoint = 0.1;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 192 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p.e = Rjoint * p.f;
+implementation_end;
+ Splitter2 320 368
+ 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 364.8 323.2 371.2 color -1 fill 0;
+ ellipse 315.7 363.7 324.3 372.3 color -1;
+ terminals
+ input 320 368 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Tbai 240 376
+ 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 left
+ figures
+ text '1' 240 376 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+
+equations
+ p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint);
+ p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint);
+ p2.e[3] = p1.e;
+ p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint);
+ p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint);
+ p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint);
+
+ p1.f = p2.f[3];
+implementation_end;
+ Wbai 240 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' 240 424 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction 240 160
+ description '4.01False
+ Bond Graph\ZeroJunction.emx
+ 2007-9-27 9:51:43
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 240 160 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
+ Hin -> MatrixMul\input2;
+ Integrate\output -> Splitter2\input;
+ MatrixMul\output -> Hout;
+ OneJunction\flow -> Integrate\input 320 272;
+ OneJunction\p => Rjoint\p;
+ OneJunction\p => uTbai\p1;
+ p <= Wbai\p;
+ p1 => ZeroJunction\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 368;
+ Splitter2\output -> MatrixMul\input1;
+ Tbai\p => Wbai\p;
+ uTbai\p2 => Tbai\p;
+ Wbai\p <= AdHji\p1;
+ ZeroJunction\p => OneJunction\p;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 744 400 color 0;
+ implementation_end;
+ Link 464 504
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 432 464 496 544 color 0 fill 8454041;
+ text 'name' 464 488 color 0 'Clear Sans' 16;
+ terminals
+ Hin 432 528 fixed;
+ Hout 496 528 fixed;
+ Pin 496 480 fixed;
+ Pout 432 480 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.0; 0.0325; 0.0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link1 624 504
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 592 464 656 544 color 0 fill 8454041;
+ text 'name' 624 488 color 0 'Clear Sans' 16;
+ terminals
+ Hin 592 528 fixed;
+ Hout 656 528 fixed;
+ Pin 656 480 fixed;
+ Pout 592 480 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0.0; 0.0325; 0.0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link2 808 504
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 776 464 840 544 color 0 fill 8454041;
+ text 'name' 808 488 color 0 'Clear Sans' 16;
+ terminals
+ Hin 776 528 fixed;
+ Hout 840 528 fixed;
+ Pin 840 480 fixed;
+ Pout 776 480 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.025; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link3 968 504
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 936 464 1000 544 color 0 fill 8454041;
+ text 'name' 968 488 color 0 'Clear Sans' 16;
+ terminals
+ Hin 936 528 fixed;
+ Hout 1000 528 fixed;
+ Pin 1000 480 fixed;
+ Pout 936 480 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.025; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ new_joint1 672 592
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];implementation_end;
+ new_joint2 1064 528
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];implementation_end;
+ OneJunction 232 256
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 232 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction1 304 480
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ 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' 304 480 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ ori_joint1 440 408
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];
+ implementation_end;
+ ori_joint2 760 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];implementation_end;
+ Sf 160 256
+ description '4.01False
+ Bond Graph\3D\Sf-3.emx
+ 2007-9-25 12:11:58
+';
+ type 'Sf-3'
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 160 256 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;
+ Sf1 256 480
+ description '4.01False
+ Bond Graph\3D\Sf-3.emx
+ 2007-9-25 12:11:58
+';
+ type 'Sf-3'
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 256 480 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;
+ Splitter1 296 96
+ 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 292.8 92.8 299.2 99.2 color -1 fill 0;
+ ellipse 291.7 91.7 300.3 100.3 color -1;
+ terminals
+ input 296 96 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter2 232 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 228.8 332.8 235.2 339.2 color -1 fill 0;
+ ellipse 227.7 331.7 236.3 340.3 color -1;
+ terminals
+ input 232 336 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter3 480 640
+ 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 476.8 636.8 483.2 643.2 color -1 fill 0;
+ ellipse 475.7 635.7 484.3 644.3 color -1;
+ terminals
+ input 480 640 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter4 232 528
+ 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 228.8 524.8 235.2 531.2 color -1 fill 0;
+ ellipse 227.7 523.7 236.3 532.3 color -1;
+ terminals
+ input 232 528 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter5 440 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 436.8 332.8 443.2 339.2 color -1 fill 0;
+ ellipse 435.7 331.7 444.3 340.3 color -1;
+ terminals
+ input 440 336 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter6 672 528
+ 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 668.8 524.8 675.2 531.2 color -1 fill 0;
+ ellipse 667.7 523.7 676.3 532.3 color -1;
+ terminals
+ input 672 528 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Submodel1 296 144
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel2 488 96
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel4 384 640
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel5 728 640
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Wtip0 760 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 760 256 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real effort = 0.0;
+variables
+ real flow[6];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Wtip1 1064 480
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 1064 480 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real effort = 0.0;
+variables
+ real flow[6];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ end;
+ connections
+ Base\Hout -> Splitter5\input;
+ Base\p => JointBase2\p2;
+ Base1\Hout -> ori_joint2\input;
+ Base1\p => JointBase1\p2;
+ Base2\Hout -> Link3\Hin;
+ Base2\p1 <= Link3\Pout;
+ Base3\Hout -> Link1\Hin;
+ Base3\p1 <= Link1\Pout;
+ Constant\output -> Splitter2\input;
+ Constant1\output -> Splitter1\input;
+ Constant2\output -> Splitter3\input;
+ Joint\Hout -> Link\Hin;
+ Joint\p2 <= Link\Pout;
+ Joint1\Hout -> Link2\Hin;
+ Joint1\p2 <= Link2\Pout;
+ JointBase1\Hout -> Base1\Hin;
+ JointBase1\p => Base\p1;
+ JointBase2\Hout -> Base\Hin;
+ JointBase2\p => OneJunction\p;
+ Link\Hout -> Base3\Hin;
+ Link\Pin <= Base3\p;
+ Link1\Hout -> Splitter6\input;
+ Link1\Pin <= Joint1\p;
+ Link2\Hout -> Base2\Hin;
+ Link2\Pin <= Base2\p;
+ Link3\Hout -> new_joint2\input;
+ Link3\Pin <= Wtip1\p;
+ OneJunction\p <= Sf\p;
+ OneJunction1\p <= Joint\p;
+ OneJunction1\p <= Sf1\p;
+ Splitter1\output -> Submodel1\input;
+ Splitter1\output -> Submodel2\input;
+ Splitter2\output -> JointBase2\Hin;
+ Splitter2\output -> Splitter4\input;
+ Splitter3\output -> Submodel4\input;
+ Splitter3\output -> Submodel5\input;
+ Splitter4\output -> Joint\Hin;
+ Splitter5\output -> JointBase1\Hin;
+ Splitter5\output -> ori_joint1\input;
+ Splitter6\output -> Joint1\Hin;
+ Splitter6\output -> new_joint1\input;
+ Submodel1\p2 => JointBase2\p1;
+ Submodel2\p2 => JointBase1\p1;
+ Submodel4\p2 => Joint\p1;
+ Submodel5\p2 => Joint1\p1;
+ Wtip0\p => Base1\p1;
+ end;
+ implementation_end;
+]]>
+
+
+
+
+
+
+ Experiment 1
+
+
+
+ 4.8
+
+
+
+
+
+
+
+
+
+
+ Base1\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base2\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base3\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Joint1\JointType\uTbai\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Joint\JointType\uTbai\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ new_state1_initial
+ 0
+
+
+ new_state10_initial
+ 0
+
+
+ new_state2_initial
+ 0
+
+
+ new_state3_initial
+ 0
+
+
+ new_state4_initial
+ 0
+
+
+ new_state5_initial
+ 0
+
+
+ new_state6_initial
+ 0
+
+
+ new_state7_initial
+ 0
+
+
+ new_state8_initial
+ 0
+
+
+ new_state9_initial
+ 0
+
+
+ Submodel4\R\p.f_initial
+ 0
+
+
+ Submodel5\R\p.f_initial
+ 0
+
+
+
+
+
+ time
+ ori_joint1\position[1]
+ ori_joint1\position[2]
+ ori_joint1\position[3]
+ new_joint1\position[1]
+ new_joint1\position[2]
+ new_joint1\position[3]
+ ori_joint2\position[1]
+ ori_joint2\position[2]
+ ori_joint2\position[3]
+ ori_joint1\R[1,3]
+ ori_joint1\R[2,3]
+ ori_joint1\R[3,3]
+ ori_joint1\R[1,2]
+ ori_joint1\R[2,2]
+ ori_joint1\R[3,2]
+ ori_joint2\R[1,3]
+ ori_joint2\R[2,3]
+ ori_joint2\R[3,3]
+ ori_joint2\R[1,2]
+ ori_joint2\R[2,2]
+ ori_joint2\R[3,2]
+ new_joint2\position[1]
+ new_joint2\position[2]
+ new_joint2\position[3]
+
+
+
+ GraphPlot
+
+ 1
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model
+ true
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 10
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ true
+ true
+ false
+
+
+ 0.0
+ 1.424742322143329
+ true
+ 3
+
+
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+ -0.1
+ 0.1
+ true
+ 1
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint1\position[1]
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint1\position[2]
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint1\position[3]
+
+
+
+ 15086320
+ 1
+ 15086320
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint1\position[1]
+
+
+
+ 15790150
+ 1
+ 15790150
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint1\position[2]
+
+
+
+ 1696255
+ 1
+ 1696255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint1\position[3]
+
+
+
+
+ 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
+
+
+ 5.66443922345846
+
+
+ -1.87918322175823
+
+
+ 8.35361970698833
+
+
+
+
+
+ -0.551742297648959
+
+
+ 0.183041043883461
+
+
+ -0.813680780920319
+
+
+
+
+ -0.77229119625168
+
+
+ 0.256208355506313
+
+
+ 0.581311953051802
+
+
+ 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
+
+
+ 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
+
+
+
+
+
+
+ 10
+
+
+ 10
+
+
+ 10
+
+
+ false
+ Scenery
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ false
+ Reference Frame
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 5.0
+
+
+ ori_joint1\position[1]
+ -0.05242625720312162
+
+
+ ori_joint1\position[2]
+ 0.03842509018430717
+
+
+ ori_joint1\position[3]
+ 0.0
+
+
+ 15
+ true
+ true
+ 0.1
+ 15
+ true
+
+
+ 0.1
+
+
+ 0.1
+
+
+ 0.0649999976158142
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Line
+
+
+
+
+
+ -0.806557803124948
+
+
+ 0.591155233604726
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ 1.0
+
+
+ ori_joint2\position[1]
+ -0.10031667574147025
+
+
+ ori_joint2\position[2]
+ 0.024054710501717216
+
+
+ ori_joint2\position[3]
+ 0.0
+
+
+ 15
+ true
+ true
+ 0.1
+ 15
+ true
+
+
+ 0.1
+
+
+ 0.1
+
+
+ 0.0500000007450581
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Line
+
+
+ ori_joint1\position[1]
+ -0.05242625720312162
+
+
+ ori_joint1\position[2]
+ 0.03842509018430717
+
+
+ ori_joint1\position[3]
+ 0.0
+
+
+
+
+
+ -0.957808370766973
+
+
+ -0.287407593651799
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ false
+ Reference Frame
+
+
+ ori_joint1\position[1]
+ -0.05242625720312162
+
+
+ ori_joint1\position[2]
+ 0.03842509018430717
+
+
+ ori_joint1\position[3]
+ 0.0
+
+
+
+
+
+ ori_joint1\R[1,3]
+ 0.0
+
+
+ ori_joint1\R[2,3]
+ 0.0
+
+
+ ori_joint1\R[3,3]
+ 1.0
+
+
+
+
+ ori_joint1\R[1,2]
+ -0.806557803124948
+
+
+ ori_joint1\R[2,2]
+ 0.5911552336047257
+
+
+ ori_joint1\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ false
+ Reference Frame
+
+
+ ori_joint2\position[1]
+ -0.10031667574147025
+
+
+ ori_joint2\position[2]
+ 0.024054710501717216
+
+
+ ori_joint2\position[3]
+ 0.0
+
+
+
+
+
+ ori_joint2\R[1,3]
+ 0.0
+
+
+ ori_joint2\R[2,3]
+ 0.0
+
+
+ ori_joint2\R[3,3]
+ 1.0
+
+
+
+
+ ori_joint2\R[1,2]
+ -0.9578083707669727
+
+
+ ori_joint2\R[2,2]
+ -0.2874075936517991
+
+
+ ori_joint2\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ GraphPlot
+
+ 3
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model(1)
+ 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
+ 1.424742322143329
+ true
+ 3
+
+
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+ -0.25
+ 0.25
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint2\position[1]
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint2\position[2]
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ ori_joint2\position[3]
+
+
+
+ 15086320
+ 1
+ 15086320
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint2\position[1]
+
+
+
+ 15790150
+ 1
+ 15790150
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint2\position[2]
+
+
+
+ 1696255
+ 1
+ 1696255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ new_joint2\position[3]
+
+
+
+
+ true
+ 0
+ 16777215
+
+
+
+
+
+ 1
+ true
+ Window 1
+ 0
+
+ 1
+ 3
+
+ Base
+
+
+ 2
+ true
+ Window 2
+ 0
+
+ 2
+
+ Base
+
+
+
+
+0.200521 0.191667 0.840104 0.771296
+
+
+0.0859375 0.0712963 0.84375 0.833333
+
+
+
+
+
+ 0.0
+ 10.0
+ false
+ true
+ 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-5
+ 1.0e-5
+ 1.0e-5
+ 1.0e-5
+ false
+ 0.0
+ false
+ 0.0
+
+ 7
+
+
+
+ 10
+ false
+ true
+ true
+ false
+ true
+ 0
+ 0.0
+ true
+ MultipleRun
+ true
+
+ UseEndValue
+ 0.001
+ BroydonFletcherGoldfarbShanno
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
diff --git a/implementation/SCARA/03_motor/motor_physics.emx b/implementation/SCARA/03_motor/motor_physics.emx
new file mode 100644
index 0000000..172735d
--- /dev/null
+++ b/implementation/SCARA/03_motor/motor_physics.emx
@@ -0,0 +1,7272 @@
+
+
+
+
+
+ 4.8
+0
+ False
+ C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\03_motor\motor_physics.emx
+ 2020-7-17 18:39:03
+True
+
+
+ parameters
+ real A = 0.05 {m};
+ real B = 0.05 {m};
+variables
+ real J0_1_BF1[2];
+ real J1_2_BF1[2];
+ real J1_2_BF2[2];
+ real EE1_BF2[2];
+initialequations
+ J0_1_BF1 = [A/2;0];
+ J1_2_BF1 = [-A/2;0];
+ J1_2_BF2 = [B/2;0];
+ EE1_BF2 = [-B/2;0];
+
+';
+ type Mainmodel
+ end;
+ implementation bg
+ submodels
+ Base1 720 680
+ description '4.81FalseTrueBond Graph\MR\center_of_mass.emx2020-7-17 15:37:54Baseparameters
+ real I [3,1] = [7.583333333333335e-7; 3.645833333333334e-8; 7.364583333333335e-7] {N.m.s};
+ real m = 0.0035 {kg};';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 688 640 752 720 color 0 fill 255;
+ text 'COM' 720 664 color 0;
+ terminals
+ p 688 656 fixed;
+ Hin 688 704 fixed;
+ p1 752 656 fixed;
+ Hout 752 704 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 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 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 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 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base2 912 680
+ description '4.81FalseTrueBond Graph\MR\center_of_mass.emx2020-7-17 15:37:54Baseparameters
+ real I [3,1] = [0;0;0] {N.m.s};
+ real m = 0.015 {kg};';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 880 640 944 720 color 0 fill 255;
+ text 'COM' 912 664 color 0;
+ terminals
+ p 880 656 fixed;
+ Hin 880 704 fixed;
+ p1 944 656 fixed;
+ Hout 944 704 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 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 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 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 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ Base3 368 680
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\center_of_mass.emx
+ 2020-7-17 15:37:54
+Base
+
+
+ parameters
+ real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
+ real m = 0.00455 {kg};
+
+';
+ type Submodel
+ ports
+ power out p [6,1];
+ signal in Hin [4,4];
+ power in p1 [6,1];
+ signal out Hout [4,4];
+ end;
+ icon bg bottom
+ figures
+ rectangle 336 640 400 720 color 0 fill 255;
+ text 'COM' 368 664 color 0;
+ terminals
+ p 336 656 fixed;
+ Hin 336 704 fixed;
+ p1 400 656 fixed;
+ Hout 400 704 fixed;
+ end;
+ implementation bg
+ submodels
+ AdHi0 544 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MTF.emx
+ 2007-9-25 12:3:3
+ True
+';
+ 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 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\MGY.emx
+ 2007-10-31 11:43:6
+ True
+';
+ type MGY
+ ports
+ power in p1 [6,1];
+ end;
+ icon bg top
+ figures
+ text 'MGY' 616 256 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 616 400
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\Se.emx
+ 2007-9-25 12:3:26
+ True
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 616 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 480 256
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\I.emx
+ 2007-9-25 12:2:12
+ True
+';
+ type I
+ ports
+ power in p [6,1];
+ signal out state [6,1];
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg top
+ figures
+ text 'I' 480 256 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 472 496;
+ plug p1 752 304;
+ plug Hout 768 496;
+ plug p 472 304;
+ 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 304
+ 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 304 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Ta0k 544 256
+ 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 top
+ figures
+ text '1' 544 256 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ AdHi0\p2 => Ta0j\p;
+ Gravity\p => AdHi0\p1;
+ Hin -> Splitter1\input;
+ p <= Ta0j\p;
+ p1 => Ta0j\p;
+ Splitter1\output -> AdHi0\H;
+ Splitter1\output -> Hout;
+ Ta0j\p => Ta0k\p;
+ Ta0k\p => EJS\p1;
+ Ta0k\p => InertialTensor\p;
+ end;
+ parameterrelations
+InertialTensor\I = I;
+InterialTensor\m = m;
+EJS\I = I;
+EJS\m = m;
+AdHik\COMdim = COMdim;
+AdHik1\COMdim = COMdim;
+Hij\dim = dim;
+Gravity\m=m;parameterrelations_end;
+ figures
+ text 'b = current link (body)
+a = previous link (body)
+i = Body fixed frame, fixed in joint with previous link
+j = Body fixed frame, fixed in joint with next link
+k = Body fixed frame, principal inertial frame
+0 = inertial system
+ ' 288 280 color 0;
+ implementation_end;
+ COM1 424 584
+ description '4.81parameters
+ real mass = 1 {kg};';
+ type Submodel
+ ports
+ translation in p [2,1];
+ signal in mass {kg} ;
+ end;
+ icon bg ellipse bottom
+ figures
+ ellipse 416 576 432 592 color 0 fill 15132390;
+ line 424 576 424 592 color 0 fill 15132390;
+ line 416 584 432 584 color 0 fill 15132390;
+ end;
+ implementation bg
+ submodels
+ Gain 368 408
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output [2,1];
+ end;
+ icon bg bottom
+ figures
+ rectangle 352.1 392 383.9 424 color 0 fill 15132390;
+ text 'K' 368 408 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = [0;-g_n] * input;
+ implementation_end;
+ I 248 520
+ description '4.01False
+ Bond Graph\2D\I-2.emx
+ 2007-9-25 12:7:37
+';
+ type 'I-2'
+ ports
+ power in p [2,1];
+ signal out state [2,1];
+ signal in mass {kg} ;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 248 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.e);
+ p.f = inverse ([mass,0;0,mass]) * state;
+implementation_end;
+ plug p 304 468;
+ plug mass 208 408;
+ OneJunction2 304 520
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ translation knot duplicatable none p [2,1];
+ signal knot out flow [2,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 304 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Sg 368 520
+ description '4.01False
+ Bond Graph\2D\MSe-2.emx
+ 2007-9-25 12:7:58
+';
+ type 'MSe-2'
+ ports
+ power out p [2,1];
+ signal in effort [2,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 368 520 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow[2];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Splitter1 248 408
+ 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 244.8 404.8 251.2 411.2 color -1 fill 0;
+ ellipse 243.7 403.7 252.3 412.3 color -1;
+ terminals
+ input 248 408 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ end;
+ connections
+ Gain\output -> Sg\effort;
+ I\p <= OneJunction2\p;
+ mass -> Splitter1\input;
+ p => OneJunction2\p;
+ Sg\p => OneJunction2\p;
+ Splitter1\output -> Gain\input;
+ Splitter1\output -> I\mass;
+ end;
+ implementation_end;
+ COM2 824 584
+ description '4.81parameters
+ real mass = 1 {kg};';
+ type Submodel
+ ports
+ power in p [2,1];
+ signal in mass {kg} ;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 816 576 832 592 color 0 fill 15132390;
+ line 824 576 824 592 color 0 fill 15132390;
+ line 816 584 832 584 color 0 fill 15132390;
+ end;
+ implementation bg
+ submodels
+ Gain 368 408
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output [2,1];
+ end;
+ icon bg bottom
+ figures
+ rectangle 352.1 392 383.9 424 color 0 fill 15132390;
+ text 'K' 368 408 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = [0;-g_n] * input;
+ implementation_end;
+ I 248 520
+ description '4.01False
+ Bond Graph\2D\I-2.emx
+ 2007-9-25 12:7:37
+';
+ type 'I-2'
+ ports
+ power in p [2,1];
+ signal out state [2,1];
+ signal in mass {kg} ;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 248 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.e);
+ p.f = inverse ([mass,0;0,mass]) * state;
+implementation_end;
+ plug p 304 468;
+ plug mass 208 408;
+ OneJunction2 304 520
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out flow [2,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 304 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Sg 368 520
+ description '4.01False
+ Bond Graph\2D\MSe-2.emx
+ 2007-9-25 12:7:58
+';
+ type 'MSe-2'
+ ports
+ power out p [2,1];
+ signal in effort [2,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 368 520 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow[2];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Splitter1 248 408
+ 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 244.8 404.8 251.2 411.2 color -1 fill 0;
+ ellipse 243.7 403.7 252.3 412.3 color -1;
+ terminals
+ input 248 408 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ end;
+ connections
+ Gain\output -> Sg\effort;
+ I\p <= OneJunction2\p;
+ mass -> Splitter1\input;
+ p => OneJunction2\p;
+ Sg\p => OneJunction2\p;
+ Splitter1\output -> Gain\input;
+ Splitter1\output -> I\mass;
+ end;
+ implementation_end;
+ COM3 984 584
+ description '4.81parameters
+ real mass = 1 {kg};';
+ type Submodel
+ ports
+ power in p [2,1];
+ signal in mass {kg} ;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 976 576 992 592 color 0 fill 15132390;
+ line 984 576 984 592 color 0 fill 15132390;
+ line 976 584 992 584 color 0 fill 15132390;
+ end;
+ implementation bg
+ submodels
+ Gain 368 408
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output [2,1];
+ end;
+ icon bg bottom
+ figures
+ rectangle 352.1 392 383.9 424 color 0 fill 15132390;
+ text 'K' 368 408 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = [0;-g_n] * input;
+ implementation_end;
+ I 248 520
+ description '4.01False
+ Bond Graph\2D\I-2.emx
+ 2007-9-25 12:7:37
+';
+ type 'I-2'
+ ports
+ power in p [2,1];
+ signal out state [2,1];
+ signal in mass {kg} ;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 248 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.e);
+ p.f = inverse ([mass,0;0,mass]) * state;
+implementation_end;
+ plug p 304 468;
+ plug mass 208 408;
+ OneJunction2 304 520
+ description '4.01False
+ Bond Graph\OneJunction.emx
+ 2007-9-27 9:51:18
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out flow [2,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 304 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ Sg 368 520
+ description '4.01False
+ Bond Graph\2D\MSe-2.emx
+ 2007-9-25 12:7:58
+';
+ type 'MSe-2'
+ ports
+ power out p [2,1];
+ signal in effort [2,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 368 520 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow[2];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Splitter1 248 408
+ 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 244.8 404.8 251.2 411.2 color -1 fill 0;
+ ellipse 243.7 403.7 252.3 412.3 color -1;
+ terminals
+ input 248 408 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ end;
+ connections
+ Gain\output -> Sg\effort;
+ I\p <= OneJunction2\p;
+ mass -> Splitter1\input;
+ p => OneJunction2\p;
+ Sg\p => OneJunction2\p;
+ Splitter1\output -> Gain\input;
+ Splitter1\output -> I\mass;
+ end;
+ implementation_end;
+ Constant 920 584
+ description '4.01False
+ Signal\Sources\Constant.emx
+ 2007-10-19 14:48:44
+';
+ type Constant
+ ports
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 904.1 568 935.9 600 color 0 fill 15132390;
+ line 908.9 579.6 930.9 579.6 color 16711680 width 2;
+ line 906.2 590.7 931.9 590.7 color 0;
+ line 908.5 574.7 908.5 593 color 0;
+ end;
+ implementation eq
+parameters
+ real C = 0.015 {kg}; // output value
+equations
+ output = C;
+ implementation_end;
+ I 432 176
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\I.emx
+ 2011-11-29 15:55:55
+
+';
+ type I
+ ports
+ power in p;
+ signal out state;
+ signal in i;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 432 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.e);
+ p.f = state / i;
+implementation_end;
+ I1 824 176
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\I.emx
+ 2011-11-29 15:55:55
+
+';
+ type I
+ ports
+ power in p;
+ signal out state;
+ signal in i;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 824 176 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ state = int(p.e);
+ p.f = state / i;
+implementation_end;
+ Integrate 1040 512
+ description '
+
+ 4.3
+1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2013-3-8 14:47:42
+
+';
+ type Integrate
+ ports
+ signal in input [2,1];
+ signal out output [2,1];
+ end;
+ icon bg bottom
+ figures
+ rectangle 1024 496 1056 528 color 0 fill 15132390;
+ text '∫' 1040 512.3 color 16711680 'Lucida Sans' 21 italic;
+ end;
+ implementation eq
+parameters
+ real initial[2] = [0.115;0]; // initial value
+equations
+ output = int (input, initial);
+ implementation_end;
+ Integrate1 712 192
+ 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 696 176 728 208 color 0 fill 15132390;
+ text '∫' 712 192.3 color 16711680 'Lucida Sans' 21 italic;
+ end;
+ implementation eq
+parameters
+ real initial = 0; // initial value
+equations
+ output = int (input, initial);
+ implementation_end;
+ inverse_kinematics 304 32
+ 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.
+ real angle_sum {rad}; // test angle
+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;
+ inverse_kinematics1 392 864
+ 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} ;
+ signal out abs_angle2;
+ 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.
+ real angle_sum {rad}; // test angle
+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;
+ abs_angle2 = angle1 - pi * to_rad + c;
+ angle2 = c - pi * to_rad;
+
+
+
+ implementation_end;
+ Joint1 208.1 678
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\joint-v2.emx
+ 2020-7-17 16:52:13
+
+';
+ type 'Submodel-rotz'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ signal out q;
+ end;
+ icon bg bottom
+ figures
+ rectangle 176.2 640 240 716 color 0 fill 14745599;
+ text 'Joint' 208 672 color 0;
+ terminals
+ p 176 656 fixed;
+ p1 208 640 fixed;
+ p2 240 656 fixed;
+ Hin 176 704 fixed;
+ Hout 240 704 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;
+ JointType 240 312
+ description '4.81FalseTrueparameters
+ real joint = 1;
+ real initial = 0;';
+ type Submodel
+ ports
+ mechanical in p1;
+ signal out output [4,4];
+ power out p2 [6,1];
+ signal out q;
+ end;
+ implementation bg
+ submodels
+ Integrate 320 272
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ signal out q;
+ end;
+ icon bg
+ figures
+ rectangle 304 256 336 288 color 0 fill 15132390;
+ text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+parameters
+ real global joint;
+ real global initial;
+variables
+ real R[3,3];
+ real p[3];
+ real qa[6];
+ real temp [4,4];
+initialequations
+ qa = 0;
+equations
+-q = int(input,initial);
+qa[joint] = q;
+R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa);
+output = homogeneous(R,qa[4:6]);implementation_end;
+ plug p1 240 188;
+ plug output 320 416;
+ plug p2 240 412;
+ plug q 320 184;
+ OneJunction2 240 271.9
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\FlowSensor.emx
+ 2011-11-29 15:50:53
+
+';
+ knot FlowSensor
+ ports
+ mechanical knot in p1 [1];
+ mechanical knot out p2 [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215;
+ text 'f' 240 271.2 color 0;
+ end;
+ implementation eq
+equations
+ p2.f = p1.f;
+ p1.e = p2.e;
+ flow = p1.f;
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real i;
+ real state[6];
+equations
+ state = int(p2.f);
+ for i = 1 to 6 do
+ if i == joint then
+ p1.f = p2.f[i];
+ p2.e[i] = p1.e;
+ else
+ p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint);
+ end;
+ end;
+implementation_end;
+ end;
+ connections
+ Integrate\output -> output;
+ Integrate\q -> q;
+ OneJunction2\flow -> Integrate\input;
+ OneJunction2\p2 => uTbai\p1;
+ p1 => OneJunction2\p1;
+ uTbai\p2 => p2;
+ end;
+ 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 p 112 424;
+ plug p1 240 40;
+ plug p2 496 424;
+ plug Hin 112 576;
+ plug Hout 504 576;
+ plug q 112 312;
+ 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 240 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' 240 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
+ Hin -> MatrixMul\input2;
+ JointType\output -> Splitter2\input;
+ JointType\p1 <= p1;
+ JointType\p2 => Wbai\p;
+ JointType\q -> q;
+ MatrixMul\output -> Hout;
+ p <= Wbai\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 312;
+ Splitter2\output -> MatrixMul\input1;
+ Wbai\p <= AdHji\p1;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;
+
+parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 680 488 color 0;
+ implementation_end;
+ Joint2 560.1 678
+ description '
+
+ 4.8
+1
+ False
+ True
+ Bond Graph\MR\joint-v2.emx
+ 2020-7-17 16:52:13
+
+';
+ type 'Submodel-rotz'
+ ports
+ power out p [6,1];
+ power in p1;
+ power in p2 [6,1];
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ signal out q;
+ end;
+ icon bg bottom
+ figures
+ rectangle 528.2 640 592 716 color 0 fill 14745599;
+ text 'Joint' 560 672 color 0;
+ terminals
+ p 528 656 fixed;
+ p1 560 640 fixed;
+ p2 592 656 fixed;
+ Hin 528 704 fixed;
+ Hout 592 704 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;
+ JointType 240 312
+ description '4.81FalseTrueparameters
+ real joint = 1;
+ real initial = 0;';
+ type Submodel
+ ports
+ mechanical in p1;
+ signal out output [4,4];
+ power out p2 [6,1];
+ signal out q;
+ end;
+ implementation bg
+ submodels
+ Integrate 320 272
+ description '
+ 4.0
+ 1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2007-9-26 12:3:23
+ True
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output [4,4];
+ signal out q;
+ end;
+ icon bg
+ figures
+ rectangle 304 256 336 288 color 0 fill 15132390;
+ text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol;
+ end;
+ implementation eq
+parameters
+ real global joint;
+ real global initial;
+variables
+ real R[3,3];
+ real p[3];
+ real qa[6];
+ real temp [4,4];
+initialequations
+ qa = 0;
+equations
+-q = int(input,initial);
+qa[joint] = q;
+R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa);
+output = homogeneous(R,qa[4:6]);implementation_end;
+ plug p1 240 188;
+ plug output 320 416;
+ plug p2 240 412;
+ plug q 320 184;
+ OneJunction2 240 271.9
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\FlowSensor.emx
+ 2011-11-29 15:50:53
+
+';
+ knot FlowSensor
+ ports
+ mechanical knot in p1 [1];
+ mechanical knot out p2 [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg ellipse
+ figures
+ ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215;
+ text 'f' 240 271.2 color 0;
+ end;
+ implementation eq
+equations
+ p2.f = p1.f;
+ p1.e = p2.e;
+ flow = p1.f;
+implementation_end;
+ uTbai 240 328
+ description '
+ 4.0
+ 1
+ False
+ Bond Graph\TF.emx
+ 2007-9-25 12:4:2
+ True
+';
+ type TF
+ ports
+ power in p1;
+ power out p2 [6,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p1;
+ causality fixed out p2;
+ parameters
+ real Cconstraint = 1.0e-4;
+ real Rconstraint = 1000.0;
+ end;
+ icon bg left
+ figures
+ text 'TF' 240 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global joint;
+variables
+ real i;
+ real state[6];
+equations
+ state = int(p2.f);
+ for i = 1 to 6 do
+ if i == joint then
+ p1.f = p2.f[i];
+ p2.e[i] = p1.e;
+ else
+ p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint);
+ end;
+ end;
+implementation_end;
+ end;
+ connections
+ Integrate\output -> output;
+ Integrate\q -> q;
+ OneJunction2\flow -> Integrate\input;
+ OneJunction2\p2 => uTbai\p1;
+ p1 => OneJunction2\p1;
+ uTbai\p2 => p2;
+ end;
+ 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 p 112 424;
+ plug p1 240 40;
+ plug p2 496 424;
+ plug Hin 112 576;
+ plug Hout 504 576;
+ plug q 112 312;
+ 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 240 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' 240 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
+ Hin -> MatrixMul\input2;
+ JointType\output -> Splitter2\input;
+ JointType\p1 <= p1;
+ JointType\p2 => Wbai\p;
+ JointType\q -> q;
+ MatrixMul\output -> Hout;
+ p <= Wbai\p;
+ p2 => AdHji\p2;
+ Splitter2\output -> AdHji\H 424 312;
+ Splitter2\output -> MatrixMul\input1;
+ Wbai\p <= AdHji\p1;
+ end;
+ parameterrelations
+EndstopMin\Rendstop = Rendstop;
+EndstopMin\Cendstop = Cendstop;
+EndstopMin\InitialPos = InitialPos;
+EndstopMin\EndstopPos = MinEndstopPos;
+EndstopMax\Rendstop = Rendstop;
+EndstopMax\Cendstop = Cendstop;
+EndstopMax\InitialPos = InitialPos;
+EndstopMax\EndstopPos = MaxEndstopPos;
+Rjoint\Rjoint= Rjoint;
+Integrate\init = InitialPos;
+uTbai\Rconstraint = Rconstraint;
+uTbai\Cconstraint = Cconstraint;
+
+parameterrelations_end;
+ figures
+ text 'b = next link (body)
+a = previous link (body)
+i = Frame fixed in previous body, fixed in joint
+j = Frame fixed in next body, fixed in joint
+ ' 680 488 color 0;
+ implementation_end;
+ Link 288 680
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 256 640 320 720 color 0 fill 8454041;
+ text 'name' 288 664 color 0 'Clear Sans' 16;
+ terminals
+ Hin 256 704 fixed;
+ Hout 320 704 fixed;
+ Pin 320 656 fixed;
+ Pout 256 656 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.0325; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link1 480 680
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 448 640 512 720 color 0 fill 8454041;
+ text 'name' 480 664 color 0 'Clear Sans' 16;
+ terminals
+ Hin 448 704 fixed;
+ Hout 512 704 fixed;
+ Pin 512 656 fixed;
+ Pout 448 656 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.0325; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link2 640 680
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 608 640 672 720 color 0 fill 8454041;
+ text 'name' 640 664 color 0 'Clear Sans' 16;
+ terminals
+ Hin 608 704 fixed;
+ Hout 672 704 fixed;
+ Pin 672 656 fixed;
+ Pout 608 656 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.025; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link3 832 680
+ description '
+
+ 4.8
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx
+1
+ False
+ 2020-7-16 17:44:32
+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 800 640 864 720 color 0 fill 8454041;
+ text 'name' 832 664 color 0 'Clear Sans' 16;
+ terminals
+ Hin 800 704 fixed;
+ Hout 864 704 fixed;
+ Pin 864 656 fixed;
+ Pout 800 656 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[3]= [0; 0.025; 0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+equations
+ Hab = homogeneous(eye(3),offset);
+ AdHab = Adjoint(eye(3),offset);
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ MXTF 352.3 288
+ description '
+
+ 4.8
+1
+ False
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\2D\MXTF-2.emx
+ 2020-7-14 17:06:13
+True
+
+';
+ type 'TF-2'
+ ports
+ power in p1;
+ power out p2 [2,1];
+ signal in p [2,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p2;
+ causality fixed out p1;
+ end;
+ icon bg bottom
+ figures
+ text 'MXTF' 352.3 288 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real r[2];
+equations
+ r = [-p[2];p[1]];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;implementation_end;
+ Negate1 224 800
+ 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 208 784 240 816 color 0 fill 15132390;
+ text '-1' 224 800 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = - input;
+ implementation_end;
+ Negate2 592 800
+ 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 576 784 608 816 color 0 fill 15132390;
+ text '-1' 592 800 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = - input;
+ implementation_end;
+ new_joint1 424 768
+ 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];
+ signal out output;
+ end;
+ implementation eq
+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;
+ new_joint2 776 768
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ // start typing here
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];implementation_end;
+ new_joint3 1040 704
+ 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];
+ signal out output;
+ end;
+ implementation eq
+variables
+ real position[3];
+ real rotation[3];
+ real R[3,3];
+equations
+ position = input[1:3,4];
+ rotation = [input[3,2];input[1,3];input[2,1]];
+ R = input[1:3,1:3];implementation_end;
+ OneJunction 424 368
+ 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' 424 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction1 424 520
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ translation knot duplicatable none p [2,1];
+ signal knot out flow [2,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 424 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction10 824 232
+ 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' 824 232 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction11 984 512
+ 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' 984 512 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction12 704 368
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out flow [2,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 704 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction16 624 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' 624 200 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction17 560 752
+ 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' 560 752 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction18 248 208
+ 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' 248 208 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction2 128 656
+ 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' 128 656 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction3 432 232
+ 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' 432 232 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction5 272.3 368
+ 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' 272.3 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction6 272 520
+ 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' 272 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction7 824 368
+ 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' 824 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction8 824 520
+ 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' 824 520 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction9 984 368
+ 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' 984 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ PID 248 88
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PID.emx
+ 2008-1-17 10:49:30
+';
+ type PID
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 232 72 264 104 color 0 fill 15132390;
+ text 'PID' 248 87.5 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 0.05 {}; // Proportional gain
+ real tauD = 1.0 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.001 {}; // Tameness constant: 0 < beta << 1
+ real tauI = 0.05{s}; // Integral time constant: tauI > 0
+variables
+ real pdout, pdrate, pdstate;
+ real pirate, pistate;
+equations
+ pdrate = (kp * error - pdout) / (beta * tauD);
+ pdstate = int (pdrate);
+ pdout = pdstate + (kp * error / beta);
+ pirate = pdout / tauI;
+ pistate = int (pirate);
+ output = pistate + pdout;
+ implementation_end;
+ PID1 624 88
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PID.emx
+ 2008-1-17 10:49:30
+';
+ type PID
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 608 72 640 104 color 0 fill 15132390;
+ text 'PID' 624 87.5 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 0.02 {}; // Proportional gain
+ real tauD = 1.0 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.001 {}; // Tameness constant: 0 < beta << 1
+ real tauI = 0.05 {s}; // Integral time constant: tauI > 0
+variables
+ real pdout, pdrate, pdstate;
+ real pirate, pistate;
+equations
+ pdrate = (kp * error - pdout) / (beta * tauD);
+ pdstate = int (pdrate);
+ pdout = pdstate + (kp * error / beta);
+ pirate = pdout / tauI;
+ pistate = int (pirate);
+ output = pistate + pdout;
+ implementation_end;
+ PID2 280 800
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PID.emx
+ 2008-1-17 10:49:30
+';
+ type PID
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 264 784 296 816 color 0 fill 15132390;
+ text 'PID' 280 799.5 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 0.05 {}; // Proportional gain
+ real tauD = 1.0 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.001 {}; // Tameness constant: 0 < beta << 1
+ real tauI = 0.05{s}; // Integral time constant: tauI > 0
+variables
+ real pdout, pdrate, pdstate;
+ real pirate, pistate;
+equations
+ pdrate = (kp * error - pdout) / (beta * tauD);
+ pdstate = int (pdrate);
+ pdout = pdstate + (kp * error / beta);
+ pirate = pdout / tauI;
+ pistate = int (pirate);
+ output = pistate + pdout;
+ implementation_end;
+ PID3 640 800
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PID.emx
+ 2008-1-17 10:49:30
+';
+ type PID
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 624 784 656 816 color 0 fill 15132390;
+ text 'PID' 640 799.5 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 0.02 {}; // Proportional gain
+ real tauD = 1.0 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.001 {}; // Tameness constant: 0 < beta << 1
+ real tauI = 0.05 {s}; // Integral time constant: tauI > 0
+variables
+ real pdout, pdrate, pdstate;
+ real pirate, pistate;
+equations
+ pdrate = (kp * error - pdout) / (beta * tauD);
+ pdstate = int (pdrate);
+ pdout = pdstate + (kp * error / beta);
+ pirate = pdout / tauI;
+ pistate = int (pirate);
+ output = pistate + pdout;
+ implementation_end;
+ PlusMinus1 584 400
+ 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 576 392 592 408 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ PlusMinus2 304 88
+ 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 296 80 312 96 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ PlusMinus3 552 88
+ 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 544 80 560 96 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ PlusMinus4 328 800
+ 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 320 792 336 808 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ PlusMinus5 688 800
+ 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 680 792 696 808 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ R 240 752
+ 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' 240 752 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.01;
+equations
+ p.e = r * p.f;
+implementation_end;
+ R1 592 752
+ 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' 592 752 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.01;
+equations
+ p.e = r * p.f;
+implementation_end;
+ R2 200 208
+ 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' 200 208 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.01;
+equations
+ p.e = r * p.f;
+implementation_end;
+ R3 584 200
+ 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' 584 200 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.01;
+equations
+ p.e = r * p.f;
+implementation_end;
+ rectanglepath 64 32
+ 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;
+ 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 = 0.5 {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};
+ real test1, test2, test3;
+initialequations
+ v = (2*w + 2*h)/t;
+ t_w = w / v;
+ t_h = h / v;
+equations
+ period = floor(time / t) * t;
+ 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;
+ RTF 424 456
+ description '
+
+ 4.8
+1
+ False
+ Bond Graph\2D\RTF-2.emx
+ 2020-7-14 12:43:04
+
+';
+ type 'TF-2'
+ ports
+ power in p1 [2,1];
+ power out p2 [2,1];
+ signal in angle {rad} ;
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'RTF' 424 456 color 0 18 bold;
+ end;
+ implementation eq
+/*
+2D rotation transformer. Takes an angle as input and then rotates the dimensions
+*/
+variables
+ real r[2,2];
+equations
+ r = [cos(angle), -sin(angle); sin(angle), cos(angle)];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;
+implementation_end;
+ RTF1 584 368
+ description '
+
+ 4.8
+1
+ False
+ Bond Graph\2D\RTF-2.emx
+ 2020-7-14 12:43:04
+
+';
+ type 'TF-2'
+ ports
+ power in p1 [2,1];
+ power out p2 [2,1];
+ signal in angle {rad} ;
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'RTF' 584 368 color 0 18 bold;
+ end;
+ implementation eq
+/*
+2D rotation transformer. Takes an angle as input and then rotates the dimensions
+*/
+variables
+ real r[2,2];
+equations
+ r = [cos(angle), -sin(angle); sin(angle), cos(angle)];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;
+implementation_end;
+ RTF2 272 432
+ description '
+
+ 4.8
+1
+ False
+ Bond Graph\2D\RTF-2.emx
+ 2020-7-14 12:43:04
+
+';
+ type 'TF-2'
+ ports
+ power in p1 [2,1];
+ power out p2 [2,1];
+ signal in angle {rad} ;
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'RTF' 272 432 color 0 18 bold;
+ end;
+ implementation eq
+/*
+2D rotation transformer. Takes an angle as input and then rotates the dimensions
+*/
+variables
+ real r[2,2];
+equations
+ r = [cos(angle), -sin(angle); sin(angle), cos(angle)];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;
+implementation_end;
+ RTF3 824 432
+ description '
+
+ 4.8
+1
+ False
+ Bond Graph\2D\RTF-2.emx
+ 2020-7-14 12:43:04
+
+';
+ type 'TF-2'
+ ports
+ power in p1 [2,1];
+ power out p2 [2,1];
+ signal in angle {rad} ;
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'RTF' 824 432 color 0 18 bold;
+ end;
+ implementation eq
+/*
+2D rotation transformer. Takes an angle as input and then rotates the dimensions
+*/
+variables
+ real r[2,2];
+equations
+ r = [cos(angle), -sin(angle); sin(angle), cos(angle)];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;
+implementation_end;
+ RTF4 984 424
+ description '
+
+ 4.8
+1
+ False
+ Bond Graph\2D\RTF-2.emx
+ 2020-7-14 12:43:04
+
+';
+ type 'TF-2'
+ ports
+ power in p1 [2,1];
+ power out p2 [2,1];
+ signal in angle {rad} ;
+ restrictions
+ causality constraint not_equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'RTF' 984 424 color 0 18 bold;
+ end;
+ implementation eq
+/*
+2D rotation transformer. Takes an angle as input and then rotates the dimensions
+*/
+variables
+ real r[2,2];
+equations
+ r = [cos(angle), -sin(angle); sin(angle), cos(angle)];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;
+implementation_end;
+ Se 984 656
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\Se.emx
+ 2011-11-29 16:36:49
+
+';
+ type Se
+ ports
+ power out p [6,1];
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'Se' 984 656 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real effort[6] = 0;
+variables
+ real flow[6];
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ Sf 192 520
+ description '4.01False
+ Bond Graph\2D\Sf-2.emx
+ 2007-9-25 12:7:5
+';
+ type 'Sf-2'
+ ports
+ power out p [2,1];
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 192 520 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow[2,1] = [0.0; 0.0];
+variables
+ real effort [2];
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ Sf1 152 232
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\Sf.emx
+ 2011-11-29 16:38:03
+
+';
+ type Sf
+ ports
+ power out p;
+ restrictions
+ causality fixed in p;
+ end;
+ icon bg bottom
+ figures
+ text 'Sf' 152 232 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real flow = 0;
+variables
+ real effort;
+equations
+ p.f = flow;
+ effort = p.e;
+implementation_end;
+ Sf2 72 656
+ 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' 72 656 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;
+ Sine 440 24
+ description '4.01False
+ Signal\Sources\WaveGenerator-Sine.emx
+ 2007-9-27 16:12:6
+';
+ type 'WaveGenerator-Sine'
+ ports
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ group
+ rectangle 424 8 456 40 color 0 fill 15132390;
+ line 428.5 14.4 428.5 33.6 color 0;
+ line 454.1 24 425.3 24 color 0;
+ spline 428.9 23.9 432.1 15.8 435.3 23.9 438.6 32 441.7 23.9 444.8 15.8 448.1 23.9 451.6 32.2 454.8 24.2 color 16711680;
+ end;
+ end;
+ implementation eq
+parameters
+ real amplitude = 1.0; // amplitude of the wave
+ real omega = 1.0 {rad/s}; // angular frequency of the wave
+variables
+ boolean hidden change;
+ real hidden half;
+equations
+ "calculate at least 2 points per cycle to get a triangle"
+ half = pi / omega;
+ change = frequencyevent (half, half / 2);
+
+ "calculate the sine wave"
+ output = amplitude * sin ( omega * time);
+implementation_end;
+ Splitter1 384 400
+ 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 380.8 396.8 387.2 403.2 color -1 fill 0;
+ ellipse 379.7 395.7 388.3 404.3 color -1;
+ terminals
+ input 384 400 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter2 800 400
+ 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 796.8 396.8 803.2 403.2 color -1 fill 0;
+ ellipse 795.7 395.7 804.3 404.3 color -1;
+ terminals
+ input 800 400 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter3 304 400
+ 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 300.8 396.8 307.2 403.2 color -1 fill 0;
+ ellipse 299.7 395.7 308.3 404.3 color -1;
+ terminals
+ input 304 400 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter4 632 400
+ 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 628.8 396.8 635.2 403.2 color -1 fill 0;
+ ellipse 627.7 395.7 636.3 404.3 color -1;
+ terminals
+ input 632 400 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter5 776 704
+ 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 772.8 700.8 779.2 707.2 color -1 fill 0;
+ ellipse 771.7 699.7 780.3 708.3 color -1;
+ terminals
+ input 776 704 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter6 424 704
+ 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 420.8 700.8 427.2 707.2 color -1 fill 0;
+ ellipse 419.7 699.7 428.3 708.3 color -1;
+ terminals
+ input 424 704 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter7 160 32
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [2,1];
+ signal knot in input [2,1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 156.8 28.8 163.2 35.2 color -1 fill 0;
+ ellipse 155.7 27.7 164.3 36.3 color -1;
+ terminals
+ input 160 32 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Submodel1 248 168
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel2 144 800
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel3 352 480
+ description '4.0
+ Template\Submodel-Equation.emx
+1
+ False
+ 2007-11-1 22:32:1
+ False
+';
+ type 'Submodel-Equation'
+ ports
+ signal in angle_velocity {rad/s} ;
+ signal out angle {rad} ;
+ signal in velocity [2,1] {m/s} ;
+ signal out position [2,1] {m} ;
+ signal out mass {kg} ;
+ signal out angular_momentum {N.m.s} ;
+ signal out joint1 [2,1];
+ signal out joint2 [2,1];
+ end;
+ implementation eq
+/* Equation Submodel
+Enter your equations here. You can use the Toolbar buttons at the top ( Add , f(x) etc. ).
+*/
+parameters
+ real density = 1400 {kg/m3};
+ real dimension[3] = [0.005;0.065;0.01] {m};
+ real initial_position[2] = [0.0325;0] {m};
+ real initial_angle = 0 {rad};
+variables
+ real body_angle[3];
+ real body_position[3];
+ real body_size[3];
+ real moment[3];
+initialequations
+ mass = dimension[1] * dimension[2] * dimension[3] * density;
+ moment[1] = mass/12 * ( dimension[2]^2 + dimension[3]^2);
+ moment[2] = mass/12 * ( dimension[1]^2 + dimension[3]^2);
+ moment[3] = mass/12 * ( dimension[1]^2 + dimension[2]^2);
+ angular_momentum = moment[1];
+equations
+ angle = int(angle_velocity,initial_angle);
+ body_angle = [angle;0;0];
+ position = int(velocity,initial_position);
+ body_position = [0; position[1];position[2]];
+ joint1=[-dimension[2]/2;0];
+ joint2=[dimension[2]/2;0];
+
+ implementation_end;
+ Submodel4 744 480
+ description '4.0
+ Template\Submodel-Equation.emx
+1
+ False
+ 2007-11-1 22:32:1
+ False
+';
+ type 'Submodel-Equation'
+ ports
+ signal in angle_velocity {rad/s} ;
+ signal out angle {rad} ;
+ signal in velocity [2,1] {m/s} ;
+ signal out position [2,1] {m} ;
+ signal out mass {kg} ;
+ signal out angular_momentum {N.m.s} ;
+ signal out joint1 [2,1];
+ signal out joint2 [2,1];
+ end;
+ icon bg
+ figures
+ rectangle 704 464 784 496 color 0 fill 15132390;
+ text 'name' 744 480 color 0 16;
+ end;
+ implementation eq
+/* Equation Submodel
+Enter your equations here. You can use the Toolbar buttons at the top ( Add , f(x) etc. ).
+*/
+parameters
+ real density = 1400 {kg/m3};
+ real dimension[3] = [0.005;0.05;0.01] {m};
+ real initial_position[2] = [0.09;0.0] {m};
+ real initial_angle = 0.0 {rad};
+variables
+ real body_angle[3];
+ real body_position[3];
+ real body_size[3];
+ real moment[3];
+initialequations
+ mass = dimension[1] * dimension[2] * dimension[3] * density;
+ moment[1] = mass/12 * ( dimension[2]^2 + dimension[3]^2);
+ moment[2] = mass/12 * ( dimension[1]^2 + dimension[3]^2);
+ moment[3] = mass/12 * ( dimension[1]^2 + dimension[2]^2);
+ angular_momentum = moment[1];
+equations
+ angle = int(angle_velocity,initial_angle);
+ body_angle = [angle;0;0];
+ position = int(velocity,initial_position);
+ body_position = [0; position[1];position[2]];
+ joint1=[-dimension[2]/2;0];
+ joint2=[dimension[2]/2;0];implementation_end;
+ Submodel5 520 800
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 184
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 184 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 220;
+ OneJunction2 624 136
+ 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' 624 136 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 664 136
+ 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' 664 136 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ Submodel8 624 160
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ signal in input;
+ power out p2;
+ end;
+ implementation bg
+ submodels
+ Gain1 552 88
+ description '4.01False
+ Signal\Block Diagram\Gain.emx
+ 2007-9-26 12:15:12
+';
+ type Gain
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 536.1 72 567.9 104 color 0 fill 15132390;
+ text 'K' 552 88 color 16711680 16 bold;
+ end;
+ implementation eq
+parameters
+ real K = 12.0; // gain
+equations
+ output = K * input;
+ implementation_end;
+ GY 624 192
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\GY.emx
+ 2011-11-29 15:53:45
+
+';
+ type GY
+ ports
+ power in p1;
+ power out p2;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'GY' 624 192 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.127;
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe 624 88
+ 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' 624 88 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug input 424 88;
+ plug p2 624 280;
+ OneJunction2 624 144
+ 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' 624 144 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ R 672 144
+ 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' 672 144 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 0.08;
+equations
+ p.e = r * p.f;
+implementation_end;
+ SignalLimiter2 488 88
+ 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 472 72 504 104 color 0 fill 15132390;
+ line 487.9 76.5 487.9 101 color 0 fill 15132390;
+ line 475 88.2 500.7 88.2 color 0 fill 15132390;
+ spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2;
+ spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2;
+ spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 1;
+ real minimum = -1;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Gain1\output -> MSe\effort;
+ GY\p2 => p2;
+ input -> SignalLimiter2\input;
+ MSe\p => OneJunction2\p;
+ OneJunction2\p => GY\p1;
+ R\p <= OneJunction2\p;
+ SignalLimiter2\output -> Gain1\input;
+ end;
+ implementation_end;
+ TF 504 288
+ description '
+
+ 4.8
+1
+ False
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\2D\MXTF-2.emx
+ 2020-7-14 16:54:28
+True
+
+';
+ type 'TF-2'
+ ports
+ power in p1;
+ power out p2 [2,1];
+ signal in p [2,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p2;
+ causality fixed out p1;
+ end;
+ icon bg bottom
+ figures
+ text 'MXTF' 504 288 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real r[2];
+equations
+ r = [-p[2];p[1]];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;implementation_end;
+ TF2 904 288
+ description '
+
+ 4.8
+1
+ False
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\2D\MXTF-2.emx
+ 2020-7-14 17:06:13
+True
+
+';
+ type 'TF-2'
+ ports
+ power in p1;
+ power out p2 [2,1];
+ signal in p [2,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p2;
+ causality fixed out p1;
+ end;
+ icon bg bottom
+ figures
+ text 'MXTF' 904 288 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real r[2];
+equations
+ r = [-p[2];p[1]];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;implementation_end;
+ TF3 808 288
+ description '
+
+ 4.8
+1
+ False
+ Z:\home\wouter\Documents\20-sim\library\Bond Graph\2D\MXTF-2.emx
+ 2020-7-14 16:54:28
+True
+
+';
+ type 'TF-2'
+ ports
+ power in p1;
+ power out p2 [2,1];
+ signal in p [2,1];
+ restrictions
+ causality constraint not_equal p1 p2;
+ causality fixed in p2;
+ causality fixed out p1;
+ end;
+ icon bg bottom
+ figures
+ text 'MXTF' 808 288 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real r[2];
+equations
+ r = [-p[2];p[1]];
+ p1.e = transpose (r) * p2.e;
+ p2.f = r * p1.f;implementation_end;
+ Zero 80 704
+ 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 64.1 688 95.9 720 color 0 fill 15132390;
+ text '0' 80 704 color 16711680 18 bold;
+ end;
+ implementation eq
+equations
+ output = eye(4);implementation_end;
+ ZeroJunction 504 368
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out effort [2,1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 504 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction1 352.3 368
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out effort [2,1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 352.3 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction2 904 368
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out effort [2,1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 904 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction3 752.3 368
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
+ ports
+ power knot duplicatable none p [2,1];
+ signal knot out effort [2,1];
+ restrictions
+ causality constraint one_in p;
+ end;
+ icon bg
+ figures
+ text '0' 752.3 368 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction4 624 232
+ 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' 624 232 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction5 248 232
+ 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' 248 232 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
+implementation_end;
+ ZeroJunction7 208 752
+ 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' 208 752 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ end;
+ connections
+ Base1\Hout -> Splitter5\input;
+ Base1\p1 <= Link3\Pout;
+ Base2\Hout -> new_joint3\input;
+ Base3\Hin <- Link\Hout;
+ Base3\Hout -> Splitter6\input;
+ Base3\p1 <= Link1\Pout;
+ Constant\output -> COM3\mass;
+ I\p <= OneJunction3\p;
+ I1\p <= OneJunction10\p;
+ inverse_kinematics\angle1 -> PlusMinus2\plus;
+ inverse_kinematics\angle2 -> PlusMinus3\plus;
+ inverse_kinematics1\angle1 -> PlusMinus4\plus;
+ inverse_kinematics1\angle2 -> PlusMinus5\plus 656 864;
+ Joint1\Hout -> Link\Hin;
+ Joint1\p => OneJunction2\p;
+ Joint1\p2 <= Link\Pout;
+ Joint1\q -> PlusMinus4\minus 280 752;
+ Joint2\Hout -> Link2\Hin;
+ Joint2\p2 <= Link2\Pout;
+ Joint2\q -> PlusMinus5\minus 608 752;
+ Link\Pin <= Base3\p;
+ Link1\Hout -> Joint2\Hin;
+ Link1\Pin <= Joint2\p;
+ Link2\Hout -> Base1\Hin;
+ Link2\Pin <= Base1\p;
+ Link3\Hout -> Base2\Hin;
+ Link3\Pin <= Base2\p;
+ MXTF\p2 => ZeroJunction1\p;
+ Negate1\output -> Submodel2\input;
+ Negate2\output -> Submodel5\input;
+ OneJunction\p => RTF\p1;
+ OneJunction\p => ZeroJunction\p;
+ OneJunction\p => ZeroJunction1\p;
+ OneJunction1\flow -> Submodel3\velocity 344 520;
+ OneJunction1\p => COM1\p;
+ OneJunction10\flow -> Submodel4\angle_velocity 728 288 728 424;
+ OneJunction10\p => TF2\p1;
+ OneJunction10\p => TF3\p1;
+ OneJunction11\flow -> Integrate\input;
+ OneJunction11\p => COM3\p;
+ OneJunction16\flow -> Integrate1\input;
+ OneJunction16\p => ZeroJunction4\p;
+ OneJunction17\p => Joint2\p1;
+ OneJunction18\p => ZeroJunction5\p;
+ OneJunction3\flow -> Submodel3\angle_velocity 328 264 328 440;
+ OneJunction3\p => MXTF\p1;
+ OneJunction3\p => TF\p1;
+ OneJunction3\p => ZeroJunction4\p;
+ OneJunction5\p => RTF2\p1;
+ OneJunction7\p => RTF3\p1;
+ OneJunction7\p => ZeroJunction2\p;
+ OneJunction7\p => ZeroJunction3\p;
+ OneJunction8\flow -> Submodel4\velocity 744 520;
+ OneJunction8\p => COM2\p;
+ OneJunction9\p => RTF4\p1;
+ PID\output -> Submodel1\input;
+ PID2\output -> Negate1\input;
+ PID3\output -> Negate2\input;
+ PlusMinus1\output -> RTF1\angle;
+ PlusMinus2\output -> PID\error;
+ PlusMinus3\output -> PID1\error;
+ PlusMinus4\output -> PID2\error;
+ PlusMinus5\output -> PID3\error;
+ R\p <= ZeroJunction7\p;
+ R1\p <= OneJunction17\p;
+ R2\p <= OneJunction18\p;
+ R3\p <= OneJunction16\p;
+ rectanglepath\output -> Splitter7\input;
+ RTF\p2 => OneJunction1\p;
+ RTF1\p2 => OneJunction12\p;
+ RTF2\p2 => OneJunction6\p;
+ RTF3\p2 => OneJunction8\p;
+ RTF4\p2 => OneJunction11\p;
+ Se\p => Base2\p1;
+ Sf\p => OneJunction6\p;
+ Sf1\p => ZeroJunction5\p;
+ Sf2\p => OneJunction2\p;
+ Splitter1\output -> PlusMinus1\plus;
+ Splitter1\output -> RTF\angle 400 416 400 432;
+ Splitter1\output -> Splitter3\input;
+ Splitter2\output -> RTF3\angle 800 408;
+ Splitter2\output -> RTF4\angle 952 400;
+ Splitter2\output -> Splitter4\input;
+ Splitter3\output -> PlusMinus2\minus 304 160;
+ Splitter3\output -> RTF2\angle 296 400;
+ Splitter4\output -> PlusMinus1\minus;
+ Splitter4\output -> PlusMinus3\minus 632 344 552 288;
+ Splitter5\output -> Link3\Hin;
+ Splitter5\output -> new_joint2\input;
+ Splitter6\output -> Link1\Hin;
+ Splitter6\output -> new_joint1\input;
+ Splitter7\output -> inverse_kinematics\input;
+ Splitter7\output -> inverse_kinematics1\input 32 680 32 864;
+ Submodel1\p2 => OneJunction18\p;
+ Submodel2\p2 => ZeroJunction7\p;
+ Submodel3\angle -> Splitter1\input 368 448 368 416;
+ Submodel3\angular_momentum -> I\i 320 440 320 264;
+ Submodel3\joint1 -> MXTF\p 392 320;
+ Submodel3\joint2 -> TF\p;
+ Submodel3\mass -> COM1\mass 336 528 416 528 416 568;
+ Submodel4\angle -> Splitter2\input;
+ Submodel4\angular_momentum -> I1\i 720 424 720 288;
+ Submodel4\joint1 -> TF3\p;
+ Submodel4\joint2 -> TF2\p;
+ Submodel4\mass -> COM2\mass 736 528 736 584;
+ Submodel5\p2 => OneJunction17\p;
+ Submodel8\input <- PID1\output;
+ Submodel8\p2 => OneJunction16\p;
+ TF\p2 => ZeroJunction\p;
+ TF2\p2 => ZeroJunction2\p;
+ TF3\p2 => ZeroJunction3\p;
+ Zero\output -> Joint1\Hin;
+ ZeroJunction\p => RTF1\p1;
+ ZeroJunction1\p => OneJunction5\p;
+ ZeroJunction2\p => OneJunction9\p;
+ ZeroJunction3\p => OneJunction12\p;
+ ZeroJunction4\p => OneJunction10\p;
+ ZeroJunction5\p => OneJunction3\p;
+ ZeroJunction7\p => Joint1\p1;
+ end;
+ implementation_end;
+]]>
+
+
+
+
+
+
+ Experiment 1
+
+
+
+ 4.8
+
+
+
+
+
+
+
+
+
+
+
+ Base1\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Base3\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ I1\state_initial
+ 0
+
+
+ I\state_initial
+ 0
+
+
+ Joint1\JointType\uTbai\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ Joint2\JointType\uTbai\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ PID1\pdstate_initial
+ 0
+
+
+ PID1\pistate_initial
+ 0
+
+
+ PID2\pdstate_initial
+ 0
+
+
+ PID2\pistate_initial
+ 0
+
+
+ PID3\pdstate_initial
+ 0
+
+
+ PID3\pistate_initial
+ 0
+
+
+ PID\pdstate_initial
+ 0
+
+
+ PID\pistate_initial
+ 0
+
+
+ Base2\InertialTensor\p.e_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
+
+ COM1\I\p.e_initial
+ 2
+ 1
+ 0 0
+
+
+ COM2\I\p.e_initial
+ 2
+ 1
+ 0 0
+
+
+ COM3\I\p.e_initial
+ 2
+ 1
+ 0 0
+
+
+ R1\p.e_initial
+ 0
+
+
+ R\p.e_initial
+ 0
+
+
+ Submodel2\R\p.f_initial
+ 0
+
+
+ Submodel5\R\p.f_initial
+ 0
+
+
+
+
+
+ time
+ Submodel3\body_position[1]
+ Submodel3\body_position[2]
+ Submodel3\body_position[3]
+ Submodel3\body_angle[1]
+ Submodel3\body_angle[2]
+ Submodel3\body_angle[3]
+ Submodel3\dimension[1]
+ Submodel3\dimension[2]
+ Submodel3\dimension[3]
+ Submodel4\dimension[1]
+ Submodel4\dimension[2]
+ Submodel4\dimension[3]
+ Submodel4\body_angle[1]
+ Submodel4\body_angle[2]
+ Submodel4\body_angle[3]
+ Submodel4\body_position[1]
+ Submodel4\body_position[2]
+ Submodel4\body_position[3]
+ PlusMinus2\output
+ PlusMinus3\output
+ Integrate\output[2]
+ Integrate\output[1]
+ MSe1\effort
+ MSe2\effort
+ MSe2\flow
+ MSe1\flow
+ new_joint1\position[1]
+ new_joint1\position[2]
+ new_joint1\position[3]
+ new_joint1\R[1,3]
+ new_joint1\R[2,3]
+ new_joint1\R[3,3]
+ new_joint1\R[1,2]
+ new_joint1\R[2,2]
+ new_joint1\R[3,2]
+ new_joint2\R[1,3]
+ new_joint2\R[2,3]
+ new_joint2\R[3,3]
+ new_joint2\R[1,2]
+ new_joint2\R[2,2]
+ new_joint2\R[3,2]
+ new_joint2\position[1]
+ new_joint2\position[2]
+ new_joint2\position[3]
+ PID2\error
+ PID3\error
+ new_joint3\position[3]
+ new_joint3\position[2]
+
+
+
+ GraphPlot
+
+ 1
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model
+ true
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 10
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ true
+ true
+ false
+
+
+ 0.0
+ 2.0512133912317303
+ true
+ 3
+
+
+
+
+
+ -0.009999999999999998
+ 0.04
+ true
+ 1
+
+
+
+ -0.25
+ 0.25
+ true
+ 1
+
+
+
+ -0.25
+ 0.25
+ true
+ 1
+
+
+
+ -0.25
+ 0.25
+ true
+ 1
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ MSe1\effort
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ MSe2\effort
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ false
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ MSe2\flow
+
+
+
+ 15086320
+ 1
+ 15086320
+ 0
+ false
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ MSe1\flow
+
+
+
+
+ true
+
+ 0.9024193548387097
+ 0.0308411214953271
+
+ 0
+ 16777215
+
+
+
+ GraphPlot
+
+ 2
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model(1)
+ 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
+ 2.0512133912317303
+ true
+ 3
+
+
+
+
+
+ -1.5
+ 3.5
+ true
+ 2
+
+
+
+ 0.0
+ 235.918450873204
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ PlusMinus2\output
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ PlusMinus3\output
+
+
+
+
+ true
+ 0
+ 16777215
+
+
+
+ D3DPlot
+
+ 3
+ 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
+
+
+ 2.3432919923881
+
+
+ 2.28068543057283
+
+
+ 1.56751702352047
+
+
+
+
+
+ -0.646203434499504
+
+
+ -0.628938588548313
+
+
+ -0.432270023337152
+
+
+
+
+ -0.309771185077498
+
+
+ -0.301494918649692
+
+
+ 0.901744213690389
+
+
+ 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
+
+
+ -9.99200722162641e-016
+
+
+ 1.76247905159244e-015
+
+
+ -3.05678199886544e-015
+
+
+ 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
+
+
+
+
+ 10
+
+
+ 10
+
+
+ 10
+
+
+ false
+ Reference Frame
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Submodel3\dimension[1]
+ 0.005
+
+
+ Submodel3\dimension[2]
+ 0.065
+
+
+ Submodel3\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.498039215686275
+
+
+ 0.498039215686275
+
+
+ 0.498039215686275
+
+
+
+
+
+ 14.298713684082
+
+ false
+ false
+ Block
+
+
+ Submodel3\body_position[1]
+ 0.0
+
+
+ Submodel3\body_position[2]
+ -0.01915326984592884
+
+
+ Submodel3\body_position[3]
+ 0.02623393923392464
+
+
+
+
+
+ Submodel3\body_angle[1]
+ 2.2010448489940284
+
+
+ Submodel3\body_angle[2]
+ 0.0
+
+
+ Submodel3\body_angle[3]
+ 0.0
+
+
+ Euler
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Submodel4\dimension[1]
+ 0.005
+
+
+ Submodel4\dimension[2]
+ 0.05
+
+
+ Submodel4\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Submodel4\body_position[1]
+ 0.0
+
+
+ Submodel4\body_position[2]
+ -0.013315183118204434
+
+
+ Submodel4\body_position[3]
+ 0.05268450409359094
+
+
+
+
+
+ Submodel4\body_angle[1]
+ 0.008626014952555631
+
+
+ Submodel4\body_angle[2]
+ 0.0
+
+
+ Submodel4\body_angle[3]
+ 0.0
+
+
+ Euler
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+ 10
+
+
+ 10
+
+
+ 10
+
+
+ false
+ Reference Frame
+
+
+ 0.5
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Submodel3\dimension[1]
+ 0.005
+
+
+ Submodel3\dimension[2]
+ 0.065
+
+
+ Submodel3\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.498039215686275
+
+
+ 0.498039215686275
+
+
+ 0.498039215686275
+
+
+
+
+
+ 14.298713684082
+
+ false
+ false
+ Block
+
+
+ new_joint1\position[1]
+ 0.0
+
+
+ new_joint1\position[2]
+ -0.01914237844052437
+
+
+ new_joint1\position[3]
+ 0.026264412189115294
+
+
+
+
+
+ new_joint1\R[1,3]
+ 0.0
+
+
+ new_joint1\R[2,3]
+ -0.8081357596650859
+
+
+ new_joint1\R[3,3]
+ -0.588996259708442
+
+
+
+
+ new_joint1\R[1,2]
+ 0.0
+
+
+ new_joint1\R[2,2]
+ -0.588996259708442
+
+
+ new_joint1\R[3,2]
+ 0.8081357596650859
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Submodel4\dimension[1]
+ 0.005
+
+
+ Submodel4\dimension[2]
+ 0.05
+
+
+ Submodel4\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ new_joint2\position[1]
+ 0.0
+
+
+ new_joint2\position[2]
+ -0.013304570144791548
+
+
+ new_joint2\position[3]
+ 0.0515337009578849
+
+
+
+
+
+ new_joint2\R[1,3]
+ 0.0
+
+
+ new_joint2\R[2,3]
+ 0.03980493681382746
+
+
+ new_joint2\R[3,3]
+ 0.9992074694502875
+
+
+
+
+ new_joint2\R[1,2]
+ 0.0
+
+
+ new_joint2\R[2,2]
+ 0.9992074694502875
+
+
+ new_joint2\R[3,2]
+ -0.03980493681382746
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ GraphPlot
+
+ 4
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ model(2)
+ 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.008778601272032657
+ 0.115
+ true
+ 3
+
+
+
+
+
+ -0.06
+ 0.14
+ true
+ 2
+
+
+
+ -0.06
+ 0.14
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ Integrate\output[1]
+
+
+ true
+ Integrate\output[2]
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ new_joint3\position[2]
+
+
+ true
+ new_joint3\position[3]
+
+
+
+
+ true
+ 0
+ 16777215
+
+
+
+ GraphPlot
+
+ 5
+ 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.0
+ 2.0512133912317303
+ true
+ 3
+
+
+
+
+
+ -5.0
+ 5.0
+ true
+ 2
+
+
+
+ -1885.20460252739
+ 0.0
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ PID2\error
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ PID3\error
+
+
+
+
+ true
+ 0
+ 16777215
+
+
+
+
+
+ 1
+ true
+ Window 1
+ 0
+
+ 1
+ 2
+ 4
+
+ Base
+
+
+ 2
+ true
+ Window 2
+ 0
+
+ 3
+
+ Base
+
+
+ 3
+ true
+ Window 3
+ 0
+
+ 5
+
+ Base
+
+
+
+
+-0.00208333 0.00462963 1.00208 1.0037
+
+
+0.138021 0.169444 0.777604 0.862963
+
+
+0.295833 0.327778 0.692187 0.765741
+
+
+
+
+
+ 0.0
+ 10.0
+ false
+ false
+ false
+ false
+ 0.1
+ 1.0e-6
+ 1.0e-7
+ false
+ true
+
+
+
+ Euler
+ 0.01
+ false
+
+
+ BackwardEuler
+ 1.0e-5
+ 1.0e-5
+ 1.0e-5
+ 1.0e-5
+ 0.01
+ 1.0
+
+
+ AdamsBashforth
+ 0.01
+ false
+
+
+ RungeKutta2
+ 0.01
+ false
+
+
+ RungeKutta4
+ 0.01
+ false
+
+
+ RungeKutta8
+ false
+ 0.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-5
+ 1.0e-5
+ 1.0e-5
+ 1.0e-5
+ false
+ 0.0
+ false
+ 0.0
+
+ 8
+
+
+
+ 10
+ false
+ true
+ true
+ false
+ true
+ 0
+ 0.0
+ true
+ MultipleRun
+ true
+
+ UseEndValue
+ 0.001
+ BroydonFletcherGoldfarbShanno
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+