|
- <?xml version="1.0" encoding="UTF-8"?>
- <Document>
- <Icons>
- <Icon size="256" bpp="32" format="png">
- <![CDATA[89504e470d0a1a0a0000000d49484452000001000000010008060000005c72a86600000006624b474400ff00ff00ffa0bda793000000097048597300000ec400000ec401952b0e1b0000079349444154789ceddd3168546b1ec6e17f96ab82828888902210b08c8520110291adbc82a08210502c8418b1176c4c8a2d924a4c61ab132c04ad44ed3458884a1644b03060255c04ad049b146b335bc80c192789b9ee3a89becfd338993333e773707ee73b5f8e4c5fb3d92c20d33f367a00c0c61100082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c1040082090004130008260010ec8fd536f4f5f5fdb39703017eba7f379bcdff2cbfa3afd96caef8c8bebebe953700bfaac166b3f9d7f23b9c0240b0554f015a3e7efc583b77eeecc558809f60c78e1dab6efb6e009acd66ad769a00fcda9c0240300180600200c1ac0140303300082600104c0020980040308b8010cc0c0082090004130008660d0082990140300180600200c1ac0140303300082600104c0020980040308b8010cc0c0082090004130008660d0082990140b0efce00f8f92e5fbedcfe73efdebdf5ead5ab7afaf4697dfcf8b1fd9893274fd6e8e868d773dfbf7f5f2f5fbeac8585858efbfbfbfb6b7070b08687876b606060cd7deed8b1a31e3d7ad4f11a23232375ead4a9f6cfcf9f3faf070f1eacbafddb313d79f2a41617173bc673e8d0a115ff0e6c1c01d8241a8d461d3972a4e6e7e7abd1685455d5f9f3e7dbb71b8d46ddbd7bb7fefcf3cff673eeddbb57131313edc72e373d3dddbefdecd9b31a1a1afa5bfb6cfd3c3a3a5ab76fdf6ebfdeb7dbbf8dc0e2e2621d3e7cb8fdd8fefefeaafafa2dd3274e9ca8a9a9a9ba74e9d28fbc45fc0402b0899c3e7dbace9f3f5f376fdeace1e1e1dabd7b774d4e4ed6fdfbf7ebd2a54b353f3fdf1180e1e1e19a9a9a5af1c83a393959737373353d3d5db76eddaaab57afaeb9cf870f1fd6fefdfb6bcb962d35323252131313353131d10ecb4adb1716163a02b0b4b454b76eddaaaaaaf9f9f93a78f060c7b6fefefe9a9e9eaec1c1c155670ff496006c22b3b3b3353636d6f57dee636363ede9f4d2d2527bfbc0c0c0aa47d35dbb76d5c58b17dba711cb9fb7dccd9b37ebf8f1e3b565cb96f67d478f1e6d1fe9878686bac674ead4a95a5858a846a351939393b56bd7aeaaaa7af1e245351a8d9a9d9dedf8f0577dfd8efab1b1b19a9e9eee0a071bc722e02672ecd8b1153fa4adfb1a8d462d2d2dadfbf5d6f3bcd1d1d18e0ffff2e7ad35a6962f5fbeb46fbf79f3a6aabece4c56323030d075aac2c63203f80d2c2d2dd5dbb76febd3a74fed0f61ebc8df3a57ef85d63e5ba7012b698da7b5e0c9c612805fdce3c78fbb16f15a5a0b70bdb6d67ea7a6a6aaaa6aebd6adbd1a0e6b7021d026d07a7fd77aaf577acce3c78febcc9933555575e7ce9d3a70e040d751f5c3870f353737d7f5dadfdbe78f6c6ffd79f6ecd9751dddfdbbda786600bfb0f9f9f9aafa1a826f17dd3642ebc8fffefd7bd3fb5f8445c0dfc04a17fa547dbd4e606e6eae67e3181c1cacaaaaa74f9ff66c9ffc6f04e017d63ae2debe7dbb63957f7171b1666767ebc2850b3d1dcfd1a3476b7c7cbc666666eadebd7b5dbf7978fefc79cdceced6e7cf9f7b3a2e56670d601359cf7bbdfc31274e9ca89999999a9999e9b86c786e6eaec6c7c7ebf5ebd775fdfaf515d700d6bbcfbfb37dfbf6ed75eedcb9aaaaba70e1428d8f8f773cb6351b191a1aeab8a0898d630d6093f8f6c3b29ec7ecdbb7af5ebf7edd75ddfdfdfbf73bae0c5cedb5bfb7cf1fd93e34345457ae5ca9919191aeff9f70eddab51a1d1dad7dfbf6adf9baf44edf6a75efebeb6b5655bd7bf7ae76eedcd9d34101ff3f7bf6ec69dd1c6c369b7f2ddf660d0082590380606600104c002098004030018060ebba0ec02220fc9ecc0020980040300180602e0482606600104c0020980040306b0010cc0c0082090004130008260010cc222004330380600200c104008259038060df0dc08d1b376adbb66dbd180bd063dffd6620e0b7d1f5cd406bcd00fef573c702f458d7d732af3a03007e7f7e0b00c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c1040082fd17c1b44392c12ac9420000000049454e44ae426082]]>
- </Icon>
- </Icons>
- <Model version="4.8" build="4.8.2.10124">
- <Sidops>
- <![CDATA[stepper_control 704 592
description '<Information>
- <Description>
- <Version>4.8</Version>
- <IsMainModel>1</IsMainModel>
- <LibraryPath>Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx</LibraryPath>
- <TimeStamp>2020-7-23 13:09:57</TimeStamp>
- </Description>
- <Attributes>
- <GlobalRelations>parameters
- real max_acceleration = 100 {rad/s2};
- real max_velocity = 25 {rad/s};
- real initial_velocity = 0 {rad/s};
- real initial_angle = 0 {rad};</GlobalRelations>
- </Attributes>
- </Information>';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
end;
icon bg bottom
figures
rectangle 648 576 760 608 color 0 fill 15132390;
text 'name' 704 592 color 0 'Clear Sans' 16;
end;
implementation bg
submodels
Acceleration_int 648 336
description '<Information>
<Description>
<Version>4.3</Version>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
<TimeStamp>2013-3-8 14:47:42</TimeStamp>
</Description>
</Information>';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 632 320 664 352 color 0 fill 15132390;
text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_velocity; // initial value
equations
output = int (input, initial_velocity);
implementation_end;
Acceleration_limit 568 336
description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
<TimeStamp>2007-9-26 12:47:40</TimeStamp>
</Description>';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 552 320 584 352 color 0 fill 15132390;
line 567.9 324.5 567.9 349 color 0 fill 15132390;
line 555 336.2 580.7 336.2 color 0 fill 15132390;
spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_acceleration {rad/s2};
equations
output = limit (input, -max_acceleration, max_acceleration);
implementation_end;
plug setpoint 136 336;
plug output 791 336;
PlusMinus1 240 336
description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
<TimeStamp>2007-9-27 10:15:13</TimeStamp>
</Description>';
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 '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
<TimeStamp>2007-9-27 10:15:13</TimeStamp>
</Description>';
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 '<Description>
<Version>4.0</Version>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
<TimeStamp>2008-1-17 10:49:7</TimeStamp>
</Description>';
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 '<Description><Version>4.0</Version>
<LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
<TimeStamp>2008-01-17 11:28:29</TimeStamp>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
</Description>';
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 '<Description><Version>4.0</Version>
<LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
<TimeStamp>2008-01-17 11:28:29</TimeStamp>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
</Description>';
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 '<Description>
<Version>4.0</Version>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
<TimeStamp>2008-1-17 10:49:7</TimeStamp>
</Description>';
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 '<Information>
<Description>
<Version>4.3</Version>
<IsMainModel>1</IsMainModel>
<KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
<TimeStamp>2013-3-8 14:47:42</TimeStamp>
</Description>
</Information>';
type Integrate
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
rectangle 704 320 736 352 color 0 fill 15132390;
text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
end;
implementation eq
parameters
real global initial_angle; // initial value
equations
output = int (input, initial_angle);
implementation_end;
Velocity_limit 376 336
description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
<LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
<TimeStamp>2007-9-26 12:47:40</TimeStamp>
</Description>';
type 'SignalLimiter-Limit'
ports
signal in input;
signal out output;
end;
icon bg bottom
figures
group
rectangle 360 320 392 352 color 0 fill 15132390;
line 375.9 324.5 375.9 349 color 0 fill 15132390;
line 363 336.2 388.7 336.2 color 0 fill 15132390;
spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
end;
end;
implementation eq
parameters
real global max_velocity {rad/s};
equations
output = limit (input, -max_velocity, max_velocity);
implementation_end;
end;
connections
Acceleration_int\output -> Splitter3\input;
Acceleration_limit\output -> Acceleration_int\input;
PlusMinus1\output -> Position_control\error;
PlusMinus2\output -> Velocity_control\error;
Position_control\output -> Velocity_limit\input;
setpoint -> PlusMinus1\plus;
Splitter3\output -> PlusMinus2\minus 688 288 432 288;
Splitter3\output -> Velocity_int\input;
Splitter4\output -> output;
Splitter4\output -> PlusMinus1\minus 752 400 240 400;
Velocity_control\output -> Acceleration_limit\input;
Velocity_int\output -> Splitter4\input;
Velocity_limit\output -> PlusMinus2\plus;
end;
implementation_end;
]]>
- </Sidops>
- </Model>
- </Document>
|