4.8
0
False
C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model-v2.emx
2020-7-23 16:01:17
';
type 'Mainmodel-v2'
end;
implementation bg
submodels
Body1 472 336
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.0048;0.009;0.065] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body2 360 560
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body3 104 312
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.0045;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 480 192
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.05;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body5 992 224
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
Body6 1104 224
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type 'Submodel-Equation'
ports
signal in input [4,4];
end;
implementation eq
parameters
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
COM_body1 624 352
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
real m = 0.00455 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 608 320 640 384 color 0 fill 139;
text 'COM' 624 352 color 0 'Clear Sans' 16;
terminals
Hin 608 336 fixed;
p 608 368 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body2 344 704
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real density = 1400 {kg/m3};
real dimension[3] = [0.005;0.025;0.01] {m};
variables
real I[3,1] {N.m.s};
real m {kg};
initialequations
m = dimension[1] * dimension[2] * dimension[3] * density;
I[1] = m/12 * ( dimension[2]^2 + dimension[3]^2);
I[2] = m/12 * ( dimension[1]^2 + dimension[3]^2);
I[3] = m/12 * ( dimension[1]^2 + dimension[2]^2);';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 312 688 376 720 color 0 fill 139;
text 'COM' 344 704 color 0 'Clear Sans' 16;
terminals
Hin 360 688 fixed;
p 328 688 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 624 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 624 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
variables
real global I[3];
real global m;
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
variables
real global m;
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 256
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 256 color 0 18 bold;
end;
implementation eq
variables
real global I[3];
real global m;
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body3 272 328
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
real m = 0.00455 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 256 296 288 360 color 0 fill 139;
text 'COM' 272 328 color 0 'Clear Sans' 16;
terminals
Hin 256 312 fixed;
p 256 344 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body4 712 48
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real density = 1400 {kg/m3};
real dimension[3] = [0.005;0.075;0.01] {m};
variables
real I[3,1] {N.m.s};
real m {kg};
initialequations
m = dimension[1] * dimension[2] * dimension[3] * density;
I[1] = m/12 * ( dimension[2]^2 + dimension[3]^2);
I[2] = m/12 * ( dimension[1]^2 + dimension[3]^2);
I[3] = m/12 * ( dimension[1]^2 + dimension[2]^2);';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 680 32 744 64 color 0 fill 139;
text 'COM' 712 48 color 0 'Clear Sans' 16;
terminals
Hin 728 64 fixed;
p 696 64 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 624 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 624 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
variables
real global I[3];
real global m;
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
variables
real global m;
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 256
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 256 color 0 18 bold;
end;
implementation eq
variables
real global I[3];
real global m;
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
COM_body5 1184 128
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [0.018;0.159;0.159] {mN.m.s};
real m = 0.015 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 1168 96 1200 160 color 0 fill 139;
text 'COM' 1184 128 color 0 'Clear Sans' 16;
terminals
Hin 1168 144 fixed;
p 1168 112 fixed;
end;
implementation bg
submodels
AdHi0 544 400
description '4.01False2007-9-25 12:3:3True';
type MTF
ports
power in p1 [6,1];
power out p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg left
figures
text 'MTF' 544 400 color 0 18 bold;
end;
implementation eq
variables
real onlyRotH[4,4];
code
//Only rotations with respect to the inertial system matter!
onlyRotH = H;
onlyRotH[1,4] = 0;
onlyRotH[2,4] = 0;
onlyRotH[3,4] = 0;
p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
p1.f = Adjoint(onlyRotH) * p2.f;
implementation_end;
EJS 616 336
description '4.01False2007-10-31 11:43:6True';
type MGY
ports
power in p1 [6,1];
end;
icon bg top
figures
text 'MGY' 616 336 color 0 18 bold;
end;
implementation eq
//EJS / Gyroscopic effects
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Q[6,6];
real QI[6,6];
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
Q = transpose(adjoint(p1.f));
QI = Q*II;
p1.e = QI*p1.f;implementation_end;
Gravity 624 400
description '4.01False2007-9-25 12:3:26True';
type Se
ports
power out p [6,1];
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'Se' 624 400 color 0 18 bold;
end;
implementation eq
parameters
real global m;
variables
real effort[6];
equations
effort = [0;0;0;0;0;-g_n*m];
p.e = effort;
implementation_end;
InertialTensor 544 272
description '4.01False
Bond Graph\3D\I-3.emx
2007-9-25 12:12:14
';
type 'I-3'
ports
power in p [6,1];
signal out state [6,1];
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 544 272 color 0 18 bold;
end;
implementation eq
parameters
real global I[3];
real global m;
variables
real II[6,6]; //Inertial tensor
real Ia[6];
initialequations
Ia[1:3] = I;
Ia[4:6] = m;
II = diag(Ia);
equations
state = int(p.e); //state = generalized momentum
p.f = inverse(II)*state;
implementation_end;
plug Hin 433.4 496;
plug Hout 691.2 496;
plug p 439.4 336;
Splitter1 544 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
ellipse 539.7 491.7 548.3 500.3 color -1;
terminals
input 544 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Ta0j 544 336
description '
4.0
1
False
Bond Graph\OneJunction.emx
2007-9-27 9:51:18
True
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg bottom
figures
text '1' 544 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
ZeroJunction1 504 336
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 504 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
AdHi0\p2 => Ta0j\p;
Gravity\p => AdHi0\p1;
Hin -> Splitter1\input;
Splitter1\output -> AdHi0\H;
Splitter1\output -> Hout;
Ta0j\p => EJS\p1;
Ta0j\p => InertialTensor\p;
ZeroJunction1\p => p;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
Ground1 620 687.5
description '
4.8
1
Bond Graph\MR\Ground.emx
2020-7-23 09:30:51
';
type Submodel
ports
power in p [6,1];
signal out output [4,4];
end;
icon bg bottom
figures
line 584 680 600 696 color 0 fill 15132390;
line 592 680 608 696 color 0 fill 15132390;
line 576 680 592 696 color 0 fill 15132390;
line 616 696 600 680 color 0 fill 15132390;
line 624 696 608 680 color 0 fill 15132390;
line 632 696 616 680 color 0 fill 15132390;
line 648 696 632 680 color 0 fill 15132390;
line 640 696 624 680 color 0 fill 15132390;
line 656 696 640 680 color 0 fill 15132390;
line 664 696 648 680 color 0 fill 15132390;
line 576 680 664 680 color 0 fill 15132390 width 2;
line 656 680 664 688 color 0 fill 15132390;
line 576 688 584 696 color 0 fill 15132390;
terminals
p 600 680 fixed;
output 632 680 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 712 768
description '
4.8
SCARA\inverse_kinematics_v1.emx
1
False
2020-7-10 12:26:18
False
';
type 'Submodel-Equation'
ports
signal in input [2,1] {m} ;
signal out angle1 {rad} ;
signal out angle2 {rad} ;
signal out a {rad} ;
signal out b {rad} ;
signal out c {rad} ;
signal out phi {rad} ;
end;
implementation eq
parameters
real A_length = 0.065 {m}; // length of first arm
real B_length = 0.05 {m}; // length of second arm
real to_rad = 1 {rad};
variables
real x {m}, y {m};
real C_length {m}; // length to x and y.
equations
x = input[1];
y = input[2];
phi = atan2(y, x);
C_length = sqrt(x^2 + y^2);
a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length));
b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length));
c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length));
angle1 = b + phi;
angle2 = angle1 - pi * to_rad + c;
implementation_end;
JointA 560 512
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 528 488 592 536 color 0 fill 14745599;
text 'Joint' 560 512 color 0 'Clear Sans' 16;
terminals
Pin 544 536 fixed;
Hin 576 488 fixed;
Hout 576 536 fixed;
Pout 544 488 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointB 560 192
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 528 168 592 216 color 0 fill 14745599;
text 'Joint' 560 192 color 0 'Clear Sans' 16;
terminals
Pin 544 216 fixed;
Hin 576 168 fixed;
Hout 576 216 fixed;
Pout 544 168 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointC 512 632
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 488 600 536 664 color 0 fill 14745599;
text 'Joint' 512 632 color 0 'Clear Sans' 16;
terminals
Pin 488 648 fixed;
Hin 536 616 fixed;
Hout 488 616 fixed;
Pout 536 648 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointD 200 488
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 168 464 232 512 color 0 fill 14745599;
text 'Joint' 200 488 color 0 'Clear Sans' 16;
terminals
Pin 184 464 fixed;
Hin 216 512 fixed;
Hout 216 464 fixed;
Pout 184 512 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointE 200 168
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 168 144 232 192 color 0 fill 14745599;
text 'Joint' 200 168 color 0 'Clear Sans' 16;
terminals
Pin 184 144 fixed;
Hin 216 192 fixed;
Hout 216 144 fixed;
Pout 184 192 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
JointF 864 128
description '
4.8
1
Bond Graph\MR\joint-v3.emx
2020-7-21 12:08:53
';
type 'Submodel-v3'
ports
power in Pin [6,1];
power in Pdiff [6,1];
signal in Hin [4,4];
signal out Hout [4,4];
signal out Hdiff [4,4];
power out Pout [6,1];
end;
icon bg bottom
figures
rectangle 840 96 888 160 color 0 fill 14745599;
text 'Joint' 864 128 color 0 'Clear Sans' 16;
terminals
Pin 888 112 fixed;
Hin 840 144 fixed;
Hout 888 144 fixed;
Pout 840 112 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
Joint_dynA 712 512
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
signal in angle {rad} ;
end;
implementation bg
submodels
C 264 200
description '
4.2
1
False
Bond Graph\C.emx
2011-11-29 15:58:35
';
type C
ports
power in p;
signal out state;
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 264 200 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 468 216;
plug angle 224 80;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 312 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 400 192 400 240 color 0 width 2;
rectangle 396 192 408 240 color -1;
text '1' 405 210 color 8421504 8;
terminals
input 400 200 fixed;
output 400 216 fixed;
input_rot2 400 232 fixed;
input_pos3 400 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 312 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 100;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
stepper_model 360 80
description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
real I_phase = 3.4 {mH};
real R_phase = 2.9 {ohm};
real u_max = 3.4 {V};
real RotorInertia = 5.6e-6 {kg.m2};
real StepperMass = 0.29 {kg};
real angle_step = 1.8 {deg};
real n_phase = 2 {none};
real fluxLinkage = 0.0022 {Wb};
real detentTorque = 0.01 {N.m};
variables
real omega;
real p; // rotor division
initialequations
p = 2 * pi / (2 * n_phase * angle_step);
omega = 200;';
type Submodel
ports
signal in angle;
rotation out p;
end;
implementation bg
submodels
I 560 104
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 560 104 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I1 608 328
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 608 328 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I2 752 160
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 752 160 color 0 18 bold;
end;
implementation eq
parameters
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 656 160
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 656 272
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 512 160
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 512 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 200 216;
plug p 1472 216;
OneJunction1 840 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 840 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 584 160
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 584 272
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 272 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 752 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 752 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
phase_control 512 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal in angle;
signal out a;
signal out b;
end;
icon bg
figures
rectangle 472 200 552 232 color 0 fill 15132390;
text 'name' 512 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
variables
real global p;
boolean hidden eventa, eventb;
equations
a = u_max * (cos (p*angle));
eventa = event(a);
b = u_max * -(sin (p*angle));
eventb = event(b);
implementation_end;
R 608 104
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 608 104 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R1 560 328
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 560 328 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R2 824 264
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 824 264 color 0 18 bold;
end;
implementation eq
parameters
real r = 1.0e-3;
equations
p.e = r * p.f;
implementation_end;
RotorAngle 656 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal out output_b;
signal out output_a;
signal in omega {rad/s} ;
signal out output_d;
end;
icon bg
figures
rectangle 616 200 696 232 color 0 fill 15132390;
text 'name' 656 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global fluxLinkage;
real global detentTorque;
variables
real global p;
real angle {rad};
equations
angle = int(omega,1.570796);
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;
OneJunction8\p => ZeroJunction1\p;
PowerMux\input <= ZeroJunction1\p;
PowerMux\output => output;
ZeroJunction1\p <= stepper_model\p;
end;
implementation_end;
Joint_dynB 672 192
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
icon bg
figures
rectangle 632 176 712 208 color 0 fill 15132390;
text 'name' 672 192 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.0001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynC 512 712
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
signal in angle {rad} ;
end;
icon bg
figures
rectangle 472 696 552 728 color 0 fill 15132390;
text 'name' 512 712 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
C 264 200
description '
4.2
1
False
Bond Graph\C.emx
2011-11-29 15:58:35
';
type C
ports
power in p;
signal out state;
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 264 200 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 468 216;
plug angle 224 80;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 312 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 400 192 400 240 color 0 width 2;
rectangle 396 192 408 240 color -1;
text '1' 405 210 color 8421504 8;
terminals
input 400 200 fixed;
output 400 216 fixed;
input_rot2 400 232 fixed;
input_pos3 400 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 312 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 100;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
stepper_model 360 80
description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
real I_phase = 3.4 {mH};
real R_phase = 2.9 {ohm};
real u_max = 3.4 {V};
real RotorInertia = 5.6e-6 {kg.m2};
real StepperMass = 0.29 {kg};
real angle_step = 1.8 {deg};
real n_phase = 2 {none};
real fluxLinkage = 0.0022 {Wb};
real detentTorque = 0.01 {N.m};
variables
real omega;
real p; // rotor division
initialequations
p = 2 * pi / (2 * n_phase * angle_step);
omega = 200;';
type Submodel
ports
signal in angle;
rotation out p;
end;
implementation bg
submodels
I 560 104
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 560 104 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I1 608 328
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 608 328 color 0 18 bold;
end;
implementation eq
parameters
real global I_phase;
equations
state = int(p.e);
p.f = state / I_phase;
implementation_end;
I2 752 160
description '
4.2
1
False
Bond Graph\I.emx
2011-11-29 15:55:55
';
type I
ports
power in p;
signal out state;
restrictions
causality preferred in p;
end;
icon bg bottom
figures
text 'I' 752 160 color 0 18 bold;
end;
implementation eq
parameters
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 656 160
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 656 272
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 512 160
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 512 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 200 216;
plug p 1472 216;
OneJunction1 840 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 840 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 584 160
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 584 272
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 272 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 752 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 752 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
phase_control 512 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal in angle;
signal out a;
signal out b;
end;
icon bg
figures
rectangle 472 200 552 232 color 0 fill 15132390;
text 'name' 512 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
variables
real global p;
boolean hidden eventa, eventb;
equations
a = u_max * (cos (p*angle));
eventa = event(a);
b = u_max * -(sin (p*angle));
eventb = event(b);
implementation_end;
R 608 104
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 608 104 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R1 560 328
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 560 328 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R2 824 264
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg bottom
figures
text 'R' 824 264 color 0 18 bold;
end;
implementation eq
parameters
real r = 1.0e-3;
equations
p.e = r * p.f;
implementation_end;
RotorAngle 656 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal out output_b;
signal out output_a;
signal in omega {rad/s} ;
signal out output_d;
end;
icon bg
figures
rectangle 616 200 696 232 color 0 fill 15132390;
text 'name' 656 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global fluxLinkage;
real global detentTorque;
variables
real global p;
real angle {rad};
equations
angle = int(omega);
output_a = -p * fluxLinkage * sin(p * angle);
output_b = p * fluxLinkage * sin(p * angle - pi / 2);
output_d = detentTorque * sin(2 * p * angle);
implementation_end;
Se 752 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
power out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 752 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
end;
connections
angle -> phase_control\angle;
I2\p <= OneJunction4\p;
MGY_a\p2 => OneJunction4\p;
MGY_b\p2 => OneJunction4\p;
MSe_b\p => OneJunction3\p;
OneJunction1\p => p;
OneJunction2\p <= MSe_a\p;
OneJunction2\p => I\p;
OneJunction2\p => MGY_a\p1;
OneJunction2\p => R\p;
OneJunction3\p => I1\p;
OneJunction3\p => MGY_b\p1;
OneJunction3\p => R1\p;
OneJunction4\flow -> RotorAngle\omega;
OneJunction4\p => OneJunction1\p;
OneJunction4\p => R2\p;
phase_control\a -> MSe_a\effort;
phase_control\b -> MSe_b\effort;
RotorAngle\output_a -> MGY_a\r;
RotorAngle\output_b -> MGY_b\r;
RotorAngle\output_d -> Se\effort;
Se\p => OneJunction4\p;
end;
implementation_end;
ZeroJunction1 360 200
description '
4.2
1
False
Bond Graph\ZeroJunction.emx
2011-11-29 16:45:16
';
knot ZeroJunction
ports
rotation knot duplicatable none p [1];
signal knot out effort [1];
restrictions
causality constraint one_in p;
end;
icon bg
figures
text '0' 360 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
angle -> stepper_model\angle;
C\p <= OneJunction8\p;
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => R\p;
OneJunction8\p => ZeroJunction1\p;
PowerMux\output => output;
stepper_model\p => ZeroJunction1\p;
ZeroJunction1\p => PowerMux\input;
end;
implementation_end;
Joint_dynD 88 488
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.0001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynE 88 168
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
icon bg
figures
rectangle 48 152 128 184 color 0 fill 15132390;
text 'name' 88 168 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_x'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.0001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Joint_dynF 864 48
description '
4.8
1
';
type Submodel
ports
power out output [6,1];
end;
icon bg
figures
rectangle 824 32 904 64 color 0 fill 15132390;
text 'name' 864 48 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
2007-9-25 12:12:8
';
type 'C-3'
ports
power in p [3,1];
signal out state [3,1];
restrictions
causality preferred out p;
end;
icon bg top
figures
text 'C' 191.8 216.2 color 0 18 bold;
end;
implementation eq
parameters
real c[3,3] = [1, 0.0, 0.0; 0.0, 1, 0.0; 0.0, 0.0, 1] {uN/m};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
C4 191.8 232.2
description '4.01False
Bond Graph\2D\C-2.emx
2007-9-25 12:7:27
';
type 'C-2'
ports
power in p [2,1];
signal out state [2,1];
restrictions
causality preferred out p;
end;
icon bg bottom
figures
text 'C' 191.8 232.2 color 0 18 bold;
end;
implementation eq
parameters
real c[2,2] = [1, 0.0; 0.0, 1] {uN.m/rad};
equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
plug output 396 216;
OneJunction5 239.8 232.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [2,1];
signal knot out flow [2,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 232.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 239.8 216.2
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [3,1];
signal knot out flow [3,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 239.8 216.2 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 288 200
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 330 216
specifications active 'rot_z'
specification 'rot_x'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-20 14:35:23
1
False
True
';
type 'PowerMux-Rotation'
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[1] = input.e;
output.e[2:3] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[1] = input.f;
output.f[2:3] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_y'
description '
4.1
Bond Graph\PowerMux.emx
2011-3-4 15:12:50
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 242 274 290 274 color 0 width 2;
rectangle 242 266 290 278 color -1;
text '1' 260 269 color 8421504 8;
terminals
input 250 274 fixed;
output 266 274 fixed;
input_rot2 282 274 fixed;
input_pos3 266 274 fixed;
end;
implementation eq
equations
output.e[1] = input_rot2.e[1];
output.e[2] = input.e;
output.e[3] = input_rot2.e[2];
output.e[4:6] = input_pos3.e;
output.f[1] = input_rot2.f[1];
output.f[2] = input.f;
output.f[3] = input_rot2.f[2];
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
2020-7-21 12:05:13
1
False
True
';
type PowerMux
ports
power in input;
power out output [6,1];
power in input_rot2 [2,1];
power in input_pos3 [3,1];
restrictions
causality constraint not_equal input output;
causality constraint not_equal input_rot2 output;
causality constraint not_equal input_pos3 output;
end;
icon bg bottom
figures
line 328 192 328 240 color 0 width 2;
rectangle 324 192 336 240 color -1;
text '1' 333 210 color 8421504 8;
terminals
input 328 200 fixed;
output 328 216 fixed;
input_rot2 328 232 fixed;
input_pos3 328 216 fixed;
end;
implementation eq
equations
output.e[3] = input.e;
output.e[1:2] = input_rot2.e;
output.e[4:6] = input_pos3.e;
output.f[3] = input.f;
output.f[1:2] = input_rot2.f;
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
R 288 152
description '
4.2
1
False
Bond Graph\R.emx
2011-11-29 16:35:37
';
type R
ports
power in p;
end;
icon bg top
figures
text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
real r = 0.0001;
equations
p.e = r * p.f;
implementation_end;
R4 239.8 288.2
description '4.01False
Bond Graph\2D\R-2.emx
2007-9-25 12:6:54
';
type 'R-2'
ports
power in p [2,1];
end;
icon bg bottom
figures
text 'R' 239.8 288.2 color 0 18 bold;
end;
implementation eq
parameters
real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
equations
p.e = r * p.f;
implementation_end;
R5 239.8 168.2
description '4.01False
Bond Graph\3D\R-3.emx
2007-9-25 12:11:54
';
type 'R-3'
ports
power in p [3,1];
end;
icon bg top
figures
text 'R' 239.8 168.2 color 0 18 bold;
end;
implementation eq
parameters
real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
equations
p.e = r * p.f;
implementation_end;
end;
connections
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
OneJunction5\p => R4\p;
OneJunction7\p => PowerMux\input_pos3;
OneJunction7\p => R5\p;
OneJunction8\p => PowerMux\input;
PowerMux\output => output;
R\p <= OneJunction8\p;
end;
implementation_end;
Link1 632 128
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 600 104 664 152 color 0 fill 8454041;
text 'Link' 632 128 color 0 'Clear Sans' 16;
terminals
Hin 600 144 fixed;
Hout 664 144 fixed;
Pin 664 112 fixed;
Pout 600 112 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link10 944 128
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 912 104 976 152 color 0 fill 8454041;
text 'Link' 944 128 color 0 'Clear Sans' 16;
terminals
Hin 912 144 fixed;
Hout 976 144 fixed;
Pin 976 112 fixed;
Pout 912 112 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link11 784 128
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 752 104 816 152 color 0 fill 8454041;
text 'Link' 784 128 color 0 'Clear Sans' 16;
terminals
Hin 752 144 fixed;
Hout 816 144 fixed;
Pin 816 112 fixed;
Pout 752 112 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link2 384 128
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 352 104 416 152 color 0 fill 8454041;
text 'Link' 384 128 color 0 'Clear Sans' 16;
terminals
Hin 352 144 fixed;
Hout 416 144 fixed;
Pin 416 112 fixed;
Pout 352 112 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link3 560 424
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 536 392 584 456 color 0 fill 8454041;
text 'Link' 560 424 color 0 'Clear Sans' 16;
terminals
Hin 576 392 fixed;
Hout 576 456 fixed;
Pin 544 456 fixed;
Pout 544 392 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link4 200 256
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 176 224 224 288 color 0 fill 8454041;
text 'Link' 200 256 color 0 'Clear Sans' 16;
terminals
Hin 216 288 fixed;
Hout 216 224 fixed;
Pin 184 224 fixed;
Pout 184 288 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link5 408 632
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 376 608 440 656 color 0 fill 8454041;
text 'Link' 408 632 color 0 'Clear Sans' 16;
terminals
Hin 440 616 fixed;
Hout 376 616 fixed;
Pin 376 648 fixed;
Pout 440 648 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link6 560 280
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 536 248 584 312 color 0 fill 8454041;
text 'Link' 560 280 color 0 'Clear Sans' 16;
terminals
Hin 576 248 fixed;
Hout 576 312 fixed;
Pin 544 312 fixed;
Pout 544 248 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link7 272 632
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 240 608 304 656 color 0 fill 8454041;
text 'Link' 272 632 color 0 'Clear Sans' 16;
terminals
Hin 304 616 fixed;
Hout 240 616 fixed;
Pin 240 648 fixed;
Pout 304 648 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link8 1048 128
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 1016 104 1080 152 color 0 fill 8454041;
text 'Link' 1048 128 color 0 'Clear Sans' 16;
terminals
Hin 1016 144 fixed;
Hout 1080 144 fixed;
Pin 1080 112 fixed;
Pout 1016 112 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link9 200 400
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-21 11:14:41
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 176 368 224 432 color 0 fill 8454041;
text 'Link' 200 400 color 0 'Clear Sans' 16;
terminals
Hin 216 432 fixed;
Hout 216 368 fixed;
Pin 184 368 fixed;
Pout 184 432 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
real R[3,3];
real omega[3];
initialequations
omega = offset[1:3];
R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
Hab = homogeneous(R,offset[4:6]);
AdHab = Adjoint(Hab);
equations
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Negate2 608 768
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 592 752 624 784 color 0 fill 15132390;
text '-1' 608 768 color 16711680 16 bold;
end;
implementation eq
equations
output = - input;
implementation_end;
OneJunction1 328 648
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 328 648 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 544 368
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 544 368 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 544 112
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 544 112 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 184 344
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 184 344 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction5 600 648
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 600 648 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction6 696 112
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
power knot duplicatable none p [6,1];
signal knot out flow [6,1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 696 112 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
rectanglepath 856 768
description '
4.8
setpoint\rectanglepath.emx
1
False
2020-7-10 12:30:38
False
';
type 'Submodel-Equation'
ports
signal out output [2,1];
end;
icon bg
figures
rectangle 800 752 912 784 color 0 fill 15132390;
text 'name' 856 768 color 0 'Clear Sans' 16;
end;
implementation eq
/*
This will generate coordinates for the box that has to be drawn
*/
parameters
real w = 0.07 {m} ;
real h = 0.05 {m};
real t = 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};
boolean y;
initialequations
v = (2*w + 2*h)/t;
t_w = w / v;
t_h = h / v;
code
y = frequencyevent (t,0);
period = t - (time - floor(time / t) * t);
if period < t_w or time < t then
output = origin;
else
if period < t_w + t_h then
output = origin + [w;0];
else
if period < 2 * t_w + t_h then
output = origin + [w;h];
else
output = origin + [0;h];
end;
end;
end;
//output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1];
//output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2];
implementation_end;
Splitter1 360 616
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 356.8 612.8 363.2 619.2 color -1 fill 0;
ellipse 355.7 611.7 364.3 620.3 color -1;
terminals
input 360 616 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter10 1104 144
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 1100.8 140.8 1107.2 147.2 color -1 fill 0;
ellipse 1099.7 139.7 1108.3 148.3 color -1;
terminals
input 1104 144 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter11 480 144
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 476.8 140.8 483.2 147.2 color -1 fill 0;
ellipse 475.7 139.7 484.3 148.3 color -1;
terminals
input 480 144 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter2 576 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 572.8 332.8 579.2 339.2 color -1 fill 0;
ellipse 571.7 331.7 580.3 340.3 color -1;
terminals
input 576 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter3 216 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 212.8 308.8 219.2 315.2 color -1 fill 0;
ellipse 211.7 307.7 220.3 316.3 color -1;
terminals
input 216 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 576 144
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 572.8 140.8 579.2 147.2 color -1 fill 0;
ellipse 571.7 139.7 580.3 148.3 color -1;
terminals
input 576 144 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter6 728 144
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 724.8 140.8 731.2 147.2 color -1 fill 0;
ellipse 723.7 139.7 732.3 148.3 color -1;
terminals
input 728 144 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter8 576 472
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 572.8 468.8 579.2 475.2 color -1 fill 0;
ellipse 571.7 467.7 580.3 476.3 color -1;
terminals
input 576 472 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter9 992 144
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 988.8 140.8 995.2 147.2 color -1 fill 0;
ellipse 987.7 139.7 996.3 148.3 color -1;
terminals
input 992 144 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
stepper_control 712 592
specifications active 'P_only'
specification 'default'
description '4.81Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx2020-7-23 13:09:57parameters
real max_acceleration = 250 {rad/s2};
real max_velocity = 25 {rad/s};
real initial_velocity = 0 {rad/s};
real initial_angle = -1.570796 {rad};';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg bottom
figures
rectangle 648 576 760 608 color 0 fill 15132390;
text 'name' 704 592 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_velocity; // initial value
equations
output = int (input, initial_velocity);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_acceleration {rad/s2};
equations
output = limit (input, -max_acceleration, max_acceleration);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Splitter3 688 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
ellipse 683.7 331.7 692.3 340.3 color -1;
terminals
input 688 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 752 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
ellipse 747.7 331.7 756.3 340.3 color -1;
terminals
input 752 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Velocity_control 480 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'PD' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 12 {}; // Proportional gain
real tauD = 10 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_angle; // initial value
equations
output = int (input, initial_angle);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_velocity {rad/s};
equations
output = limit (input, -max_velocity, max_velocity);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
specification_end;
specification 'P_only'
description '4.81Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx2020-7-23 13:09:57parameters
real max_acceleration = 350 {rad/s2};
real max_velocity = 25 {rad/s};
real initial_velocity = 0 {rad/s};
real initial_angle = 1.570796 {rad};';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg bottom
figures
rectangle 656 576 768 608 color 0 fill 15132390;
text 'name' 712 592 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_velocity; // initial value
equations
output = int (input, initial_velocity);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_acceleration {rad/s2};
equations
output = limit (input, -max_acceleration, max_acceleration);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\P.emx
2008-1-17 10:48:8
';
type P
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'P' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 26.0 {}; // Proportional gain
equations
output = kp * error;
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\P.emx
2008-1-17 10:48:8
';
type P
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'P' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 66.0 {}; // Proportional gain
equations
output = kp * error;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_angle; // initial value
equations
output = int (input, initial_angle);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_velocity {rad/s};
equations
output = limit (input, -max_velocity, max_velocity);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
specification_end;
end;
stepper_control1 512 768
specifications active 'P_only'
specification 'default'
description '4.81Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx2020-7-23 13:09:57parameters
real max_acceleration = 250 {rad/s2};
real max_velocity = 25 {rad/s};
real initial_velocity = 0 {rad/s};
real initial_angle = -1.570796 {rad};';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg bottom
figures
rectangle 648 576 760 608 color 0 fill 15132390;
text 'name' 704 592 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_velocity; // initial value
equations
output = int (input, initial_velocity);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_acceleration {rad/s2};
equations
output = limit (input, -max_acceleration, max_acceleration);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Splitter3 688 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
ellipse 683.7 331.7 692.3 340.3 color -1;
terminals
input 688 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter4 752 336
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [1];
signal knot in input [1];
end;
icon bg ellipse
figures
ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
ellipse 747.7 331.7 756.3 340.3 color -1;
terminals
input 752 336 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Velocity_control 480 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'PD' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 12 {}; // Proportional gain
real tauD = 10 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_angle; // initial value
equations
output = int (input, initial_angle);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_velocity {rad/s};
equations
output = limit (input, -max_velocity, max_velocity);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
specification_end;
specification 'P_only'
description '4.81Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx2020-7-23 13:09:57parameters
real max_acceleration = 350 {rad/s2};
real max_velocity = 25 {rad/s};
real initial_velocity = 0 {rad/s};
real initial_angle = 0 {rad};';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg
figures
rectangle 456 752 568 784 color 0 fill 15132390;
text 'name' 512 768 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_velocity; // initial value
equations
output = int (input, initial_velocity);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_acceleration {rad/s2};
equations
output = limit (input, -max_acceleration, max_acceleration);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\P.emx
2008-1-17 10:48:8
';
type P
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'P' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 31.0 {}; // Proportional gain
equations
output = kp * error;
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\P.emx
2008-1-17 10:48:8
';
type P
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 464 320 496 352 color 0 fill 15132390;
text 'P' 480.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 69.0 {}; // Proportional gain
equations
output = kp * error;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_angle; // initial value
equations
output = int (input, initial_angle);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_velocity {rad/s};
equations
output = limit (input, -max_velocity, max_velocity);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
specification_end;
end;
Zero 816 592
description '4.01False
Signal\Sources\Zero.emx
2007-9-27 15:54:36
';
type Zero
ports
signal out output;
end;
icon bg bottom
figures
rectangle 800.1 576 831.9 608 color 0 fill 15132390;
text '0' 816 592 color 16711680 18 bold;
end;
implementation eq
equations
output = 0;implementation_end;
end;
connections
Body1\input <- Splitter2\output;
Body3\input <- Splitter3\output;
COM_body3\p => OneJunction4\p;
COM_body4\p => OneJunction6\p;
COM_body5\p => Link8\Pin;
Ground1\output -> JointC\Hin 632 616;
Ground1\p <= OneJunction5\p;
inverse_kinematics\angle1 -> stepper_control\setpoint;
inverse_kinematics\angle2 -> Negate2\input;
inverse_kinematics\input <- rectanglepath\output;
Joint_dynB\output => JointB\Pdiff;
Joint_dynC\output => JointC\Pdiff;
Joint_dynD\output => JointD\Pdiff;
Joint_dynE\output => JointE\Pdiff;
Joint_dynF\output => JointF\Pdiff;
JointA\Pdiff <= Joint_dynA\output;
JointA\Pout => Link3\Pin;
JointB\Hin <- Splitter4\output;
JointB\Hout -> Link6\Hin;
JointB\Pin <= Link6\Pout;
JointB\Pout => OneJunction3\p;
JointC\Hout -> Link5\Hin;
JointC\Pin <= Link5\Pout;
JointD\Hin <- Link7\Hout 216 616;
JointD\Hout -> Link9\Hin;
JointD\Pin <= Link9\Pout;
JointD\Pout => Link7\Pin 184 648;
JointE\Pout => Link4\Pin;
JointF\Hout -> Link10\Hin;
JointF\Pout => Link11\Pin;
Link1\Hout -> Splitter6\input;
Link10\Hout -> Splitter9\input;
Link10\Pout => JointF\Pin;
Link11\Hout -> JointF\Hin;
Link11\Pout => OneJunction6\p;
Link2\Hin <- JointE\Hout;
Link2\Hout -> Splitter11\input;
Link2\Pin <= OneJunction3\p;
Link2\Pout => JointE\Pin 184 112;
Link3\Hout -> Splitter8\input;
Link4\Hout -> JointE\Hin;
Link5\Hout -> Splitter1\input;
Link5\Pin <= OneJunction1\p;
Link6\Hout -> Splitter2\input;
Link6\Pin <= OneJunction2\p;
Link8\Hout -> Splitter10\input;
Link8\Pout => Link10\Pin;
Link9\Hout -> Splitter3\input;
Link9\Pin <= OneJunction4\p;
Negate2\output -> stepper_control1\setpoint;
OneJunction1\p <= COM_body2\p;
OneJunction1\p <= Link7\Pout;
OneJunction2\p <= COM_body1\p;
OneJunction2\p <= Link3\Pout;
OneJunction3\p <= Link1\Pout;
OneJunction4\p <= Link4\Pout;
OneJunction5\p <= JointC\Pout;
OneJunction5\p => JointA\Pin;
OneJunction6\p => Link1\Pin;
Splitter1\output -> Body2\input;
Splitter1\output -> COM_body2\Hin;
Splitter1\output -> Link7\Hin;
Splitter10\output -> Body6\input;
Splitter10\output -> COM_body5\Hin;
Splitter11\output -> Body4\input;
Splitter11\output -> Splitter4\input;
Splitter2\output -> COM_body1\Hin;
Splitter2\output -> Link3\Hin;
Splitter3\output -> COM_body3\Hin;
Splitter3\output -> Link4\Hin;
Splitter4\output -> Link1\Hin;
Splitter6\output -> COM_body4\Hin;
Splitter6\output -> Link11\Hin;
Splitter8\output -> JointA\Hin;
Splitter9\output -> Body5\input;
Splitter9\output -> Link8\Hin;
stepper_control\output -> Joint_dynA\angle;
stepper_control1\output -> Joint_dynC\angle;
end;
implementation_end;
]]>
Experiment 1
4.8
COM_body1\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body2\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body3\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body4\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM_body5\InertialTensor\state_initial
6
1
0 0 0 0 0 0
JointA\Hmatrix\p_initial
3
1
0 0 0
JointB\Hmatrix\p_initial
3
1
0 0 0
JointC\Hmatrix\p_initial
3
1
0 0 0
JointD\Hmatrix\p_initial
3
1
0 0 0
JointE\Hmatrix\p_initial
3
1
0 0 0
JointF\Hmatrix\p_initial
3
1
0 0 0
Joint_dynA\C1\state_initial
3
1
0 0 0
Joint_dynA\C4\state_initial
2
1
0 0
Joint_dynA\C\state_initial
0
Joint_dynA\stepper_model\I1\state_initial
0
Joint_dynA\stepper_model\I2\state_initial
0
Joint_dynA\stepper_model\I\state_initial
0
Joint_dynB\C1\state_initial
3
1
0 0 0
Joint_dynB\C4\state_initial
2
1
0 0
Joint_dynC\C1\state_initial
3
1
0 0 0
Joint_dynC\C4\state_initial
2
1
0 0
Joint_dynC\C\state_initial
0
Joint_dynC\stepper_model\I1\state_initial
0
Joint_dynC\stepper_model\I2\state_initial
0
Joint_dynC\stepper_model\I\state_initial
0
Joint_dynC\stepper_model\RotorAngle\angle_initial
rad
0
Joint_dynD\C1\state_initial
3
1
0 0 0
Joint_dynD\C4\state_initial
2
1
0 0
Joint_dynE\C1\state_initial
3
1
0 0 0
Joint_dynE\C4\state_initial
2
1
0 0
Joint_dynF\C1\state_initial
3
1
0 0 0
Joint_dynF\C4\state_initial
2
1
0 0
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]
Joint_dynA\stepper_model\RotorAngle\angle
Joint_dynC\stepper_model\RotorAngle\angle
Body6\position[3]
Body6\position[2]
rectanglepath\output[2]
rectanglepath\output[1]
stepper_control\Acceleration_int\input
stepper_control\Velocity_int\output
stepper_control\Velocity_int\input
stepper_control1\Acceleration_int\input
stepper_control1\Velocity_int\output
stepper_control1\Velocity_int\input
Body6\R[1,3]
Body6\R[2,3]
Body6\R[3,3]
Body6\R[1,2]
Body6\R[2,2]
Body6\R[3,2]
Body6\position[1]
stepper_control\setpoint
Joint_dynA\stepper_model\angle
stepper_control1\setpoint
Joint_dynC\angle
GraphPlot
1
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
Stepper Motor A
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
6.0
true
3
0.6000000000000002
2.6000000000000005
true
2
-2.6
-0.6
true
2
-2.6
-0.6
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.12119013062409288
0.8741610738255033
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.211790609540361
-0.107655952853072
0.123737714793038
-0.840897145443893
0.426188883453037
-0.333549136418257
-0.297518598807634
0.150790284066671
0.942732715882203
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
Cylinder
Bryant
false
false
false
false
false
false
Center
1.0
true
4
Body1\dimension[1]
0.0048
Body1\dimension[2]
0.009
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.017071802542194314
Body1\position[3]
0.0265923779880002
Body1\R[1,3]
0.0
Body1\R[2,3]
-0.5021736062379976
Body1\R[3,3]
0.8647668293811487
Body1\R[1,2]
0.0
Body1\R[2,2]
0.8647668293811487
Body1\R[3,2]
0.5021736062379976
Matrix
false
false
false
false
false
false
Center
1.0
true
4
Body2\dimension[1]
0.005
Body2\dimension[2]
0.025
Body2\dimension[3]
0.01
true
1
0.501960784313725
0
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
Body2\position[1]
0.0
Body2\position[2]
-0.010639024121723569
Body2\position[3]
0.006594217889494994
Body2\R[1,3]
0.0
Body2\R[2,3]
0.5249456675421719
Body2\R[3,3]
0.8511357389563098
Body2\R[1,2]
0.0
Body2\R[2,2]
0.8511357389563098
Body2\R[3,2]
-0.5249456675421719
Matrix
false
false
false
false
false
false
Center
1.0
true
4
Body3\dimension[1]
0.0045
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.03682020445746276
Body3\position[3]
0.041384334395577975
Body3\R[1,3]
0.0
Body3\R[2,3]
-0.48276125099189626
Body3\R[3,3]
0.875752005159417
Body3\R[1,2]
0.0
Body3\R[2,2]
0.875752005159417
Body3\R[3,2]
0.48276125099189626
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.033109209191929785
Body4\position[3]
0.0542093131266403
Body4\R[1,3]
0.0
Body4\R[2,3]
0.6245890404745712
Body4\R[3,3]
0.7809536033075554
Body4\R[1,2]
0.0
Body4\R[2,2]
0.7809536033075554
Body4\R[3,2]
-0.6245890404745712
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.004186627780447375
Body5\position[3]
0.0310775428306494
Body5\R[1,3]
0.0
Body5\R[2,3]
0.6245890426846639
Body5\R[3,3]
0.7809536015399732
Body5\R[1,2]
0.0
Body5\R[2,2]
0.7809536015399732
Body5\R[3,2]
-0.6245890426846639
Matrix
false
false
false
false
false
false
1
1
1
false
Reference Frame
Body6\position[1]
0.0
Body6\position[2]
0.0054542326865783565
Body6\position[3]
0.02336700049128123
Body6\R[1,3]
0.0
Body6\R[2,3]
0.6245890426846639
Body6\R[3,3]
0.7809536015399732
Body6\R[1,2]
0.0
Body6\R[2,2]
0.7809536015399732
Body6\R[3,2]
-0.6245890426846639
Matrix
false
false
false
false
false
false
16
0.0073
0.0073
0.135
true
true
true
true
false
true
1
1
1
true
1
1
1
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Cylinder
1.5707963267949
Bryant
false
false
false
false
false
false
GraphPlot
3
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
Stepper Motor D
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
6.0
true
3
-1.0
1.0
true
2
-1.0
1.0
true
2
-1.0
1.0
true
2
3355111
1
3355111
0
true
1
1
1
true
true
time
true
stepper_control1\setpoint
6076255
1
6076255
0
true
1
1
1
true
true
time
true
Joint_dynC\angle
12553035
1
12553035
0
true
1
1
1
true
true
time
true
Joint_dynC\stepper_model\RotorAngle\angle
true
0.11683599419448476
0.8741610738255033
0
16777215
GraphPlot
4
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
Plot
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
-0.041708787744804604
0.08638068231201962
true
3
-0.06
0.14
true
2
-0.06
0.14
true
2
-0.06
0.14
true
2
-0.06
0.14
true
2
-0.06
0.14
true
2
-0.06
0.14
true
2
-0.06
0.14
true
2
3355111
1
3355111
0
true
1
1
1
true
true
Body1\position[2]
true
Body1\position[3]
6076255
1
6076255
0
true
1
1
1
true
true
Body2\position[2]
true
Body2\position[3]
12553035
1
12553035
0
true
1
1
1
true
true
Body3\position[2]
true
Body3\position[3]
15086320
1
15086320
0
true
1
1
1
true
true
Body4\position[2]
true
Body4\position[3]
15790150
1
15790150
0
true
1
1
1
true
true
Body5\position[2]
true
Body5\position[3]
1696255
1
1696255
0
true
1
1
1
true
true
Body6\position[2]
true
Body6\position[3]
4089775
1
4089775
0
true
1
1
1
true
true
rectanglepath\output[1]
true
rectanglepath\output[2]
true
0
16777215
GraphPlot
5
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
Stepper Control A
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
6.0
true
3
-500.0
500.0
true
1
0.0
0.730288609349958
true
1
0.0
0.730288609349958
true
1
6076255
1
6076255
0
true
1
1
1
true
true
time
true
stepper_control\Acceleration_int\input
12553035
1
12553035
0
true
1
1
1
true
true
time
true
stepper_control\Velocity_int\output
15086320
1
15086320
0
true
1
1
1
true
true
time
true
stepper_control\Velocity_int\input
true
0.07602339181286549
0.877104377104377
0
16777215
GraphPlot
6
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
Stepper Control D
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
6.0
true
3
-500.0
500.0
true
1
0.0
39.669708688195
true
1
0.0
39.669708688195
true
1
3355111
1
3355111
0
true
1
1
1
true
true
time
true
stepper_control1\Acceleration_int\input
6076255
1
6076255
0
true
1
1
1
true
true
time
true
stepper_control1\Velocity_int\output
12553035
1
12553035
0
true
1
1
1
true
true
time
true
stepper_control1\Velocity_int\input
true
0.07602339181286549
0.877104377104377
0
16777215
1
true
Window 1
0
1
3
5
6
Base
2
true
Window 2
0
2
Base
3
true
Window 3
0
4
Base
0 0.0259259 1 1
0.075 0.0861111 0.917708 0.938889
0 0.0259259 1 1
0.0
6.0
false
false
false
false
0.1
1.0e-6
1.0e-7
false
true
Euler
0.01
false
BackwardEuler
1.0e-5
1.0e-5
1.0e-5
1.0e-5
0.01
1.0
AdamsBashforth
0.01
false
RungeKutta2
0.01
false
RungeKutta4
0.01
false
RungeKutta8
false
0.0
false
0.0
1.0e-6
1.0e-6
0.9
0.33
6.0
0.0
false
100000
false
1000
RungeKuttaFehlberg
false
0.0
false
0.0
1.0e-6
1.0e-6
VodeAdams
false
0.0
false
0.0
1.0e-6
1.0e-6
true
true
BDFMethod
1.0e-5
1.0e-5
1.0e-5
1.0e-5
false
0.0
false
0.0
MeBDFiMethod
1.0e-6
1.0e-6
1.0e-6
1.0e-6
false
0.0
false
0.0
8
10
false
true
true
false
true
0
0.0
false
Optimization
true
Joint_dynC\stepper_model\angle
stepper_control1\setpoint
UseIntegralAbsolute
0.001
DavidsonFletcherPowell
stepper_control1\Position_control\kp
13.0
39.0
Linear
Uniform
26.0
1.0
1.0
26.0
stepper_control1\Velocity_control\kp
33.0
99.0
Linear
Uniform
66.0
1.0
1.0
66.0
true
true
true
true
false