Download presentation
Presentation is loading. Please wait.
Published byPeter Strickland Modified over 9 years ago
1
ENSC 383- Feedback Control Summer 2010 TAs:Kaveh Kianfar, Esmaeil Tafazzoli G(s) U(s) inputY(s) output MATLAB Tutorial 1
2
Outline Starting Matlab Basics Modeling Control toolbox 2 Outline
3
M-file When writing a program in matlab save it as m-file ( filename.m) 2 types of M-file 1- script (has no input and output, simply execute commands) 2- function (need input, starts with keyword “function”) function [y z]=mfunc(x) y=(x*x')^.5; % norm of x z=sum(x)/length(x); %% using 'sum' function end m file 3
4
Present polynomial with coefficients vector x = [1 3 0 -2 1]; P3=poly([-2 -5 -6]) rootsP3=roots(P3) P5=conv([1 2],[1 5]) Poly converts roots to coefficients of a polynomial: 4 Polynomials
5
p=poly([-2 1 5]) R=roots(p) x=-3:0.1:6; y=p(1)*x.^3+p(2)*x.^2+p(3)*x+p(4); plot(x,y) grid p = 1 -4 -7 10 R = 5.0000 -2.0000 1.0000 5 Polynomials
6
numf=[1 1 3 1]; denf=[1 0 1]; [r,p,k]=residue(numf,denf) Partial Fraction Expansion 6
7
Roots of numerators are “zeros” of a system, Roots of denominators are “poles” of a system. G(s) U(s) inputY(s) output Dynamic system Representation usingTransfer Function 7 Im Re S-plane zero pole
8
Command “tf” by defining the Command “zpk” Using s=tf(‘s’), then for example: Transfer Function in MATLAB 8
9
tf2zp: converts the numerator, denominator from coefficient to roots. [Z,P,K] = TF2ZP(NUM,DEN) Ex.: [z,p,k]=tf2zp([1 1],[1 2 1]) z=-1, p=-1;-1, k=1 zp2tf: converts the numerator, denominator from roots to coefficient. [NUM,DEN] = ZP2TF(Z,P,K) Transfer Function in MATLAB 9
10
G=series(G 1,G 2 ) or alternatively: G=parallel (G 1,G 2 ) or alternatively: Interconnection between blocks G 1 (s)G 2 (s) G 1 (s) G 2 (s) u y uy 10
11
Feedback: or alternatively for Negative feedback: Interconnection between blocks G 1 (s) H(s) - u y 11
12
Syms s t :defines s, and t as symbolic variable syms s a t 1)G4=laplace(exp(t)): G4 =1/(s - 1) 2)G5=laplace(exp(-t)): G5 =1/(s + 1) 3)G6=laplace(sin(a*t)): G6 =a/(a^2 + s^2) Hint:ilaplace(F,s,t): computes Inverse Laplace transform of F on the complex variable s and returns it as a function of the time, t. ilaplace(a/(s^2+a^2),s,t)=(a*sin(t*(a^2)^(1/2)))/(a^2)^(1/2) Symbolic computation in MATLAB 12
13
Ex.: A=[1,1;0,1];syms t; Q=expm(A*t) Hint: expm(M) computes the matrix exponential of M. G=laplace(Q,t,s) gives: G = [ 1/(s - 1), 1/(s - 1)^2] [ 0, 1/(s - 1)] Symbolic computation in MATLAB 13
14
System Step, impulse, other inputs Matlab commands: lsim Simulate LTI model response to arbitrary inputs sys=tf(num,den); t=0:dt:final_t; u=f(t); [y t]=lsim(sys,u,t) step Simulate LTI model response to step input step(sys) special case of lsim response 14 System Response
15
Transient response: x(t)=x 0 *exp(a*t) “ if a<0,it’s stable ”. First order systems 15 Im Re s-plane s=-a
16
When “a” is a complex number: t=0:0.1:5; a=-1+4*i; % a is complex with negative real part f=exp(a*t); X=real(f); Y=imag(f); plot(X,Y) xlabel('Re') ylabel('Im') axis('square') Plot(t,f) Exp(a*t) 16
17
First order systems(cont’d) When “a” is complex, with Negative real part in polar coordinates: Rho=sqrt(X.^2+Y.^2); Theta=atan2(Y,X); polar(Theta,Rho) 17
18
Second order System In Laplace domain: Like mass-spring-damper 18 s=tf('s') w=1; zeta=[0.2 0.4 0.7 1 2]; for i=1:length(zeta) G=w^2/(s^2+2*zeta(i)*w*s+w^2) step(G,10) hold on end Second order systems
19
19 Second order systems s-plane Im Re Damping ratio is constant, w n changes. s=tf('s') zeta=0.5 w=[sqrt(12) 4 sqrt(20)]; for i=1:length(w) G=(w(i))^2/(s^2+2*zeta*w(i)*s+(w(i))^2) step(G,3) hold on end
20
Undamped system(mass-spring) Damping ratio is zero: 20 Second order systems w=[1 2]; for i=1:length(w) G=tf(w(i)^2,[1 0 w(i)^2]); step(G,20) hold on end
21
21 Dynamic system representation m System Transfer Function
22
22 MATLAB code k=.2; % spring stiffness coefficient b=.5; % damping coefficient m=1; % mass A=[0 1;-k/m -b/m]; % Represent A. B=[0;1/m]; % Represent column vector B. C=[1 0]; % Represent row vector C. D=0; % Represent D. F=ss(A,B,C,D) % Create an LTI object and display. step(F) [num den]=ss2tf(A,B,C,D) Gs=tf(num,den) % system transfer function
23
Step Response 23 Step Response
24
24 Ordinary differential equations function dx=lin1(t,x) dx=zeros(2,1); dx(1)=-x(1); dx(2)=-2*x(2); A=[-1 0;0 -2]; [u,v]=eig(A) In workspace: [T,X]=ode23(@lin1,[0 10], [a(i) b(j)]); plot(X(:,1),X(:,2)) [u.v]=eig(A) u = 0 1 1 0 Hint:For using ode command, the diff. equations should be written in the first order format,i.e. a second order diff. eq. should be written as two first order diff. equations.
25
25 function dx=pendulum(t,x) dx=zeros(2,1) dx(1)=x(2); dx(2)=-0.5*x(2)-sin(x(1)); [T,X]=ode23(@pendulum,[0 10], [a(i) 0]); plot(X(:,1),X(:,2)) Nonlinear Differential eq. of a pendulum g Viscose Damping termGravity term Angle Angular velocity
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.