4.8
0
False
C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\05_stepper\stepper.emx
2020-7-23 10:09:09
True
parameters
real A = 0.05 {m};
real B = 0.05 {m};
variables
real J0_1_BF1[2];
real J1_2_BF1[2];
real J1_2_BF2[2];
real EE1_BF2[2];
initialequations
J0_1_BF1 = [A/2;0];
J1_2_BF1 = [-A/2;0];
J1_2_BF2 = [B/2;0];
EE1_BF2 = [-B/2;0];
';
type Mainmodel
end;
implementation bg
submodels
C 528 216
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' 528 216 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.0001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
C1 712 232
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 bottom
figures
text 'C' 712 232 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;
C2 376 256
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 bottom
figures
text 'C' 376 256 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;
C3 376 208
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' 376 208 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;
C4 712 216
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 top
figures
text 'C' 712 216 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;
C5 104 216
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' 104 216 color 0 18 bold;
end;
implementation eq
parameters
real c = 0.0001;
equations
state = int(p.f);
p.e = state / c;
implementation_end;
COM 448 192
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 416 176 480 208 color 0 fill 139;
text 'COM' 448 192 color 0 'Clear Sans' 16;
terminals
Hin 464 176 fixed;
p 432 176 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;
COM1 792 184
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [7.583333333333335e-7; 3.645833333333334e-8; 7.364583333333335e-7] {N.m.s};
real m = 0.0035 {kg};';
type Submodel
ports
signal in Hin [4,4];
signal out Hout [4,4];
power out p [6,1];
end;
icon bg bottom
figures
rectangle 760 168 824 200 color 0 fill 139;
text 'COM' 792 184 color 0 'Clear Sans' 16;
terminals
Hin 808 168 fixed;
p 776 168 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;
COM2 976 168
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 944 152 1008 184 color 0 fill 139;
text 'COM' 976 168 color 0 'Clear Sans' 16;
terminals
Hin 992 152 fixed;
p 960 152 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 424 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 480 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' 480 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;
Ground 144 104
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 108 96.5 124 112.5 color 0 fill 15132390;
line 116 96.5 132 112.5 color 0 fill 15132390;
line 100 96.5 116 112.5 color 0 fill 15132390;
line 140 112.5 124 96.5 color 0 fill 15132390;
line 148 112.5 132 96.5 color 0 fill 15132390;
line 156 112.5 140 96.5 color 0 fill 15132390;
line 172 112.5 156 96.5 color 0 fill 15132390;
line 164 112.5 148 96.5 color 0 fill 15132390;
line 180 112.5 164 96.5 color 0 fill 15132390;
line 188 112.5 172 96.5 color 0 fill 15132390;
line 100 96.5 188 96.5 color 0 fill 15132390 width 2;
line 180 96.5 188 104.5 color 0 fill 15132390;
line 100 104.5 108 112.5 color 0 fill 15132390;
terminals
p 124 96.5 fixed;
output 156 96.5 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_kinematics1 344 536
description '
4.8
SCARA\inverse_kinematics_v1.emx
1
False
2020-7-10 12:26:18
False
';
type 'Submodel-Equation'
ports
signal in input [2,1] {m} ;
signal out angle1 {rad} ;
signal out angle2 {rad} ;
signal out a {rad} ;
signal out b {rad} ;
signal out c {rad} ;
signal out phi {rad} ;
signal out abs_angle2;
end;
implementation eq
parameters
real A_length = 0.065 {m}; // length of first arm
real B_length = 0.05 {m}; // length of second arm
real to_rad = 1 {rad};
variables
real x {m}, y {m};
real C_length {m}; // length to x and y.
equations
x = input[1];
y = input[2];
phi = atan2(y, x);
C_length = sqrt(x^2 + y^2);
a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length));
b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length));
c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length));
angle1 = b + phi;
abs_angle2 = angle1 - pi * to_rad + c;
angle2 = c - pi * to_rad;
implementation_end;
Joint 264 104
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 240 72 288 136 color 0 fill 14745599;
text 'Joint' 264 104 color 0 'Clear Sans' 16;
terminals
Pin 288 88 fixed;
Hin 240 120 fixed;
Hout 288 120 fixed;
Pout 240 88 fixed;
end;
implementation bg
submodels
AdHji 424 424
description '
4.0
1
False
Bond Graph\MTF.emx
2007-9-25 12:3:3
True
';
type MTF
ports
power out p1 [6,1];
power in p2 [6,1];
signal in H [4,4];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg bottom
figures
text 'MTF' 424 424 color 0 18 bold;
end;
implementation eq
equations
p2.e = transpose(Adjoint(H)) * p1.e;
p1.f = Adjoint(H) * p2.f;implementation_end;
FlowSensor2 184 311.9
description '
4.2
1
False
Bond Graph\FlowSensor.emx
2011-11-29 15:50:53
';
knot FlowSensor
ports
power knot in p1 [6,1];
power knot out p2 [6,1];
signal knot out flow [6,1];
restrictions
causality constraint not_equal p1 p2;
end;
icon bg ellipse
figures
ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
text 'f' 184 311.2 color 0;
end;
implementation eq
equations
p2.f = p1.f;
p1.e = p2.e;
flow = p1.f;
implementation_end;
Hmatrix 256 312
description '4.0Template\Submodel-Equation.emx1False2007-11-1 22:32:1False';
type 'Submodel-Equation'
ports
signal in flow [6,1];
signal out H [4,4];
end;
icon bg
figures
rectangle 224 296 288 328 color 0 fill 15132390;
text 'name' 256 312 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real init[4] = [1;0;0;0];
variables
real q[4]; //quaternions
real W[3,4]; //Quaternion Rates Matrix
real R[3,3]; //Rotation Matrix
real p[3]; //Position Vector
real dq[4];
real Wb[3,4];
equations
dq = transpose(Wb) * flow[1:3] ./ 2;
q = int(dq,init);
p = int(flow[4:6]);
W = [-q[2], q[1], -q[4], q[3];
-q[3], q[4], q[1], -q[2];
-q[4], -q[3], q[2], q[1]];
Wb = [ -q[2], q[1], q[4], -q[3];
-q[3], -q[4], q[1], q[2];
-q[4], q[3], -q[2], q[1]];
R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
H = homogeneous(R,p);
implementation_end;
MatrixMul 320 576
description '
4.0
1
False
Signal\Block Diagram\Gain.emx
2007-9-26 12:15:12
True
';
type Gain
ports
signal in input1 [4,4];
signal out output [4,4];
signal in input2 [4,4];
end;
icon bg bottom
figures
rectangle 304.1 560 335.9 592 color 0 fill 15132390;
text 'X' 320 576 color 16711680 16 bold;
end;
implementation eq
equations
output = input2*input1; implementation_end;
plug Pin 492.1 424;
plug Pdiff 184 225;
plug Hin 130.8 576;
plug Hout 478.4 576;
plug Hdiff 320 222;
plug Pout 134.7 424;
Splitter2 320 312
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
knot Splitter
ports
signal knot duplicatable out output [4,4];
signal knot in input [4,4];
end;
icon bg ellipse
figures
ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
ellipse 315.7 307.7 324.3 316.3 color -1;
terminals
input 320 312 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Wbai 184 424
description '
4.0
1
False
Bond Graph\ZeroJunction.emx
2007-9-27 9:51:43
True
';
knot ZeroJunction
ports
power knot duplicatable none p [6,1];
signal knot out effort [6,1];
restrictions
causality constraint one_in p;
end;
icon bg bottom
figures
text '0' 184 424 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
end;
connections
FlowSensor2\flow -> Hmatrix\flow;
FlowSensor2\p2 => Wbai\p;
Hin -> MatrixMul\input2;
Hmatrix\H -> Splitter2\input;
MatrixMul\output -> Hout;
Pdiff => FlowSensor2\p1;
Pin => AdHji\p2;
Splitter2\output -> AdHji\H 424 312;
Splitter2\output -> Hdiff;
Splitter2\output -> MatrixMul\input1;
Wbai\p <= AdHji\p1;
Wbai\p => Pout;
end;
implementation_end;
Joint1 608 104
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 584 72 632 136 color 0 fill 14745599;
text 'Joint' 608 104 color 0 'Clear Sans' 16;
terminals
Pin 632 88 fixed;
Hin 584 120 fixed;
Hout 632 120 fixed;
Pout 584 88 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;
Link 360 104
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 328 80 392 128 color 0 fill 8454041;
text 'Link' 360 104 color 0 'Clear Sans' 16;
terminals
Hin 328 120 fixed;
Hout 392 120 fixed;
Pin 392 88 fixed;
Pout 328 88 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0325;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;
Link1 528 104
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 496 80 560 128 color 0 fill 8454041;
text 'Link' 528 104 color 0 'Clear Sans' 16;
terminals
Hin 496 120 fixed;
Hout 560 120 fixed;
Pin 560 88 fixed;
Pout 496 88 fixed;
end;
implementation eq
parameters
real offset[6]= [0;0;0;0;0.0325;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','RotationMatrixFromEulXYZr',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 696 104
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-19 15:22:34
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 664 80 728 128 color 0 fill 8454041;
text 'Link' 696 104 color 0 'Clear Sans' 16;
terminals
Hin 664 120 fixed;
Hout 728 120 fixed;
Pin 728 88 fixed;
Pout 664 88 fixed;
end;
implementation eq
parameters
real offset[3]= [0;0.025;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
equations
Hab = homogeneous(eye(3),offset);
AdHab = Adjoint(eye(3),offset);
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Link3 872 104
description '
4.8
Bond Graph\MR\link-v3.emx
1
False
2020-7-19 15:22:34
False
';
type 'Submodel-Equation'
ports
signal in Hin [4,4];
signal out Hout [4,4];
power in Pin [6,1];
power out Pout [6,1];
restrictions
causality constraint not_equal Pin Pout;
end;
icon bg bottom
figures
rectangle 840 80 904 128 color 0 fill 8454041;
text 'Link' 872 104 color 0 'Clear Sans' 16;
terminals
Hin 840 120 fixed;
Hout 904 120 fixed;
Pin 904 88 fixed;
Pout 840 88 fixed;
end;
implementation eq
parameters
real offset[3]= [0;0.025;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
equations
Hab = homogeneous(eye(3),offset);
AdHab = Adjoint(eye(3),offset);
Hout = Hin * Hab;
Pout.e = transpose(AdHab) * Pin.e;
Pin.f = AdHab * Pout.f;
implementation_end;
Negate1 344 456
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 328 440 360 472 color 0 fill 15132390;
text '-1' 344 456 color 16711680 16 bold;
end;
implementation eq
equations
output = - input;
implementation_end;
Negate2 592 536
description '4.01False
Signal\Block Diagram\Negate.emx
2007-9-26 12:14:11
';
type Negate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 576 520 608 552 color 0 fill 15132390;
text '-1' 592 536 color 16711680 16 bold;
end;
implementation eq
equations
output = - input;
implementation_end;
new_joint1 448 264
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
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
new_joint2 792 240
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
variables
real position[3];
real rotation[3];
real R[3,3];
equations
// start typing here
position = input[1:3,4];
rotation = [input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
new_joint3 1088 168
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
variables
real position[3];
real rotation[3];
real R[3,3];
equations
position = input[1:3,4];
rotation = [input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
OneJunction1 432 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' 432 88 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction11 592 336
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' 592 336 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction12 960 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' 960 88 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction14 184 328
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' 184 328 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction17 528 264
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' 528 264 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 776 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' 776 88 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 664 216
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' 664 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction5 329 224
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' 329 224 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction6 329 240
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' 329 240 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction7 664 232
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' 664 232 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction8 104 264
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' 104 264 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
PowerMux 264 198
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 240 200 288 200 color 0 width 2;
rectangle 240 192 288 204 color -1;
text '1' 258 195 color 8421504 8;
terminals
input 248 200 fixed;
output 264 200 fixed;
input_rot2 280 200 fixed;
input_pos3 264 200 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;
end;
icon bg bottom
figures
line 808 216 808 264 color 0 width 2;
rectangle 804 216 816 264 color -1;
text '1' 813 234 color 8421504 8;
terminals
input 808 224 fixed;
output 808 240 fixed;
input_rot2 808 256 fixed;
input_pos3 808 240 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.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;
end;
icon bg bottom
figures
line 808 216 808 264 color 0 width 2;
rectangle 804 216 816 264 color -1;
text '1' 813 234 color 8421504 8;
terminals
input 808 224 fixed;
output 808 240 fixed;
input_rot2 808 256 fixed;
input_pos3 808 240 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;
PowerMux1 608 190
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 584 192 632 192 color 0 width 2;
rectangle 584 184 632 196 color -1;
text '1' 602 187 color 8421504 8;
terminals
input 592 192 fixed;
output 608 192 fixed;
input_rot2 624 192 fixed;
input_pos3 608 192 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;
end;
icon bg bottom
figures
line 808 216 808 264 color 0 width 2;
rectangle 804 216 816 264 color -1;
text '1' 813 234 color 8421504 8;
terminals
input 808 224 fixed;
output 808 240 fixed;
input_rot2 808 256 fixed;
input_pos3 808 240 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.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;
end;
icon bg bottom
figures
line 808 216 808 264 color 0 width 2;
rectangle 804 216 816 264 color -1;
text '1' 813 234 color 8421504 8;
terminals
input 808 224 fixed;
output 808 240 fixed;
input_rot2 808 256 fixed;
input_pos3 808 240 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;
R1 528 312
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' 528 312 color 0 18 bold;
end;
implementation eq
parameters
real r = 25;
equations
p.e = r * p.f;
implementation_end;
R2 329 168
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' 329 168 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;
R3 329 296
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 bottom
figures
text 'R' 329 296 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;
R4 664 160
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 top
figures
text 'R' 664 160 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 664 280
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 bottom
figures
text 'R' 664 280 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;
R6 104 312
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' 104 312 color 0 18 bold;
end;
implementation eq
parameters
real r = 25;
equations
p.e = r * p.f;
implementation_end;
rectanglepath 176 536
description '
4.8
setpoint\rectanglepath.emx
1
False
2020-7-10 12:30:38
False
';
type 'Submodel-Equation'
ports
signal out output [2,1];
end;
implementation eq
/*
This will generate coordinates for the box that has to be drawn
*/
parameters
real w = 0.07{m} ;
real h = 0.05 {m};
real t = 0.5 {s};
real origin[2] = [0.01,0.03]{m};
variables
real v {m/s};
real t_w {s};
real t_h {s};
real period {s};
initialequations
v = (2*w + 2*h)/t;
t_w = w / v;
t_h = h / v;
equations
period = floor(time / t) * t;
output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1];
output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2];
implementation_end;
rectanglepath1 344 640
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 288 624 400 656 color 0 fill 15132390;
text 'name' 344 640 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 < 4 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 464 120
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 460.8 116.8 467.2 123.2 color -1 fill 0;
ellipse 459.7 115.7 468.3 124.3 color -1;
terminals
input 464 120 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
Splitter2 808 120
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 804.8 116.8 811.2 123.2 color -1 fill 0;
ellipse 803.7 115.7 812.3 124.3 color -1;
terminals
input 808 120 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
stepper_control 184 456
description '
4.8
1
Motor\stepper_control.emx
2020-7-22 15:25:26
';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 300;
real minimum = -300;
equations
output = limit (input, minimum, maximum);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
real maximum = 25;
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
real maximum = 100;
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 25;
real minimum = -25;
equations
output = limit (input, minimum, maximum);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
stepper_control1 592 456
description '
4.8
1
Motor\stepper_control.emx
2020-7-22 15:25:26
';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
implementation bg
submodels
Acceleration_int 648 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Acceleration_limit 568 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 300;
real minimum = -300;
equations
output = limit (input, minimum, maximum);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 232 328 248 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
PlusMinus2 432 336
description '4.01False
Signal\Block Diagram\PlusMinus.emx
2007-9-27 10:15:13
';
knot PlusMinus
ports
signal knot duplicatable in plus [1];
signal knot duplicatable in minus [1];
signal knot out output [1];
end;
icon bg ellipse
figures
ellipse 424 328 440 344 color 0 fill 16777215;
end;
implementation eq
equations
output = sum (collect (plus)) - sum (collect (minus));
implementation_end;
Position_control 296 336
description '
4.0
1
False
Signal\Control\PID Control\Continuous\PD.emx
2008-1-17 10:49:7
';
type PD
ports
signal in error;
signal out output;
end;
icon bg bottom
figures
rectangle 280 320 312 352 color 0 fill 15132390;
text 'PD' 296.5 336.1 color 16711680 18 bold;
end;
implementation eq
parameters
real kp = 4 {}; // Proportional gain
real tauD = 100 {s}; // Derivative time constant: tauD > 0
real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
real maximum = 25;
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
real maximum = 100;
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '
4.3
1
False
Signal\Block Diagram\Integrate.emx
2013-3-8 14:47:42
';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real initial = 0; // initial value
equations
output = int (input, initial);
implementation_end;
Velocity_limit 376 336
description '4.01False
Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
2007-9-26 12:47:40
';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real maximum = 25;
real minimum = -25;
equations
output = limit (input, minimum, maximum);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
stepper_model 184 376
description '
4.8
1
Motor\stepper_model.emx
2020-7-22 15:25:37
parameters
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 224 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' 224 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 272 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' 272 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 416 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' 416 160 color 0 18 bold;
end;
implementation eq
parameters
real i = 8e-5 {kg.m2};
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 320 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' 320 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 320 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' 320 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 176 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' 176 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 176 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' 176 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 72 216;
plug p 560 216;
OneJunction1 504 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' 504 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 248 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' 248 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 248 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' 248 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 416 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' 416 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 176 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 136 200 216 232 color 0 fill 15132390;
text 'name' 176 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
real global angle_step;
real max_a {m/s2};
variables
real current_angle;
real c,s;
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);
current_angle = angle;
implementation_end;
R 272 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' 272 104 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R1 224 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' 224 328 color 0 18 bold;
end;
implementation eq
parameters
real global R_phase;
equations
p.e = R_phase * p.f;
implementation_end;
R2 488 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' 488 264 color 0 18 bold;
end;
implementation eq
parameters
real r = 1.0e-3;
equations
p.e = r * p.f;
implementation_end;
RotorAngle 320 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 280 200 360 232 color 0 fill 15132390;
text 'name' 320 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 416 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' 416 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;
stepper_model1 592 376
description '
4.8
1
Motor\stepper_model.emx
2020-7-22 15:25:37
parameters
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 i = 8e-5 {kg.m2};
real global RotorInertia;
equations
state = int(p.e);
p.f = state / (RotorInertia);
implementation_end;
MGY_a 656 160
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 160 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MGY_b 656 272
description '
4.2
1
False
Bond Graph\MGY.emx
2011-11-29 16:03:53
';
type MGY
ports
power in p1;
power out p2;
signal in r;
restrictions
causality constraint equal p1 p2;
end;
icon bg bottom
figures
text 'MGY' 656 272 color 0 18 bold;
end;
implementation eq
equations
p1.e = r * p2.f;
p2.e = r * p1.f;
implementation_end;
MSe_a 512 160
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 160 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
MSe_b 512 272
description '
4.2
1
False
Bond Graph\MSe.emx
2011-11-29 16:12:33
';
type MSe
ports
electric out p;
signal in effort;
restrictions
causality fixed out p;
end;
icon bg bottom
figures
text 'MSe' 512 272 color 0 18 bold;
end;
implementation eq
variables
real flow;
equations
p.e = effort;
flow = p.f;
implementation_end;
plug angle 200 216;
plug p 1472 216;
OneJunction1 840 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 840 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction2 584 160
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 160 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction3 584 272
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
electric knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 584 272 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
OneJunction4 752 216
description '
4.2
1
False
Bond Graph\OneJunction.emx
2011-11-29 16:17:51
';
knot OneJunction
ports
rotation knot duplicatable none p [1];
signal knot out flow [1];
restrictions
causality constraint one_out p;
end;
icon bg
figures
text '1' 752 216 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.e)) = 0;
equal (collect (p.f));
flow = first (p.f);
implementation_end;
phase_control 512 216
description '4.0
Template\Submodel-Equation.emx
1
False
2007-11-1 22:32:1
False
';
type Submodel
ports
signal in angle;
signal out a;
signal out b;
end;
icon bg
figures
rectangle 472 200 552 232 color 0 fill 15132390;
text 'name' 512 216 color 0 'Clear Sans' 16;
end;
implementation eq
parameters
real global u_max {V};
real global angle_step;
real max_a {m/s2};
variables
real current_angle;
real c,s;
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);
current_angle = angle;
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;
ZeroJunction2 592 264
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' 592 264 color 0 18 bold;
end;
implementation eq
equations
sum (direct (p.f)) = 0;
equal (collect (p.e));
effort = first (p.e);
implementation_end;
ZeroJunction3 184 264
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' 184 264 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
C1\p <= OneJunction7\p;
C2\p <= OneJunction6\p;
COM\Hout -> new_joint1\input;
COM1\Hout -> new_joint2\input;
COM2\Hin <- Link3\Hout 992 120;
COM2\Hout -> new_joint3\input;
COM2\p => OneJunction12\p;
Ground\output -> Joint\Hin;
inverse_kinematics1\angle1 -> Negate1\input;
inverse_kinematics1\angle2 -> Negate2\input;
Joint\Hout -> Link\Hin;
Joint\Pdiff <= PowerMux\output;
Joint\Pin <= Link\Pout;
Joint\Pout => Ground\p;
Link\Pin <= OneJunction1\p;
Link1\Hout -> Joint1\Hin;
Link1\Pin <= Joint1\Pout;
Link1\Pout => OneJunction1\p;
Link2\Hin <- Joint1\Hout;
Link2\Hout -> Splitter2\input;
Link2\Pin <= OneJunction3\p;
Link2\Pout => Joint1\Pin;
Link3\Pin <= OneJunction12\p;
Link3\Pout => OneJunction3\p;
Negate1\output -> stepper_control\setpoint;
Negate2\output -> stepper_control1\setpoint;
OneJunction1\p <= COM\p;
OneJunction11\p => ZeroJunction2\p;
OneJunction14\p => ZeroJunction3\p;
OneJunction17\p => C\p;
OneJunction3\p <= COM1\p;
OneJunction4\p => C4\p;
OneJunction4\p => R4\p;
OneJunction5\p => C3\p;
OneJunction5\p => R2\p;
OneJunction6\p => R3\p;
OneJunction7\p => R5\p;
OneJunction8\p => C5\p;
PowerMux\input_pos3 <= OneJunction6\p;
PowerMux\input_rot2 <= OneJunction5\p;
PowerMux1\input_pos3 <= OneJunction7\p;
PowerMux1\input_rot2 <= OneJunction4\p;
PowerMux1\output => Joint1\Pdiff;
R1\p <= OneJunction17\p;
R6\p <= OneJunction8\p;
rectanglepath1\output -> inverse_kinematics1\input;
Splitter1\input <- Link\Hout;
Splitter1\output -> COM\Hin;
Splitter1\output -> Link1\Hin;
Splitter2\output -> COM1\Hin;
Splitter2\output -> Link3\Hin;
stepper_control\output -> stepper_model\angle;
stepper_control1\output -> stepper_model1\angle;
stepper_model\p => OneJunction14\p;
stepper_model1\p => OneJunction11\p;
ZeroJunction2\p => OneJunction17\p;
ZeroJunction2\p => PowerMux1\input;
ZeroJunction3\p => OneJunction8\p;
ZeroJunction3\p => PowerMux\input;
end;
implementation_end;
]]>
Experiment 1
4.8
stepper_model\phase_control\max_a
m/s2
0
stepper_model1\phase_control\max_a
m/s2
0
C1\state_initial
3
1
0 0 0
C2\state_initial
3
1
0 0 0
C3\state_initial
2
1
0 0
C4\state_initial
2
1
0 0
C5\state_initial
0
COM1\InertialTensor\state_initial
6
1
0 0 0 0 0 0
COM\InertialTensor\state_initial
6
1
0 0 0 0 0 0
C\state_initial
0
Joint1\Hmatrix\p_initial
3
1
0 0 0
Joint\Hmatrix\p_initial
3
1
0 0 0
stepper_control1\Position_control\state_initial
0
stepper_control1\Velocity_control\state_initial
0
stepper_control\Position_control\state_initial
0
stepper_control\Velocity_control\state_initial
0
stepper_model1\I1\state_initial
0
stepper_model1\I2\state_initial
0
stepper_model1\I\state_initial
0
stepper_model1\RotorAngle\angle_initial
rad
0
stepper_model\I1\state_initial
0
stepper_model\I2\state_initial
0
stepper_model\I\state_initial
0
stepper_model\RotorAngle\angle_initial
rad
0
COM2\InertialTensor\p.e_initial
6
1
0 0 0 0 0 0
time
new_joint1\position[1]
new_joint1\position[2]
new_joint1\position[3]
new_joint1\R[1,3]
new_joint1\R[2,3]
new_joint1\R[3,3]
new_joint1\R[1,2]
new_joint1\R[2,2]
new_joint1\R[3,2]
new_joint2\R[1,3]
new_joint2\R[2,3]
new_joint2\R[3,3]
new_joint2\R[1,2]
new_joint2\R[2,2]
new_joint2\R[3,2]
new_joint2\position[1]
new_joint2\position[2]
new_joint2\position[3]
new_joint3\position[3]
new_joint3\position[2]
rectanglepath1\output[2]
rectanglepath1\output[1]
stepper_control\Acceleration_int\output
stepper_control\Acceleration_int\input
stepper_control\Velocity_int\output
stepper_control1\Acceleration_int\output
stepper_control1\Acceleration_int\input
stepper_control1\Velocity_int\output
Submodel3\dimension[1]
Submodel3\dimension[2]
Submodel3\dimension[3]
Submodel4\dimension[1]
Submodel4\dimension[2]
Submodel4\dimension[3]
Step\output
Integrate2\output
motor_joint2\SignalLimiter2\output
D3DPlot
1
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
3.04292494817788
-0.198158420944799
2.86669745787175
-0.727053165168863
0.0473464543511177
-0.684946719298892
-0.6834989786941
0.0445101606651553
0.728593159260835
Direct3D
false
false
false
false
false
false
0.01
100.0
true
0.003926990816987242
45.0
-10.0
10.0
10.0
-10.0
true
-9.99200722162641e-016
1.76247905159244e-015
-3.05678199886544e-015
true
1
true
true
true
false
Front(XY)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
false
Side(YZ)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
false
Top(XZ)-Camera
10
-1
1
Direct3D
false
false
false
false
false
false
0.01
100.0
true
9.999999999999998
45.0
-9.999999999999998
9.999999999999998
9.999999999999998
-9.999999999999998
true
true
1
true
false
false
1
1
1
false
Scenery
Bryant
false
false
false
false
false
false
10
10
10
false
Reference Frame
Bryant
false
false
false
false
false
false
Center
1.0
true
4
Submodel3\dimension[1]
0.005
Submodel3\dimension[2]
0.065
Submodel3\dimension[3]
0.01
true
1
1
1
1.0
1
1
1
true
0.498039215686275
0.498039215686275
0.498039215686275
14.298713684082
false
false
Block
new_joint1\position[1]
0.0
new_joint1\position[2]
0.004779004084536204
new_joint1\position[3]
0.032131984037075616
new_joint1\R[1,3]
0.0
new_joint1\R[2,3]
-0.9891507613546217
new_joint1\R[3,3]
0.14690395267511475
new_joint1\R[1,2]
0.0
new_joint1\R[2,2]
0.14690395267511475
new_joint1\R[3,2]
0.9891507613546217
Matrix
false
false
false
false
false
false
Center
1.0
true
4
Submodel4\dimension[1]
0.005
Submodel4\dimension[2]
0.05
Submodel4\dimension[3]
0.01
true
1
1
1
1.0
1
1
1
true
0.5
0.5
0.5
15
false
false
Block
new_joint2\position[1]
0.0
new_joint2\position[2]
0.03341576943552989
new_joint2\position[3]
0.05682777438151479
new_joint2\R[1,3]
0.0
new_joint2\R[2,3]
0.29812485436275077
new_joint2\R[3,3]
0.9545268834407906
new_joint2\R[1,2]
0.0
new_joint2\R[2,2]
0.9545268834407906
new_joint2\R[3,2]
-0.29812485436275077
Matrix
false
false
false
false
false
false
GraphPlot
2
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
model(2)
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
-0.04000000000000001
0.15999999999999998
true
1
-0.020000000000000004
0.07999999999999999
true
1
-0.06
0.14
true
1
3355111
1
3355111
0
true
1
1
1
true
true
new_joint3\position[2]
true
new_joint3\position[3]
6076255
1
6076255
0
true
1
1
1
true
true
rectanglepath1\output[1]
true
rectanglepath1\output[2]
true
0
16777215
GraphPlot
4
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
model
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
0.8
1.5
true
0
-1.7999999999999985
-0.7999999999999988
true
1
-2.5
2.5
true
1
-2.5
2.5
true
1
3355111
1
3355111
0
true
1
1
1
true
true
time
true
Step\output
6076255
1
6076255
0
true
1
1
1
true
true
time
true
Integrate2\output
-1.0
12553035
1
12553035
0
true
1
1
1
true
true
time
true
motor_joint2\SignalLimiter2\output
true
0.9365808823529411
0.0811764705882353
0
16777215
GraphPlot
5
false
16777215
true
true
15780518
12624260
0
10
10
10
false
16777215
true
1
model
true
Arial
12
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
Arial
10
34
400
0
0
0
0
Arial
12
34
400
0
0
0
0
true
true
false
0.0
0.13434062268478064
true
3
-500.0
500.0
true
1
-3.79912966828766
0.0
true
1
-3.79912966828766
0.0
true
1
-3.79912966828766
0.0
true
1
-3.79912966828766
0.0
true
1
-3.79912966828766
0.0
true
1
3355111
1
3355111
0
true
1
1
1
true
true
time
true
stepper_control\Acceleration_int\output
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_control1\Acceleration_int\output
15790150
1
15790150
0
true
1
1
1
true
true
time
true
stepper_control1\Acceleration_int\input
1696255
1
1696255
0
true
1
1
1
true
true
time
true
stepper_control1\Velocity_int\output
true
0
16777215
1
true
Window 1
0
2
4
Base
2
true
Window 2
0
1
Base
3
true
Window 3
2
5
StripChart
0.0744792 0.00462963 0.86875 0.755556
0.130729 0.0842593 0.846354 0.864815
0.05625 0.175926 0.806771 0.9
0.0
15.0
false
false
false
false
0.1
1.0e-6
1.0e-7
false
true
Euler
0.01
false
BackwardEuler
1.0e-5
1.0e-5
1.0e-5
1.0e-5
0.01
1.0
AdamsBashforth
0.01
false
RungeKutta2
0.01
false
RungeKutta4
0.01
false
RungeKutta8
false
0.0
false
0.0
1.0e-6
1.0e-6
0.9
0.33
6.0
0.0
false
100000
false
1000
RungeKuttaFehlberg
false
0.0
false
0.0
1.0e-6
1.0e-6
VodeAdams
false
0.0
false
0.0
1.0e-6
1.0e-6
true
true
BDFMethod
1.0e-5
1.0e-5
1.0e-5
1.0e-5
false
0.0
false
0.0
MeBDFiMethod
1.0e-5
1.0e-5
1.0e-5
1.0e-5
false
0.0
false
0.0
8
10
false
true
true
false
true
0
0.0
true
MultipleRun
true
UseEndValue
0.001
BroydonFletcherGoldfarbShanno
true
true
true
true
false
1.0