Mercurial > hg > octave-nkf
comparison scripts/control/bddemo.m @ 3228:dbcc24961c44
[project @ 1998-12-09 18:42:12 by jwe]
author | jwe |
---|---|
date | Wed, 09 Dec 1998 18:42:13 +0000 |
parents | ba1c7cdc6090 |
children | 98e15955107e |
comparison
equal
deleted
inserted
replaced
3227:e090571062ee | 3228:dbcc24961c44 |
---|---|
42 k=0; | 42 k=0; |
43 while(k > 14 || k < 1) | 43 while(k > 14 || k < 1) |
44 k = menu("Octave Block Diagram Manipulations Demo", ... | 44 k = menu("Octave Block Diagram Manipulations Demo", ... |
45 "sysadd/syssub: F(s) = G(s) +/- H(s)", ... | 45 "sysadd/syssub: F(s) = G(s) +/- H(s)", ... |
46 "sysappend: add new inputs/outputs", ... | 46 "sysappend: add new inputs/outputs", ... |
47 "syschnames: change names of inputs, outputs, and/or states", ... | 47 "syssetsignals: change names of inputs, outputs, and/or states", ... |
48 "sysconnect: connect specified system inputs/outputs", ... | 48 "sysconnect: connect specified system inputs/outputs", ... |
49 "syscont/sysdisc: extract the continuous (discrete) part of a system", ... | 49 "syscont/sysdisc: extract the continuous (discrete) part of a system", ... |
50 "sysdup: duplicate specified inputs/outputs", ... | 50 "sysdup: duplicate specified inputs/outputs", ... |
51 "sysgroup: group two systems into a single system,", ... | 51 "sysgroup: group two systems into a single system,", ... |
52 "sysmult: F(s) = G(s)*H(s) (series connection)", ... | 52 "sysmult: F(s) = G(s)*H(s) (series connection)", ... |
118 disp(" ") | 118 disp(" ") |
119 disp("sys1 is thus:") | 119 disp("sys1 is thus:") |
120 sysout(sys1); | 120 sysout(sys1); |
121 prompt | 121 prompt |
122 elseif (k == 3) | 122 elseif (k == 3) |
123 disp("syschnames:") | 123 disp("syssetsignals:") |
124 help syschnames | 124 help syssetsignals |
125 disp("Example system"); | 125 disp("Example system"); |
126 a = rand(3,3); | 126 a = rand(3,3); |
127 b = rand(3,2); | 127 b = rand(3,2); |
128 c = rand(2,3); | 128 c = rand(2,3); |
129 sys = ss2sys(a,b,c); | 129 sys = ss2sys(a,b,c); |
130 sysout(sys); | 130 sysout(sys); |
131 prompt | 131 prompt |
132 disp("Change state names to larry, moe, and curly as follows:") | 132 disp("Change state names to larry, moe, and curly as follows:") |
133 sys = syschnames(sys,"st",1:3,["larry";"moe " ; "curly"]); | 133 cmd = "sys = syssetsignals(sys,\"st\",list(\"larry\",\"moe \" , \"curly\"));"; |
134 cmd = "sys = syschnames(sys,\"st\",1:3,[\"larry\";\"moe \" ; \"curly\"]);"; | |
135 run_cmd | 134 run_cmd |
136 disp("Indicate that output 2 is discrete-time:") | 135 disp("Indicate that output 2 is discrete-time:") |
137 cmd = "sys = syschnames(sys,\"yd\",2,1);"; | 136 cmd = "sys = syssetsignals(sys,\"yd\",1,2);"; |
137 run_cmd | |
138 disp("Change output 2 name to \"Vir\""); | |
139 cmd = "sys = syssetsignals(sys,\"out\",\"Vir\",2);"; | |
138 run_cmd | 140 run_cmd |
139 disp("Resulting system is:") | 141 disp("Resulting system is:") |
140 sysout(sys); | 142 sysout(sys); |
141 prompt | 143 prompt |
142 elseif (k == 4) | 144 elseif (k == 4) |
290 disp("sysp=") | 292 disp("sysp=") |
291 sysout(sysp); | 293 sysout(sysp); |
292 prompt | 294 prompt |
293 disp("parallel can be used for multiple input systems as well:") | 295 disp("parallel can be used for multiple input systems as well:") |
294 | 296 |
295 in1 = ["u1.1";"u1.2"]; | 297 in1 = list("u1.1","u1.2"); |
296 in2 = ["u2.1";"u2.2"]; | 298 in2 = list("u2.1","u2.2"); |
297 out1 = ["y1.1";"y1.2"]; | 299 out1 = list("y1.1","y1.2"); |
298 out2 = ["y2.1";"y2.2"]; | 300 out2 = list("y2.1","y2.2"); |
299 | 301 |
300 sys1 = ss2sys([-1,0;0 -2],eye(2),eye(2),[]); | 302 sys1 = ss2sys([-1,0;0 -2],eye(2),eye(2),[]); |
301 sys2 = ss2sys([-2,0;0 -4],eye(2),eye(2),[]); | 303 sys2 = ss2sys([-2,0;0 -4],eye(2),eye(2),[]); |
302 | 304 |
303 sys1 = syschnames(sys1,"in",1:2,in1); | 305 sys1 = syssetsignals(sys1,"in",in1); |
304 sys1 = syschnames(sys1,"out",1:2,out1); | 306 sys1 = syssetsignals(sys1,"out",out1); |
305 | 307 |
306 sys2 = syschnames(sys2,"in",1:2,in2); | 308 sys2 = syssetsignals(sys2,"in",in2); |
307 sys2 = syschnames(sys2,"out",1:2,out2); | 309 sys2 = syssetsignals(sys2,"out",out2); |
308 | 310 |
309 disp("sys1=") | 311 disp("sys1=") |
310 sysout(sys1); | 312 sysout(sys1); |
311 disp("sys2=") | 313 disp("sys2=") |
312 sysout(sys2); | 314 sysout(sys2); |
541 disp(" ------------------------------"); | 543 disp(" ------------------------------"); |
542 disp(" ") | 544 disp(" ") |
543 disp("Step 1: We've already created systems P and K. Create a sum ") | 545 disp("Step 1: We've already created systems P and K. Create a sum ") |
544 disp("block as follows:") | 546 disp("block as follows:") |
545 implicit_str_to_num_ok = "warn"; | 547 implicit_str_to_num_ok = "warn"; |
546 cmd = "S = ss2sys([],[],[],[1 -1],0,0,0,[],[""r(t)"";""y(t)""],""e(t)"");"; | 548 cmd = "S = ss2sys([],[],[],[1 -1],0,0,0,[],list(""r(t)"",""y(t)""),""e(t)"");"; |
547 run_cmd | 549 run_cmd |
548 implicit_str_to_num_ok = 1; | 550 implicit_str_to_num_ok = 1; |
549 disp("You may avoid the string conversion warning by setting the ") | 551 disp("You may avoid the string conversion warning by setting the ") |
550 disp("Octave global variables implicit_str_to_num_ok = 1"); | 552 disp("Octave global variables implicit_str_to_num_ok = 1"); |
551 disp(" "); | 553 disp(" "); |