1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
size(0,4cm);
import flowchart;
block delay=roundrectangle("$e^{-sT_t}$",(0.33,0));
block system=roundrectangle("$\frac{s+3}{s^2+0.3s+1}$",(0.6,0));
block controller=roundrectangle("$0.06\left( 1 + \frac{1}{s}\right)$",
(0.45,-0.25));
block sum1=circle("",(0.15,0),mindiameter=0.3cm);
block junction1=circle("",(0.75,0),fillpen=currentpen);
draw(delay);
draw(system);
draw(controller);
draw(sum1);
draw(junction1);
add(new void(picture pic, transform t) {
draw(pic,Label("$u$",0.5,N),path(new pair[]{t*(0,0),sum1.left(t)},
Horizontal),Arrow,PenMargin);
draw(pic,path(new pair[]{sum1.right(t),delay.left(t)},Horizontal),Arrow,
PenMargin);
label(pic,"-",sum1.bottom(t),ESE);
draw(pic,path(new pair[]{delay.right(t),system.left(t)},Horizontal),Arrow,
PenMargin);
draw(pic,path(new pair[]{system.right(t),junction1.left(t)},Horizontal),
PenMargin);
draw(pic,Label("$y$",0.5,N),path(new pair[]{junction1.right(t),t*(0.9,0)},
Horizontal),Arrow,PenMargin);
draw(pic,path(new pair[]{junction1.bottom(t),controller.right(t)},Vertical),
Arrow,PenMargin);
draw(pic,path(new pair[]{controller.left(t),sum1.bottom(t)},Horizontal),
Arrow,PenMargin);
});
|