You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
13KB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Document>
  3. <Icons>
  4. <Icon size="256" bpp="32" format="png">
  5. <![CDATA[89504e470d0a1a0a0000000d49484452000001000000010008060000005c72a86600000006624b474400ff00ff00ffa0bda793000000097048597300000ec400000ec401952b0e1b0000079349444154789ceddd3168546b1ec6e17f96ab82828888902210b08c8520110291adbc82a08210502c8418b1176c4c8a2d924a4c61ab132c04ad44ed3458884a1644b03060255c04ad049b146b335bc80c192789b9ee3a89becfd338993333e773707ee73b5f8e4c5fb3d92c20d33f367a00c0c61100082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c1040082090004130008260010ec8fd536f4f5f5fdb39703017eba7f379bcdff2cbfa3afd96caef8c8bebebe953700bfaac166b3f9d7f23b9c0240b0554f015a3e7efc583b77eeecc558809f60c78e1dab6efb6e009acd66ad769a00fcda9c0240300180600200c1ac0140303300082600104c0020980040308b8010cc0c0082090004130008660d0082990140300180600200c1ac0140303300082600104c0020980040308b8010cc0c0082090004130008660d0082990140b0efce00f8f92e5fbedcfe73efdebdf5ead5ab7afaf4697dfcf8b1fd9893274fd6e8e868d773dfbf7f5f2f5fbeac8585858efbfbfbfb6b7070b08687876b606060cd7deed8b1a31e3d7ad4f11a23232375ead4a9f6cfcf9f3faf070f1eacbafddb313d79f2a41617173bc673e8d0a115ff0e6c1c01d8241a8d461d3972a4e6e7e7abd1685455d5f9f3e7dbb71b8d46ddbd7bb7fefcf3cff673eeddbb57131313edc72e373d3dddbefdecd9b31a1a1afa5bfb6cfd3c3a3a5ab76fdf6ebfdeb7dbbf8dc0e2e2621d3e7cb8fdd8fefefeaafafa2dd3274e9ca8a9a9a9ba74e9d28fbc45fc0402b0899c3e7dbace9f3f5f376fdeace1e1e1dabd7b774d4e4ed6fdfbf7ebd2a54b353f3fdf1180e1e1e19a9a9a5af1c83a393959737373353d3d5db76eddaaab57afaeb9cf870f1fd6fefdfb6bcb962d35323252131313353131d10ecb4adb1716163a02b0b4b454b76eddaaaaaaf9f9f93a78f060c7b6fefefe9a9e9eaec1c1c155670ff496006c22b3b3b3353636d6f57dee636363ede9f4d2d2527bfbc0c0c0aa47d35dbb76d5c58b17dba711cb9fb7dccd9b37ebf8f1e3b565cb96f67d478f1e6d1fe9878686bac674ead4a95a5858a846a351939393b56bd7aeaaaa7af1e245351a8d9a9d9dedf8f0577dfd8efab1b1b19a9e9eee0a071bc722e02672ecd8b1153fa4adfb1a8d462d2d2dadfbf5d6f3bcd1d1d18e0ffff2e7ad35a6962f5fbeb46fbf79f3a6aabece4c56323030d075aac2c63203f80d2c2d2dd5dbb76febd3a74fed0f61ebc8df3a57ef85d63e5ba7012b698da7b5e0c9c612805fdce3c78fbb16f15a5a0b70bdb6d67ea7a6a6aaaa6aebd6adbd1a0e6b7021d026d07a7fd77aaf577acce3c78febcc9933555575e7ce9d3a70e040d751f5c3870f353737d7f5dadfdbe78f6c6ffd79f6ecd9751dddfdbbda786600bfb0f9f9f9aafa1a826f17dd3642ebc8fffefd7bd3fb5f8445c0dfc04a17fa547dbd4e606e6eae67e3181c1cacaaaaa74f9ff66c9ffc6f04e017d63ae2debe7dbb63957f7171b1666767ebc2850b3d1dcfd1a3476b7c7cbc666666eadebd7b5dbf7978fefc79cdceced6e7cf9f7b3a2e56670d601359cf7bbdfc31274e9ca89999999a9999e9b86c786e6eaec6c7c7ebf5ebd775fdfaf515d700d6bbcfbfb37dfbf6ed75eedcb9aaaaba70e1428d8f8f773cb6351b191a1aeab8a0898d630d6093f8f6c3b29ec7ecdbb7af5ebf7edd75ddfdfdfbf73bae0c5cedb5bfb7cf1fd93e34345457ae5ca9919191aeff9f70eddab51a1d1dad7dfbf6adf9baf44edf6a75efebeb6b5655bd7bf7ae76eedcd9d34101ff3f7bf6ec69dd1c6c369b7f2ddf660d0082590380606600104c002098004030018060ebba0ec02220fc9ecc0020980040300180602e0482606600104c0020980040306b0010cc0c0082090004130008260010cc222004330380600200c104008259038060df0dc08d1b376adbb66dbd180bd063dffd6620e0b7d1f5cd406bcd00fef573c702f458d7d732af3a03007e7f7e0b00c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c10400820900041300082600104c0020980040300180600200c1040082fd17c1b44392c12ac9420000000049454e44ae426082]]>
  6. </Icon>
  7. </Icons>
  8. <Model version="4.8" build="4.8.2.10124">
  9. <Sidops>
  10. <![CDATA[stepper_control 704 592 description '<Information>
  11. <Description>
  12. <Version>4.8</Version>
  13. <IsMainModel>1</IsMainModel>
  14. <LibraryPath>Z:\home\wouter\Documents\studie\ma\mahd\implementation\library\Motor\stepper_control.emx</LibraryPath>
  15. <TimeStamp>2020-7-23 13:09:57</TimeStamp>
  16. </Description>
  17. <Attributes>
  18. <GlobalRelations>parameters
  19. real max_acceleration = 100 {rad/s2};
  20. real max_velocity = 25 {rad/s};
  21. real initial_velocity = 0 {rad/s};
  22. real initial_angle = 0 {rad};</GlobalRelations>
  23. </Attributes>
  24. </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; ]]>
  25. </Sidops>
  26. </Model>
  27. </Document>