120
ALDO ZANELLA JUNIOR EXPERIMENTAÇÕES PRÁTICAS E SIMULADAS DE CONTROLE PREDITIVO GENERALIZADO - GPC Dissertação apresentada ao Curso de Mestrado Acadêmico em Engenharia Elétrica como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica. Orientador: Dr. Antonio da Silva Silveira Co-orientador: Dr. Ademir Nied JOINVILLE, SC 2015

ALDO ZANELLA JUNIOR EXPERIMENTAÇÕES PRÁTICAS E …tede.udesc.br/bitstream/tede/1785/1/Aldo Zanella Junior.pdf · 2017-07-12 · ALDO ZANELLA JUNIOR EXPERIMENTAÇÕES PRÁTICAS

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

ALDO ZANELLA JUNIOR

EXPERIMENTAÇÕES PRÁTICAS E SIMULADAS DE CONTROLE PREDITIVO GENERALIZADO - GPC

Dissertação apresentada ao Curso de Mestrado Acadêmico em Engenharia Elétrica como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica. Orientador: Dr. Antonio da Silva Silveira Co-orientador: Dr. Ademir Nied

JOINVILLE, SC 2015

Z28e Zanella Júnior, Aldo

Experimentações práticas e simuladas de controle preditivo generalizado – GPC /

Aldo Zanella Júnior. – 2015.

119 p. : il. ; 21 cm

Orientador: Antonio da Silva Silveira

Coorientador: Ademir Nied

Bibliografia: 91- 95 p.

Dissertação (mestrado) – Universidade do Estado de Santa Catarina, Centro de

Ciências Tecnológicas, Programa de Pós-Graduação em Engenharia Elétrica,

Joinville, 2015.

1. Controle digital. 2. Controle preditivo. 3. GPC. 4. Controle estocástico. 5.

Controle auto-ajustável . I. Silveira, Antonio da Silva. II. Nied, Ademir. III.

Universidade do Estado de Santa Catarina. Programa de Pós-Graduação em

Engenharia Elétrica. IV. Título.

CDD 629.8 – 23. ed.

Dedico este trabalho a todos que contribuíram direta ou indiretamente para sua conclusão, em especial aos amigos que escutaram e riram de minhas lamúrias, à minha mulher e filha que sempre me apoiaram e aos meus orientadores que sempre me convenceram a acreditar em mim mesmo.

AGRADECIMENTOS

Agradeço aos meus colegas de trabalho, amigos e demais colaboradores deste trabalho.

Agradeço aos professores da UDESC, em especial aos meus orientadores e professores do Mestrado Acadêmico.

Agradeço aos meus amigos Jussete e Marlon pelo apoio incondicional.

Agradeço especialmente à minha mulher Isabel e minha filha Sara pela dedicação e amor recebidos.

Agradeço a Deus pela perseverança e oportunidade de avançar em meus estudos.

RESUMO ZANELLA Junior, Aldo. Experimentações Práticas e Simuladas de Controle Preditivo Generalizado - GPC. 2015. 119 f. Dissertação (Mestrado Acadêmico em Engenharia Elétrica – Área: Controle e Instrumentação) – Universidade do Estado de Santa Catarina. Programa de Pós-Graduação em Engenharia Elétrica, Joinville, 2015. Esta dissertação traz o relato do estudo realizado a fim de avaliar a aplicabilidade do controlador preditivo generalizado (GPC) em plantas diversas. O objetivo principal é analisar o desempenho do GPC em processos com diferentes características, analisando a influência dos seus parâmetros de sintonia. O estudo se justifica pelo fato de que o GPC apresenta-se como uma solução generalizada para diversos tipos de processos, os quais estão se tornando cada vez mais complexos e com maiores exigências para o controlador. A fim de comprovar essa proposta do GPC, realizou-se inúmeros ensaios com plantas com respostas e ordem diferentes, reais e simuladas, variando-se os parâmetros de sintonia do controlador e medindo-se alguns parâmetros de qualidade. Avaliou-se a influência dos parâmetros de sintonia e fez-se um relato das conclusões a que se chegou. Através dos resultados obtidos, mostra-se que o GPC corresponde ao que se propõe para as plantas testadas e apresenta resultados favoráveis. Palavras-chave: Controle digital. Controle preditivo. GPC. Controle estocástico. Controle auto-ajustável.

ABSTRACT ZANELLA Junior, Aldo. Practical and Simulated Experimentations of Generalized Predictive Control - GPC. 2015. 119 f. Dissertação (Mestrado Acadêmico em Engenharia Elétrica – Área: Controle e Instrumentação) – Universidade do Estado de Santa Catarina. Programa de Pós-Graduação em Engenharia Elétrica, Joinville, 2015. This work introduces the report of performed studies in order to evaluate the applicability of generalized predictive control (GPC) to several plants. The main goal is to analyze the GPC performance in processes with different features, analyzing the influence of its tuning parameters. The study is justified by the fact that GPC presents itself as a generalized solution for several classes of processes, which are becoming increasingly complex and demanding for traditional controllers to handle. For the purpose to prove this proposal of GPC, it was performed several tests with plants of different orders and response characteristics, real and simulated, varying controller tuning parameters and measuring some quality indices. It was evaluated the influence of tuning parameters and it was made a report of conclusions that was reached. Through obtained results, it is shown that GPC satisfies the proposal and presents favorable results. Key-words: Digital control. Predictive control. GPC. Stochastic control. Self-tuning control.

LISTA DE FIGURAS Figura 1 - Diagrama de um sistema adaptativo ............. 16

Figura 2 - Fluxograma do algoritmo desenvolvido ......... 42

Figura 3 - Circuito RC de segunda ordem ..................... 43

Figura 4 - Resposta ao degrau do circuito RC ............... 45

Figura 5 - Sinais do circuito RC de segunda ordem com

N1 = 1, N2 = 10, NU = 3 e � = 5,0 ................ 47

Figura 6 - Sinais do circuito RC de segunda ordem com

N1 = 1, N2 = 50, NU = 3 e � = 5,0 ................ 48

Figura 7 - Sinais do circuito RC de segunda ordem com

N1 = 1, N2 = 10, NU = 3 e � = 2,0 ................ 49

Figura 8 - Fluxograma do algoritmo desenvolvido com

inclusão do estimador MQR ....................... 50

Figura 9 - Sinais do circuito RC de segunda ordem com

N1 = 1, N2 = 10, NU = 3, � = 0,1 e MQR ...... 51

Figura 10 - Sinais do circuito RC de segunda ordem com

N1 = 1, N2 = 10, NU = 3, � = 2,0 e MQR ...... 52

Figura 11 - Visão geral da planta Festo® MPS-PA ....... 53

Figura 12 - Detalhamento da bomba centrífuga e do

sensor de vazão ......................................... 54

Figura 13 - Resposta ao degrau do sistema de vazão .. 55

Figura 14 - Sinais do sistema de vazão com N1 = 1, N2 =

40, NU = 2 e � = 1,0 .................................... 57

Figura 15 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 1,0 .................................... 58

Figura 16 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 0,1 .................................... 59

Figura 17 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 5,0 .................................... 60

Figura 18 - Detalhamento do sensor de nível ............... 61

Figura 19 - Sinais do sistema de nível com N1 = 1, N2 =

100, NU = 10 e � = 1,0 ................................ 65

Figura 20 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 1,0 .................................. 66

Figura 21 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 0,1 .................................. 67

Figura 22 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 5,0 .................................. 68

Figura 23 - Resposta ao degrau do PAM ...................... 69

Figura 24 - Sinais do PAM com N1 = 1, N2 = 20, NU = 5 e

� = 1,0 ........................................................ 70

Figura 25 - Sinais do PAM com N1 = 1, N2 = 40, NU = 5 e

� = 1,0 ........................................................ 72

Figura 26 - Sinais do PAM com N1 = 1, N2 = 20, NU = 5 e

� = 0,1 ........................................................ 73

Figura 27 - Sinais da planta de fase não mínima com N1

= 1, N2 = 20, NU = 5 e � = 1,0 ..................... 76

Figura 28 - Sinais da planta de fase não mínima com N1

= 1, N2 = 10, NU = 7 e � = 1,0 ..................... 77

Figura 29 - Sinais da planta de fase não mínima com N1

= 1, N2 = 60, NU = 7 e � = 1,0 ..................... 78

Figura 30 - Sinais da planta de fase não mínima com N1

= 1, N2 = 60, NU = 7 e � = 0,1 ..................... 79

Figura 31 - Resposta ao degrau do CSTR .................... 81

Figura 32 - Sinais do CSTR com N1 = 1, N2 = 50, NU = 20

e � = 1,0 ..................................................... 82

Figura 33 - Sinais do CSTR com N1 = 1, N2 = 20, NU = 10

e � = 1,0 ..................................................... 82

Figura 34 - Sinais do CSTR com N1 = 1, N2 = 20, NU =

10, � = 1,0 e perturbações em 1,5 e 2,5 s .. 83

LISTA DE TABELAS Tabela 1 - Resultados do circuito RC de segunda ordem

variando-se NU .............................................. 46

Tabela 2 - Resultados do circuito RC de segunda ordem

variando-se N2 .............................................. 47

Tabela 3 - Resultados do circuito RC de segunda ordem

variando-se � ................................................ 49

Tabela 4 - Resultados do controle de vazão variando-se

NU ................................................................. 56

Tabela 5 - Resultados do controle de vazão variando-se

N2 .................................................................. 57

Tabela 6 - Resultados do controle de vazão variando-se

� .................................................................... 59

Tabela 7 - Resultados do controle de nível variando-se

NU ................................................................. 64

Tabela 8 - Resultados do controle de nível variando-se

N2 .................................................................. 65

Tabela 9 - Resultados do controle de nível variando-se �

...................................................................... 67

Tabela 10 - Resultados do PAM variando-se NU ........... 70

Tabela 11 - Resultados do PAM variando-se N2 ........... 71

Tabela 12 - Resultados do PAM variando-se � ............. 73

Tabela 13 - Resultados do sistema de fase não mínima

variando-se NU .............................................. 75

Tabela 14 - Resultados do sistema de fase não mínima

variando-se N2 .............................................. 77

Tabela 15 - Resultados do sistema de fase não mínima

variando-se � ................................................ 78

LISTA DE SÍMBOLOS E SIGLAS MPC Model Predictive Control GPC Generalized Predictive Control PID Proporcional Integral Derivativo MQR Mínimos Quadrados Recursivos DMC Dynamic Matrix Control y Saída da planta k Instante de tempo discreto i, j Índices numéricos inteiros ∆ Operador de diferença de tempo discreto u Sinal de entrada (controle) ŷ Saída predita f Vetor de informações conhecidas da planta ym Saída medida da planta N2 Horizonte máximo de predição do GPC NU Horizonte de controle do GPC G, G1 Matrizes de controle gi Coeficientes das matrizes de controle Ŷ Vetor de saídas preditas U Vetor de ações de controle J Função custo w Vetor de referências futuras λ Fator de ponderação de sinal de controle MIMO

Multiple Inputs Multiple Outputs GMV

Generalized Minimum Variance CARIMA Controlled Autoregressive Integrated Moving

Average A, B, C Polinômios dos modelos de plantas z-1 Operador de atraso de tempo discreto

d Atraso de transporte discreto da planta ξ Sinal de ruído gaussiano a, b, c Coeficientes dos polinômios A, B e C na, nb, nc Ordem dos polinômios A, B e C

E, F Polinômios para resolução da Equação de Diophantine

N1 Horizonte mínimo de predição do GPC Ã Polinômio A estendido R, S Polinômios E e F atrasados uma amostra R� Diferença entre R e E ri, si, fi Coeficientes dos polinômios R, S e F e Valor ou vetor de erro entre a saída e a

referência SISO

Single Input Single Output ε Operador esperança matemática U� Vetor de degraus de ações de controle In Matriz identidade de ordem "n" K Matriz de ganho de realimentação do GPC Varerro Variância média do erro da saída da planta SS Sobressinal tsubida Tempo de subida nit Número de iterações RC Resistivo-capacitivo PWM Pulse Width Modulation ZOH Zero-order Hold s Operador de Laplace ∆V/∆t Taxa de subida PAM Pêndulo Amortecido CSTR Continually Stirred Tank Reactor x1, x2 Estados físicos do CSTR TS Período de amostragem Da Número de Damköhler γ Energia de ativação do CSTR BR Calor de reação do CSTR β Coeficiente de transferência de calor do

CSTR LQG Linear Quadratic Gaussian

SUMÁRIO 1 INTRODUÇÃO .................................................... 14 1.1 JUSTIFICATIVA .................................................. 18 1.2 OBJETIVOS ........................................................ 18 1.3 MATERIAIS E MÉTODOS .................................. 19 1.4 ORGANIZAÇÃO DO TRABALHO ....................... 20 2 CONTROLE PREDITIVO .................................... 21 3 O CONTROLADOR GPC ................................... 26 3.1 ESTRUTURA BÁSICA DE UM CONTROLADOR

GPC .................................................................... 27 3.2 A EQUAÇÃO DE DIOPHANTINE DO GPC ........ 29 3.3 A LEI DE CONTROLE PREDITIVA .................... 33 3.4 ESCOLHA DOS HORIZONTES .......................... 38 4 RESULTADOS PRÁTICOS ................................ 41 4.1 CIRCUITO RC DE SEGUNDA ORDEM .............. 43 4.2 CONTROLE DE VAZÃO ..................................... 52 4.3 CONTROLE DE NÍVEL ....................................... 60 4.4 PÊNDULO AMORTECIDO ................................. 68 4.5 SISTEMA INSTÁVEL DE FASE NÃO MÍNIMA ... 74 4.6 SISTEMA NÃO LINEAR CSTR ........................... 79 5 RESULTADOS E DISCUSSÕES ....................... 84 6 CONCLUSÃO ..................................................... 88

REFERÊNCIAS .................................................. 91 APÊNDICE A - ALGORITMO DE CONTROLE DO CIRCUITO RC .................................................... 96 APÊNDICE B - ALGORITMO DE IDENTIFICAÇÃO APLICADO AO CIRCUITO RC .......................................................................... 100 APÊNDICE C - ALGORITMO DE CONTROLE DO CIRCUITO RC COM IDENTIFICAÇÃO POR MQR .......................................................................... 101 APÊNDICE D - ALGORITMO DE CONTROLE DO PROCESSO DE VAZÃO DA PLANTA FESTO® .......................................................................... 106

APÊNDICE E - ALGORITMO DE CONTROLE DO CSTR ................................................................ 110 ANEXO A - ROTINA DE COMANDOS DE LEITURA E ESCRITA DO MÓDULO ARDUINO ......................................................................... 115 ANEXO B - ROTINA DE INICIALIZAÇÃO DA INTERFACE COM PLANTA FESTO ............... 116 ANEXO C - ROTINAS DE LEITURA E ESCRITA DE GRANDEZAS DA PLANTA FESTO .......... 119

���

1 INTRODUÇÃO

A área de controle de processos teve sua importância ressaltada a partir da década de setenta principalmente com a expansão da industrialização e o advento da eletrônica de baixo custo. Clarke (1988, p. 49) ressalta a importância dos microprocessadores na ampliação de uso de novas técnicas de controle.

A década de 90 e a virada do milênio trouxeram um novo sentido à teoria de controle com a popularização da informática e a disponibilidade de controladores e processadores de alto desempenho, que trouxe o controle digital como foco de projetistas.

Åstrom et al (1977, p. 471) destacam esta inovação para o projeto de controladores na década de 70, mas, como justificam Yamamoto, Inoue e Shah (1999, p. 125), o rápido progresso dos computadores trouxe muitas propostas de controle que permitem operações numéricas consideravelmente grandes, a fim de melhorar o desempenho dos controladores.

Dentre as várias teorias de controle e técnicas de projeto que foram desenvolvidas nas últimas décadas, destaca-se o controle preditivo, que consiste em determinar uma lei de controle baseada nos sinais conhecidos da planta e nos sinais futuros ainda não disponíveis, utilizando métodos de predição.

A chamada família dos controladores preditivos baseados em modelo (MPC, do inglês Model Predictive

Control) engloba um conjunto de técnicas de controle com características comuns, originalmente desenvolvida para plantas de sistemas de potência e da indústria petroquímica. Atualmente, porém, os MPCs podem ser encontrados em plantas da indústria química, processamento de alimentos, automotiva, metalúrgicas,

���

papel e celulose, entre outras (Qin; Badgwell, 2003, p. 733).

As técnicas mais comuns de controladores preditivos geralmente são propostas para atender a necessidades específicas, de forma que não podem ser consideradas de aplicação geral.

O controlador preditivo generalizado (GPC, do inglês Generalized Predictive Control) proposto por Clarke, Mohtadi e Tuffs (1987a), traz como principal diferencial a capacidade de ser adaptado para plantas com diferentes características, tais como as plantas não-lineares, instáveis, de fase não-mínima, de ordem elevada e com atraso de transporte.

Os estudos realizados por Clarke (1988, p. 49), Clarke e Mohtadi (1989, p. 873), Ho et al. (1999, pp. 43-44), Huang, Tan e Lee (1999, p. 363) e Neshasteriz, Sedigh e Sadjadian (2010, p. 63) reforçam a grande variedade de plantas com características diferenciadas que podem ser controladas com um GPC.

De uma forma geral, o GPC tem a característica de predizer mudanças futuras nas variáveis controladas usando o conhecimento atual que possui da planta e a resposta a futuras ações ótimas de controle (Clarke, 1988, p. 49). Essas ações futuras de controle são determinadas a partir da minimização de uma função de custo baseada nos erros futuros e entradas de controle passadas (Zhang et al., 2013, p. 321).

Tradicionalmente os controladores de processos são baseados unicamente na dinâmica conhecida da planta a ser controlada, representada por um modelo paramétrico. Assim, o objetivo do controlador é modificar o comportamento da planta de forma que suas características atendam aos requisitos de desempenho exigidos, como tempo de resposta, sobressinal e frequência de oscilação.

���

Dentre os controladores tradicionais, o mais conhecido é o Proporcional Integral Derivativo (PID), formado pela combinação dessas ações, as quais são associados parâmetros de sintonia que definem a influência de cada ação. Esta técnica permite que uma planta com modelo matemático linear e invariante no tempo seja controlada com eficácia.

Porém, em processos físicos, é comum que os modelos matemáticos não sejam lineares ou os sejam apenas em uma determinada região de operação. Outrossim, estes modelos podem variar com o tempo, devido a alterações nas características da planta (por desgaste ou alterações de composição), a perturbações ou a variação dos parâmetros. Logo, controladores cuja estrutura é rígida não atenderão mais aos requisitos de desempenho, necessitando ter seus parâmetros de controle reajustados continuamente (Huang; Tan; Lee, 1999, p. 362).

Nestes casos, uma possível solução é utilizar controladores adaptativos, que possuem a característica de ter parâmetros ajustáveis e um mecanismo de ajuste desses parâmetros (Åström; Wittenmark, 2008, p. 1). Na Figura 1 apresenta-se um diagrama de blocos genérico de controladores adaptativos.

Figura 1 - Diagrama de um sistema adaptativo

Fonte: Åström; Wittenmark, 2008, p. 2

���

Os parâmetros do controlador são ajustados de acordo com uma regra pré-determinada, a partir da leitura dos sinais de entrada e saída da planta. São os chamados controladores self-tuning, que modificam seus parâmetros automaticamente a cada período de amostragem, a fim de compensar as variações ocorridas no processo ou no meio ambiente (Coelho; Coelho, 2004, p. 38).

No entanto, as técnicas de controle self-tuning que se difundiram ao longo das décadas de 1980 e 1990 foram desenvolvidas a fim de atender situações específicas, não podendo ser considerados como uma solução para aplicações gerais (Clarke; Mohtadi; Tuffs, 1987a, p. 137).

Plantas de fase não-mínima, por exemplo, podem ser controladas por um controlador self-tuning tradicional, porém se a planta apresentar tempo morto desconhecido ou variável, o controlador não atenderá aos requisitos. Da mesma forma, se a planta apresentar polos de malha aberta instáveis, o controlador pode ter dificuldade de levar a saída ao valor desejado.

Segundo Clarke, Mohtadi e Tuffs (1987a, p. 137), o GPC é capaz de controlar processos que apresentem parâmetros variantes no tempo, tempo morto variável, plantas com ordem de modelo alta ou desconhecida e ainda plantas de fase não-mínima, podendo ainda controlar plantas que apresentem duas ou mais dessas características simultaneamente. Ho et al. (1999, p. 44) explica que processos que são mais difíceis de controlar podem ser manipulados pelo GPC ao custo de um pequeno incremento computacional e pela definição adequada dos parâmetros de ajuste. Moon, Clark e Cole (2005, p. 171) reforçam que o GPC é capaz de tratar deficiências no modelamento de plantas, inclusive no tratamento de plantas instáveis.

���

Com o passar dos anos, surgiram outras estruturas de controladores que são considerados de aplicação geral, da mesma forma que o GPC.

1.1 JUSTIFICATIVA

Esse estudo justifica-se pelo fato de que os

requisitos de desempenho de plantas industriais tornam-se cada vez mais exigentes, mediante a redução dos tempos de processo, novas técnicas de tratamento de materiais, exigências quanto à qualidade dos produtos e aumento da automação nos processos. Frente a essas mudanças, os controladores devem atender a uma gama maior de processos, atendendo aos requisitos de desempenho e tratamento de perturbações.

Mediante esse contexto, propõe-se um levantamento das possibilidades de aplicação do controlador GPC, bem como as informações pertinentes ao projeto do controlador, parâmetros de sintonia e requisitos de desempenho obtidos com testes físicos e simulados.

1.2 OBJETIVOS

Diante do exposto, desenvolveu-se este estudo

cujo principal objetivo é observar o comportamento do controlador GPC no controle de plantas diversas, avaliando seu desempenho mediante diferentes características que essas plantas apresentam.

Como objetivos secundários, cita-se: desenvolver um algoritmo de controle que possa ser adaptado a diferentes aplicações, analisar o comportamento do controlador GPC com base nos seus parâmetros de sintonia e demonstrar a aplicabilidade do GPC frente às características diferenciadas de plantas diversas.

���

1.3 MATERIAIS E MÉTODOS A fim de atingir os objetivos, fez-se uma análise

detalhada da estrutura generalizada do controlador GPC, a fim de desenvolver um algoritmo o mais simples possível e que fosse capaz de controlar as plantas em questão. A análise foi baseada no texto original de Clarke, Mohtadi e Tuffs (1987a) e em outros trabalhos desenvolvidos a partir desse.

Para desenvolver o algoritmo, foi utilizado o software Matlab®, devido este apresentar vastos recursos computacionais e permitir o interfaceamento com as plantas físicas utilizadas através de dispositivos de aquisição de dados. Depois de desenvolvidas várias versões do algoritmo, com base nas diferentes possibilidades, como o uso de modelos conhecidos de planta ou identificação de modelos a partir de métodos recursivos, como o dos mínimos quadrados recursivos (MQR), realizou-se testes do algoritmo final em plantas reais e simuladas.

Durante os testes foram variados os parâmetros de sintonia do controlador, a fim de verificar o comportamento do sistema em malha fechada e a influência de cada um desses parâmetros separadamente. Inicialmente realizou-se os testes em plantas físicas a fim de avaliar o desempenho do controlador GPC, para depois realizar-se os mesmos testes em plantas simuladas.

Em alguns casos, procurou-se evidenciar alguma característica específica da planta, como em uma planta simulada não linear, em que se verificou o desempenho do GPC frente a diferentes pontos de operação da planta.

���

1.4 ORGANIZAÇÃO DO TRABALHO Para demonstrar o desempenho e apresentar os

resultados do controlador GPC frente a essas plantas com características diversas, o Capítulo 2 deste trabalho traz uma breve contextualização sobre controladores preditivos. Segue-se então no Capítulo 3 a descrição mais detalhada do controlador estudado, o GPC, com suas equações, características e método de ajuste.

No Capítulo 4 são apresentados os resultados dos testes e simulações feitas, bem como as especificidades de cada planta do ponto de vista prático. São apresentados os valores de parâmetros de teste encontrados para cada ensaio, bem como são apresentados algumas curvas de resposta, com os respectivos comentários.

O Capítulo 5 traz uma recapitulação das características do GPC e um resumo dos resultados obtidos nos diversos testes, de forma a agregar as informações e analisá-las do ponto de vista do controle, trazendo um panorama qualitativo do desempenho observado do GPC.

���

2 CONTROLE PREDITIVO

Um dos primeiros controladores preditivos foi desenvolvido no final da década de 70 e é conhecido como controlador de matriz dinâmica (DMC, do inglês dynamic matrix control), proposto por Cutler e Ramaker (1979). Até hoje o controlador DMC é utilizado em plantas com grande número de variáveis e com restrições, como na indústria petroquímica.

O DMC deu origem à família de controladores MPC, que buscam controlar o comportamento futuro de um processo a partir de um modelo explícito de planta. A cada período de amostragem é calculada uma sequência de ações de controle a fim de otimizar algum aspecto do comportamento da planta. A primeira ação de controle é aplicada à planta e as demais são recalculadas no próximo período de amostragem (Zhao et al., 2003, p. 41).

Praticamente todos os controladores MPC possuem a mesma sequência de operação: criar um banco de predições das saídas em alguns instantes futuros através de um modelo de planta, calcular uma sequência de controle que minimize a função custo e aplicar o primeiro sinal de controle calculado a cada período de amostragem à planta (Camacho; Bordons, 1999, p. 1). O que os difere é a representação do modelo de predição e a forma como o erro de predição é tratado.

Como os MPC predizem o comportamento futuro da planta, define-se o chamado horizonte de predição. O valor do horizonte define o tamanho do conjunto de predições que serão feitas sobre a planta. Quanto maior o horizonte de predição, mais informação tem-se sobre o sistema a ser controlado, porém maior será o esforço computacional a ser realizado. Segundo Clarke, Mohtadi e Tuffs (1987a, p. 139), a escolha do horizonte de

���

predição costuma ser a pedra angular do controle preditivo.

Os aspectos que levaram os controladores da família MPC a serem tão utilizados e difundidos nas últimas décadas são: incorporação do modelo de planta na computação do controle, o que permite que o controlador incorpore as características do sistema na determinação das ações de controle; característica preditiva, que considera o comportamento futuro da planta, antecipando possíveis desvios e perturbações; os dados do sistema fazem parte da dinâmica do controlador, o que garante que as restrições de controle sejam tratadas como parte do processo em malha fechada, minimizando o risco de violações (Zhao et al., 2003, p. 41).

O DMC, controlador que deu origem ao GPC, utiliza um modelo de predição não paramétrico baseado nos coeficientes da resposta ao degrau da planta, conforme Equação (1).

���� ���� ��� � ��

��� (1)

Considerando que as perturbações são constantes, os valores preditos da saída da planta serão dados pela sequência:

���� � ���� ���� ��� � � � ��

���� ��� � �� (2)

���

Na Equação (2), f(k+j) representa a resposta livre da planta, que não depende das ações de controle futuras, e é dada por:

��� � �� � ���� ��� �� � ��� � ���� � ����

��� (3)

Esta expressão considera que para algum valor finito de N2, os coeficientes gi tendem a uma constante, logo f(k+j) tende ao valor da saída medida ym, ou seja, um processo assintoticamente estável. Se isso não acontecer, f(k+j) não pode ser determinado, inviabilizando o controle. Em suma, o controlador DMC não pode ser aplicado a sistemas instáveis.

Aplicando-se as predições ao longo do horizonte de predição N2, chega-se a um conjunto de predições considerando NU ações de controle, através das quais se obtém a matriz dinâmica de controle:

� �

������ �� � � �� �� � �! ! " !

��# ��#$� � ��! ! " !

��� ���$� � � $�#��%&&&&'

(4)

O conjunto de saídas preditas pode ser descrito na forma matricial:

() � � � * � � (5)

���

O objetivo do DMC é levar a saída tão próxima quanto possível do valor de referência, manipulando as variáveis de entrada de forma a minimizar os erros futuros. Assim, as variáveis manipuladas são selecionadas para minimizar uma função custo conforme descrita pela Equação (6), que busca a minimização dos erros futuros da saída da planta (Camacho; Bordons, 1999, p. 36):

� ������� � ���� � ��� � ������

���

��� ���� � � � ������

���

(6)

A lei de controle que minimiza os erros futuros, em sua forma vetorial, é dada por:

� �!" ! � � #�$� !" �� � �� (7)

Na verdade, U representa um vetor de ações futuras de controle a partir do instante atual. Assim, apenas o primeiro elemento do vetor é aplicado à planta. No próximo período de amostragem, a saída predita é recalculada, sendo montada nova matriz dinâmica e novo vetor de ações de controle.

É possível incluir as perturbações da planta pela simples inclusão de uma matriz de perturbações idêntica à matriz G, desde que essas perturbações possam ser tratadas como entradas do sistema (Camacho; Bordons, 1999, pp. 35-36).

���

As principais aplicações do DMC estão nos sistemas de múltiplas entradas e múltiplas saídas (MIMO, do inglês Multiple Inputs Multiple Outputs) com restrições nas variáveis manipuladas (Camacho; Bordons, 1999, p. 36). A aplicação do primeiro elemento do vetor U com o descarte dos demais elementos caracteriza o método conhecido como horizonte retrocedente (receding horizon), característica comum aos controladores MPC.

De uma maneira geral, a proposta de um controlador preditivo é estimar o comportamento futuro da planta em resposta a um sinal de referência conhecido, de forma a determinar um conjunto de ações de controle que garanta o rastreamento assintótico da referência.

Dessa forma, o controlador é capaz de antever possíveis desvios da trajetória do sinal de saída e corrigi-los mais rapidamente quando ocorrerem. Essa estratégia permite minimizar os erros e diminuir o tempo de resposta do sistema controlado.

���

3 O CONTROLADOR GPC O controlador preditivo generalizado, proposto por

Clarke, Mohtadi e Tuffs (1987a), é similar aos demais controladores MPC desenvolvidos na época, porém diferenciava-se daqueles por ser um método que pode ser aplicado a diversos tipos de processos, com características diversas. Hoje há outros controladores que possuem a mesma característica generalizada, mesmo assim o DMC original de Cutler e Ramaker (1979) ainda é utilizado, bem como variações deste.

O GPC é baseado no DMC de Cutler e Ramaker (1979), porém traz características do Controlador de Variância Mínima Generalizado (GMV, do inglês Generalized Minimum Variance) de Clarke e Gawthrop (1975), como a rejeição ao ruído baseada no conceito de variância mínima.

O GPC agrega a característica do método receding horizon, que prevê o cálculo da lei de controle alguns passos à frente, sendo que somente o primeiro passo será aplicado à planta e os demais descartados e recalculados no próximo período de amostragem. Como já visto, o controlador DMC, predecessor do GPC, atua apenas em sistemas estáveis em malha aberta, devido ao fato de seu modelo de predição ser baseado na resposta ao degrau. O GPC, em contrapartida, assim como o GMV, pode ser utilizado em plantas instáveis.

Neste capítulo, a estrutura generalizada de um controlador GPC será descrita de forma que se compreenda o método utilizado para predição e ajuste de parâmetros do controlador, bem como suas características inerentes.

���

3.1 ESTRUTURA BÁSICA DE UM CONTROLADOR GPC

A fim de explicar a estrutura do controlador GPC,

foi utilizado um modelo de planta auto-regressivo integral controlado de média móvel (CARIMA, do inglês Controlled Autoregressive Integrated Moving Average) (Coelho; Coelho, 2004, pp. 57), descrito por:

+�,$�� � ���� � ,$- � .�,$�� � ���� �/�,$��

�� 0��� (8)

Na Equação (8), z-1 representa o operador de

atraso de tempo discreto, d representa o atraso de transporte discreto da planta, � é o operador de

diferença no domínio discreto, por definição �� 1 � 2$�, e os polinômios A(z

-1), B(z

-1) e C(z

-1) são descritos

conforme segue:

+�,$�� � 1 � 3� � ,$� � 3 � ,

$ ��345 � ,$45 (9)

.�,$�� � 67 � 6� � ,$� � 6 � ,

$ ��648 � ,$48 (10)

/�,$�� � 1 � 9� � ,$� � 9 � ,

$ ��94: � ,$4: (11)

Como representa um sistema físico, na deve ser maior ou igual a nb. O termo �(k) representa uma sequência de ruído gaussiano, presente na maioria dos sistemas reais. Seguindo a simplificação de Clarke, Mohtadi e Tuffs (1987a), o polinômio C(z-1) foi considerado unitário.

���

A fim de estruturar o controlador GPC, utiliza-se a Equação de Diophantine, incluindo os polinômios Ej e Fj, que incorporam os elementos de projeto a serem aplicados no cálculo da lei de controle:

� � %��&$�� '�&$�� � &$� (��&

$�� (12)

Os polinômios Ej tem grau j-1 e os polinômios Fj tem grau na.

Multiplicando-se o modelo de planta pelo termo

)*�+$�� +*, aplicando-se a identidade da Equação

(12) e considerando-se o modelo CARIMA com d = 1, chega-se a Equação (13), que representa a saída da planta j passos à frente (Camacho; Bordons, 1999, p. 53):

��� � �� � (��&$�� ���� � %��&

$�� ,�&$��

��� � � � �� � %��&$�� -�� � ��

(13)

Considerando que todos os componentes do ruído encontram-se no futuro (Clarke; Mohtadi; Tuffs, 1987a, p. 139), a equação que descreve a saída predita j passos à frente é dada por:

���� � ���� � !��&$�� ��� � � � �� � (��&

$�� ���� (14)

onde:

!��&$�� � %��&

$�� ,�&$�� (15)

���

A identidade dada pela Equação (16), extraída da aplicação da Equação (15) à Equação (12), representa a resposta ao degrau da planta tomando-se os j primeiros termos.

� �,$�� �.�,$�� � ;1 � ,$ � < �,$��=

�+�,$�� (16)

A Equação (16) tem similaridade com a matriz G do controlador DMC, proposto por Cutler e Ramaker (1979). Clarke, Mohtadi e Tuffs (1987a, pp. 137-138) fazem referência aos métodos utilizados anteriormente, mais especificamente o DMC e o GMV. O GPC é claramente derivado do DMC, pois a estrutura básica é a mesma. Porém, traz do GMV a ideia de filtragem de ruído com o conceito de variância mínima, presente na própria estrutura do controlador.

Assim como no DMC, o GPC estipula um conjunto de predições para cada período de amostragem j, considerando-se um horizonte de predição, desde um instante inicial N1 até um instante máximo N2.

3.2 A EQUAÇÃO DE DIOPHANTINE DO GPC

Para implementar a predição de horizonte estendido, a cada amostra j é criado um conjunto de predições. Assim, determina-se os polinômios Ej e Fj para todo o horizonte de predição, o que pode ser bastante difícil executar em tempo real, devido ao número de operações, acarretando num alto custo computacional.

Uma forma de se implementar a predição de horizonte estendido é utilizar a Equação de Diophantine e calcular Ej e Fj de forma recursiva. Foi utilizado o

���

método de Clarke, Mohtadi e Tuffs (1987a) e descrito também por Camacho e Bordons (1999). Inicialmente definem-se as seguintes identidades a fim de facilitar a análise:

.

% � %� (17)

( � (� (18)

.

Define-se também o polinômio ' estendido: .

'/ � ' (19)

.

Aplicando-se as identidades (17) a (19) na Equação (12), chega-se a seguinte identidade:

� � % '/ � &$� ( (20)

.

Os polinômios Ej+1 e Fj+1, atrasados um período de amostragem no tempo, são dados por:

0 � %�1� (21)

2 � (�1� (22)

.

Aplicando-se as definições das Equações (19), (21) e (22) na Equação (12), chega-se a outra identidade: .

���

1 � > � +? � ,$� ��� � @ (23)

Subtraindo a Equação (23) da Equação (20), obtém-se a seguinte identidade:

� � +? � �> � A� � ,$ � �,$� � @ � <� (24)

O polinômio �B � C� tem grau j, podendo ser dividido em duas partes, um polinômio composto pelos elementos de R e E, além de um termo que é adicionado pelo deslocamento de E um passo à frente, conforme Equação (25):

> � A � >? � D � ,$ (25)

Substituindo-se (25) em (24) e ordenando-se os termos, tem-se:

� � +? � >? � ,$ � �,$� � @ � < � +? � D � (26)

Para que a identidade da Equação (26) seja verdadeira, é necessário que ambos termos sejam nulos.

Como à não pode ser nulo, define-se BE � �, o que implica que os polinômios E e R serão idênticos, apenas diferenciados pelo termo independente de ordem j. Assim, os polinômios Ej podem ser calculados recursivamente com auxílio da equação:

>�,$�� � A�,$�� � ,$ � D (27)

���

Igualando-se o segundo termo da Equação (26) a zero e isolando-se o polinômio S,obtém-se:

2 � & 3( � '/ 4�5 (28)

A fim de que a identidade em (28) seja satisfeita, considerando que à é um polinômio mônico, chega-se a seguinte igualdade:

4� � �6 (29)

.

Com base na igualdade da Equação (28), pode-se calcular os elementos dos polinômios Fj a partir de: .

7� � ��1� � 89�1� 4� (30)

Os polinômios G, que ponderam os degraus de controle, podem ser calculados também recursivamente a partir da expressão: .

!�1��&$�� � !��&$�� � 4� &$� ,�&$�� (31)

Utilizando-se a Equação de Diophantine, Equação (12), para a primeira predição, ou seja, j = 1, tem-se que:

%� � � (32)

(� � & 3� � '/5 (33)

���

�� � . (34)

A partir dos primeiros polinômios E1, F1 e G1, calculam-se os demais até o horizonte máximo N2, recursivamente, utilizando as equações (27), (30) e (31).

3.3 A LEI DE CONTROLE PREDITIVA

A lei de controle preditiva tem o objetivo de levar a

saída a ser tão próxima quanto possível do valor dado por uma sequência futura de referência w(k+j), conhecida a priori. O método utilizado para obter essa proximidade é chamado de receding horizon, como visto anteriormente. Basicamente o método consiste em quatro etapas:

• Calcula-se a sequência de referência w(k+j), que pode ser constante ou descrita como uma combinação linear a fim de se obter uma aproximação suave da saída, conforme o algoritmo proposto por Richalet et al. (1978);

• Utiliza-se o modelo de predição a fim de determinar um conjunto de saídas preditas FG�H � IJH� com os correspondentes erros de predição, conforme Equação (35);

K�� � �� � L�� � �� � �G�� � �J�� (35)

• Através da função quadrática que define os erros futuros ao longo do horizonte de predição, faz-se o cálculo de um conjunto de ações futuras pela minimização dessa função. As ações são calculadas até um determinado ponto conhecido

���

como horizonte de controle NU. Mais adiante será descrito como esse horizonte pode ser determinado;

• O primeiro elemento do conjunto de ações futuras de controle é aplicado na planta, sendo que os demais elementos ficam disponíveis e podem ser recalculados para os próximos passos do controle. A função quadrática para o caso de única entrada

e única saída (SISO, do inglês Single Input Single

Output) utilizada para determinar as ações de controle é dada pela Equação (36).

��:�; :�; :<� � =>����� � �� � ��� � ���� ������?

������ ���� � � � ���������

@

(36)

onde � representa o operador esperança matemática. Esse funcional representa a projeção de vários

GMVs no presente e no futuro, como uma simulação do comportamento do sistema j passos a frente, recalculados a cada período de amostragem. Assim, o controlador é capaz de antever um possível caminho para a saída predita, mesmo que isso não aconteça exatamente como previsto, já que as projeções futuras servem apenas como informação para a ação de controle atual, que será efetivamente aplicada à planta.

O termo �(j) representa a sequência de pesos que pondera o sinal de controle. A fim de simplificar a análise neste momento, escolheu-se �(j) = �, N1 = 1 e N2 = NU.

���

Utilizando a expressão para as saídas futuras e utilizando o atraso unitário, chega-se a:

��� � 1� � �� � ����� � <� � ���� � A� � 0�� � 1� ��� � M� � � � ���� � 1� � < � ���� � A � 0�� � M� ! ��� � N � � ��� � ���� � N � 1� � <�� � ���� � A��� 0�� � N � (37)

A saída futura y(k+j), onde j varia desde 1 até o horizonte N2, depende das ações de controle futuras, da saída atual filtrada pelo polinômio Fj e do sinal de ruído futuro filtrado pelo polinômio Ej. A parcela do ruído pode ser desconsiderada visto que as ações de controle são tratadas como em malha aberta na etapa de predição do erro. Considerando f(k+j) a parte de y(k+j) composta pelos sinais conhecidos até o instante k, tem-se:

��� � 1� � O���,$�� � ��7P � ����� � <� � ���� ��� � M� � , � O� �,$�� � ,$� � � � � � 7P � ������ < � ���� ! ��� � �� � Q� �,$�� �,$� � � � $�

��7 R � ����� � < � ���� (38)

onde: S � �,$�� � � 7 � � � � ,$� �� (39) S

���

A saída predita pode ser descrita na forma matricial: . AB � ! / � � (40) .

Onde CD , E/ e f são vetores que representam, respectivamente, os conjuntos de saídas preditas, de degraus de ações de controle futuras e dos sinais conhecidos filtrados pelos polinômios Fj. G é a matriz dinâmica do controlador, similar à matriz dinâmica do DMC.

Os primeiros j termos da matriz G, de ordem N2 x N2, são os parâmetros da resposta ao degrau da planta, e é dada por:

F � G H6 I J IH� H6 J IK K L KHM�$� HM�$� J H6N. (41).

Se o atraso da planta for maior que 1, as primeiras d-1 colunas de G serão nulas, o que resulta no aumento da ordem de G. Porém, se N1 for escolhido igual ao valor do atraso d, reduz-se a ordem de G visto que a predição é realizada a partir do horizonte de predição inicial N1.

Considerando-se a sequência de referência futura: � � ���� � �� ��� � O� J ��� � :���" (42)

A minimização da função custo, dada pela Equação (36), para valores positivos de �, em relação a �u(k), resulta no vetor de degraus de ações de controle:

���

� *? � T � �L � �� (43)

A matriz K na Equação (43) é o ganho de realimentação do GPC e é dado por:

T � ��U � � � V � W���$� � �U (44)

O primeiro elemento de X? é �u(k) = u(k) - u(k-1), que é o sinal de controle que deve ser aplicado à planta:

���� � ��� � 1� � �YU � �L � �� (45)

onde �T é a primeira linha da matriz K.

Se a referência for constante, ou seja w(k+j) = w, o integrador presente no controlador garante o perfeito rastreamento de referência em processos do tipo 0. Segundo o conceito do método receding horizon, os demais elementos do vetor � são desprezados, sendo utilizados apenas para determinação do conjunto de ações futuras com base no comportamento predito da planta.

Entretanto, essas ações de controle futuras geralmente estão muito próximas das ações de controle que serão realmente aplicadas à planta, devido ao conhecimento que o controlador tem do comportamento da planta e que leva à minimização do erro de rastreamento. O horizonte de predição tem ação direta sobre esse processo, pois quanto mais informação se tem sobre o comportamento da saída, maior será a probabilidade de que a saída real acompanhe o comportamento da saída predita e que as ações de controle futuras sejam aquelas que realmente serão aplicadas à planta.

���

Fazendo-se z = 1, é possível fazer a análise do comportamento estático da Equação de Diophantine, dada pela Equação (12), que se torna:

� � %���� '��� ��� � (���� (46)

Como �(1) = 0, então P*��� � �. Definindo-se o

polinômio: . (���&$�� � %��&$�� '�&$�� (47) .e sabendo-se que Q�R � S� � P*�+$�� T�R� é um sinal

cujo valor médio é igual ao do próprio T�R�, chega-se à igualdade:

��� � �� � (��&$�� ���� � ���� � (���&$�� ���� (48) .Esta igualdade mostra que se y(k) tender a uma

constante, então �y(k) = 0 e f(k+j) é igual à saída. .3.4 ESCOLHA DOS HORIZONTES .

Segundo Clarke e Mohtadi (1989, p. 864), "o comportamento do GPC depende dos valores dos três horizontes N1, N2 e NU". Os horizontes de predição determinam a quantidade de informação que deverá ser adicionada ao modelo da planta a fim de prever seu comportamento futuro. Assim, é necessário atentar para a escolha dos horizontes mínimo e máximo de predição, pois pouca ou muita informação pode resultar em

���

instabilidade, comportamento indesejado, sobressinal excessivo e outros problemas.

O horizonte mínimo N1 deve ser escolhido igual ao tempo morto da planta, já que a predição deve acontecer a partir do momento em que a saída reage à excitação do sinal de entrada.

O horizonte máximo, segundo Clarke, Mohtadi e Tuffs (1987a), deve ser escolhido do mesmo valor do tempo de subida da resposta livre da planta, a fim de englobar o comportamento dinâmico da mesma. A escolha de um horizonte maior reduz a variância da saída generalizada, pois aumenta a quantidade de informação que se tem sobre o comportamento futuro da planta. Por outro lado, gera maior esforço computacional, devido ao aumento da matriz G, que tem dimensão N2 x

N2 quando o horizonte de controle for igual ao de predição.

A escolha de um horizonte de controle menor que o de predição pode ser uma vantagem exatamente no esforço computacional. Como o controlador GPC pode ser do tipo self-tuning, a cada período de amostragem

deve ser realizada a inversão da matriz �Z[ � Z � \ � ]�, o que pode acarretar alto custo computacional, inviabilizando o uso desse controlador em malhas de dinâmica rápida. Além disso, se for escolhido errado o atraso de transporte da planta para N1, G

TG torna-se

singular e poderia ser necessário utilizar um alto valor de � para efetivar a ação de controle.

Há uma suposição, derivada do DMC, de que para algum NU < N2, o incremento das ações de controle torna-se nulo, pois não produz mais alterações na saída da planta, ou seja:

�^�H � I � 1� � �_ `3D3SabcbSI d ef (49)

���

Dessa forma, o uso de um horizonte de controle maior não implicará em resultado efetivo, enquanto que o custo computacional é maior. A redução do tempo computacional ocorre porque � tem dimensão NU e a matriz G na equação do preditor se reduz à dimensão N2

x NU, tal que: AB � !� / � � (50)

A matriz G1 é dada pela Equação (51):

!� �UVVVVW �6 I J I�� �6 J IK K J KK K L �6K K J K���$� ���$� J ���$��XY

YYYZ (51)

Assim, quando G1 for multiplicada pela sua transposta, a dimensão resultante será NU x NU, diminuindo a ordem para a inversão matricial.

���

4 RESULTADOS PRÁTICOS

O principal objetivo deste estudo foi testar as potencialidades do GPC no controle de plantas com características diversas. Assim, para validar o estudo, o controlador foi aplicado a diversas plantas com características diferentes, tanto reais quanto simuladas.

A fim de comparar os resultados, utilizou-se alguns parâmetros de qualidade do sinal de saída, como o tempo de subida, o máximo sobressinal e a variância do erro. Nas tabelas demonstrativas dos resultados, são utilizados os termos: N1 como horizonte mínimo de predição, N2 como horizonte máximo de predição, NU como horizonte de controle, � como fator de ponderação do sinal de controle, Varerro como a variância do erro do sinal de saída em relação à referência, SS como o máximo sobressinal da saída e tsubida como o tempo de subida do sinal da saída.

Segundo Ogata (1998, p. 126), o tempo de subida pode ser definido como o tempo que um sinal sobreamortecido ou com características de primeira ordem leva para sair de 10 a 90% do seu valor final, enquanto que para sistemas subamortecidos, é o tempo que leva para o sinal atingir o valor de regime pela primeira vez.

Ogata (1998, p. 126) define o máximo sobressinal como o máximo valor percentual que o sinal atinge com base em seu valor final. Já o conceito de variância, dado por Balbinot e Brusamarello (2013, p. 40), diz que a variância é a média quadrática dos erros do sinal a partir do valor esperado, no caso o valor de regime.

O algoritmo de controle foi desenvolvido e aplicado no software matemático Matlab®, versão R2009a. O software em questão permite construir algoritmos com recursos matemáticos diversos, estrutura

���

lógica e de programação, além de possuir diversas bibliotecas com ferramentas específicas, como transformadas de Fourier, filtro de Kalman, entre outras.

O algoritmo, apresentado no Apêndice A, foi desenvolvido com todas as etapas de projeto de um controlador GPC, montadas e testadas passo a passo conforme descrição de Clarke, Mohtadi e Tuffs (1987a) e Camacho e Bordons (1999). A etapa de controle é realizada através de uma variável interna denominada número de iterações (nit). A Figura 2 apresenta um fluxograma com as principais etapas do algoritmo desenvolvido no Matlab.

Figura 2 - Fluxograma do algoritmo desenvolvido

Fonte: Produção do próprio autor

���

A seguir são apresentadas as plantas utilizadas para testar o algoritmo desenvolvido e os respectivos resultados obtidos com os testes.

4.1 CIRCUITO RC DE SEGUNDA ORDEM

O circuito resistivo-capacitivo (RC) de segunda

ordem foi construído no intuito de verificar a aplicabilidade em sistemas mais simples, de baixa ordem, boa linearidade e sem características muito diferenciadas.

Na Figura 3 é apresentado o circuito utilizado para testar o algoritmo. Este é um circuito muito simples, podendo ser facilmente implementado.

Figura 3 - Circuito RC de segunda ordem

Fonte: Produção do próprio autor

���

Para testar o controle no circuito RC de segunda ordem, foi utilizada uma plataforma de desenvolvimento Arduino Uno, como equipamento de interface e aquisição de dados. Esta plataforma opera com um microcontrolador ATMega 328, da Atmel Corporation, de 8 bits e memória flash interna de 32 quilobytes (KB). O Arduino Uno possui catorze pinos de acesso digital (entrada-saída configurável), sendo que seis deles podem ser utilizados como saída de modulação de largura de pulso (PWM, do inglês Pulse Width

Modulation), e mais seis entradas analógicas. A rotina de leitura e escrita de dados do módulo Arduino é apresentada no Anexo A e foi desenvolvida pelo professor Dr. Antonio Silveira (Silveira, 2015), orientador deste trabalho, para a unidade curricular Controle Digital.

A função de transferência contínua é dada pela Equação (52). Através do método segurador de ordem zero (ZOH, do inglês Zero-Order Hold), utilizando-se um período de amostragem de 100 ms, obtém-se a função de transferência discreta, conforme Equação (53).

A�7� �7� � [\;]^7� � _;_^_ 7 � [\;]^ (52)

A�&$�� �&$�� � �I;�^`O � I;�_[] &$�� &$�� � �;[O\ &$� � I;^[\\ &$� (53)

Através de um algoritmo de identificação (Apêndice B), obteve-se a resposta ao degrau da planta, mostrada na Figura 4.

���

Figura 4 - Resposta ao degrau do circuito RC

Fonte: Produção do próprio autor

É possível observar que antes da aplicação do degrau à planta há um valor de aproximadamente 1,1 V na saída, devido a não linearidades impostas pela construção física do circuito, como o uso de fonte não simétrica. A resposta ao degrau do circuito apresenta comportamento sobreamortecido com um tempo de subida de aproximadamente 340 ms e sobressinal de cerca de 12,6%. O período de oscilação do sinal é de aproximadamente 1,0 s e é possível observar um erro de regime, implicando em um ganho em malha aberta não unitário.

Segundo Åstrom e Wittenmark (2011, p. 66), a frequência de amostragem de sistemas discretos deve ser de 4 a 10 vezes maior que a frequência natural da planta. Sendo assim, escolheu-se um período de amostragem de 100 ms, cerca de 10 vezes menor que o período de oscilação do sinal.

Inicialmente procurou-se testar os horizontes para depois avaliar a influência de �. A Tabela 1 traz os resultados para � e horizontes de predição fixos e variação do horizonte de controle. Escolheu-se esses

���

valores de horizonte com base no atraso discreto e no tempo de estabilização da planta, que é cerca de 1,0 s.

Tabela 1 - Resultados do circuito RC de segunda ordem variando-se NU

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (ms)

1 10 1 5,0 70,2 32,7 637,4 1 10 2 5,0 61,9 10,7 766,7 1 10 3 5,0 73,6 8,0 797,1 1 10 4 5,0 90,2 8,0 1291 1 10 5 5,0 87,0 9,0 1286 1 10 6 5,0 102,8 8,7 820,0 1 10 7 5,0 87,1 6,7 1378 1 10 8 5,0 77,2 8,3 1322 1 10 9 5,0 70,1 7,0 860,6 1 10 10 5,0 88,3 8,7 1276

Fonte: Produção do próprio autor

A Figura 5 traz os resultados para um dos testes realizados, com o horizonte de controle em um valor aproximado de um terço do tempo de estabilização da planta.

Observando-se os resultados, verifica-se que o erro de regime foi eliminado, porém com grande oscilação do sinal de saída antes da aplicação do degrau. Isso se deve ao efeito preditivo do controlador, que aplica o esforço de controle para levar a saída ao valor de referência antes mesmo da efetiva aplicação do degrau. Observa-se também um pico no sinal de controle alcançando o valor de saturação.

���

Figura 5 - Sinais do circuito RC de segunda ordem com N1 = 1, N2 = 10, NU = 3 e � = 5,0

Fonte: Produção do próprio autor

Na sequência manteve-se o horizonte de controle fixo no valor de 3 e variou-se o horizonte de predição. A Tabela 2 traz esses resultados.

Tabela 2 - Resultados do circuito RC de segunda ordem variando-se N2

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (ms)

1 5 3 5,0 88,5 11,7 800,0 1 10 3 5,0 92,7 11,0 795,3 1 15 3 5,0 78,9 8,0 786,4 1 20 3 5,0 89,0 11,3 738,8 1 25 3 5,0 74,7 12,0 802,8 1 30 3 5,0 99,1 8,7 860,0 1 35 3 5,0 79,1 9,0 774,1 1 40 3 5,0 79,7 12,0 753,1 1 45 3 5,0 75,1 8,0 811,1 1 50 3 5,0 92,9 12,0 785,9

Fonte: Produção do próprio autor

���

Observa-se que o aumento do horizonte de predição não trouxe resultados concretos para o controle desta planta, havendo pouca variação nos valores obtidos. A Figura 6 apresenta os sinais para o maior valor de horizonte testado.

Figura 6 - Sinais do circuito RC de segunda ordem com N1 = 1, N2 = 50, NU = 3 e � = 5,0

Fonte: Produção do próprio autor

É possível observar que a saída chega ao valor de regime mais rapidamente, porém demora mais pra estabilizar devido ao número de oscilações e exige mais do controle, que novamente chega a atingir durante um instante o valor de saturação.

Mantendo-se os valores escolhidos inicialmente para os horizontes, verificou-se a influência do fator de ponderação do sinal de controle, cujos resultados são apresentados na Tabela 3. A Figura 7 traz o resultado para um valor de � de 2,0.

���

Tabela 3 - Resultados do circuito RC de segunda ordem variando-se �

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (ms)

1 10 3 0,1 1257 * * 1 10 3 0,5 1160 * * 1 10 3 1,0 620,9 * * 1 10 3 2,0 68,6 16,0 662,2 1 10 3 3,0 72,3 10,0 769,8 1 10 3 4,0 89,5 9,3 1300 1 10 3 5,0 76,3 7,7 1295

Fonte: Produção do próprio autor * Comportamento instável

Figura 7 - Sinais do circuito RC de segunda ordem com N1 = 1, N2 = 10, NU = 3 e � = 2,0

Fonte: Produção do próprio autor

Verifica-se que com valores de � até 1,0 não é possível estabilizar a saída. Isso ocorre devido à característica de que valores pequenos de � implicam num controle mais efetivo, fazendo com que o controlador force a saída ao valor de regime, provocando

��

assim a instabilidade pela saturação do sinal de controle. Com um valor maior de �, o esforço de controle é mais moderado e é possível estabilizar a saída, com um tempo maior de estabilização e menor sobressinal.

Os testes cujos resultados são apresentados na Tabela 3 foram repetidos com a inclusão do estimador de parâmetros MQR para identificação do modelo de planta, conforme algoritmo apresentado no Apêndice C. Todas as etapas de determinação do modelo de predição e montagem de polinômios e matrizes foram incluídas no loop de controle, conforme pode ser observado no fluxograma da Figura 8.

Figura 8 - Fluxograma do algoritmo desenvolvido com inclusão do estimador MQR

Fonte: Produção do próprio autor

���

Neste caso, a inclusão do MQR permitiu que, mesmo com valores menores de � fosse possível a estabilização do sinal. A Figura 9 apresenta o teste com o menor valor de � utilizado.

Figura 9 - Sinais do circuito RC de segunda ordem com N1 = 1, N2 = 10, NU = 3, � = 0,1 e MQR

Fonte: Produção do próprio autor

Observa-se que inicialmente o controlador tem dificuldade de estabilizar a planta, mas após a convergência dos parâmetros do modelo identificado, cerca de 1,0 s após a aplicação do degrau, a saída tende ao valor de regime. A fim de comparação com o teste sem uso do MQR, a Figura 10 traz os resultados para � =

2,0. Verifica-se que a planta apresentou

comportamento sobreamortecido, atingindo o valor de regime em aproximadamente 800 ms e com menor esforço para o sinal de controle, que não tem mais o pico próximo ao valor de saturação, também devido ao fato que os parâmetros do modelo convergem mais rapidamente.

��

Figura 10 - Sinais do circuito RC de segunda ordem com N1 = 1, N2 = 10, NU = 3, � = 2,0 e MQR

Fonte: Produção do próprio autor

4.2 CONTROLE DE VAZÃO

O controle de vazão foi implementado na estação

compacta de controle de processos Festo® MPS-PA, que foi desenvolvida como uma estrutura educacional e de treinamento nas áreas de automação e comunicação (Festo Didactic; 2008, p. 2). A Figura 11 traz uma visão geral da planta Festo®.

Com esta estação, é possível realizar o controle de nível, vazão, pressão e temperatura, de forma independente ou simultaneamente.

No processo de vazão da planta Festo®, controla-se a velocidade de uma bomba a fim de se atingir um setpoint de vazão na alimentação do reservatório superior.

O sensor de vazão da planta é um rotâmetro optoeletrônico, com a saída normalizada em um sinal de 0 a 10 V, equivalente ao giro da turbina de 0 a 1000 Hz. Neste caso, 1000 Hz equivale a uma vazão de 7,5 l/min de fluido na tubulação.

���

Figura 11 - Visão geral da planta Festo® MPS-PA

Fonte: Festo Didactic (2008, p. 1)

A bomba é do tipo centrífuga e possui capacidade máxima de 10 l/min de vazão. A velocidade da bomba é controlada por um sinal normalizado de 0 a 10 VDC, aplicado ao motor de corrente contínua que compõe a bomba. Quando aplicados 10 V ao motor, a bomba produz um fluxo de aproximadamente 4,17 l/min. O sistema de aquisição de dados utilizado foi o EasyPort, que acompanha a estação didática Festo®.

Na Figura 12 é mostrado o detalhamento da bomba e do sensor de vazão utilizado.

��

Figura 12 - Detalhamento da bomba centrífuga e do sensor de vazão

Fonte: Festo Didactic (2008, p. 1)

Ao se fazer o levantamento empírico da função de transferência do sistema de controle de vazão, detectou-se uma zona morta na operação da bomba de aproximadamente 2,5 V. Como as faixas de aplicação da bomba e do sensor de vazão são diferentes, foi necessário compensar essa diferença através de um ganho de 1,80 na leitura do sinal do sensor, obtendo-se a seguinte função de transferência contínua:

A�7� �7� � I;]^[�7 � I;\I\� (54)

Visto que a constante de tempo é de aproximadamente 1,2 s, utilizou-se um período de amostragem de 100 ms, cerca de 10 vezes menor, obtendo-se a seguinte função de transferência discreta.

A�&$�� �&$�� � I;I]Oa &$�� � I;\�[� &$� (55)

���

A diferença entre as escalas de tensão da entrada e da saída da planta, considerando o sensor e a curva de resposta do motor da bomba, foram compensadas na leitura do sinal de saída. A curva de resposta ao degrau experimental do processo de vazão é mostrada na Figura 13.

Figura 13 - Resposta ao degrau do sistema de vazão

Fonte: Produção do próprio autor

Esta planta apresenta comportamento de primeira ordem, com tempo de subida de aproximadamente 2,1 s e ganho em regime permanente de 0,9494 V/V.

O algoritmo utilizado para testar as potencialidades do GPC na planta de vazão é apresentado no Apêndice D. As rotinas de comunicação com o sistema de aquisição de dados foram desenvolvidas pelo professor Dr. Antonio Silveira (Silveira, 2015) para a unidade curricular Controle Digital e são apresentadas nos Anexos B e C.

Os primeiros testes foram realizados com os valores fixos de horizontes de predição e � e variando-se o horizonte de controle, conforme Tabela 4.

��

Considerando que a planta leva cerca de 4,0 s para estabilizar, escolheu-se um horizonte máximo de predição de 40.

Tabela 4 - Resultados do controle de vazão variando-se NU

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 40 1 1,0 703,1 * 1,984 1 40 2 1,0 557,6 * 1,630 1 40 5 1,0 569,6 1,5 2,171 1 40 10 1,0 610,7 1,6 2,190 1 40 15 1,0 697,7 1,9 2,336 1 40 20 1,0 727,0 2,0 2,250 1 40 25 1,0 737,5 1,9 2,354 1 40 30 1,0 729,6 2,0 2,233 1 40 35 1,0 736,5 1,9 2,271 1 40 40 1,0 725,7 2,0 2,352

Fonte: Produção do próprio autor * Comportamento sobreamortecido

O que se observa dos resultados da variação do horizonte de controle, é que o horizonte de controle de 2 apresentou menor variância, menor sobressinal e menor tempo de subida, reforçando a premissa que plantas mais simples exigem horizontes de controle menores.

A Figura 14 traz o resultado para um teste com esse valor de NU.

Observa-se a presença do efeito preditivo pela antecipação da resposta à excitação degrau e a variação mais brusca inicial do sinal de controle, inclusive com alguma saturação em um intervalo de tempo de cerca de 100 ms.

���

Figura 14 - Sinais do sistema de vazão com N1 = 1, N2 =

40, NU = 2 e � = 1,0

Fonte: Produção do próprio autor

Na sequência manteve-se fixo o valor de NU no valor considerado ideal e variou-se o horizonte máximo de predição. A Tabela 5 traz os resultados obtidos.

Tabela 5 - Resultados do controle de vazão variando-se N2

N1 N2 NU � Varerro

(mV2) tsubida

(s) 1 10 2 1,0 478,0 1,328 1 20 2 1,0 422,9 1,391 1 30 2 1,0 506,9 1,579 1 40 2 1,0 560,2 1,646 1 50 2 1,0 565,5 1,670 1 60 2 1,0 629,6 1,687 1 70 2 1,0 650,0 1,757 1 80 2 1,0 687,5 1,741 1 90 2 1,0 659,5 1,687 1 100 2 1,0 807,0 1,825

Fonte: Produção do próprio autor

��

Neste caso o parâmetro sobressinal foi omitido porque todos os testes resultaram em comportamento sobreamortecido. O que se observa é que o aumento do horizonte de predição trouxe algum resultado positivo até o horizonte de 20 e a partir daí a variância e o tempo de subida aumentaram. A Figura 15 traz os resultados para N2 = 20.

Figura 15 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 1,0

Fonte: Produção do próprio autor

Observa-se que a saída converge ao valor de regime de forma suave e que o sinal de controle satura durante um pequeno intervalo de tempo, cerca de 200 ms. Na sequência fez-se os testes mantendo-se fixos os valores de horizontes e variando-se o valor do fator de ponderação do sinal de controle, cujos resultados estão apresentados na Tabela 6. Os resultados mostram que valores menores de � implicam numa ação de controle mais efetiva, com menor tempo de subida.

���

Tabela 6 - Resultados do controle de vazão variando-se �

N1 N2 NU � Varerro

(mV2) tsubida

(s) 1 20 2 0,1 604,8 1,366 1 20 2 0,5 459,5 1,391 1 20 2 1,0 418,2 1,392 1 20 2 2,0 427,4 1,495 1 20 2 3,0 426,9 1,507 1 20 2 4,0 434,0 1,532 1 20 2 5,0 442,6 1,507

Fonte: Produção do próprio autor

Na Tabela 6 a variância é maior para valores menores de � porque ocorre a saturação do sinal de controle, conforme apresentado na Figura 16, fazendo com que a saída chega à referência mais rapidamente, porém com maior variância do erro.

Figura 16 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 0,1

Fonte: Produção do próprio autor

���

Analisando-se o sinal de controle apresentado na Figura 17, percebe-se que valores maiores de � resultam num controle mais moderado, com tempo de subida maior, porém com menor esforço do sinal de controle.

Figura 17 - Sinais do sistema de vazão com N1 = 1, N2 =

20, NU = 2 e � = 5,0

Fonte: Produção do próprio autor

O fato de utilizar um controle mais efetivo em sistemas como o controle de vazão pode ser indesejável devido ao estresse causado pela variação brusca do atuador, neste caso uma bomba. Essas variações de rotação causam desgaste excessivo dos componentes mecânicos e podem levar à falha do sistema. Assim, é preferível reduzir a exigência relativa a alguns parâmetros como tempo de resposta e variância, mas garantindo a integridade do sistema.

4.3 CONTROLE DE NÍVEL

Na mesma planta utilizada para o controle de

vazão é possível realizar o controle de nível no

��

reservatório superior pelo controle do fluxo de entrada de água. Neste caso, foi escolhido realizar o controle de nível do reservatório através do controle de velocidade da bomba centrífuga, a mesma utilizada no controle de vazão.

Para realizar o controle de nível, é feita a leitura através de um sensor ultrassônico, que fornece um sinal de 0 a 10 V, para um range de leitura de 4,8 a 27,0 cm. A Figura 18 traz um detalhamento do sensor de nível da planta Festo®.

Figura 18 - Detalhamento do sensor de nível

Fonte: Festo Didactic (2008, p. 1)

A fim de determinar o modelo da planta, aplica-se a lei de conservação de massa, considerando que o fluido utilizado é incompressível:

gh

ga� i� � ij (56)

���

onde V é o volume, Qi é a vazão de entrada e Qo é a vazão de saída do reservatório. Considerando um reservatório de seção constante AR, tem-se que: bcbd � �'e �f� � fg� (57)

onde h é a altura do nível do líquido. Considerando que a vazão de saída se dá através

de uma tubulação de saída na parte inferior do reservatório controlada por um registro, considera-se que a velocidade de escoamento do fluido é dada por:

h � iO � jc (58)

onde g é a aceleração da gravidade, 9,81 m/s2. A vazão de saída depende da geometria do

orifício de saída e da relação entre a posição do orifício e da altura do fluido. Assim, a vazão de saída pode ser calculada por:

f6 � kl h 'm � kl iO � 'm jc � k jc (59)

onde cc é o coeficiente de contração, utilizado 0,6, e AS é a área útil do orifício de escoamento, neste caso, 1,56 cm2.

Substituindo-se Qo da Equação (59) à Equação (57), chega-se à equação diferencial não linear:

bcbd � �'e 3f� � k jc5 (60)

��

A Equação (60) é não linear, mas pode ser linearizada em torno de um ponto de operação. Assim, a planta foi linearizada em torno de um ponto de equilíbrio h0, equivalente a uma altura aproximada de 102,5 cm de líquido. A equação de transferência da planta obtida para esse ponto de operação foi:

�k�l�

�i��l��m_mn � 1�$o

l � �_n1Mp (61)

Aplicando-se o método ZOH com um período de amostragem de 100 ms, obteve-se a função discreta para a planta:

�k�,$��

�i��,$��

��_���mmmq � ,$�

1 � �_qqqm � ,$� (62)

O controle foi feito através da malha de controle de vazão utilizada anteriormente, já que a variável manipulada é a tensão da bomba centrífuga da planta. Assim, a planta de vazão entra na malha de controle em cascata com a planta de nível, apenas convertendo-se as unidades. O sistema passa a ser então de segunda ordem, com a dinâmica modelada pela Equação (63).

�k�l�

�i��l��

1_M�M

�l � �_n1Mp� � �l � �_q�q1� (63)

Para avaliar a influência dos parâmetros de ajuste nesta planta, foi utilizada a variância do erro de saída e a

���

taxa de subida �V/�t, considerando a dificuldade em iniciar a planta exatamente no mesmo ponto.

Considerando que a constante de tempo da planta é de cerca de 3,4 s, iniciou-se os testes fixando o horizonte de predição em 100 e variando-se o valor de NU, conforme Tabela 7.

Tabela 7 - Resultados do controle de nível variando-se NU

N1 N2 NU � Varerro

(mV2) �V/�t

(ml/s) 1 100 5 1,0 1,6 5,59 1 100 10 1,0 4,3 21,67 1 100 20 1,0 3,0 10,14 1 100 40 1,0 4,7 19,79 1 100 60 1,0 4,5 15,32 1 100 80 1,0 4,0 26,22 1 100 100 1,0 5,3 16,03

Fonte: Produção do próprio autor

Observa-se que valores maiores de NU, apesar de maior variância, resulta em uma taxa de subida mais alta. A Figura 19 traz o resultado para o valor de horizonte de controle de 10.

Observa-se que a saída converge para o valor de referência, porém há grande oscilação no sinal de controle, o que causa estresse do atuador, o que pode levar o sistema à falha geral, como comentado anteriormente.

��

Figura 19 - Sinais do sistema de nível com N1 = 1, N2 =

100, NU = 10 e � = 1,0

Fonte: Produção do próprio autor

Em seguida, fixou-se o horizonte de controle em 10 e variou-se o horizonte de predição, conforme apresentado na Tabela 8.

Tabela 8 - Resultados do controle de nível variando-se N2

N1 N2 NU � Varerro

(mV2) �V/�t

(ml/s) 1 10 10 1,0 3,7 20,65 1 20 10 1,0 3,9 12,24 1 30 10 1,0 3,7 16,89 1 40 10 1,0 2,1 12,12 1 50 10 1,0 2,7 14,09 1 60 10 1,0 3,2 9,25 1 70 10 1,0 1,7 8,48 1 80 10 1,0 3,2 13,33 1 90 10 1,0 3,9 11,47 1 100 10 1,0 1,7 12,33

Fonte: Produção do próprio autor

���

Em relação à variância, não há muita diferença entre os testes, porém, para a taxa de subida percebe-se uma queda a partir de 60. A Figura 20 apresenta o resultado do teste para N2 = 50.

Figura 20 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 1,0

Fonte: Produção do próprio autor

Nestes testes verifica-se que a saída estabiliza mais rapidamente que no teste anterior, porém ainda há grande variação no sinal de controle. Fez-se então os testes com os horizontes fixos e variando-se o valor de �. Os resultados são apresentados na Tabela 9.

É possível notar que não há uma redução real no valor da variância do erro de saída e que a taxa de subida aumenta quando o valor de � é maior. Porém, analisando-se a Figura 21, com valor mínimo de �, e a Figura 22, com o valor máximo, pode-se perceber a influência do fator de ponderação do sinal de controle.

��

Tabela 9 - Resultados do controle de nível variando-se � N1 N2 NU � Varerro

(mV2) �V/�t

(ml/s) 1 50 10 0,1 3,0 11,14 1 50 10 0,5 2,8 14,55 1 50 10 1,0 2,9 15,29 1 50 10 2,0 3,4 18,50 1 50 10 3,0 3,3 16,10 1 50 10 4,0 2,3 5,92 1 50 10 5,0 2,8 9,02

Fonte: Produção do próprio autor

Figura 21 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 0,1

Fonte: Produção do próprio autor

Observa-se claramente que a saída do teste apresentado na Figura 21 converge para a referência muito mais rapidamente e com menor oscilação. Porém, ocorrem variações muito bruscas no sinal de controle, o que pode levar à falha devido ao desgaste prematuro do atuador.

���

Figura 22 - Sinais do sistema de nível com N1 = 1, N2 =

50, NU = 10 e � = 5,0

Fonte: Produção do próprio autor

Na Figura 22 a saída oscila em torno da referência antes de convergir, mas há menor oscilação no sinal de controle, o que num sistema como esse é geralmente preferível, considerando a confiabilidade do sistema como um todo.

4.4 PÊNDULO AMORTECIDO

A fim de expandir as potencialidades do algoritmo

GPC, fez-se alguns testes com modelos de plantas simuladas, mas não disponíveis para testes reais. Os primeiros testes foram executados num modelo de um pêndulo amortecido (PAM), obtido do trabalho de Silveira (2012, pp. 42-44), cuja função de transferência já discretizada através do método ZOH, com período de amostragem de 100 ms, é dada por:

A�&$�� �&$�� � �InI�aa � InI�a� &$�� &$�� � �n]]_I &$� � In\O[I &$� (64)

��

A resposta em malha aberta do PAM é mostrada na Figura 23.

Figura 23 - Resposta ao degrau do PAM

Fonte: Produção do próprio autor

Esta planta apresenta comportamento subamortecido, com ganho estático de 0,78 V/V, frequência natural de cerca de 2 rad/s e coeficiente de amortecimento de aproximadamente 0,198. O tempo de subida é de 1,1 s e o máximo sobressinal é de cerca de 53,8%.

Seguindo o critério de Åstrom e Wittenmark (2011, p. 66), adotou-se o período de amostragem de 100 ms, considerando que o período do sinal é de aproximadamente 500 ms. O algoritmo utilizado foi o mesmo do circuito RC de segunda ordem, com a saída sendo simulada pelo modelo CARIMA descrito pela Equação (64).

Inicialmente fez-se os testes fixando-se o horizonte N2 em 20, dado o período de oscilação do sinal, e variando-se NU. Os resultados são apresentados na Tabela 10.

��

Tabela 10 - Resultados do PAM variando-se NU

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 20 1 1,0 16,3 31,4 1,17 1 20 2 1,0 10,4 15,0 1,30 1 20 5 1,0 9,3 1,4 1,53 1 20 10 1,0 9,6 6,3 1,36 1 20 15 1,0 9,4 7,2 1,33 1 20 20 1,0 9,4 7,2 1,32

Fonte: Produção do próprio autor

Pela análise dos resultados apresentados na Tabela 10, observa-se que o horizonte de controle de 5 apresentou valores menores de variância e sobressinal, sem um aumento significativo do tempo de subida da planta. A Figura 24 traz o resultado para esse valor de NU.

Figura 24 - Sinais do PAM com N1 = 1, N2 = 20, NU = 5 e � = 1,0

Fonte: Produção do próprio autor

���

Observa-se o comportamento levemente sobreamortecido da saída, acompanhado do efeito preditivo que adianta a resposta ao degrau e permite que a planta atinja o regime em menos de 1,0 segundo, contando-se a partir da mudança da referência.

Na sequência manteve-se o horizonte de controle em 5 e variou-se o horizonte de predição, conforme resultados apresentados na Tabela 11.

Tabela 11 - Resultados do PAM variando-se N2

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 10 5 1,0 9,8 10,0 1,28 1 15 5 1,0 9,1 7,9 1,30 1 20 5 1,0 9,3 1,4 1,53 1 25 5 1,0 12,3 * 1,04 1 30 5 1,0 15,0 * 1,17 1 35 5 1,0 14,3 * 1,14 1 40 5 1,0 12,8 * 1,10

Fonte: Produção do próprio autor * Comportamento sobreamortecido

Observa-se que o aumento do horizonte de predição aumenta a variância do erro da saída e diminui o tempo de subida a partir de 20, além de diminuir o sobressinal, inclusive levando a planta ao comportamento sobreamortecido a partir de N2 = 25. A fim de comparar os resultados, a Figura 25 traz os sinais para um horizonte de 40.

��

Figura 25 - Sinais do PAM com N1 = 1, N2 = 40, NU = 5 e � = 1,0

Fonte: Produção do próprio autor

É possível verificar o comportamento sobreamortecido com um tempo de subida maior que para o horizonte de 20. Percebe-se que a escolha do horizonte N2 influencia no comportamento da planta, considerando velocidade e convergência.

Fez-se então a análise da influência do coeficiente de ponderação da ação de controle, cujos resultados são mostrados na Tabela 12.

Observa-se que valores baixos de � levam a saída mais rapidamente ao valor de regime e sem sobressinal, resultando num valor menor de variância. Esses resultados reforçam o conceito de que quanto mais próximo a zero for o valor de �, mais a planta se aproxima do comportamento de variância mínima.

���

Tabela 12 - Resultados do PAM variando-se � N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 20 5 0,1 7,4 * 0,813 1 20 5 0,5 8,4 * 0,890 1 20 5 1,0 9,3 1,4 1,53 1 20 5 2,0 11,0 5,1 1,45 1 20 5 3,0 12,6 7,6 1,45 1 20 5 4,0 13,8 9,1 1,46 1 20 5 5,0 14,9 10,3 1,47

Fonte: Produção do próprio autor * Comportamento sobreamortecido

A Figura 26 apresenta a saída para o menor valor de �.

Figura 26 - Sinais do PAM com N1 = 1, N2 = 20, NU = 5 e � = 0,1

Fonte: Produção do próprio autor

��

Pode ser verificado pelo sinal de controle da Figura 26 que o menor valor de � exige mais do controlador, visto que o controle de variância mínima pressupõe um maior esforço de controle a fim de minimizar a variância do erro de saída.

4.5 SISTEMA INSTÁVEL DE FASE NÃO MÍNIMA

Além do sistema PAM, que apresenta

comportamento subamortecido, fez-se as simulações com uma planta fictícia, também de segunda ordem, porém com dois polos no domínio contínuo à direita do plano complexo. Os polos contínuos da planta estão alocados em 1 e 2 e o ganho é unitário.

Esta planta possui também um zero de fase não mínima e portanto sujeita ao efeito que gera uma resposta proporcional negativa em relação à variação do sinal de controle, além de ser instável em malha aberta. Discretizando-se a planta com um período de amostragem de 100 ms, chega-se a:

A�&$�� �&$�� �

�InI��I^ � InI�OOO &$�� &$�� � On[O` &$� � �n[a &$� (65)

Como a resposta livre da planta diverge, este sinal não foi apresentado. Por ser um sistema de fase não mínima e ainda por cima instável, foi necessário aumentar o range de atuação do sinal de controle, que foi limitado à faixa de -5,0 a 5,0.

Considerando que não há informações sobre a dinâmica da planta, considerou-se um horizonte de predição de 20, com base na menor constante de tempo da planta, 0,5 s. Os resultados desses testes, mantendo-

���

se fixos N2 e � e variando-se NU, são apresentados na Tabela 13.

Tabela 13 - Resultados do sistema de fase não mínima variando-se NU

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 20 1 1,0 * * * 1 20 2 1,0 20,5 ** 1,90 1 20 5 1,0 19,8 ** 1,84 1 20 10 1,0 17,9 3,5 1,85 1 20 15 1,0 16,7 5,7 1,69 1 20 20 1,0 16,7 5,7 1,69

Fonte: Produção do próprio autor * Comportamento instável ** Comportamento sobreamortecido

Observa-se, que devido à complexidade da planta, um horizonte muito pequeno não permite a estabilização da planta. Conforme aumenta-se o valor de NU, diminui a variância e o tempo de subida, pelo menos até o valor de 10. Em contrapartida, valores maiores de NU aumentam o sobressinal. A Figura 27 traz os sinais de um dos testes realizados, para NU = 5.

Observa-se no sinal da saída o efeito preditivo do GPC e no sinal de controle o efeito de fase não mínima, que faz o sinal ser negativo no início da atuação do controle, mas garantindo a convergência assintótica sem sobressinal.

��

Figura 27 - Sinais da planta de fase não mínima com N1

= 1, N2 = 20, NU = 5 e � = 1,0

Fonte: Produção do próprio autor

Fez-se novos testes com outros valores de NU e escolheu-se o valor de 7 para o horizonte de controle. Testou-se então a influência do horizonte máximo de predição N2, cujos resultados são apresentados na Tabela 14.

Observa-se que o melhor resultado obtido foi para N2 = 60, visto que garante um valor baixo de variância e sobressinal, além de apresentar comportamento sobreamortecido. Percebe-se também que quando se utiliza horizontes de 100 ou maiores a saída diverge.

A Figura 28 mostra os sinais de saída e de controle para o valor mais baixo de N2. A Figura 29 mostra o resultado para o valor de 60 do horizonte de predição.

���

Tabela 14 - Resultados do sistema de fase não mínima variando-se N2

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 10 7 1,0 27,6 31,1 1,39 1 15 7 1,0 13,6 8,8 1,48 1 20 7 1,0 19,2 * 1,39 1 25 7 1,0 27,3 * 1,87 1 30 7 1,0 30,3 * 2,03 1 35 7 1,0 28,2 * 1,93 1 40 7 1,0 23,6 * 1,70 1 50 7 1,0 14,2 * 1,23 1 60 7 1,0 8,2 * 1,02 1 70 7 1,0 4,9 1,3 1,54 1 80 7 1,0 3,5 2,7 1,32 1 100 7 1,0 ** ** **

Fonte: Produção do próprio autor * Comportamento sobreamortecido ** Comportamento instável

Figura 28 - Sinais da planta de fase não mínima com N1

= 1, N2 = 10, NU = 7 e � = 1,0

Fonte: Produção do próprio autor

��

Figura 29 - Sinais da planta de fase não mínima com N1

= 1, N2 = 60, NU = 7 e � = 1,0

Fonte: Produção do próprio autor

Mantendo-se os horizontes de controle e predição nos valores estabelecidos anteriormente, procurou-se avaliar a influência do fator de ponderação do sinal de controle �, cujos resultados são apresentados na Tabela 15.

Tabela 15 - Resultados do sistema de fase não mínima variando-se �

N1 N2 NU � Varerro

(mV2) SS (%)

tsubida (s)

1 60 7 0,1 0,2 1,2 0,982 1 60 7 0,5 2,5 2,5 1,23 1 60 7 1,0 8,2 * 1,02 1 60 7 2,0 21,9 * 1,72 1 60 7 3,0 34,3 * 2,52 1 60 7 4,0 43,9 * 3,33 1 60 7 5,0 50,7 * 4,11

Fonte: Produção do próprio autor * Comportamento sobreamortecido

���

Neste caso, nota-se que valores menores de � reduzem sensivelmente a variância do erro de saída, conforme esperado, e o tempo de subida, apesar de apresentar um pequeno sobressinal. A Figura 30 traz os sinais para o menor valor testado de �.

Figura 30 - Sinais da planta de fase não mínima com N1

= 1, N2 = 60, NU = 7 e � = 0,1

Fonte: Produção do próprio autor

É possível perceber o quanto o efeito preditivo incorpora qualidade à resposta, fazendo com que no instante do degrau a saída esteja praticamente no valor da referência. Também se pode notar o aumento no esforço de controle para esse valor mais baixo de �, principalmente na faixa negativa a fim de lidar com o efeito de fase não mínima.

4.6 SISTEMA NÃO LINEAR CSTR

A terceira planta simulada representa um modelo

não-linear de um Reator Continuamente Agitado (CSTR, do inglês Continually Stirred Tank Reactor), obtida de

���

Coelho, Araújo e Silveira (2014). As Equações (66) e (67) definem as equações de estado do CSTR.

o��� � �� � o���� � pm q�o���� � rs 3� � o����5 t u��v��1u��v� wx y

(66)

o��� � �� � o���� � pm o���� �� � z� � pm q,e rs 3� � o����5 t

u��v��1u��v� wx � z ����y

(67)

Nestas equações: x1(k) representa a concentração do reagente, x2(k) = y(k) é a temperatura do reator e u(k) é uma entrada de refrigeração adimensional. As constantes são: período de amostragem TS = 0,2 s, número de Damköhler Da = 0,072, energia de ativação � = 0,072, calor de reação BR = 8 e coeficiente de transferência de calor � = 0,3.

A resposta livre da planta, a partir da aplicação de vários degraus de referência, é apresentada na Figura 31.

Foi feita a aplicação de vários degraus diferentes no intuito de mostrar o comportamento não linear da planta. Para esta planta, optou-se por utilizar diretamente o estimador MQR, considerando o comportamento não linear do CSTR. O Apêndice E mostra o algoritmo utilizado para o CSTR.

��

Figura 31 - Resposta ao degrau do CSTR

Fonte: Produção do próprio autor

A planta de inicialização do MQR, obtida com base na resposta ao primeiro degrau da Figura 31, é dada por:

�1 � 1_n � ,$� � �_n � ,$ � � ����

� ��_�M � �_�M � ,$�� � ��� � 1� (68)

Este modelo apresenta comportamento sobreamortecido e tempo de subida em torno de 2,0 s. Considerando o tempo de estabilização da planta, escolheu-se os horizontes de 50 para N2 e 20 para NU. Na Figura 32 são apresentados os sinais do primeiro teste realizado.

Observa-se que o controlador consegue garantir o rastreamento assintótico da referência para os diferentes degraus aplicados à planta, mesmo quando a saída é levada a zero novamente.

���

Figura 32 - Sinais do CSTR com N1 = 1, N2 = 50, NU = 20 e � = 1,0

Fonte: Produção do próprio autor

Diminui-se os horizontes para N2 = 20 e NU = 10 e obteve-se os resultados mostrados na Figura 33.

Figura 33 - Sinais do CSTR com N1 = 1, N2 = 20, NU = 10 e � = 1,0

Fonte: Produção do próprio autor

��

Observa-se que a resposta mostrada na Figura 33 apresenta menor sobressinal, porém com tempo de subida e esforço de controle ligeiramente menores. É importante ressaltar que o GPC consegue levar a planta à referência mesmo com horizontes menores daqueles estabelecidos com base na dinâmica da planta.

Para esses mesmos valores de horizontes foram inseridas perturbações de carga a fim de avaliar o comportamento do controlador. Os resultados são apresentados na Figura 34.

Observa-se que o GPC recuperou-se rapidamente das perturbações, garantindo a convergência da saída ao valor de referência. O que se pode concluir é que os testes realizados com a planta CSTR, de comportamento não linear, mostram que o controlador GPC garante o perfeito rastreamento com o ajuste dos parâmetros de sintonia.

Figura 34 - Sinais do CSTR com N1 = 1, N2 = 20, NU =

10, � = 1,0 e perturbações em 1,5 e 2,5 s

Fonte: Produção do próprio autor

���

5 RESULTADOS E DISCUSSÕES

Os testes realizados nas diversas plantas mostram diversos resultados, alguns esperados outros nem tanto. Embora o que normalmente se esperaria é um comportamento padrão do controlador mediante os ajustes dos parâmetros de sintonia, as diferentes características das plantas podem fazer com que o desempenho do controlador seja diferente do esperado.

O que se observa principalmente na análise dos vários testes é que o GPC é capaz de estabilizar a saída de cada uma das plantas utilizadas, mesmo com diferentes características dinâmicas que tornam o controle mais difícil. Como exemplo, cita-se as não linearidades impostas ao circuito RC, devido provavelmente a questões construtivas da planta, a saturação do sinal de controle nos sistemas de vazão e de nível e as características singulares das plantas simuladas.

Verificou-se, de uma forma geral, que o parâmetro mais simples de sintonia é o peso do esforço de controle �, que atua diretamente no ganho de realimentação do GPC. Este ganho, dado pela matriz K, conforme Equação (44), é análogo ao ganho de realimentação de estados do controlador linear quadrático gaussiano (LQG), que, segundo Qin e Badgwell (2003, p. 734), busca encontrar um conjunto ótimo de estados e utilizá-los na determinação de uma ação de controle também ótima.

A atuação de � está diretamente relacionada ao esforço de controle. Tipicamente, o aumento de � implica em um controle mais moderado, exigindo menos do atuador com maior variância, sobressinal e tempo de subida. O que se observou é que o valor de � influencia principalmente na dinâmica da planta controlada,

��

envolvendo velocidade de resposta e sobressinal. Conceitualmente quando � tende a zero o GPC se aproxima do controle de variância mínima, exigindo o máximo da energia de controle a fim de garantir a menor variação em relação à referência.

A análise da influência do horizonte máximo de predição N2 revelou que este parâmetro incorpora o conhecimento que se tem sobre o comportamento futuro da planta, baseado no tamanho do conjunto de predições realizadas. Mesmo assim, o aumento do horizonte não se mostrou eficaz em todas as plantas testadas. Apenas nas plantas simuladas do PAM e do sistema instável obteve-se resultados positivos nos aspectos do sobressinal e do tempo de subida. Na planta de controle de nível obteve-se melhores resultados em algumas faixas de horizonte, mas nas demais os resultados foram piores.

Um dos pontos a ser ressaltado em relação ao horizonte de predição, é que valores muito baixos resultaram em respostas ruins. Logo, é necessário que o horizonte de predição englobe todo o regime transitório da resposta da planta, a fim de que o conjunto de predições realizadas garantam que as ações de controle calculadas possam levar a planta ao regime permanente da forma desejada. Assim, recomenda-se que N2 seja pelo menos igual ao tempo de estabilização da planta.

Em relação ao horizonte de controle NU verificou-se que sua atuação está ligada diretamente à dinâmica do controlador, agindo como um parâmetro de sintonia para a forma como a planta deve responder ao estímulo. Notou-se que não há um padrão constante para a influência do horizonte de controle, pois para cada tipo de planta obteve-se resultados diferentes. O que se verificou é que para as plantas de ordem menor, como no caso do controle de vazão, a escolha de um horizonte

���

de controle reduzido trouxe melhores resultados do que para as plantas mais complexas, como o CSTR.

Para ajudar a entender essa dinâmica, Clarke, Mohtadi e Tuffs (1987a, p. 143) relatam que o incremento no horizonte de controle é mais apropriado para sistemas mais complexos e explicam que foi constatado que a resposta é melhor para essas plantas quando NU é igual ou superior ao número de polos instáveis ou pouco amortecidos.

Na maioria dos testes realizados, foi determinado que há um valor de NU intermediário, mais próximo a 1 ou mais próximo a N2, conforme a planta, que produz os melhores resultados sob um determinado aspecto. Logo, levantado o melhor horizonte de predição, pode-se, através de alguns ensaios, obter o melhor valor para o horizonte de controle, lembrando que para plantas de dinâmicas mais simples vale buscar o menor horizonte (NU = 1) e para plantas de dinâmicas mais complexas, o melhor valor para NU provavelmente será um pouco maior, mais próximo ao valor do horizonte de predição.

Um aspecto que se julga importante ressaltar é a contribuição do algoritmo de identificação de modelo de planta. Quando se compara os resultados dos testes realizados com a incorporação do MQR ao GPC, houve significativa melhora nos resultados, principalmente na estabilização da planta com valores menores de �. Mesmo considerando um pequeno atraso na estabilização do sinal devido ao tempo que é necessário para que o MQR estabilize os parâmetros do modelo, houve diminuição na variância do erro do sinal de saída e diminuição do sobressinal, o que mostra como a correta identificação do modelo de planta melhora o desempenho da malha de controle.

Aqui, os resultados encontrados com a incorporação do MQR indicam que a não ser que se

��

conheça muito bem a dinâmica da planta, é interessante adicionar o método a fim de casar melhor o modelo da planta. O grande empecilho dessa incorporação é o aumento do tempo de processamento, devido à incorporação de todas as rotinas do GPC ao loop de execução do algoritmo. Obviamente, quando um modelo de planta não pode ser obtido com precisão pelo método fenomenológico, deve-se utilizar um estimador a fim de determinar os parâmetros do modelo da planta (Åstrom; Wittenmark, 1971, p. 90).

Além do exposto até aqui, verificou-se com os inúmeros testes realizados que a dinâmica do GPC é bastante complexa para ser avaliada como uma simples estrutura de ganhos ou funções discretas. As dificuldades encontradas levam a entender que o algoritmo GPC tem características preditivas, com vários parâmetros de sintonia e que influenciam o desempenho do controlador de forma diferente. Portanto, durante o projeto, deve-se levar em conta o tipo de resposta da planta, os fatores de qualidade aos quais se deseja dar ênfase e por fim os demais parâmetros que fazem parte do projeto, como o período de amostragem e uso de estratégias adicionais.

Porém, considerando os resultados expostos e a compreensão da capacidade do controlador GPC, acredita-se que o uso de técnicas mais complexas na busca por um controle do processo mais efetivo é factível e traz um retorno certo do investimento. Conforme afirma Kember, Dubay e Mansour (2005, p. 345), "a simples transferência dessas aplicações de controle para controladores preditivos mais avançados como um MPC permite melhorar a robustez, eficiência e o custo efetivo dos métodos preditivos".

���

6 CONCLUSÃO

Este estudo trouxe como principal objetivo a identificação das potencialidades de um método específico de controle de processos, conhecido como controlador preditivo generalizado ou simplesmente GPC. O controlador foi proposto pelos seus criadores como um método de projeto que poderia ser adaptado para uma vasta gama de processos, com características diversas.

A fim de avaliar o desempenho do GPC, foi desenvolvido um algoritmo para implementar o método e aplicou-se o mesmo para controlar diversos processos diferentes, entre plantas reais e simuladas.

Como estratégia de análise, buscou-se um conjunto de combinações diferentes dos parâmetros de sintonia do GPC a fim de avaliar a influência de cada parâmetro. Escolheu-se alguns parâmetros de qualidade a fim de comparar os resultados e realizou-se os testes.

Pela análise detalhada dos resultados desses testes, chegou-se à conclusão que o GPC é um método de projeto de controlador que pode realmente ser aplicado a plantas com características diferentes e alcançar o desempenho desejado depois de alguns ajustes. Esses ajustes dizem respeito à sintonia dos horizontes de predição e de controle e do peso do esforço do controle.

O que se pode concluir é que a sintonia desses parâmetros exige um certo conhecimento por parte do projetista. Existem regras que ajudam a obter os melhores valores para os parâmetros, como foi explanado no Capítulo 3, mas a sintonia mais precisa a fim de obter o comportamento desejado para a planta requer um pouco mais de atenção do projetista.

��

Em relação ao desempenho do GPC frente a outras técnicas de controle, neste estudo não foi realizada a comparação direta com outros algoritmos controlando as mesmas plantas, mas utilizou-se do conhecimento prévio, desenvolvido ao longo das disciplinas cursadas no programa de pós-graduação, e pode-se ter um bom panorama dos resultados. Utilizando-se como base principalmente os circuitos RC e as plantas simuladas PAM e CSTR, pode-se concluir que, apesar de ser um pouco trabalhoso chegar à melhor sintonia, o GPC consegue estabilizar a saída da planta e garantir o rastreamento assintótico apenas com o ajuste inicial dos parâmetros de sintonia. Entende-se que com uma maior experiência no ajuste dos parâmetros fica mais fácil obter os valores mais adequados para cada parâmetro.

Clarke, Mohtadi e Tuffs (1987a), que propuseram o método, deram continuidade ao estudo do GPC (1987b) e fizeram várias comparações com outros métodos de controle. Em uma dessas comparações, como exemplo, reiteram que apesar das semelhanças do GPC com o LQG, a solução implícita da Equação de Ricatti no LQG assume que não há restrições no sinal de controle, ao passo que o GPC consegue realizar uma otimização do sinal de controle com a inclusão de restrições (Clarke; Mohtadi; Tuffs, 1987b, p. 152).

De uma forma geral, concluiu-se que o GPC, proposto inicialmente como uma alternativa generalizada para os demais controladores MPC, consegue efetivar o controle das plantas aqui estudadas e pode ser alvo de novos estudos utilizando outras plantas e outras estratégias de sintonia.

Dentre essas outras estratégias, cita-se os trabalhos realizados por Huang, Tan e Lee (1999) e por Abu-Ayaad e Dubay (2010), que propuseram alterações

���

no método básico, adicionando rotinas de outros controladores mais comuns.

A maior dificuldade encontrada durante os ensaios realizados foi lidar com resultados inesperados, como a dificuldade de escolher um período de amostragem no teste com o circuito RC, devido a uma limitação do sistema de aquisição utilizado. Acredita-se que este pode ser objeto de outros estudos, a fim de compreender a dinâmica do período de amostragem nessa interface Matlab® e Arduino. Da mesma forma, o tempo de espera para que o Arduino execute suas rotinas também influencia diretamente no desempenho do controlador e pode ser investigado com mais profundidade.

Um aspecto não avaliado neste trabalho é o tratamento do ruído com a incorporação dos polinômios Ej no desenvolvimento do algoritmo. Esses polinômios trabalham junto ao modelo estocástico a fim de filtrar o ruído gaussiano presente na maioria das plantas reais. Assim, outro aspecto do GPC que pode render novos estudos é a inclusão do tratamento de ruído pelo modelo estocástico através dos polinômios Ej, que pode acarretar soluções de variância mínima com horizontes de predição menores.

Por fim, sugere-se que os interessados em desenvolver novas pesquisas com o GPC avaliem as potencialidades do algoritmo, procurando melhorar sempre o custo computacional a fim de diminuir o tempo de processamento, propiciando embarcar essa técnica em controladores compactos, criando novos campos de pesquisa e novas tecnologias que poderão construir caminhos para a melhoria contínua dos processos.

���

REFERÊNCIAS [1] ABU-AYYAD, M.; DUBAY, R. Improving the performance of Generalized Predictive Controlfor nonlinear processes. Industrial & Engineering Chemistry Research, v. 49, pp. 4809-4816, 2010. [2] ÅSTRÖMM, K. J. et al. Theory and applications of self-tuning regulators. Automatica, v. 13, pp. 457-476, 1977. [3] ÅSTRÖMM, K. J.; WITTENMARK, B. Adaptive Control. 2.ed. New York: Dover Publications, 2008. [4] ______. Computer-controlled systems: theory and design. 3.ed. New Jersey: Prentice-Hall, 2013. [5] ______. On Self Tuning Regulators. Automatica, v. 9, pp. 185-199, 1973. [6] ______. Practical issues in the implementation of self-tuning control. Automatica, v. 20, n. 5, pp. 595-605, 1984. [7] ______. Problems of identification and control. Journal of Mathematical Analysis and Applications, v. 34, pp. 90-113, 1971. [8] BALBINOT, A.; BRUSAMARELLO, V. J. Instrumentação e Fundamentos de Medidas. 2.ed. Rio de Janeiro: LTC, 2013. 1v.

���

[9] BOYLESTAD, R. L.; NASHELSKY, L. Dispositivos eletrônicos e teoria de circuitos. 8.ed. São Paulo: Pearson Prentice Hall, 2004. [10] CAMACHO, E.F.; BORDONS, C. Model predictive control. Londres: Springer-Verlag London, 1999. [11] CLARKE, D. W. Application of Generalized Predictive Control to industrial processes. IEEE Control Systems Magazine, pp. 49-55, Apr. 1988. [12] CLARKE, D. W.; MOHTADI, C. Properties of Generalized Predictive Control. Automatica, v. 25, n. 6, pp. 859-875, 1989. [13] CLARKE, D. W.; MOHTADI, C.; TUFFS, P. S. Generalized Predictive Control – Part I. The Basic Algorithm. Automatica, v. 23, n. 2, pp. 137-148. 1987. [14] ______. Generalized Predictive Control – Part II. Extensions and Interpretations. Automatica, v. 23, n. 2, pp. 149-160. 1987. [15] COELHO, A. A. R.; ARAÚJO, R. B.; SILVEIRA, A. S. Steady-state tracki ng properties for the GMV controller: a review, PID tunings and applications. Industrial & Engineering Chemistry Research, v. 53, pp. 1470-1477, 2014. [16] COELHO, A. A. R.; COELHO, L. S. Identificação de Sistemas Dinâmicos Lineares. Florianópolis: Ed. da UFSC, 2004.

���

[17] CUTLER, C. R.; RAMAKER, B. L. Dynamic Matrix Control: A Computer Control Algorithm. Journal of American College of Cardiology. San Francisco, 1980. [18] ELSHAFEI, A. L.; DUMONT, G. A.; ELNAGGAR, A. Adaptive GPC based on Laguerre-filters modelling. Automatica, v. 30, n. 12, pp.1913-1920, 1994. [19] FESTO DIDACTIC. MPS PA Compact Workstation Manual. Esslingen: Adiro, 2008. [20] HO, H.L. et al. Comparative studies of three adaptive controllers. Elsevier. ISA Transactions, n. 38, pp. 43-53. 1999. [21] HO, Y.K.; MJALLI, F.S.; YEOH, H.K. Generalized predictive control with dual adaptation. Elsevier. Chemical Engineering Science, n. 84, pp. 479-493. 2012. [22] HUANG, S. N.; TAN, K. K.; LEE, T. H. Adaptive GPC control of melt temperature in injection moulding. ISA Transactions, v. 38, pp. 361-373, 1999. [23] KEMBER, G. C.; DUBAY, R.; MANSOUR, S. E. On simplified predictive control as a generalization of least-squares dynamic matrix control. ISA Transactions, v. 44, pp. 345-352, 2005. [24] MOON, S. M.; CLARK, R. L.; COLE, D. G. The recursive generalized predictive feedback control: theory and experiments. Journal of Sound and Vibration, v. 279, pp. 171-199, 2005.

���

[25] NESHASTERIZ, A.R.; KHAKI SEDIGH, A.; SADJADIAN, H. Generalized predictive control and tuning of industrial processes with second order plus and dead time models. Journal of Process Control, n. 20, pp. 63-72, 2010. [26] OGATA, K. Engenharia de Controle Moderno. 3.ed. Rio de Janeiro, LTC, 1998. [27] QIN, S. J.; BADGWELL, T. A survey of industrial model predictive control technology. Control Engineering Practice, v. 11, pp. 733-764, 2003. [28] RICHALET, J. et al. Model Predictive Heuristic Control: Applications to Industrial Processes. Automatica, v. 14, pp. 413-428, 1978. [29] SILVEIRA, A. S. Arduino-based Data Acquisition Device for Computer-controlled systems practices. Matlab Central, [S. l.], 2015. Disponível em: <http://www.mathworks.com/matlabcentral/fileexchange/50784-daqduino>. Acesso em: 15 maio 2015 09:15:30. [30] ______. Contribuições ao controle de variância mínima generalizado: abordagem de projeto no espaço de estados. Orientador: COELHO, A. A. R. Florianópolis. 2012. 147 p. Tese de Doutorado/ UFSC. [31] VASCONCELOS, F. J. S.; MEDEIROS, C. M. S. Modelagem, Simulação e Controle de uma Planta de Nível Didática. In: Congresso Norte Nordeste de Pesquisa e Inovação. 7.ed. Palmas, TO: 2012. Anais do VII CONNEPI. Disponível em: <http://propi.ifto.edu.br/ocs /index.php/connepi/vii/schedConf/presentations>. Acesso em: 24 mar.2015.

���

[32] YAMAMOTO, T.; INOUE, A.; SHAH, S. L. Generalized Minimum Variance self-tuning pole-assignment controller with a PID structure. International Conference on Control Applications. Kohala Coast Island, Hawaii, pp. 125-130, Aug. 22-27, 1999. [33] ZHANG, J. et al. Generalized Predictive Control applied in waste heat recovery power plants. Applied Energy. v. 102, pp. 320-326, 2013. [34] ZHAO, Z. et al. Nonlinear dynamic matrix control based on multiple operating models. Journal of Process Control. v. 13, pp. 41-56, 2003.

���

APÊNDICE A - ALGORITMO DE CONTROLE DO CIRCUITO RC

% GPC - circuito RC de segunda ordem clear all; close all; clc; % Identificação do sistema N1 = 1; % Horizonte mínimo de predição N2 = 4; % Horizonte máximo de predição Nu = 2; % Horizonte de controle lambda = 5; % Parâmetro de rastreamento assintótico Ts = 0.25; % Período de amostragem A = [1 -0.1078 0.3276]; % Polinômio A(z^-1) B = [0.7307 0.4890]; % Polinômio B(z^-1) na = length(A) - 1; % Ordem do polinômio A(z^-1) nb = length(B) - 1; % Ordem do polinômio B(z^-1) % Modelo aumentado: Atil = delta*A Atil(1) = 1; for i = 2:na+2 if i < na+2 Atil(i) = A(i) - A(i-1); else Atil(i) = -A(i-1); end end % Determinação dos polinômios F for i = 1:na+1 F(1,i) = -Atil(i+1); end for j = 2:N2 for i = 1:na+1 if i < na+1 F(j,i) = F(j-1,i+1)-F(j-1,1)*Atil(i+1); else F(j,i) = -F(j-1,1)*Atil(i+1); end

���

end end % Determinação pos polinômios Gp for i = 1:N2 for k = 1:N2+nb Gp(i,k) = 0; end end for i = 1:N2 if i <= nb+1 Gp(1,i) = B(i); else Gp(1,i) = 0; end end for j = 2:N2 for i = 1:j-1 Gp(j,i) = Gp(j-1,i); end Gp(j,j) = Gp(j-1,j) + B(1)*F(j-1,1); for i = j+1:j+nb Gp(j,i) = B(i-j+1)*F(j-1,1); end end % Montagem da matriz de controle G for i = 1:N2 for k = 1:Nu if i == k G(i,k) = Gp(i,1); end if i < k G(i,k) = 0; end if i > k G(i,k) = Gp(i,i-k+1);

���

end end end % Montagem do vetor Gl if nb == 0 for i = 1:N2 Gl(i,1) = 0; end else for i = 1:N2 Gl(i,1) = Gp(i,i+1); end end % Referência em degrau unitário yr(1:10) = 0; yr(11:100+N2) = 3; nit = length(yr)-N2; % Cálculo do ganho K K = inv(G'*G+lambda*eye(Nu))*G'; % Inicialização do sistema de aquisição s = serial('COM3','BaudRate',9600); fopen(s); pause(1); set(s, 'Timeout', 0.01); fprintf(s,'%s', '0.0' ); pause(3); % Teste do controlador GPC y(1:na+1) = 0; u(1:na+1) = 0; e(1:na+1) = 0; for k = na+2:nit % Leitura da saída da planta y(k) = str2num( fscanf(s,'%s',s.BytesAvailable) ); for i = 1:na+1 Y(i,1) = y(k-i+1);

���

end for i = 1:N2 w(i,1) = yr(k+i-1); end f = F*Y + Gl*(u(k-1)-u(k-2)); u(k) = u(k-1) + K(1,:)*(w-f); if u(k) > 5 u(k) = 5; elseif u(k) < 0 u(k) = 0; end % Envia entrada à planta fprintf(s,'%s', num2str( u(k) ) ); pause(0.4*Ts); e(k) = yr(k)-y(k); end % Fechamento da porta de comunicação fprintf(s,'%s', '0.0' ); fclose(s); % Cálculo da variância do erro Verro = var(e(11:nit)) % Plotagem do sistema controlado t = 0:Ts:Ts*(nit-1); subplot(211) plot(t,y,'-k',t,yr(1:nit),'-.k'); legend('Saída', 'Referência'); ylabel('Saída controlada'); subplot(212) plot(t,u,'-k'); ylabel('Sinal de controle'); xlabel('Tempo (s)');

����

APÊNDICE B - ALGORITMO DE IDENTIFICAÇÃO APLICADO AO CIRCUITO RC

% Identificação de modelo via curva de resposta clear all; close all; clc; % Gera sequência de entrada de referência yr(1:20) = 0; yr(21:70) = 3; nit = length(yr); % Número de iterações Ts = 0.1; % Período de amostragem % Inicialização do sistema de aquisição com Arduino s = serial('COM3','BaudRate',9600); fopen(s); pause(1); set(s, 'Timeout', 0.01); fprintf(s,'%s', '0.0' ); pause(3); % Execução do algoritmo for k = 1:nit, % Leitura da saída da planta y(k) = str2num( fscanf(s,'%s',s.BytesAvailable) ); % Escrita da entrada na planta fprintf(s,'%s', num2str( yr(k) ) ); pause(Ts); end % Fechamento da porta de comunicação fprintf(s,'%s', '0.0' ); fclose(s); % Plotagem da resposta ao degrau t = 0:Ts:nit*Ts-Ts; plot(t,y,'-k',t,yr,'-.k'); legend('Saída','Entrada'); ylabel('Tensão (V)'); xlabel('Tempo (s)');

����

APÊNDICE C - ALGORITMO DE CONTROLE DO CIRCUITO RC COM IDENTIFICAÇÃO POR MQR

% GPC - circuito RC de segunda ordem com MQR clear all; close all; clc; % Identificação do sistema N1 = 1; % Horizonte mínimo de predição N2 = 4; % Horizonte máximo de predição Nu = 2; % Horizonte de controle lambda = 5; % Parâmetro de rastreamento assintótico Ts = 0.25; % Período de amostragem na = 2; % Ordem do polinômio A(z^-1) nb = 1; % Ordem do polinômio B(z^-1) % Referência em degrau unitário yr(1:10) = 0; yr(11:100+N2) = 3; nit = length(yr)-N2; % Número de iterações % Inicialização do sistema de aquisição s = serial('COM3','BaudRate',9600); fopen(s); pause(1); set(s, 'Timeout', 0.01); fprintf(s,'%s', '0.0' ); pause(3); % Teste do controlador GPC com MQR y(1:na+1) = 0; u(1:na+1) = 0; e(1:na+1) = 0; a1(1:na+1) = -0.1; % Valor inicial de a1 a2(1:na+1) = 0.3; % Valor inicial de a2 b0(1:na+1) = 0.7; % Valor inicial de b0 b1(1:na+1) = 0.5; % Valor inicial de b1 P = 100*eye(4); theta = [0.01 0.01 0.01 0.01]'; for k = na+2:nit

����

% Leitura da saída da planta y(k) = str2num( fscanf(s,'%s',s.BytesAvailable) ); phi = [-y(k-1) -y(k-2) u(k-1) u(k-2)]'; L = (P*phi)/(1+phi'*P*phi); P = (eye(4)-L*phi')*P; ye(k) = phi'*theta; theta = theta + L*(y(k) - ye(k)); a1(k) = theta(1,1); a2(k) = theta(2,1); b0(k) = theta(3,1); b1(k) = theta(4,1); A = [1 a1(k) a2(k)]; B = [b0(k) b1(k)]; % Modelo aumentado: Atil = delta*A Atil(1) = 1; for i = 2:na+2 if i < na+2 Atil(i) = A(i) - A(i-1); else Atil(i) = -A(i-1); end end % Determinação dos polinômios F for i = 1:na+1 F(1,i) = -Atil(i+1); end for j = 2:N2 for i = 1:na+1 if i < na+1 F(j,i) = F(j-1,i+1)-F(j-1,1)*Atil(i+1); else F(j,i) = -F(j-1,1)*Atil(i+1); end end end

����

% Determinação pos polinômios Gp for i = 1:N2 for j = 1:N2+nb Gp(i,j) = 0; end end for i = 1:N2 if i <= nb+1 Gp(1,i) = B(i); else Gp(1,i) = 0; end end for j = 2:N2 for i = 1:j-1 Gp(j,i) = Gp(j-1,i); end Gp(j,j) = Gp(j-1,j) + B(1)*F(j-1,1); for i = j+1:j+nb Gp(j,i) = B(i-j+1)*F(j-1,1); end end % Montagem da matriz de controle G for i = 1:N2 for j = 1:Nu if i == j G(i,j) = Gp(i,1); end if i < j G(i,j) = 0; end if i > j G(i,j) = Gp(i,i-j+1); end end

����

end % Montagem do vetor Gl if nb == 0 for i = 1:N2 Gl(i,1) = 0; end else for i = 1:N2 Gl(i,1) = Gp(i,i+1); end end % Cálculo do ganho K K = inv(G'*G+lambda*eye(Nu))*G'; for i = 1:na+1 Y(i,1) = y(k-i+1); end for i = 1:N2 w(i,1) = yr(k+i-1); end f = F*Y + Gl*(u(k-1)-u(k-2)); u(k) = u(k-1) + K(1,:)*(w-f); if u(k) > 5 u(k) = 5; elseif u(k) < 0 u(k) = 0; end % Envia entrada à planta fprintf(s,'%s', num2str( u(k) ) ); pause(0.4*Ts); e(k) = yr(k)-y(k); end % Fechamento da porta de comunicação fprintf(s,'%s', '0.0' ); fclose(s); % Cálculo da variância do erro

����

Verro = var(e(11:nit)) % Plotagem do sistema controlado t = 0:Ts:Ts*(nit-1); subplot(311) plot(t,y,'-k',t,yr(1:nit),'-.k'); legend('Saída', 'Referência'); ylabel('Saída controlada'); subplot(312) plot(t,u,'-k'); ylabel('Sinal de controle'); subplot(313) plot(t,a1,'-k',t,a2,'-.k',t,b0,'.k',t,b1,'xk'); ylabel('Parâmetros do modelo'); legend('a1', 'a2', 'b0', 'b1'); xlabel('Tempo (s)');

����

APÊNDICE D - ALGORITMO DE CONTROLE DO PROCESSO DE VAZÃO DA PLANTA FESTO®

% GPC - controle de vazão clear all; close all; clc; % Identificação do sistema N1 = 1; % Horizonte mínimo de predição N2 = 12; % Horizonte máximo de predição Nu = 3; % Horizonte de controle lambda = 5; % Parâmetro de rastreamento assintótico Ts = 0.1; % Período de amostragem A = [1 -0.9131]; % Polinômio A(z^-1) B = [0.0825]; % Polinômio B(z^-1) na = length(A) - 1; % Ordem do polinômio A(z^-1) nb = length(B) - 1; % Ordem do polinômio B(z^-1) % Modelo aumentado: Atil = delta*A Atil(1) = 1; for i = 2:na+2 if i < na+2 Atil(i) = A(i) - A(i-1); else Atil(i) = -A(i-1); end end % Determinação dos polinômios F for i = 1:na+1 F(1,i) = -Atil(i+1); end for j = 2:N2 for i = 1:na+1 if i < na+1 F(j,i) = F(j-1,i+1)-F(j-1,1)*Atil(i+1); else F(j,i) = -F(j-1,1)*Atil(i+1); end

����

end end % Determinação pos polinômios Gp for i = 1:N2 for k = 1:N2+nb Gp(i,k) = 0; end end for i = 1:N2 if i <= nb+1 Gp(1,i) = B(i); else Gp(1,i) = 0; end end for j = 2:N2 for i = 1:j-1 Gp(j,i) = Gp(j-1,i); end Gp(j,j) = Gp(j-1,j) + B(1)*F(j-1,1); for i = j+1:j+nb Gp(j,i) = B(i-j+1)*F(j-1,1); end end % Montagem da matriz de controle G for i = 1:N2 for k = 1:Nu if i == k G(i,k) = Gp(i,1); end if i < k G(i,k) = 0; end if i > k G(i,k) = Gp(i,i-k+1);

����

end end end % Montagem do vetor Gl if nb == 0 for i = 1:N2 Gl(i,1) = 0; end else for i = 1:N2 Gl(i,1) = Gp(i,i+1); end end % Referência em degrau unitário yr(1:10) = 0; yr(11:100+N2) = 5; nit = length(yr)-N2; % Número de iterações % Cálculo do ganho K K = inv(G'*G+lambda*eye(Nu))*G'; % Inicialização do sistema de aquisição start_easyport; pause(2); % Teste do controlador GPC y(1:na+1) = 0; u(1:na+1) = 0; e(1:na+1) = 0; for k = na+2:nit % Leitura normalizada da tensão do fluxo y(k) = 10*read_flow/5.56; for i = 1:na+1 Y(i,1) = y(k-i+1); end for i = 1:N2 w(i,1) = yr(k+i-1); end

����

f = F*Y + Gl*(u(k-1)-u(k-2)); u(k) = u(k-1) + K(1,:)*(w-f); if u(k) > 10 u(k) = 10; elseif u(k) < 0 u(k) = 0; end % Escrita do valor de tensão para bomba write_pump(u(k)); pause(Ts); e(k) = yr(k)-y(k); end % Finalização da interface write_pump(0); pause(2); % Cálculo da variância do erro Verro = var(e(11:nit)) % Plotagem do sistema controlado t = 0:Ts:Ts*(nit-1); subplot(211) plot(t,y,'-k',t,yr(1:nit),'-.k'); legend('Saída', 'Referência'); ylabel('Saída controlada'); subplot(212) plot(t,u,'-k'); ylabel('Sinal de controle'); xlabel('Tempo (s)');

����

APÊNDICE E - ALGORITMO DE CONTROLE DO CSTR % GPC - CSTR com MQR clear all; close all; clc; % Identificação do GPC N1 = 1; % Horizonte mínimo de predição N2 = 60; % Horizonte máximo de predição Nu = 6; % Horizonte de controle lambda = 1; % Parâmetro de rastreamento assintótico Ts = 0.1; % Período de amostragem % Referência em degrau unitário yr(1:10) = 0; yr(11:100+N2) = 1; nit = length(yr)-N2; % Número de iterações % Inicialização do algoritmo for k = 1:2 expo(k) = 0; x1(k) = 0; y(k) = 0; ye(k) = 0; u(k) = 0; e(k) = 0; a1(k) = -1.4; % Valor inicial de a1 a2(k) = 0.4; % Valor inicial de a2 b0(k) = 0.02; % Valor inicial de b0 b1(k) = 0.02; % Valor inicial de b1 end P = 10*eye(4); theta = [0.01 0.01 0.01 0.01]'; gama = 0.072; Da = 0.072; beta = 0.3; % Teste do controlador GPC for k = 3:nit expo(k) = exp(y(k-1)/(1+y(k-1)/gama));

����

x1(k) = x1(k-1)+Ts*(-x1(k-1)+Da*(1-x1(k-1))*expo(k)); y(k) = y(k-1)-Ts*y(k-1)*(1-beta)+Ts*(8*Da*(1-x1(k-

1))*expo(k)+beta*u(k-1)); phi = [-y(k-1) -y(k-2) u(k-1) u(k-2)]'; L = (P*phi)/(1+phi'*P*phi); P = (eye(4)-L*phi')*P; ye(k) = phi'*theta; theta = theta + L*(y(k) - ye(k)); a1(k) = theta(1,1); a2(k) = theta(2,1); b0(k) = theta(3,1); b1(k) = theta(4,1); A = [1 a1(k) a2(k)]; B = [b0(k) b1(k)]; na = length(A)-1; nb = length(B)-1; % Modelo aumentado: Atil = delta*A Atil(1) = 1; for i = 2:na+2 if i < na+2 Atil(i) = A(i) - A(i-1); else Atil(i) = -A(i-1); end end % Determinação dos polinômios F for j = 1:N2 for i = 1:na+1 if j == 1 F(j,i) = -Atil(i+1); elseif i < na+1 F(j,i) = F(j-1,i+1)-F(j-1,1)*Atil(i+1); else F(j,i) = -F(j-1,1)*Atil(i+1); end

����

end end % Determinação dos polinômios G for i = 1:N2 for j = 1:N2+nb Gp(i,j) = 0; end end for i = 1:N2 if i <= nb+1 Gp(1,i) = B(i); else Gp(1,i) = 0; end end for j = 2:N2 for i = 1:j-1 Gp(j,i) = Gp(j-1,i); end Gp(j,j) = Gp(j-1,j) + B(1)*F(j-1,1); for i = j+1:j+nb Gp(j,i) = B(i-j+1)*F(j-1,1); end end % Montagem da matriz de controle G for i = 1:N2 for j = 1:Nu if i == j G(i,j) = Gp(i,1); end if i < j G(i,j) = 0; end if i > j G(i,j) = Gp(i,i-j+1);

����

end end end % Cálculo do ganho K K = inv(G'*G+lambda*eye(Nu))*G'; for i = 1:na+1 Y(i,1) = y(k-i+1); end if nb == 0 for i = 1:N2 Gl(i,1) = 0; end else for i = 1:N2 Gl(i,1) = Gp(i,i+1); end end for i = 1:N2 w(i,1) = yr(k+i-1); end f = F*Y + Gl*(u(k-1)-u(k-2)); u(k) = u(k-1) + K(1,:)*(w-f); e(k) = yr(k)-y(k); end % Cálculo da variância do erro Verro = var(e(11:nit)) % Plotagem t = 0:0.1:0.1*(nit-1); subplot(311) plot(t,yr(1:nit),'-.k',t,y,'-k'); ylabel('Saída controlada'); legend('Referência', 'Saída'); subplot(312) plot(t,u,'-k'); ylabel('Sinal de controle');

����

subplot(313) plot(t,a1,'-k',t,a2,'-.k',t,b0,'.k',t,b1,'xk'); ylabel('Parâmetros do modelo'); legend('a1', 'a2', 'b0', 'b1'); xlabel('Tempo (s)');

����

ANEXO A - ROTINA DE COMANDOS DE LEITURA E ESCRITA DO MÓDULO ARDUINO

// D/A Converter test using Two Low-pass Filters float u[1]={0.0}; float y[1]={0.0}; #define DA6 (6) // PWM Pin 6 void setup() { Serial.begin(9600); Serial.setTimeout(10); // Maximum milisecs to wait for // Serial.parseFloat to timeout } void loop() { if (Serial.available() > 0) { u[0] = Serial.parseFloat(); u[0] = u[0]*(255/5.0); analogWrite(DA6,u[0]); y[0] = analogRead(A0)*(5/1023.0); Serial.print(y[0]); } }

����

ANEXO B - ROTINA DE INICIALIZAÇÃO DA INTERFACE COM PLANTA FESTO

% Start EasyPort % Analog Inputs: % Ch0 = level % Ch1 = flow % Ch3 = temperature % Ch2 = pressure % % Analog Outputs: % Ch0 = pump % Ch1 = valve % % Proportional Bits On % EasyPort1.Bits.OutputPort1Bit02 = ProportionalPump % EasyPort1.Bits.OutputPort1Bit04 = ProportionalValve % OPC Check-up or Installation try EasyPort=opcda('localhost','FestoDidactic.EzOPC.1'); EasyPort.Timeout=5; handle_exist='true'; connect(EasyPort); catch opcregister; connect(EasyPort); end global level flow temperature pressure pump valve

heatunit; % Generating IO groups and items AnalogInputs = addgroup(EasyPort,'AnalogInputs'); AnalogInputs.UpdateRate=0.01; level = additem(AnalogInputs,'EasyPort1.AnalogIn0'); flow = additem(AnalogInputs,'EasyPort1.AnalogIn1');

����

temperature = additem(AnalogInputs,'EasyPort1.AnalogIn3');

pressure = additem(AnalogInputs,'EasyPort1.AnalogIn2');

AnalogOutputs = addgroup(EasyPort,'AnalogOutputs'); AnalogOutputs.UpdateRate=0.01; pump =

additem(AnalogOutputs,'EasyPort1.AnalogOut0');

valve = additem(AnalogOutputs,'EasyPort1.AnalogOut1');

ProportionalBits =

addgroup(EasyPort,'ProportionalBits'); pumpBit2 =

additem(ProportionalBits,'EasyPort1.Bits.OutputPort1Bit02');

write(pumpBit2,1); valveBit4 =

additem(ProportionalBits,'EasyPort1.Bits.OutputPort1Bit04');

write(valveBit4,1); DigitalOutputs = addgroup(EasyPort,'DigitalOutputs'); heatunit =

additem(DigitalOutputs,'EasyPort1.Bits.OutputPort1Bit01');

write(heatunit,0); clc; disp('>>>> EasyPort is connected!

<<<<<'); disp(' ');

����

IoHelp=[ 'Single-Shot Acquisition by: '; ' read_level() '; ' read_flow() '; ' read_temperature() '; ' read_pressure() '; ' '; 'Analog Outputs: '; ' write_pump(Voltage) '; ' write_valve(Voltage) '; ' '; 'Digital Outputs: '; ' write_heat( 0=off,1=on ) '; ' ']; disp(IoHelp); disp('>>>> All I/O units are given in Volts in the range of

0V ~ 10V <<<<');

����

ANEXO C - ROTINAS DE LEITURA E ESCRITA DE GRANDEZAS DA PLANTA FESTO

Comando read_flow

% Reads the Analog Input from the Flow Rate Sensor (0

~ 10 Volts) function flowIN=read_flow() global flow; flowIN=double(flow.Value)*(10/32767); end

Comando read_level % Reads the Analog Input from the Level Sensor (0 ~ 10

Volts) function levelIN=read_level() global level; levelIN=double(level.Value)*(10/32767); end

Comando write_pump % Sets the Analog Output to the Pump (0 ~ 10 Volts) function write_pump(volt) global pump; if volt>=10, volt=10; elseif volt<=0, volt=0; end write(pump,(volt*(32767/10))); end