You are on page 1of 9

1

unesp

UNIVERSIDADE ESTADUAL PAULISTA

CAMPUS DE GUARATINGUET DEPARTAMENTO DE ENGENHARIA ELTRICA

LCL-311 - Laboratrio de Controle Linear LACSD-311 - Laboratrio de Anlise e Controle de Sistemas Dinmicos

LAB. 1 - INTRODUO AO MATLAB E SIMULINK


INSTRUES 1- As atividades de laboratrio devero ser feitas individualmente, e os relatrios,quando houver, em grupos de 4 (quatro) alunos, e entregue no prazo mximo de 1 semana aps a realizao do Experimento; 2- As solues devero ser de forma clara, simples e organizadas. Se houver figuras, tabelas e equaes, essas devero ser numeradas e referenciadas. No dever ser utilizado no relatrio material j apresentado na introduo; 3- Sempre que houver listagens de sesses do Matlab, estas devero ser includas. 4- A folha de rosto do relatrio ser a pgina que contm as atividades.

PROPOSTA As atividades a seguir tm por objetivo fixar a operao e o uso do Matlab e do Simulink, programas que sero usados no decorrer de todo o curso, tanto como ferramenta para projeto de controladores, como para simulao de sistemas e anlise de dados, e especialmente como ferramenta para implementao. REFERNCIAS 1- Material disponvel na Web relacionado no endereo: http://www.feg.unesp.br/~falotufo/Disciplinas/SEL3033. 2- Ogata, K. Engenharia de Controle Moderno. Prentice Hall do Brasil, 5a. Ed., 2010. 3- Hanselman, D.; Littlefield, B. MATLAB 5: Verso do Estudante, Guia do Usurio, Makron Books, 1999.

INTRODUO AO MATLAB O MATLAB (de MATrix LABoratory) um programa produzido pela Mathworks, Inc. (maiores informaes em http://www.mathworks.com), e a grosso modo serve para tratar matrizes e nmeros complexos da mesma forma que uma calculadora trata nmeros reais. Alm disso, ele possui recursos de programao, agindo como uma linguagem interpretada, semelhante a C ou Pascal, porm voltada para processamento numrico intensivo. Ele contm tambm programas para projeto de controle, recursos grficos dentre outros. O sistema operacional utilizado no laboratrio o Windows XP, portanto voc provavelmente encontrar o MATLAB na rea de trabalho do Windows ou dentro da opo Programas do menu Iniciar. A interface do MATLAB composta basicamente de uma janela de comandos, com um prompt caracterstico (>>). Alm dessa janela de comandos, podem coexistir diversas janelas, que podem ser habilitadas ou desabilitada atravs do comando View.

TUTORIAL DO MATLAB Este tutorial contm algumas demonstraes de comandos do MATLAB. O aluno deve digitar os comandos indicados para se familiarizar com o MATLAB. Cada aluno dever ter o seu prprio subdiretrio no disco rgido para armazenar programas e dados a serem utilizados pelo MATLAB. Devem ser mantidos nessa rea arquivos relativos as experincias. As operaes de limpeza do disco rgido so realizadas com certa freqncia. Por isso, alm dos motivos bvios de segurana, razovel que o aluno mantenha cpias de seus arquivos em disquetes, mini drives, pen drives ou afins. Sendo assim, a primeira providncia que cada aluno deve tomar mudar para o seu diretrio, usando para isso o comando:

>> cd z:\LACSD;
______________________ Verso 10 - 21/02/2011

2 IMPORTANTE: Este deve ser sempre o primeiro comando a ser executado. Use o Matlab somente a partir de seu diretrio, ou disquete ou outra forma de armazenamento disponvel. Os comandos demo e help podem ser muito teis para se ter uma idia geral do funcionamento do Matlab (useos sempre que tiver dvidas). O comando

>> help xxx


Onde xxx representa uma funo ou um comando especfico, fornece informaes apenas a respeito desse comando ou funo. Uma vez feito isso, digite:

>> a=[1 2;3 4]


Para definir uma matriz a (note que maisculas e minsculas fazem diferena). O MATLAB usa colchetes para definir matrizes e um ponto e vrgula como separador de linhas. Um espao em branco ou uma vrgula podem ser usados para separar colunas. Note tambm que o MATLAB responde ao comando acima apresentando a matriz na janela de comandos. Se o comando fosse terminado por um ponto e vrgula (;), a matriz seria definida da mesma forma, mas no seria apresentada na tela (isto particularmente til para matrizes muito grandes, cuja exibio pode preencher diversas telas). Digite agora

>> whos
Para verificar quais so as variveis j definidas. Defina agora uma outra matriz

>> b=[5 6;7 8]


Com isso, agora ser possvel realizar algumas operaes matriciais simples:

>> c=a*b >> d=inv(c)


E algumas um pouco mais complexas:

(multiplicao) (calcula a inversa da transposta de c)

>> [f,g]=eig(c) >> f=a(:,1)*b(2,:)

(fornece os autovetores de c em f e os autovalores em g) (produto da primeira coluna de a com a segunda linha de b)

A notao utilizada bastante til. O smbolo dois pontos (:) significa todos os elementos. Assim quando se escreve a(:,1), leia-se todas as linhas de a, mas somente a primeira coluna. Obviamente, a(:,1) uma matriz de dimenso 2x1. As tabelas abaixo mostram alguns elementos bsicos que podem ser testados e confirmados suas respostas.

______________________ Verso 10 - 21/02/2011

Uma outra aplicao do Matlab, so as funes do Matlab que lidam com polinmios, as quais assumem que polinmios so descritos por vetores linha, em ordem decrescente de grau, isto , o polinmio

p( x ) = 4x 4 + 5x 2 + x + 9 descrito como sendo o vetor p = [4 0 5 1 9].


Operaes sobre polinmios atravs das funes: poly, roots, polyval, polyvalm, conv, deconv, residue,

polyfit

Outro recurso muito til a gerao e manipulao de vetores (vetores so matrizes com apenas uma linha ou uma coluna). Veremos como se faz isso calculando o espectro de potncia de um sinal, aproveitando para apresentar alguns recursos grficos mais simples. O comando

>> t=0:0.001:0.5;
Define um vetor linha t contendo nmeros de 0 a 0,5 com passo de 0,001, isto [0 0,001 0,002 ...0,5].

>> size(t);

fornece as dimenses do vetor t.

>> x=sin(2*pi*50*t);
Calcula o seno da expresso entre parnteses para cada elemento de t e armazena o resultado nas posies correspondentes de x. pi representa =3,1415923... Para traar um grfico de x contra t, digite:

>> plot(t,x);
______________________ Verso 10 - 21/02/2011

4 O grfico aparece em uma janela diferente, possivelmente com o titulo Figure 1. Diversos grficos podem ser exibidos simultaneamente. Para saber como, digite:

>> help figure


O comando plot dever ser um dos comandos que voc mais utilizar. Certifique-se de que voc saiba oper-lo em detalhe. Para calcular a transformada rpida de Fourier de x, digite

>> y=fft(x);
O espectro de potncia o produto escalar de y e de seu complexo conjugado:

>> pyy=y.*conj(y);
Note que o operador .* (que um outro operador, diferente do operador de multiplicao *) faz multiplicao elemento a elemento, isto , o primeiro elemento de um vetor multiplicado pelo primeiro elemento do outro, etc. O operador * realiza a multiplicao usual de matrizes. Para se traar um grfico com o espectro de potncia, necessrio inicialmente se definir uma abscissa adequada:

>> f=1000*(0:255)/512;
Digite ento

>> plot(f,pyy(1:256))
E com isso sero colocados no grfico somente os 256 primeiros elementos de pyy.

As funes acima, bem como muitas outras, so na verdade escritas na prpria linguagem de programao do Matlab. A funo roots, por exemplo, est no arquivo texto ...\MATLAB\TOOLBOX\MATLAB\POLYFUN\ROOTS.M. Para ver seu contedo basta digitar

>> type roots


Esses arquivos, denominados M-files, podem ser de dois tipos: functions e scripts. Scripts so simplesmente seqncias de comandos, como acima, dispostos em um arquivo texto com extenso .m. Functions so estruturas mais complexas, que apresentam certas caractersticas bsicas, que so as seguintes: i) Existe passagem de parmetros entre o workspace do Matlab (workspace ou espao de trabalho pode ser entendido a grosso modo como o conjunto de variveis que pode ser observado com o comando whos na janela de comandos) e esta a nica troca de informaes. Por exemplo, o comando y=cos(x) passa funo cos um argumento x e recebe como resposta y. No h, alm disso, nenhuma troca de informaes. ii) O ambiente de cada funo independente, isto , uma funo no reconhece variveis definidas fora dela, e outras funes ou o workspace no reconhecem variveis definidas nela. Programadores de Pascal percebero uma analogia clara entre scripts e functions do Matlab com procedures e functions do Pascal, com a diferena de que no Matlab (pelo menos na verso considerada) no se pode declarar funes dentro de funes. Um exemplo simples de funes o arquivo log10.m, que uma funo escrita para calcular logaritmos base 10 a partir de logaritmos naturais. O comando

>> type log10


Mostra o contedo deste arquivo. Analise-o e entenda o seu funcionamento. Espera-se que voc seja capaz de escrever seus prprios scripts e functions para automatizar tarefas repetitivas e eventualmente realizar algumas mais complexas. A linguagem de programao do Matlab muito semelhante a outras linguagens estruturadas, e se voc estiver familiarizado com qualquer uma delas no ter problemas em fazer programas para o Matlab. Lembre de usar somente o seu diretrio para armazenar programas e dados, e de documentar bem os seus programas. importante que voc crie um cabealho inicial de comentrios, pois o que o comando help faz nada mais do que apresentar na tela o contedo deste cabealho. O comando

>> help lang


Apresenta basicamente tudo o que necessrio saber para se iniciar em programao Matlab.

______________________ Verso 10 - 21/02/2011

5 Finalmente, tenha em mente que o nmero de comandos e funes do Matlab, numa instalao normal, usualmente maior do que 1000, portanto quase impossvel memoriz-los todos, e bvio que este tutorial apresenta somente o mnimo necessrio para se comear a aprender o programa. Use os comandos help e demo sempre que estiver em dvida sobre como fazer algo. Este tutorial, por exemplo, no menciona como salvar ou carregar arquivos de dados, imprimir grficos, etc. Esses e outros aspectos tero de ser descobertos com o uso habitual do programa.

O SIMULINK O Simulink, tambm produzido pela The Mathworks. Inc., um programa destinado simulao de sistemas dinmicos. Ele opera em conjunto com o Matlab, mas ao contrrio dele, a sua interface com o usurio totalmente grfica, feita a partir da interconexo de blocos. O simulink acessado a partir do Matlab atravs do cone comando: , ou utilizando o

>> simulink
A janela principal do Simulink tem a aparncia da figura abaixo. Note que cada uma das caixas (Sources, Sinks, etc.) pode ser acessada a partir de um c1ick do mouse, fazendo com que se abram novas janelas. Cada uma delas contm blocos que podem ser interligados, gerando um sistema a ser simulado.

BREVE TUTORIAL DO SIMULINK A idia geral que voc utilize o Simulink para simular os sistemas que voc mesmo criar. Para criar um novo sistema basta escolher FILE>NEW no menu da parte superior da janela. Com isso uma nova janela em branco, porm com a mesma barra de menus, aparecer na tela. Como primeira tarefa voc dever criar um diagrama como o descrito abaixo, copiando os blocos de seus respectivos grupos. Faa isso arrastando-os com o mouse. A conexo entre os blocos feita da mesma forma.

______________________ Verso 10 - 21/02/2011

Uma vez que voc tenha feito isso, double-click em ambos os blocos para ter acesso s suas configuraes. Configure o gerador de sinal para gerar uma onda dente de serra com uma freqncia de 1 Hz e com uma amplitude de pico unitria. Configure o osciloscpio para exibir pelo menos uns 10 perodos da onda. Antes de se iniciar a simulao necessrio entender um pouco o seu funcionamento. O simulink, como todos os programas que fazem simulao de sistemas dinmicos, se utiliza de algoritmos de integrao para resolver a evoluo temporal das equaes do sistema numericamente. A janela abaixo, obtida do menu SIMULATION>PARAMETERS ilustra como o usurio pode fazer uso dos diferentes algoritmos e de suas caractersticas.

importante ressaltar que o Simulink utiliza algoritmos de passo varivel, isto , o passo de integrao varia entre os valores mnimo e mximo da janela de parmetros conforme um algoritmo interno de escolha, relacionado com o valor do parmetro de tolerncia. Os valores default desses parmetros auto so adequados para o seu sistema. Portanto verifique sempre se a simulao ocorre como esperado. Se voc tiver problemas com o passo de integrao, experimente fazer o passo mnimo igual ao passo mximo e diminu-lo aos poucos. Dos diversos algoritmos de integrao, voc provavelmente far uso do de Runge-Kutta de 4 e 5 ordens (RungeKutta 5) ou do algoritmo de Euler. Mais detalhes sobre os algoritmos de integrao, suas aplicaes especficas e escolha de parmetros voc encontra no Simulink User's Guide, disponvel na UPD. Finalmente, para se iniciar a simulao basta usar a opo SIMULATION>START do menu principal. Uma vez que voc tenha cumprido a primeira tarefa, passe ao seguinte exerccio. Monte o diagrama abaixo. Note que voc pode utilizar as variveis do Matlab num e den (se voc ainda as tiver) como argumentos do bloco de funo de transferncia. Via de regra, qualquer bloco do Simulink aceita variveis do workspace do Matlab como parmetros de entrada. Escolha a freqncia do gerador de pulsos de modo que o sistema saia
______________________ Verso 10 - 21/02/2011

7 de uma situao de regime e atinja novamente o regime entre transies na entrada (isto , use um perodo suficientemente grande para que a resposta do sistema a cada pulso seja parecida com a resposta do sistema a um degrau). Faa a simulao para alguns perodos e verifique ao final, o contedo das variveis u e y do Matlab (variveis referidas nos blocos To Workspace).

______________________ Verso 10 - 21/02/2011

unesp

UNIVERSIDADE ESTADUAL PAULISTA

CAMPUS DE GUARATINGUET DEPARTAMENTO DE ENGENHARIA ELTRICA

LCL-311 - Laboratrio de Controle Linear LACSD-311 - Laboratrio de Anlise e Controle de Sistemas Dinmicos

LAB. 1 - INTRODUO AO MATLAB E SIMULINK


Aluno:_________________________________________________________________________N:________________ Aluno:_________________________________________________________________________N:________________ Aluno:_________________________________________________________________________N:________________ Aluno:_________________________________________________________________________N:________________ 1- Leia atentamente a introduo terica e ento, formule 2 (duas) perguntas ou questes sobre dvidas surgidas na leitura e interpretao deste material.

2- Para a matriz

1 2 3 A = 4 5 6 , defina e determine: 7 8 0

- Determinante, rank, matriz inversa, autovalores e autovetores, polinmio caracterstico e razes do polinmio caracterstico. 3- No Matlab, para que e como devem ser usadas as funes: abs, angle, log, imag, real e atan? Apresente exemplos numricos destas funes. 4- Escreva um script ou function para plotar o nmero complexo

z = 3 + 4 j , usando como smbolo x.

5- Determine analiticamente e desenhe os seguintes nmeros complexos na forma polar: a- z = 2 + j 3 b- z

= 2 + j1 c- z = 2 j 3 d- z = 1 j 3

6- Represente os seguintes nmeros no plano complexo e expresse-os na forma Cartesiana ( s a-

= a + jb ):

2e j 3 j 3 d- 3e

b-

4e j3 j 4 e- 2e

c-

2e j 2 j 4 f- 2e

7- Utilize o Matlab para avaliar as expresses abaixo e express-las na forma cartesiana (retangular), isto , a- je
j11 4

s = a + jb .

b- (1 j )

10

c- log(-1)

d-

(2 + 5i ) * (1 5i ) /((1 + 7i ) * (3 + 2i ))

8- Usando a funo cart2pol do Matlab, converta os seguintes nmeros da forma Cartesiana para a forma polar:

z = 2 + j3 b- z = 2 + j1
a______________________ Verso 10 - 21/02/2011

9 9- Usando a funo pol2cart do Matlab, converta o nmero z = 4e


j 3 4

da forma polar para a forma Cartesiana;

10- Escreva um script ou function para gerar e plotar valores para a funo complexa a 1 em incrementos de 0,001. 11- Escreva um script ou function que adicione as funes x variando de 0 a 5.

f (t ) = 3e j 3t

com t variando de 0

y = 0,05 x + 2,01 . Use incremento de 0,01. Plote as trs funes e a soma na mesma figura.

p = 3sen( x 2 ) + 2 cos( y 3 )

q = 3 cos( xy) + 2 y 2

para

12- Escreva um script ou function para plotar a funo de 0,001.

y (t ) = (1 e 2, 2t ) cos(60t ) . Use t de 0 a 0,25 em incrementos

13- Escreva um script ou function para calcular e plotar a funo:

h( x ) =

1 1 + 6 2 ( x 0,3) + 0,01 ( x 0,9) 2 + 0,04

14- Escreva um script ou function que plote a curva abaixo em trs dimenses:

z = sen( x 2 + y 2 ) / ( x 2 + y 2 )
15- Escreva uma function que calcule a funo chamada de funo banana definida por Rosenbrok:

h( x1 , x2 ) = 100( x2 x12 ) 2 + (1 x1 ) 2
Plote esta funo, com os dados: x1 variando de 0 a 2 com incrementos de 0,01 e x2 variando de 0 a 4 com incrementos de 0,01; uso da funo meshgrid; da funo logspace; da funo contour; das funes xlabel e ylabel; e da funo gtext. 16- Carregar o arquivo train.mat, caso seja possvel reproduzir o som (apito de uma locomotiva), e plotar o grfico correspondente atravs dos comandos: load train sound(y,Fs); t=(0:length(y)-1)/Fs; plot(t,y) Analizar cada um dos comandos usados acima, descrevendo sua finalidade e seu funcionamento. 17- Um polinmio tem razes em -2, 2, -2+3j e -2-3j. Determine o polinmio e plote a funo polinomial para o intervalo de -5 a 5 com incrementos de 0,01. 18- Uma das maneiras mais usuais para se ajustar uma curva no MATLAB usar a funo polyfit, que ajusta um polinmio aos dados especificados. Ajuste um polinmio aos dados da tabela abaixo, depois calcule o polinmio e ento plote os valores da tabela e o polinmio calculado em funo dos valores de x. x y 1 2,7183 2 7,3891 3 20,0855 4 54,5982 5 148,4132 6 403,4288 7 1096,6332 8 2980,9580 9 8103,0839 10 22026,4658

19- Linearize a funo que corresponde ao torque que uma massa m faz com relao ao ponto P do pndulo simples ao lado. Linearizar em torno do ponto de operao = 0. Desenhe no Matlab g() (funo no-linear) e g() linearizado e mostre que para o sistema linearizado uma boa aproximao do sistema no-linear

< <

20- Desenvolva o exemplo dado na aula terica para obteno de uma aproximao linear para a equao:

y = x12 + x2
Desenhe no Matlab a funo no-linear e a linearizada, mostre e comprove os resultados obtidos analiticamente de que a linearizao uma boa aproximao do sistema no-linear nas condies dadas no exemplo.
______________________ Verso 10 - 21/02/2011

You might also like