Post on 21-Oct-2015
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO TECNOLÓGICO DEPARTAMENTO DE ENGENHARIA ELÉTRICA
PROJETO DE GRADUAÇÃO
DESENVOLVIMENTO DE UM AMBIENTE DE CONTROLE E MONITORAMENTO EM TEMPO REAL
USANDO O MATLAB E A PLACA DE AQUISIÇÃO NUDAQ PCI-9112
HUGO TANZARELLA TEIXEIRA
VITÓRIA – ES Agosto/2008
HUGO TANZARELLA TEIXEIRA
DESENVOLVIMENTO DE UM AMBIENTE DE CONTROLE E MONITORAMENTO EM TEMPO REAL
USANDO O MATLAB E A PLACA DE AQUISIÇÃO NUDAQ PCI-9112
Parte manuscrita do Projeto de Graduação do aluno Hugo Tanzarella Teixeira, apresentado ao Departamento de Engenharia Elétrica do Centro Tecnológico da Universidade Federal do Espírito Santo, para obtenção do grau de Engenheiro Eletricista.
VITÓRIA – ES Agosto/2008
HUGO TANZARELLA TEIXEIRA
DESENVOLVIMENTO DE UM AMBIENTE DE CONTROLE
E MONITORAMENTO EM TEMPO REAL USANDO O MATLAB E A PLACA DE AQUISIÇÃO
NUDAQ PCI-9112
COMISSÃO EXAMINADORA: ___________________________________ Prof. Dr. José Leandro Félix Salles Orientador ___________________________________ Prof. Dr. Celso José Munaro Examinador ___________________________________ Prof. Dr. Alessandro Mattedi Examinador
Vitória - ES, 27, Agosto, 2008
i
DEDICATÓRIA
Aos meus pais, C. Giovani C.Teixeira e Grazzia Tanzarella, por fazerem acontecer.
ii
AGRADECIMENTOS
Agradeço ao professor José Leandro pelas idéias e orientação.
Agradeço aos amigos, André Roussey pela parceria durante todo o projeto e
pela troca constante de idéias, Gustavo Mariotto pela ajuda com a criação da interface
gráfica, Ricardo Lempke pelo pontapé inicial, Renato Rocha pelo apoio logístico,
Matheus Oggioni pelas invencionices, Fabio Rodrigues pelo apoio cinematográfico, ao
Daniel Bozi um agradecimento especial pela ajuda com toda a montagem necessária
ao projeto.
Um agradecimento especial também à minha namorada Tatiana Piotz, que
além de dar apoio, contribuiu significativamente com boas idéias ao projeto.
iii
LISTA DE FIGURAS
Figura 1 – Representação da planta. ............................................................................ 11
Figura 2 – Layout da placa NuDAQ PCI-9112 ........................................................... 12
Figura 3 – Disposição de pinos do CN3 (Canais analógicos). .................................... 13
Figura 4 – Disposição de pinos do CN1 (Entrada Digital) e CN2 (Saída Digital). ..... 14
Figura 5 – Disposição de pinos do adaptador para as portas digitais. ......................... 14
Figura 6 – Diagrama de fluxo do algoritmo de tempo real. ........................................ 18
Figura 7 – Interface Gráfica com o usuário para controle de posição ou velocidade. 23
Figura 8 – Interface Gráfica com o usuário para controle de nível. ............................ 23
Figura 9 – Interface para gerar os gráficos do processo. ............................................. 24
Figura 10 – Esquemático da fonte de tensão. .............................................................. 25
Figura 11 – Seguidores de tensão. ............................................................................... 26
Figura 12 – Circuito amplificador diferença ............................................................... 26
Figura 13 – Circuito amplificador-não-inversor .......................................................... 27
Figura 14 – Circuito da saída analógica. ..................................................................... 27
Figura 15 – Placa de circuito impresso do módulo de comunicação. .......................... 28
Figura 16 – Detalhe dos conectores para a placa e os bornes. ..................................... 28
Figura 17 – Frente do módulo de comunicação........................................................... 28
Figura 18 – Relação de pinos dos cabos digital e analógico do módulo de
comunicação. ............................................................................................................... 29
Figura 19 – Circuito de acionamento do Motor CC. ................................................... 29
Figura 20 – Circuito de alimentação do potenciômetro. ............................................. 30
Figura 21 – Representação do sensor capacitivo. ........................................................ 31
Figura 22 – Circuito para o sensor capacitivo. ............................................................ 31
Figura 23 – Gráfico de tensão do sensor capacitivo. ................................................... 32
Figura 24 – Conversão de Tensão do sensor capacitivo para Nível de água............... 34
Figura 25 – Resposta do sensor capacitivo com amplificação na região de 20 a 30
cm. ................................................................................................................................ 36
Figura 26 – Planta para controle de velocidade. .......................................................... 37
Figura 27 – Diagrama de blocos do sistema de controle. ............................................ 38
iv
Figura 28 – Resposta a um degrau de um sistema de primeira ordem. ....................... 38
Figura 29 – Resposta a um degrau da planta de controle de velocidade. .................... 39
Figura 30 – PID tipo ISA. ............................................................................................ 40
Figura 31 – Resposta a um degrau com controlador PID. ........................................... 41
Figura 32 – Freio magnético e motor CC. ................................................................... 42
Figura 33 – Resposta do sistema a perturbação externa. ............................................. 42
Figura 34 – Atuação do sinal de controle no sistema. ................................................. 43
Figura 35 – Efeito das ações de controle no sinal de controle. ................................... 43
Figura 36 – Controle proporcional de nível. ................................................................ 45
Figura 37 – Resposta a um degrau da planta de controle de nível. ............................. 46
Figura 38 – Resposta do sistema a perturbação externa (aumento da vazão de
entrada). ....................................................................................................................... 47
Figura 39 – Resposta do sistema a perturbação externa (vazão de entrada nula). ...... 47
Figura 40 – Tela inicial da ferramenta GUIDE. .......................................................... 60
Figura 41 – Interface de criação da ferramenta GUIDE. ............................................. 60
Figura 42 – Menu dos objetos gráficos disponíveis. ................................................... 61
Figura 43 – Propriedades dos objetos gráficos. ........................................................... 64
v
LISTA DE TABELA
Tabela 1 – Relação de pinos para os circuitos de entrada e saída. .............................. 28
Tabela 2 – Tensões medidas no ensaio da válvula. ..................................................... 30
Tabela 3 – Valores de tensão obtidos no sensor capacitivo. ....................................... 33
Tabela 4 – Valores de tensão obtidos no sensor capacitivo com circuito
amplificador. ................................................................................................................ 35
vi
SIMBOLOGIA
LECO – Laboratório de Ensino de Controle
PID – Proporcional-Integral-Derivativo
GUIDE – Graphical User Interface development environment
vii
SUMÁRIO
DEDICATÓRIA ........................................................................................................... I
AGRADECIMENTOS .............................................................................................. II
LISTA DE FIGURAS ............................................................................................... III
LISTA DE TABELA .................................................................................................. V
SIMBOLOGIA .......................................................................................................... VI
SUMÁRIO ................................................................................................................ VII
RESUMO ................................................................................................................... IX
1 INTRODUÇÃO .............................................................................................. 10
2 O SOFTWARE ............................................................................................... 12
2.1 Introdução ......................................................................................................... 12
2.2 A placa de aquisição de dados NuDAQ PCI-9112 ........................................... 12
2.2.1 Entrada analógica .................................................................................... 13
2.2.2 Saída analógica ........................................................................................ 13
2.2.3 Entrada e saída digitais ............................................................................ 14
2.3 Toolbox DAQ-MTLB ....................................................................................... 15
2.3.1 Funções de verificação de hardware ....................................................... 15
2.3.1.1 daqhwinfo ................................................................................... 15
2.3.2 Funções de entrada analógica .................................................................. 15
2.3.2.1 analoginput ................................................................................. 15
2.3.2.2 addchannel .................................................................................. 15
2.3.2.3 getsample .................................................................................... 16
2.3.3 Funções de saída analógica ..................................................................... 16
2.3.3.1 analogoutput ............................................................................... 16
2.3.3.2 addchannel .................................................................................. 16
2.3.3.3 putsample ................................................................................... 16
2.3.4 Funções de entrada e saída digitais ......................................................... 16
2.3.4.1 digitalio ....................................................................................... 16
2.3.4.2 addline ........................................................................................ 17
2.3.4.3 getvalue ...................................................................................... 17
viii
2.3.4.4 putvalue ...................................................................................... 17
2.4 O algoritmo de Controle ................................................................................... 17
2.4.1 O tempo de Amostragem ......................................................................... 21
2.5 Interface gráfica ................................................................................................ 22
3 O HARDWARE .............................................................................................. 25
3.1 Introdução ......................................................................................................... 25
3.2 Módulo de comunicação ................................................................................... 25
3.2.1 Testes para o funcionamento o módulo ................................................... 29
3.3 Circuitos de acionamento da válvula ................................................................ 29
3.4 Circuitos do Sensor capacitivo .......................................................................... 30
3.4.1 Testes para o funcionamento do sensor ................................................... 31
4 RESULTADOS OBTIDOS ............................................................................ 37
4.1 Introdução ......................................................................................................... 37
4.2 Controle de velocidade ..................................................................................... 37
4.2.1 Modelagem .............................................................................................. 38
4.2.2 Controle ................................................................................................... 39
4.3 Controle de nível ............................................................................................... 44
5 CONCLUSÃO ................................................................................................ 48
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................... 49
APÊNDICE A – ALGORITMO DE SEGURANÇA DO MOTOR CC ............... 50
APÊNDICE B – ALGORITMO DE CONTROLE ................................................ 51
APÊNDICE C – UTILIZANDO O GUIDE............................................................. 60
ix
RESUMO
Este projeto tem como principal objetivo o desenvolvimento de uma solução
em MATLAB que permita o controle de um processo em tempo real utilizando a placa
de aquisição de dados NuDAQ PCI-9112. Para tanto foram desenvolvidos, uma
interface gráfica para tornar o controle do processo mais amigável para o usuário e um
módulo de comunicação entre a placa de aquisição e a planta a ser controlada. Foram
feitos testes no sistema com controle de nível de um tanque e com controle de
velocidade de um motor CC.
10
1 INTRODUÇÃO
Atualmente no LECO utiliza-se o SIMULINK e a placa de aquisição de dados
NuDAQ PCI-9112 da Adlink, em conjunto com a biblioteca DASKLIB que faz a
interface lógica entre eles, tal interface foi desenvolvida por Haddad [1] e é usada para
fazer o controle das plantas do kit didático DC servo trainer ED-4400B da Langlois,
no entanto, tal controle é feito em tempo não-real.
Com o intuito de realizar controle em tempo real, inicialmente buscou-se a
biblioteca Real Time Windows Target [4] do MATLAB/SIMULINK. Os resultados
obtidos foram negativos, por não haver compatibilidade entre a biblioteca e a placa de
aquisição de dados. Como alternativa a esse problema, propôs-se a criação de uma
interface com o usuário somente no MATLAB, sem o SIMULINK, que permitisse o
controle de processos em tempo real. A criação do algoritmo por trás da interface só
foi possível com o toolbox DAQ-MTLB disponibilizado pela Adlink [5],
possibilitando a execução de todas as funções de entrada e saída, analógica e digital da
placa NuDAQ PCI-9112 pelo MATLAB.
Para facilitar a comunicação entre a planta e a placa de aquisição e garantir
alguma segurança, construiu-se um módulo de comunicação, onde estão disponíveis
através de bornes quatro entradas analógicas, duas saídas analógicas, quatro entradas
digitais e quatro saídas digitais.
Como forma de validar o funcionamento da interface criada propôs-se o
controle de nível de um tanque, desenvolvido e aprimorado em projetos anteriores [2]
e [3]. A planta consiste em um tanque de acrílico com base quadrada de arestas de 20
cm e 39 cm de altura. Nele há duas válvulas atuando, sendo a de entrada manual e a de
saída controlada automaticamente. Dentro do tanque foi instalado o sensor capacitivo,
desenvolvido por Araújo [6], para controle de nível. A representação da planta pode é
vista na Figura 1.
11
Figura 1 – Representação da planta.
Foram feitos também a modelagem e controle de velocidade do motor CC do
kit didático DC servo trainer ED-4400B.
No capítulo 2 serão discutidos todos os aspectos do software desenvolvido
para realizar o controle em tempo real no MATLAB.
O capítulo 3 tratará do hardware e os circuitos eletrônicos implementados.
No capítulo 4 serão apresentados os resultados dos testes com o algoritmo de
controle e no capítulo 5 as conclusões do projeto.
12
2 O SOFTWARE
2.1 Introdução
Compreende o desenvolvimento do programa que faz a comunicação entre a
placa de aquisição e o MATLAB, mais o algoritmo de controle PID em tempo real, e a
implementação da interface gráfica que permite a visualização de gráficos em tempo
real do set point e da variável de saída e a inserção dos parâmetros de controle. Para
tanto utilizou-se a placa NuDAQ PCI-9112, para aquisição de dados, em conjunto com
o toolbox DAQ-MTLB para o MATLAB, ambos da Adlink.
2.2 A placa de aquisição de dados NuDAQ PCI-9112
A NuDAQ PCI-9112 possui:
• 16 entradas analógicas;
• 2 saídas analógicas;
• Resolução de 12 bits para as portas analógicas;
• Canais analógicos configuráveis em unipolar ou bipolar;
• Taxa de amostragem de até 110 kHz;
• 16 entradas digitais;
• 16 saídas digitais.
O layout da placa é mostrado na Figura 2.
Figura 2 – Layout da placa NuDAQ PCI-9112
Onde, CN1 é a porta de canais de entrada digital, CN2 a porta de canais de
saída digital e CN3 a porta de canais de entrada e saída analógica.
13
2.2.1 Entrada analógica
A entrada analógica conta com um conversor de aproximação sucessiva
(ADS774) de resolução de 12 bits. Estão disponíveis na placa 16 entradas analógicas,
com amplitude podendo ser configurada em ± 10V, ± 5V, ± 2,5V, ± 1,25V, ± 0,625V,
se estiverem na forma bipolar, ou em 0~10V, 0~5V, 0~2,5V, 0~1,25V, se estiverem na
forma unipolar. Para o projeto utiliza-se a forma bipolar na configuração ± 10V. As
entradas analógicas possuem uma proteção contra sobre tensão continua de até ± 35V
e uma impedância de entrada de 10MΩ.
2.2.2 Saída analógica
A placa possui dois canais de saída analógica, também com 12 bits de
resolução. A amplitude da saída pode ser configurada com referência interna de 0~5V
e 0~10V ou com referência externa de +10V ou -10V. Configuradas em 0~10V com
referência interna. A saída analógica possui uma capacidade de fornecimento muito
limitada, de apenas ± 5mA.
A disposição dos canais analógicos na placa pode ser observada na Figura 3.
Figura 3 – Disposição de pinos do CN3 (Canais analógicos).
AI n: Entrada analógica Canal n.
AO n: Saída analógica Canal n.
A.GND: Terra analógico.
14
2.2.3 Entrada e saída digitais
As 16 entradas e 16 saídas digitais são compatíveis com TTL com os níveis
lógicos bem definidos, no entanto possui uma capacidade reduzida para drenar e
fornecer corrente, em torno de 0,8mA de fornecimento e 20mA de dreno.
As entradas e saídas digitais são fornecidos em duas portas diferentes, como
pode ser visto na Figura 2, na Figura 4 está a relação de pinos de ambos as portas.
Figura 4 – Disposição de pinos do CN1 (Entrada Digital) e CN2 (Saída Digital).
DI n: Entrada digital Canal n.
DO n: Saída digital Canal n.
GND: Terra digital.
Devido ao difícil acesso aos canais digitais, foi feito uma adaptação dos canais
digitais para uma saída DB25, disponibilizando apenas 12 canais de entrada e 12 de
saída, como observado na Figura 5.
Figura 5 – Disposição de pinos do adaptador para as portas digitais.
15
2.3 Toolbox DAQ-MTLB
Para criar um algoritmo em MATLAB que realizasse o controle de uma planta
em tempo real seria necessário acessar as funcionalidades de entrada e saída, analógico
e digital da placa através do MATLAB, isso se tornou possível com o toolbox DAQ-
MTLB, com uma série de funções do MATLAB para as placas da série NuDAQ.
Nos próximos itens serão descritas as funções utilizadas no algoritmo criado.
2.3.1 Funções de verificação de hardware
2.3.1.1 daqhwinfo
Sintaxe:
out = daqhwinfo
Descrição:
Retorna a estrutura que contém as informações dos hardwares de aquisição de
dados instalados.
Fazendo out.InstalledAdaptors obtém-se os dispositivos de aquisição de dados
instalados.
2.3.2 Funções de entrada analógica
2.3.2.1 analoginput
Sintaxe:
ai = analoginput(‘dispositivo’)
Descrição:
Cria um objeto (ai) de entrada analógica.
2.3.2.2 addchannel
Sintaxe:
ch = addchannel(obj,ch_n)
Descrição:
Adiciona um canal especifico (ch_n) de entrada analógica ao objeto (obj).
16
2.3.2.3 getsample
Sintaxe:
sample = getsample(obj)
Descrição:
Adquire e retorna o valor de tensão no canal de entrada analógica.
2.3.3 Funções de saída analógica
2.3.3.1 analogoutput
Sintaxe:
ao = analogoutput(‘dispositivo’)
Descrição:
Cria um objeto (ao) de saída analógica.
2.3.3.2 addchannel
Sintaxe:
ch = addchannel(obj,ch_n)
Descrição:
Adiciona um canal especifico (ch_n) de saída analógica ao objeto (obj).
2.3.3.3 putsample
Sintaxe:
putsample(obj,data)
Descrição:
Atualiza o valor de tensão nos canais de saída analógica.
2.3.4 Funções de entrada e saída digitais
2.3.4.1 digitalio
Sintaxe:
dio = digitalio(‘dispositivo’)
17
Descrição:
Cria um objeto (dio) de entrada e saída digital.
2.3.4.2 addline
Sintaxe:
line = addline(obj,line_n,port,direção)
Descrição:
Adiciona um canal (line_n) à porta especificada (port) para entrada (direção =
‘in’) ou saída (direção = ‘out’) digital .
2.3.4.3 getvalue
Sintaxe:
value = getvalue(obj)
Descrição:
Lê o sinal do canal de entrada digital.
2.3.4.4 putvalue
Sintaxe:
putvalue(obj,value)
Descrição:
Escreve o valor especificado (value) no canal de saída digital.
2.4 O algoritmo de Controle
O algoritmo que possibilita o controle pelo MATLAB em tempo real baseia-se
nas funções de cronômetro do MATLAB, (tic e toc), onde tic inicia a contagem do
cronômetro no instante que é executada, e toc armazena o tempo gasto entre sua
execução e a da função toc, em conjunto com a função while que executará um loop
durante o tempo estabelecido pelo usuário.
A Figura 6 mostra o diagrama de fluxo do algoritmo de controle em tempo
real. Para simplificar seu entendimento de uma forma geral. Em seguida serão
18
mostrados alguns trechos do algoritmo criado para o controle de velocidade, e
explicações mais detalhadas.
TICTIC
TOC ≤ tempoTOC ≤ tempo
Verifica se o tempo atual é menor que o tempo determinado pelo usuário.
As variáveis do processo são atualizadas
As variáveis do processo são atualizadas
SimSim
O gráfico éatualizadoO gráfico éatualizado
Cálculo do PID
Cálculo do PID
As variáveis do estado anterior recebem os
valores do estado atual
As variáveis do estado anterior recebem os
valores do estado atual
Fim do programaFim do programa Não
Inicia a contagem de tempo
Início do programaInício do programa
Inicialização da placaNuDAQ PCI-9112
Inicialização da placaNuDAQ PCI-9112
O usuário determina o tempo de execução
do processo
O usuário determina o tempo de execução
do processo
Figura 6 – Diagrama de fluxo do algoritmo de tempo real.
19
O programa é iniciado e o primeiro passo é executar a inicialização da placa
de aquisição.
Então é definido o tempo de execução do processo, dado pelo usuário.
São definidas as variáveis de controle utilizadas no algoritmo. ‘spi’ recebe o
valor do set point inicial definido pelo usuário através da interface gráfica e ‘tensaoi’
recebe o valor de tensão inicial referente à velocidade do motor, através da entrada
analógica, no instante inicial do processo.
A função tic é executada iniciando a contagem de tempo, em seguida inicia-se
o loop que será executado enquanto ‘tf’ for menor que ‘tempo’, definido pelo usuário.
‘tf’ é atualizada com o valor instantâneo do tempo e é feito o cálculo do tempo de
amostragem, que é variável pois depende do tempo que o MATLAB gasta para
realizar as operações dentro do loop.
20
O gráfico da interface é limpo a cada 10 segundos para evitar sobrecarga da
memória, consumindo, então processamento do algoritmo, causando a aumento do
tempo de amostragem.
As variáveis do processo são atualizadas, ‘spf’ recebe o valor instantâneo do
set point fornecido pelo usuário à interface gráfica, ‘tensaof’ é atualizado com o valor
de tensão referente à velocidade do motor. As conversões necessárias de volts para
RPM e também o contrário são feitas.
O gráfico da interface é atualizado.
É feito o cálculo do sinal de controle, a integral e a derivada são calculadas
numericamente e o sinal de controle é enviado para a planta através da saída analógica.
Devido à saída analógica fornecer apenas valores de 0 a 10V, para adequar a saída às
modificações de tensão feito pelo modulo de comunicação é necessário uma conversão
de valor antes de enviar o sinal de controle para a planta.
21
Para o cálculo do PID e para atualização do gráfico do processo é necessário
sempre dois estados do processo, o atual e o anterior. Portanto antes do fim da rotina
do loop, as variáveis do estado anterior recebem os valores das variáveis do estado
atual e o programa retorna para o inicio do loop.
2.4.1 O tempo de Amostragem
Devido ao tempo de amostragem obtido com o programa criado varia com o
processamento de cada computador, pois o tempo de amostragem será o tempo gasto
pelo Matlab para executar cada iteração do loop do algoritmo descrito, o que torna o
tempo de amostragem variável também na execução do programa.
Com os testes realizados o tempo de amostragem obtido foi em média 40 ms,
no entanto, caso seja desabilitado o gráfico que mostra a situação do processo, esse
tempo de amostragem chega a cair para menos de 10 ms.
Um sistema computacional é considerado como um sistema em tempo real se
ele processar os cálculos em períodos de amostragem bem menores que a dinâmica da
planta, ou seja a sua constante de tempo deve ser grande em relação ao tempo de
amostragem obtido. No caso do motor, o tempo de subida à entrada degrau é
aproximadamente 200 ms, o que garante que o controlador implementado seja em
tempo real para o Kit do Laboratório e também para o nível do tanque, já que o seu
tempo de subida é de pelo menos 1 seg.
22
2.5 Interface gráfica
Foram desenvolvidas duas interfaces gráficas para facilitar a comunicação
entre o usuário e o algoritmo de controle, uma para o controle de posição ou de
velocidade, utilizando o kit DC servo trainer ED-4400B, Figura 7, e outra para o
controle de nível do tanque, Figura 8.
No menu ‘Entradas’, comum às duas interfaces, é possível ao usuário definir o
tempo de execução do processo, em segundos ou minutos, o set point pode ser alterado
em qualquer instante da execução do processo.
Na interface para controle de posição ou de velocidade há um menu chamado
‘Planta’ onde o usuário decide qual tipo de planta irá controlar, no caso da escolha ter
sido o controle de posição ele pode optar por visualizar o gráfico em coordenadas
escalares ou polares, caso tenha escolhido controle de velocidade o usuário pode ainda
optar por fazer testes em malha aberta ou fechada.
No menu ‘PID’ o usuário deve definir a sintonia do controlador PID
escolhendo os valores para kp, ki e kd, para o controle de nível deve-se sintonizar
tanto o controlador de nível quanto o de posição da válvula. Há ainda um último
campo onde deve ser escolhido um nome para o arquivo de backup para armazenar
todas as informações sobre o processo.
23
Figura 7 – Interface Gráfica com o usuário para controle de posição ou velocidade.
Figura 8 – Interface Gráfica com o usuário para controle de nível.
É possível também ao usuário, ao fim do processo, gerar gráficos de histórico
do processo, assim como analisar o efeito das ações proporcional, integral e derivativa
e os sinais de controle, ativando o recurso ‘Plot’, Figura 9.
24
Figura 9 – Interface para gerar os gráficos do processo.
Todos os gráficos mostrados no capítulo de resultados foram obtidos com esse
recurso.
O Apêndice D traz algumas instruções de uso do GUIDE, ferramenta do
MATLAB utilizada para criação das interfaces gráficas aqui citadas.
25
3 O HARDWARE
3.1 Introdução
Compreende os circuitos do módulo de comunicação entre a placa de
aquisição e a planta e também os circuitos de acionamento da válvula de controle e os
circuitos do sensor capacitivo.
3.2 Módulo de comunicação
Para facilitar a comunicação entre a planta e a placa de aquisição de dados,
criou-se um módulo que se conecta a placa e disponibiliza entradas e saídas,
analógicas e digitais através de bornes. Para a alimentação do módulo fez-se
necessário a construção de uma pequena fonte simétrica de ±12V, foram utilizados
dois pares de reguladores de tensão em paralelo para que a fonte fosse capaz de
fornecer 2A, seu esquemático pode ser visto na Figura 10.
Figura 10 – Esquemático da fonte de tensão.
O projeto do módulo prevê quatro entradas analógicas, duas saídas analógicas,
quatros entradas digitais e quatro saídas digitais. O circuito para fazer a comunicação
entre a planta e a placa é composto simplesmente de seguidores de tensão, com
26
exceção das saídas analógicas, detalhadas posteriormente. Na Figura 11 está o
esquemático genérico para as entradas analógicas e digitais, e para as saídas digitais.
Figura 11 – Seguidores de tensão.
(a) Entradas analógicas e digitais. (b) Saídas digitais.
Para as saídas analógicas algumas modificações foram implementadas, visto
que a placa só tem capacidade de fornecer tensões de 0 a 10V, e seria adequado para o
projeto que a saída analógica fosse capaz de fornecer tensões de -10 a 10V, para tanto
se associou à saída dos seguidores de tensão um circuito amplificador diferença
(Figura 12).
Figura 12 – Circuito amplificador diferença
Onde temos que ( )RbVo Vb VaRa
= − , portanto para reduzir a faixa de tensão de 0
a 10 V para -5 a 5V, sendo Ra Rb Rc Rd= = = , fazemos Vb receber a saída analógica e
Va = 5V. Agora, para transformar a faixa de tensão de -5 a 5V para -10 a 10V
27
associou-se em série ao amplificador diferença um circuito amplificador não inversor
com ganho 2 (Figura 13).
Figura 13 – Circuito amplificador-não-inversor
Onde ( )Ra RbVo viRa+
= , fazendo Ra Rb= , temos que 2.Vo Vi= , com isso
conseguimos uma faixa de saída de -10 a 10V teóricos.
O esquemático completo do circuito de saída analógica pode ser visto na
Figura 14.
Figura 14 – Circuito da saída analógica.
A Figura 15 mostra a placa de circuito impresso do módulo de comunicação, a
Figura 16 mostra, em maiores detalhes, os conectores com a placa e os bornes, a
Tabela 1 indica a relação de pinos para cada circuito de entrada e saída, na Figura 17
pode ser visto a disposição dos bornes e na Figura 18 a relação de pinos dos cabos
digital e analógico do módulo de comunicação.
28
Figura 15 – Placa de circuito impresso do módulo de comunicação.
Figura 16 – Detalhe dos conectores para a placa e os bornes.
* nP indica o pino do conector para a placa e nB o pino do conector para o borne
10P → 11BDO 36P ← 8BDI 313P ← 16BAI 3
9P → 10BDO 25P ← 7BDI 214P ← 15BAI 2
11P → 9BDO 18P ← 6BDI 13P → 2BAO 215P ← 13BAI 1
12P → 12BDO 07P ← 5BDI 02P → 3BAO 116P ← 14BAI 0
Saídas DigitaisEntradas DigitaisSaídas AnalógicasEntradas Analógicas
* nP indica o pino do conector para a placa e nB o pino do conector para o borne
10P → 11BDO 36P ← 8BDI 313P ← 16BAI 3
9P → 10BDO 25P ← 7BDI 214P ← 15BAI 2
11P → 9BDO 18P ← 6BDI 13P → 2BAO 215P ← 13BAI 1
12P → 12BDO 07P ← 5BDI 02P → 3BAO 116P ← 14BAI 0
Saídas DigitaisEntradas DigitaisSaídas AnalógicasEntradas Analógicas
Tabela 1 – Relação de pinos para os circuitos de entrada e saída.
GND
AI 0 AI 2
AI 3AI 1
AO 1
AO 2
Entrada SaídaAnalógico
DI 0 DI 2
DI 3DI 1
Entrada
DO 0 DO 2
DO 3DO 1
SaídaDigital
Tanzarella
ON
GND
AI 0 AI 2
AI 3AI 1
AO 1
AO 2
Entrada SaídaAnalógico
DI 0 DI 2
DI 3DI 1
Entrada
DO 0 DO 2
DO 3DO 1
SaídaDigital
Tanzarella
ON
Figura 17 – Frente do módulo de comunicação.
29
Figura 18 – Relação de pinos dos cabos digital e analógico do módulo de comunicação.
3.2.1 Testes para o funcionamento o módulo
Após a placa ser construída realizou-se alguns testes e constatou-se que:
• A fonte de alimentação fornece -12,06V e 11,80V e aproximadamente
2A;
• Para AO 1 a faixa de tensão de saída obtida é de -9,73 a 8,40V;
• Para AO 2 a faixa de tensão de saída obtida é de -9,80 a 8,37V;
• A capacidade de fornecimento de corrente de 5mA para a saída
analógica e 0,8mA para a saída digital aumentou para 35mA;
• Os canais de entrada analógica apresentaram ruído de
aproximadamente 0,1 V, valor considerado alto, para determinados
processos a serem controlados.
3.3 Circuitos de acionamento da válvula
O conjunto que permite o controle da válvula de saída é composto por um
motor CC acoplado a um potenciômetro e um circuito driver de corrente (Figura 19)
para acionamento do motor.
O potenciômetro foi alimentado simetricamente com -8V e 8V, a fim que os
valores medidos não ultrapassem a faixa de atuação da placa de aquisição de dados,
para isso utilizou-se reguladores de tensão (LM7808 e LM7908) para evitar variações
significativas na alimentação. O circuito utilizado é observado na Figura 20.
Figura 19 – Circuito de acionamento do Motor CC.
30
Figura 20 – Circuito de alimentação do potenciômetro.
As tensões medidas para a válvula totalmente aberta e totalmente fechada
estão listadas na Tabela 2.
-4,553 VFechada
3,448 VAberta
Tensão no PotenciômetroSituação da Válvula
-4,553 VFechada
3,448 VAberta
Tensão no PotenciômetroSituação da Válvula
Tabela 2 – Tensões medidas no ensaio da válvula.
3.4 Circuitos do Sensor capacitivo
O sensor capacitivo consiste em duas placas paralelas de alumínio, separadas
de aproximadamente 1 cm. As placas possuem 60 cm de altura por 12 cm de
comprimento. Para a construção do sensor capacitivo, foram usadas duas placas de
acrílico, como forma de sustentar as placas de alumínio, assim como foram usadas
duas peças de acrílico em cada como base e uma para manter a distância entra as
placas constantes. Uma das placas foi envolvida com uma fita adesiva, para isolar
eletricamente as placas quando em contato com a água.
A variação no dielétrico causa uma variação na capacitância do sensor, sendo
um dielétrico o ar e o outro a água (Figura 21), à medida que o nível de água aumenta,
causa variação no dielétrico do sensor, aumentando sua capacitância, e por
conseqüência diminuindo sua reatância.
31
Figura 21 – Representação do sensor capacitivo.
Para que o nível de água fosse convertido em um valor de tensão constante, foi
usado um circuito, visto na Figura 22, para retificar e eliminar o efeito Ripple do sinal
proveniente do sensor.
Figura 22 – Circuito para o sensor capacitivo.
3.4.1 Testes para o funcionamento do sensor
Segundo Araújo [6], quanto menor a freqüência utilizada na alimentação do
circuito do sensor, maiores são os níveis de tensão referentes aos níveis dos tanques.
No entanto, é importante ressaltar que o valor de freqüência deve ser escolhido de
modo que a maior tensão obtida na saída do circuito não supere a capacidade de 10 V
de leitura da entrada analógica da placa de aquisição de dados.
Foi escolhido para a alimentação do circuito do sensor um sinal de 10 V de
amplitude com freqüência de 50,0 kHz. Os valores de tensão medidos na saída do
circuito estão listados na Tabela 3 e a curva obtida pode ser vista na Figura 23.
32
0 5 10 15 20 25 30 350
1
2
3
4
5
6
7
Tens
ão [V
]
Altura [cm]
Figura 23 – Gráfico de tensão do sensor capacitivo.
33
Alimentação : 10V / 50,0kHz
0,9435
0,9634
0,9933
1,0132
1,0431
1,0830
1,1129
1,1628
1,2227
1,2926
1,3725
1,4224
1,4823
1,5322
1,5721
1,6120
1,6619
1,7118
1,7917
1,8616
1,9515
2,0414
2,1713
2,2612
2,3911
2,5610
2,809
3,088
3,387
3,786
4,285
4,974
5,763
6,292
Tensão no sensor [V]Altura da água [cm]
Sensor Capacitivo
Alimentação : 10V / 50,0kHz
0,9435
0,9634
0,9933
1,0132
1,0431
1,0830
1,1129
1,1628
1,2227
1,2926
1,3725
1,4224
1,4823
1,5322
1,5721
1,6120
1,6619
1,7118
1,7917
1,8616
1,9515
2,0414
2,1713
2,2612
2,3911
2,5610
2,809
3,088
3,387
3,786
4,285
4,974
5,763
6,292
Tensão no sensor [V]Altura da água [cm]
Sensor Capacitivo
Tabela 3 – Valores de tensão obtidos no sensor capacitivo.
34
Observa-se na região entre 20 a 30 cm, uma maior linearidade do sistema, no
entanto a variação de tensão em 1 cm é em média 0,05 V, sendo o ruído introduzido
pelo módulo de aquisição de 0,1 V, há um erro grande na conversão de tensão para
nível de água, na Figura 24, pode ser visto os resultados obtidos com a aquisição dos
valores de tensão durante o enchimento do tanque.
0 20 40 60 80 100 120 140 1600
1
2
3
4
5
6
7
Tempo [s]
Tens
ão [V
]
Tempo x Tensão
0 20 40 60 80 100 120 140 1600
10
20
30
40
50
60
Tempo [s]
Altu
ra [c
m]
Tempo x Nível
Figura 24 – Conversão de Tensão do sensor capacitivo para Nível de água.
Nota-se que entre a região de 20 a 30 cm de altura de água obteve-se erros de
até 20 cm. Como solução a isso, propôs-se a amplificação da saída do circuito do
sensor capacitivo por um circuito amplificador não-inversor de ganho
aproximadamente 10 V/V, como o circuito visto na Figura 13, onde 1Ra M= Ω e
10Rb M= Ω , assim será possível amplificar a variação de tensão na região linear do
sensor.
35
Para que os valores de tensão não saturassem, aumentou-se a freqüência do
sinal de alimentação, considerando agora que o controle será feito apenas na região de
20 a 30 cm de altura de água.
Os resultados obtidos estão listados na Tabela 4.
Alimentação: 10V / 95 kHz
7,930,7232
8,050,7331
8,290,7530
8,450,7629
8,630,7828
8,810,8027
9,430,8526
9,800,8825
9,990,9024
10,250,9323
10,470,9522
10,560,9621
10,700,9720
10,880,9819
11,291,0218
11,741,0717
11,741,1116
11,741,1715
11,741,2214
11,741,2813
11,741,3412
11,741,4311
11,741,5310
11,741,729
11,741,938
11,742,097
11,742,416
11,742,865
Tensão no amplificador [V]Tensão no sensor [V]Altura da água [cm]
Sensor Capacitivo
Alimentação: 10V / 95 kHz
7,930,7232
8,050,7331
8,290,7530
8,450,7629
8,630,7828
8,810,8027
9,430,8526
9,800,8825
9,990,9024
10,250,9323
10,470,9522
10,560,9621
10,700,9720
10,880,9819
11,291,0218
11,741,0717
11,741,1116
11,741,1715
11,741,2214
11,741,2813
11,741,3412
11,741,4311
11,741,5310
11,741,729
11,741,938
11,742,097
11,742,416
11,742,865
Tensão no amplificador [V]Tensão no sensor [V]Altura da água [cm]
Sensor Capacitivo
Tabela 4 – Valores de tensão obtidos no sensor capacitivo com circuito amplificador.
36
Na Figura 25 observa-se a resposta do sensor capacitivo, após a amplificação
na região de 20 a 30 cm. Nota-se que mesmo nessa região, a resposta do sensor não é
bem linear.
20 21 22 23 24 25 26 27 28 29 308
8.5
9
9.5
10
10.5
11
Tens
ão [V
]
Altura [cm]
Figura 25 – Resposta do sensor capacitivo com amplificação na região de 20 a 30 cm.
Outro problema observado no sensor capacitivo é que sua resposta varia com o
tempo. Para uma mesma freqüência de alimentação e um mesmo nível ele apresenta
respostas variando com o tempo.
37
4 RESULTADOS OBTIDOS
4.1 Introdução
Neste capitulo serão apresentados, a modelagem do sistema para controle de
velocidade, e o controle feito pela interface criada, assim como os resultados obtidos
com a interface criada para o controle de nível e os resultados obtidos.
4.2 Controle de velocidade
Para realizar os testes do controle de velocidade utilizaram-se os seguintes
módulos do kit didático DC Servo Trainer ED-4400B:
U-156B – Fonte de alimentação CC (± 15V 0,2A e alimentação do motor)
U-154B – Driver amplificador de tensão (10 watts)
U-161B – Servo motor Motor: 12V; 4,5W
Taco Gerador: Aproximadamente 3Vp-p/4000rpm
U-155B – Unidade taco amplificadora
U-159B – Tacômetro (4000rpm)
U-163B – Freio Magnético (Gap: 4mm, 10 passos de variação).
Dispostos conforme esquemático na Figura 26.
Figura 26 – Planta para controle de velocidade.
38
O diagrama de blocos do sistema de controle utilizado é mostrado na Figura
27.
Set Point
Gráfico
Interfacecom usuário
Set Point
Gráfico
Interfacecom usuário
Algoritmode
controle
Algoritmode
controle
NuDAQPCI-9112
Entrada
Saída
NuDAQPCI-9112
Entrada
Saída
+15V
-15V
+15V
-15V
MMMTacho
MATLAB PLANTA
Figura 27 – Diagrama de blocos do sistema de controle.
4.2.1 Modelagem
O motor CC utilizado para experiência pode ser modelado por um sistema de
primeira ordem do tipo .( )
1td skG s e
sτ−=
+ onde k é o ganho estacionário, τ é a
constante de tempo e td é o tempo do atraso. Quando um degrau é aplicado na entrada
(u) o sistema reage conforme mostrado na Figura 28, de onde podemos determinar os
parâmetros do sistema.
Figura 28 – Resposta a um degrau de um sistema de primeira ordem.
39
Aplicou-se então um degrau de aproximadamente 5V na planta a ser
controlada e o resultado pode ser observado na Figura 29.
3.5 4 4.5 5 5.5 6
0
1
2
3
4
5
tempo[s]
Tens
ão [V
]Resposta a um degrau
Set PointResposta
Figura 29 – Resposta a um degrau da planta de controle de velocidade.
A partir daí temos que, 4.9837yΔ = ; 5,07uΔ = e yku
Δ=Δ
,então 0,983k = ;
0,078td s= e 0,231τ = .
Portanto o sistema utilizado para controle de velocidade pode ser modelado
por 0.0780,983( )0,231 1
sG s es
−=+
.
4.2.2 Controle
A estrutura do controlador PID utilizada é o tipo ISA, conforme visto na
Figura 30.
40
ue ue
Figura 30 – PID tipo ISA.
O parâmetro proporcional (kp), atua sobre os parâmetros integral (ki) e
derivativo (kd) conforme a equação, 0
( )( ) ( ) ( )t de tu t kp e t ki e t dt kd
dt⎛ ⎞= + +⎜ ⎟⎝ ⎠∫ .
Os cálculos são feitos numericamente pelo MATLAB, no decorrer de cada
iteração do algoritmo de controle criado. As variáveis com índice ‘i’ correspondem aos
valores do estado anterior e as variáveis com índice ‘f’ correspondem aos valores do
estado atual.
_
int . int
( ). int . . . .
a f i
f
f f a i
f if p f p i p d
a
t t t
e setpoint sensor velocidade
e t
e eu e k k k k k
t
= −
= −
= +
−= + +
Após o cálculo do sinal de controle (u ) as variáveis do estado anterior são
atualizadas com o valor das variáveis do estado atual e é feita então, outra iteração dos
cálculos.
int intf
i f
i f
i
t t
e e
=
=
=
A partir do modelo do motor, utilizou-se como método de sintonia para o PID
o critério de Cohen e Coon [11], onde 1 43 4
d
d
tkpk tτ
τ⎛ ⎞= +⎜ ⎟⎝ ⎠
, 13 8
32 6
d
id
t
ktτ
τ
⎛ ⎞+⎜ ⎟⎝ ⎠=⎛ ⎞+⎜ ⎟⎝ ⎠
e
41
4
11 2d d
d
k ttτ
=⎛ ⎞+⎜ ⎟⎝ ⎠
, aliado à tentativa e erro, chegou-se à seguinte sintonia, 4, 2pk = ,
5,9ik = e 0,02dk = . Com isso o sistema obteve um sobressinal de aproximadamente
13% e um tempo de subida de 0,2 segundos, como observado na Figura 31.
3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8 5 5.2
600
800
1000
1200
1400
1600
1800
2000
2200
tempo [s]
Vel
ocid
ade
[rpm
]
Resposta a um degrau
Set PointVelocidade
Figura 31 – Resposta a um degrau com controlador PID.
Como teste de eficiência do controlador fixou-se o set point em 2000 rpm e
utilizou-se o freio magnético para causar uma perturbação no sistema. O freio foi
configurado na posição 10, de maior potência, para melhor visualização da
perturbação no sistema. A forma como o freio é ligado ao motor é mostrado na Figura
32.
42
Figura 32 – Freio magnético e motor CC.
O freio foi ligado em aproximadamente 5,75 segundos de simulação e
desligado em 7,5 segundos. A resposta do sistema pode ser visto na Figura 33.
5 5.5 6 6.5 7 7.5 8 8.5 9
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
tempo [s]
Vel
ocid
ade
[rpm
]
Set PointVelocidade
Figura 33 – Resposta do sistema a perturbação externa.
Podemos observar também na Figura 34, a atuação do sinal de controle no
sistema.
43
2 3 4 5 6 7 8 9 100
2
4
6
8
10Te
nsão
[V]
tempo[s]
Set PointSensor de velocidadeSinal de Controle
Figura 34 – Atuação do sinal de controle no sistema.
Na Figura 35 pode ser visto a contribuição das ações, proporcional, integral e
derivativa no sinal de controle.
2 3 4 5 6 7 8 9 10-500
0
500
1000
1500
2000
2500
3000
3500
4000
4500
tempo [s]
[rpm
]
Sinal de ControleAção ProporcionalAção IntegralAção Derivada
Figura 35 – Efeito das ações de controle no sinal de controle.
44
4.3 Controle de nível
A dinâmica do processo do sistema de nível é um integrador puro sKsGP =)( ,
sendo assim um controlador proporcional é suficiente para obter o desempenho
desejado. O controle PI para o nível deve ser usado para corrigir os problemas de zona
morta e saturação da válvula, mas deve ser associado a um sistema anti Wind-up, por
haver um limite no atuador, no caso a válvula controlada, Este fato faz com que a
malha de realimentação seja de certa forma quebrada, pois o atuador permanecerá no
seu limite máximo (ou mínimo) independentemente da saída do processo. Entretanto,
se um controlador com ação integral é utilizado, o erro continuará a ser integrado e o
termo integral tende a se tornar muito grande, ou seja, tende a "carregar-se"
demasiadamente. Neste caso, para que o controlador volte a trabalhar na região linear
(saia da saturação) é necessário que o termo integral se "descarregue". Para tanto se
deverá esperar que o sinal de erro troque de sinal e, por um longo período tempo,
aplicar na entrada do controlador, um sinal de erro de sinal oposto. A conseqüência
disto é que a resposta transitória do sistema tenderá a ficar lenta e oscilatória.
Os testes realizados neste projeto foram apenas com o controlador
proporcional com 3nívelkp = e 4válvulakp = , no entanto o sistema apresentou um erro em
estado estacionário de 1 V, como pode ser visto na Figura 36.
45
100 150 200 250 3005.5
6
6.5
7
7.5
8
8.5
9
9.5
Tempo [s]
Tens
ão [V
]
Set PointNível
Figura 36 – Controle proporcional de nível.
Como o erro mostrou-se constante para toda a faixa de tensão testada e o nível
do tanque apresentava-se constante, foi feito então uma compensação do erro
diminuindo 1 V do set point via software. Assim chegou-se a resultados satisfatórios
de controle. Alguns gráficos dos testes realizados serão apresentados a seguir.
Na Figura 37 observa-se a resposta a um degrau da planta de controle de nível,
o sinal de controle do PID de nível e a posição de abertura da válvula. Lembrando que
um aumento de tensão na malha de controle de nível significa diminuir o nível de água
no tanque e que o potenciômetro marca aproximadamente 3,5 V quando a válvula está
totalmente aberta e -4,5 V quando a válvula está totalmente fechada.
Nota-se que quando o degrau é aplicado, o sinal do controlador PID de nível
faz com que a válvula aumente a sua abertura até que o tanque se esvazie a medida que
o nível vai atingindo o nível desejado a válvula torna-se a fechar na mesma posição
anterior que mantém o nível de água constante no tanque.
46
20 30 40 50 60 70 80 90-5
0
5
10
Tempo [s]
Tens
ão [V
]
Set PointNívelSinal de controle de nívelPosição da válvula
Figura 37 – Resposta a um degrau da planta de controle de nível.
Dois tipos de perturbação externa foram causados para testar o controle da
planta, são eles: adicionar água ao tanque em uma quantidade maior que o volume de
entrada habitual e cortar a entrada de água no tanque.
Na Figura 38 observa-se o aumento da vazão de entrada, onde ocorre a
diminuição da tensão no sensor de nível, que faz com que gere um sinal de controle
que força a abertura da válvula a fim de estabilizar o nível de água no nível desejado.
Na Figura 39 a vazão de entrada foi cortada causando uma pequena
diminuição no nível, conseqüentemente aumentando a tensão no sensor de nível,
forçando então a válvula a se fechar, e assim ela permanece enquanto a vazão de
entrada for nula, de 270 a 300 segundos.
47
80 90 100 110 120 130 140 150-5
0
5
10
Tempo [s]
Tens
ão [V
]
Set PointNívelSinal de controle de nívelPosição da válvula
Figura 38 – Resposta do sistema a perturbação externa (aumento da vazão de entrada).
260 265 270 275 280 285 290 295 300 305-8
-6
-4
-2
0
2
4
6
8
Tempo [s]
Tens
ão [V
]
Set PointNívelSinal de controle de nívelPosição da válvula
Figura 39 – Resposta do sistema a perturbação externa (vazão de entrada nula).
48
5 CONCLUSÃO
Foi desenvolvido um algoritmo em MATLAB capaz de realizar um controle
em tempo real com a placa de aquisição de dados NuDAQ PCI-9112. O fato de o
tempo de processamento de cada iteração dentro do loop no algoritmo criado variar,
faz com que o tempo de amostragem do algoritmo criado também varie. Soluções que
tornem o processamento exclusivo do MATLAB resolveriam esse problema.
A interface com o usuário criada apresentou-se eficiente e funciona como um
supervisório mais simples.
O módulo de comunicação desenvolvido introduziu muito ruído na aquisição
de dados, portanto pode ser melhorado em trabalhos futuros, de forma que os
componentes para montar seus circuitos devem ser escolhidos de maneira mais
criteriosa de modo a eliminar o ruído.
O sensor capacitivo e seu circuito devem ser estudados e aprimorados, porque,
apesar de apresentar uma solução interessante para a medição de nível de um tanque,
ele se apresentou instável em se tratando de manter um valor de tensão constante para
um dado nível de água. Outra sugestão é utilizar um sensor de pressão, ao invés do
sensor capacitivo, para medir o nível.
O ambiente criado pode ser também aplicado em plantas industriais através do
sistema OPC em conjunto com o Matlab.
49
REFERÊNCIAS BIBLIOGRÁFICAS
[1] HADDAD, Raphael Rebello. Desenvolvimento de uma Interface entre o
Ambiente Simulink/Matlab e a Placa de Aquisição de dados NuDAQ 9112
para Aplicações em Controle de Processos, Projeto de Graduação em
Engenharia Elétrica, UFES, 2005.
[2] GOMES, Elias P.. Controle de Temperatura e Nível de um Fluido em um
Tanque. Projeto de Graduação em Engenharia Elétrica, UFES, 2004.
[3] CAMPAGNARO, João Gilberto. Controle Digital do Nível de Tanque em Rede
utilizando supervisório Intouch e o CLP Micrologix, Projeto de Graduação em
Engenharia Elétrica, UFES, 2006.
[4] THE MATHWORKS – MATLAB and SIMULINK for Technical Computing.
[on line]. 2008. Disponível: http://www.mathworks.com/ [capturado em jul. 2008].
[5] ADLINK: DAQ-MTLB. Data Acquisition Library for MATLAB. [on line].
2008. Disponível: http://www.adlinktech.com/MAPS/DAQ-MTLB.html
[capturado em jul. 2008].
[6] ARAÚJO, André Luiz de. Desenvolvimento de um Sensor de Nível Capacitivo
para Controle de Processos através do CLP Micrologix 1500. Projeto de
Graduação em Engenharia Elétrica, UFES, 2007.
[7] NILSSON, James W., RIEDEL, Susan A.. Circuitos Elétricos. LTC 6. ed.
[8] SILVA, Érica M.; ALBURQUERQUE, Marcelo P. de; ALBURQUERQUE,
Marcio P. de; MELLO, Aline da Rocha G.; CANER, Eugênio S.. Introdução a
Interface Gráfica no MATLAB, 2004.
[9] FERREIRA, Nelson Martins. Apontamentos de MATLAB, 2003.
[10] LANGLOIS. DC Servo Trainer – ED-4400B Instruction Manual.
[11] COHEN, G.H.; COON, G.A.. Theoretical Consideration of Retarded Control.
Trans. ASME 75, 1983.
50
APÊNDICE A – ALGORITMO DE SEGURANÇA DO MOTOR CC
Para que o motor CC não seja danificado recebendo tensão caso a válvula já
esteja totalmente aberta ou totalmente fechada, foi tomada uma medida de segurança
no algoritmo de controle, o trecho do código para isso está a seguir:
51
APÊNDICE B – ALGORITMO DE CONTROLE
52
53
54
55
56
57
58
59
60
APÊNDICE C – UTILIZANDO O GUIDE
GUIDE é uma ferramenta fornecida pelo MATLAB projetada para que o
usuário construa interfaces gráficas com maior facilidade e rapidez. A função GUIDE
contém ferramentas para criar, instalar, alinha e alterar o tamanhos de objetos
uicontrol, listados no item C.1.
Para abrir a ferramenta GUIDE, deve-se digitar o comando guide no prompt
do MATLAB, em seguida aparecerá uma tela, Figura 40 onde o usuário deve escolher
entre criar uma nova GUI, em branco ou utilizar modelos prontos, ou abrir o trabalho
existente.
Figura 40 – Tela inicial da ferramenta GUIDE.
Em seguida aparecerá a interface de criação da ferramenta GUIDE, Figura 41.
Figura 41 – Interface de criação da ferramenta GUIDE.
61
Quando a janela de criação de interface é ativada o MATLAB cria
automaticamente dois arquivos:
• fig-file: arquivo com extensão .fig, contém uma descrição completa
sobre o layout da interface gráfica a ser criada, as modificações
desejadas na aparência da GUI devem ser feitas no fig-file.
• m-file: arquivo com extenção .m, contém o código que controla a GUI,
incluindo as callbacks dos componentes. Cabe ao usuário modificar
este arquivo de acordo com as necessidades do seu programa.
C.1 Uicontrol e programação dos Callbacks
O uicontrol é um objeto gráfico adicionado à interface e tem como função
fazer a comunicação entre o usuário e o programa criado.
Cada objeto gráfico adicionado ao fig-file gera no m-file uma sub-função,
chamada callback, que é executada de acordo com as ações tomadas pelo usuário
através da interface gráfica criada. Para adicioná-los à interface que está sendo criada o
usuário deve escolher entre as opções a esquerda na interface de criação vista na
Figura 42 e a seguir é apresentada uma breve descrição da ação desencadeada pelo
callback de cada uma.
Figura 42 – Menu dos objetos gráficos disponíveis.
62
C.2 Push Button
Gera uma ação quando pressionado. A ação que é desencadeada quando se
pressiona o botão deve ser programada na sua callback, imediatamente após ser
acionado ele retorna a seu estado inicial. Geralmente são usados para executar uma
ação e não para mudar um estado ou fixar um atributo.
C.3 Slider
Consiste de um controle deslizante, onde o valor de entrada é apontado pelo
indicador dentro de um intervalo de valores pré-determinados. Existem quatro
propriedades que controlam o intervalo e o incremento com que o slider desloca-se:
Value – contém o valor corrente do slider;
Max – define o limite superior do intervalo;
Min – define o limite inferior do intervalo;
SliderStep – especifica o incremento com que o slider se desloca em relação
aos limites do intervalo.
C.4 Radio Button
Gera uma ação quando selecionado e indica seu estado corrente, mas é
entendido como sendo mutuamente exclusivo dentro de um grupo de radio buttons
relacionados.
Os radio buttons possuem dois estados, selecionado e não selecionado. É
possível saber o estado de um radio button através da propriedade Value.
Value = Max, o botão está selecionado
Value = Min, o botão não está selecionado.
De modo a tornar os radio buttons mutuamente exclusivos dentro de um
grupo, o callback de cada um deve atribuir à propriedade ‘Value’ o valor ‘Min’ aos
demais.
63
C.5 Check Box
Assim como os radio buttons geram uma ação quando selecionadas e indicam
seu estado corrente, mas não são mutuamente exclusivas. As check boxes são úteis
quando se pretende dar ao usuário uma série de escolhas independentes que
especificam diferentes modos de operar.
C.6 Edit Text
São campos que permitem ao usuário introduzir ou modificar valores no
decorrer do programa.
C.7 Static Text
Mostra linhas de texto e é essencialmente utilizado para colocar nomes nos
outros controles, fornecer instruções ao utilizador, ou indicar valores associados a um
slider. O usuário não pode alterar um static text interativamente e este não possui um
callback associado.
C.8 Pop-up Menu
Quando clicado mostra uma lista de escolhas ao usuário. Quando não está
aberto, o pop-up menu, mostra a escolha corrente. São úteis quando se pretende dar ao
utilizador uma longa série de escolhas mutuamente exclusivas, e não se quer gastar
todo o espaço que isso tomaria no caso dos radio buttons.
C.9 Listbox
Mostram uma lista de itens e permitem ao utilizador escolher um ou mais itens
da lista.
C.10 Toggle Button
Funcionam como chave, alternam entre dois estados, ligado ou desligado.
64
C.11 Axes
Permite à interface mostrar o resultado de gráficos no decorrer do programa.
Após definir quais objetos gráficos serão adicionados à sua interface, o usuário
deve editar algumas de suas propriedades, principalmente sua Tag que será usada
como nome na criação da callback do objeto. Para isso deve-se clicar duas vezes sobre
o objeto e fazer as devidas escolhas na tela de propriedades, Figura 43.
Figura 43 – Propriedades dos objetos gráficos.