Você está na página 1de 9

1

unesp

UNIVERSIDADE ESTADUAL PAULISTA

CAMPUS DE GUARATINGUET DEPARTAMENTO DE ENGENHARIA ELTRICA

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 em grupos de at 3 (trs) alunos. 2- Caso algum aluno no puder fazer as atividades, no dia previsto de seu laboratrio, o mesmo dever entregar o relatrio individualmente. 3- Os trabalhos ou relatrios devero ser entregues, quando necessrio, na semana seguinte depois do laboratrio. 4- 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. 5- Sempre que houver listagens de sesses do Matlab, estas devero ser includas como apndices. 6- 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://dee.feg.unesp.br/Disciplinas/SEL3033. 2- Ogata, K. Engenharia de Controle Moderno. Prentice Hall do Brasil, 3a. Ed., 1998. 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 de projeto de controle e recursos grficos. 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. Sendo assim, a primeira providncia que cada aluno deve tomar mudar para o seu diretrio, usando para isso o comando:

>> cd z:\LACSD;
______________________ Verso 5 - 08/03/2006

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 (use-os 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 se podem 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 5 - 08/03/2006

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 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);
______________________ Verso 5 - 08/03/2006

4 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);
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
______________________ Verso 5 - 08/03/2006

5 para o Matlab. Lembre de usar somente o seu diretrio para armazenar programas e dados 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. 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 T'he 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.

______________________ Verso 5 - 08/03/2006

6 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.

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.

______________________ Verso 5 - 08/03/2006

7 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 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 5 - 08/03/2006

unesp

UNIVERSIDADE ESTADUAL PAULISTA

CAMPUS DE GUARATINGUET DEPARTAMENTO DE ENGENHARIA ELTRICA

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

LAB. 1 - INTRODUO AO MATLAB E SIMULINK


ATIVIDADES

1- 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.

2- Observar no Matlab para que so usadas e como devem ser usadas as funes: abs, angle, log, imag, real e atan. Apresente exemplos numricos destas funes

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

s = a + jb .

je j11

b-

(1 j )10

c- log(-1)

d-

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

4- Plote o nmero complexo

z = 3 + 4 j , usando como smbolo x. f (t ) = 3e j 3t


2

5- Gerar valores para a funo complexa

para t variando de 0 a 1 em incrementos de 0,001.

6- Adicione as funes p = 3 sen( x ) + 2 cos( y ) e q = 3 cos( xy ) + 2 y y = 0,05x + 2,01. Use incremento de 0,01. Plote as trs funes e a soma.
3

para x variando de 0 a 5.

7- Plote a funo

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

8- Calcular e plotar a funo:

h( x) =

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

9- Plote a curva abaixo em trs dimenses:

z = sen( x 2 + y 2 ) / ( x 2 + y 2 )

______________________ Verso 5 - 08/03/2006

9 10- 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.

11- 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.

12- 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.

13- 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. 1 x y 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

BIBLIOGRAFIA SUGESTES (Relacionar possveis sugestes para melhoria deste lab. de Anlise e Controle de Sistemas Dinmicos).
______________________ Verso 5 - 08/03/2006

Você também pode gostar