Vous êtes sur la page 1sur 6

Universidade Federal do Rio Grande do Sul Departamento de Engenharia El etrica ENG04450 - Sistemas de Controle Laborat orio I - Introdu c ao ao Matlab

Profs. Jo ao Manoel Gomes da Silva e Romeu Reginatto - Junho de 2002

B asico

O matlab possui uma janela de comando onde podem ser declaradas vari aveis e executados comandos sobre estas vari aveis. Tamb em possui janelas gr acas, onde s ao apresentados resultados em forma gr aca. Certas opera c oes podem ser executadas diretamente nas janelas gr acas ( zoom, print, etc). Por em, a janela de comando e ainda a forma mais direta de utilizar o matlab. O s mbolo >> representa o prompt na janela de comando. A seguir s ao relacionados alguns comandos b asicos: 1. 2. 3. 4. 5. >> help - lista todos os toolboxes >> help <nome-toolbox> - lista todas as fun c oes do toolbox >> help <nome-funcao> - ajuda sobre a fun c ao nome-funcao pwd - informa diret orio de trabalho corrente cd <novo-caminho>> - troca diret orio corrente para <novo-caminho>

6. Avan cadas. save, load, diary, edit.

Declarando e usando vari aveis

O matlab lida com v arios tipos de dados, dentre os quais vamos estudar: n umeros complexos, vetores, matrizes e sistemas lineares.

2.1
1. 2. 3. 4.

Esclares: N umeros reais e complexos


i - vari avel pr e-denida ( i= 1) >> a=2 - declara a vari avel a valendo 2 >> b=a+i*3 - declara o n umero complexo a + j 3 >> j=sqrt(-1) - declarando j=i

5. Opera c oes com n umeros complexos: +, -, *, /, ^ (potencia c ao) 6. 7. 8. 9. >>abs(x) - retorna o m odulo do n umero complexo x >>angle(x) - retorna a fase no n umero complexo x >>real(x) - retorna a parte real do n umero complexo x >>imag(x) - retorna a parte imagin aria do n umero complexo x

2.2
1. 2. 3. 4. 5.

Vetores
>>v=[1 2 4] ou >>v=[1, 2, 4] - declara o vetor linha v = [1, 2, 4] 1 >>w=[1; 3; 5] ou w=[1 3 5] - declara o vetor coluna w = 3 5 >>ones(10,1) - vetor coluna (10 linhas) com todos elementos 1 >>zeros(1,5) - vetor linha (5 colunas) com todos elementos 0 >>v1=[-1:0.1:3] - declara vetor linha com primeiro elemento igual a -1, u ltimo elemento igual a 3, e incrementos de 0.1 entre os elementos sucessivos

6. Opera c oes com vetores: +, -, * (respeitadas as dimens oes) 7. Avan cadas. Fun c oes linspace e logspace.

2.3

Matrizes
1 3 2 5 4 6

Segue a mesma sintaxe dos vetores. 1. 2. 3. 4. 5. >>m1=[1 2 4; 3 5 6] ou >>v=[1, 2, 4; 3, 5, 6] - declara a matriz 23 m = >>ones(10,2) - matriz 10 2 com todos elementos 1 >>zeros(3,5) - matriz 3 5 com todos elementos 0 >>diag([1 3 5]) - matriz diagonal 3 3 com os elementos 1, 3 e 5 na diagonal >>eye(5) - matriz identidade 5 5

6. Opera c oes com matrizes: +, -, * (respeitadas as dimens oes) 7. 8. 9. 10. >>inv(A) - inversa da matriz A >>A - transposta da matriz A >>det(A) - determinante de A >>eig(A) - autovalores da matriz A

11. Avan cadas. Fun c ao rand

2.4

Opera c oes elemento a elemento em matrizes e vetores

Nas opera c oes elemento a elemento, vetores e matrizes s ao considerados como conjuntos de elementos. As opera c oes s ao realizadas entre os elementos que tem o mesmo ndice nos operandos (vetores ou matrizes). Exemplo. >>v1=[1 2 3; 4 5 6]; >>v2=[-1 -3 -4; 2 4 1]; >>v1.*v2 ans = [-1 -6 -9; -16 10 6] 1. sin(v) - retorna o seno de cada elemento de v. Isto vale em geral para fun c oes pr e-denidas como sin, cos, log10, sqrt, etc. 2. v+1 - soma 1 a cada elemento de v. 2

3. v1.^2 - eleva ao quadrado cada elemento de v1. 4. .*, ./ - produto e divis ao elemento a elemento. 5. sin(v).*cos(v) - retorna o produto do seno e cosseno de cada elemento de v.

2.5

Polin omios

Um polin omio e representado por um vetor linha que cont em como elementos os coecientes do polin omio ordenados da pot encia mais elevada ao termo independente. 1. 2. >>p1=[1 2 5] - representa o polin omio p1 = s2 + 2s + 5 >>p2=poly([-2 -5-i -5+i]) - cria um polin omio p2 que possui ra zes 2, 5 j e 5+ j

3. Opera c oes com polin omios: +, - efetuadas como se fossem vetores (respeitar dimens oes) 4. 5. 6. 7. >>conv(p1,p2) - produto dos polin omios p1 e p2 >>deconv(p2,p1) - divis ao p2/p1 >>roots(p1) - ra zes do polin omio p1 (formato de vetor coluna) >>poly(A) - polin omio caracter stico da matriz A

Fun c oes

A partir do janela de comando podem ser executadas fun c oes pr e-denidas ou fun c oes que fazem parte de toolboxes. Passando argumentos para fun c oes. Qualquer tipo de dado pode ser passado como argumento de fun c oes. Os par ametros de fun c oes s ao passados colocados entre par enteses (logo ap os o nome da fun c ao) e s ao separados por v rgulas. Exemplos: 1. 2. >>roots(p1) ou >>roots([1 2 5]) - um u nico argumento passado >>conv(p1,p2) - dois argumentos passados

Muitas fun c oes do matlab efetuam opera c oes diferentes de acordo com o tipo e quantidade de argumentos que s ao fornecidos. Exemplo: 1. 2. >>poly([-2 -5-i -5+i]) - retorna um polin omio p2 que possui ra zes 2, 5 j e 5+ j >>poly(A) - retorna o polin omio caracter stico da matriz A

Obtendo os argumentos de retorno. Fun c oes do matlab podem retornar um ou mais par ametros (argumentos de retorno), podendo estes serem tipos de dados distintos. Os valores retornados podem ser atribu dos a vari aveis ou ignorados. A vari avel ans sempre armazena o u ltimo resultado ignorado (n ao atribu do a nenhuma vari avel). Quando mais de um par ametro e retornado, as vari aveis que os armazenam s ao colocadas entre colchetes e separadas por v rgula. A atribui c ao e pela ordem: primeiro par ametro atribu do a primeira vari avel, segundo ` a segunda e assim por diante. 1. 2. 3. >>p2=poly([-2 -5-i -5+i]) - fun c ao poly retorna um u nico par ametro. Resultado e atribu do a p2. >>[q,r]=deconv(p2,p1) - fun c ao deconv retorna dois par ametros (quociente e resto) que s ao atribuidos ` as vari aveis q e r, respectivamente. >>q=deconv(p2,p1) - fun c ao deconv retorna dois par ametros (quociente e resto), mas somente o quociente (primeiro valor retornado) e guardado. 3

Sistemas Lineares

Sistemas lineares podem ser descritos no matlab atrav es de fun c oes de transfer encia e de equa c oes de estado. Diversas fun c oes pr e-denidas podem ser utilizadas para manipular estes sistemas. Estas fun c oes fazem parte do control toolbox. Para ver a lista das fun c oes, veja >>help control. 1. 2. 3. 4. 5. 6. 7. 8. 9. >>g1=tf([1 2],[1 5 7]) - declara uma fun c ao de transfer encia atrav es do numerador s+2 e denominador, no caso, g1 (s) = s2 +5 . s+7 >>g2=zpk([],[0 -5 -10],25) - declara uma fun c ao de transfer encia atrav es lista de zeros, 25 lista de p olos e valor do ganho, no caso, g2 (s) = s(s+5)( . s+10) >>s1=ss(A,B,C,D) - declara um sistema linear no espa co de estados atrav es das matrizes A, B , C e D. Teste com A = [0, 1; 5, 2], B = [0; 1], C = [1, 3] e D = 0. >>tf(s1) - obt em a fun c ao de transfer encia Y (s)/U (s) de s1 a partir de sua representa c ao de estados. >>zpk(g1) - obt em a representa c ao de g1 em no formato zeros-polos-ganho. >>zero(g1) - obt em os zeros de g1. Teste zero(s1). >>pole(g1) - obt em os p olos de g1. Teste pole(s1). g3=g2 - Faz uma c opia de g2 em g3. set(g3,InputDelay,2) - adiciona atraso de transporte de 2 segundos na fun c ao de transfer encia g3.

10. Opera c oes com sistemas lineares: -, + - associa c ao em paralelo. *, / - produto e divis ao de fun c oes de transfer encia. >>t=feedback(g1,g2) - retorna a fun c ao de transfer encia de malha fechada resultante da associa c ao em realimenta c ao negativa: g1 no caminho direto e g2 no caminho de realimenta c ao. >>t=feedback(g1,1) - caso particular da realimenta c ao negativa unit aria: no caminho direto. g1

11. Forma alternativa. Teste esta forma de declarar uma fun c ao de transfer encia. >>s=zpk([0],[],1) >>g3=(s^2+3)/(s*(s+2)*(s+5))

An alise de sistemas realimentados

As fun c oes bode, nyquist, rlocus e step admitem diversos par ametros e modicam seu comportamento com base nos argumentos passados e na exist encia ou n ao de argumentos de retorno. Gr aca. Sem argumentos de retorno, elas apresentam o resultado de forma gr aca. Num erica. Com argumentos de retorno, os resultados s ao apresentados de forma num erica e armazenados nas vari aveis correspondentes. Esta alternativa e fundamental para obter os resultados num ericos necess arios em projetos de controladores.

Faixa. As faixas de freq u encia e/ou tempo e determinada automaticamente pelas fun c oes, bem como o n umero de pontos que s ao avaliados. Voc e pode sobrepor este comportamento passando como argumentos os intervalos ou valores exatos em que quer obter seu resultado. Para os exerc cios abaixo, utilize uma ou mais das seguintes fun c oes de transfer encia: G(s) = 1. 2.
s+5 (s+2)(s+10) ,

G(s) =

20 s2 +10s+50 ,

G(s) =

200 (s+5)(s2 +10s+50)

>>bode(g) - constr oi o diagrama de Bode de g1, escolhendo automaticamente a faixa de freq u encia e o n umero de pontos, e apresenta o resultado de forma gr aca. [m,f]=bode(g) - retorna os dados de forma num erica: m e o m odulo (linear) e f e a fase em graus. Use squeeze(m) e squeeze(z) para obt em os resultados na forma de vetores.

3. Exerc cio. Veja no >>help bode como voc e pode especicar os valores de freq u encia para determinar o m odulo e fase de G(s) em um ponto de freq u encia espec co. Com isto determine as freq u encias de cruzamento de ganho e de fase na tentativa e erro. 4. >>nyquist(g) - constr oi o diagrama de Nyquist de g1, escolhendo automaticamente a faixa de freq u encia e o n umero de pontos, e apresenta o resultado de forma gr aca. Utilize os recursos de zoom para visualizar melhor os resultados. >>rlocus(g) - constr oi o lugar das ra zes da equa c ao caracter stica correspondente a g1, escolhendo automaticamente a faixa de ganho e o n umero de pontos, e apresenta o resultado de forma gr aca. rlocfind(g) - retorna o ganho de ajuste para um ponto escolhido sobre o lugar das ra zes. >>step(g) - constr oi a resposta ao degrau de g1, escolhendo automaticamente o intervalo de tempo e o n umero de pontos, e apresenta o resultado de forma gr aca.

5.

6. 7.

8. Veja no >>help step como obter os dados num ericos da resposta. Com base nisto, determine os valores do tempo de acomoda c ao ts e da m axima sobre-eleva c ao (m aximo overshoot). Avan cadas. simulink. Outras fun c oes u teis evalfr, freqresp, squeeze, linsim, c2d, d2c, rltool,

Gr acos

A interface gr aca do Matlab permite manipular diversar janelas gr acas simultanemante. Cada janela gr aca pode apresentar diversos gr acos. Cada gr aco pode apresentar diversas curvas em cores ou tra cados distintos. 1. 2. 3. 4. >>x=[0:0.1:7]; y=sin(x); - cria dois vetores. >>plot(y) - tra ca o gr aco dos valores de y em fun c ao dos ndices do vetor y. O tra cado e feito sobre a janela gr aca corrente. Se n ao houver nenhuma, uma e criada. >>plot(x,y) - tra ca y em fun c ao de x. >>figure(n) - cada janela gr aca e identicada por um n umero inteiro maior ou igual a 1. A fun c ao figure permite tornar corrente uma janela gr aca j a existente ou cri a-la, caso ainda n ao exista. >>xlabel(Tempo (s)) - adiciona label para o eixo das coordenadas. >>ylabel(seno(t)) - adiciona label para o eixo das absissas.

5. 6.

7. 8. 9. 10.

>>title(Grafico da funcao seno.) - adiciona t tulo para o gr aco. >>axis([xmin xmax ymin ymax]) - sele c ao manual das escalas dos eixos x e y (usar valores num ericos). Note que a fun ca o tem um u nico argumento, sendo este um vetor. >> grid - adiciona grade no gr aco. >> hold on/off - a fun c ao plot normalmente elimina as curvas anteriores existentes no gr aco. Usando hold on, as curvas s ao s o adicionadas, sem eliminar as anteriores. Usando hold off volta-se ao modo normal. Note que a fun c ao hold se aplica ao gr aco corrente apenas. >>subplot(312) - divide a janela gr aca corrente em uma matriz de 3 por 1 gr acos e seleciona o gr aco de n umero 2, contados da esquerda para direita e de cima para baixo. Teste o seguinte: >>subplot(311) >>plot(t,sin(t)) >>subplot(312) >>plot(t,cos(t)) >>subplot(313) >>plot(t,exp(-0.5t))

11.

12. Avan cadas. semilogx, semilogy, loglog, mesh, surface.