4.8
0
False
C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model.emx
2020-7-23 11:32:46
';
type Mainmodel
end;
implementation bg
submodels
Body1 520 496
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.01;0.065] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body2 792 544
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body3 704 496
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.01;0.065] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body4 696 200
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.05;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body5 920 232
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
COM_body1 496 376
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
real m = 0.00455 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 480 344 512 408 color 0 fill 139;
text 'COM' 496 376 color 0 'Clear Sans' 16;
terminals
Hin 480 360 fixed;
p 480 392 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body2 776 688
description '
4.8
1
Bond Graph\MR\center_of_mass_v2.emx
2020-7-21 12:24:38
parameters
real I [3,1] = [0.01;0.01;0.0001] {N.m.s};
real m = 0.5 {kg};
';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 744 672 808 704 color 0 fill 139;
text 'COM' 776 688 color 0 'Clear Sans' 16;
terminals
Hin 792 672 fixed;
p 760 672 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body3 696 376
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
real m = 0.00455 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 680 344 712 408 color 0 fill 139;
text 'COM' 696 376 color 0 'Clear Sans' 16;
terminals
Hin 680 360 fixed;
p 680 392 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body4 632 56
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [7.583333333333335e-7; 3.645833333333334e-8; 7.364583333333335e-7] {N.m.s};
real m = 0.0035 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 600 40 664 72 color 0 fill 139;
text 'COM' 632 56 color 0 'Clear Sans' 16;
terminals
Hin 648 72 fixed;
p 616 72 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body5 1064 136
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [0.018;0.159;0.159] {mN.m.s};
real m = 0.015 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 1048 104 1080 168 color 0 fill 139;
text 'COM' 1064 136 color 0 'Clear Sans' 16;
terminals
Hin 1048 152 fixed;
p 1048 120 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
Ground1 1052 711.5
description '
4.8
1
Bond Graph\MR\Ground.emx
2020-7-23 09:30:51
';
type Submodel
ports
power in p [6,1];
signal out output [4,4];
end;
icon bg bottom
figures
line 1016 704 1032 720 color 0 fill 15132390;
line 1024 704 1040 720 color 0 fill 15132390;
line 1008 704 1024 720 color 0 fill 15132390;
line 1048 720 1032 704 color 0 fill 15132390;
line 1056 720 1040 704 color 0 fill 15132390;
line 1064 720 1048 704 color 0 fill 15132390;
line 1080 720 1064 704 color 0 fill 15132390;
line 1072 720 1056 704 color 0 fill 15132390;
line 1088 720 1072 704 color 0 fill 15132390;
line 1096 720 1080 704 color 0 fill 15132390;
line 1008 704 1096 704 color 0 fill 15132390 width 2;
line 1088 704 1096 712 color 0 fill 15132390;
line 1008 712 1016 720 color 0 fill 15132390;
terminals
p 1032 704 fixed;
output 1064 704 fixed;
end;
implementation bg
submodels
plug p 240 88;
plug output 240 120;
OneJunction2 192 88
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 192 88 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
Sf2 136 88
description '4.01False
Bond Graph\2D\Sf-2.emx
2007-9-25 12:7:5
';
type 'Sf-2'
ports
power out p [6,1];
restrictions
causality fixed in p;
end;
icon bg bottom
figures
text 'Sf' 136 88 color 0 18 bold;
end;
implementation eq
parameters
real flow[6,1] = 0;
variables
real effort [6];
equations
p.f = flow;
effort = p.e;
implementation_end;
Zero 144 120
description '4.01False
Signal\Sources\Zero.emx
2007-9-27 15:54:36
';
type Zero
ports
signal out output [4,4];
end;
icon bg bottom
figures
rectangle 128.1 104 159.9 136 color 0 fill 15132390;
text '0' 144 120 color 16711680 18 bold;
end;
implementation eq
equations
output = eye(4);implementation_end;
end;
connections
p => OneJunction2\p;
Sf2\p => OneJunction2\p;
Zero\output -> output;
end;
implementation_end;
Ground2 436 623.5
description '
4.8
1
Bond Graph\MR\Ground.emx
2020-7-23 09:30:51
';
type Submodel
ports
power in p [6,1];
signal out output [4,4];
end;
icon bg bottom
figures
line 400 616 416 632 color 0 fill 15132390;
line 408 616 424 632 color 0 fill 15132390;
line 392 616 408 632 color 0 fill 15132390;
line 432 632 416 616 color 0 fill 15132390;
line 440 632 424 616 color 0 fill 15132390;
line 448 632 432 616 color 0 fill 15132390;
line 464 632 448 616 color 0 fill 15132390;
line 456 632 440 616 color 0 fill 15132390;
line 472 632 456 616 color 0 fill 15132390;
line 480 632 464 616 color 0 fill 15132390;
line 392 616 480 616 color 0 fill 15132390 width 2;
line 472 616 480 624 color 0 fill 15132390;
line 392 624 400 632 color 0 fill 15132390;
terminals
p 416 616 fixed;
output 448 616 fixed;
end;
implementation bg
submodels
plug p 240 88;
plug output 240 120;
OneJunction2 192 88
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 192 88 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
Sf2 136 88
description '4.01False
Bond Graph\2D\Sf-2.emx
2007-9-25 12:7:5
';
type 'Sf-2'
ports
power out p [6,1];
restrictions
causality fixed in p;
end;
icon bg bottom
figures
text 'Sf' 136 88 color 0 18 bold;
end;
implementation eq
parameters
real flow[6,1] = 0;
variables
real effort [6];
equations
p.f = flow;
effort = p.e;
implementation_end;
Zero 144 120
description '4.01False
Signal\Sources\Zero.emx
2007-9-27 15:54:36
';
type Zero
ports
signal out output [4,4];
end;
icon bg bottom
figures
rectangle 128.1 104 159.9 136 color 0 fill 15132390;
text '0' 144 120 color 16711680 18 bold;
end;
implementation eq
equations
output = eye(4);implementation_end;
end;
connections
p => OneJunction2\p;
Sf2\p => OneJunction2\p;
Zero\output -> output;
end;
implementation_end;
inverse_kinematics 320 744
description '
4.8
SCARA\inverse_kinematics_v1.emx
1
False
2020-7-10 12:26:18
False
';
type 'Submodel-Equation'
ports
signal in input [2,1] {m} ;
signal out angle1 {rad} ;
signal out angle2 {rad} ;
signal out a {rad} ;
signal out b {rad} ;
signal out c {rad} ;
signal out phi {rad} ;
end;
implementation eq
parameters
real A_length = 0.065 {m}; // length of first arm
real B_length = 0.05 {m}; // length of second arm
real to_rad = 1 {rad};
variables
real x {m}, y {m};
real C_length {m}; // length to x and y.
equations
x = input[1];
y = input[2];
phi = atan2(y, x);
C_length = sqrt(x^2 + y^2);
a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length));
b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length));
c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length));
angle1 = b + phi;
angle2 = angle1 - pi * to_rad + c;
implementation_end;
JointA 432 536
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 400 512 464 560 color 0 fill 14745599;
text 'Joint' 432 536 color 0 'Clear Sans' 16;
terminals
Pin 416 560 fixed;
Hin 448 512 fixed;
Hout 448 560 fixed;
Pout 416 512 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointB 432 216
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 400 192 464 240 color 0 fill 14745599;
text 'Joint' 432 216 color 0 'Clear Sans' 16;
terminals
Pin 416 240 fixed;
Hin 448 192 fixed;
Hout 448 240 fixed;
Pout 416 192 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointC 944 616
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 920 584 968 648 color 0 fill 14745599;
text 'Joint' 944 616 color 0 'Clear Sans' 16;
terminals
Pin 920 632 fixed;
Hin 968 600 fixed;
Hout 920 600 fixed;
Pout 968 632 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointD 632 536
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 600 512 664 560 color 0 fill 14745599;
text 'Joint' 632 536 color 0 'Clear Sans' 16;
terminals
Pin 616 512 fixed;
Hin 648 560 fixed;
Hout 648 512 fixed;
Pout 616 560 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointE 632 216
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 600 192 664 240 color 0 fill 14745599;
text 'Joint' 632 216 color 0 'Clear Sans' 16;
terminals
Pin 616 192 fixed;
Hin 648 240 fixed;
Hout 648 192 fixed;
Pout 616 240 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointF 792 136
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 768 104 816 168 color 0 fill 14745599;
text 'Joint' 792 136 color 0 'Clear Sans' 16;
terminals
Pin 816 120 fixed;
Hin 768 152 fixed;
Hout 816 152 fixed;
Pout 768 120 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
Joint_dynA 320 536
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
signal in angle {rad} ;
end;
implementation bg
submodels
C 264 200
description '
4.2
1
False
Bond Graph\C.emx
2011-11-29 15:58:35
';
type C
ports
power in p;
signal out state;
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 264 200 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 468 216;
plug angle 224 80;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 312 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 400 192 400 240 color 0 width 2;
rectangle 396 192 408 240 color -1;
text '1' 405 210 color 8421504 8;
terminals
input 400 200 fixed;
output 400 216 fixed;
input_rot2 400 232 fixed;
input_pos3 400 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 312 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
stepper_model 360 80
description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
real I_phase = 3.4 {mH};
real R_phase = 2.9 {ohm};
real u_max = 6 {V};
real RotorInertia = 5.6e-6 {kg.m2};
real StepperMass = 0.29 {kg};
real angle_step = 1.8 {deg};
real n_phase = 2 {none};
real fluxLinkage = 0.0022 {Wb};
real detentTorque = 0.01 {N.m};
variables
real omega;
real p; // rotor division
initialequations
p = 2 * pi / (2 * n_phase * angle_step);
omega = 200;';
type Submodel
ports
signal in angle;
rotation out p;
end;
implementation bg
submodels
I 560 104
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 560 104 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I1 608 328
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 608 328 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I2 752 160
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 752 160 color 0 18 bold;
end;
implementation eq
parameters
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 656 160
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 656 272
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 512 160
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 512 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 200 216;
plug p 1472 216;
OneJunction1 840 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 840 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 584 160
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 584 272
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 272 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 752 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 752 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
phase_control 512 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal in angle;
signal out a;
signal out b;
end;
icon bg
figures
rectangle 472 200 552 232 color 0 fill 15132390;
text 'name' 512 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
variables
real global p;
boolean hidden eventa, eventb;
equations
a = u_max * (cos (p*angle));
eventa = event(a);
b = u_max * -(sin (p*angle));
eventb = event(b);
implementation_end;
R 608 104
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 608 104 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R1 560 328
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 560 328 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R2 824 264
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 824 264 color 0 18 bold;
end;
implementation eq
parameters
real r = 1.0e-3;
equations
p.e = r * p.f;
implementation_end;
RotorAngle 656 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal out output_b;
signal out output_a;
signal in omega {rad/s} ;
signal out output_d;
end;
icon bg
figures
rectangle 616 200 696 232 color 0 fill 15132390;
text 'name' 656 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global fluxLinkage;
real global detentTorque;
variables
real global p;
real angle {rad};
equations
angle = int(omega,-1.65);
output_a = -p * fluxLinkage * sin(p * angle);
output_b = p * fluxLinkage * sin(p * angle - pi / 2);
output_d = detentTorque * sin(2 * p * angle);
implementation_end;
Se 752 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
power out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 752 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
end;
connections
angle -> phase_control\angle;
I2\p <= OneJunction4\p;
MGY_a\p2 => OneJunction4\p;
MGY_b\p2 => OneJunction4\p;
MSe_b\p => OneJunction3\p;
OneJunction1\p => p;
OneJunction2\p <= MSe_a\p;
OneJunction2\p => I\p;
OneJunction2\p => MGY_a\p1;
OneJunction2\p => R\p;
OneJunction3\p => I1\p;
OneJunction3\p => MGY_b\p1;
OneJunction3\p => R1\p;
OneJunction4\flow -> RotorAngle\omega;
OneJunction4\p => OneJunction1\p;
OneJunction4\p => R2\p;
phase_control\a -> MSe_a\effort;
phase_control\b -> MSe_b\effort;
RotorAngle\output_a -> MGY_a\r;
RotorAngle\output_b -> MGY_b\r;
RotorAngle\output_d -> Se\effort;
Se\p => OneJunction4\p;
end;
implementation_end;
ZeroJunction1 360 200
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
rotation knot duplicatable none p [1];
signal knot out effort [1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 360 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
angle -> stepper_model\angle;
C\p <= OneJunction8\p;
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => R\p;
PowerMux\input <= ZeroJunction1\p;
PowerMux\output => output;
ZeroJunction1\p <= OneJunction8\p;
ZeroJunction1\p <= stepper_model\p;
end;
implementation_end;
Joint_dynB 336 216
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.01;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynC 944 696
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.01;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynD 528 536
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
signal in angle {rad} ;
end;
icon bg
figures
rectangle 488 520 568 552 color 0 fill 15132390;
text 'name' 528 536 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
C 264 200
description '
4.2
1
False
Bond Graph\C.emx
2011-11-29 15:58:35
';
type C
ports
power in p;
signal out state;
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 264 200 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 468 216;
plug angle 224 80;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 312 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 400 192 400 240 color 0 width 2;
rectangle 396 192 408 240 color -1;
text '1' 405 210 color 8421504 8;
terminals
input 400 200 fixed;
output 400 216 fixed;
input_rot2 400 232 fixed;
input_pos3 400 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 312 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
stepper_model 360 80
description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
real I_phase = 3.4 {mH};
real R_phase = 2.9 {ohm};
real u_max = 6 {V};
real RotorInertia = 5.6e-6 {kg.m2};
real StepperMass = 0.29 {kg};
real angle_step = 1.8 {deg};
real n_phase = 2 {none};
real fluxLinkage = 0.0022 {Wb};
real detentTorque = 0.01 {N.m};
variables
real omega;
real p; // rotor division
initialequations
p = 2 * pi / (2 * n_phase * angle_step);
omega = 200;';
type Submodel
ports
signal in angle;
rotation out p;
end;
implementation bg
submodels
I 560 104
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 560 104 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I1 608 328
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 608 328 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I2 752 160
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 752 160 color 0 18 bold;
end;
implementation eq
parameters
real i = 8e-5 {kg.m2};
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 656 160
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 656 272
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 512 160
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 512 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 200 216;
plug p 1472 216;
OneJunction1 840 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 840 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 584 160
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 584 272
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 272 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 752 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 752 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
phase_control 512 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal in angle;
signal out a;
signal out b;
end;
icon bg
figures
rectangle 472 200 552 232 color 0 fill 15132390;
text 'name' 512 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
variables
real global p;
boolean hidden eventa, eventb;
equations
a = u_max * (cos (p*angle));
eventa = event(a);
b = u_max * -(sin (p*angle));
eventb = event(b);
implementation_end;
R 608 104
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 608 104 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R1 560 328
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 560 328 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R2 824 264
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 824 264 color 0 18 bold;
end;
implementation eq
parameters
real r = 1.0e-3;
equations
p.e = r * p.f;
implementation_end;
RotorAngle 656 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal out output_b;
signal out output_a;
signal in omega {rad/s} ;
signal out output_d;
end;
icon bg
figures
rectangle 616 200 696 232 color 0 fill 15132390;
text 'name' 656 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global fluxLinkage;
real global detentTorque;
variables
real global p;
real angle {rad};
equations
angle = int(omega);
output_a = -p * fluxLinkage * sin(p * angle);
output_b = p * fluxLinkage * sin(p * angle - pi / 2);
output_d = detentTorque * sin(2 * p * angle);
implementation_end;
Se 752 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
power out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 752 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
end;
connections
angle -> phase_control\angle;
I2\p <= OneJunction4\p;
MGY_a\p2 => OneJunction4\p;
MGY_b\p2 => OneJunction4\p;
MSe_b\p => OneJunction3\p;
OneJunction1\p => p;
OneJunction2\p <= MSe_a\p;
OneJunction2\p => I\p;
OneJunction2\p => MGY_a\p1;
OneJunction2\p => R\p;
OneJunction3\p => I1\p;
OneJunction3\p => MGY_b\p1;
OneJunction3\p => R1\p;
OneJunction4\flow -> RotorAngle\omega;
OneJunction4\p => OneJunction1\p;
OneJunction4\p => R2\p;
phase_control\a -> MSe_a\effort;
phase_control\b -> MSe_b\effort;
RotorAngle\output_a -> MGY_a\r;
RotorAngle\output_b -> MGY_b\r;
RotorAngle\output_d -> Se\effort;
Se\p => OneJunction4\p;
end;
implementation_end;
ZeroJunction1 360 200
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
rotation knot duplicatable none p [1];
signal knot out effort [1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 360 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
angle -> stepper_model\angle;
C\p <= OneJunction8\p;
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => R\p;
PowerMux\input <= ZeroJunction1\p;
PowerMux\output => output;
ZeroJunction1\p <= OneJunction8\p;
ZeroJunction1\p <= stepper_model\p;
end;
implementation_end;
Joint_dynE 536 216
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.01;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynF 792 56
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
implementation bg
submodels
C 264 200
description '
4.2
1
False
Bond Graph\C.emx
2011-11-29 15:58:35
';
type C
ports
power in p;
signal out state;
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 264 200 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 296 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 296 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_z'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 296 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 296 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 1000;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C\p <= OneJunction8\p;
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Link1 704 136
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 672 112 736 160 color 0 fill 8454041;
text 'Link' 704 136 color 0 'Clear Sans' 16;
terminals
Hin 672 152 fixed;
Hout 736 152 fixed;
Pin 736 120 fixed;
Pout 672 120 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link10 872 136
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 840 112 904 160 color 0 fill 8454041;
text 'Link' 872 136 color 0 'Clear Sans' 16;
terminals
Hin 840 152 fixed;
Hout 904 152 fixed;
Pin 904 120 fixed;
Pout 840 120 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link2 544 136
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 512 112 576 160 color 0 fill 8454041;
text 'Link' 544 136 color 0 'Clear Sans' 16;
terminals
Hin 576 152 fixed;
Hout 512 152 fixed;
Pin 512 120 fixed;
Pout 576 120 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;-0.025;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link3 432 448
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 408 416 456 480 color 0 fill 8454041;
text 'Link' 432 448 color 0 'Clear Sans' 16;
terminals
Hin 448 416 fixed;
Hout 448 480 fixed;
Pin 416 480 fixed;
Pout 416 416 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link4 632 304
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 608 272 656 336 color 0 fill 8454041;
text 'Link' 632 304 color 0 'Clear Sans' 16;
terminals
Hin 648 336 fixed;
Hout 648 272 fixed;
Pin 616 272 fixed;
Pout 616 336 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link5 840 616
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 808 592 872 640 color 0 fill 8454041;
text 'Link' 840 616 color 0 'Clear Sans' 16;
terminals
Hin 872 600 fixed;
Hout 808 600 fixed;
Pin 808 632 fixed;
Pout 872 632 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link6 432 304
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 408 272 456 336 color 0 fill 8454041;
text 'Link' 432 304 color 0 'Clear Sans' 16;
terminals
Hin 448 272 fixed;
Hout 448 336 fixed;
Pin 416 336 fixed;
Pout 416 272 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link7 704 616
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 672 592 736 640 color 0 fill 8454041;
text 'Link' 704 616 color 0 'Clear Sans' 16;
terminals
Hin 736 600 fixed;
Hout 672 600 fixed;
Pin 672 632 fixed;
Pout 736 632 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link8 976 136
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 944 112 1008 160 color 0 fill 8454041;
text 'Link' 976 136 color 0 'Clear Sans' 16;
terminals
Hin 944 152 fixed;
Hout 1008 152 fixed;
Pin 1008 120 fixed;
Pout 944 120 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link9 632 448
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 608 416 656 480 color 0 fill 8454041;
text 'Link' 632 448 color 0 'Clear Sans' 16;
terminals
Hin 648 480 fixed;
Hout 648 416 fixed;
Pin 616 416 fixed;
Pout 616 480 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Negate1 320 672
description '4.01False
Signal\Block Diagram\Negate.emx
2007-9-26 12:14:11
';
type Negate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 304 656 336 688 color 0 fill 15132390;
text '-1' 320 672 color 16711680 16 bold;
end;
implementation eq
equations
output = - input;
implementation_end;
OneJunction1 760 632
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 760 632 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 416 392
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 416 392 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 616 120
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 616 120 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 616 392
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 616 392 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction5 416 584
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 416 584 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
rectanglepath 152 744
description '
4.8
setpoint\rectanglepath.emx
1
False
2020-7-10 12:30:38
False
';
type 'Submodel-Equation'
ports
signal out output [2,1];
end;
implementation eq
/*
This will generate coordinates for the box that has to be drawn
*/
parameters
real w = 0.07{m} ;
real h = 0.05 {m};
real t = 1 {s};
real origin[2] = [0.01,0.03]{m};
variables
real v {m/s};
real t_w {s};
real t_h {s};
real period {s};
initialequations
v = (2*w + 2*h)/t;
t_w = w / v;
t_h = h / v;
equations
period = floor(time / t) * t;
output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1];
output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2];
implementation_end;
Splitter1 792 600
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 788.8 596.8 795.2 603.2 color -1 fill 0;
ellipse 787.7 595.7 796.3 604.3 color -1;
terminals
input 792 600 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter2 448 360
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 444.8 356.8 451.2 363.2 color -1 fill 0;
ellipse 443.7 355.7 452.3 364.3 color -1;
terminals
input 448 360 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter3 648 360
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 644.8 356.8 651.2 363.2 color -1 fill 0;
ellipse 643.7 355.7 652.3 364.3 color -1;
terminals
input 648 360 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 648 152
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 644.8 148.8 651.2 155.2 color -1 fill 0;
ellipse 643.7 147.7 652.3 156.3 color -1;
terminals
input 648 152 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter5 448 152
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 444.8 148.8 451.2 155.2 color -1 fill 0;
ellipse 443.7 147.7 452.3 156.3 color -1;
terminals
input 448 152 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter6 896 600
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 892.8 596.8 899.2 603.2 color -1 fill 0;
ellipse 891.7 595.7 900.3 604.3 color -1;
terminals
input 896 600 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter7 648 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 644.8 492.8 651.2 499.2 color -1 fill 0;
ellipse 643.7 491.7 652.3 500.3 color -1;
terminals
input 648 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter8 448 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 444.8 492.8 451.2 499.2 color -1 fill 0;
ellipse 443.7 491.7 452.3 500.3 color -1;
terminals
input 448 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter9 920 152
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 916.8 148.8 923.2 155.2 color -1 fill 0;
ellipse 915.7 147.7 924.3 156.3 color -1;
terminals
input 920 152 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
stepper_control 320 608
description '
4.8
1
Motor\stepper_control.emx
2020-7-23 10:55:26
';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg bottom
figures
rectangle 264 592 376 624 color 0 fill 15132390;
text 'name' 320 608 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 20;
real minimum = -20;
equations
output = limit (input, minimum, maximum);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Splitter3 688 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
ellipse 683.7 331.7 692.3 340.3 color -1;
terminals
input 688 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 752 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
ellipse 747.7 331.7 756.3 340.3 color -1;
terminals
input 752 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Velocity_control 480 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'PD' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 12 {}; // Proportional gain
real tauD = 10 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = -1.65; // initial value
equations
output = int (input, initial);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 25;
real minimum = -25;
equations
output = limit (input, minimum, maximum);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
stepper_control1 528 744
description '
4.8
1
Motor\stepper_control.emx
2020-7-22 15:25:26
';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 80;
real minimum = -80;
equations
output = limit (input, minimum, maximum);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Splitter3 688 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
ellipse 683.7 331.7 692.3 340.3 color -1;
terminals
input 688 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 752 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
ellipse 747.7 331.7 756.3 340.3 color -1;
terminals
input 752 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Velocity_control 480 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'PD' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 12 {}; // Proportional gain
real tauD = 10 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 25;
real minimum = -25;
equations
output = limit (input, minimum, maximum);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
end;
connections
COM_body3\p => OneJunction4\p;
COM_body4\p => OneJunction3\p;
COM_body5\p => Link8\Pin;
Ground1\output -> JointC\Hin 1064 600;
Ground1\p <= JointC\Pout 1032 632;
inverse_kinematics\angle1 -> Negate1\input;
inverse_kinematics\angle2 -> stepper_control1\setpoint;
inverse_kinematics\input <- rectanglepath\output;
Joint_dynB\output => JointB\Pdiff;
Joint_dynC\output => JointC\Pdiff;
Joint_dynD\output => JointD\Pdiff;
Joint_dynE\output => JointE\Pdiff;
Joint_dynF\output => JointF\Pdiff;
JointA\Pdiff <= Joint_dynA\output;
JointA\Pin <= OneJunction5\p;
JointA\Pout => Link3\Pin;
JointB\Hin <- Splitter5\output;
JointB\Hout -> Link6\Hin;
JointB\Pin <= Link6\Pout;
JointB\Pout => Link2\Pin 416 120;
JointC\Hout -> Splitter6\input;
JointC\Pin <= Link5\Pout;
JointD\Hin <- Link7\Hout 648 600;
JointD\Hout -> Splitter7\input;
JointD\Pin <= Link9\Pout;
JointD\Pout => Link7\Pin 616 632;
JointE\Hout -> Splitter4\input;
JointE\Pout => Link4\Pin;
JointF\Hout -> Link10\Hin;
JointF\Pout => Link1\Pin;
Link1\Hout -> JointF\Hin;
Link10\Hout -> Splitter9\input;
Link10\Pout => JointF\Pin;
Link2\Pout => OneJunction3\p;
Link3\Hout -> Splitter8\input;
Link4\Hout -> JointE\Hin;
Link5\Hout -> Splitter1\input;
Link5\Pin <= OneJunction1\p;
Link6\Hout -> Splitter2\input;
Link6\Pin <= OneJunction2\p;
Link8\Hout -> COM_body5\Hin;
Link8\Pout => Link10\Pin;
Link9\Hout -> Splitter3\input;
Link9\Pin <= OneJunction4\p;
Negate1\output -> stepper_control\setpoint;
OneJunction1\p <= COM_body2\p;
OneJunction1\p <= Link7\Pout;
OneJunction2\p <= COM_body1\p;
OneJunction2\p <= Link3\Pout;
OneJunction3\p <= Link1\Pout;
OneJunction3\p => JointE\Pin;
OneJunction4\p <= Link4\Pout;
OneJunction5\p => Ground2\p;
Splitter1\output -> Body2\input;
Splitter1\output -> COM_body2\Hin;
Splitter1\output -> Link7\Hin;
Splitter2\output -> COM_body1\Hin;
Splitter2\output -> Link3\Hin;
Splitter3\output -> COM_body3\Hin;
Splitter3\output -> Link4\Hin;
Splitter4\output -> Body4\input;
Splitter4\output -> COM_body4\Hin;
Splitter4\output -> Link1\Hin;
Splitter4\output -> Link2\Hin;
Splitter5\input <- Link2\Hout;
Splitter6\output -> Link5\Hin;
Splitter7\output -> Body3\input;
Splitter7\output -> Link9\Hin;
Splitter8\output -> Body1\input;
Splitter8\output -> JointA\Hin;
Splitter9\output -> Body5\input;
Splitter9\output -> Link8\Hin;
stepper_control\output -> Joint_dynA\angle;
stepper_control1\output -> Joint_dynD\angle;
end;
implementation_end;
]]>
Experiment 1
4.8
COM_body1\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body2\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body3\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body4\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body5\InertialTensor\state_initial
6
1
0 0 0 0 0 0
JointA\Hmatrix\p_initial
3
1
0 0 0
JointB\Hmatrix\p_initial
3
1
0 0 0
JointC\Hmatrix\p_initial
3
1
0 0 0
JointD\Hmatrix\p_initial
3
1
0 0 0
JointE\Hmatrix\p_initial
3
1
0 0 0
JointF\Hmatrix\p_initial
3
1
0 0 0
Joint_dynA\C1\state_initial
3
1
0 0 0
Joint_dynA\C4\state_initial
2
1
0 0
Joint_dynA\C\state_initial
0
Joint_dynA\stepper_model\I1\state_initial
0
Joint_dynA\stepper_model\I2\state_initial
0
Joint_dynA\stepper_model\I\state_initial
0
Joint_dynB\C1\state_initial
3
1
0 0 0
Joint_dynB\C4\state_initial
2
1
0 0
Joint_dynC\C1\state_initial
3
1
0 0 0
Joint_dynC\C4\state_initial
2
1
0 0
Joint_dynD\C1\state_initial
3
1
0 0 0
Joint_dynD\C4\state_initial
2
1
0 0
Joint_dynD\C\state_initial
0
Joint_dynD\stepper_model\I1\state_initial
0
Joint_dynD\stepper_model\I2\state_initial
0
Joint_dynD\stepper_model\I\state_initial
0
Joint_dynD\stepper_model\RotorAngle\angle_initial
rad
0
Joint_dynE\C1\state_initial
3
1
0 0 0
Joint_dynE\C4\state_initial
2
1
0 0
Joint_dynF\C1\state_initial
3
1
0 0 0
Joint_dynF\C4\state_initial
2
1
0 0
Joint_dynF\C\state_initial
0
stepper_control1\Position_control\state_initial
0
stepper_control1\Velocity_control\state_initial
0
stepper_control\Position_control\state_initial
0
stepper_control\Velocity_control\state_initial
0
time
Body1\position[1]
Body1\position[2]
Body1\position[3]
Body1\R[1,3]
Body1\R[2,3]
Body1\R[3,3]
Body1\R[1,2]
Body1\R[2,2]
Body1\R[3,2]
Body1\dimension[1]
Body1\dimension[2]
Body1\dimension[3]
Body2\dimension[1]
Body2\dimension[2]
Body2\dimension[3]
Body2\position[1]
Body2\position[2]
Body2\position[3]
Body2\R[1,3]
Body2\R[2,3]
Body2\R[3,3]
Body2\R[1,2]
Body2\R[2,2]
Body2\R[3,2]
Body3\dimension[1]
Body3\dimension[2]
Body3\dimension[3]
Body3\position[1]
Body3\position[2]
Body3\position[3]
Body3\R[1,3]
Body3\R[2,3]
Body3\R[3,3]
Body3\R[1,2]
Body3\R[2,2]
Body3\R[3,2]
Body4\dimension[1]
Body4\dimension[2]
Body4\dimension[3]
Body4\R[1,3]
Body4\R[2,3]
Body4\R[3,3]
Body4\R[1,2]
Body4\R[2,2]
Body4\R[3,2]
Body4\position[1]
Body4\position[2]
Body4\position[3]
Body5\dimension[1]
Body5\dimension[2]
Body5\dimension[3]
Body5\position[1]
Body5\position[2]
Body5\position[3]
Body5\R[1,3]
Body5\R[2,3]
Body5\R[3,3]
Body5\R[1,2]
Body5\R[2,2]
Body5\R[3,2]
stepper_control\setpoint
Joint_dynA\stepper_model\angle
Joint_dynA\stepper_model\RotorAngle\angle
stepper_control1\setpoint
Joint_dynD\angle
Joint_dynD\stepper_model\RotorAngle\angle
GraphPlot
1
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
StepperA
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
0.0
5.823613498640715
true
3
-2.8
-0.8
true
2
-4.08637499341765
0.0
true
2
-4.08637499341765
0.0
true
2
3355111
1
3355111
0
true
1
1
1
true
true
time
true
stepper_control\setpoint
6076255
1
6076255
0
true
1
1
1
true
true
time
true
Joint_dynA\stepper_model\angle
12553035
1
12553035
0
true
1
1
1
true
true
time
true
Joint_dynA\stepper_model\RotorAngle\angle
true
0
16777215
D3DPlot
2
false
16777215
true
3D Animation
137
true
false
4294967295
Gradients\BlueWhite.png
true
1.0
1.0
1
1
1
true
Reference Frame
Bryant
false
false
false
false
false
false
1
1
1
false
Default Lights and Cameras
Bryant
false
false
false
false
false
false
false
Ambient
1
1
Direct3D
false
false
false
false
false
false
0
0.3
0.3
0.3
1
1
1
true
0.3
0.3
0.3
1
1
1
true
true
false
false
false
Parallel
-3
5
3
0.457495710997814
-0.762492851663023
-0.457495710997814
0.235379601434674
-0.392299335724456
0.889211827642101
Direct3D
false
false
false
false
false
false
3
0.5
0.5
0.5
1
1
1
true
1.0
0.0
0.0
0.5
0.5
0.5
1
1
1
true
0.5
0.5
0.5
1
1
1
true
false
true
true
false
Spot Light 1
-3
-5
1
0.50709255283711
0.845154254728517
-0.169030850945703
0.0869656553478673
0.144942758913112
0.985610760609162
Direct3D
false
false
false
false
false
false
2
0.5
0.5
0.5
1
1
1
true
1.0
0.05
0.05
1.0471975511965976
1.0471975511965976
0.0
0.5
0.5
0.5
1
1
1
true
0.5
0.5
0.5
1
1
1
true
false
true
true
false
Spot Light 2
2
-3
-1
-0.534522483824849
0.801783725737273
0.267261241912424
0.14824986333222
-0.22237479499833
0.963624111659432
Direct3D
false
false
false
false
false
false
2
1
1
1
1
1
1
true
1.0
0.05
0.05
1.5707963267948966
1.5707963267948966
0.0
1
1
1
1
1
1
true
0.5
0.5
0.5
1
1
1
true
false
true
true
false
Camera Looking at Origin
0.159539928254181
0.0210195694587388
0.0764390770931449
-0.966527083347675
-0.12682364469163
-0.223027263585795
-0.221131710235122
-0.0290159788919472
0.974812207400704
Direct3D
false
false
false
false
false
false
0.01
100.0
true
0.003926990816987242
45.0
-10.0
10.0
10.0
-10.0
true
-0.000627364166602552
3.08669776184333e-006
0.0394802856014185
true
1
true
true
true
false
Front(XY)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
false
Side(YZ)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
false
Top(XZ)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
1
1
1
false
Scenery
Bryant
false
false
false
false
false
false
Bottom
1.0
true
4
Body1\dimension[1]
0.005
Body1\dimension[2]
0.01
Body1\dimension[3]
0.065
true
0
0.501960784313725
0.501960784313725
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body1\position[1]
0.0
Body1\position[2]
-0.05
Body1\position[3]
0.0
Body1\R[1,3]
0.0
Body1\R[2,3]
0.0
Body1\R[3,3]
1.0
Body1\R[1,2]
0.0
Body1\R[2,2]
1.0
Body1\R[3,2]
0.0
Matrix
false
false
false
false
false
false
Bottom
1.0
true
4
Body2\dimension[1]
0.005
Body2\dimension[2]
0.025
Body2\dimension[3]
0.01
true
1
0.501960784313725
0
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body2\position[1]
0.0
Body2\position[2]
-0.0125
Body2\position[3]
0.0
Body2\R[1,3]
0.0
Body2\R[2,3]
0.0
Body2\R[3,3]
1.0
Body2\R[1,2]
0.0
Body2\R[2,2]
1.0
Body2\R[3,2]
0.0
Matrix
false
false
false
false
false
false
Bottom
1.0
true
4
Body3\dimension[1]
0.005
Body3\dimension[2]
0.01
Body3\dimension[3]
0.065
true
0.501960784313725
0.501960784313725
1
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body3\position[1]
0.0
Body3\position[2]
-0.025
Body3\position[3]
0.0
Body3\R[1,3]
0.0
Body3\R[2,3]
0.0
Body3\R[3,3]
1.0
Body3\R[1,2]
0.0
Body3\R[2,2]
1.0
Body3\R[3,2]
0.0
Matrix
false
false
false
false
false
false
Center
1.0
true
4
Body4\dimension[1]
0.005
Body4\dimension[2]
0.05
Body4\dimension[3]
0.01
true
0.501960784313725
0
0
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body4\position[1]
0.0
Body4\position[2]
-0.025
Body4\position[3]
0.065
Body4\R[1,3]
0.0
Body4\R[2,3]
0.0
Body4\R[3,3]
1.0
Body4\R[1,2]
0.0
Body4\R[2,2]
1.0
Body4\R[3,2]
0.0
Matrix
false
false
false
false
false
false
Center
1.0
true
4
Body5\dimension[1]
0.005
Body5\dimension[2]
0.025
Body5\dimension[3]
0.01
true
0.501960784313725
0
0
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body5\position[1]
0.0
Body5\position[2]
0.0125
Body5\position[3]
0.065
Body5\R[1,3]
0.0
Body5\R[2,3]
0.0
Body5\R[3,3]
1.0
Body5\R[1,2]
0.0
Body5\R[2,2]
1.0
Body5\R[3,2]
0.0
Matrix
false
false
false
false
false
false
GraphPlot
3
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
StepperD
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
0.0
5.823613498640715
true
3
-2.0
3.0
true
2
-0.944547877949926
0.0
true
2
-0.944547877949926
0.0
true
2
3355111
1
3355111
0
true
1
1
1
true
true
time
true
stepper_control1\setpoint
6076255
1
6076255
0
true
1
1
1
true
true
time
true
Joint_dynD\angle
12553035
1
12553035
0
true
1
1
1
true
true
time
true
Joint_dynD\stepper_model\RotorAngle\angle
true
0
16777215
1
true
Window 1
0
1
3
Base
2
true
Window 2
0
2
Base
0 0.0259259 1 0.968519
0.09375 0.134259 0.892708 0.89537
0.0
10.0
false
false
false
false
0.1
1.0e-6
1.0e-7
false
true
Euler
0.01
false
BackwardEuler
1.0e-5
1.0e-5
1.0e-5
1.0e-5
0.01
1.0
AdamsBashforth
0.01
false
RungeKutta2
0.01
false
RungeKutta4
0.01
false
RungeKutta8
false
0.001
false
1.0
1.0e-6
1.0e-6
0.9
0.33
6.0
0.0
false
100000
false
1000
RungeKuttaFehlberg
false
0.001
false
1.0
1.0e-6
1.0e-6
VodeAdams
false
0.001
false
1.0
1.0e-6
1.0e-6
true
true
BDFMethod
1.0e-5
1.0e-5
1.0e-5
1.0e-5
false
0.001
false
1.0
MeBDFiMethod
1.0e-5
1.0e-5
1.0e-5
1.0e-5
false
0.001
false
1.0
8
10
false
true
true
false
true
0
0.0
true
MultipleRun
true
UseEndValue
0.001
BroydonFletcherGoldfarbShanno
true
true
true
true
false
time
1.0