escola politécnica universidade de são paulo psi -2222 – práticas de eletricidade e eletrônica...
TRANSCRIPT
Escola PolitécnicaUniversidade de São Paulo
PSI -2222 – Práticas de Eletricidade e Eletrônica 2 Agosto / 2008
Instrumentação Virtual
• João Kogler ………..PSI / EPUSP
Agenda
• O que é a Instrumentação Virtual • Como surgiu a Instrumentação Virtual• O LabVIEW e a Instrumentação Virtual• Como se usa o LabVIEW
Instrumentação Instrumento de medição
Grandeza Física Medida(valor numérico)
Instrumentode
Medição
Instrumentação Instrumento de medição
Calor, Aquecimento,Energia Térmica
Temperatura
Termômetro
Exemplo
Instrumentação Instrumento de medição
Calor, Aquecimento,Energia Térmica
TemperaturaTermômetro
Exemplo
Transdução
Converteaquecimentoem dilatação
Instrumentos de Medição Eletrônicos
• Baseiam-se na medida e transformação de grandezas grandezas elétricaselétricas Tensões, Correntes
• Valem-se de sensoressensores Transformam uma grandeza não-elétrica em elétrica
exemplo
termopar
Condicionamento /amplificador
display
Instrumentos de Medição Analógicos x Digitais
analógico
termopar
Condicionamento /amplificador
display
digital
termopar
Condicionamento /amplificador
display
Conversor A/D
display numérico
Instrumentos de Medição• Fornecem medidas de variáveis e parâmetros físicos• Sensores:
– Termopares– Extensômetros (strain gages), sensores de pressão– Acelerômetros, Velocímetros, Sensores de Deslocamento– Sensores fluidodinâmicos– Células de carga, Torquímetros– Sensores químicos e biológicos– Sensores ópticos– Sensores eletrodinâmicos
Instrumentação Instrumento de atuação
Grandeza Física
Dado de controle(valor numérico)
Instrumentode
Atuação
Instrumentação Instrumento de atuação
Energia Elétrica
Movimento
Motor+
Driver
Exemplo
Instrumentos de Atuação
• Exercem controle sobre variáveis e parâmetros físicos• Efetores ou atuadores:
– Aquecedores, resfriadores– Motores– Dosadores– Robôs, posicionadores– Cápsulas eletrodinâmicas, atuadores eletrodinâmicos– Atuadores pneumáticos e hidráulicos– Micro-atuadores
Instrumentação via computador digitalinstrumentos
experimento
Instrumentação via computador digitalinstrumentos
computador
experimento
Barramento de comunicação
Comunicação entre computador e instrumento
Instrumentos
Osciloscópio
Frequencímetro
Multímetro
Computador
Barramento GPIB
General General PurposePurposeInterfaceInterface
BusBus
Interface gráfica de controle dos instrumentos
Instrumentos
Osciloscópio
Frequencímetro
Multímetro
Computador
Barramento GPIB
Instrumento Virtual – Tipo 1
• Eletrônica de instrumentação
• Interface gráfica de controle
• Programa implementando os algoritmos de comunicação e análise
Instrumentação Virtual
•Tipo 1 - Computador comunicando com instrumentos remotos e acrescentando novas funcionalidades ao sistema de instrumentação
•Tipo 2 - Computador com hardware de aquisição de sinais realizando o papel de um instrumento
Instrumentos Equipamentos de Medição
Exemplo: Osciloscópio
Instrumentos Equipamentos de Medição
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Instrumentos Equipamentos de Medição
Amplificador / Atenuador
Vertical
Oscilador / Base de
Tempo Horiz.
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Instrumentos Equipamentos de Medição
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Amplificador / Atenuador
Vertical Oscilador / Base de
Tempo Horiz.
Instrumentos Equipamentos de Medição
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Oscilador / Base de
Tempo Horiz.
Amplificador / Atenuador
Vertical
Instrumentos Equipamentos de Medição
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Oscilador / Base de
Tempo Horiz.
Amplificador / Atenuador
Vertical
Instrumentos Equipamentos de Medição
Varredura / Excitação do
TRC
Painel Frontal
Interface de Operação
sinal
Oscilador / Base de
Tempo Horiz.
Amplificador / Atenuador
Vertical
Painel Frontal
Instrumentos Equipamentos de Medição
Varredura / Excitação do
TRC
Interface de Operação
sinal
Oscilador / Base de
Tempo Horiz.
Amplificador / Atenuador
Vertical
Painel Frontal
Interface de Operação
= Interface Gráfica de
Usuário( GUI )
Instrumentação Virtual – Tipo 2
• O computador implementa o instrumento
Instrumentação Virtual – Tipo 2
Instrumentação Virtual – Tipo 2
Condicionamento do Sinal
Instrumentação Virtual – Tipo 2
Sensores
Aquisição do Sinal
•amostragem•digitalização
Processamento do Sinal
•filtragem digital
•interpolação
•estimação
Amostras
Valores numéricos
na memória
sinal
Exemplo – Medição e Análise
Exemplo – Medição e Análise
extensömetros(strain gages)
Exemplo: Teste
Exemplo – Teste
Exemplo – Teste
Instrumentação e Controle
• Instrumento de medição Sensor• Monitora uma variável
• Instrumento de atuação Efetor• Controla uma variável
g
T
v
e
atuação
f
mediçãoTd
Exemplo - Simulação e Prototipação
Exemplo – Simulação e Prototipação
LLababoratoryoratory VVirtualirtual IInstrumentnstrument EEngineeringngineering WWorkbenchorkbench
Painel Frontal
controles
indicadores
Diagrama de Blocos
conectores
Estruturas de
controle
Ambiente de Desenvolvimento
• Linguagem gráfica de programação– Maior eficiência
• Mais rápido de se desenvolver• Melhor retenção da estrutura• Melhor visão de conjunto
– Visão clara das dependências entre processos e dados• Orientação ao fluxo de dados fica explícita• Independência entre threads fica explícita
• Separação da GUI (Interface Gráfica de Usuário) e dos algoritmos
Separação entre a GUI e o algoritmo
Interfaces Gráficas de Usuário - Automação
Linguagem de Programação GráficaLinguagem de Programação Gráfica – GG
Exemplo:
•Construir um programa que–Crie um vetor com 100 elementos
• Preenchido com dados aleatórios–Acha o maior valor contido nesse vetor
O programa escrito em G ( LabVIEW )
#include <stdio.h>#include <math.h>main( ){ double num[100], max; int i; // Preenche vetor com números aleatórios printf("O vetor de numeros aleatorios:\n\n"); for(i=0; i<100, i++){
num[i]=(double) rand( ) ;printf("%f\n", num[i]);}
// Acha o valor máximo contido no vetor max=0; for(i=0; i<100, i++){
if(num[i] > max) max = num[i];}
printf("\nValor Maximo: %f\n", max); }
O mesmo programaem linguagem CC
#include <stdio.h>#include <math.h>main( ){ double num[100], max; int i; // Preenche vetor com números aleatórios printf("O vetor de numeros aleatorios:\n\n"); for(i=0; i<100, i++){
num[i]=(double) rand( ) ;printf("%f\n", num[i]);}
// Acha o valor máximo contido no vetor max=0; for(i=0; i<100, i++){
if(num[i] > max) max = num[i];}
printf("\nValor Maximo: %f\n", max);
}
Evolução da Abstração de SoftwareA
bstr
ação
Complexidade do Sistema
Código de Máquina
Linguagem Assembly
C
C++
C#
Plataforma para Projeto de Sistemas
As Linguagens de Programação são usadas há mais de 50 anos
• FORTRAN (1954)• BASIC (1963)• Pascal (1968)• Smalltalk (1970)• C (1971)
• E o LabVIEW?
Criador do LabVIEWCriador do LabVIEW
Jeff Kodosky
LabVIEWLabVIEW
Parte prática – Exercícios com LabVIEW
João Kogler2008
Exemplo simples:•Criar as variáveis de entrada A e B e a de saída C posiocionando• controles e indicador numéricos no painel frontal•No diagrama de blocos aparecem os respectivos conectores•Realizar a adição A + B produzindo saída em C
Continuação:•Substituir a variável B no diagrama de blocos por uma função de biblioteca que gera números aleatórios uniformemente distribuídos no intervalo [0,1]
Continuação:•Para repetir o cálculo constantemente, colocar o laço de while no diagrama de blocos.•Note que o botão de execução mudou para uma flecha quebrada, indicando erros. Clicando-se nele, abre um pop-up com a indicação dos erros•No caso o erro é a falta da condição de parada do while
Continuação:•Erro resolvido, colocando-se o botão de stop•Acrescentada a função Wait que permite a diminuição da velocidade do laço, introduzindo um tempo de espera (no caso especificado como 500 ms)
Continuação:•Acrescentada saída gráfica em tempo de execução
Continuação:•Como ilustração, a condição de parada do loop que era stop if true foi trocada para continue if true•Neste caso o laço while executa apenas uma iteração
Continuação:•Filtragem de média móvel:
•Supondo que o resultado da adição seja um sinal ruidoso, realizar sua filtragem fazendo-se a média aritmética dos valores de saída, em tempo de execução
Continuação:•Exibição dos valores não filtrados (pontos vermelhos) e filtrados (curva verde) em um único gráfico
Continuação:•Idem, porém substituindo os blocos por texto, a título de ilustração de outra opção de programação
Continuação
Continuação:•Criação de sub-vi todo o trecho do programa foi substituído por um sub-vi criado a partir desse trecho (selecionado com o mouse)
Continuação:•Cálculo do histograma usando um sub-vi da biblioteca de funções matemáticas do LabVIEW – no caso um Express VI•O display do histograma é feito através de outro tipo de gráfico (waveform graph)
ArrayArray
Continuação:•Cálculo do valor médio do array de saída através de um laço For
While
For
Novo exemplo:•Etapa 1 da criação de um jogo tipo Mine Sweeper modificado•Exemplos de arrays booleanos (array de controles –chaves - e array de indicadores – LEDs )
Continuação:•Regras do Jogo 2 arrays de LEDs – um deles é implementado como controle (apostas) e o outro como indicador (resultados)•As jogadas são feitas no array Apostas •O diagrama mostra a inicialização desses arrays•O array resultados é inicializado com as posições das minas (não é mostrado para o jogador)
Continuação:•No caso anterior o valor 0.5 indicava o ponto médio do intervalo de valores aleatórios•Neste caso o valor 0.5 foi substotuido por um controle que permite escolher o grau de dificuldade do jogo (de 0 a 10)
Máquina de estados do jogo
• Corresponde ao mecanismo de transição de estados que segue as seguintes regras do jogo:
– O jogo começa no estado de novo jogo (NOVO)– Em NOVO o jogador pode escolher o nivel de dificuldade– Escolhido o nivel de dificuldade, ele aperta o botão NOVO– Ao apertar o botão JOGA, entra no estado em que se faz as jogadas. O jogador
entra com uma jogada clicando em um nos LEDs do array APOSTAS. O computador testa se o LED escolhido corresponde a um LED contendo mina, no array RESULTADOS:
• Se não, continua em JOGA, permitindo nova jogada• Se sim, encerra o jogo, mostrando o conteúdo do array resultados e vai para um
novo estado, chamado PERDEU• Se o jogador escolher NOVO, retorna ao estado NOVO, do início;• A outra opção é o jogador escolher PARA, que vai para o estado PARA e termina a
sessão de jogos.
Diagrama de estados
1 2
43
JOGA
PERDEU
PARA
NOVO
Exemplo de máquina de estados:•Cada estado corresponde a um botão•Pressionando-se o botão, ela vai para aquele estado•Neste exemplo, a máquina muda de estado ao pressionar o botão, mas volta ao estado inicial (default)
Continuação:•Neste exemplo, foi inserido o mecanismo para fazer a transição de estados somente se ocorrer mudança
Continuação:•Voltando ao jogo – como fica com a máquina de estados