|
- <?xml version="1.0" encoding="UTF-8"?>
- <Document>
- <Model version="4.8" build="4.8.2.10124">
- <Sidops>
- <![CDATA[stepper_control 584 336
description '<Information>
- <Description>
- <Version>4.8</Version>
- <IsMainModel>1</IsMainModel>
- <LibraryPath>Motor\stepper_control.emx</LibraryPath>
- <TimeStamp>2020-7-22 15:25:26</TimeStamp>
- </Description>
- </Information>';
type Submodel
ports
signal in setpoint {rad} ;
signal out output {rad} ;
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 initial = 0; // initial value
equations
output = int (input, initial);
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 maximum = 200;
real minimum = -200;
equations
output = limit (input, minimum, maximum);
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
real maximum = 25;
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Splitter3 688 336
description '<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
real maximum = 100;
variables
real state, rate;
equations
rate = (kp * error - output) / (beta * tauD);
state = int (rate);
output = state + kp * error / beta;
implementation_end;
Velocity_int 720 336
description '<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 initial = 0; // initial value
equations
output = int (input, initial);
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 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;
]]>
- </Sidops>
- </Model>
- </Document>
|