MATLAB BASICSSTARTING MATLABSlide 3BASIC OPERATIONAPPROACHSPECIAL MATRICESGENERAL INFORMATIONCREATING FUNCTIONSUSING THE FUNCTIONSPLOTTINGEXAMPLE OF A PLOTContinuous Time System AnalysisTransfer Function RepresentationCont…Slide 15ExampleSlide 17Slide 18Example Cont…Slide 20Slide 21Slide 22Time SimulationsSlide 24Slide 25Slide 26Find the response of a system to a particular inputSlide 28Frequency Response PlotsSlide 30Slide 31Slide 32Slide 33Control DesignState Space RepresentationSlide 36MATLAB BASICSECEN 605Linear Control SystemsInstructor: S.P. BhattacharyyaSTARTING MATLABYou can start MATLAB by double-clicking on the MATLAB icon or invoking the application from the Start menu of Windows. The main MATLAB window will then pop-up.BASIC OPERATIONMATLAB is based on matrix and vector algebra; even scalars are treated as 1x1 matrices. e.g. v = [1 3 5 7]; t = 0:.1:10; k = 0:10; M = [1 2 4; 3 6 8];APPROACHTRY EXPLORING ALL THE COMMANDS INITIALLY TO GET FAMILIARIZED.TAKE UP EXAMPLES AND SOLVE THEMTRY THE ASSIGNMENT QUESTIONSSPECIAL MATRICESThere are a number of special matrices that can be defined: null matrix: M = [ ]; nxm matrix of zeros: M = zeros(n,m); nxm matrix of ones: M = ones(n,m); nxn identity matrix: M = eye(n);GENERAL INFORMATIONMatlab is case sensitive so "a" and "A" are two different names. Comment statements are preceded by a "%".On-line help for MATLAB can be reached by typing help for the full menu or typing help followed by a particular function name.The commands who and whos give the names of the variables that have been defined in the workspace. The command length(x) returns the length of a vector x and size(x) returns the dimension of the matrix x.CREATING FUNCTIONSAs example of an 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;USING THE FUNCTIONSThe following commands typed from within MATLAB demonstrate how this M-file is used:x = 2; y = 3; z = yplusx(y,x)PLOTTING plot xlabel ylabel title grid axis stem subplotEXAMPLE OF A PLOTZ = [0 : pi/50 : 10*pi];X = exp(-.2.*Z).*cos(Z);Y = exp(-.2.*Z).*sin(Z);plot3(X,Y,Z); grid on;xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis');Continuous Time System AnalysisTransfer Function RepresentationTime SimulationsFrequency Response PlotsControl Design State Space RepresentationTransfer Function RepresentationTf2zpZp2tfCloopFeedbackParallelseriesCont…Transfer functions are defined in MATLAB by storing the coefficients of the numerator and the denominator in vectors. Given a continuous-time transfer function B(s) H(s) = --------- A(s)Cont…Where B(s) = bMsM+bM-1sM-1+…+b0 and A(s) = aNsN+aN-1sN-1+…+a0 Store the coefficients of B(s) and A(s) in the vectors num = [bM bM-1 … b0] den = [aN aN-1 … a0]Example 5s+6 H(s) = ---------------- s3+10s2+5num = [5 6]; den = [1 10 0 5]; all coefficients must be included in the vector, even zero coefficientsCont…To find the zeros, poles and gain of a transfer function from the vectors num and den which contain the coefficients of the numerator and denominator polynomials: [z,p,k] = tf2zp(num,den)Examplenum = [5 6]; den = [1 10 0 5]; [z,p,k] = tf2zp(num,den)z = -1.2000p = -10.0495 0.0248+0.7049i 0.0248-0.7049ik = 5Example Cont… (s-z1)(s-z2)...(s-zn) H(s) = K -------------------------- (s-p1)(s-p2)...(s-pn) 5*(s+1.2) ---------------------------------------------------------- (s+10.0495)(s-{0.0248+0.7049i})(s-{0.0248-0.7049i})Cont…To find the numerator and denominator polynomials from z, p, and k: [num,den] = zp2tf(z,p,k)To reduce the general feedback system to a single transfer function: T(s) = G(s)/(1+G(s)H(s)) [numT,denT]=feedback(numG,denG,numH,denH);Cont…For a unity feedback system:[numT,denT] = cloop(numG,denG,-1);To reduce the series system to a single transfer function, T(s) = G(s)H(s)[numT,denT] = series(numG,denG,numH,denH);To reduce the parallel system to a single transfer function, T(s) = G(s) + H(s)[numT,denT] = parallel(numG,denG,numH,denH);Example [num,den] = zp2tf(z,p,k)num = 0 0 5 6den = 1.0000 10.0000 0.0000 5.0000Time Simulationsresidue StepImpulselsimCont…[R,P,K] = residue (B,A) finds the residues, poles and direct term of a partial fraction expansion of the ratio of two polynomials B(s)/A(s)The residues are stored in r, the corresponding poles are stored in p, and the gain is stored in k.ExampleIf the ratio of two polynomials is expressed as b(s) 5s3+3s2-2s+7 ------- = ------------------- a(s) -4s3+8s+3b = [ 5 3 -2 7]a = [-4 0 8 3]Example Cont…r = -1.4167 -0.6653 1.3320p = 1.5737 -1.1644 -0.4093k = -1.2500B(s) R(1) R(2) R(n)------ = -------- + --------- + ... + --------- + K(s)A(s) s - P(1) s - P(2) s - P(n)Find the response of a system to a particular inputFirst store the numerator and denominator of the transfer function in num and den, respectively.To plot the step response: step(num,den)To plot the impulse response: impulse(num,den)Cont…For the response to an arbitrary input, use the command lsim (linear simulation)Create a vector t which contains the time values in seconds t = a:b:c;Define the input x as a function of time, for example, a ramp is defined as x = t lsim(num,den,x,t);Frequency Response PlotsFreqsBodeLogspaceLog10SemilogxCont…To compute the frequency response H of a transfer function, store the numerator and denominator of the transfer function in the vectors num and den.Define a vector w that contains the frequencies for which H) is to be computed, for example w = a:b:c where a is the lowest frequency, c is the highest frequency and b is the increment in frequency. H = freqs(num,den,w)Cont…To draw a Bode plot of a transfer function which has been stored in the vectors num and den: bode(num,den)Cont…To customize the plot, first define the vector w which contains the frequencies at which the Bode plot will be calculated.Since w should be defined on a log scale, the command logspace is used.For example, to make a Bode plot ranging in frequencies from 0.1 to
View Full Document