Escolar Documentos
Profissional Documentos
Cultura Documentos
MANAUS
Agosto - 2017
Aula de Laboratrio 4: Aquisio de Sensor
MANAUS
2017
RESUMO
A aquisio de dados, no geral, feita por meio dos computadores, sejam eles
pessoais ou industriais. Transformar um sinal eltrico proporcional e converter o
mesmo em um formato digital se tornou algo essencial para o desenvolvimento do
controle de processos. Este trabalho trata-se de um experimento de aquisio de
dados da sada de uma clula de carga de uma balana digital. No qual foi
implementado um circuito amplificador de instrumentao para se obter os dados de
sada, pois a diferena de potencial nos terminais diferenciais do strain gauge muito
pequena. Os dados da aquisio de dados foram obtidos atravs do dispositivo DAQ
e do Osciloscpio como intuito de comparar o resultado entre ambos. Como resultado,
observou-se que a clula de carga possui uma disperso linear tanto com os dados
do DAQ quanto para os dados do Osciloscpio. Alm disso, notou-se que a histerese
do sensor para baixas massas desprezvel uma vez que a deformao da chapa de
alumnio na qual o strain gauge est soldada muito baixa.
LISTA DE TABELAS
Introduo: ................................................................................................................. 6
Objetivos: ................................................................................................................... 8
3.1. Materiais:...................................................................................................... 9
Referncias: ............................................................................................................. 18
Anexo ....................................................................................................................... 19
Introduo:
Objetivos:
Procedimentos Experimentais:
6. A taxa de amostragem do DAQ foi definida como 1kHz e foram amostradas 1000
amostras.
8. Aplicou-se um filtro digital do tipo mdia mvel sobre o conjunto de dados que
foram salvos no arquivo.csv.
9
10. Analisou-se os sinais que possuam o efeito de rudo branco e aplicou-se um filtro
do tipo mdia-mvel digital para a correo.
11. Foi feita a verificao para saber se o sensor possua histerese, identificou-se a
faixa de leitura do sensor e verificou-se estava de acordo com o declarado pelo
fabricante.
3.1. Materiais:
3.2. Equipamentos:
Para a anlise dos sinais de entrada e para a alimentao dos circuitos projetados foram
utilizados os seguintes equipamentos:
3.3. Metodologia:
Para a realizao deste experimento, foi utilizado uma clula de carga de uma balana
de cozinha WHB04, que por sua vez possui resoluo de 1g e faixa de medio de 0 a 5 kg.
O principal problema encontrado na aquisio do sinal gerado pela clula de carga da balana
foi que o sinal de sada muito baixo, uma vez que quando alimentada com 2,5V, a tenso
que era alimentada no projeto de fbrica do circuito da balana, produzia 2,2 mV na sada da
mesma, e 4,4 mV quando alimentada com 5V, nos dois casos para um peso mximo de 5 Kg.
(1)
11
Aps os procedimentos feitos com a balana WHB04, foi necessrio utilizar outra
balana de preciso melhor, para definir os pesos padres para realizar a aquisio dos dados
de sada do sensor, onde a balana utilizado foi a Urano POPZ, primeiramente colocou-se
quantidades de seixo aleatrias em 10 copos descartveis e aps isso mediu-se quantos
gramas tinham em cada um dos copos, onde os valores padres foram definidos como 14g,
26g, 28g, 32g, 34g, 38g, 40g, 44g, 50g e 62g. Na Figura 4 so mostradas algumas das
medies feitas na balana Urano POPZ.
12
Resultados e discusses:
A Figura 9 mostra a comparao entre os dados aquisitados j filtrados pelo filtro digital
de mdia mvel mostrado no Anexo A, para uma massa de 26g, pelo DAQ e pelo osciloscpio.
Pode-se notar que os dados aquisitados pelo DAQ sofreram uma maior variao na leitura
causadas por inmeros fatores, tais como: a ponta de prova ou interferncias do meio. Os
resultados foram organizados e gerados a partir dos programas no Matlab mostrados no
Anexo B.
Figura 9 Comparao entre o sinal gerado no DAQ e no Osciloscpio. Fonte: Autoria Prpria
15
Referncias:
AMARAL, S. Conceitos Bsicos de Aquisio de Dados. Joinville, SC. 2016. Disponvel
em:
http://www.joinville.udesc.br/portal/professores/silas/materiais/Conceitos_Basicos_de_Aq
uisicao_de_Dados.pdf>. Acesso em: 27 de Agosto de 2017.
Anexos
6.1. Anexo A Linha de comandos da funo mdia-mvel
% Funo para clcular a mdia mvel
% Calcula a Mdia mvel do sinal
% Criador: lvaro de Azevedo Peres
% Adaptado e melhorado de: Wagner Rambo do Canal WR Kits.
% Fonte: https://www.youtube.com/watch?v=GBHZfOVcwro
%
% Funo media_movel(sinal,n)
%
% sinal - varivel que recebe o sinal a ser filtrado
% n - grau do filtro
%
% O filtro abre mo de um atraso na funo em troca de preciso de modo que
% o grau n determina tal medida.
function filtro = media_movel(sinal,n)
% filtro(1) = sinal(1);
% filtro(2) = (sinal(1)+sinal(2))/2;
% filtro(3) = (sinal(1)+sinal(2)+sinal(3))/3;
% filtro(1) = sinal(1);
% filtro(2) = (filtro(1)+sinal(2))/2;
% filtro(3) = (2*filtro(2)+sinal(3))/3;
% .
% .
% .
% filtro(i) = ((i-1)*filtro(i-1)+sinal(i))/i
filtro(1) = sinal(1);
for i = 2:n
filtro(i) = ((i-1)*filtro(i-1)+sinal(i))/i;
end
for i = (n+1):length(sinal)
% n=2 filtro(i) = (sinal(i)+sinal(i-1))/2
% n=3 filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2))/3
% n=4 filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-3))/4
% ...
% n=x filtro(i) = (sinal(i)+sinal(i-1)+...+sinal(i-n-1))/(n);
soma = 0;
for x = 0:(n-1)
soma = sinal(i-x)+soma;
end
filtro(i) = soma/n;
% filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-
3))/4;%(sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-3)+sinal(i-4)+sinal(i-
5)+sinal(i-6)+sinal(i-7)+sinal(i-8)+sinal(i-9))/10;
end
end
20
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--
');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 14 g');
set(gcf,'Position',[10000 10000 10000 10000]);
legend('DAQ','Osciloscpio','Location','Best')
set(gca,'FontSize',18)
saveas(gcf,'Comparao 14g.bmp');
close all
m = 14;
save('Massa.txt','m','-ascii');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii');
21
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 26 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 26g.bmp');
close all
m = 26;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
22
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--
');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 28 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 28g.bmp');
close all
m = 28;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
23
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--
');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 32 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 32g.bmp');
close all
m = 32;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
24
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 34 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 34gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 34 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 34g.bmp');
close all
m = 34;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
25
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 38 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 38gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 38 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 38g.bmp');
close all
m = 38;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
26
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 40 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 40gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 40 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 40g.bmp');
close all
m = 40;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
27
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 44 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 44gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 44 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 44g.bmp');
close all
m = 44;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
28
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 50 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 50gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 50 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 50g.bmp');
close all
m = 50;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
29
media_filtroDAQ = mean(sinal_filtradoDAQ);
desvio_padraoDAQ = std(sinal_filtradoDAQ);
plot(timeDAQ,sinal_filtradoDAQ,'b-.');
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Tenso x Amplitude 62 g');
axis([min(timeDAQ) max(timeDAQ) 3.5 4]);
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
saveas(gcf,'massaDAQ 62gDAQ.bmp');
%% Comparao
timeOSC = timeOSC-timeOSC(1);
plot(timeDAQ,sinal_filtradoDAQ,'b-.',timeOSC,sinal_filtradoOSC,'r--');
axis([0 max(timeOSC) 3.5 4]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
title('Osciloscpio x DAQ 62 g');
set(gcf,'Position',[10000 10000 10000 10000]);
set(gca,'FontSize',18)
legend('DAQ','Osciloscpio','Location','Best')
saveas(gcf,'Comparao 62g.bmp');
close all
m = 62;
save('Massa.txt','m','-ascii','-append');
save('AquisioMdiaOSC.txt','media_filtroOSC','-ascii','-append');
save('AquisioDesvioPadroOSC.txt','desvio_padraoOSC','-ascii','-
append');
save('AquisioMdiaDAQ.txt','media_filtroDAQ','-ascii','-append');
save('AquisioDesvioPadroDAQ.txt','desvio_padraoDAQ','-ascii','-
append');
30
function a=FuncaoDispersao(x,y)
sx = 0;
sxy = 0;
sy = 0;
syy = 0;
sx2 = 0;
m = length(x);
for i=1:m
sx = sx + x(i);
sxy = sxy + x(i)*y(i);
sy = sy + y(i);
sx2 = sx2 + (x(i))^2;
end
alpha0 = (sx2*sy-sxy*sx)/(m*sx2-sx);
alpha1 = (m*sxy -sx *sy)/(m*sx2-sx);
a0 = num2str(alpha0);
a1 = num2str(alpha1);
a0 = strcat('y= ',a0);
a0 = strcat(a0,'x+');
a0 = strcat(a0,a1);
erroDispersao = sqrt((syy-a0*sxy)/(m-2))
a = a0;
end