Universidade de São Paulo Escola Politécnica Universidade 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 Medida (valor numérico) Grandeza Física Instrumento de Medição
Instrumentação Instrumento de medição Exemplo Calor, Aquecimento, Energia Térmica Temperatura Termômetro
Instrumentação Instrumento de medição Exemplo Calor, Aquecimento, Energia Térmica Termômetro Temperatura Converte aquecimento em dilatação Transdução
Instrumentos de Medição Eletrônicos Baseiam-se na medida e transformação de grandezas elétricas Tensões, Correntes Valem-se de sensores Transformam uma grandeza não-elétrica em elétrica Condicionamento /amplificador exemplo display termopar
Instrumentos de Medição Analógicos x Digitais Condicionamento /amplificador analógico display termopar display Condicionamento /amplificador digital Conversor A/D display numérico termopar
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) Instrumento de Atuação
Instrumentação Instrumento de atuação Exemplo Energia Elétrica Motor + Driver Movimento
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 digital instrumentos experimento
Instrumentação via computador digital instrumentos Barramento de comunicação computador experimento
Comunicação entre computador e instrumento General Purpose Interface Bus Computador Barramento GPIB Osciloscópio Instrumentos Frequencímetro Multímetro
Interface gráfica de controle dos instrumentos Computador Barramento GPIB Osciloscópio Instrumentos Frequencímetro Multímetro
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 Amplificador / Atenuador Vertical Oscilador / Base de Tempo Horiz. Painel Frontal Interface de Operação sinal
Instrumentos Equipamentos de Medição Varredura / Excitação do TRC Oscilador / Base de Tempo Horiz. Painel Frontal Amplificador / Atenuador Vertical Interface de Operação sinal
Instrumentos Equipamentos de Medição Varredura / Excitação do TRC Oscilador / Base de Tempo Horiz. Painel Frontal Amplificador / Atenuador Vertical Interface de Operação sinal
Instrumentos Equipamentos de Medição Varredura / Excitação do TRC Painel Frontal Oscilador / Base de Tempo Horiz. Painel Frontal Amplificador / Atenuador Vertical Interface de Operação sinal
Instrumentos Equipamentos de Medição Interface de Operação = Interface Gráfica de Usuário ( GUI ) Varredura / Excitação do TRC Painel Frontal Oscilador / Base de Tempo Horiz. Amplificador / Atenuador Vertical Interface de Operação sinal
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
Valores numéricos na memória Processamento do Sinal Aquisição do Sinal amostragem Amostras digitalização sinal Valores numéricos na memória Processamento do Sinal filtragem digital estimação interpolação
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 atuação v g f e T Td medição
Exemplo - Simulação e Prototipação
Exemplo – Simulação e Prototipação
Laboratory Virtual Instrument Engineering Workbench
Painel Frontal controles indicadores
Diagrama de Blocos Estruturas de controle conectores
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áfica – G 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 )
O mesmo programa em linguagem C #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; if(num[i] > max) max = num[i]; printf("\nValor Maximo: %f\n", max); O mesmo programa em linguagem C
#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; if(num[i] > max) max = num[i]; printf("\nValor Maximo: %f\n", max);
Evolução da Abstração de Software Plataforma para Projeto de Sistemas C# C++ C Abstração Linguagem Assembly Código de Máquina Complexidade do Sistema
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 LabVIEW Jeff Kodosky
LabVIEW
Parte prática – Exercícios com LabVIEW João Kogler 2008
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)
Array Array 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)
While For Continuação: Cálculo do valor médio do array de saída através de um laço 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 JOGA 1 2 PERDEU PARA 3 4 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