diff --git a/implementation/SCARA/06_arm/arm_model.emx b/implementation/SCARA/06_arm/arm_model.emx
index 8a3d39e..8bd8422 100644
--- a/implementation/SCARA/06_arm/arm_model.emx
+++ b/implementation/SCARA/06_arm/arm_model.emx
@@ -8,7 +8,7 @@
0
False
C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model.emx
- 2020-7-23 10:05:57
+ 2020-7-23 11:32:46
';
type Mainmodel
@@ -28,6 +28,8 @@
signal in input [4,4];
end;
implementation eq
+parameters
+ real dimension[3] = [0.005;0.01;0.065] {m};
variables
real position[3];
real rotation[3];
@@ -37,7 +39,7 @@ equations
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
- Body2 896 544
+ Body2 792 544
description '4.0
Template\Submodel-Equation.emx
1
@@ -50,6 +52,8 @@ equations
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];
@@ -72,6 +76,8 @@ equations
signal in input [4,4];
end;
implementation eq
+parameters
+ real dimension[3] = [0.005;0.01;0.065] {m};
variables
real position[3];
real rotation[3];
@@ -81,7 +87,7 @@ equations
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
- Body4 368 152
+ Body4 696 200
description '4.0
Template\Submodel-Equation.emx
1
@@ -94,6 +100,8 @@ equations
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];
@@ -103,7 +111,7 @@ equations
rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
//[input[3,2];input[1,3];input[2,1]];
R = input[1:3,1:3];implementation_end;
- Body5 832 208
+ Body5 920 232
description '4.0
Template\Submodel-Equation.emx
1
@@ -116,6 +124,8 @@ equations
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];
@@ -1015,7 +1025,7 @@ implementation_end;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
- COM_body5 960 136
+ COM_body5 1064 136
description '4.81Bond Graph\MR\center_of_mass_v2.emx2020-7-21 12:24:38parameters
real I [3,1] = [0.018;0.159;0.159] {mN.m.s};
real m = 0.015 {kg};';
@@ -1027,11 +1037,11 @@ implementation_end;
end;
icon bg bottom
figures
- rectangle 944 104 976 168 color 0 fill 139;
- text 'COM' 960 136 color 0 'Clear Sans' 16;
+ rectangle 1048 104 1080 168 color 0 fill 139;
+ text 'COM' 1064 136 color 0 'Clear Sans' 16;
terminals
- Hin 944 152 fixed;
- p 944 120 fixed;
+ Hin 1048 152 fixed;
+ p 1048 120 fixed;
end;
implementation bg
submodels
@@ -1235,7 +1245,7 @@ implementation_end;
ZeroJunction1\p => Ta0j\p;
end;
implementation_end;
- Ground 436 615.5
+ Ground1 1052 711.5
description '
4.8
@@ -1251,22 +1261,22 @@ implementation_end;
end;
icon bg bottom
figures
- line 400 608 416 624 color 0 fill 15132390;
- line 408 608 424 624 color 0 fill 15132390;
- line 392 608 408 624 color 0 fill 15132390;
- line 432 624 416 608 color 0 fill 15132390;
- line 440 624 424 608 color 0 fill 15132390;
- line 448 624 432 608 color 0 fill 15132390;
- line 464 624 448 608 color 0 fill 15132390;
- line 456 624 440 608 color 0 fill 15132390;
- line 472 624 456 608 color 0 fill 15132390;
- line 480 624 464 608 color 0 fill 15132390;
- line 392 608 480 608 color 0 fill 15132390 width 2;
- line 472 608 480 616 color 0 fill 15132390;
- line 392 616 400 624 color 0 fill 15132390;
+ line 1016 704 1032 720 color 0 fill 15132390;
+ line 1024 704 1040 720 color 0 fill 15132390;
+ line 1008 704 1024 720 color 0 fill 15132390;
+ line 1048 720 1032 704 color 0 fill 15132390;
+ line 1056 720 1040 704 color 0 fill 15132390;
+ line 1064 720 1048 704 color 0 fill 15132390;
+ line 1080 720 1064 704 color 0 fill 15132390;
+ line 1072 720 1056 704 color 0 fill 15132390;
+ line 1088 720 1072 704 color 0 fill 15132390;
+ line 1096 720 1080 704 color 0 fill 15132390;
+ line 1008 704 1096 704 color 0 fill 15132390 width 2;
+ line 1088 704 1096 712 color 0 fill 15132390;
+ line 1008 712 1016 720 color 0 fill 15132390;
terminals
- p 416 608 fixed;
- output 448 608 fixed;
+ p 1032 704 fixed;
+ output 1064 704 fixed;
end;
implementation bg
submodels
@@ -1348,7 +1358,7 @@ equations
Zero\output -> output;
end;
implementation_end;
- Ground1 1052 727.5
+ Ground2 436 623.5
description '
4.8
@@ -1364,22 +1374,22 @@ equations
end;
icon bg bottom
figures
- line 1016 720 1032 736 color 0 fill 15132390;
- line 1024 720 1040 736 color 0 fill 15132390;
- line 1008 720 1024 736 color 0 fill 15132390;
- line 1048 736 1032 720 color 0 fill 15132390;
- line 1056 736 1040 720 color 0 fill 15132390;
- line 1064 736 1048 720 color 0 fill 15132390;
- line 1080 736 1064 720 color 0 fill 15132390;
- line 1072 736 1056 720 color 0 fill 15132390;
- line 1088 736 1072 720 color 0 fill 15132390;
- line 1096 736 1080 720 color 0 fill 15132390;
- line 1008 720 1096 720 color 0 fill 15132390 width 2;
- line 1088 720 1096 728 color 0 fill 15132390;
- line 1008 728 1016 736 color 0 fill 15132390;
+ line 400 616 416 632 color 0 fill 15132390;
+ line 408 616 424 632 color 0 fill 15132390;
+ line 392 616 408 632 color 0 fill 15132390;
+ line 432 632 416 616 color 0 fill 15132390;
+ line 440 632 424 616 color 0 fill 15132390;
+ line 448 632 432 616 color 0 fill 15132390;
+ line 464 632 448 616 color 0 fill 15132390;
+ line 456 632 440 616 color 0 fill 15132390;
+ line 472 632 456 616 color 0 fill 15132390;
+ line 480 632 464 616 color 0 fill 15132390;
+ line 392 616 480 616 color 0 fill 15132390 width 2;
+ line 472 616 480 624 color 0 fill 15132390;
+ line 392 624 400 632 color 0 fill 15132390;
terminals
- p 1032 720 fixed;
- output 1064 720 fixed;
+ p 416 616 fixed;
+ output 448 616 fixed;
end;
implementation bg
submodels
@@ -1461,6 +1471,49 @@ equations
Zero\output -> output;
end;
implementation_end;
+ inverse_kinematics 320 744
+ description '
+
+ 4.8
+ SCARA\inverse_kinematics_v1.emx
+1
+ False
+ 2020-7-10 12:26:18
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal in input [2,1] {m} ;
+ signal out angle1 {rad} ;
+ signal out angle2 {rad} ;
+ signal out a {rad} ;
+ signal out b {rad} ;
+ signal out c {rad} ;
+ signal out phi {rad} ;
+ end;
+ implementation eq
+parameters
+ real A_length = 0.065 {m}; // length of first arm
+ real B_length = 0.05 {m}; // length of second arm
+ real to_rad = 1 {rad};
+variables
+ real x {m}, y {m};
+ real C_length {m}; // length to x and y.
+equations
+ x = input[1];
+ y = input[2];
+ phi = atan2(y, x);
+ C_length = sqrt(x^2 + y^2);
+ a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length));
+ b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length));
+ c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length));
+ angle1 = b + phi;
+ angle2 = angle1 - pi * to_rad + c;
+
+
+
+ implementation_end;
JointA 432 536
description '
@@ -1484,10 +1537,10 @@ equations
rectangle 400 512 464 560 color 0 fill 14745599;
text 'Joint' 432 536 color 0 'Clear Sans' 16;
terminals
- Pin 416 512 fixed;
- Hin 448 560 fixed;
- Hout 448 512 fixed;
- Pout 416 560 fixed;
+ Pin 416 560 fixed;
+ Hin 448 512 fixed;
+ Hout 448 560 fixed;
+ Pout 416 512 fixed;
end;
implementation bg
submodels
@@ -1699,10 +1752,10 @@ implementation_end;
rectangle 400 192 464 240 color 0 fill 14745599;
text 'Joint' 432 216 color 0 'Clear Sans' 16;
terminals
- Pin 416 192 fixed;
- Hin 448 240 fixed;
- Hout 448 192 fixed;
- Pout 416 240 fixed;
+ Pin 416 240 fixed;
+ Hin 448 192 fixed;
+ Hout 448 240 fixed;
+ Pout 416 192 fixed;
end;
implementation bg
submodels
@@ -1891,7 +1944,7 @@ implementation_end;
Wbai\p => Pout;
end;
implementation_end;
- JointC 928 616
+ JointC 944 616
description '
4.8
@@ -1911,13 +1964,13 @@ implementation_end;
end;
icon bg bottom
figures
- rectangle 904 584 952 648 color 0 fill 14745599;
- text 'Joint' 928 616 color 0 'Clear Sans' 16;
+ rectangle 920 584 968 648 color 0 fill 14745599;
+ text 'Joint' 944 616 color 0 'Clear Sans' 16;
terminals
- Pin 904 632 fixed;
- Hin 952 600 fixed;
- Hout 904 600 fixed;
- Pout 952 632 fixed;
+ Pin 920 632 fixed;
+ Hin 968 600 fixed;
+ Hout 920 600 fixed;
+ Pout 968 632 fixed;
end;
implementation bg
submodels
@@ -2751,7 +2804,7 @@ implementation_end;
Wbai\p => Pout;
end;
implementation_end;
- Joint_dynA 336 536
+ Joint_dynA 320 536
description '
4.8
1
@@ -2759,9 +2812,38 @@ implementation_end;
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
@@ -2808,7 +2890,8 @@ equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
- plug output 396 216;
+ plug output 468 216;
+ plug angle 224 80;
OneJunction5 239.8 232.2
description '
@@ -2863,7 +2946,7 @@ equations
equal (collect (p.f));
flow = first (p.f);
implementation_end;
- OneJunction8 288 200
+ OneJunction8 312 200
description '
4.2
@@ -2875,14 +2958,14 @@ implementation_end;
';
knot OneJunction
ports
- power knot duplicatable none p [1];
+ rotation 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;
+ text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
@@ -2890,7 +2973,7 @@ equations
equal (collect (p.f));
flow = first (p.f);
implementation_end;
- PowerMux 330 216
+ PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
@@ -2916,14 +2999,14 @@ implementation_end;
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;
+ 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 328 200 fixed;
- output 328 216 fixed;
- input_rot2 328 232 fixed;
- input_pos3 328 216 fixed;
+ input 400 200 fixed;
+ output 400 216 fixed;
+ input_rot2 400 232 fixed;
+ input_pos3 400 216 fixed;
end;
implementation eq
equations
@@ -3019,7 +3102,7 @@ equations
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
- R 288 152
+ R 312 152
description '
4.2
@@ -3033,13 +3116,13 @@ specification_end;
ports
power in p;
end;
- icon bg top
+ icon bg bottom
figures
- text 'R' 288 152 color 0 18 bold;
+ text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
- real r = 0.01;
+ real r = 0.001;
equations
p.e = r * p.f;
implementation_end;
@@ -3081,79 +3164,228 @@ parameters
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_dynB 336 216
- description '
- 4.8
- 1
- ';
- type Submodel
- ports
- power out output [6,1];
- end;
- implementation bg
- submodels
- C1 191.8 216.2
- description '4.01False
- Bond Graph\3D\C-3.emx
- 2007-9-25 12:12:8
-';
- type 'C-3'
+ stepper_model 360 80
+ description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
+ real I_phase = 3.4 {mH};
+ real R_phase = 2.9 {ohm};
+ real u_max = 6 {V};
+ real RotorInertia = 5.6e-6 {kg.m2};
+ real StepperMass = 0.29 {kg};
+ real angle_step = 1.8 {deg};
+ real n_phase = 2 {none};
+ real fluxLinkage = 0.0022 {Wb};
+ real detentTorque = 0.01 {N.m};
+variables
+ real omega;
+ real p; // rotor division
+initialequations
+ p = 2 * pi / (2 * n_phase * angle_step);
+ omega = 200;';
+ type Submodel
ports
- 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;
+ signal in angle;
+ rotation out p;
end;
- implementation eq
+ 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 c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
+ real global I_phase;
equations
- state = int(p.f);
- p.e = inverse(c) *state;
+ state = int(p.e);
+ p.f = state / I_phase;
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
+ 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 c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
+ real global I_phase;
equations
- state = int(p.f);
- p.e = inverse(c) *state;
+ state = int(p.e);
+ p.f = state / I_phase;
implementation_end;
- plug output 396 216;
- OneJunction5 239.8 232.2
- description '
+ 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
@@ -3162,25 +3394,25 @@ implementation_end;
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
+ 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;
- OneJunction7 239.8 216.2
- description '
+ OneJunction2 584 160
+ description '
4.2
1
@@ -3189,25 +3421,25 @@ implementation_end;
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
+ 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;
- OneJunction8 288 200
- description '
+ OneJunction3 584 272
+ description '
4.2
1
@@ -3216,154 +3448,110 @@ implementation_end;
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
+ 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;
- PowerMux 330 216
- specifications active 'rot_x'
- specification 'rot_x'
- description '
+ OneJunction4 752 216
+ description '
- 4.8
- Bond Graph\MR\PowerMux-Rotation.emx
- 2020-7-20 14:35:23
+ 4.2
1
False
- True
-
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
';
- 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
+ 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
- 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
+ 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
- True
+ 2007-11-1 22:32:1
+ False
';
- 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
+ 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
- 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 '
+ 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.8
- Bond Graph\MR\PowerMux-Rotation.emx
- 2020-7-21 12:05:13
+ 4.2
1
False
- True
-
+ Bond Graph\R.emx
+ 2011-11-29 16:35:37
+
';
- 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
+ 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
- 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 '
+ p.e = R_phase * p.f;
+implementation_end;
+ R1 560 328
+ description '
4.2
1
@@ -3372,72 +3560,177 @@ specification_end;
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
+ type R
+ ports
+ power in p;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 560 328 color 0 18 bold;
+ end;
+ implementation eq
parameters
- real r = 0.01;
+ real global R_phase;
equations
- p.e = r * p.f;
+ p.e = R_phase * 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
+ 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[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
-equations
+ real r = 1.0e-3;
+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
+ RotorAngle 656 216
+ description '4.0
+ Template\Submodel-Equation.emx
+1
+ False
+ 2007-11-1 22:32:1
+ False
';
- type 'R-3'
+ type Submodel
+ ports
+ signal out output_b;
+ signal out output_a;
+ signal in omega {rad/s} ;
+ signal out output_d;
+ end;
+ icon bg
+ figures
+ rectangle 616 200 696 232 color 0 fill 15132390;
+ text 'name' 656 216 color 0 'Clear Sans' 16;
+ end;
+ implementation eq
+parameters
+ real global fluxLinkage;
+ real global detentTorque;
+variables
+ real global p;
+ real angle {rad};
+equations
+ angle = int(omega,-1.65);
+ output_a = -p * fluxLinkage * sin(p * angle);
+ output_b = p * fluxLinkage * sin(p * angle - pi / 2);
+ output_d = detentTorque * sin(2 * p * angle);
+ implementation_end;
+ Se 752 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MSe.emx
+ 2011-11-29 16:12:33
+
+';
+ type MSe
+ ports
+ power out p;
+ signal in effort;
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 752 272 color 0 18 bold;
+ end;
+ implementation eq
+
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ end;
+ connections
+ angle -> phase_control\angle;
+ I2\p <= OneJunction4\p;
+ MGY_a\p2 => OneJunction4\p;
+ MGY_b\p2 => OneJunction4\p;
+ MSe_b\p => OneJunction3\p;
+ OneJunction1\p => p;
+ OneJunction2\p <= MSe_a\p;
+ OneJunction2\p => I\p;
+ OneJunction2\p => MGY_a\p1;
+ OneJunction2\p => R\p;
+ OneJunction3\p => I1\p;
+ OneJunction3\p => MGY_b\p1;
+ OneJunction3\p => R1\p;
+ OneJunction4\flow -> RotorAngle\omega;
+ OneJunction4\p => OneJunction1\p;
+ OneJunction4\p => R2\p;
+ phase_control\a -> MSe_a\effort;
+ phase_control\b -> MSe_b\effort;
+ RotorAngle\output_a -> MGY_a\r;
+ RotorAngle\output_b -> MGY_b\r;
+ RotorAngle\output_d -> Se\effort;
+ Se\p => OneJunction4\p;
+ end;
+ implementation_end;
+ ZeroJunction1 360 200
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
+
+';
+ knot ZeroJunction
ports
- power in p [3,1];
+ rotation knot duplicatable none p [1];
+ signal knot out effort [1];
+ restrictions
+ causality constraint one_in p;
end;
- icon bg top
+ icon bg
figures
- text 'R' 239.8 168.2 color 0 18 bold;
+ text '0' 360 200 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;
+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 => PowerMux\input;
+ OneJunction8\p => R\p;
+ PowerMux\input <= ZeroJunction1\p;
PowerMux\output => output;
- R\p <= OneJunction8\p;
+ ZeroJunction1\p <= OneJunction8\p;
+ ZeroJunction1\p <= stepper_model\p;
end;
implementation_end;
- Joint_dynC 928 696
+ Joint_dynB 336 216
description '
4.8
1
@@ -3780,7 +4073,7 @@ implementation_end;
R\p <= OneJunction8\p;
end;
implementation_end;
- Joint_dynD 536 536
+ Joint_dynC 944 696
description '
4.8
1
@@ -4123,7 +4416,7 @@ implementation_end;
R\p <= OneJunction8\p;
end;
implementation_end;
- Joint_dynE 536 216
+ Joint_dynD 528 536
description '
4.8
1
@@ -4131,9 +4424,43 @@ implementation_end;
type Submodel
ports
power out output [6,1];
+ signal in angle {rad} ;
+ end;
+ icon bg
+ figures
+ rectangle 488 520 568 552 color 0 fill 15132390;
+ text 'name' 528 536 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
+ C 264 200
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\C.emx
+ 2011-11-29 15:58:35
+
+';
+ type C
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred out p;
+ end;
+ icon bg bottom
+ figures
+ text 'C' 264 200 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real c = 0.001;
+equations
+ state = int(p.f);
+ p.e = state / c;
+implementation_end;
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
@@ -4180,7 +4507,8 @@ equations
state = int(p.f);
p.e = inverse(c) *state;
implementation_end;
- plug output 396 216;
+ plug output 468 216;
+ plug angle 224 80;
OneJunction5 239.8 232.2
description '
@@ -4235,7 +4563,7 @@ equations
equal (collect (p.f));
flow = first (p.f);
implementation_end;
- OneJunction8 288 200
+ OneJunction8 312 200
description '
4.2
@@ -4247,14 +4575,14 @@ implementation_end;
';
knot OneJunction
ports
- power knot duplicatable none p [1];
+ rotation 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;
+ text '1' 312 200 color 0 18 bold;
end;
implementation eq
equations
@@ -4262,7 +4590,7 @@ equations
equal (collect (p.f));
flow = first (p.f);
implementation_end;
- PowerMux 330 216
+ PowerMux 402 216
specifications active 'rot_x'
specification 'rot_x'
description '
@@ -4288,14 +4616,14 @@ implementation_end;
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;
+ 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 328 200 fixed;
- output 328 216 fixed;
- input_rot2 328 232 fixed;
- input_pos3 328 216 fixed;
+ input 400 200 fixed;
+ output 400 216 fixed;
+ input_rot2 400 232 fixed;
+ input_pos3 400 216 fixed;
end;
implementation eq
equations
@@ -4391,7 +4719,7 @@ equations
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
- R 288 152
+ R 312 152
description '
4.2
@@ -4405,13 +4733,13 @@ specification_end;
ports
power in p;
end;
- icon bg top
+ icon bg bottom
figures
- text 'R' 288 152 color 0 18 bold;
+ text 'R' 312 152 color 0 18 bold;
end;
implementation eq
parameters
- real r = 0.01;
+ real r = 0.001;
equations
p.e = r * p.f;
implementation_end;
@@ -4453,58 +4781,584 @@ parameters
equations
p.e = r * p.f;
implementation_end;
- end;
- connections
- C1\p <= OneJunction7\p;
- OneJunction5\p => C4\p;
- OneJunction5\p => PowerMux\input_rot2;
- OneJunction5\p => R4\p;
- OneJunction7\p => PowerMux\input_pos3;
- OneJunction7\p => R5\p;
- OneJunction8\p => PowerMux\input;
- PowerMux\output => output;
- R\p <= OneJunction8\p;
- end;
- implementation_end;
- Joint_dynF 792 56
- description '
- 4.8
- 1
- ';
- type Submodel
- ports
- power out output [6,1];
- end;
- implementation bg
- submodels
- C 264 200
+ stepper_model 360 80
+ description '4.81Motor\stepper_model.emx2020-7-23 10:54:47parameters
+ real I_phase = 3.4 {mH};
+ real R_phase = 2.9 {ohm};
+ real u_max = 6 {V};
+ real RotorInertia = 5.6e-6 {kg.m2};
+ real StepperMass = 0.29 {kg};
+ real angle_step = 1.8 {deg};
+ real n_phase = 2 {none};
+ real fluxLinkage = 0.0022 {Wb};
+ real detentTorque = 0.01 {N.m};
+variables
+ real omega;
+ real p; // rotor division
+initialequations
+ p = 2 * pi / (2 * n_phase * angle_step);
+ omega = 200;';
+ type Submodel
+ ports
+ signal in angle;
+ rotation out p;
+ end;
+ implementation bg
+ submodels
+ I 560 104
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\I.emx
+ 2011-11-29 15:55:55
+
+';
+ type I
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 560 104 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global I_phase;
+equations
+ state = int(p.e);
+ p.f = state / I_phase;
+implementation_end;
+ I1 608 328
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\I.emx
+ 2011-11-29 15:55:55
+
+';
+ type I
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 608 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global I_phase;
+equations
+ state = int(p.e);
+ p.f = state / I_phase;
+implementation_end;
+ I2 752 160
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\I.emx
+ 2011-11-29 15:55:55
+
+';
+ type I
+ ports
+ power in p;
+ signal out state;
+ restrictions
+ causality preferred in p;
+ end;
+ icon bg bottom
+ figures
+ text 'I' 752 160 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real i = 8e-5 {kg.m2};
+ real global RotorInertia;
+equations
+ state = int(p.e);
+ p.f = state / (RotorInertia);
+implementation_end;
+ MGY_a 656 160
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MGY.emx
+ 2011-11-29 16:03:53
+
+';
+ type MGY
+ ports
+ power in p1;
+ power out p2;
+ signal in r;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'MGY' 656 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MGY_b 656 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MGY.emx
+ 2011-11-29 16:03:53
+
+';
+ type MGY
+ ports
+ power in p1;
+ power out p2;
+ signal in r;
+ restrictions
+ causality constraint equal p1 p2;
+ end;
+ icon bg bottom
+ figures
+ text 'MGY' 656 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ p1.e = r * p2.f;
+ p2.e = r * p1.f;
+implementation_end;
+ MSe_a 512 160
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MSe.emx
+ 2011-11-29 16:12:33
+
+';
+ type MSe
+ ports
+ electric out p;
+ signal in effort;
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 512 160 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ MSe_b 512 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MSe.emx
+ 2011-11-29 16:12:33
+
+';
+ type MSe
+ ports
+ electric out p;
+ signal in effort;
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 512 272 color 0 18 bold;
+ end;
+ implementation eq
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ plug angle 200 216;
+ plug p 1472 216;
+ OneJunction1 840 216
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ rotation knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 840 216 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction2 584 160
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ electric knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 584 160 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction3 584 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ electric knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 584 272 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction4 752 216
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ rotation knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 752 216 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ phase_control 512 216
+ description '4.0
+ Template\Submodel-Equation.emx
+1
+ False
+ 2007-11-1 22:32:1
+ False
+';
+ type Submodel
+ ports
+ signal in angle;
+ signal out a;
+ signal out b;
+ end;
+ icon bg
+ figures
+ rectangle 472 200 552 232 color 0 fill 15132390;
+ text 'name' 512 216 color 0 'Clear Sans' 16;
+ end;
+ implementation eq
+parameters
+ real global u_max {V};
+variables
+ real global p;
+ boolean hidden eventa, eventb;
+equations
+ a = u_max * (cos (p*angle));
+ eventa = event(a);
+ b = u_max * -(sin (p*angle));
+ eventb = event(b);
+
+
+
+ implementation_end;
+ R 608 104
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\R.emx
+ 2011-11-29 16:35:37
+
+';
+ type R
+ ports
+ power in p;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 608 104 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global R_phase;
+equations
+ p.e = R_phase * p.f;
+implementation_end;
+ R1 560 328
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\R.emx
+ 2011-11-29 16:35:37
+
+';
+ type R
+ ports
+ power in p;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 560 328 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real global R_phase;
+equations
+ p.e = R_phase * p.f;
+implementation_end;
+ R2 824 264
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\R.emx
+ 2011-11-29 16:35:37
+
+';
+ type R
+ ports
+ power in p;
+ end;
+ icon bg bottom
+ figures
+ text 'R' 824 264 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 1.0e-3;
+equations
+ p.e = r * p.f;
+implementation_end;
+ RotorAngle 656 216
+ description '4.0
+ Template\Submodel-Equation.emx
+1
+ False
+ 2007-11-1 22:32:1
+ False
+';
+ type Submodel
+ ports
+ signal out output_b;
+ signal out output_a;
+ signal in omega {rad/s} ;
+ signal out output_d;
+ end;
+ icon bg
+ figures
+ rectangle 616 200 696 232 color 0 fill 15132390;
+ text 'name' 656 216 color 0 'Clear Sans' 16;
+ end;
+ implementation eq
+parameters
+ real global fluxLinkage;
+ real global detentTorque;
+variables
+ real global p;
+ real angle {rad};
+equations
+ angle = int(omega);
+ output_a = -p * fluxLinkage * sin(p * angle);
+ output_b = p * fluxLinkage * sin(p * angle - pi / 2);
+ output_d = detentTorque * sin(2 * p * angle);
+ implementation_end;
+ Se 752 272
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\MSe.emx
+ 2011-11-29 16:12:33
+
+';
+ type MSe
+ ports
+ power out p;
+ signal in effort;
+ restrictions
+ causality fixed out p;
+ end;
+ icon bg bottom
+ figures
+ text 'MSe' 752 272 color 0 18 bold;
+ end;
+ implementation eq
+
+variables
+ real flow;
+equations
+ p.e = effort;
+ flow = p.f;
+implementation_end;
+ end;
+ connections
+ angle -> phase_control\angle;
+ I2\p <= OneJunction4\p;
+ MGY_a\p2 => OneJunction4\p;
+ MGY_b\p2 => OneJunction4\p;
+ MSe_b\p => OneJunction3\p;
+ OneJunction1\p => p;
+ OneJunction2\p <= MSe_a\p;
+ OneJunction2\p => I\p;
+ OneJunction2\p => MGY_a\p1;
+ OneJunction2\p => R\p;
+ OneJunction3\p => I1\p;
+ OneJunction3\p => MGY_b\p1;
+ OneJunction3\p => R1\p;
+ OneJunction4\flow -> RotorAngle\omega;
+ OneJunction4\p => OneJunction1\p;
+ OneJunction4\p => R2\p;
+ phase_control\a -> MSe_a\effort;
+ phase_control\b -> MSe_b\effort;
+ RotorAngle\output_a -> MGY_a\r;
+ RotorAngle\output_b -> MGY_b\r;
+ RotorAngle\output_d -> Se\effort;
+ Se\p => OneJunction4\p;
+ end;
+ implementation_end;
+ ZeroJunction1 360 200
description '
4.2
1
False
- Bond Graph\C.emx
- 2011-11-29 15:58:35
+ Bond Graph\ZeroJunction.emx
+ 2011-11-29 16:45:16
';
- type C
+ knot ZeroJunction
ports
- power in p;
- signal out state;
+ rotation knot duplicatable none p [1];
+ signal knot out effort [1];
restrictions
- causality preferred out p;
+ causality constraint one_in p;
end;
- icon bg bottom
+ icon bg
figures
- text 'C' 264 200 color 0 18 bold;
+ text '0' 360 200 color 0 18 bold;
end;
implementation eq
-parameters
- real c = 0.001;
equations
- state = int(p.f);
- p.e = state / c;
+ sum (direct (p.f)) = 0;
+ equal (collect (p.e));
+ effort = first (p.e);
implementation_end;
+ end;
+ connections
+ angle -> stepper_model\angle;
+ C\p <= OneJunction8\p;
+ C1\p <= OneJunction7\p;
+ OneJunction5\p => C4\p;
+ OneJunction5\p => PowerMux\input_rot2;
+ OneJunction5\p => R4\p;
+ OneJunction7\p => PowerMux\input_pos3;
+ OneJunction7\p => R5\p;
+ OneJunction8\p => R\p;
+ PowerMux\input <= ZeroJunction1\p;
+ PowerMux\output => output;
+ ZeroJunction1\p <= OneJunction8\p;
+ ZeroJunction1\p <= stepper_model\p;
+ end;
+ implementation_end;
+ Joint_dynE 536 216
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
+ ports
+ power out output [6,1];
+ end;
+ implementation bg
+ submodels
C1 191.8 216.2
description '4.01False
Bond Graph\3D\C-3.emx
@@ -4606,7 +5460,7 @@ equations
equal (collect (p.f));
flow = first (p.f);
implementation_end;
- OneJunction8 296 200
+ OneJunction8 288 200
description '
4.2
@@ -4625,7 +5479,7 @@ implementation_end;
end;
icon bg
figures
- text '1' 296 200 color 0 18 bold;
+ text '1' 288 200 color 0 18 bold;
end;
implementation eq
equations
@@ -4634,7 +5488,7 @@ equations
flow = first (p.f);
implementation_end;
PowerMux 330 216
- specifications active 'rot_z'
+ specifications active 'rot_x'
specification 'rot_x'
description '
@@ -4720,7 +5574,7 @@ equations
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
specification 'rot_z'
- description '
+description '
4.8
Bond Graph\MR\PowerMux-Rotation.emx
@@ -4743,14 +5597,14 @@ specification_end;
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;
+ 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
@@ -4762,7 +5616,7 @@ equations
output.f[4:6] = input_pos3.f;implementation_end;
specification_end;
end;
- R 296 152
+ R 288 152
description '
4.2
@@ -4778,11 +5632,11 @@ specification_end;
end;
icon bg top
figures
- text 'R' 296 152 color 0 18 bold;
+ text 'R' 288 152 color 0 18 bold;
end;
implementation eq
parameters
- real r = 1000;
+ real r = 0.01;
equations
p.e = r * p.f;
implementation_end;
@@ -4826,7 +5680,6 @@ equations
implementation_end;
end;
connections
- C\p <= OneJunction8\p;
C1\p <= OneJunction7\p;
OneJunction5\p => C4\p;
OneJunction5\p => PowerMux\input_rot2;
@@ -4838,163 +5691,584 @@ implementation_end;
R\p <= OneJunction8\p;
end;
implementation_end;
- Link1 704 136
- description '
-
- 4.8
- Bond Graph\MR\link-v3.emx
-1
- False
- 2020-7-21 11:14:41
-False
-
-';
- type 'Submodel-Equation'
+ Joint_dynF 792 56
+ description '
+ 4.8
+ 1
+ ';
+ type Submodel
ports
- signal in Hin [4,4];
- signal out Hout [4,4];
- power in Pin [6,1];
- power out Pout [6,1];
- restrictions
- causality constraint not_equal Pin Pout;
- end;
- icon bg bottom
- figures
- rectangle 672 112 736 160 color 0 fill 8454041;
- text 'Link' 704 136 color 0 'Clear Sans' 16;
- terminals
- Hin 672 152 fixed;
- Hout 736 152 fixed;
- Pin 736 120 fixed;
- Pout 672 120 fixed;
+ power out output [6,1];
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;
- Link2 544 136
- description '
+ implementation bg
+ submodels
+ C 264 200
+ description '
- 4.8
- Bond Graph\MR\link-v3.emx
+ 4.2
1
False
- 2020-7-21 11:14:41
-False
-
+ Bond Graph\C.emx
+ 2011-11-29 15:58:35
+
';
- type 'Submodel-Equation'
- ports
- signal in Hin [4,4];
- signal out Hout [4,4];
- power in Pin [6,1];
- power out Pout [6,1];
- restrictions
- causality constraint not_equal Pin Pout;
- end;
- icon bg bottom
- figures
- rectangle 512 112 576 160 color 0 fill 8454041;
- text 'Link' 544 136 color 0 'Clear Sans' 16;
- terminals
- Hin 512 152 fixed;
- Hout 576 152 fixed;
- Pin 576 120 fixed;
- Pout 512 120 fixed;
- end;
- implementation eq
+ 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 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);
+ real c = 0.001;
equations
- Hout = Hin * Hab;
- Pout.e = transpose(AdHab) * Pin.e;
- Pin.f = AdHab * Pout.f;
-
- implementation_end;
- Link3 432 304
- description '
+ state = int(p.f);
+ p.e = state / c;
+implementation_end;
+ C1 191.8 216.2
+ description '4.01False
+ Bond Graph\3D\C-3.emx
+ 2007-9-25 12:12:8
+';
+ type 'C-3'
+ ports
+ power in p [3,1];
+ signal out state [3,1];
+ restrictions
+ causality preferred out p;
+ end;
+ icon bg top
+ figures
+ text 'C' 191.8 216.2 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
+equations
+ state = int(p.f);
+ p.e = inverse(c) *state;
+implementation_end;
+ C4 191.8 232.2
+ description '4.01False
+ Bond Graph\2D\C-2.emx
+ 2007-9-25 12:7:27
+';
+ type 'C-2'
+ ports
+ power in p [2,1];
+ signal out state [2,1];
+ restrictions
+ causality preferred out p;
+ end;
+ icon bg bottom
+ figures
+ text 'C' 191.8 232.2 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
+equations
+ state = int(p.f);
+ p.e = inverse(c) *state;
+implementation_end;
+ plug output 396 216;
+ OneJunction5 239.8 232.2
+ description '
- 4.8
- Bond Graph\MR\link-v3.emx
+ 4.2
1
False
- 2020-7-21 11:14:41
-False
-
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
';
- type 'Submodel-Equation'
- ports
- signal in Hin [4,4];
- signal out Hout [4,4];
- power in Pin [6,1];
- power out Pout [6,1];
- restrictions
- causality constraint not_equal Pin Pout;
- end;
- icon bg bottom
- figures
- rectangle 408 272 456 336 color 0 fill 8454041;
- text 'Link' 432 304 color 0 'Clear Sans' 16;
- terminals
- Hin 448 336 fixed;
- Hout 448 272 fixed;
- Pin 416 272 fixed;
- Pout 416 336 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);
+ 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
- Hout = Hin * Hab;
- Pout.e = transpose(AdHab) * Pin.e;
- Pin.f = AdHab * Pout.f;
-
- implementation_end;
- Link4 632 304
- description '
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction7 239.8 216.2
+ description '
- 4.8
- Bond Graph\MR\link-v3.emx
+ 4.2
1
False
- 2020-7-21 11:14:41
-False
-
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [3,1];
+ signal knot out flow [3,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 239.8 216.2 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction8 296 200
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [1];
+ signal knot out flow [1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 296 200 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ PowerMux 330 216
+ specifications active 'rot_z'
+ specification 'rot_x'
+description '
+
+ 4.8
+ Bond Graph\MR\PowerMux-Rotation.emx
+ 2020-7-20 14:35:23
+1
+ False
+ True
+
+';
+ type 'PowerMux-Rotation'
+ ports
+ power in input;
+ power out output [6,1];
+ power in input_rot2 [2,1];
+ power in input_pos3 [3,1];
+ restrictions
+ causality constraint not_equal input output;
+ causality constraint not_equal input_rot2 output;
+ causality constraint not_equal input_pos3 output;
+ end;
+ icon bg bottom
+ figures
+ line 328 192 328 240 color 0 width 2;
+ rectangle 324 192 336 240 color -1;
+ text '1' 333 210 color 8421504 8;
+ terminals
+ input 328 200 fixed;
+ output 328 216 fixed;
+ input_rot2 328 232 fixed;
+ input_pos3 328 216 fixed;
+ end;
+ implementation eq
+equations
+ output.e[1] = input.e;
+ output.e[2:3] = input_rot2.e;
+ output.e[4:6] = input_pos3.e;
+ output.f[1] = input.f;
+ output.f[2:3] = input_rot2.f;
+ output.f[4:6] = input_pos3.f;implementation_end;
+specification_end;
+ specification 'rot_y'
+description '
+ 4.1
+ Bond Graph\PowerMux.emx
+ 2011-3-4 15:12:50
+1
+ False
+ True
+';
+ type PowerMux
+ ports
+ power in input;
+ power out output [6,1];
+ power in input_rot2 [2,1];
+ power in input_pos3 [3,1];
+ restrictions
+ causality constraint not_equal input output;
+ causality constraint not_equal input_rot2 output;
+ causality constraint not_equal input_pos3 output;
+ end;
+ icon bg bottom
+ figures
+ line 242 274 290 274 color 0 width 2;
+ rectangle 242 266 290 278 color -1;
+ text '1' 260 269 color 8421504 8;
+ terminals
+ input 250 274 fixed;
+ output 266 274 fixed;
+ input_rot2 282 274 fixed;
+ input_pos3 266 274 fixed;
+ end;
+ implementation eq
+equations
+ output.e[1] = input_rot2.e[1];
+ output.e[2] = input.e;
+ output.e[3] = input_rot2.e[2];
+ output.e[4:6] = input_pos3.e;
+ output.f[1] = input_rot2.f[1];
+ output.f[2] = input.f;
+ output.f[3] = input_rot2.f[2];
+ output.f[4:6] = input_pos3.f;implementation_end;
+specification_end;
+ specification 'rot_z'
+ description '
+
+ 4.8
+ Bond Graph\MR\PowerMux-Rotation.emx
+ 2020-7-21 12:05:13
+1
+ False
+ True
+
+';
+ type PowerMux
+ ports
+ power in input;
+ power out output [6,1];
+ power in input_rot2 [2,1];
+ power in input_pos3 [3,1];
+ restrictions
+ causality constraint not_equal input output;
+ causality constraint not_equal input_rot2 output;
+ causality constraint not_equal input_pos3 output;
+ end;
+ icon bg bottom
+ figures
+ line 328 192 328 240 color 0 width 2;
+ rectangle 324 192 336 240 color -1;
+ text '1' 333 210 color 8421504 8;
+ terminals
+ input 328 200 fixed;
+ output 328 216 fixed;
+ input_rot2 328 232 fixed;
+ input_pos3 328 216 fixed;
+ end;
+ implementation eq
+equations
+ output.e[3] = input.e;
+ output.e[1:2] = input_rot2.e;
+ output.e[4:6] = input_pos3.e;
+ output.f[3] = input.f;
+ output.f[1:2] = input_rot2.f;
+ output.f[4:6] = input_pos3.f;implementation_end;
+specification_end;
+ end;
+ R 296 152
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\R.emx
+ 2011-11-29 16:35:37
+
+';
+ type R
+ ports
+ power in p;
+ end;
+ icon bg top
+ figures
+ text 'R' 296 152 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r = 1000;
+equations
+ p.e = r * p.f;
+implementation_end;
+ R4 239.8 288.2
+ description '4.01False
+ Bond Graph\2D\R-2.emx
+ 2007-9-25 12:6:54
+';
+ type 'R-2'
+ ports
+ power in p [2,1];
+ end;
+ icon bg bottom
+ figures
+ text 'R' 239.8 288.2 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
+equations
+ p.e = r * p.f;
+implementation_end;
+ R5 239.8 168.2
+ description '4.01False
+ Bond Graph\3D\R-3.emx
+ 2007-9-25 12:11:54
+';
+ type 'R-3'
+ ports
+ power in p [3,1];
+ end;
+ icon bg top
+ figures
+ text 'R' 239.8 168.2 color 0 18 bold;
+ end;
+ implementation eq
+parameters
+ real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
+equations
+ p.e = r * p.f;
+implementation_end;
+ end;
+ connections
+ C\p <= OneJunction8\p;
+ C1\p <= OneJunction7\p;
+ OneJunction5\p => C4\p;
+ OneJunction5\p => PowerMux\input_rot2;
+ OneJunction5\p => R4\p;
+ OneJunction7\p => PowerMux\input_pos3;
+ OneJunction7\p => R5\p;
+ OneJunction8\p => PowerMux\input;
+ PowerMux\output => output;
+ R\p <= OneJunction8\p;
+ end;
+ implementation_end;
+ Link1 704 136
+ description '
+
+ 4.8
+ Bond Graph\MR\link-v3.emx
+1
+ False
+ 2020-7-21 11:14:41
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ power in Pin [6,1];
+ power out Pout [6,1];
+ restrictions
+ causality constraint not_equal Pin Pout;
+ end;
+ icon bg bottom
+ figures
+ rectangle 672 112 736 160 color 0 fill 8454041;
+ text 'Link' 704 136 color 0 'Clear Sans' 16;
+ terminals
+ Hin 672 152 fixed;
+ Hout 736 152 fixed;
+ Pin 736 120 fixed;
+ Pout 672 120 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+ real R[3,3];
+ real omega[3];
+initialequations
+ omega = offset[1:3];
+ R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
+ Hab = homogeneous(R,offset[4:6]);
+ AdHab = Adjoint(Hab);
+equations
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link10 872 136
+ description '
+
+ 4.8
+ Bond Graph\MR\link-v3.emx
+1
+ False
+ 2020-7-21 11:14:41
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ power in Pin [6,1];
+ power out Pout [6,1];
+ restrictions
+ causality constraint not_equal Pin Pout;
+ end;
+ icon bg bottom
+ figures
+ rectangle 840 112 904 160 color 0 fill 8454041;
+ text 'Link' 872 136 color 0 'Clear Sans' 16;
+ terminals
+ Hin 840 152 fixed;
+ Hout 904 152 fixed;
+ Pin 904 120 fixed;
+ Pout 840 120 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+ real R[3,3];
+ real omega[3];
+initialequations
+ omega = offset[1:3];
+ R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
+ Hab = homogeneous(R,offset[4:6]);
+ AdHab = Adjoint(Hab);
+equations
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link2 544 136
+ description '
+
+ 4.8
+ Bond Graph\MR\link-v3.emx
+1
+ False
+ 2020-7-21 11:14:41
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ power in Pin [6,1];
+ power out Pout [6,1];
+ restrictions
+ causality constraint not_equal Pin Pout;
+ end;
+ icon bg bottom
+ figures
+ rectangle 512 112 576 160 color 0 fill 8454041;
+ text 'Link' 544 136 color 0 'Clear Sans' 16;
+ terminals
+ Hin 576 152 fixed;
+ Hout 512 152 fixed;
+ Pin 512 120 fixed;
+ Pout 576 120 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[6]= [0;0;0;0;-0.025;0]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+ real R[3,3];
+ real omega[3];
+initialequations
+ omega = offset[1:3];
+ R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
+ Hab = homogeneous(R,offset[4:6]);
+ AdHab = Adjoint(Hab);
+equations
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link3 432 448
+ description '
+
+ 4.8
+ Bond Graph\MR\link-v3.emx
+1
+ False
+ 2020-7-21 11:14:41
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal in Hin [4,4];
+ signal out Hout [4,4];
+ power in Pin [6,1];
+ power out Pout [6,1];
+ restrictions
+ causality constraint not_equal Pin Pout;
+ end;
+ icon bg bottom
+ figures
+ rectangle 408 416 456 480 color 0 fill 8454041;
+ text 'Link' 432 448 color 0 'Clear Sans' 16;
+ terminals
+ Hin 448 416 fixed;
+ Hout 448 480 fixed;
+ Pin 416 480 fixed;
+ Pout 416 416 fixed;
+ end;
+ implementation eq
+parameters
+ real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
+variables
+ real Hab[4,4];
+ real AdHab[6,6];
+ real R[3,3];
+ real omega[3];
+initialequations
+ omega = offset[1:3];
+ R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
+ Hab = homogeneous(R,offset[4:6]);
+ AdHab = Adjoint(Hab);
+equations
+ Hout = Hin * Hab;
+ Pout.e = transpose(AdHab) * Pin.e;
+ Pin.f = AdHab * Pout.f;
+
+ implementation_end;
+ Link4 632 304
+ description '
+
+ 4.8
+ Bond Graph\MR\link-v3.emx
+1
+ False
+ 2020-7-21 11:14:41
+False
+
';
type 'Submodel-Equation'
ports
@@ -5017,7 +6291,7 @@ equations
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.0325;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5034,7 +6308,7 @@ equations
Pin.f = AdHab * Pout.f;
implementation_end;
- Link5 848 616
+ Link5 840 616
description '
4.8
@@ -5056,17 +6330,17 @@ equations
end;
icon bg bottom
figures
- rectangle 816 592 880 640 color 0 fill 8454041;
- text 'Link' 848 616 color 0 'Clear Sans' 16;
+ rectangle 808 592 872 640 color 0 fill 8454041;
+ text 'Link' 840 616 color 0 'Clear Sans' 16;
terminals
- Hin 880 600 fixed;
- Hout 816 600 fixed;
- Pin 816 632 fixed;
- Pout 880 632 fixed;
+ Hin 872 600 fixed;
+ Hout 808 600 fixed;
+ Pin 808 632 fixed;
+ Pout 872 632 fixed;
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5083,7 +6357,7 @@ equations
Pin.f = AdHab * Pout.f;
implementation_end;
- Link6 432 448
+ Link6 432 304
description '
4.8
@@ -5105,17 +6379,17 @@ equations
end;
icon bg bottom
figures
- rectangle 408 416 456 480 color 0 fill 8454041;
- text 'Link' 432 448 color 0 'Clear Sans' 16;
+ rectangle 408 272 456 336 color 0 fill 8454041;
+ text 'Link' 432 304 color 0 'Clear Sans' 16;
terminals
- Hin 448 480 fixed;
- Hout 448 416 fixed;
- Pin 416 416 fixed;
- Pout 416 480 fixed;
+ Hin 448 272 fixed;
+ Hout 448 336 fixed;
+ Pin 416 336 fixed;
+ Pout 416 272 fixed;
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.0325;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5164,7 +6438,7 @@ equations
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5181,7 +6455,7 @@ equations
Pin.f = AdHab * Pout.f;
implementation_end;
- Link8 880 136
+ Link8 976 136
description '
4.8
@@ -5203,17 +6477,17 @@ equations
end;
icon bg bottom
figures
- rectangle 848 112 912 160 color 0 fill 8454041;
- text 'Link' 880 136 color 0 'Clear Sans' 16;
+ rectangle 944 112 1008 160 color 0 fill 8454041;
+ text 'Link' 976 136 color 0 'Clear Sans' 16;
terminals
- Hin 848 152 fixed;
- Hout 912 152 fixed;
- Pin 912 120 fixed;
- Pout 848 120 fixed;
+ Hin 944 152 fixed;
+ Hout 1008 152 fixed;
+ Pin 1008 120 fixed;
+ Pout 944 120 fixed;
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5262,7 +6536,7 @@ equations
end;
implementation eq
parameters
- real offset[6]= [0;0;0;0;0.0325;0]; //coordinates of joint_1
+ real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
variables
real Hab[4,4];
real AdHab[6,6];
@@ -5279,6 +6553,25 @@ equations
Pin.f = AdHab * Pout.f;
implementation_end;
+ Negate1 320 672
+ description '4.01False
+ Signal\Block Diagram\Negate.emx
+ 2007-9-26 12:14:11
+';
+ type Negate
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 304 656 336 688 color 0 fill 15132390;
+ text '-1' 320 672 color 16711680 16 bold;
+ end;
+ implementation eq
+equations
+ output = - input;
+ implementation_end;
OneJunction1 760 632
description '
@@ -5329,65 +6622,291 @@ implementation_end;
end;
implementation eq
equations
- sum (direct (p.e)) = 0;
- equal (collect (p.f));
- flow = first (p.f);
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction3 616 120
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [6,1];
+ signal knot out flow [6,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 616 120 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction4 616 392
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [6,1];
+ signal knot out flow [6,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 616 392 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ OneJunction5 416 584
+ description '
+
+ 4.2
+1
+ False
+ Bond Graph\OneJunction.emx
+ 2011-11-29 16:17:51
+
+';
+ knot OneJunction
+ ports
+ power knot duplicatable none p [6,1];
+ signal knot out flow [6,1];
+ restrictions
+ causality constraint one_out p;
+ end;
+ icon bg
+ figures
+ text '1' 416 584 color 0 18 bold;
+ end;
+ implementation eq
+equations
+ sum (direct (p.e)) = 0;
+ equal (collect (p.f));
+ flow = first (p.f);
+implementation_end;
+ rectanglepath 152 744
+ description '
+
+ 4.8
+ setpoint\rectanglepath.emx
+1
+ False
+ 2020-7-10 12:30:38
+False
+
+';
+ type 'Submodel-Equation'
+ ports
+ signal out output [2,1];
+ end;
+ implementation eq
+/*
+This will generate coordinates for the box that has to be drawn
+*/
+parameters
+ real w = 0.07{m} ;
+ real h = 0.05 {m};
+ real t = 1 {s};
+ real origin[2] = [0.01,0.03]{m};
+variables
+ real v {m/s};
+ real t_w {s};
+ real t_h {s};
+ real period {s};
+initialequations
+ v = (2*w + 2*h)/t;
+ t_w = w / v;
+ t_h = h / v;
+equations
+ period = floor(time / t) * t;
+ output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1];
+ output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2];
+implementation_end;
+ Splitter1 792 600
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 788.8 596.8 795.2 603.2 color -1 fill 0;
+ ellipse 787.7 595.7 796.3 604.3 color -1;
+ terminals
+ input 792 600 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter2 448 360
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 444.8 356.8 451.2 363.2 color -1 fill 0;
+ ellipse 443.7 355.7 452.3 364.3 color -1;
+ terminals
+ input 448 360 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter3 648 360
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 644.8 356.8 651.2 363.2 color -1 fill 0;
+ ellipse 643.7 355.7 652.3 364.3 color -1;
+ terminals
+ input 648 360 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter4 648 152
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 644.8 148.8 651.2 155.2 color -1 fill 0;
+ ellipse 643.7 147.7 652.3 156.3 color -1;
+ terminals
+ input 648 152 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter5 448 152
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 444.8 148.8 451.2 155.2 color -1 fill 0;
+ ellipse 443.7 147.7 452.3 156.3 color -1;
+ terminals
+ input 448 152 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
implementation_end;
- OneJunction3 616 120
- description '
-
- 4.2
+ Splitter6 896 600
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
1
- False
- Bond Graph\OneJunction.emx
- 2011-11-29 16:17:51
-
-';
- knot OneJunction
+ False
+';
+ knot Splitter
ports
- power knot duplicatable none p [6,1];
- signal knot out flow [6,1];
- restrictions
- causality constraint one_out p;
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
end;
- icon bg
+ icon bg ellipse
figures
- text '1' 616 120 color 0 18 bold;
+ ellipse 892.8 596.8 899.2 603.2 color -1 fill 0;
+ ellipse 891.7 595.7 900.3 604.3 color -1;
+ terminals
+ input 896 600 fixed;
end;
implementation eq
equations
- sum (direct (p.e)) = 0;
- equal (collect (p.f));
- flow = first (p.f);
+ collect (output) = input;
implementation_end;
- OneJunction4 616 392
- description '
-
- 4.2
+ Splitter7 648 496
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
1
- False
- Bond Graph\OneJunction.emx
- 2011-11-29 16:17:51
-
-';
- knot OneJunction
+ False
+';
+ knot Splitter
ports
- power knot duplicatable none p [6,1];
- signal knot out flow [6,1];
- restrictions
- causality constraint one_out p;
+ signal knot duplicatable out output [4,4];
+ signal knot in input [4,4];
end;
- icon bg
+ icon bg ellipse
figures
- text '1' 616 392 color 0 18 bold;
+ ellipse 644.8 492.8 651.2 499.2 color -1 fill 0;
+ ellipse 643.7 491.7 652.3 500.3 color -1;
+ terminals
+ input 648 496 fixed;
end;
implementation eq
equations
- sum (direct (p.e)) = 0;
- equal (collect (p.f));
- flow = first (p.f);
+ collect (output) = input;
implementation_end;
- Splitter1 792 600
+ Splitter8 448 496
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
@@ -5401,16 +6920,16 @@ implementation_end;
end;
icon bg ellipse
figures
- ellipse 788.8 596.8 795.2 603.2 color -1 fill 0;
- ellipse 787.7 595.7 796.3 604.3 color -1;
+ ellipse 444.8 492.8 451.2 499.2 color -1 fill 0;
+ ellipse 443.7 491.7 452.3 500.3 color -1;
terminals
- input 792 600 fixed;
+ input 448 496 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
- Splitter2 448 360
+ Splitter9 920 152
description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
@@ -5424,218 +6943,641 @@ implementation_end;
end;
icon bg ellipse
figures
- ellipse 444.8 356.8 451.2 363.2 color -1 fill 0;
- ellipse 443.7 355.7 452.3 364.3 color -1;
+ ellipse 916.8 148.8 923.2 155.2 color -1 fill 0;
+ ellipse 915.7 147.7 924.3 156.3 color -1;
terminals
- input 448 360 fixed;
+ input 920 152 fixed;
end;
implementation eq
equations
collect (output) = input;
implementation_end;
- Splitter3 648 360
- description '4.0
+ stepper_control 320 608
+ description '
+
+ 4.8
+1
+ Motor\stepper_control.emx
+ 2020-7-23 10:55:26
+
+';
+ type Submodel
+ ports
+ signal in setpoint {rad} ;
+ signal out output {rad} ;
+ end;
+ icon bg bottom
+ figures
+ rectangle 264 592 376 624 color 0 fill 15132390;
+ text 'name' 320 608 color 0 'Clear Sans' 16;
+ end;
+ implementation bg
+ submodels
+ Acceleration_int 648 336
+ description '
+
+ 4.3
+1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2013-3-8 14:47:42
+
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 632 320 664 352 color 0 fill 15132390;
+ text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
+ end;
+ implementation eq
+parameters
+ real initial = 0; // initial value
+equations
+ output = int (input, initial);
+ implementation_end;
+ Acceleration_limit 568 336
+ description '4.01False
+ Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
+ 2007-9-26 12:47:40
+';
+ type 'SignalLimiter-Limit'
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ group
+ rectangle 552 320 584 352 color 0 fill 15132390;
+ line 567.9 324.5 567.9 349 color 0 fill 15132390;
+ line 555 336.2 580.7 336.2 color 0 fill 15132390;
+ spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
+ spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
+ spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 20;
+ real minimum = -20;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ plug setpoint 136 336;
+ plug output 791 336;
+ PlusMinus1 240 336
+ description '4.01False
+ Signal\Block Diagram\PlusMinus.emx
+ 2007-9-27 10:15:13
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 232 328 248 344 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ PlusMinus2 432 336
+ description '4.01False
+ Signal\Block Diagram\PlusMinus.emx
+ 2007-9-27 10:15:13
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 424 328 440 344 color 0 fill 16777215;
+ end;
+ implementation eq
+equations
+ output = sum (collect (plus)) - sum (collect (minus));
+ implementation_end;
+ Position_control 296 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PD.emx
+ 2008-1-17 10:49:7
+';
+ type PD
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 280 320 312 352 color 0 fill 15132390;
+ text 'PD' 296.5 336.1 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 4 {}; // Proportional gain
+ real tauD = 100 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
+variables
+ real state, rate;
+equations
+ rate = (kp * error - output) / (beta * tauD);
+ state = int (rate);
+ output = state + kp * error / beta;
+ implementation_end;
+ Splitter3 688 336
+ description '4.0
+ Signal\Block Diagram\Splitter.emx
+ 2008-01-17 11:28:29
+1
+ False
+';
+ knot Splitter
+ ports
+ signal knot duplicatable out output [1];
+ signal knot in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
+ ellipse 683.7 331.7 692.3 340.3 color -1;
+ terminals
+ input 688 336 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Splitter4 752 336
+ description '4.0
Signal\Block Diagram\Splitter.emx
2008-01-17 11:28:29
1
False
';
- knot Splitter
- ports
- signal knot duplicatable out output [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 644.8 356.8 651.2 363.2 color -1 fill 0;
- ellipse 643.7 355.7 652.3 364.3 color -1;
- terminals
- input 648 360 fixed;
- end;
- implementation eq
+ knot Splitter
+ ports
+ signal knot duplicatable out output [1];
+ signal knot in input [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
+ ellipse 747.7 331.7 756.3 340.3 color -1;
+ terminals
+ input 752 336 fixed;
+ end;
+ implementation eq
+equations
+ collect (output) = input;
+implementation_end;
+ Velocity_control 480 336
+ description '
+ 4.0
+ 1
+ False
+ Signal\Control\PID Control\Continuous\PD.emx
+ 2008-1-17 10:49:7
+';
+ type PD
+ ports
+ signal in error;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 464 320 496 352 color 0 fill 15132390;
+ text 'PD' 480.5 336.1 color 16711680 18 bold;
+ end;
+ implementation eq
+parameters
+ real kp = 12 {}; // Proportional gain
+ real tauD = 10 {s}; // Derivative time constant: tauD > 0
+ real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
+variables
+ real state, rate;
+equations
+ rate = (kp * error - output) / (beta * tauD);
+ state = int (rate);
+ output = state + kp * error / beta;
+ implementation_end;
+ Velocity_int 720 336
+ description '
+
+ 4.3
+1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2013-3-8 14:47:42
+
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 704 320 736 352 color 0 fill 15132390;
+ text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
+ end;
+ implementation eq
+parameters
+ real initial = -1.65; // initial value
+equations
+ output = int (input, initial);
+ implementation_end;
+ Velocity_limit 376 336
+ description '4.01False
+ Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
+ 2007-9-26 12:47:40
+';
+ type 'SignalLimiter-Limit'
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ group
+ rectangle 360 320 392 352 color 0 fill 15132390;
+ line 375.9 324.5 375.9 349 color 0 fill 15132390;
+ line 363 336.2 388.7 336.2 color 0 fill 15132390;
+ spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
+ spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
+ spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 25;
+ real minimum = -25;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Acceleration_int\output -> Splitter3\input;
+ Acceleration_limit\output -> Acceleration_int\input;
+ PlusMinus1\output -> Position_control\error;
+ PlusMinus2\output -> Velocity_control\error;
+ Position_control\output -> Velocity_limit\input;
+ setpoint -> PlusMinus1\plus;
+ Splitter3\output -> PlusMinus2\minus 688 288 432 288;
+ Splitter3\output -> Velocity_int\input;
+ Splitter4\output -> output;
+ Splitter4\output -> PlusMinus1\minus 752 400 240 400;
+ Velocity_control\output -> Acceleration_limit\input;
+ Velocity_int\output -> Splitter4\input;
+ Velocity_limit\output -> PlusMinus2\plus;
+ end;
+ implementation_end;
+ stepper_control1 528 744
+ description '
+
+ 4.8
+1
+ Motor\stepper_control.emx
+ 2020-7-22 15:25:26
+
+';
+ type Submodel
+ ports
+ signal in setpoint {rad} ;
+ signal out output {rad} ;
+ end;
+ implementation bg
+ submodels
+ Acceleration_int 648 336
+ description '
+
+ 4.3
+1
+ False
+ Signal\Block Diagram\Integrate.emx
+ 2013-3-8 14:47:42
+
+';
+ type Integrate
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ rectangle 632 320 664 352 color 0 fill 15132390;
+ text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
+ end;
+ implementation eq
+parameters
+ real initial = 0; // initial value
+equations
+ output = int (input, initial);
+ implementation_end;
+ Acceleration_limit 568 336
+ description '4.01False
+ Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx
+ 2007-9-26 12:47:40
+';
+ type 'SignalLimiter-Limit'
+ ports
+ signal in input;
+ signal out output;
+ end;
+ icon bg bottom
+ figures
+ group
+ rectangle 552 320 584 352 color 0 fill 15132390;
+ line 567.9 324.5 567.9 349 color 0 fill 15132390;
+ line 555 336.2 580.7 336.2 color 0 fill 15132390;
+ spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
+ spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
+ spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
+ end;
+ end;
+ implementation eq
+parameters
+ real maximum = 80;
+ real minimum = -80;
+equations
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ plug setpoint 136 336;
+ plug output 791 336;
+ PlusMinus1 240 336
+ description '4.01False
+ Signal\Block Diagram\PlusMinus.emx
+ 2007-9-27 10:15:13
+';
+ knot PlusMinus
+ ports
+ signal knot duplicatable in plus [1];
+ signal knot duplicatable in minus [1];
+ signal knot out output [1];
+ end;
+ icon bg ellipse
+ figures
+ ellipse 232 328 248 344 color 0 fill 16777215;
+ end;
+ implementation eq
equations
- collect (output) = input;
-implementation_end;
- Splitter4 648 152
- description '4.0
- Signal\Block Diagram\Splitter.emx
- 2008-01-17 11:28:29
-1
- False
+ 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 Splitter
- ports
- signal knot duplicatable out output [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 644.8 148.8 651.2 155.2 color -1 fill 0;
- ellipse 643.7 147.7 652.3 156.3 color -1;
- terminals
- input 648 152 fixed;
- end;
- implementation eq
+ 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
- collect (output) = input;
-implementation_end;
- Splitter5 448 496
- description '4.0
- Signal\Block Diagram\Splitter.emx
- 2008-01-17 11:28:29
-1
+ 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
';
- knot Splitter
- ports
- signal knot duplicatable out output [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 444.8 492.8 451.2 499.2 color -1 fill 0;
- ellipse 443.7 491.7 452.3 500.3 color -1;
- terminals
- input 448 496 fixed;
- end;
- implementation eq
+ 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
- collect (output) = input;
-implementation_end;
- Splitter6 896 600
- description '4.0
+ 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 [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 892.8 596.8 899.2 603.2 color -1 fill 0;
- ellipse 891.7 595.7 900.3 604.3 color -1;
- terminals
- input 896 600 fixed;
- end;
- implementation eq
+ 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;
- Splitter7 648 496
- description '4.0
+ 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 [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 644.8 492.8 651.2 499.2 color -1 fill 0;
- ellipse 643.7 491.7 652.3 500.3 color -1;
- terminals
- input 648 496 fixed;
- end;
- implementation eq
+ 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;
- Splitter8 448 152
- description '4.0
- Signal\Block Diagram\Splitter.emx
- 2008-01-17 11:28:29
-1
+ Velocity_control 480 336
+ description '
+ 4.0
+ 1
False
+ Signal\Control\PID Control\Continuous\PD.emx
+ 2008-1-17 10:49:7
';
- knot Splitter
- ports
- signal knot duplicatable out output [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 444.8 148.8 451.2 155.2 color -1 fill 0;
- ellipse 443.7 147.7 452.3 156.3 color -1;
- terminals
- input 448 152 fixed;
- end;
- implementation eq
+ 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
- collect (output) = input;
-implementation_end;
- Splitter9 832 152
- description '4.0
- Signal\Block Diagram\Splitter.emx
- 2008-01-17 11:28:29
+ 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
+ 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
';
- knot Splitter
- ports
- signal knot duplicatable out output [4,4];
- signal knot in input [4,4];
- end;
- icon bg ellipse
- figures
- ellipse 828.8 148.8 835.2 155.2 color -1 fill 0;
- ellipse 827.7 147.7 836.3 156.3 color -1;
- terminals
- input 832 152 fixed;
- end;
- implementation eq
+ 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
- collect (output) = input;
-implementation_end;
+ output = limit (input, minimum, maximum);
+ implementation_end;
+ end;
+ connections
+ Acceleration_int\output -> Splitter3\input;
+ Acceleration_limit\output -> Acceleration_int\input;
+ PlusMinus1\output -> Position_control\error;
+ PlusMinus2\output -> Velocity_control\error;
+ Position_control\output -> Velocity_limit\input;
+ setpoint -> PlusMinus1\plus;
+ Splitter3\output -> PlusMinus2\minus 688 288 432 288;
+ Splitter3\output -> Velocity_int\input;
+ Splitter4\output -> output;
+ Splitter4\output -> PlusMinus1\minus 752 400 240 400;
+ Velocity_control\output -> Acceleration_limit\input;
+ Velocity_int\output -> Splitter4\input;
+ Velocity_limit\output -> PlusMinus2\plus;
+ end;
+ implementation_end;
end;
connections
COM_body3\p => OneJunction4\p;
COM_body4\p => OneJunction3\p;
COM_body5\p => Link8\Pin;
- Ground\output -> JointA\Hin;
- Ground\p <= JointA\Pout;
Ground1\output -> JointC\Hin 1064 600;
Ground1\p <= JointC\Pout 1032 632;
+ inverse_kinematics\angle1 -> Negate1\input;
+ inverse_kinematics\angle2 -> stepper_control1\setpoint;
+ inverse_kinematics\input <- rectanglepath\output;
Joint_dynB\output => JointB\Pdiff;
Joint_dynC\output => JointC\Pdiff;
Joint_dynD\output => JointD\Pdiff;
Joint_dynE\output => JointE\Pdiff;
Joint_dynF\output => JointF\Pdiff;
- JointA\Hout -> Splitter5\input;
JointA\Pdiff <= Joint_dynA\output;
- JointA\Pin <= Link6\Pout;
- JointB\Hout -> Splitter8\input;
- JointB\Pin <= Link2\Pout 416 120;
+ JointA\Pin <= OneJunction5\p;
+ JointA\Pout => Link3\Pin;
+ JointB\Hin <- Splitter5\output;
+ JointB\Hout -> Link6\Hin;
+ JointB\Pin <= Link6\Pout;
+ JointB\Pout => Link2\Pin 416 120;
JointC\Hout -> Splitter6\input;
JointC\Pin <= Link5\Pout;
JointD\Hin <- Link7\Hout 648 600;
JointD\Hout -> Splitter7\input;
JointD\Pin <= Link9\Pout;
JointD\Pout => Link7\Pin 616 632;
+ JointE\Hout -> Splitter4\input;
JointE\Pout => Link4\Pin;
- JointF\Hout -> Splitter9\input;
+ JointF\Hout -> Link10\Hin;
JointF\Pout => Link1\Pin;
Link1\Hout -> JointF\Hin;
- Link2\Hout -> Splitter4\input;
- Link2\Pin <= OneJunction3\p;
- Link3\Hout -> JointB\Hin;
- Link3\Pin <= JointB\Pout;
+ Link10\Hout -> Splitter9\input;
+ Link10\Pout => JointF\Pin;
+ Link2\Pout => OneJunction3\p;
+ Link3\Hout -> Splitter8\input;
Link4\Hout -> JointE\Hin;
Link5\Hout -> Splitter1\input;
Link5\Pin <= OneJunction1\p;
Link6\Hout -> Splitter2\input;
Link6\Pin <= OneJunction2\p;
Link8\Hout -> COM_body5\Hin;
- Link8\Pout => JointF\Pin;
+ Link8\Pout => Link10\Pin;
Link9\Hout -> Splitter3\input;
Link9\Pin <= OneJunction4\p;
+ Negate1\output -> stepper_control\setpoint;
OneJunction1\p <= COM_body2\p;
OneJunction1\p <= Link7\Pout;
OneJunction2\p <= COM_body1\p;
@@ -5643,24 +7585,28 @@ implementation_end;
OneJunction3\p <= Link1\Pout;
OneJunction3\p => JointE\Pin;
OneJunction4\p <= Link4\Pout;
+ OneJunction5\p => Ground2\p;
+ Splitter1\output -> Body2\input;
Splitter1\output -> COM_body2\Hin;
Splitter1\output -> Link7\Hin;
Splitter2\output -> COM_body1\Hin;
Splitter2\output -> Link3\Hin;
Splitter3\output -> COM_body3\Hin;
Splitter3\output -> Link4\Hin;
+ Splitter4\output -> Body4\input;
Splitter4\output -> COM_body4\Hin;
Splitter4\output -> Link1\Hin;
- Splitter5\output -> Body1\input;
- Splitter5\output -> Link6\Hin;
- Splitter6\output -> Body2\input;
+ Splitter4\output -> Link2\Hin;
+ Splitter5\input <- Link2\Hout;
Splitter6\output -> Link5\Hin;
Splitter7\output -> Body3\input;
Splitter7\output -> Link9\Hin;
- Splitter8\output -> Body4\input;
- Splitter8\output -> Link2\Hin 448 152;
+ Splitter8\output -> Body1\input;
+ Splitter8\output -> JointA\Hin;
Splitter9\output -> Body5\input;
Splitter9\output -> Link8\Hin;
+ stepper_control\output -> Joint_dynA\angle;
+ stepper_control1\output -> Joint_dynD\angle;
end;
implementation_end;
]]>
@@ -5683,6 +7629,12 @@ implementation_end;
+
+ COM_body1\InertialTensor\state_initial
+ 6
+ 1
+ 0 0 0 0 0 0
+
COM_body2\InertialTensor\state_initial
6
@@ -5696,23 +7648,35 @@ implementation_end;
0 0 0 0 0 0
- COM_body5\InertialTensor\state_initial
+ COM_body4\InertialTensor\state_initial
6
1
0 0 0 0 0 0
- COM_body1\InertialTensor\state_initial
+ 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
@@ -5720,37 +7684,65 @@ implementation_end;
0 0 0
- JointA\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
- JointC\Hmatrix\p_initial
- 3
- 1
- 0 0 0
+ Joint_dynA\stepper_model\I\state_initial
+ 0
- JointF\Hmatrix\p_initial
+ Joint_dynB\C1\state_initial
3
1
0 0 0
- JointE\Hmatrix\p_initial
- 3
+ Joint_dynB\C4\state_initial
+ 2
1
- 0 0 0
+ 0 0
- Joint_dynE\C1\state_initial
+ Joint_dynC\C1\state_initial
3
1
0 0 0
- Joint_dynE\C4\state_initial
+ Joint_dynC\C4\state_initial
2
1
0 0
@@ -5768,25 +7760,34 @@ implementation_end;
0 0
- Joint_dynA\C1\state_initial
- 3
- 1
- 0 0 0
+ Joint_dynD\C\state_initial
+ 0
- Joint_dynA\C4\state_initial
- 2
- 1
- 0 0
+ Joint_dynD\stepper_model\I1\state_initial
+ 0
- Joint_dynC\C1\state_initial
+ Joint_dynD\stepper_model\I2\state_initial
+ 0
+
+
+ Joint_dynD\stepper_model\I\state_initial
+ 0
+
+
+ Joint_dynD\stepper_model\RotorAngle\angle_initial
+ rad
+ 0
+
+
+ Joint_dynE\C1\state_initial
3
1
0 0 0
- Joint_dynC\C4\state_initial
+ Joint_dynE\C4\state_initial
2
1
0 0
@@ -5808,28 +7809,92 @@ implementation_end;
0
- Joint_dynB\C1\state_initial
- 3
- 1
- 0 0 0
+ stepper_control1\Position_control\state_initial
+ 0
- Joint_dynB\C4\state_initial
- 2
- 1
- 0 0
+ stepper_control1\Velocity_control\state_initial
+ 0
- Link1\Pin.e_initial
- 6
- 1
- 0 0 0 0 0 0
+ stepper_control\Position_control\state_initial
+ 0
+
+
+ stepper_control\Velocity_control\state_initial
+ 0
time
+ Body1\position[1]
+ Body1\position[2]
+ Body1\position[3]
+ Body1\R[1,3]
+ Body1\R[2,3]
+ Body1\R[3,3]
+ Body1\R[1,2]
+ Body1\R[2,2]
+ Body1\R[3,2]
+ Body1\dimension[1]
+ Body1\dimension[2]
+ Body1\dimension[3]
+ Body2\dimension[1]
+ Body2\dimension[2]
+ Body2\dimension[3]
+ Body2\position[1]
+ Body2\position[2]
+ Body2\position[3]
+ Body2\R[1,3]
+ Body2\R[2,3]
+ Body2\R[3,3]
+ Body2\R[1,2]
+ Body2\R[2,2]
+ Body2\R[3,2]
+ Body3\dimension[1]
+ Body3\dimension[2]
+ Body3\dimension[3]
+ Body3\position[1]
+ Body3\position[2]
+ Body3\position[3]
+ Body3\R[1,3]
+ Body3\R[2,3]
+ Body3\R[3,3]
+ Body3\R[1,2]
+ Body3\R[2,2]
+ Body3\R[3,2]
+ Body4\dimension[1]
+ Body4\dimension[2]
+ Body4\dimension[3]
+ Body4\R[1,3]
+ Body4\R[2,3]
+ Body4\R[3,3]
+ Body4\R[1,2]
+ Body4\R[2,2]
+ Body4\R[3,2]
+ Body4\position[1]
+ Body4\position[2]
+ Body4\position[3]
+ Body5\dimension[1]
+ Body5\dimension[2]
+ Body5\dimension[3]
+ Body5\position[1]
+ Body5\position[2]
+ Body5\position[3]
+ Body5\R[1,3]
+ Body5\R[2,3]
+ Body5\R[3,3]
+ Body5\R[1,2]
+ Body5\R[2,2]
+ Body5\R[3,2]
+ stepper_control\setpoint
+ Joint_dynA\stepper_model\angle
+ Joint_dynA\stepper_model\RotorAngle\angle
+ stepper_control1\setpoint
+ Joint_dynD\angle
+ Joint_dynD\stepper_model\RotorAngle\angle
@@ -5853,7 +7918,7 @@ implementation_end;
16777215
true
1
- model
+ StepperA
true
@@ -5903,19 +7968,1667 @@ implementation_end;
0.0
- 10.0
+ 5.823613498640715
true
3
+
+ -2.8
+ -0.8
+ true
+ 2
+
+
+
+ -4.08637499341765
+ 0.0
+ true
+ 2
+
+
+
+ -4.08637499341765
+ 0.0
+ true
+ 2
+
+
+
+
+
+
+
+ 3355111
+ 1
+ 3355111
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ stepper_control\setpoint
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Joint_dynA\stepper_model\angle
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Joint_dynA\stepper_model\RotorAngle\angle
+
+
+
+
+ true
+ 0
+ 16777215
+
+
+
+ D3DPlot
+
+ 2
+ false
+ 16777215
+ true
+
+ 3D Animation
+ 137
+ true
+ false
+ 4294967295
+ Gradients\BlueWhite.png
+ true
+ 1.0
+ 1.0
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+ Reference Frame
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ false
+ Default Lights and Cameras
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ false
+ Ambient
+
+
+
+
+
+ 1
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 0
+
+
+
+ 0.3
+
+
+ 0.3
+
+
+ 0.3
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+
+ 0.3
+
+
+ 0.3
+
+
+ 0.3
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+ true
+ false
+ false
+
+
+ false
+ Parallel
+
+
+ -3
+
+
+ 5
+
+
+ 3
+
+
+
+
+
+ 0.457495710997814
+
+
+ -0.762492851663023
+
+
+ -0.457495710997814
+
+
+
+
+ 0.235379601434674
+
+
+ -0.392299335724456
+
+
+ 0.889211827642101
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 3
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+ 1.0
+
+
+ 0.0
+
+
+ 0.0
+
+
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+ false
+ true
+ true
+
+
+ false
+ Spot Light 1
+
+
+ -3
+
+
+ -5
+
+
+ 1
+
+
+
+
+
+ 0.50709255283711
+
+
+ 0.845154254728517
+
+
+ -0.169030850945703
+
+
+
+
+ 0.0869656553478673
+
+
+ 0.144942758913112
+
+
+ 0.985610760609162
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 2
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+ 1.0
+
+
+ 0.05
+
+
+ 0.05
+
+
+
+ 1.0471975511965976
+
+
+ 1.0471975511965976
+
+ 0.0
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+ false
+ true
+ true
+
+
+ false
+ Spot Light 2
+
+
+ 2
+
+
+ -3
+
+
+ -1
+
+
+
+
+
+ -0.534522483824849
+
+
+ 0.801783725737273
+
+
+ 0.267261241912424
+
+
+
+
+ 0.14824986333222
+
+
+ -0.22237479499833
+
+
+ 0.963624111659432
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 2
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+ 1.0
+
+
+ 0.05
+
+
+ 0.05
+
+
+
+ 1.5707963267948966
+
+
+ 1.5707963267948966
+
+ 0.0
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ true
+
+ false
+ true
+ true
+
+
+ false
+ Camera Looking at Origin
+
+
+ 0.159539928254181
+
+
+ 0.0210195694587388
+
+
+ 0.0764390770931449
+
+
+
+
+
+ -0.966527083347675
+
+
+ -0.12682364469163
+
+
+ -0.223027263585795
+
+
+
+
+ -0.221131710235122
+
+
+ -0.0290159788919472
+
+
+ 0.974812207400704
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 0.01
+ 100.0
+ true
+ 0.003926990816987242
+ 45.0
+ -10.0
+ 10.0
+ 10.0
+ -10.0
+ true
+
+
+ -0.000627364166602552
+
+
+ 3.08669776184333e-006
+
+
+ 0.0394802856014185
+
+
+ true
+
+
+ 1
+
+
+ true
+ true
+ true
+
+
+ false
+ Front(XY)-Camera
+
+
+ 10
+
+
+
+
+
+ -1
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 0.01
+ 100.0
+ true
+ 9.999999999999998
+ 45.0
+ -9.999999999999998
+ 9.999999999999998
+ 9.999999999999998
+ -9.999999999999998
+ true
+
+
+ true
+
+
+ 1
+
+
+ true
+ false
+ false
+
+
+ false
+ Side(YZ)-Camera
+
+
+ 10
+
+
+
+
+
+ -1
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 0.01
+ 100.0
+ true
+ 9.999999999999998
+ 45.0
+ -9.999999999999998
+ 9.999999999999998
+ 9.999999999999998
+ -9.999999999999998
+ true
+
+
+ true
+
+
+ 1
+
+
+ true
+ false
+ false
+
+
+ false
+ Top(XZ)-Camera
+
+
+ 10
+
+
+
+
+
+ -1
+
+
+
+
+ 1
+
+
+ Direct3D
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ 0.01
+ 100.0
+ true
+ 9.999999999999998
+ 45.0
+ -9.999999999999998
+ 9.999999999999998
+ 9.999999999999998
+ -9.999999999999998
+ true
+
+
+ true
+
+
+ 1
+
+
+ true
+ false
+ false
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ false
+ Scenery
+
+
+
+
+
+ Bryant
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ Bottom
+ 1.0
+ true
+ 4
+
+
+ Body1\dimension[1]
+ 0.005
+
+
+ Body1\dimension[2]
+ 0.01
+
+
+ Body1\dimension[3]
+ 0.065
+
+
+ true
+
+
+ 0
+
+
+ 0.501960784313725
+
+
+ 0.501960784313725
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Body1\position[1]
+ 0.0
+
+
+ Body1\position[2]
+ -0.05
+
+
+ Body1\position[3]
+ 0.0
+
+
+
+
+
+ Body1\R[1,3]
+ 0.0
+
+
+ Body1\R[2,3]
+ 0.0
+
+
+ Body1\R[3,3]
+ 1.0
+
+
+
+
+ Body1\R[1,2]
+ 0.0
+
+
+ Body1\R[2,2]
+ 1.0
+
+
+ Body1\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Bottom
+ 1.0
+ true
+ 4
+
+
+ Body2\dimension[1]
+ 0.005
+
+
+ Body2\dimension[2]
+ 0.025
+
+
+ Body2\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 1
+
+
+ 0.501960784313725
+
+
+ 0
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Body2\position[1]
+ 0.0
+
+
+ Body2\position[2]
+ -0.0125
+
+
+ Body2\position[3]
+ 0.0
+
+
+
+
+
+ Body2\R[1,3]
+ 0.0
+
+
+ Body2\R[2,3]
+ 0.0
+
+
+ Body2\R[3,3]
+ 1.0
+
+
+
+
+ Body2\R[1,2]
+ 0.0
+
+
+ Body2\R[2,2]
+ 1.0
+
+
+ Body2\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Bottom
+ 1.0
+ true
+ 4
+
+
+ Body3\dimension[1]
+ 0.005
+
+
+ Body3\dimension[2]
+ 0.01
+
+
+ Body3\dimension[3]
+ 0.065
+
+
+ true
+
+
+ 0.501960784313725
+
+
+ 0.501960784313725
+
+
+ 1
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Body3\position[1]
+ 0.0
+
+
+ Body3\position[2]
+ -0.025
+
+
+ Body3\position[3]
+ 0.0
+
+
+
+
+
+ Body3\R[1,3]
+ 0.0
+
+
+ Body3\R[2,3]
+ 0.0
+
+
+ Body3\R[3,3]
+ 1.0
+
+
+
+
+ Body3\R[1,2]
+ 0.0
+
+
+ Body3\R[2,2]
+ 1.0
+
+
+ Body3\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Body4\dimension[1]
+ 0.005
+
+
+ Body4\dimension[2]
+ 0.05
+
+
+ Body4\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 0.501960784313725
+
+
+ 0
+
+
+ 0
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Body4\position[1]
+ 0.0
+
+
+ Body4\position[2]
+ -0.025
+
+
+ Body4\position[3]
+ 0.065
+
+
+
+
+
+ Body4\R[1,3]
+ 0.0
+
+
+ Body4\R[2,3]
+ 0.0
+
+
+ Body4\R[3,3]
+ 1.0
+
+
+
+
+ Body4\R[1,2]
+ 0.0
+
+
+ Body4\R[2,2]
+ 1.0
+
+
+ Body4\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+ Center
+ 1.0
+ true
+ 4
+
+
+ Body5\dimension[1]
+ 0.005
+
+
+ Body5\dimension[2]
+ 0.025
+
+
+ Body5\dimension[3]
+ 0.01
+
+
+ true
+
+
+ 0.501960784313725
+
+
+ 0
+
+
+ 0
+
+
+ 1.0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ true
+
+
+ 0.5
+
+
+ 0.5
+
+
+ 0.5
+
+
+
+
+
+ 15
+
+ false
+ false
+ Block
+
+
+ Body5\position[1]
+ 0.0
+
+
+ Body5\position[2]
+ 0.0125
+
+
+ Body5\position[3]
+ 0.065
+
+
+
+
+
+ Body5\R[1,3]
+ 0.0
+
+
+ Body5\R[2,3]
+ 0.0
+
+
+ Body5\R[3,3]
+ 1.0
+
+
+
+
+ Body5\R[1,2]
+ 0.0
+
+
+ Body5\R[2,2]
+ 1.0
+
+
+ Body5\R[3,2]
+ 0.0
+
+
+ Matrix
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+ GraphPlot
+
+ 3
+ false
+ 16777215
+ true
+
+
+ true
+ 15780518
+ 12624260
+ 0
+ 10
+ 10
+ 10
+ false
+
+ 16777215
+ true
+ 1
+ StepperD
+ true
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 10
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ Arial
+ 12
+ 34
+ 400
+ 0
+ 0
+ 0
+ 0
+
+
+ true
+ true
+ false
+
0.0
- 10.0
+ 5.823613498640715
+ true
+ 3
+
+
+
+
+
+ -2.0
+ 3.0
+ true
+ 2
+
+
+
+ -0.944547877949926
+ 0.0
true
2
-
+
+
+
+ -0.944547877949926
+ 0.0
+ true
+ 2
+
@@ -5935,6 +9648,48 @@ implementation_end;
true
time
+
+ true
+ stepper_control1\setpoint
+
+
+
+ 6076255
+ 1
+ 6076255
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Joint_dynD\angle
+
+
+
+ 12553035
+ 1
+ 12553035
+ 0
+ true
+ 1
+ 1
+ 1
+ true
+
+ true
+ time
+
+
+ true
+ Joint_dynD\stepper_model\RotorAngle\angle
+
@@ -5952,10 +9707,29 @@ implementation_end;
0
1
+ 3
+
+ Base
+
+
+ 2
+ true
+ Window 2
+ 0
+
+ 2
Base
+
+
+0 0.0259259 1 0.968519
+
+
+0.09375 0.134259 0.892708 0.89537
+
+
@@ -6100,6 +9874,9 @@ implementation_end;
+
+ 1.0
+