Escolar Documentos
Profissional Documentos
Cultura Documentos
Lab1 ACSD 06
Lab1 ACSD 06
unesp
>> 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
>> whos
Para verificar quais so as variveis j definidas. Defina agora uma outra matriz
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.
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
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);
>> 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:
>> 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
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
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.
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.
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).
unesp
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 ))
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
h( x) =
z = sen( x 2 + y 2 ) / ( x 2 + y 2 )
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