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(" ");