MATLAB Workshop Lecture 3

download MATLAB Workshop Lecture 3

of 42

description

gjjhj

Transcript of MATLAB Workshop Lecture 3

  • MATLAB WORKSHOPFOR EE 327MWF 8:00-850 AMAugust 26-30, 2002 Dr. Ali A. Jalali

  • MATLAB WORKSHOPWORKSHOPWebPages

    www.csee.wvu.edu/~jalali

  • MATLAB WORKSHOPLecture # 1Monday August 26IntroductionMATLAB DemosMATLAB Basics Lecture # 2Wednesday August 28MATLAB BasicsMATLAB PlotsMATLAB Examples Lecture # 3Friday August 30MATLAB FundationTextbook ExamplesShort Quiz

  • MATLAB WORKSHOPLecture # 3Friday August 30MATLAB PlotsMATLAB FundationTextbook ExamplesShort Quiz

  • MATLAB BasicsVectors and Matrices:(Cont.)

    EXAMPLE: >> a=2:3, b=[a 2*a;a/2 a] a = 2 3 b = 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000 >> c=[b ; b] c = 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000 2.0000 3.0000 4.0000 6.0000 1.0000 1.5000 2.0000 3.0000

  • MATLAB BasicsVectors and Matrices: >> D=c(2:3, 2:3) D = 1.5000 2.0000 3.0000 4.0000 >> who Your variables are: D a b c >> whos Name Size Bytes Class D 2x2 32 double array a 1x2 16 double array b 2x4 64 double array c 4x4 128 double array Grand total is 30 elements using 240 bytes

  • MATLAB BasicsVectors and Matrices:

    Example: >> a=magic(4) a= 16.0000 2.0000 3.0000 13.0000 5.0000 11.5000 10.0000 8.0000 9.0000 7.0000 6.0000 12.0000 4.0000 14.5000 15.0000 1.0000 >> sum(a) = sum(a') = [34 34 34 34] >> trace(a) = 34 A(i, j) indexes row i, column j Indexing starts with 1, not zero. >>a(a, 3) = 3 >>a(3, 1) = 39 >>a(:, 3) = 3 10 6 15

  • MATLAB BasicsVectors and Matrices:

    >>a(2:3,3:4) = 10 8 2 12>>a([1 4],[1 4]) = 16 13 4 1>>a(8) = 14 >>[1:3] + [4:6] = 5 7 9 A=zeros(2,2); B=(ones(3,2); C = [ [A-1;B+1], [B+3;A-4] ], C = -1 -1 4 4 -1 -1 4 4 2 2 4 4 2 2 -4 -4 2 2 -4 -4

  • MATLAB BasicsPlotting Elementary Functions: MATLAB supports many types of graph and surface plots: 2 dimensions line plots (x vs. y), filled plots, bar charts, pie charts, parametric plots, polar plots, contour plots, density plots, log axis plots, surface plots, parametric plots in 3 dimensions and spherical plots. To preview some of these capabilities and others as well, enter the command demos.

  • MATLAB BasicsPlotting Elementary Functions: 2-D plots: The plot command creates linear x-y plots; if x and y are vectors of the same length, the command plot(x,y) opens a graphics window and draws an x-y plot of the elements of x versus the elements of y.

  • MATLAB BasicsPlotting Elementary Functions: >>%Example E1_2a of your textbook on page 23. (file name is E1_2.m) >>t=-1:0.01:1; >>f=4.5*cos(2*pi*t - pi/6); >>%The following statements plot the sequence and label the plot >>plot(t,f),title('Fig.E1.2a'); >>axis([-1,1,-6,6]); >>xlabel('t'); >>ylabel('f(t)'); >>text(-0.6,5,'f(t) = A cos(wt + phi)'); >>grid; Plot on next page

  • MATLAB BasicsPlotting Elementary Functions: >>%Example E1_2a

  • MATLAB BasicsPlotting Elementary Functions: PLOT(X,Y) plots vector Y versus vector X.TITLE('text') adds text at the top of the current plot. XLABEL('text') adds text beside the X-axis on the current axis. YLABEL('text') adds text beside the Y-axis on the current axis.GRID, by itself, toggles the major grid lines of the current axes.GTEXT('string') displays the graph window, puts up a cross-hair, and waits for a mouse button or keyboard key to be pressed.SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window into an m-by-n matrix of small axes.stemDiscrete sequence or "stem" plot. STEM(Y) plots the data sequence Y as stems from the x axis terminated with circles for the data value.SEMILOGX(...) is the same as PLOT(...), except a logarithmic (base 10) scale is used for the X-axis.SEMILOGY(...) is the same as PLOT(...), except a logarithmic (base 10) scale is used for the Y-axis..

  • MATLAB BasicsPlotting Elementary Functions: By default, the axes are auto-scaled. This can be overridden by the command axis. If c = [xmin,xmax,ymin,ymax] is a 4-element vector, then axis(c) sets the axis scaling to the prescribed limits. By itself, axis freezes the current scaling for subsequent graphs; entering axis again returns to auto-scaling. The command axis('square') ensures that the same scale is used on both axes. For more information's on axis see help axis. .

  • MATLAB BasicsPlotting Elementary Functions: >>%Example 1.2 of your textbook on page 24. (file name is E1_2d.m) >>t=-0.5:0.01:3; >>t0=0 >>u=stepfun(t,t0) >>gprime=3.17*exp(-1.3*t).*cos(10.8*t + 1.15).*u; % NOTE the use of the .* operator. The terms 3.17*exp(-1.3*t), % cos(10.8*t + 1.15), and u are all vectors. We want the % components of these vectors to be multiplied by the corresponding % components of the other vectors, hence the need to use .* rather than *. % The following statements plot the sequence and label the plot >>plot(t,gprime); >>axis([-.5,3,-3,2]); >>title('Fig.E1.2d'); >>xlabel('t in seconds'); >>ylabel('gprime(t)'); >>text(-0.6,5,'f(t) = A cos(wt + phi)'); >>grid;

  • MATLAB BasicsPlotting Elementary Functions: >>%Example E1.2

  • MATLAB BasicsPlotting Elementary Functions:

    Two ways to make multiple plots on a single graph are illustrated by >>t = 0:.01:2*pi; >>y1 = sin(t); y2=sin(2*t); y3=sin(4*t) >>plot(t,y1,y2,y3) and by forming a matrix Y containing the functional values as columns >>t = 0:.01:2*pi; >>y = [sin(t)', sin(2*t)', sin(4*t)'] >>plot(t,y) Another way is with the hold command. The command hold freezes the current graphics screen so that subsequent plots are superimposed on it. Entering hold again releases the "hold". The commands hold on and hold off are also available. One can override the default linotypes and point types. For example, >>t = 0:.01:2*pi; >>y1 = sin(t); y2=sin(2*t); y3=sin(4*t) >>plot(t,y1,'--',y2,':',y3,'+')

  • MATLAB BasicsPlotting Elementary Functions: Colors Line Styles y yellow . pointM magenta o circleC cyan x x-markR red + plus G green - solidB blue * starW white : dottedK black -. Dashdot -- dashed More mark types are; square(s), diamond(d), up-triangle(v), down-triangle(^), left-triangle(), pentagram(p), hexagram(h) See also help plot for more line and mark color.

  • MATLAB BasicsPlotting Elementary Functions: The command subplot can be used to partition the screen so that up to four plots can be viewed simultaneously. See help subplot. Example for use of subplot: >>% Line plot of a chirp >> x=0:0.05:5; >> y=sin(x.^2); >> subplot(2,2,1), plot(x,y); >> % Bar plot of a bell shaped curve >> x = -2.9:0.2:2.9; >> subplot(2,2,2), bar(x,exp(-x.*x)); >> % Stem plot >> x = 0:0.1:4; >> subplot(2,2,3), stem(x,y) >> % Polar plot >> t=0:.01:2*pi; >> subplot(2,2,4), polar(t,abs(sin(2*t).*cos(2*t)));

  • MATLAB BasicsPlotting Elementary Functions: >>%Example Subplot

  • MATLAB BasicsLoading and Saving: When using MATLAB, you may wish to leave the program but save the vectors and matrices you have defined. SAVE, Save workspace variables to disk. SAVE FILENAME saves all workspace variables to the binary "MAT-file" named FILENAME.mat. The data may be retrieved with LOAD. If FILENAME has no extension, .mat is assumed. SAVE, by itself, creates the binary "MAT-file" named 'matlab.mat'. It is an error if 'matlab.mat' is not writable. To save the file to the working directory, type>>save filename SAVE FILENAME X saves only X. SAVE FILENAME X Y Z saves X, Y, and Z. where "filename" is a name of your choice. To retrieve the data later, type.

  • MATLAB BasicsLoading and Saving: LOAD Load workspace variables from disk. LOAD FILENAME retrieves all variables from a file given a full pathname or a MATLABPATH relative partial pathname (see PARTIALPATH). If FILENAME has no extension LOAD looks for FILENAME and FILENAME.mat and treats it as a binary "MAT-file". If FILENAME has an extension other than .mat, it is treated as ASCII. LOAD, by itself, uses the binary "MAT-file" named 'matlab.mat'. It is an error if 'matlab.mat' is not found. LOAD FILENAME X loads only X. LOAD FILENAME X Y Z ... loads just the specified variables. >>load x, y, z See help save and help load for more information..

  • MATLAB BasicsM-Files: M-files are macros of MATLAB commands that are stored as ordinary text files with the extension "m", that is filename.m. An M-file can be either a function with input and output variables or a list of commands. All of the MATLAB file in EE 327 textbook are contained in M-files that are available at the site http://www.csee.wvu.edu/~jalali.

  • MATLAB BasicsM-Files: The following describes the use of M-files on a PC version ofMATLAB. MATLAB requires that the M-file must be stored either in the working directory or in a directory that is specified in the MATLAB path list. For example, consider using MATLAB on a PC with a user-defined M-file stored in a directory called "\MATLAB\MFILES";. Then to access that M-file, either change the working directory by typing cd\matlab\mfiles from within the MATLAB command window or by adding the directory to the path. Permanent addition to the path is accomplished by editing the \MATLAB\matlabrc.m file. Temporary modification to the path is accomplished by typing path(path,'\matlab\mfiles') from within MATLAB.

  • MATLAB BasicsM-Files: The M-files associated with this textbook should be downloaded from the EE 327 site and copied to a subdirectory named "\MATLAB\users"; and then this directory should be added to the path. The M-files that come with MATLAB are already in appropriate directories and can be used from any working directory.

  • MATLAB BasicsM-Files Functions: As an example of M-file that defines a function, create a file in your working directory named yplusx.m that contains the following commands: function z = yplusx(y,x) z = y + x; The following commands typed from within MATLAB demonstrate how this M-file is used: x = 2; y = 3; z = yplusx(y,x) MATLAB M-files are most efficient when written in a way that utilizes matrix or vector operations.

  • MATLAB BasicsLoops and If statements (Control Flow): Loops and if statements are available, but should be used sparingly since they are computationally inefficient. An example of the use of the command for is for k=1:10, x(k) = cos(k); end This creates a 1x10 vector x containing the cosine of the positiveintegers from 1 to 10. This operation is performed more efficiently with the commands k = 1:10; x = cos(k);

    which utilizes a function of a vector instead of a for loop.

  • MATLAB BasicsIf statements: An if statement can be used to define conditional statements. An example is if(a =4) b = 2; else b = 3; end The allowable comparisons between expressions are >=,
  • MATLAB BasicsWhile Loops statements (Control Flow): While for loop evaluates a group of commands a fixed number of times,A while loop evaluates a group of statements an infinite number of times.The general form of a while loop is while expression commandsend The command between the while and end statements are executed aslong as ALL expression are true.Example (computing the special MATLAB value eps. ESP is a variable it is different from esp.)>>num=0; EPS=1; >>while (1+EPS)>1 EPS=EPS/2; num=num+1; end >>num num = 53. >>EPS=2*EPS EPS= 2.2204e-16

    MATLAB USED 16 digit so eps is near 10^-16.

  • MATLAB BasicsUser Defined Variable: Several of the M-files written for this textbook employ a user-defined variable which is defined with the command input. For example, suppose that you want to run an M-file with different values of a variable T. The following command line within the M-file defines the value: T = input('Input the value of T: ')

    Whatever comment is between the quotation marks is displayed to the screen when the M-file is running, and the user must enter an appropriate value. Use help command for: diary, save, load, who and whos find out more about them.

  • MATLAB ExamplesSome on line Demos and Examples.

  • SimulinkGraphical block diagram capabilityCan drag and drop components (called blocks)

    Extensive library of blocks availableDSP Blockset is one

    Real-time Workshop

  • SimulinkAn environment for building and simulating models.Continuous, discrete or hybrid systemsLinear and nonlinear componentsCan simulate asynchronous events

    Closely integrated with MATLAB and toolboxes

  • Simulink ModelA typical Simulink model includes Sources, Systems and Sinks.

    SourcesSystemsSinksSinewavesFunction GeneratorsFrom MATLAB workspaceFrom Disk FilesInterconnectionof Linear and Nonlinear blocksDisplays scopesFFT scopesTo MATLAB workspaceTo disk files

  • Simple Simulink Model

  • Simulink Block Libraries

    Simulink contains block libraries, which contain components that can be used to build models.

    A block library can itself have other libraries as blocks. Example: When you first start Simulink:

    Sinks is itself ablock library ofcomponents

  • Building a Simulink ModelModel WindowLinear BlocksLibrarySources LibraryUse left mouse button todrag blocks to themodel window

  • Connecting BlocksUse the left mousebutton to click on a portand drag a connectionUse the right mousebutton to click on a lineto drag a branch line

  • More Simulink BasicsDouble-click on a block to open its Dialog Box. Parameters for the block can be set in this box.Example: setting the amplitude, frequency, phase and sampling frequency of the sinewave source.

    Click on the HELP button on the Dialog Box for a block to launch the Web Browser opened at the HELP file for that component.

    After selecting a block, you can rotate, flip or resize it. These operations are useful in creating a more readable block diagram.

  • Setting Simulation ParametersThe Simulation menu item on the models window can be used to set simulation parameters.

    You can specify the appropriate solver that is to be used. For discrete-time systems usethe Fixed-step Discrete solver if there is only a single sample time.The Variable-step Discrete solver for multirate systems.

    You can also specify variables that are to be obtained from or returned to the MATLAB workspace.

  • SubsystemsYou can select portions of your model using the mouse and make them into a subsystem.

    You can created a masked subsystem, that hides the complexity of the subsystem from the user.

  • MATLAB WORKSHOPEnd of Lecture # 3

    MATLAB Advance Next time