PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato...

68
UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA TRABALHO FINAL DE CURSO EM ENGENHARIA ELÉTRICA PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM CONTROLADOR PID UTILIZANDO FPGA MATHEUS SALES BEZERRA FORTALEZA JUNHO 2010

Transcript of PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato...

Page 1: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

UNIVERSIDADE FEDERAL DO CEARÁ

CENTRO DE TECNOLOGIA TRABALHO FINAL DE CURSO EM ENGENHARIA ELÉTRICA

PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM CONTROLADOR PID UTILIZANDO FPGA

MATHEUS SALES BEZERRA

FORTALEZA JUNHO 2010

Page 2: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

ii

MATHEUS SALES BEZERRA

PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM CONTROLADOR PID UTILIZANDO FPGA

Monografia submetida à Universidade Federal do Ceará como parte dos requisitos para obtenção do grau de Graduação em Engenharia Elétrica.

Orientador: Dr. Arthur Plínio de Souza Braga.

Fortaleza Junho 2010

Page 3: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída
Page 4: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

iv

DEDICATÓRIA Dedico este trabalho aos meus pais que muito contribuíram de forma direta ou indiretamente para a elaboração e execução desta monografia. À todos de minha família, e minha namorada. Aos professores, colegas e funcionários da UFC. À Deus por ter me concedido o dom da vida e do entendimento.

Page 5: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

v

AGRADECIMENTOS

À minha mãe que muito me ajudou e apoiou assim como os familiares.

Aos meus amigos que construí durante essa árdua batalha de aprendizado e crescimento.

Ao Meu orientador, Prof. Dr. Arthur Plínio de Souza Braga, pelo seu incentivo na realização

deste trabalho e pela paciência, compreensão e atenciosidade. A você minha admiração e

agradecimentos.

Aos professores Otacílio da Mota Almeida, José Carlos, Ranoyca Nayana Alencar Leão e

Silva, e Demercil de Souza Oliveira Júnior, e ao mestrando Davi Nunes Oliveira que contribuíram

direta ou indiretamente para que eu conseguisse concluir este trabalho.

Page 6: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

vi

Bezerra, M.S. “PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM CONTROLADOR PID UTILIZANDO FPGA”. Universidade Federal do Ceará – UFC, 2010.

RESUMO

Com o crescimento da indústria de automação, e com as novas tecnologias emergentes, a

competitividade do mercado traz a necessidade de novas soluções que facilitem rápida adaptação às

novas demandas. Um controlador digital é uma ferramenta essencial em praticamente todas as

plantas industriais, sendo implementado em diferentes plataformas de hardware como

microcontroladores e CLPs. Uma alternativa atraente para a implementação de contralores digitais

que vêm ganhando interesse cada vez maior são os FPGAs (Field Programmable Gate Array).

Estes dispositivos lógicos programáveis, que competem diretamente com os ASICs (Application

Specific Integrated Circuit), possuem grande versatilidade de implementação de sistemas digitais

complexos, e um baixo consumo de energia. Este trabalho realiza a implementação de um

controlador PID (Proporcional-Integral-Derivativo) digital em um FPGA da família Cyclone II no

controle de uma planta não-linear de teste: um pêndulo amortecido. Esta planta é composta por um

motor fixo em uma haste girante, e o controlador deve manter esta haste estável em um determinado

ângulo pré-estabelecido com relação ao solo – o controlador projetado e implementado atua sobre o

motor através de um acionamento por PWM (Pulse Width Modulation). Como os dados de um

FPGA são digitais, utiliza-se um conversor AD para traduzir os dados analógicos das medidas do

ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o

FPGA e os testes realizados são apresentados ao longo dos capítulos desta monografia. A parte

teórica utilizada no projeto, que envolve as áreas de Sistemas Lineares, Controle, e Eletrônica

Digital, é descrita nos capítulos iniciais. Os resultados obtidos são apresentados através dos

ambientes de desenvolvimento MATLAB® e Quartus II®.

Page 7: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

vii

Bezerra, M.S. “DESIGN, IMPLEMENTATION AND TESTING OF A PID CONTROLLER USING FPGA. " Federal University of Ceará – UFC, 2010.

ABSTRACT

With the growth of automation industry, and with new emerging technologies, competitive

market brings the need for new solutions that facilitate rapid adaptation to new demands. A digital

controller is an essential tool in almost all industrial plants, being implemented on different

hardware platforms such as microcontrollers and PLCs. An attractive alternative for implementing

digital controller that have been gaining increasing interest are the FPGAs (Field Programmable

Gate Array). These programmable logic devices that compete directly with ASICs (Application

Specific Integrated Circuit), have great versatility in implementation of complex digital systems,

and low power consumption. This paper realizes the implementation of a PID (Proportional-

Integral-Derivative) digital in a Cyclone II FPGA family to control a nonlinear plant test: a damped

pendulum. This plant consists of a motor fixed on a rotating rod, and the controller must maintain

this stable stem at an angle predetermined with respect to the ground - the controller designed and

implemented acts on the drive motor through a PWM (Pulse Width Modulation). As data of an

FPGA are digital, it uses an AD converter to translate analog data measures the angle of the rod to

the digital format. Details about the project, the plant, interfacing with the FPGA and testing are

presented throughout the chapters in this monograph. The theoretical part used in the project, which

involves the areas of Linear Systems, Control and Digital Electronics, is described in the opening

chapters. The results are presented through the development environments and MATLAB ®

Quartus ® II.

Page 8: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

viii

SUMÁRIO LISTA DE TABELAS............................................................................................................ ix LISTA DE FIGURAS............................................................................................................. x CAPÍTULO 1. 1.1 ORGANIZAÇÃO DO TRABALHO................................................................................. 2 CAPÍTULO 2. 2. O CONTROLADOR PID ...................................................................................................... 3 2.1 INTRODUÇÃO.................................................................................................................... 3 2.2 SINTONIA DO CONTROLADOR...................................................................................... 5 2.3 PID DISCRETO.................................................................................................................... 8 2.4 IMPLEMENTAÇÕES EM HARDWARE DO CONTROLADOR PID........................... 10 2.5 COMENTÁRIOS FINAIS.................................................................................................. 10 CAPÍTULO 3. 3. DISPOSITIVOS LÓGICOS PROGRAMÁVEIS................................................................. 16 3.1 INTRODUÇÃO.................................................................................................................. 16 3.2 PROGRAMAÇÃO DOS DISPOSITIVOS......................................................................... 22 3.3 PROTOTIPAGEM ............................................................................................................. 22 3.4 FAMÍLIA CICLONE II & FPGA....................................................................................... 24 3.5 CONCLUSÃO ................................................................................................................... 30 CAPÍTULO 4. 4.EXPERIMENTOS E RESULTADOS................................................................................... 31 4.1 DESCRIÇÃO DA PLANTA...............................................................................................31 4.2 ENSAIOS PARA IDENTIFICAÇÃO................................................................................. 35 4.3 ENSAIOS PID.....................................................................................................................36 4.4 ENSAIOS FPGA................................................................................................................. 43 4.5 COMENTÁRIOS FINAIS.................................................................................................. 47 CAPÍTULO 5. 5.1 CONCLUSÕES...................................................................................................................48 REFERÊNCIAS BIBLIOGRÁFICAS.................................................................................. 50

APÊNDICE A.......................................................................................................................... 52

Page 9: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

ix

LISTA DE TABELAS

Tabela 2.1 - Tabela de sintonia de Ziegler-Nichols 1º método..................................................... 6 Tabela 2.2 - Tabela de sintonia de Ziegler-Nichols 2º método..................................................... 8 Tabela 2.3 - Recursos utilizados para gerar protótipos de hardware........................................... 11 Tabela 2.4 - Comparação das implemetações dos sistemas base-DA e base-IP.......................... 14 Tabela 3.1 - Características do dispositivo................................................................................... 26 Tabela 3.2 - Configuração e Teste................................................................................................ 29

Page 10: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

x

LISTA DE FIGURAS

Figura 2.1 - Planta do controle PID............................................................................................ 5 Figura 2.2 - Curva de resposta em forma de “S”........................................................................ 6 Figura 2.3 - Oscilação sustentada com período Pcr.....................................................................7 Figura 2.4 - Sistema de malha fechada com um controlador proporcional.................................8 Figura 2.5 - UML Diagrama de casses UML de um sistema de controle base-PID geral........ 13 Figura 2.6 - Resposta em malha fechada de um sistema de controle em base-DA...................14 Figura 3.1 - Árvore das famílias de dispositivos digitais.................................................. ........18 Figura 3.2 - Estrutura Interna de uma CPLD...................................................................... ......18 Figura 3.3 - Estrutura Interna de um FPGA..................................................................... .........19 Figura 3.4 - Projeto de Design Lógico Programável................................................................ 20 Figura 3.5 – Apresentação do FPGA...................................................................................... 24 Figura 3.6 - Diagrama Cyclone II EP2C20............................................................................. 25 Figura 3.7 - Modo Normal....................................................................................................... 26 Figura 3.8 - Modo Aritmético.................................................................................................. 27 Figura 3.9 - EP2C15 & Maior PLL, CLK[], DPCLK[] & Locais dos blocos de controle...... 28 Figura 3.10 - Bloco de controle de Clock..................................................................................28

Figura 3.11 - Estrutura Cyclone II IOE................................................................................... 29 Figura 4.1 - Planta real do projeto........................................................................................... 31 Figura 4.2 - Circuito de acionamento e conversão.................................................................. 32 Figura 4.3 - PWM exibido no Osciloscópio............................................................................ 32 Figura 4.4 - Fontes de alimentação DC................................................................................... 33 Figura 4.5 - Projeto da placa de circuito impresso................................................................. 33 Figura 4.6 - Placa da National Instruments para coletar dados................................................ 34 Figura 4.7 - Lógica de blocos Simulink................................................................................... 34 Figura 4.8 - resposta ao degrau da planta real.......................................................................... 36 Figura 4.9 - Diagrama 2º método Ziegler-Nichols................................................................... 37 Figura 4.10 - Código para testar de estabilidade........................................................................38 Figura 4.11 - Resposta ao degrau da função de teste............................................................... 39 Figura 4.12 - Gráfico PO versus ts para FT de segundo grau.................................................. 40 Figura 4.13 - Código para comparar e obter parâmetros PID................................................... 41 Figura 4.14 - Resposta ao degrau para valores de Csi............................................................. 42 Figura 4.15 - Resposta ao degrau da planta............................................................................. 42 Figura 4.16 - Saída discreta simulada no MATLAB............................................................... 43 Figura 4.17 - Diagrama de blocos QUARTUSII..................................................................... 44 Figura 4.18 - Resposta ao degrau do controlador real.............................................................. 45 Figura 4.19 - Controle com variação na referência.................................................................. 46 Figura 4.20 - Controle com perturbação da haste.................................................................... 46 Figura A.1 - PID discreto......................................................................................................... 52 Figura A.2 - Ilustração do software QUARTUS® II............................................................... 53

Page 11: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

xi

LISTA DE SÍMBOLOS

AD Analógico-digital

ADC A/D orD/A converters (Conversor Analógico/Digital ou Digital/Analógico)

ASIC Application Specific Integrated Circuit (Circuito integrado de aplicação específica)

BASE-DA Base aritmética distribuída

CLP Controlador lógico programável

CPLD ComplexProgrammable Logic Devices (Dispositivo lógico programável complexo)

DLP Dispositivo lógico programável

EDIF Electronic Design Interchange Format (Formato Intermediário para Intercâmbio de Projeto)

EEPROM Electrically-Erasable Programmable Read-Only Memory

EPLD Electrically Programmable Logic Device (Dispositivo lógico programável eletricamente)

EPROM Electrically Programmable Read-Only Memory

FPAA FieldProgrammable Analog Array (Arranjo analógico programável por campo)

FPGA FieldProgrammable Gate Array (Arranjo de Portas Programável em Campo)

FSM Finite State Machine (máquinas de estados finitos)

FT Função de Transferência

GE General Electric

I/O Input/Output (Entrada/Saída)

JTAG Joint Test Action Group

LABs Logic Array Blocks (Blocos de arranjos lógicos)

LUT Lookup-Table (É um tipo de bloco lógico)

MIMO Multiple inputs and Multiple outputs (Múltiplas entradas e múltiplas saídas)

MISO Multiple inputs and single output (Múltiplas entradas e saída

única)

PALA Programmable Associative Logic Array (Lógico Programável Array Associativo)

PID Proporcional, integral e derivativo

PLA Programmable Logic Array (Array lógico programável)

PROM Programmable read-only memory (Memória programável

Page 12: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

xii

apenas de leitura)

PWM Pulse Width Modulation (Modulação por largura de pulso)

RAM Random Access Memory (Memória de acesso randômico)

ROM Read only memory (Memória somente de leitura)

SISO Single input and single output (Única entrada e única saída)

SPLD Simple Programmable Logic Device (Dispositivo lógico programável simples)

SRAM Static Random Access Memory (Memória estática de acesso aleatório)

UFC Universidade Federal do Ceará

UML Unified Modeling Language (Linguagem de modelagem unificada)

VGA Video Graphics Array (Arranjo gráfico de vídeo)

Page 13: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

xiii

LISTA DE ABREVIATURAS E SIGLAS

Símbolo Nome Unidade Abreviatura Kp Ganho proporcional admensional

Ki Ganho integrativo admensional

Kd Ganho derivativo admensional

Td Tempo derivativo Minutos min

Ti Tempo integral Minutos min

T Constante de tempo Segundos seg

G(s) Função de transferência estimada admensional

Gc Função do controlador admensional

e Erro admensional

ek-1 Erro instante anterior admensional

ek-2 Erro instante antes do anterior admensional

u Saída do controlador admensional

uk-1 Saída no instante anterior admensional

r, uc Entrada admensional

y(t) Saída admensional

P(k) Termo proporcional discreto admensional

D(k) Termo derivativo discreto admensional

I(k) Termo integrativo discreto admensional

Page 14: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

CAPÍTULO 1

INTRODUÇÃO

Com um crescimento acelerado das técnicas de Controle Digital [JACQUOT,

1994] [ZIEGLER e NICHOLS, 1942], e das facilidades de implementação de Sistemas

Digitais Complexos em Dispositivos Lógicos Programáveis (DLPs) [TOCCI, 2003],

surgiram diversos controladores que combinam estes dois temas em diversas aplicações:

medições digitais (osciloscópio), máquinas de produção, indústria automobilística, etc.

Em vários artigos científicos atuais comenta-se a eficiência do uso de uma categoria de

DLP de grande versatilidade: os FPGAs (Field Programmable Gate Arrays) [TOCCI,

2003] [D’AMORE, 2005] [ALTERA, 2010a]. Estes dispositivos possuem uma

arquitetura interna que permite sua fácil utilização em variados propósitos. Dadas estas

facilidades, escolheu-se o FPGA como plataforma de hardware do presente trabalho.

Neste projeto, o controle de uma planta não-linear é realizado através de um

controlador PID digital implementado em FPGA. O controlador PID digital é bastante

conhecido e também possui vários trabalhos com o mesmo [RICHARD e ROBERT,

2001; WITTENMARK e ÅSTRÖM, 2003]. Para a proposta deste trabalho de um PID

implementado em FPGA, foram inicialmente estudados dois artigos tomados como

estudos de caso (não implementados) para a sintonia do controlador [CHAN, 2007;

GOMES, 2009]. O primeiro artigo estudado [CHAN, 2007] trata da implementação ao

realizar a comparação de três tipos de métodos para implementação do controle, todos

utilizando uma sintonia através do método de Ziegler/Nichols [ZIEGLER e NICHOLS,

1942] em complementação com o método do Relay [CHAN, 2007]. O segundo artigo

estudado foi [GOMES, 2009] comenta-se brevemente do que trata este artigo que

também não foi implementado, pelo mesmo motivo do artigo primeiro. Então a opção

que funcionou com a planta foi o método de [JACQUOT, 1994] retirado do seu livro.

Ele aborda a discretização dos valores para implementação digital.

Page 15: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

2

A sintonia trata das variáveis que deveram ser encontradas para o funcionamento

correto do controlador. Dependendo do overshooting ou do tempo de acomodação do

processo, poderão ser escolhidos variáveis diferentes para o controlador [ZIEGLER e

NICHOLS, 1942]. Neste trabalho, a sintonia do controlador foi realizada

algebricamente pela alocação de pólos [OGATA, 2003]. Os parâmetros calculados para

o controlador foram validados em simulação no software MATLAB, e em

implementação no FPGA.

A planta do projeto trata-se de um pêndulo amortecido composto por uma hélice

acoplada a um motor na extremidade de uma haste girante acoplada à uma base fixa

através de rolamentos (Seção 4.1). Isso faz com que a haste possa girar livremente com

a menor quantidade de atrito possível. O circuito de conversão AD é feito para coletar a

leitura do potenciômetro, que indica a posição da haste girante, e é enviada para o

FPGA. O motor é acionado através do controle da tensão por PWM. Esses sinais de

acionamento são gerados pelo controlador implementado no FPGA.

O motor DC escolhido funciona com corrente máxima de 1A e tensão máxima

de 12 V. Um contrapeso na ponta da haste oposta ao motor é utilizado para balancear o

peso do mesmo.

Este projeto aborda diversos assuntos estudados durante o curso de Engenharia

Elétrica, possibilitando um aprendizado bastante significativo nas áreas de Controle,

Sistemas Lineares, e Eletrônica Analógica e Digital. A Seção seguinte descreve como

estes assuntos estão distribuidos nos próximos capítulos, assim como os capítulos

relativos aos resultados e conclusões finais

1.1 – ORGANIZAÇÃO DO TRABALHO

No Capítulo 2 apresenta-se o controlador PID: o princípio de funcionamento,

métodos de sintonia e possíveis implementações digitais descritas em artigos e livros.

No Capítulo 3 comenta-se os Dispositivos Lógicos Programáveis suas

variedades encontradas no mercado, o dispositivo FPGA e sua família Cyclone II, com

suas características principais.

No Capítulo 4 mostra-se a planta considerada para testes, a interface para os

ensaios, os resultados obtidos em simulações e no sistema real.

No Capítulo 5 são apresentadas as conclusões e são propostos trabalhos futuros

nessa mesma linha de trabalho.

Page 16: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

CAPÍTULO 2

O CONTROLADOR PID

Uma estratégia de controle amplamente utilizada em processos industriais é chamada de

controlador de três termos ou controlador PID (Proporcional-Integral-Derivativo)

[OGATA, 2003]. Neste capítulo será apresentado este controlador: a Seção 2.1

apresentará as características básicas do controlador PID, métodos conhecidos na

literatura para o ajuste dos parâmetros deste controlador são tratados na Seção 2.2, a

descrição do PID discreto é feita na Seção 2.3, exemplos de trabalhos que implementam

em FPGA o controlador PID discretizado são tratados na Seção 2.4; o Capítulo é

encerrado com os comentários finais da Seção 2.5.

2.1 INTRODUÇÃO

O controlador PID tem uma função de transferência no domínio de Laplace

conforme a Equação 2.1 [DORF e BISHOP, 1998]. A ação de controle deste

controlador é gerado a partir da combinação das ações proporcional, integral e

derivativa. O objetivo deste controlador é aproveitar as características particulares de

cada uma destas ações a fim de se obter uma melhora significativa do comportamento

transitório e em regime permanente do sistema controlado. Desta forma, têm-se três

parâmetros de sintonia no controlador: o ganho proporcional Kp, o termo integral Ki e o

termo derivativo KD.

i

c p DK

G (s) K K ss

= + + (2.1)

O controlador oferece um termo proporcional que reduz o tempo de

acomodação, o termo de integração elimina o erro de regime e o termo derivativo

Page 17: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

4

aumenta a estabilidade do sistema. A equação para a saída no domínio do tempo é

mostrado na equação 2.2 [DORF e BISHOP 1998].

p i Dde(t)

u(t) K e(t) K e(t)dt Kdt

= + +∫ (2.2)

Sendo e(t) o erro que é a entrada do controlador, u(t) é a saída do controlador e

Kp, Ki, Kd são os ganhos do controlador. A função de transferência do termo derivativo

é mostrado na equação 2.3 [DORF e BISHOP 1998].

D

dd

K sG (s)

s 1=

τ + (2.3)

Como a constante dτ é muito menor que as constantes de tempo do processo,

então se pode desprezá-la. Considerando KD = 0 na equação 2.1, tem-se então o

controlador proporcional e integral (PI) da equação 2.4 [DORF e BISHOP 1998].

Quando Ki = 0 na equação 2.1 resulta na equação 2.5 [DORF e BISHOP 1998] que é o

chamado controlador proporcional derivativo (PD).

i

c pK

G (s) Ks

= + (2.4)

c p DG (s) K K s= + (2.5)

Muitos processos industriais são controlados usando controladores do tipo PID

[OGATA, 2003]. A popularidade dos controladores PID pode ser atribuída parcialmente

ao seu bom desempenho em uma ampla faixa de condições de operação e parcialmente

à sua simplicidade funcional. Para implementar este controlador, há necessidade de se

determinar para um dado processo: o ganho proporcional (Kp), o ganho integral (Ki), e o

ganho derivativo (KD).

Pode haver casos em que a resposta a um distúrbio e a resposta à entrada de

referência tornem-se conflitantes, o que não pode ser satisfeito com um grau de

liberdade, mas se aumentado os graus de liberdade é possível solucionar este problema.

Com a utilização de controladores PID usando dois graus de liberdade, projeta-se

Page 18: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

5

sistemas de controle que satisfazem dois requisitos independentes ou, algumas vezes,

conflitantes como a característica de resposta à entrada de distúrbio e aquela de resposta

à entrada de referência.

2.2 SINTONIA DO CONTROLADOR

O processo de selecionar parâmetros do controlador que garantam uma dada

especificação de desempenho é conhecido como sintonia do controlador. Um método de

sintonia muito conhecido, e bastante utilizado pela sua facilidade de implementação foi

sugerido por Ziegler e Nichols, em 1942 [ZIEGLER e NICHOLS, 1942], e se baseia na

resposta ao degrau ou no valor de Kp que resulta em uma estabilidade marginal quando

somente uma ação proporcional é utilizada. Para melhor compreensão, tome-se como

exemplo de uma planta de controle (malha fechada com retroação negativa) na Figura

2.1: onde G(s) é a planta, Gc(s) é o controlador PID, R(s) é a entrada e Y(s) a saída.

Figura 2.1 – Planta do controle PID.

Utilizando o primeiro método de Ziegler e Nichols [ZIEGLER e NICHOLS,

1942], analisa-se a curva de resposta ao degrau de entrada numa planta. Este método é

funcional para plantas de primeira ordem, ou seja, se a planta não possui integradores

nem pólos complexos conjugados dominantes. Nestes casos, a curva de resposta ao

degrau unitário pode ter o aspecto de um “S”, como na Figura 2.2. Esse método se

aplica somente quando esta curva de resposta ao degrau tiver esse aspecto de “S”. Essa

curva de resposta pode ser gerada experimentalmente ou a partir de uma simulação

dinâmica da planta. A curva “S” pode ser caracterizada por duas constantes, o atraso L e

a constante de tempo T. O atraso e a constante de tempo são determinados desenhando-

se uma linha tangente com o eixo dos tempos e a linha r(t) = K, como mostra a Figura

2.2.

Page 19: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

6

Figura 2.2 – Curva de resposta em forma de “S”.

A função de transferência Y(s)/R(s) pode ser aproximada por um sistema de

primeira ordem com um atraso de transporte, como na equação 2.6 [DORF e BISHOP

1998].

LsY(s) Ke

R(s) Ts 1

=+

(2.6)

Tendo a curva de saída Figura 2.2 e os parâmetros L e T, então de acordo com a tabela

2.1, podem ser sugeridos os valores de Kp, Ti, TD.

Tabela 2.1 - Tabela de sintonia de Ziegler-Nichols 1º método [OGATA, 2003].

Tipo de controlador Kp Ti TD P T/L ∞ 0 PI 0,9 T/L L/0,3 0

PID 1,2 T/L 2L 0,5 L

Neste método, a função de transferência do controlador torna-se [OGATA, 2003]:

Page 20: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

7

2

c p d.i.

1s

1 LG (s) K 1 T s 0,6TT s s

+

= + + =

(2.7)

A principal vantagem deste método (Curva de Reação “S”) deve-se ao fato de,

uma vez determinada a curva de reação do método, os parâmetros podem ser ajustados

imediatamente. Esta vantagem é particularmente útil em processos muito lentos, em que

pode passar muito tempo até que o sistema atinja a estabilidade crítica que é quando o

sistema fica marginalmente estável através de um ganho crítico(2º método de Ziegler e

Nichols).

A sua principal desvantagem decorre de grande parte dos sistemas serem mais

complexos do que um simples sistema de primeira ordem com atraso, o que significa

que é ainda necessário um último ajuste no ganho antes de se poder considerar que a

resposta do sistema é “aceitável”.

Existem tabelas desenvolvidas a partir deste método, apresentados por Cohen e

Coon [COHEN e COON, 1953] e por Chien, Hrones e Reswich [CHIEN e HRONES e

RESWICH, 1952], entre outros, que representam alguma melhoria deste método.

No segundo método de Ziegler e Nichols, define-se Ti=∞ e Td =0. Utilizando

somente a ação do controle proporcional (Figura 2.4), aumenta-se Kp de 0 ao valor

crítico Kcr no qual a saída exibe uma oscilação sustentada pela primeira vez. Caso a

saída não exiba nenhuma oscilação sustentada para qualquer valor que Kp, pode-se

assumir que este método não se aplica. Portanto, o ganho crítico Kcr, e o correspondente

período Pcr são determinados experimentalmente como na Figura 2.3.

Figura 2.3 – Oscilação sustentada com período Pcr.

Page 21: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

8

Figura 2.4 – Sistema de malha fechada com um controlador proporcional.

O controlador PID sintonizado pelo segundo método fornece a função de

controle da Equação 2.8 [DORF e BISHOP, 1998].

2

crc cr cr

4s

PG (s) 0,075K .Ps

+

= (2.8)

Utiliza-se a Tabela 2.2 para obtenção das constantes.

Tabela 2.2 – Tabela de sintonia de Ziegler-Nichols 2º método.

Tipo de controlador Kp Ti Td P 0,5 Kcr ∞ 0 PI 0,45 Kcr 1/1,2 Pcr 0

PID 0,6 Kcr 0,5 Pcr 0,125 Pcr

2.3 PID DISCRETO

Segundo [WITTENMARK e ÅSTRÖM, 2003] tendo o diagrama da Figura 2.1 o

controlador PID pode ser expresso de maneira contínua ou analógica pela expressão

exposta na Equação 2.9.

( )d

ci d

1 sTR (s) K bR(s) Y(s) R(s) Y(s) Y(s)

sT 1 sT / N

= − + − − +

(2.9)

Fazendo-se uso desta equação, as variáveis de controle agora são K, b, Ti, Td e N,

onde N é um limitador do ganho derivativo; b é igual a w0/2 ; w0 é a velocidade do

sistema em malha-fechada; e Rc(s), R(s), Y(s) são respectivamente as transformadas de

Page 22: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

9

Laplace de rc, r e y. Para implementar o algoritimo no FPGA necessita-se discretizar a

fórmula. Discretizando os termos proporcional, derivativo e integrativo como na

equação 2.10, podemos desenvolver para a equação 2.11, onde k é o k-ésimo instante de

amostragem.

cr (k) P(k) I(k) D(k)= + + (2.10)

( )

( )

( )

i

d d

d d

P(k) K br(k) y(k)

KI(k) I(k 1) r(k 1) y(k 1)

TT KT N

D(k) D(k 1) y(k) y(k 1)T NT T NT

= −

= − + − − −

= − − − −+ +

(2.11)

Na equação 2.11 temos os termos y(k) que é o sinal de feedback no instante k;

y(k-1) é o sinal de feedback no instante anterior k-1;r(k) é o sinal de comando no

presente instante;I(k-1) é o termo integral no instante anterior;D(k-1) é o termo

derivativo no instante anterior; K, b(wn/2), Ti, Td, N(limitador do ganho) são parâmetros

do controlador; e T é o período de amostragem.

Uma metodologia bastante aplicada, devido sua facilidade na implementação é

definida por [JACQUOT, 1994] em seu livro. Uma técnica para controlador em tempo

discreto, onde a saída do controlador é dada por uk mostrado na equação 2.12, onde uk-1

é a entrada no instante anterior, Ts é o tempo de amostragem, ek é o erro no instante, ek-1

é o erro no instante anterior, ek-2 erro no instante antes do anterior, Kp, Ki, Kd são as

constantes do controlador.

k k 1 k

k 1 k 2

Ki.Ts Kdu u Kp e

2 Ts

Ki.Ts 2Kd KdKp e e

2 Ts Ts

− −

= + + + +

+ − − +

(2.12)

Sendo α o fator que multiplica o ek ,β o fator que multiplica ek-1, e γ o fator que

multiplica ek-2. Assim tem-se a saída do controlador que irá controlar a planta e o erro

serve de parâmetro para o controle atuar.

Page 23: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

10

2.4 IMPLEMENTAÇÕES EM HARDWARE DO CONTROLADOR PID

Nesta Seção será apresentado dois estudos de caso por artigos que descrevem sobre

implementações de controladores em FPGA’s, porém utilizando metodologias

diferentes de discretização, sintonia e implementação.

2.4.1 CASO DE ESTUDO I – GOMES, 2009

Segundo [GOMES, 2009], o projeto de um controlador utilizando o FPGA

(Field Progammable Gate Arrays) prevê principalmente portabilidade e praticidade,

com consumo de energia, alta velocidade de operação e larga capacidade de

armazenamento de dados.

Esse controle digital é mais vantajoso que o analógico em relação à obtenção do

resultado, pois tem uma melhor imunidade devido ao sinal discreto, também é

facilmente integrado com sistemas digitais e torna possível implementações de métodos

mais sofisticados.

Com a auto-sintonia espera-se identificar a saída do sistema e encontrar os

parâmetros do controlador automaticamente. O método de Ziegler-Nichols é prático e

direto enquanto o método do Relay-feedback é utilizado para obter os dados que serão

usados para a sintonia Ziegler-Nicols.

Este projeto [GOMES, 2009] pode ser implementado em qualquer sistema que

necessitem controlar usando um controlador PID auto-sintonizável.

Para a sintonia utiliza-se o método de Ziegler-Nicols através de duas técnicas: na

primeira o ganho proporcional é incrementado até que a saída do sistema em malha-

fechada tenha um período constante. Desta forma, o ultimo ganho Ku e o período de

oscilação Pu é determinado e qualquer ganho maior que Ku torna o sistema instável. A

segunda técnica consiste em aplicar um teste em malha aberta através de um distúrbio

de um degrau e pela resposta do sistema, o atraso, ou tempo de inatividade, e a taxa de

variação são calculadas e utilizadas para a frente do ajuste do controlador.

O ganho Ku é estimado a partir da saída do relé “h” e da saída da planta em

malha aberta “a”, como visto na equação (2.13).

Ku = 4.h / a.π (2.13)

Agora, com os parâmetros Ku e Pu, emprega-se o método de Ziegler-Nicols para

a sintonia, mas é preciso criar uma equação do PID para inserir na lógica do processador

Page 24: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

11

NIOS II. A partir da estrutura digital representada pela Equação 2.14a onde q0, q1 e q2

são constantes dependentes de Ts (período de amostragem) Kc, Ti e Td (Equação

2.14b).

u(t) = u(t-1) + q0.e(t)+q1.e(t-1)+q2.e(t-2) (2.14a)

Ts Tdq0 Kc 1

2.Ti TsTs 2Td

q1 Kc 12.Ti Ts

Tdq2 Kc

Ts

= + +

= − − +

=

(2.14b)

Em vez de usar o erro para o termo derivativo, é usada a saída do sistema para

evitar excessiva ação de controle, então substituindo os erros proporcional, derivativo e

integrativo [GOMES, 2009] tem-se a Equação 2.15.

u(t)=u(t-1)+Kc.{-y(t)+y(t-1)+Ts/Ti.e(t-1)+Td/Ts.[-y(t)+2y(t-1)-y(t-2)]} (2.15)

O processador NIOS II favorece a utilização em sistemas embarcados e

trabalhos no setor de automação industrial. Os recursos usados do módulo são

mostrados na tabela (2.3).

Tabela 2.3 - Recursos utilizados para gerar protótipos de hardware.

Total de elementos lógicos

Registrador Lógico Dedicado

Bit de Memória Total de pinos

9% 5% 6% 12%

A programação do controlador foi feita em linguagem C/C++, usando o software

NIOS II IDE. Sendo criada uma library com funções para a criação do controlador PID.

A entrada é de 8 bits, mas pode ser mudada para 16bits se necessário. Esse sinal é

convertido para a base decimal. O degrau na entrada em primeiro momento é

trabalhando com o método do Relay-feedback em um sistema malha fechada, depois é

comparado o erro e mudada a amplitude da entrada para alto ou baixo dependendo do

Setpoint. Isto é feito para achar o valor do período Pu. O período encontrado é utilizado

no método de Ziegler-Nicols para fazer a sintonia. O sinal da entrada de 8bits vem do

conversor AD e o processador calcula os valores dos parâmetros q0, q1 e q2 , que são

Page 25: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

12

constantes do controlador, através de linhas de código onde recebem o valor do

resultado das equações 2.14b.

O sistema foi modelado no Matlab/Simulink a planta (2.16) é retirada em

[NASCIMENTO e YONEYAMA, 2000] cuja resposta é conhecida de modo que os

resultados podem ser comparados com os valores esperados.

( 0.5.s)10.e

G(s)s 3

=+

(2.16)

A simulação realizada tem como objetivo calcular os parâmetros q0, q1, q2.

Esses dados serão necessários para calcular uma entrada anterior vista na equação 2.14a.

Desta forma não será necessário discretizar a planta. O método apresentado neste artigo

não precisa de uma equação que corresponde a uma planta, ele ajusta automaticamente

o controlador a partir de uma planta desconhecida.

Os resultados práticos com o módulo embarcado foram aproximadamente iguais

aos teóricos feitos no MATLAB. Este projeto foi testado em uma planta no

MATLAB/SIMULINK e não um sistema real, então se espera que seja testado em um

sistema real e dê certo. Este estudo pode servir para futuras implementações em plantas

reais.

2.4.2 CASO DE ESTUDO II – CHAN, 2007

Em um outro artigo [CHAN, 2007] o autor utiliza um método de controle

utilizando base aritmética distribuída (base-DA) e controle PID (proporcional integral

derivativo) em FPGA. O método da base-DA poupa 80% de hardware e 40% de

consumo de energia comparado ao método da base-multiplicadora. Baseado em um

esquema LUT ( Lookup-Table), o controlador PID facilita e reduz os custos do projeto.

O projeto visa controlar a temperatura de uma lâmpada através de sensores que

captam as leituras e mandam para o controlador e posteriormente manda um sinal para o

bloco PWM que controla o ventilador. Utiliza o processador Xilinx que será falado

mais adiante.

Utilizando uma modelagem UML (Unified Modeling Language) [WOLF, 2001]

para ter uma idéia inicial deste projeto, porém não muito aprofundada, podemos ver a

divisão em módulos na figura 2.5.

Page 26: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

13

Figura 2.5 - UML Diagrama de casses UML de um sistema de controle base-PID geral.

Trabalhando com máquinas de estados finitos (FSM) para controlar a operação

do sistema em resposta à solicitação do usuário tais como: sintonia PID, ligar, esperar,

desligar, que pode ser construído usando a tecnologia FPGA.

O algoritmo de controle segundo [WITTENMARK, B. e ÅSTRÖM , J. 2003] é

discretizado e separado os termos proporcional, integral e derivativo. Depois de

discretizado far-se-á a implementação no FPGA.

A base-multiplicadora não está otimizada, então se faz necessário diminuir o

número de multiplicadores e somadores, usando o método DA, onde as operações de

multiplicação são substituídas por simples deslocamentos ou operações de adição.

A base-DA oferece 20% de iterações do total oferecido pela base multiplicadora.

Outra diferença está na freqüência da base-DA que permite freqüência máxima de 47

MHz com 456 mW de consumo de energia, e a base-multiplicadora 15 MHz com 756

mW de consumo de energia. Percebendo que uma maior frequncia não corresponde a

uma maior velocidade de computação de resposta.

O projeto [CHAN, 2007] é implementado usando-se o FPGA XC2S200E do

Xilinx, Inc. O XC2S200E contém 4704 LCs ( células lógicas),1176 CLBs ( blocos

lógicos configuráveis), 56-Kb de blocos de RAM (Random Access Memory), e 146

blocos de entrada/saída.

Uma análise de utilização de recursos dos métodos DA e multiplicador, mostra

que a base-multiplicador utiliza 97% dos recursos do FPGA, enquanto o DA utiliza

70%. Através da figura 2.6, pode-se perceber que ambos os métodos tem mesma

resposta ao degrau em malha-fechada, contudo o método DA oferece melhor

aproveitamento dos recursos.

Page 27: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

14

Figura 2.6 – Resposta em malha fechada de um sistema de controle em base-DA.

Ambos os modelos também demonstraram regulação similar aos distúrbios

introduzidos no sistema. Comparando com uma base-IP, que consiste de um

processador , memória e controlador, periféricos , e lógica personalizada , adicionados

no FPGA, bem como programação em C/C++. Para comparação com o método base-

DA podemos ver na tabela 2.4 que DA é mais eficiente.

Tabela 2.4 – Comparação das implemetações dos sistemas base-DA e base-IP.

Para a simulação no Matlab/Simulink foram postos cinco módulos com

utilizando blocos Simulink : incluindo controlador PID base-DA, gerador PWM, FSM

(Finite State Machine), interface ADC, e interface de teclado. Esta ferramenta é útil,

pois o usuário pode reconfigurar facilmente os blocos de acordo com o desempenho e

integra-los a vários projetos. Quatro RAMs são usadas como LUTs e armazena o

conteúdo das tabelas. Há dois geradores PWM i.e., ventilador PWM e lâmpada PWM,

enquanto o módulo da lâmpada PWM manipula o entradas de controle com valor

positivo, o módulo do ventilador de PWM manipula as entradas com valor negativo. A

largura de palavra da entrada de referência é reconfigurável em cada módulo gerador de

PWM.

Page 28: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

15

O FSM, interface ADC e módulos de interface de teclado também podem ser

feitos em Matlab/Simulink como blocos Simulink. No entanto, eles são módulos não

reconfiguráveis, uma vez que são específicos para a aplicação. A abordagem modular

para o projeto permite testar componentes individuais antes de implementar e testar o

sistema final sobre a configuração da prática. Os módulos podem assim ser testados

individualmente e depois integrados no sistema de circuito fechado.

2.5 COMENTÁRIOS FINAIS

Foi visto neste capítulo que o controlador PID possui diversas utilidades e seu

controle é bem utilizado nas indústrias para o controle de dispositivos. A sintonia do

controlador PID pode ser feita de diversas maneiras encontradas na literatura, no

entanto, deve-se escolher a que melhor se adéqua a seu projeto. Apresentado também a

discretização do controlador PID para implementação digital. Falou-se dos métodos

Ziegler/Nichols, um dos mais conhecidos na literatura, Base-DA, Base-IP, Relay.

(observados nos artigos [CHAN, 2007] e [GOMES, 2009]). A metodologia que será

adotada no trabalho é a proposta por [JACQUOT, 1994]. A vantagem de se utilizar

FPGA é que ele prevê principalmente a portabilidade e praticidade, com baixo consumo

de energia, alta velocidade de operação e larga capacidade de armazenamento de dados.

No capitulo seguinte será mostrado uma descrição dos FPGAs, mostrando suas

características físicas, e suas vantagens na utilização.

Page 29: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

CAPÍTULO 3

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Este capítulo trata da explicação sobre o que é um Dispositivo Lógico

Programável (DLP), e suas diversas formas e aplicações. Especificamente, será falado

sobre o FPGA - o tipo de DLP utilizado neste trabalho assim como a descrição da

Família Cyclone II da Altera e suas características para melhor entendimento dos

capítulos seguintes.

3.1 INTRODUÇÃO

Segundo [BARR, 1999], dispositivos lógicos programáveis são dispositivos

utilizados para implementar funções lógicas. Os DLPs são programados via software

fornecido pelos próprios fabricantes desses produtos. Em seu interior existem diversas

portas lógicas, flip-flops e registradores, que oferecem uma forma flexível de arranjo

destes componentes por hardware, ou seja, poderia substituir diversos componentes

como portas AND, OR e NOT por um único chip, usufruindo de todas as vantagens

disso, como um menor consumo, uma menor área utilizada na placa e a eliminação de

interconexões entre componentes. Além disso, o fato de ser reconfigurável permite

alterar o circuito lógico sem mudanças na placa. Dentro dos DLPs existe um conjunto

de macro-células conectadas entre si. Estas macro-células tipicamente compreendem

alguma quantidade de portas lógicas (AND e OR, por exemplo) e flip-flops. A

programação é feita por meio de campos elétricos induzidos no dispositivo.

Em 1970, a Texas Instruments desenvolveu um circuito integrado programável

por máscara baseado na memória associativa da IBM. Este componente, o TMS2000 era

programado alterando-se a camada de metal durante a fabricação [ZELENOVSKY e

MENDONÇA, 2002][MOORE, 1995]. O TMS2000 tinha até 17 entradas e 18 saídas

com 8 flip-flops JK como memória. A Texas criou o termo Programmable Logic Array

(PLA) para este dispositivo. Em 1973, a National Semiconductor introduziu um

Page 30: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

17

dispositivo PLA programável por máscara (DM7575) com 14 entradas e 8 saídas sem

registradores de memória. Foi mais popular que o da Texas, mas o custo de fazer a

máscara de metal limitou seu uso. Este dispositivo foi significativo porque era a base

para o array lógico programável em campo (field programmable logic array) produzido

pela Signetics em 1975, o 82S100. Em 1971, a General Electric (GE) estava

desenvolvendo um dispositivo lógico programável baseado na nova tecnologia PROM .

Este dispositivo experimental era melhor em relação ao ROM da IBM por permitir

lógica multiníveis. A Intel tinha acabado de introduzir a PROM “apagável” por

ultravioleta com gate flutuante e os pesquisadores da GE incorporaram esta tecnologia.

O dispositivo da GE foi o primeiro DLP regravável, precedendo a EPLD da Altera por

mais de uma década. A GE obteve muitas das primeiras patentes em dispositivos

lógicos programáveis. Em 1974 a GE fez um acordo com a Monolithic Memories para

desenvolver um dispositivo lógico programável por máscara incorporando as inovações

da GE. O dispositivo foi chamado 'Programmable Associative Logic Array' ou PALA.

O MMI5760 foi finalizado em 1976 e podia implementar circuitos multiníveis ou

seqüenciais de mais de 100 portas lógicas. O dispositivo era apoiado por ambiente de

projeto da GE onde as equações booleanas eram convertidas em padrões para a máscara

do dispositivo. Este componente nunca chegou a ser comercializado. Estes primeiros

DLPs são hoje classificados como SPLDs (Simple Programmable Logic Devices)

[ZELENOVSKY e MENDONÇA, 2002][MOORE, 1995].

Com a densidade dos chips aumentando a cada dia, os fabricantes passaram

também a produzir componentes com características semelhantes a esses primeiros

DLPs, mas cada vez maiores, não fisicamente e sim logicamente. A estes componentes

foi dado o nome de CPLD. Basicamente, um CPLD é um conjunto de múltiplas DLPs

simples e um barramento configurável de interconexão em um único chip. A densidade

destes componentes permite o desenvolvimento de circuitos muito mais complexos. De

fato, uma única CPLD pode facilmente substituir centenas de componentes da série

74xx (portas lógicas).

De forma didática, os DLPs podem ser divididos segundo suas arquiteturas em:

SPLD (Simple Programmable Logic Device), CPLD (Complex Programmable Logic

Devices), e FPGA (Field Programmable Gate Array), como se pode visualizar na

Figura 3.1 [BARR, M. 1999], onde é mostrado um pequeno esquema das arquiteturas

dos sistemas digitais.

Page 31: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

18

Figura 3.1 - Árvore das famílias de dispositivos digitais.

A Figura 3.2 contém um diagrama de blocos de um CPLD hipotética. Cada um

dos quatro blocos lógicos mostra o equivalente à uma DLP. No entanto, os atuais

CPLDs podem possuir mais (ou menos) blocos lógicos. Note que estes blocos possuem

eles mesmos as suas macro-células e conexões, exatamente como uma DLP.

Figura 3.2 - Estrutura Interna de uma CPLD

Diferente das interconexões configuráveis de um DLP, a matriz de conexões de

uma CPLD pode não ser totalmente conectável. Em outras palavras, algumas das

teoricamente possíveis conexões entre a saída de blocos lógicos e a entrada de outros,

podem não ser suportados no CPLD. O efeito prático disto é que o uso de 100% das

macro-células é difícil de ser atingido.

Devido ao fato dos CPLDs serem mais robustas que os SPLDs, o seu potencial

de uso é muito mais variável. É possível utilizá-las para simples aplicações como

decodificação de endereços, mas também é possível fazer uso das mesmas em lógicas

de controle de alto desempenho ou complexas máquinas de estado finito. Nas aplicações

que exigem lógica de alta performance, tradicionalmente as CPLDs são escolhidas ao

Page 32: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

19

invés dos FPGAs pois, por serem menos flexíveis internamente, possuem um atraso

(delay) interno usualmente menor (medido em nanosegundos).

Os FPGAs podem ser utilizados para a implementação de praticamente qualquer

design de hardware. Um dos usos mais comuns é o seu uso para a prototipação de

componentes que virão no futuro a transformar-se em ASIC (componentes prontos, em

pastilhas de silício). No entanto, não existem problemas em distribuirmos FPGAs em

produtos finais. Esta decisão requer basicamente uma análise de custo, uma vez que o

desenvolvimento de um ASIC é um processo bastante caro e inflexível, mas que gera

componentes de custos bastante reduzidos se produzidos em larga escala. Já os FPGAs

possuem flexibilidade e custo baixo de prototipação, mas preços finais pouco

competitivos se comparados à ASIC com alta escala de produção.

O desenvolvimento de um FPGA é fruto de uma evolução do conceito das

SPLD/CPLD, mas a sua arquitetura é um tanto distinta destes. Como se pode ver na

Figura 3.3, a arquitetura de um FPGA é composta de três estruturas básicas: blocos

lógicos, interconexão e blocos de I/O (Input/Output, Entrada/Saída). Os blocos de I/O

formam uma borda ao redor do dispositivo; cada um destes provê entrada, saída ou

acesso bi-direcional aos pinos de I/O de uso geral disponíveis na parte exterior do

componente. Dentro desta borda de blocos de I/O pode-se ver uma região retangular de

blocos lógicos e conectando-os, estas são as Interconexões Programáveis.

Figura 3.3 - Estrutura Interna de um FPGA

Os blocos lógicos em um FPGA podem ser tão simples e pequenos quanto as

macro-células do DLP (arquitetura conhecida como fine-grained) ou maiores e mais

complexas (coarse-grained). No entanto, um FPGA jamais comportar-se-á, no todo,

como um conjunto de DLPs, como acontece em um CPLD. Lembre-se que um bloco

lógico de CPLD contém múltiplas macro-células. Mas os blocos lógicos de um FPGA

geralmente não contêm mais que algumas portas lógicas e um flip-flop.

Por causa de todos os flip-flops extras a arquitetura do FPGA é muito mais

flexível que a de um CPLD. Isso faz deles melhor para aplicações baseadas em

Page 33: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

20

registradores e aplicações seqüenciais (pipelined). Usualmente FPGA’s são mais densos

e possuem um custo menor que os CPLD’s, então ele é de fato a melhor escolha para

grandes projetos lógicos [ZELENOVSKY e MENDONÇA, 2002][MOORE, 1995].

O processo de criação lógico digital não é muito diferente do desenvolvimento

de sistemas embarcados a que muitos estão acostumados. Uma estrutura de descrição de

hardware é escrita em uma linguagem de alto nível (usualmente VHDL e Verilog), o

código é compilado e copiado para ser executado. Descrever circuito como um

esquemático digital é também possível, mas isso é bem menos popular e mais complexo

que utilizar ferramentas baseadas em linguagens. Uma visão geral do processo de

desenvolvimento de hardware para dispositivos lógico programáveis é mostrado na

figura 3.4 [BARR, 1999].

Note que a principal diferença entre o design de hardware e software é a maneira

que o desenvolvedor precisa pensar para resolver um problema. Desenvolvedores de

software tendem a pensar seqüencialmente, mesmo quando estão desenvolvendo

aplicações multitarefa (multithreaded). As linhas de código sempre são escritas para

serem executadas em uma ordem, pelo menos dentro de uma tarefa (thread) em

particular. Mesmo havendo um sistema operacional usado para criar a aparência de

paralelismo, ainda há um núcleo de execução para o controle disso. Durante o projeto de

hardware os designers precisam pensar, e programar, em paralelo. Todos os sinais são

processados em paralelo, pois trafegam através de um caminho de execução próprio -

cada uma da série de macro-células e interconexões - até o destino do sinal de saída.

Dessa forma, a descrição do hardware cria estruturas que podem ser "executadas" todas

ao mesmo tempo. Note, no entanto, que a transferência entre as macro-células são

usualmente sincronizadas através de um sinal, como o de clock.

Figura 3.4 - Projeto de Design Lógico Programável

Page 34: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

21

Tipicamente, a etapa de início do projeto é seguida ou compartilhada com

períodos de simulação funcional. Este é o momento onde um simulador é utilizado para

a execução do projeto para confirmar se as saídas corretas estão sendo produzidas para

um conjunto de entradas de teste. Embora problemas como tamanho ou sincronismo

possam ainda alterar isto mais tarde, o projetista pode, pelo menos, certificar-se que a

sua lógica de funcionamento está correta antes de ir ao estágio seguinte de

desenvolvimento [BARR, 1999].

A compilação inicia somente depois que uma representação funcional correta do

hardware existe. Esta compilação consiste em duas etapas. Primeiro uma representação

intermediária do projeto do hardware é produzida. Este passo é chamado de síntese e o

resultado é uma representação chamada de netlist. O netlist é um dispositivo

independente, então o seu conteúdo não depende de um FPGA ou CPLD em particular,

ele é armazenado geralmente em um formato padrão, conhecido como EDIF (Electronic

Design Interchange Format) Formato Intermediário para Intercâmbio de Projeto

[BARR, 1999].

A segunda etapa neste processo de tradução é chamada de "place & route

(posicionar e rotear). Este passo envolve traçar as estruturas lógicas descritas na netlist

em macro-células, interconexões e pinos reais de entrada e saída. Este processo é

similar à etapa equivalente no processo de desenvolvimento de um aplaca de circuito

impresso, permitindo otimizações manuais ou automáticas das disposições. O resultado

deste processo é um bitstream. Este nome é usado genericamente, apesar do fato que

cada CPLD ou FPGA (ou família) ter seus próprios, geralmente proprietários, formatos

de bitstream. Para nós basta dizer que o bitstream são os dados binários que deverão ser

carregados no FPGA ou CPLD para fazer com que o chip execute um projeto em

particular [BARR, 1999].

Cada vez mais existem também depuradores disponíveis que permitem a

execução passo a passo da execução em dispositivos lógico programáveis. Obviamente

este tipo de integração específica para componentes requer um conhecimento amplo

sobre o funcionamento dos chips, normalmente fornecidos em parceria da empresa

desenvolvedora da ferramenta com a produtora do componente.

Page 35: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

22

3.2 PROGRAMAÇÃO DOS DISPOSITIVOS

Uma vez que se criou um bitstream para um FPGA ou um CPLD em particular

necessitaria baixá-lo, de algum modo, no dispositivo. O software QUARTUS II

(APÊNDICE Figura A.2), fornecido gratuitamente pela empresa ALTERA foi utilizado

para criar e carregar o bitstream para o FPGA. Este software faz a compilação do

código, em linguagem VHDL, e também carrega o bistream para o dispositivo digital

FPGA através do botão “programmer”. Além disso, o QUARTUS II possui

ferramentas para simulação de resultados através de formas de onda (waveforms), onde

são analisadas as variáveis do projeto como, por exemplo, a saída do PID.

Em dispositivos baseados em tecnologia SRAM, os índices de memória são

temporários e isso traz vantagens e desvantagens. A desvantagem óbvia é que todo o

bitstream precisa ser recarregado após cada restauração do sistema ou do chip, ou seja,

necessita de um chip de memória adicional para armazená-lo, mas isso também

significa que o conteúdo deste pode ser manipulado on-the-fly.

Agora compreendendo um pouco sobre a tecnologia provavelmente precisa-se

saber o que todos estes FPGA’s e CPLD’s estão fazendo dentro dos sistemas

embarcados. Entretanto, os seus usos são tão variados que torna-se impossível

generalizar.

3.3 PROTOTIPAGEM

Muitas vezes um FPGA ou um CPLD será usado em um sistema protótipo, pois

um dispositivo pequeno permite que os designers alterem a lógica facilmente durante o

desenvolvimento, facilitando etapas como a construção de placas e teste dos produtos.

Um dispositivo maior pode ser incluído para permitir a prototipagem de um projeto

system-on-chip, que eventualmente pode transformar-se em um ASIC. Seguindo a

mesma idéia básica é possível integrar em um único componente, grandes quantidades

de componentes menores, condição em que o dispositivo programável estará

substituindo um bloco mais caro, embora funcionalmente equivalente.

O FPGA é uma placa de circuito que contém em seu interior um núcleo

dedicado de processamento (como os processadores usuais) e também uma área de

lógica programável. Os fabricantes destes chips estão apostando que um processador

encaixado no interior de um dispositivo lógico programável vai necessitar de muito

menos portas de saída para aplicações típicas. A "parte fixa" do chip constitui um

Page 36: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

23

microprocessador totalmente funcional, e até mesmo alguma memória. Este chip

conecta também os pinos dedicados ao barramento de endereço e dados na parte externa

do núcleo; então uma parcela dos periféricos específicos da aplicação pode ser

desenvolvida utilizando a parte lógica programável do chip, com projetos próprios ou

núcleos IP (Intellectual Property).

Deve-se saber se há suficiente quantidade de pinos de I/O para o seu projeto,

pois esta é uma questão feita freqüentemente, e afeta bastante o custo do chip.

Conseqüentemente, muitos fabricantes oferecem o mesmo componente com diferentes

quantidades de pinos de I/O.

Obviamente o custo é um fator que precisa ser incluído em um produto final

baseado em FPGA ou CPLD. Escolher o dispositivo que possua os recursos mínimos

para o seu projeto pode ser a melhor opção.

As ferramentas mais populares para compilação e simulação VHDL e Verilog

são vendidas por terceiros. Estas ferramentas geralmente possuem suporte a uma lista de

FPGAs e CPLDs mais comuns. Isso significa que as ferramentas precisam compreender

o seu chip em particular e também informações de sincronismo relacionados à sua

ferramenta de posicionamento e roteamento (place and route tool), mas como explicado

anteriormente o software QUARTUS II® (gratuito) pôde suprir essa dificuldade.

Geralmente os CPLDs são mais rápidos e adicionam menos atrasos que os

FPGAs, entretanto, isso se deve à sua estrutura interna ser menos flexível. Assim, paga-

se pela velocidade extra. O que normalmente é perdido é a densidade. Em grandes

projetos é provável que se precise utilizar um componente mais lento. Ao utilizar um

FPGA o desempenho final só será conhecido no final do processo de roteamento. No

caso deste trabalho o FPGA foi escolhido, pois sua versatilidade é bastante útil para o

projeto de controladores, devido sua diversidade de ferramentas.

O consumo de energia, outra vantagem do FPGA, pode ser um fator importante

em alguns sistemas. Dispositivos baseados em EEPROM e FLASH tipicamente

requerem mais potência que os baseados em PROM, EPROM e SRAM. O FPGA possui

memória FLASH, SRAM e SDRAM, mas só serão usadas de acordo com a

necessidade.

Dispositivos programáveis estão disponíveis em todos os formatos de

encapsulamento. Suas escolha precisa ser direcionada a um deles se precisa de redução

de consumo de energia, redução de dissipação, tamanho e/ou custo ou aplicação.

Page 37: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

24

3.4 FAMÍLIA CICLONE II & FPGA

O baixo custo e um conjunto de funcionalidades otimizadas dos FPGAs da

família Cyclone II torna as soluções ideais para uma ampla área de utilização nos

setores: automotivos, comunicações, processamento de vídeo, teste e medição, entre

outras soluções do mercado. Uma foto do FPGA é mostrada na Figura 3.5 [ALTERA,

2010a] [ALTERA, 2010b].

Figura 3.5 – Apresentação do FPGA.

Dispositivos Cyclone ® II contém uma arquitetura de duas dimensões de linha e

coluna-base para implementar uma lógica personalizada. Coluna e linha interligam

diferentes velocidades a fim de fornecer sinal de interconexões entre matriz lógica

blocos (LABs), blocos de memória embutida e multiplicadores embutidos [ALTERA,

2010a].

Possuem uma interface com dispositivos de memórias DDR, DDR2, SDR,

SDRAM e QDII SRAM (acima de 167 MHz). Blocos de memória M4K são verdadeiros

blocos de memória dual-port com 4K bits memória mais paridade (4.608 bits). Estes

blocos de fornecimento dedicado de porta dupla, simples porta dupla, ou a memória

Page 38: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

25

simples acima de 36-bits de largura e até 260 megahertz. Esses blocos são organizados

em colunas em todo o dispositivo entre certos LABs (Logic Array Blocks). Cyclone II

oferecem dispositivos entre 119 a 1.152 Kbits de memória embutida. Na figura 3.6

[ALTERA, 2010a] é mostrado um diagrama dos dispositivos, inclusive os citados

anteriormente.

Figura 3.6 – Diagrama Cyclone II EP2C20.

Os dispositivos Cyclone II oferecem uma rede global de clock até quatro phase-

locked loops (PLL’s). Esses PLL's oferecem multiplicação e divisão de clock,

deslocamento de fase, e ciclo de trabalho programável, pode ser usado para minimizar o

atraso do clock e clock deslocado, e reduzir ou ajustar os tempos de clock-to-out (tco) e

set-up (Tsu). A rede global de clock consiste em até 16 linhas globais de clock essa

unidade de todo o dispositivo. O clock global da rede pode fornecer sinal para todos os

recursos dentro do dispositivo, como entrada /saída de elementos (IOEs), elementos

lógicos (LE’s), incorporado em multiplicadores e incorporado em blocos de memória.

As linhas de clock global também podem ser usadas para outros sinais altos de saída. As

PLL’s do Cyclone II têm prestação de propósito geral com a síntese do relógio e

deslocamento de fase, bem como saídas apoio I/O externas para a alta velocidade

diferencial.

Page 39: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

26

Tabela 3.1 – Características do dispositivo.

A matriz lógica é composta de LABs, com 16 elementos lógicos em cada LAB.

Uma LE é uma pequena unidade de lógica de prestação de implementação eficiente de

lógica de funções do usuário. LAB’s são agrupados em linhas e colunas em todo o

dispositivo. Dispositivos Cyclone II variam em densidade de 4.608 para 68.416 LE’s

como pode-se perceber na tabela 3.1.

Segundo os modos de operação o Quartus II ajusta automaticamente o LE para o

melhor modo de operação. Modo Normal (figura 3.7): apropriado para funções gerais da

lógica e funções de combinações; Modo Aritmético (figura 3.8): ideal para implementar

contadores, somadores, acumuladores e comparadores.

Figura 3.7 – Modo Normal.

Page 40: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

27

Figura 3.8 – Modo Aritmético.

Esses dispositivos são dotados de uma tecnologia DirectDriveTM, que faz conexão

estrutural MultiTrack entre LEs, blocos de memória M4K, multiplicadores embarcados,

e pinos de dispositivos I/O. O Quartus II oferece melhoria de desempenho e utilização

em todas as rotas do dispositivo. Até quatro PLL’s, com uma seleção dinâmica da

origem de clock; habilitado e desabilitado, também dinâmicos.

Nos modelos menores existem apenas os pinos DPCLK, e nos modelos maiores

do Cyclone II, como EP2C15, existem os pinos CDPCLK, que passam por um

multiplexador antes de chegarem no bloco de controle, como mostrado na figura 3.9; Já

os DPCLK [] vão direto para o bloco de controle.

A rede global de clock permite enviar sinais para o máximo de recursos que o

FPGA pode gerenciar sem exceder seu limite de dissipação de energia (fan-out), ou

seja, praticamente todos os recursos podem ter esse sinal como uma entrada. Das fontes

mencionadas, apenas dois pinos de relógio, duas saídas de relógio PLL, um pino

DPCLK, e um sinal gerado internamente são escolhidos para dirigir em um bloco de

controle do relógio. Figura 3.10 mostra um diagrama mais detalhado do bloco de

controle do relógio.

Page 41: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

28

Figura 3.9 - EP2C15 & Maior PLL, CLK[ ], DPCLK[ ] & Locais dos blocos de controle.

Figura 3.10 – Bloco de controle de Clock.

Os blocos de multiplicadores embarcados desenvolvidos para funções de

multiplicadores intensos no Processamento de Sinais Digitais (DSP), como FIR (Finite

Impulse Response), FFT (Fast Fourier Transform) e DCT (Discrete Cosine Transform);

Trabalha como um multiplicador de 18 bits e mais de dois multiplicadores

independentes de 9 bits. Desempenho esperado de 250 MHz.

IOEs (Estruturas de Entrada e Saída) do Cyclone II contêm um buffer I/O

bidirecional e três registradores para completar a taxa de transferência embarcada

Page 42: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

29

bidirecional de dados único. Figura 3.11 mostra o Cyclone II estrutura da OIE. A OIE

contém um registro de entrada, um registro de saída e uma saída permitem registrar.

Pode-se usar os registros de entrada para os tempos de instalação fácil e registros de

saída de clock rápido para tempos de saída. Além disso, pode-se usar a saída de enable

(OE) para registrar relógio rápido de saída de permitir sincronismo. O software de

Quartus II duplica automaticamente um registro OE único que controla a saída de vários

ou pinos bidirecional. Existe a possibilidade de usar IOE’s como entrada, saída ou pinos

bidirecionais.

Figura 3.11 – Estrutura Cyclone II IOE

Tabela 3.2 – Configuração e Teste.

Page 43: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

30

O FPGA possui circuitos JTAG BST que satisfazem os padrões da IEEE

(1149.1);Os dispositivos de JTAG também monitoram a operação da lógica, aceitando

vários comandos JTAG; Também aceita AS e PS. A placa que contém o FPGA pode ser

removida durante o funcionamento do resto do barramento, sem causar efeitos

indesejados, possuem suporte para qualquer seqüência de ativação de dispositivos e sem

ruídos no barramento durante a inserção da placa.

3.5 COMENTÁRIOS FINAIS

Existem inúmeras aplicações onde é melhor utilizar uma lógica dedicada

(ASIC), lógica configurável (DLP, CPLD, FPGA) ou lugares onde a melhor opção é

utilizar software. Existem razões válidas para qualquer uma destas escolhas e deve-se

estar atento às necessidades de uma aplicação em particular. No caso deste projeto

decidiu-se usar FPGA pela sua imensa versatilidade e possíveis futuras melhorias.

Enquanto o software e o hardware continuam a se expandir e integrar-se, nós devemos

acompanhar o processo e estar dispostos a aprender coisas novas.

Page 44: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

CAPÍTULO 4

ESPERIMENTOS E RESULTADOS

Neste capítulo na Seção 4.1 será mostrado uma descrição da planta de teste

utilizada no projeto: estrutura física, interface, desenhos, diagramas; os ensaios para

identificação da planta na Seção 4.2; na Seção 4.3 apresentar-se-á controlador PID,

mostrando os resultados e comparações; finalmente na Seção 4.4 os testes com o FPGA

e Seção 4.5 Comentários finais.

4.1 DESCRIÇÃO DA PLANTA

A planta é constituída de uma base com haste de alumínio oca curvada fixada à

base, uma haste de alumínio oca com motor e hélice parafusados numa das pontas,

potenciômetro para medição do ângulo de rotação, enrolamentos e conexões com

parafusos como se pode observar na figura 4.1.

Figura 4.1 – Planta real do projeto.

Page 45: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

32

Os circuitos de acionamento e conversão analógico-digital (AD) apresentados na

Figura 4.2 enviam o sinal para controle por PWM (Figura 4.3) do motor, e recebem os

dados da posição angular da haste girante através das leituras do potenciômetro,

enviando-os para o FPGA. Os projetos das placas de conversão e controle de circuitos

impressos foram feitos segundo a Figura 4.5 Uma fonte DC alimenta o circuito de

acionamento com 12 Volts e outra fonte DC de 5 Volts alimenta o circuito de conversão

AD como mostrado na figura 4.4.

Figura 4.2 – Circuito de acionamento e conversão.

Figura 4.3 – PWM exibido no Osciloscópio.

Page 46: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

33

Utilizou-se uma placa da National Instruments (figura 4.6) para coletar os dados

e exibir na tela através da interface Simulink do MATLAB. No Simulink foi criado uma

lógica de blocos (figura 4.7) para exibição dos dados coletados da placa da National.

Figura 4.4 – Fontes de alimentação DC.

A placa possui espaços para dois motores sendo outro para aplicações futuras

para melhorar a linearidade da planta.

Figura 4.5 – Projeto da placa de circuito impresso.

Page 47: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

34

Figura 4.6 – Placa da National Instruments para coletar dados.

As leituras do Simulink são salvas em um arquivo “.mat” e podem ser

visualizadas utilizando o “Scope” ou plotando os dados colhidos.

Figura 4.7 – Lógica de blocos Simulink.

Page 48: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

35

Os bloco maior na esquerda “nidaq” é de onde recebe-se o sinal da placa e este

sinal é tratado pelos blocos seguintes para organizar os bits, ou seja, fazer a

transformação dos binários em decimal e depois plotar na tela.

Sabe-se que a planta é não linear, portanto para linearizá-la limitou-se o seu

ângulo de operação, que proporcionou uma aferição do potenciômetro equivalente a 100

decimal (os valores do ângulo são medidos entre 0 e 255 devido à saída de 8 bits do

ADC0808). Estes 100 equivalem a um ângulo de aproximadamente 45º, limite em que a

planta pode ser controlada. Caso tente controlar em um ângulo acima de 45º (ou 100) o

sistema se torna não linear, então o controle irá falhar.

4.2 ENSAIOS PARA IDENTIFICAÇÃO

A identificação da planta foi feita segundo [AGUIRRE, 2001]. Como a planta é

do tipo segunda ordem subamortecido, um possível modelo para afunção de

transferência é do tipo equação 4.1.a Tem-se que a partir da resposta ao degrau da

planta Figura 4.8 (página seguinte) o valor de ciclos visíveis é 3 então fator de

amortecimento ζ é igual a 0,2 dado pela equação 4.1.b [AGUIRRE, 2001].

2

2

n

2n. n

K.ws 2 w s w+ ζ + (4.1.a)

0,60,2

3ζ = = (4.1.b)

Para achar a freqüência natural wn pega-se uma média do período e utilizando a

formula de wn como o equacionamento 4.2 [AGUIRRE, 2001].

n

6,9T 2,3s

32

w 2,74rad / sT

= =

= =π

(4.2)

Para encontrar o ganho K, utiliza-se o equacionamento 4.3 [AGUIRRE, 2001].

Page 49: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

36

y( ) y(0 ) 69 0K 0,46

A 150

−∞ − −= = = (4.3)

Agora substituindo os valores de K, ζ, e wn encontrados, temos a seguinte função

da planta identificada em 4.4.

2

3, 458Gp(s)

s 1,097s 7,516=

+ + (4.4)

Figura 4.8 – resposta ao degrau da planta real.

4.3 ENSAIOS PID

Para o controlador PID tentou-se utilizar o método de Ziegler-Nichols, porém

não foi possível a sua implementação, pois para obtermos o Kcr o sistema deveria ser

marginalente estável. Para obter o sistema marginalmente estável a partir do sistema

controlado com a planta Gp de segunda ordem identificada, terá que existir pelo menos

dois pólos diferentes em cima do eixo imaginário y e não existir nenhum no SPD (semi

plano direito) [LATHI, 2007]. Segundo [ZIEGLER e NICHOLS, 1942] Ziegler-Nichols

Page 50: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

37

em seu segundo método, já que o primeiro é notório que não se adéqua, para se obter o

Kcr a função de transferência (FT) em malha fechada é controlada apenas pelo termo

proporcional como visto no capítulo 2 e ao fazer isso temos o seguinte processo

mostrado na figura 4.9.

Figura 4.9 – Diagrama 2º método Ziegler-Nichols.

Este sistema da figura 4.9 resultará na seguinte função de transferência dada pela

equação 4.5. Então para obter os pólos, o denominador deverá ser estudado.

2

Y Kp.3,458Uc s 1,097s 7,516 Kp.3,458

=+ + +

(4.5)

Sendo o denominador uma função de segunda ordem, pode-se apenas obter duas

raízes, mas para dar certo, estas raízes têm que ser puramente complexas, então,

segundo equacionamento 4.6 não é possível ter raízes complexas, mesmo variando Kp,

pois para ser puramente imaginário não poderia existir nenhuma parcela real, logo este

método não é aplicável para esta planta.

2

12

12

s 1,097s 7,516 Kp.3, 458 0

28,8605 13,832Kp 1,097s

2

28,86 13,83Kp1,097s

2 2

+ + + =

− − −= ±

−= − ±

(4.6)

Por esse motivo, teve-se que modificar o método de sintonia do controlador,

então o método escolhido foi “Alocação de pólos”. Para aplicar este método fez-se o

seguinte teste: considerando a função de transferência com o controlador em malha

fechada dado pela equação 4.7, então dividindo o numerador e o denominador por Ti,

temos a equação 4.8. Agora se escolhe uma equação do terceiro grau com raízes pra

Page 51: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

38

tornar o sistema estável. Escolhem-se então as raízes: (-2-3j), (-2+3j), e – 6. Estas raízes

satisfazem a condição de estabilidade [LATHI, 2007]. Agora se faz uma comparação

entre as duas equações de terceiro grau, mostradas na equação 4.9.

2

3 2

3,458.kp.Td.Ti.s +3,458kp.Ti.s+3,458kpTi.s +(1,097.Ti+3,458.kp.Td.Ti).s +(7,516.Ti+3,458.kp.Ti).s+3,458.kp

(4.7)

2

3 2

kp3,458.kp.Td.s +3,458kp.s+3,458

Tikp

s +(1,097+3,458.kp.Td).s +(7,516+3,458.kp).s+3,458.Ti

(4.8)

3 2

3 2

s 10s 37s 78

kps +(1,097+3,458.kp.Td).s +(7,516+3,458.kp).s+3,458.

Ti

+ + +

(4.9)

Fazendo a comparação dos índices obtém-se que Ti, Td e Kp são

respectivamente 0,378 , 0,302 e 8,5263. Para testar se a função estabiliza mesmo,

utiliza-se o seguinte código MATLAB da figura 4.10.

syms Ti td kp s Ti = 0.378; Td = 0.302; kp = 8.5263;Gp = sym('3.458/(s ^ 2 +1.097 *s + 7.516)');Gc = kp * (1+1/(Ti *s) + s * Td);aux = Gp * Gc/(1+ Gp * Gc);aux2 = factor(aux);[num, den] = numden(aux2);num2 = subs(num/Ti);den2 = subs(den/Ti);num3 = sym2poly(num2);den3 = sym2poly(den2);nova_func = tf(num3, den3)figurestep(nova_func, 'r')axis( [0 2.5 0 1.4])

Figura 4.10 – Código para testar de estabilidade.

Este código da figura 4.10 gera a função de transferência do sistema em malha

fechada (equação 4.8) e calcula sua resposta ao degrau, dados os valores das constantes

do controlador. A figura 4.11 mostra a resposta ao degrau do nosso teste de alocação de

pólos.

Page 52: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

39

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

Step Response

Time (sec)

Am

plit

ude

Figura 4.11 – Resposta ao degrau da função de teste.

Pode-se perceber que o sistema obtido esta estável e controlado através do ajuste

do PID. Agora faremos uma abordagem visando uma escolha embasada em fatores

previamente definidos.

Sendo as variáveis que se quer trabalhar: o oveshooting e o tempo de

acomodação do sistema e o pólos será feito o estudo para escolher os parâmetros

corretos para cada caso.

Para ajustar os pólos do sistema deve-se ajustar a freqüência natural wn do

sistema igual ou próxima à da planta. Obter a freqüência wn da planta (equação 4.4) foi

feito utilizando a equação 4.1.a [OGATA, 2003] que descreve a representação

matemática clássica de um sistema de segunda ordem sub-amortecido em função de wn

(freqüência natural), ζ (Csi-Fator de amortecimento), e K (ganho) onde wn é responsável

por alterações na fase e ζ na amplitude.

Então comparando as equações 4.1.a e 4.4, tem-se que wn é igual à raiz de 7,516

, ou seja, é aproximadamente igual a 2,74 rad/s. Agora o ajuste do fator de

amortecimento deve ser feito de acordo com o percentual de overshooting e o tempo de

acomodação segundo as equações 4.11 e 4.12.

21PO e

−ζπ

−ζ= (4.11)

sn

4t

w=

ζ (4.12)

Page 53: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

40

Então o PO e ts podem ser relacionados utilizando as equações 4.11 e 4.12 , e

formando-se a equação 4.13.

2

4ts.wn

41

ts.wnPO e

− = (4.13)

Pode-se perceber segundo a equação 4.1.a e do gráfico gerado por ela, mostrado

na figura 4.12 a relação de PO (percentual de overshooting) e ts (tempo de

acomodação). Os dois são diretamente proporcionais, ou seja, numa função do tipo 4.1.a

os parâmetros se comportam como mostrado na figura 4.12. Para a planta de grau dois,

PO é diretamente proporcional à ts e inversamente proporcional ao fator de

amortecimento.

0 5 10 15 20 25 30 35 40 45 500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

ts(s)

PO

Figura 4.12 – Gráfico PO versus ts para FT de segundo grau.

Para ajustar os pólos terá que ser feito uma comparação entre o denominador da

função 4.8 e uma função determinada por wn (mesmo da planta), fator de amortecimento

(escolhido conforme parâmetros para ajuste PO e ts) e o pólo real definido distante cerca

de 10 vezes distante do valor das raízes.

Page 54: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

41

Esta comparação foi feita com as equações 4.14 em que são desenvolvidos e

comparados seus índices para achar Kp, Ti, Td onde ‘p’ é o pólo definido, wn é o

mesmo da planta, e ζ é o fator de amortecimento definido.

3 2

2 2n n

kps +(1,097+3,458.kp.Td).s +(7,516+3,458.kp).s+3,458.

Ti(s 2w .s w ).(s p)

+ ζ + −

(4.14)

Esta comparação foi feita utilizando um código MATLAB para agilizar, e

mostrado na figura 4.13.

clcclearsyms kp Ti Td s wn zeta p%dadoswn=2.7415;zeta=0.7;p=-10;Gp=sym('3.458/(s^2+1.097*s+7.516)');Gc=kp*(1+1/(Ti*s)+s*Td);G=(wn^2+2*zeta*wn*s+s^2)*(s-p);G1=subs(G);G1=expand(G1);G1=collect(G1);G2=sym2poly(G1);kp=solve(7.516+3.458*kp-G2(3),kp);kp=double(kp)auxs=subs(1.097+3.458*kp*Td);Td=solve(auxs-G2(2),Td);Td=double(Td)auxs=subs(3.458*kp/Ti);Ti=solve(auxs-G2(4),Ti);Ti=double(Ti)Gp=sym('3.458/(s^2+1.097*s+7.516)');Gc=kp*(1+1/(Ti*s)+s*Td);aux=Gp*Gc/(1+Gp*Gc);aux2=factor(aux);[num,den] = numden(aux2);num2=subs(num/Ti);den2=subs(den/Ti);num3=sym2poly(num2);den3=sym2poly(den2);nova_func=tf(num3,den3)step(nova_func,'g')

Figura 4.13 – Código para comparar e obter parâmetros PID.

A FT em malha fechada controlada pelo PID não é de grau dois, pois possui dois

zeros e três pólos como mostrado na figura 4.12, então a relação entre PO e ts irá mudar.

Resolveu-se então fazer testes para ver como a resposta ao degrau se comporta, caso

Page 55: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

42

variarmos o fator de amortecimento, já que temos wn fixo, observando as variações e

PO e ts ou ζ. Para isso foi criado um código MATLAB para gerar estas curvas, como

mostrado na figura 4.13. As curvas para vários valores de ζ são mostradas na figura

4.14. Pela figura 4.14, pode-se perceber que Csi é diretamente proporcional ao

overshooting e ao tempo de acomodação.

Figura 4.14 – Resposta ao degrau para valores de Csi.

Com essa observação podemos escolher o tipo de resposta que preferir de acordo

com Csi adotado. Adotar-se-á Csi igual a 0,3 e com código figura 4.13 tem-se Ti =

0,2189 ; Td = 0,6413 ; Kp = 4,7567.

Figura 4.15 – Resposta ao degrau da planta.

Page 56: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

43

Agora para achar o período de amostragem Ts utiliza-se a reposta da planta

equação 4.4 ao degrau, temos que Ts é menor que T/5 e maior que T/10 onde T é o

período atingido como mostra a figura 4.15. Observado na figura 4.15 que T é 0,67,

então: 0,067 < Ts < 0,134 , então Ts adotado foi 0,1s.

4.4 ENSAIOS FPGA

Tendo os valores Kp, Ti, Td, Ts aplicaremos a metodologia de [JACQUOT, R.

G. 1994] para implementação do PID discretizado no FPGA. Foi elaborado um código

MATLAB para simular o PID discreto de acordo com as definições do código em

VHDL. Teve-se que discretizar a planta Gp para fazer o código, para isso utilizou-se

funções do próprio MATLAB para isso. O código está apresentado no Apêndice A.

Com o código do PID discreto pôde-se observar que os parâmetros passados no

contínuo não seriam adequados no discreto fato que foi realmente observado nos testes

reais. Então observando o formato da saída, em decimal, foi-se modelando

manualmente os parâmetros a partir dos valores primários até chegar aos valores que

assentam a curva, mostrado na figura 4.16.

0 5 10 15 20 25 30 35 40 45 500

20

40

60

80

tempo(s)

said

a (

decim

al)

0 5 10 15 20 25 30 35 40 45 500

50

100

150

tempo(s)

said

a d

o

pid

(decim

al)

Figura 4.16 – Saída discreta simulada no MATLAB.

Page 57: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

44

O código em VHDL do controlador foi desenvolvido em parceria com o

mestrando Davi Nunes. As principais modificações do projeto desenvolvido em parceria

com o mestrando foram realizadas nos blocos relacionados ao PID e ao GERADOR,

conforme estrutura mostrada na figura 4.17 retirada do software QUARTUS II de onde

trabalhamos a compilação do código PID.

VCCclk_placa INPUT

VCCeoc INPUT

VCCclk_in INPUT

VCCSW[7..0] INPUT

pwm_saidaOUTPUT

disp[7..0]OUTPUT

pwm_saida2OUTPUT

startOUTPUT

clk_outOUTPUT

potout[7..0]OUTPUT

ref _out[7..0]OUTPUT

pwm_espOUTPUT

LED_G[7..0]OUTPUT

CLOCK_IN

ENTRADA[7..0]

SAIDA[7..0]

NORMALIZA01

inst8

up counterclock

ac

lr

q[7..0]

cont2

inst1

unsigned compare

datab[]=255

dataa[7..0]ageb

reset_cont2

inst2

unsigned compare

dataa[7..0]

datab[7..0]agb

pwm_out

inst3

unsigned compare

dataa[7..0]

datab[7..0]agb

pwm_out

inst4

divisor 195 Signed IntegerParameter Value Type

clk_in clk_out

clk_placa

inst9unsigned compare

datab[]=128

dataa[7..0]aleb

START_AD

inst6

divisor 270 Signed Integer

divisor2 2500 Signed Integer

Parameter Value Type

EOC

CLOCK_IN

POT_IN[7..0]

CLOCK_OUT

START

POT_OUT[7..0]

CONVERSOR_AD

inst7

FATOR 50000000 Signed IntegerParameter Value Type

CLOCK REFERENCIA[7..0]

GERADOR

inst

ENTRADA[7..0]

asd[7..0]

asd[7..0]

REF[7..0]

POSICAO[7..0]

CLOCK_IN

CLOCK1_OUT

OUTPID[7..0]

pid001

inst16

FATOR 5000 Signed IntegerParameter Value Type

Figura 4.17 – Diagrama de blocos QUARTUS II.

Trata-se a seguir de cada bloco do diagrama acima. O bloco ConversorAD

captura: (i) as leituras do ADC0808, (ii) o bit que encerra leitura (EOC), e (iii) o clock

de entrada que será dividido conforme o bit EOC vai para nível alto. O sinal do

potenciômetro é enviado para o segundo bloco NORMALIZA01 - este bloco recebe o

sinal de EOC e a Saída do POT_OUT do bloco ConversorAD, e realiza o cálculo de

uma média das leituras do potenciômetro, jogando este valor para a saída quando EOC é

nível alto. A saída do bloco NORMALIZA01 é enviada pelos pinos do FPGA para os

LEDS do kit de desenvolvimento no qual se encontra o FPGA, e para a leitura no

MATLAB. Os blocos PID, GERADOR, clk_placa e os comparadores (reset_cont2,

START_AD e dois pwm_out) geram o PWM para controlar o motor do pêndulo de

acordo com o sinal do bloco PID. No apêndice B está o código do PID comentado.

Utilizando os valores discretos simulados: Kp=2, Ti=2 e Td=6 temos o controle

obtido pela figura 4.17. Então no teste real a curva obtida foi a mostrada na figura 4.18.

Page 58: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

45

10 20 30 40 50 60 70 80 90 100 110 1200

10

20

30

40

50

60

70

80

90

100

tempo(s)

decim

al

referência

saída

Figura 4.18 – Resposta ao degrau do controlador real.

O controle foi feito para o degrau de referência 70 decimal e pode-se perceber

que o controle funcionou similarmente à simulação feita no MATLAB. Um detalhe

muito importante é que o código VHDL trunca os valores inteiros, porém fez-se um

“IF” com intuito de arredondar estes valores e não truncá-los. Isto foi determinante para

a estabilização do erro em regime. Vale salientar que na simulação feita no MATLAB

utilizou-se a função round para fazer o arredondamento assim como no VHDL.

Outro teste feito foi com vários degraus diferentes, apresentando um bom

desempenho como mostrado na figura 4.19. Pode-se perceber que o assentamento se dá

com aproximadamente 10 segundos em cada degrau e que estes valores podem ser

reduzidos de acordo com a necessidade de se aumentar ou diminuir um ou outro

parâmetro (PO ou ts). Modificando-se estes parâmetros terá que ser realizado a sintonia

do PID para atualizar as constantes do controlador.

Outro teste foi feito dando uma perturbação na haste e apresentou o seguinte

resultado mostrado na figura 4.20. Pôde-se perceber que a primeira perturbação de

aproximadamente 45º foi assentada em cinco segundos e a segunda perturbação de 90º

foi assentada em quinze segundos aproximadamente.

Page 59: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

46

50 100 150 200 250 300 350 400 4500

10

20

30

40

50

60

70

80

90

100

tempo(s)

decim

al

Figura 4.19 – controle com variação na referência.

50 100 150 200 250 3000

20

40

60

80

100

120

140

160

180

200

tempo(s)

decim

al

Figura 4.20 – controle com perturbação da haste.

Page 60: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

47

4.5 COMENTÁRIOS FINAIS

Os resultados demonstram o ótimo resultado na resposta do controlador:

velocidade e precisão. A velocidade na recuperação de tanto nas perturbações externas

como nos degraus variados e a precisão ao alcançar o valor desejado. A precisão foi

alcançada devido a um melhor estudo do código em VHDL fazendo com que os valores

calculados inteiros fossem os mais próximos dos valores em números reais obtidos em

simulação.

Page 61: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

CAPÍTULO 5

CONCLUSÕES

5.1 CONCLUSÕES

Neste trabalho foram apresentados possíveis formas de sintonizar o PID, porém

usou-se apenas a mais viável para este determinado projeto de planta. A identificação

foi feita por apenas um método, e utilizado apenas um tipo de planta.

O trabalho foi realizado em sua grande parte em estudos e ensaios realizados no

laboratório GPAR (Grupo de Pesquisa em Automação e Robótica) da engenharia

elétrica da UFC.

O objetivo deste controlador é um pequeno grande passo para futuros

aperfeiçoamentos que podem ser feitos com o intuito de uma aplicação mais

automatizada e com fins de comercialização.

Um possível aperfeiçoamento deste trabalho pode ser feito no FPGA para que

todo o processo de identificação da planta se torne automatizado, bem como os

parâmetros do PID. Assim todo o sistema se concentrará apenas no FPGA, tornando-se

uma ferramenta bastante robusta para fins comerciais.

Para a construção deste projeto precisou-se de um estudo detalhado da

linguagem VHDL, [D’AMORE, 2005] pois suas peculiaridades fazem diferença na

obtenção de resultados. Uma dificuldade encontrada, por exemplo, foi que na

compilação os resultados são truncados e não arredondados, então se fez necessário

criar um modo de arredondar os parâmetros para obter uma maior precisão nos

resultados.

Outra dificuldade foi ajustar a parte física da planta, pois o material possuía uma

resistência de atrito que tornava a planta não linear, então foi preciso rever os

enrolamentos para deixá-los o mais livres de atrito possível.

Page 62: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

49

Há uma limitação da saída do PID, pois eles têm apenas 8 bits (255), então a

saída também tem um limite de 100 (faixa de linearidade da planta), ou seja, só controla

até a referência 100. Este pode ser um ajuste para melhorias futuras.

Apesar das dificuldades apresentadas, a implementação apresentou erro de

regime baixo (conforme pode-se observar nas Figuras 4.17 e 4.18). Este projeto servirá

de base para a implementação de outros controladores digitais no GPAR, e pode ser

utilizado como prática em disciplinas de graduação como Técnicas Avançadas de

Eletrônica Digital e Controle e Servomecanismos.

Page 63: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

50

REFERÊNCIAS BIBLIOGRÁFICAS

AGUIRRE, L. A. Introdução À Identificação de Sistemas: Técnicas Lineares e Não- Lineares Aplicadas a Sistemas Reais. 2a Edição Revista e Ampliada, 2001.

BARR, M. "Programmable Logic: What's it to Ya?," Embedded Systems

Programming, , pp. 75-84, June, 1999. CHAN ,Y. F. “Design and Implementation of Modular FPGA-Based PID Controllers”

IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, 2007. CHIEN, K.L. e HRONES, J.A. e RESWICH, I.B. On the Automatic Control of

Generalized Passive Systems, Transaction ASME, 74, 1952 COHEN, G.H. e COON, G.A. Theoretical consideration of retarded control, Trans.ASME,

Vol.75, pp. 827-834, 1953 Cyclone II - http://www.altera.com/literature/hb/cyc2/cyc2_cii5v1_01.pdf Data:

acessado em 03/04/2010a às 09:00h. D’AMORE, R. VHDL : descrição e síntese de circuitos digitais. Editora LTC., 2005. FPGA- http://www.altera.com/literature/ug/ug_cii_starter_board.pdf Data:

acessado em 03/03/2010b às 09:00h. GOMES, R. C. “IMPLEMENTATION AUTO-TUNING CONTROLLER USING

FPGA AND NIOS II PROCESSOR”, IX Simpósio Brasileiro de Automação Inteligente – SBAI, 2009.

História dos programadores lógicos em: http://www.controllerbrasil.com.br/programadores-

lógicos. Data: 05/06/2010 ás 13:00h. JACQUOT, R. G. “Modern digital Control Systems” 2nd ed., 1994. LATHI, B.P. Sinais e Sistemas Lineares; tradução Gustavo Guimarães Parma – 2ªed.

Bookman., 2007. MOORE, G. E. “Technical Digest International Electron Devices Meeting”, 1995. NASCIMENTO, C. L. J. e YONEYAMA, T. Inteligência Artificial em Controle e

Automação, pela Editora Edgard Blücher, 2000. OGATA, K. Engenharia de controle moderno tradução Paulo Álvaro Maya; 4ªed.

Prentice Hall, 2003.

Page 64: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

51

RICHARD, C. D. e ROBERT, H. B. Sistemas de Controle Modernos 8ed., 2001. TOCCI, R. J. e WIDMER, N. S. “Sistemas Digitais: Princípios e aplicações,

Pearson Prentice Hall, 2003.

WITTENMARK, B. e ÅSTRÖM , J. “Computer Control: An Overview”, 2003. WOLF, W. Computers as Components: Principles of Embedded Computing System

Design. San Francisco, CA: Morgan Kaufmann, 2001. Xilinx - http://www.xilinx.com/support/documentation/data_sheets/ds160.pdf acessado em

20/05/2010 às 20:00h.

ZIEGLER, J. G. e NICHOLS, N. B. “Optimum settings for automatic controllers”, ASME, 1942.

ZELENOVSKY, R. e MENDONÇA, A. “PC: Um Guia Prático de Hardware e

interfaceamento” 3ªed., 2002.

Page 65: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

52

APÊNDICE A

CÓDIGO DA SIMULAÇÃO DO CONTROLADOR

clcclearsyms Ti Td Kp Ts tUK=0;UK2=0;y=0;E1=0;E2=0;E3=0;Ti=2;Td=6;Kp=2;Ki=Kp*10/Ti;Kd=Kp*Td/10;Ts=0.1;ALFA=(Kp + (Ki*Ts/2) + (Kd/Ts));BETA=( (Ki*Ts/2) - Kp - (2*Kd/Ts) );GAMA=( Kd/Ts ); Uc=ones(1,500)*70;f=tf(3.458,[ 1 1.097 7.516]);Gp=c2d(f,Ts);[numGp, denGp]=tfdata(Gp,'v');a1=numGp(2);a0=numGp(3);b2=denGp(1);b1=denGp(2);b0=denGp(3);ut1=0;ut2=0;yt1=0;yt2=0;for x=1:500t(x)= double(x/10);y=a1/b2*(ut1)+a0/b2*(ut2)-b1/b2*(yt1)-b0/b2*(yt2);E1=(Uc(x)-y);err(x)=E1; UK=(UK2*100 + 10*ALFA*E1 + 10*BETA*E2 + 10*GAMA*E3); uk(x)=UK;

E3=E2; E2=E1; UK2=round(UK/100); ut2=ut1;yt2=yt1;yt1=y; pid(x)=round(UK/100); if UK/100 > 255 pid(x)=255; end if UK/100 < 1 pid(x)=1; end ut1=pid(x); saida(x)=y;endsubplot(2,1,1)stem(t,saida,'r')subplot(2,1,2)stem(t,pid)

Figura A.1 – Código PID discreto.

Page 66: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

53

Figura A.2 – Ilustração do software QUARTUS® II.

Page 67: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

54

APÊNDICE B

CÓDIGO VHDL DO CONTROLADOR

ENTITY pid001 IS

GENERIC ( FATOR : INTEGER :=5000000); --TAXA DE AMOSTRAGEM DO PID BASEADO NO

--EOC DO AD.

PORT (

REF : IN INTEGER RANGE 0 TO 255; --referência do gerador (degaus)

POSICAO : IN INTEGER RANGE 0 TO 255; -- posição da haste (saída do bloco

-- NORMALIZA01)

CLOCK_IN : IN BIT; -- clock de entrada 50MHz

CLOCK1_OUT : BUFFER BIT; -- clock de saída

OUTPID : OUT INTEGER RANGE 0 TO 255 :=0 -- saída do PID

);

END pid001;

ARCHITECTURE PID OF pid001 IS

SHARED VARIABLE ACUMULADOR : INTEGER RANGE -500 TO 500:=0;

CONSTANT ALFA : INTEGER:=145; -- contantes do processo definidas.

CONSTANT BETA : INTEGER:=-255;-- multiplicadas por 10

CONSTANT GAMA : INTEGER:=120;

BEGIN

--////////////////////////////////////////////////////////////////////////////////////////////

--Divisor de clock

--////////////////////////////////////////////////////////////////////////////////////////////

DIVISOR : PROCESS( CLOCK_IN ) --

DIVIDE O CLOCK DE ENTRADA POR UM FATOR

VARIABLE AUX : INTEGER RANGE 0 TO FATOR := 0;

BEGIN

IF(AUX = FATOR)THEN

AUX := 0;

CLOCK1_OUT <= '1';

Page 68: PROJETO, IMPLEMENTAÇÃO E ENSAIOS DE UM … SALES BEZERRA.pdf · ângulo da haste para o formato digital. Detalhes sobre o projeto, a planta, o interfaceamento com o ... y(t) Saída

55

ELSIF( (CLOCK_IN'EVENT) AND (CLOCK_IN = '1') )THEN

AUX := AUX + 1;

IF (AUX = FATOR/2) THEN

CLOCK1_OUT <= '0';

END IF;

END IF;

END PROCESS DIVISOR;

--////////////////////////////////////////////////////////////////////////////////////////////

--Processo de Controle PID

--////////////////////////////////////////////////////////////////////////////////////////////

CONTROLE : PROCESS (CLOCK1_OUT)

VARIABLE E1 : INTEGER RANGE -500 TO 500:=0;

VARIABLE E2 : INTEGER RANGE -500 TO 500:=0;

VARIABLE E3 : INTEGER RANGE -500 TO 500:=0;

VARIABLE UK : INTEGER RANGE -250000 TO 255000:=0;

VARIABLE UK2 : INTEGER RANGE -255 TO 500:=0;

BEGIN

IF ((CLOCK1_OUT'EVENT) AND (CLOCK1_OUT = '1')) THEN

E1:=(REF-POSICAO);

UK:=((UK2*100) + (ALFA*E1) + (BETA*E2) + (GAMA*E3)); -- PID discreto

UK2:=(UK/100); -- instante anterior do PID.

IF (UK-100*UK2)>50 THEN -- IF para fazer arredondamento e não truncar.

UK2:=UK2+1; -- (essencial para manter um erro mínimo)

END IF;

E3:=E2; -- erro (k-2) recebe erro instante anterior (k-1)

E2:=E1; -- erro anterior recebe erro atual

ACUMULADOR:=(UK2); -- saída para o PID

IF (ACUMULADOR>255) THEN -- limitação da saída do PID em 255 (8bits).

ACUMULADOR:=255;

END IF;

IF (ACUMULADOR<0) THEN -- limita valor mínimo em 1.

ACUMULADOR:=1;

END IF;

OUTPID<=ACUMULADOR; -- saída para o pino de saída do bloco PID

END IF;

END PROCESS CONTROLE;

END PID;