Matlab Computer Modules ECE a Fall

695 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
695
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Matlab Computer Modules ECE a Fall

  1. 1. UNIVERSITY OF CALIFORNIA, SANTA BARBARA Department of Electrical and Computer Engineering Matlab Computer Modules ECE 147a (Fall 95) Copyright c 1995, Roy Smith This material is provided solely for the use of students enrolled in ECE 147a at the University of California, Santa Barbara, in Fall 1995.
  2. 2. 2 ECE 147a: (Fall 95) Matlab Computer Modules Contents 1 Overview 4 2 Using Matlab 4 2.1 Computer Facilities : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2 Starting Matlab and -Tools : : : : : : : : : : : : : : : : : : : : 5 2.2.1 IBM : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2.2 Macintosh : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2.2.3 Macintosh Path Problems : : : : : : : : : : : : : : : : : : 6 2.2.4 Disk Usage : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.3 Automating Matlab and Taking Notes : : : : : : : : : : : : : : 7 2.3.1 m- les : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.3.2 Diary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.4 Setting up Matrices and Vectors in Matlab : : : : : : : : : : : : 8 2.5 Special Functions for Control Problems : : : : : : : : : : : : : : 8 2.5.1 Control Toolbox : : : : : : : : : : : : : : : : : : : : : : : 8 2.5.2 -Tools : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.6 Graphics and Printouts : : : : : : : : : : : : : : : : : : : : : : : 9 2.7 Memory Problems : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.8 Example Control Problems : : : : : : : : : : : : : : : : : : : : : 10 3 Module 1: Dynamic Response 20 3.1 Overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 3.2 Module 1: Listing and Graphics : : : : : : : : : : : : : : : : : : : 20 3.3 Problems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 39
  3. 3. 3 4 Module 2: PID Control 40 4.1 Overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 40 4.2 Module 2: Listing and Graphics : : : : : : : : : : : : : : : : : : : 40 4.3 Problems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 54 5 Module 3: Root Locus 55 5.1 Overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 55 5.2 Module 3: Listing and Graphics : : : : : : : : : : : : : : : : : : : 55 5.3 Problems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 61 5.4 Documentation: rloc.m : : : : : : : : : : : : : : : : : : : : : : : 63 6 Module 4: Bode, Nyquist & Loopshaping Methods 65 6.1 Overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 65 6.2 Module 4: Listing and Graphics : : : : : : : : : : : : : : : : : : : 65 6.3 Problems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 86
  4. 4. 4 ECE 147a: (Fall 95) Matlab Computer Modules 1 Overview This booklet contains the four Matlab teaching modules which accompany ECE 147a. They cover most of the topics taught in the course and are intended to be worked on at the same time the material is being presented in lectures. Each consists of three parts: a discussion of the ideas and topics; one or more worked out examples (complete with the required code); and a series of problems for you to work out. The code and graphics for the worked out examples are presented in this handout. Each Mac in the lab also has the example code on it. Make a copy of these for yourself and use them as templates for the work to be done on the problems. Do not modify the originals. The modules are due to be handed in at approximately two week intervals and will alternate with the in-class homework assignments. You will hand in print- outs of the code, appropriate plots, and where applicable, written answers to questions. It's very easy to generate lots of paper doing this | try to avoid that temptation and submit only that which is necesary. I'm impressed by clear and concise work and hate wading through verbiage. Note that it takes a longer time to produce a shorter document covering the same material. The gurus amongst will probably be able to generate typeset documents which include the graphs and print-outs. Don't waste too much time on this. Start work on these early. You will run into plenty of unforseen obstacles, especially in the early modules, as you get up to speed. Remember that you can use Matlab and the material in these modules to help you in any other part of the course (except for the fact that you won't have access to computers during the exams). I encourage you to play around with these problems | if there is something that you don't understand or are unsure about, then code it up in Matlab and try it out. All references in the modules to the text refer to Feedback Control of Dynamic Systems," 2nd Edition, by G.F. Franklin, J.D. Powell and A. Emami-Naeini (Addison Wesley, 1991). These modules and notes are an evolving thing. If you have any suggestions as to how they might be improved I would be glad to hear them. For example, there may be parts of the module that you do not understand, or commands that seem obscure. Please write these things down and send me a note. The students next year will de nitely appreciate it. 2 Using Matlab Most students enrolled in ECE147a have already used Matlab for at least one other class. If you haven't there is a very good introduction, the Matlab
  5. 5. Using Matlab 5 Primer," by Kermit Sigmon, which is available in the Library Reserve Book Room. I suggest that you get up to speed on Matlab as soon as possible | it will do a lot of tedious calculations that might come up in labs and homeworks. You can use Matlab for everything in the course except the closed book exams. It is very helpful for homeworks and labs. I encourage you to play around with it on simple control problems. It's a very quick way of getting some intuition about what is going on. 2.1 Computer Facilities This year is the rst year that the ECI workstations are available for Matlab use. The instructions here discuss the use of Matlab on IBM PCs and Macs. The Controls Lab (3120, Eng. I.) is equipped with PCs so you can use Matlab while you are doing your lab experiments. The Mac instructions will probably only be relevant if you use a Mac at home or use Matlab in the MCL. I'm sure that you will be able to work out how to translate these instructions to the new machines. The Controls Lab has about ve working IBMs which are also used for running the digital control experiments in ECE147b. Matlab is available on these machines, however the Lab is open only during the scheduled lab times. Some students have Macs or PCs at home and may want to buy Matlab for them. There is book available entitled The Student Edition of Matlab," which comes with a version of Matlab software. The book store may a copy. If not they can order it | the publisher is Prentice-Hall and the ISBN is 0-13-855982-1 (IBM 5.25 inch disk) or 0-13-855974-0 (IBM 3.5 inch disk). The software is more limited than that available in the Maclab. For example, matrices are limited to 1024 elements. The controls and toolboxes are not included | however I may be able to loan the toolbox to any ECE147 student who buys the student version. If you buy a student version you can get a $50.00 discount on the real thing later. Matlab is readily available in the Maclab and most engineering employers have Matlab | which means that there may not be a good reason for you to have a version at home too. 2.2 Starting Matlab and -Tools 2.2.1 IBM On the IBM machines starting Matlab is simply a matter of entering the com- mand,
  6. 6. 6 ECE 147a: (Fall 95) Matlab Computer Modules C:> MATLAB The machines in the Controls Lab should also have -Tools installed. These machines are old and have accumulated super uous les on their disks. The quality of Matlab, and -Tools is not guaranteed on these machines. 2.2.2 Macintosh The rudimentary aspects of running the Mac can be learned in a couple of minutes. If you have never used one before ask either the TA or someone in the Lab to show you how to start. I will assume that you know how to move around the folders, drag & copy, delete, open disks and select menu items. Matlab is located in a folder, labeled MATLAB on the hard disk. To run Matlab you need only open that folder and double click on the Mac II-MatLab application. This alone does not give you access to -Tools functions or the assigned modules. These les are stored on the Unix server and you must rst establish a link to that server. This is done in the following way. Pull down the menu from the colored apple and select the Chooser. Highlight the AppleShare icon Highlight the Maclab File Server line in the resulting window. Click on the OK button. You will now need to ll in your username and password. After doing this click OK. The material that can be accessed over the network will be displayed. Highlight the server.mutools line and click OK. This procedure will give you access to all of the -Tools functions. The proce- dure for setting up access to the printer is almost identical except that the line summit.fusernameg has to be highlighted. You should set up both things before starting work. Before shutting o the machines drag both of these icons into the trash. This is very important | if you do not do this your login priviledges are available to the next person to turn on the machine. Similarly, do not set up any automated server connection procedure using your account and password. 2.2.3 Macintosh Path Problems If, after setting up the server connection, you still cannot use Matlab, you may have an incorrect path. Unfortunately the path is easily corrupted. To
  7. 7. Using Matlab 7 check the Matlab path pull down the M- le menu and select Set Path. It must contain at least the following lines. server.mutools:commands server.mutools:subs server.mutools:ECE147a If these are not present add them to the list and click on Save. Do not hit the Auto Set button. This performs a very crude search for subfolders in the MATLAB folder and sets them up in the path. All references to the server will be deleted. This was probably how the path became corrupted in the rst place. 2.2.4 Disk Usage Do not leave any of your script les or special purpose functions on the ma- chines. Move all such items to a personal disk. The machines are regularly, and brutally, purged of all unknown les. Anything left behind will be lost. This is particularly true in the MacLab as it receives heavy use and the computers are monitored on a daily basis. 2.3 Automating Matlab and Taking Notes 2.3.1 m- les To drive Matlab in a batch le fashion, M- les are created. Suppose there is some long calculation that depends on only a few variables; with an M- le, only the variables need to be re-entered, and not the set of Matlab equations, to get the new result. M- les are discussed in the Matlab Primer. If you are using M- les on an IBM PC, then you will need to set up the correct path for the les use. If you are using a Mac, then the M- le is set up by placing a copy of it in the MATLAB folder. 2.3.2 Diary To get a copy of all of the Matlab text output, the diary function is used. Enter >> help diary at the Matlab command line for an explanation of use. If you are on an IBM PC, then the diary le will be stored in the current working directory. If you
  8. 8. 8 ECE 147a: (Fall 95) Matlab Computer Modules are using a Macintosh, then the diary output le will be in the same folder that was active when Matlab is started. 2.4 Setting up Matrices and Vectors in Matlab Since these are the basic data structures of Matlab, we must know how to set them up correctly so that the dimensions of the equation are followed. Once we know which way the columns and rows are built, and the method used to access elements, we can explore ways to build matrices in some automated way. The Matlab Primer discusses matrices on pages 1 through 3, and then shows ways to automate the building of matrices through M- les. Note: Some functions operate di erently on matrices than they do on scalars. For example, if A is an n n matrix, the Matlab function >> B = exp(A); only applies element wise to the matrix and not globally matrix wise. In other words, for each element, bij , bij = ea ;ij rather than, B = I + A + A + . . .: 2 2 A list of some other functions to take notice of is on page 6 in the primer. It is always a good idea to check the online help or do an example calculation to see if the function you are using is behaving. 2.5 Special Functions for Control Problems 2.5.1 Control Toolbox Although we will primarily use -Tools, the control toolbox is a possible alter- native for most calculations. The control toolbox contains functions that solve speci c control problems. For example, root locus plots can be generated using the functions rlocus, and plot. Consult pages C-8, and C-22 through C-25 in the Control Toolbox manual for the short descriptions of most of the functions you will be interested in. Once you know the name of a function, there is always online help on the computers. The command line is
  9. 9. Using Matlab 9 >> help function-name 2.5.2 -Tools It is a good idea to read up on the excerpts of the -Tools manual. We have selected the material we feel would be most important, there may be other portions of the -Tools manual that you may want to reference. The Data Structures" to More Sophisticated System Functions" sections (pages 1-3 to 1-29) should be read. Don't worry about understanding everything the rst time, just get an idea of where you can nd the information that you may need to check later. Also, skim over pages 4-1 to 4-9 for the quick summaries of the -Tools functions and where to nd them. There is also a root locus function, rloc, written to handle systems in the - Tools format. A manual page for this function can be found in Section 5.4. Abbreviated information can be obtained with the command, >> help rloc Between the Controls Toolbox and -Tools, you shouldn't have to work to hard to get complex calculations done easily. 2.6 Graphics and Printouts Both the Macs and the PCs generate graphics in about the same way. The main functions of interest are plot and vplot. These are referenced on line and in the manuals. It is easy to set up titles and axis on the graphs within Matlab. There are many examples in the manuals, and in this handout. In order to get hard copies from the Mac you have to initialize a username and password. The procedure for doing this is described above in Section 2.2.2. Now printing simply involves making the graphics screen the active window and selecting the print option from the le pull down menu. Problems often occur when printing complicated plots. In particular Bode plots, generated with some command like, >> vplot('bode',frsp(sys,omega)) often will not print. One work around is to specify and print the magnitude and phase plots separately. For example,
  10. 10. 10 ECE 147a: (Fall 95) Matlab Computer Modules >> sys_g = frsp(sys,omega); >> vplot('liv,lm',sys_g) The magnitude plot can be printed at this point. The command, >> vplot('liv,p',sys_g) plots the phase response which can also be printed. 2.7 Memory Problems When doing complicated calculations Matlab may run out of memory. This problem often occurs when calculating frequency or time responses with a lot of data points. The obvious solution is to select fewer points. There are some other alternatives too. Before doing any memory intensive calculations, clear the unwanted variables out of your workspace. For example, >> clear trash1 trash4 will delete the variables trash1 and trash4. This type of operation creates a fragmented workspace and Matlab can only store variables in the largest contiguous block of memory. To do a garbage collection", the command >> pack is used. This saves all data on the hard disk, cleans out the memory, and reloads the data from disk. If you are using a Mac which runs Multi nder then other options are also avail- able. The default memory for the Matlab application could be set to too small a value. The typical default is 1024K bytes. If more memory is installed (some machines have up to 8M) try asking for more memory. On an 8M ma- chine, setting the memory to 5000K would not be unreasonable. We haven't con rmed this yet, but it is possible that doing this will allow some of the more complicated plots to print properly. 2.8 Example Control Problems If you are reading through this at the beginning of the course, don't worry too much about understanding the example. The rst few modules will help you
  11. 11. Using Matlab 11 out there. This section is provided as a reference that you may wish to refer back to later | the command sequences used here can provide a template for your work. In the following example, we will take a second order stable plant, perform some analysis, create controllers and again analyze the new closed loop system. Our plant for this example will be, 16 P (s) = s2 + 4s + 16 We create the state space system matrix with the nd2sys (numerator denomi- nator to system matrix) function. >> sys = nd2sys( 0,0,16], 1,4,16]) Matlab returns with, sys = -4 -16 1 2 1 0 0 0 0 16 0 0 0 0 0 -Inf First, we want to know where are the poles and zeros. We will use the functions spoles (system spoles) and szeros (system zeros). >> spoles(sys) ans = -2.0000 + 3.4641i -2.0000 - 3.4641i >> szeros(sys) ans = ] As you can see, there are two complex poles, and no nite zeros. Next we want to perform frequency analysis of the plant. But rst, we want to establish a de ned frequency base for doing our calculations. The command,
  12. 12. 12 ECE 147a: (Fall 95) Matlab Computer Modules >> omega1 = logspace(-1,2,200); will create frequency vectors of 200 logarithmically spaced points from 10 1 to 102 . The frsp function accepts the frequency vector as rads/sec, so that then becomes the units of our omega1 variable. Now to perform the frequency analysis, we type, >> sysfrsp1 = frsp(sys,omega1); to create the frequency response. To plot this data we type, >>vplot('bode',sysfrsp1) or >>vplot('nyq',sysfrsp1) >>xlabel('real magnitude') >>ylabel('imaginary magnitude') to create the following Bode and Nyquist plots respectively. Figures 1 and 2 show each of these plots. Next we wish to create a step response of the system. The following commands, >>u = step_tr( 0], 1],.1,10); >>y1 = trsp(sys,u); >>vplot(u,'-.',y1,'-') >>text(2,1,'input -.') >>text(3,1,'output --') >>xlabel('time: seconds') will set up a step occurring at t = 0 with magnitude one and duration of 10 seconds, perform the time response to the input signal, and plot the data with as shown in Figure 3. To perform root locus analysis, the input, >> k = 0.5:0.5:10]; >> r1 = rloc(sys,k); >> vplot('ri',r1,-3,'.',-1,'.') >> xlabel('real') >> ylabel('imaginary')
  13. 13. Using Matlab 13 10 1 Log Magnitude 10 0 10 -1 10 -2 10 -3 10 -1 10 0 10 1 10 2 Frequency (radians/sec) 0 Phase (degrees) -50 -100 -150 -200 10 -1 10 0 10 1 10 2 Frequency (radians/sec) Figure 1: Bode plot of Open Loop system sets up a vector of gains 0:5 to 10 for the root locus to be analyzed at, analyzes the roots, and plots them on a real vs imaginary plot. There is a bug in Matlab which ips the real axis if all of the data has the same imaginary part. The above vplot command also plots points at -3 and -1. This will make sure that the real axis is plotted correctly. Figure 4 shows the resulting root locus. If we have selected a wider range of gains in k then more of the locus would have been calculated. Now that we have analyzed the open loop system, a constant gain of K = 2 looks like a good value. The following commands, >> K = 2; >> cont = K; >> clsys = starp(mmult( 1;1],sys,cont, 1,-1]),1); set up a constant gain controller, and then create a unity feedback closed loop system with that controller. You may want to look at the starp function in the manual, but if you use this function in the manner given here, then you will always create a closed loop system of the form illustrated in Figure 5. Again we perform frequency analysis, >> clsysfrsp1 = frsp(clsys,omega1); >> vplot('bode',clsysfrsp1) >> vplot('nyq',clsysfrsp1)
  14. 14. 14 ECE 147a: (Fall 95) Matlab Computer Modules 0 -0.2 -0.4 imaginary magnitude -0.6 -0.8 -1 -1.2 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 real magnitude Figure 2: Nyquist plot of Open Loop system >> xlabel('real magnitude') >> ylabel('imaginary magnitude') to create the Bode and Nyquist plots shown in Figures 6 and 7 respectively. To create the new step response, we don't need to retype the u de nition, because it is already set up as a variable in the workspace. The step response analysis is done with the commands, >> y2 = trsp(clsys,u); >> vplot(u,'-.',y2,'-',1.2,'.') >> text(1,1,'input -.') >> text(2,0.7,'output --') >> xlabel('time: seconds') to create the new graph. Note that we plotted a point at 1.2 to force the Matlab automatic axis scaling to print this on the same scale as before. Another way of doing this is with the Matlab command axis. Figure 8 shows the resulting step response. Now this system has too much overshoot, so lets put in some derivative control. Let, C (s) = 0:d s s + 1 T +K 01
  15. 15. Using Matlab 15 1.2 input -. output -- 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 time: seconds Figure 3: Step response of Open Loop system This controller is set up with the same nd2sys call and then the closed loop system, PDsys, is formed as, >> Td = 0.5; >> PDcont = nd2sys( Td K], 0.01 1]); >> PDsys = starp(mmult( 1;1],sys,PDcont, 1,-1]),1); The rest of these gures are set up nearly identically to the last set, so this will be left as an exercise to try to duplicate these graphs.
  16. 16. 16 ECE 147a: (Fall 95) Matlab Computer Modules 15 10 5 imaginary 0. . -5 -10 -15 -3 -2.8 -2.6 -2.4 -2.2 -2 -1.8 -1.6 -1.4 -1.2 -1 real Figure 4: Root Locus of Constant Gain Closed Loop System 0:5 < K < 10 y r Sys Cont j + r 6 Figure 5: Generic result of the command: clsys = starp(mmult( 1;1],sys,cont, 1,-1]),1);
  17. 17. Using Matlab 17 10 1 Log Magnitude 10 0 10 -1 10 -2 10 -3 10 -1 10 0 10 1 10 2 Frequency (radians/sec) 0 Phase (degrees) -50 -100 -150 -200 10 -1 10 0 10 1 10 2 Frequency (radians/sec) Figure 6: Bode plot of Constant Gain K = 2 Closed Loop system 0 -0.2 -0.4 imaginary magnitude -0.6 -0.8 -1 -1.2 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 real magnitude Figure 7: Nyquist plot of Constant Gain K = 2 Closed Loop system
  18. 18. 18 ECE 147a: (Fall 95) Matlab Computer Modules 1.2 input -. 1 0.8 output -- 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 time: seconds Figure 8: Step response of Constant Gain K = 2 Closed Loop System 10 0 Log Magnitude 10 -1 10 -2 10 -1 10 0 10 1 10 2 Frequency (radians/sec) 0 Phase (degrees) -50 -100 -150 10 -1 10 0 10 1 10 2 Frequency (radians/sec) Figure 9: Bode plot of PD controller Closed Loop system
  19. 19. Using Matlab 19 0 -0.1 -0.2 imaginary magnitude -0.3 -0.4 -0.5 -0.6 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 real magnitude Figure 10: Nyquist plot of PD controller Closed Loop system 1.2 1 input -. 0.8 output -- 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 time: seconds Figure 11: Step response of PD controller Closed Loop system

×