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