Você está na página 1de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

TTULO: AUTOR:

Introduo ao uso do matlab para processamento de ensaios Lynx Adriano Axel Pliopas Pereira cel. (11)8576-3246 e-mail: adriano.axel@gmail.com DATA: 31 de maio de 2007 OBJETIVO: Familiarizar equipe de trabalho com a Balana Aerodinmica com o emprego do MatLab para processamento de arquivos de ensaios, de modo a permitir um planejamento adequado dos procedimentos de ensaios e o desenvolvimento de ferramentas de processamento otimizadas.

So Paulo, 31 de maio de 2007 Pgina 1 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

CONTEDO:
INTRODUO................................................................................................................................ 3 COMANDOS BSICOS EM MATLAB........................................................................................ 3 MATRIZES............................................................................................................................................... 4 PLOTAGEM DE GRFICOS.......................................................................................................................... 5 A FUNO LYNXTURBINADO...................................................................................................................... 7 SCRIPT (ARQUIVOS *.M)........................................................................................................................... 9 FUNES (FUNCTION)............................................................................................................................ 9 LEITURA DE ARQUIVOS DE ENSAIO.................................................................................... 10 EXEMPLO 1 PLOTAGEM DE DADOS BRUTOS................................................................. 12 EXEMPLO 2 PR-PROCESSAMENTO (ZEROS)............................................................. 14 EXEMPLO 3 PROCESSAMENTO DE MLTIPLOS ARQUIVOS...................................... 16 EXERCCIO 1 VISUALIZANDO ARQUIVOS....................................................................... 18 EXERCCIO 2 APLICANDO UMA CALIBRAO LINEAR.............................................. 18 EXERCCIO 3 APLICANDO UMA CALIBRAO NO-LINEAR.................................... 18 EXERCCIO 4 ANLISE DE ENSAIO SIMPLES.................................................................. 18 EXERCICIO 5 ANLISE DE ENSAIO MLTIPLO SEQUENCIAL................................... 19 COMENTRIOS FINAIS............................................................................................................. 19

So Paulo, 31 de maio de 2007 Pgina 2 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Introduo
Os aspectos essenciais do uso do MatLab sero abordados neste documento com vistas a possibilitar o processamento de ensaios experimentais realizados com equipamento Lynx (http://www.lynxtec.com.br). De maneira alguma este um material autnomo e exaustivo. Visa apenas ser um breve guia de estudos e base para uma introduo s ferramentas fundamentais. Aprofundamentos nos conhecimentos de MatLab por meio de estudos de tutoriais e da prpria ajuda do aplicativo, bem como consultas exaustivas sobre toda e qualquer dvida so fundamentais para que um desenvolvimento completo possa ser alcanado. O foco deste guia so os exemplos prticos. Assim, pouco ser dito sobre os detalhes genricos de utilizao do MatLab, e um investimento de tempo em outros guias especficos desta ferramenta altamente recomendvel. Como sugesto para bom aproveitamento, no apenas leia os exemplos... Utilize os arquivos fornecidos juntamente a este guia e implemente os exemplos. Em seguida, invista um tempo na resoluo dos exerccios apresentados, da melhor forma possvel. possvel o surgimento de srias dvidas durante os exerccios, pois este guia no foi exaustivamente pensado de modo a fornecer todas as informaes necessrias. No exite em mandar e-mails ou telefonar solicitando ajuda.

Comandos bsicos em matlab


clear all

Limpa a rea de trabalho, isto , deleta todas as variveis nela existentes.


close all

Fecha todas as janelas de interface (grficos, janelas de erro ou outras)


clc

Limpa rea de trabalho (visualmente).

So Paulo, 31 de maio de 2007 Pgina 3 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Matrizes
Toda varivel numrica em MatLab uma matriz, sendo os escalares meros casos de matrizes de dimenso 1x1. A atribuio de dados em uma matriz pode ser feita de forma direta, como por exemplo:
>> M=[1 2 3; 4 5 6; 7 8 9] M = 1 4 7 2 5 8 3 6 9

Ou de forma indireta, a partir de outras matrizes existentes, como em


>> B=[M M] B = 1 4 7 2 5 8 3 6 9 1 4 7 2 5 8 3 6 9

Ou, ainda, de forma indireta a partir dos ndices de uma outra matriz:
>> J=B(2:3,3:5) J = 6 9 4 7 5 8

Deu para entender o que aconteceu? Matrizes tambm podem ser inseridas de uma forma mais convencional por meio do uso de reticncias para separar quebrar uma mesma linha. Assim, a primeira atribuio dada aqui como exemplo poderia ser escrita como:
>> M=[1 2 3;... 4 5 6;... 7 8 9] M = 1 4 7 2 5 8 3 6 9

So Paulo, 31 de maio de 2007 Pgina 4 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Plotagem de grficos
Para plotagem de grficos, utiliza-se a funo plot, sendo seu uso muito simples. Como argumentos, informa-se na seqncia os valores das abcissas e das ordenadas, e em seguida qualquer eventual informao relativa a formatao. Assim, por exemplo:
>> x=[0:0.01:5]; >> y=sin(x); >> plot(x,y)

gera o grfico:

NOTA: o uso do ponto e vrgula nos comandos acima serve para que o resultado dos respectivos comandos no sejam ecoados na rea de trabalho, ou seja, no sejam listados item a item na tela, poluindo a apresentao. comum o uso do ponto e vrgula ao final das linhas de programao em MatLab, a no ser que voc queria visualizar o valor de uma varivel em determinado momento. Para formatar o grfico, por exemplo exibindo-o com pontos ao invs de uma linha contnua, e mudando sua cor, usa-se uma string com os cdigos de formatao:

So Paulo, 31 de maio de 2007 Pgina 5 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

>> x=[0:0.5:5]; >> y=sin(x); >> plot(x,y,'r+')

o conjunto acima gera o grfico:

hold on O comando hold on impede que um grfico seja apagado quando um novo grfico plotado. Assim, utilizando-o possvel poltar vrias coisas distintas sobre um mesmo grfico. Outras funes de interesse: xlabel ylabel legend title xlim ylim subplot Para maiores informaes sobre estas funes, digite help e, em seguida, o nome da funo. Ou consulte o Help do MatLab no menu superior.

So Paulo, 31 de maio de 2007 Pgina 6 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

A funo lynxturbinado
A funo lynxturbinado abre arquivos *.tem e joga seus dados para dentro da rea de trabalho do MatLab. Tudo o que voc precisa passar de argumento para a funo o nome do arquivo do ensaio.
[X, POS, NR, HDST, TIME, OK] = lynxturbinado(ensaio.tem);

O comando acima, por exemplo, abre o arquivo ensaio.tem e carrega todos os seus dados na matriz X. O vetor TIME contm os instantes de medio das grandezas contidas em X, sendo que a sua primeira posio sempre zero (t0=0s). HDST uma varivel do tipo structure, que nada mais do que uma varivel que se comporta como um fichrio contendo diversas pastas distintas. extremamente til para manipular um grande conjunto de informaes, de qualquer espcie, dentro de um programa, entre diversas funes, etc. Juntamente com este guia voc muito provavelmente recebeu tambm alguns arquivos de exemplos de ensaios. Tratam-se de amostras de ensaios reais conduzidos no Tnel de Vento do IPT e utilizando extensmetros e acelermetros como instrumentao. A ttulo de exemplo de utilizao da varivel HDST, vamos carregar um desses arquivos e ento visualizar essa varivel:
>> [X, POS, NR, HDST, TIME, OK] = lynxturbinado('exemploA.tem'); >> HDST HDST = dthr: comment: nc: fs: ns: name: 'fora y'} unit: sup: inf: excom: [1x0 char]} ne: ev: [7x1 double] [1x0 char] 6 512 1095432 {'fora x' 'anem.'

'ponte compl.'

'acel x'

'acel y'

{'V' 'V' 'V' 'V' 'V' 'V'} [10 10 10 10 10 10] [-10 -10 -10 -10 -10 -10] {[1x0 char] [1x0 char] [1x0 char] 0 []

[1x0 char]

[1x0 char]

So Paulo, 31 de maio de 2007 Pgina 7 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Para visualizar apenas uma das pastas contidas na structure HDST, basta digitar HDST.nome-da-pasta, por exemplo:
>> HDST.name ans = 'fora x' 'fora y' 'anem.' 'ponte compl.' 'acel x' 'acel y'

Os nomes assim exibidos so correspondentes a cada coluna da matriz X. Assim, por exemplo, X(:,1) contm todos os dados de fora x, X(:,2) contm todos os dados da medio anem., e assim por diante. Para plotar a srie temporal da fora em X, por exemplo, usa-se o comando:
>> plot(TIME,X(:,1)) >> xlabel('Tempo - s') >> ylabel('Fora x')

So Paulo, 31 de maio de 2007 Pgina 8 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Script (arquivos *.m)


H duas formas principais de gerar comandos para execuo no MatLab. Voc pode escrev-los diretamente na rea de trabalho, conforme viemos sugerindo at aqui, ou pode tambm criar um arquivo *.m, que no fundo um arquivo de texto que o MatLab executar como se fossem comandos digitados na rea de trabalho. O interessante que esses arquivos, chamados tambm de scripts, podem ser rodados simplesmente digitando-se seu nome na rea de trabalho. Suponha por exemplo que voc crie um arquivo chamado showforce.m, e que contenha as seguintes instrues:
close all clear all clc [X, POS, NR, HDST, TIME, OK] = lynxturbinado('exemploA.tem'); plot(TIME,X(:,1)) xlabel('Tempo - s') ylabel('Fora x')

Com este arquivo, simplesmente digitando showforce na rea de trabalho o grfico do exemplo anterior ser exibido. Note que, a partir de agora, showforce pode ser entendido como um novo comando, criado pelo usurio, e que executa uma determinada tarefa. Pode-se utilizar o comando showforce dentro de um novo script, por exemplo, dentro de uma funo, diretamente na rea de trabalho... como voc preferir.

Funes (function)
Para escrever uma funo em MatLab procede-se como para a criao de um script, porm logo no incio do arquivo escreve-se a palavra function e, em seguida, sua descrio, em forma matemtica mesmo. Veja:
function [Area]=areatriangulo(base,altura) Area=base*altura/2;

A funo acima recebe como argumentos valores base e altura, e devolve o valor da rea na varivel Area. IMPORTANTE: os arquivos de funes devem ser salvos com o mesmo nome atribudo funo na primeira linha do arquivo. O arquivo do exemplo acima ser, assim, chamado areatriangulo.m.

So Paulo, 31 de maio de 2007 Pgina 9 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Leitura de arquivos de ensaio


J vimos como abrir um arquivo *.tem e acessar seus dados. Alguns comentrios, entretanto, so pertinentes no que diz respeito a organizao dos ensaios. Para realizar um processamento de ensaio adequado, necessrio saber responder exatamente as seguintes perguntas: o como foram realizadas as calibraes dos instrumentos? o como cada parmetro foi variado dentro de cada arquivo? o como localizar, dentro de cada arquivo, exatamente os dados que desejo analizar, e no outros? o onde e como est contida a informao do zero inicial? o como transformar a leitura de cada sensor na grandeza desejada com o ensaio? Essas perguntas so pertinentes dadas as diversas possibilidades existentes que induziro confuso ou mesmo ao erro aps o ensaio caso no tenham sido devidamente controladas. Para comear, h vrias formas de se gravar um ensaio. Pode-se grav-lo continuamente, isto , iniciar a gravao a partir de um determinado momento, executar todas as variaes necessrias, voltar condio inicial e s ento parar a gravao dos dados, gerando assim um nico e grande arquivo. Pode-se tambm gerar arquivos relativamente pequenos correspondentes a cada fatia do ensaio, ou seja, a cada regio em que os parmetros de controle encontram-se fixados. Para um ensaio em tnel de vento, por exemplo, o principal parmetro de controle ser a velocidade do ar dentro do tnel. Imagine ento um grfico no tempo descrevendo a variao da velocidade, e poderemos ento ver graficamente essas duas formas distintas de conduo dos trabalhos. Um ensaio contnuo ocorre como mostrado abaixo:

So Paulo, 31 de maio de 2007 Pgina 10 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

J um ensaio mltiplo-sequencial, com vrios arquivos distintos cada um correspondendo a um trecho do ensaio, poderia ser realizado como mostrado adiante:

Neste exemplo, h seis arquivos distintos. Note que o primeiro e o ltimo arquivo correspondem a situao em que a velocidade do vento dentro do tnel igual a zero. Isso no acontece por mero acaso. O primeiro zero est presente para poder compensar qualquer leitura remanescente nos sensores, ou mesmo grandes leituras que correspondam a uma situao esttica e no a alguma coisa associada ao escoamento externo de ar. O ltimo zero, por outro lado, serve para verificar se, desligando-se o tnel, as leituras dos sensores retornam para valores prximos aos originais. Tal procedimento til para medidas de erros e para deteco de possveis falhas nos sensores, de outra maneira no perceptveis. Nos arquivos fornecidos juntamente a este tutorial, h um exemplo de ensaio conduzido no modo contnuo e de um ensaio conduzido por trechos. As diferenas no processamento destes ensaios devem ficar claras ao longo dos exemplos e exerccios. Deve-se tomar cuidado com a utilizao de ensaios por trechos para situaes em que a srie temporal completa de uma determinada varivel de interesse, uma vez que vrios trechos sero perdidos por este mtodo. Por outro lado, situaes em que h preocupao apenas na relao entre grandezas medidas, por exemplo a relao entre uma Fora X e uma Fora Y para situaes estacionrias, podem ser adequadamente registradas e processadas por meio do ensaio por trechos.

So Paulo, 31 de maio de 2007 Pgina 11 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Exemplo 1 Plotagem de dados brutos


Neste exemplo, como j foi feito acima, vamos apenas visualizar o contedo de um arquivo *.tem. A diferena com relao ao que foi feito acima est no fato de que organizaremos uma melhor exibio dos dados. Notas: Sobre as novas funes aqui apresentadas, utilize o help do MatLab para maiores informaes. Arquivo exp01.m
close all clear all clc [X, POS, NR, HDST, TIME, OK] = lynxturbinado('exemploA.tem'); Graficos=size(X,2); %numero total de graficos, um para cada coluna da matriz X. figure('color','w') for i=1:Graficos subplot(ceil(Graficos/2),2,i) plot(TIME,X(:,i),'k') title(HDST.name{i}) end

O cdigo acima deve gerar como sada um grfico tal como o reproduzido abaixo:

So Paulo, 31 de maio de 2007 Pgina 12 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Esta visualizao da srie temporal completa de cada canal extremamente til para visualizar particularidades que podem ter ocorrido no ensaio e que tendem a desaparecer quando, durante o processamento, usa-se recursos como tomar a mdia de todo este arquivo ou ento anlise de apenas um trecho especfico do registro. importante conhecer os fenmenos que esto sendo medidos a fim de se poder avaliar se os grficos so qualitativamente plausveis ou se indicam algum possvel erro de medio ou de montagem do experimento.

So Paulo, 31 de maio de 2007 Pgina 13 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Exemplo 2 Pr-processamento (zeros).


close all clear all clc % Este arquivo recorta uma amostra de ensaio em diversos trechos, % especificados pelo usuario. Este processo de recortagem em trechos e % realizado logo no inicio, e utiliza as funoes CEIL, SIZE, e a montagem % de vetores por intervalo (para a montagem do vetor PosIni). % Para cada trecho o programa calcula o valor medio. Note que outros % processamentos seriam possiveis (desvio padrao, espectro de frequencia, % etc...). % A plotagem dos resultados e feita como no exercicio 1, porem plota-se % tanto o sinal original, em vermelho, como tambem os valores medios % (descontando-se o valor da primeira media calculada para cada sinal, % deste modo retirando o "zero" original). [X, POS, NR, HDST, TIME, OK] = lynxturbinado('exemploA.tem'); Graficos=size(X,2); %numero total de graficos, um para cada coluna da matriz X. compX=size(X,1); % numero de linhas da matriz X trechos=50; % numero de trechos a "recortar" no arquivo TamTrechos=ceil(compX/trechos); %Numero de linhas de cada um dos trechos PosIni=[1:TamTrechos:compX]; % vetor com as posioes iniciais de cada trecho % Abaixo, para cada trecho recortado acima, sera computado o valor medio figure('color','w') for col=1:Graficos for i=1:length(PosIni)-1 mediaX(i)=mean(X([PosIni(i):PosIni(i+1)-1],col)); T(i)=TIME((i-1)*TamTrechos+round(TamTrechos/2)); end subplot(ceil(Graficos/2),2,col) plot(TIME,X(:,col),'r-') hold on plot(T,mediaX-mediaX(1),'-+') title(HDST.name{col}) end

So Paulo, 31 de maio de 2007 Pgina 14 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Este exemplo gerar um conjunto de grficos conforme mostrado abaixo:

Note que as mdias calculadas so coerentes com os sinais originais, e note tambm que em geral os sinais mdios encontram-se consideravelmente deslocados das posies originais, uma vez que os zeros foram retirados.

So Paulo, 31 de maio de 2007 Pgina 15 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Exemplo 3 Processamento de mltiplos arquivos


O processamento de ensaios do tipo mltiplo sequencial utiliza os mesmos princpios j vistos nos exemplos anteriores. Adiciona-se, porm, um for externo que percorre todos os arquivos existentes. O processamento realizado sobre cada arquivo pode ento ser do tipo por trechos, conforme exibido utilizado no exemplo 2, ou pode simplesmente consistir na tomada das estatsticas de todo o arquivo (mdia, desvio padro, espectro, etc).
close all clear all clc BaseName={'exemploB'}; ArqZero='0001'; %Intervalo de analise ArqIni=1; ArqFin=3; cont=1; for i=ArqIni:ArqFin % -- Adapta nome do arquivo -finalnome=num2str(i); if length(finalnome)<2 finalnome=['000' finalnome]; elseif length(finalnome)<3 finalnome=['00' finalnome]; elseif length(finalnome)<4 finalnome=['0' finalnome]; end FILENAME=[BaseName{1} finalnome '.tem']; [X, POS, NR, HDST, TIME, OK] = lynxturbinado(FILENAME); % == PROCESSAMENTO DE CADA ARQUIVO == mediaX(cont)=mean(X(:,1)); mediaY(cont)=mean(X(:,6)); cont=cont+1; end figure('color','w') plot(mediaX,mediaY,'k-o') title('Fase fora X e Y') xlabel('Fora X') ylabel('Fora Y')

So Paulo, 31 de maio de 2007 Pgina 16 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Este programa gera a seguinte sada grfica:

Observe que cada ponto do grfico acima refere-se a um dos arquivos *.tem analisados. Assim, todas as informaes contidas nesses arquivos para cada canal foram reduzidas ao respectivo valor mdio. preciso muita certeza de que este procedimento vlido. Como possvel a existncia de irregularidades dentro de cada arquivo (presena de transientes, oscilaes imprevistas ou mesmo falha de sensores), sempre recomendvel, antes de cada processamento, a visualizao de toda a srie temporal de cada canal, conforme fizemos nos primeiros exerccios.

So Paulo, 31 de maio de 2007 Pgina 17 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Exerccio 1 Visualizando arquivos


Visualize os dados brutos de todos os arquivos exemplo.tem, grave os grficos obtidos em um documento e comente observaes pertinentes aos sinais observados. Todos os canais aparentam estar funcionando normalmente? Quais os comentrios qualitativos principais sobre cada canal? Documente seus resultados e comentrios em um arquivo entitulado exercicio1.doc

Exerccio 2 Aplicando uma calibrao linear


Processe o arquivo exemploA.tem aplicando a seguinte calibrao linear:
Fora X [em newtons] = Fora X [valor medido] *15.37; Fora Y [em newtons] = Fora Y [valor medido] *13.52;

Documente os grficos obtidos na grandeza calibrada e comente os resultados, em um arquivo exercicio2.doc.

Exerccio 3 Aplicando uma calibrao no-linear


O mesmo arquivo tratado nos exerccios anteriores, exemploA.tem, contm um canal denominado anem., ou seja, anemmetro. Trata-se de um instrumento utilizado para medio da velocidade do vento em um ensaio de tnel de vento. A partir de calibraes realizadas, chegou-se seguinte relao para a interpretao do sinal registrado: Velocidade[m/s]=K*(Anemmetro[valor medido])a onde:
K = 36.28; a = 2.04;

Analise este arquivo e faa um grfico Velocidade x Tempo para o ensaio, utilizando a calibrao acima.

Exerccio 4 Anlise de ensaio simples


Para o arquivo ensaioA.tem, plote a fora X e a fora Y, em Newtons, como funo da velocidade. Para o clculo da velocidade, use o sinal do anemmetro. Utilize as calibraes sugeridas nos exemplos 2 e 3 para obteno de unidades de interesse (newtons e m/s). Documente os resultados e seu programa em um arquivo, exemplo4.doc, comentando o que julgar pertinente.

So Paulo, 31 de maio de 2007 Pgina 18 de 19

Escola Politcnica da Universidade de So Paulo SAE Aerodesign - Equipe Poliaclive

Exercicio 5 Anlise de ensaio mltiplo sequencial


Repita a tarefa do exerccio 4, porm utilizando os arquivos exemploB0001.tem, exemploB0002.tem e exemploB0003.tem. Documente os resultados.

Comentrios finais
Esta uma primeira verso deste tutorial. Considerei anexar tambm a resoluo ou, ao menos, as respostas dos exerccios propostos. Porm, sendo os mesmos razoavelmente abertos, uma vez que diferentes estratgias de programao podem ser utilizadas para produzir os mesmos resultados, e que diferentes opes de processamento esto disponveis, no tendo sido particularizadas nos enunciados, prefiro deixar o julgamento quanto validade da resoluo por conta do prprio estudante e de discusses futuras. Sendo a primeira verso, este tutorial deve estar ainda longe de uma boa qualidade didtica, de clareza, de contedo, etc... Assim, peo a gentileza de que todos os comentrios e crticas no morram na mente daqueles que os conceberam. Envie-nos ao meu e-mail para que eu possa melhorar este material e tornar a vida dos prximos usurios um pouco menos difcil. O e-mail adriano.axel@gmail.com.

So Paulo, 31 de maio de 2007 Pgina 19 de 19

Você também pode gostar