CONTROLO DA VELOCIDADE

CONTROLO DA VELOCIDADE DE UM SISTEMA SERVO Luís Miguel Mota Ferreira - 1080500 Tiago José Mamede Silva Marques - 1080550 Departamento de Engenharia ...
1 downloads 1 Views 2MB Size
CONTROLO DA VELOCIDADE DE UM SISTEMA SERVO

Luís Miguel Mota Ferreira - 1080500 Tiago José Mamede Silva Marques - 1080550

Departamento de Engenharia Electrotécnica Instituto Superior de Engenharia do Porto 2012

iii

Índice ÍNDICE .......................................................................................................................................................... IV ÍNDICE DE FIGURAS ................................................................................................................................... V ÍNDICE DE TABELAS ................................................................................................................................ IX 1.

OBJECTIVOS ....................................................................................................................................... 11

2.

INTRODUÇÃO ..................................................................................................................................... 12

3.

2.1.

SISTEMA SERVO .............................................................................................................................. 12

2.2.

MODELO MATEMÁTICO ................................................................................................................... 15

2.3.

CONTROLADOR PID ........................................................................................................................ 17

2.4.

SINTONIA BASEADA EM HEURÍSTICAS............................................................................................. 21

EXPERIÊNCIAS REALIZADAS ........................................................................................................ 31 3.1.

GUIÃO 1 .......................................................................................................................................... 31

3.2.

GUIÃO 2 .......................................................................................................................................... 71

REFERÊNCIAS DOCUMENTAIS .............................................................................................................. 84 ANEXO A. CÓDIGO MATLAB PARA A DETERMINAÇÃO DOS PARÂMETROS DE SINTONIA DOS CONTROLADORES PID ATRAVÉS DA HEURÍSTICA DE Z-A ................................................. 85

iv

Índice de Figuras Figura 1

Diagrama do sistema servo ........................................................................................................ 12

Figura 2

Modelo em malha fechada do sistema servo, no SIMULINK ................................................... 13

Figura 3

Modelo em malha aberta do sistema servo, no SIMULINK ...................................................... 14

Figura 4

Modelo do servo com controlador difuso, no SIMULINK ........................................................ 14

Figura 5

Modelo matemático do motor DC ............................................................................................. 16

Figura 6

Esquema de um controlador PID ............................................................................................... 17

Figura 7

Exemplo do impacto dos ganhos proporcionais num sistema ................................................... 18

Figura 8

Exemplo do impacto de um ganho integrativo num sistema ..................................................... 20

Figura 9

Esquematização dos parâmetros de sintonia em malha aberta................................................... 22

Figura 10

Esquematização dos parâmetros da sintonia em malha fechada ................................................ 24

Figura 11

Esquemático de um sistema difuso ............................................................................................ 26

Figura 12

Exemplo de um universo de trabalho de um controlador difuso ............................................... 28

Figura 13

Processo de desfuzificação ........................................................................................................ 30

Figura 14

Gráfico obtido no sistema servo para um ganho critico de 0.0856 ............................................ 32

Figura 15

Parâmetros de saída da função id_zn_mf observados no MATLAB ......................................... 34

Figura 16

Parâmetros devolvidos pela função de sintonização zn2 no MATLAB .................................... 35

Figura 17

Resposta do sistema para um controlador do tipo P em malha fechada .................................... 36

Figura 18

Resposta do sistema para um controlador do tipo PI em malha fechada ................................... 37

Figura 19

Resposta do sistema para um controlador do tipo PID em malha fechada ................................ 37

Figura 20

Resposta para metade do ganho proporcional num controlador P em malha fechada ............... 39

Figura 21

Resposta para o dobro do ganho proporcional num controlador do tipo P em malha fechada .. 39

Figura 22

Resposta para metade do ganho integrativo num controlador PI em malha fechada ................. 40

Figura 23

Resposta para o dobro do ganho integrativo num controlador PI em malha fechada ................ 40

Figura 24

Resposta para metade do ganho derivativo num controlador PID em malha fechada ............... 41

Figura 25

Resposta para o dobro do ganho derivativo num controlador PID em malha fechada .............. 41

Figura 26

Resposta do sistema servo para uma entrada de 1 rad/s ............................................................ 43

Figura 27

Saída da função id_zn_ma observada no MATLAB ................................................................. 45

Figura 28

Representação da aproximação linear e da resposta do sistema servo em malha aberta ........... 46

Figura 29

Parâmetros devolvidos pela função de sintonização zn1 no MATLAB .................................... 47

Figura 30

Resposta do sistema para um controlador do tipo P em malha aberta ....................................... 48

Figura 31

Resposta do sistema para um controlador do tipo PI em malha aberta ...................................... 49

Figura 32

Resposta do sistema para um controlador do tipo PID em malha aberta ................................... 49

Figura 33

Resposta para metade do ganho proporcional num controlador do tipo P em malha aberta . 51

Figura 34

Resposta para o dobro do ganho proporcional num controlador do tipo P em malha aberta ..... 51

v

Figura 35

Resposta para metade do ganho integrativo num controlador do tipo PI em malha aberta .... 52

Figura 36

Resposta para o dobro do ganho integrativo num controlador do tipo PI em malha aberta ... 52

Figura 37

Resposta para metade do ganho derivativo num controlador do tipo PID em malha aberta .. 53

Figura 38

Resposta para o dobro do ganho derivativo num controlador do tipo PID em malha aberta ..... 53

Figura 39

Resposta do sistema para os valores proporcionais obtidos em malha fechada e malha aberta . 55

Figura 40

Resposta do sistema para os valores integrativos obtidos em malha fechada e malha aberta .... 55

Figura 41

Resposta do sistema para os valores proporcionais obtidos em malha fechada e malha aberta . 56

Figura 42

Modelo do sistema servo no SIMULINK utilizando uma função de primeira ordem com atraso 57

Figura 43

Resposta do sistema simulado para um controlador P ............................................................... 58

Figura 44

Resposta do sistema simulado para um controlador PI .............................................................. 58

Figura 45

Resposta do sistema simulado para um controlador PID ........................................................... 59

Figura 46

Resposta do sistema simulado para um controlador P com metade do ganho proporcional .. 60

Figura 47

Resposta do sistema simulado para um controlador P com o dobro do ganho proporcional . 60

Figura 48

Resposta do sistema simulado para um controlador PI com metade do ganho integral ............. 61

Figura 49

Resposta do sistema simulado para um controlador PI com o dobro do ganho integral ............ 61

Figura 50

Resposta do sistema simulado para um controlador PID com metade do ganho derivativo .. 62

Figura 51

Resposta do sistema simulado para um controlador PID com o dobro do ganho derivativo . 62

Figura 52

Saída da função calc_ov no MATLAB ...................................................................................... 64

Figura 53

Resposta do sistema observada para um aumento da acção de controlo derivativa no PID ....... 65

Figura 54

Estatísticas da nova resposta obtidas através do MATLAB após aumento do ganho

derivativo 65 Figura 55

Resposta observada para uma diminuição da acção de controlo proporcional ........................... 66

Figura 56

Estatísticas da nova resposta obtida no MATLAB apos a diminuição do ganho proporcional 67

Figura 57

Parâmetros de saída da função za no MATLAB ........................................................................ 68

Figura 58

Resposta do sistema servo para o controlador PI sintonizado através da heurística Z-A ........... 69

Figura 59

Resposta do sistema servo para o controlador PID sintonizado através da heurística Z-A ........ 70

Figura 60

Função de pertença da entrada valor do erro, para o controlador difuso de 49 regras ............... 73

Figura 61

Funções de pertença da entrada variação do erro, para o controlador difuso de 49 regras .... 73

Figura 62

Função de pertença da saída para o controlador difuso de 49 regras ......................................... 74

Figura 63

Sistema de controlo difuso no MATLAB .................................................................................. 75

Figura 64

Resposta de saída do sistema simulado com todos os ganhos a 1 .............................................. 76

Figura 65

Resposta de saída do sistema simulado melhorada para o controlador de 49 regras .................. 77

Figura 66

Resposta de saída do sistema servo modular para o controlador de 49 regras (1) ...................... 78

Figura 67

Resposta de saída do sistema servo modular para o controlador de 49 regras (2) ...................... 79

Figura 68

Funções de pertença dos conjuntos da entrada, erro, para o controlador difuso de 9 regras ...... 80

Figura 69

Função de pertença dos conjuntos da entrada, variação do erro, para o controlador difuso de

9 regras

80

vi

Figura 70

Função de pertença dos conjuntos da saída para o controlador difuso de 9 regras .................... 81

Figura 71

Resposta de saída do sistema simulado melhorada para o controlador de 9 regras ................... 82

Figura 72

Resposta de saída do sistema servo modular para o controlador de 9 regras (1) ....................... 82

Figura 73

Resposta de saída do sistema servo modular para o controlador de 9 regras (2) ....................... 83

vii

viii

Índice de Tabelas Tabela 1

Resumo das acções dos ganhos de um controlador PID num sistema ......................... 21

Tabela 2

Resumo das regras de sintonização para a heurística de Z-N em malha aberta ........... 23

Tabela 3

Resumo das regras de sintonização para as regras de Z-N em malha fechada ............. 24

Tabela 4

Resumo dos valores dos coeficientes a e b para o controlador PI ................................ 25

Tabela 5

Resumo dos valores dos coeficientes a e b para o controlador PID ............................. 26

Tabela 6

Resumo dos parâmetros de sintonização ...................................................................... 36

Tabela 7

Resumo dos parâmetros de sintonização alterados para malha fechada ...................... 38

Tabela 8

Resumo dos parâmetros de sintonização ...................................................................... 48

Tabela 9

Resumo dos parâmetros de sintonização alterados para malha aberta ......................... 50

Tabela 10

Parâmetros do controlador PID actualizados ............................................................... 65

Tabela 11

Parâmetros do controlador PID actualizados ............................................................... 66

Tabela 12

Resumo dos parâmetros sintonizados através da heurística de Z-A............................. 69

Tabela 13

Regras difusas para o controlador de 49 regras ............................................................ 74

Tabela 14

Regras Difusas para o controlador de 9 regras ............................................................. 81

ix

1. OBJECTIVOS Neste relatório irão ser descritos os dois trabalhos práticos realizados nas aulas PL de Sistemas de Controlo Avançado. O primeiro trabalho tem como objectivo primário o controlo de velocidade de um sistema servo utilizando um controlador PID. Este sistema irá ser sujeito a inúmeros testes sendo depois analisadas as diversas respostas. Além do resultado final que será apresentado, fazem parte dos objectivos secundários: a análise, modelação, e identificação do sistema servo e aplicação das regras de Ziegler-Nichols em malha aberta e fechada. O segundo trabalho realizado consiste em controlar o sistema servo usando lógica difusa. Perceber e aplicar os conceitos associados aos sistemas de inferência difusa e implementálo através do MATLAB/Simulink. Analisar os sistemas difusos e perceber as implicações e vantagens/desvantagens de um controlo deste tipo.

11

2. INTRODUÇÃO Neste capítulo será feita uma breve descrição das tecnologias utilizadas e dos conceitos teóricos envolvidos na criação deste relatório.

2.1.

SISTEMA SERVO

Figura 1

Diagrama do sistema servo

12

O sistema servo consiste em vários módulos, montados numa régua metálica e ligados entre si através de pequenos acopladores. Os módulos são ligados em cadeia. O motor DC com o gerador taquimétrico aparece no topo da frente e o sistema de engrenagens com o disco de saída no topo de trás da régua metálica, conforme mostra a Figura 1. O motor DC pode ser acoplado com os seguintes módulos: módulo de inércia, módulo de travagem magnética, módulo de folga (i.e., backlash) e módulo de engrenagens (N = 100) com disco de saída. O deslocamento angular do veio do motor é medido através de um codificador incremental. O codificador pode ser colocado entre dois quaisquer módulos para medir o ângulo de rotação. O tacogerador está ligado directamente ao motor e gera uma tensão proporcional à velocidade angular.



Na realização destas duas experiências foi usada a seguinte configuração:



Motor DC com gerador de taquimétrico;



Módulo de inércia;



Módulo de codificador incremental;



Módulo de engrenagens com disco de saída.

A comunicação com o sistema é feita com o auxílio do MATLAB/SIMULINK. Para isso foi utilizado o modelo em tempo real dado na Figura 2.

Figura 2

Modelo em malha fechada do sistema servo, no SIMULINK

13

Este modelo é utilizado para os testes em malha fechada, mas que pode ser adaptado tanto para malha aberta (Figura 3), como para controlador difuso (Figura 4).

Figura 3

Figura 4

Modelo em malha aberta do sistema servo, no SIMULINK

Modelo do servo com controlador difuso, no SIMULINK

Depois de compilado, o módulo está pronto a ser utilizado.

Executados todos os testes, é necessário guardar os dados. Os valores obtidos serão guardados na variável VelCrtl colocada no espaço de trabalho do MATLAB, e que se encontra definida no osciloscópio (“Reference & Velocity Control”).

14

t = VelCtrl.time; ref = VelCtrl.signals(1).values(:,2); vel = VelCtrl.signals(1).values(:,1);

Com os comandos mencionados é possível decompor, no MATLAB, a variável VelCtrl nas variáveis de saída t, ref e vel para poderem ser analisados. Também se pode visualizar o gráfico da resposta ao degrau, correndo a rotina com os seguintes comandos:

plot(t,ref,'b') hold on plot(t,vel,'r') xlabel('tempo (s)') title('Entrada de referência (azul) - Velocidade (vermelho)')

2.2.

MODELO MATEMÁTICO

Na figura 5 ilustra-se o modelo linear do sistema com que estamos a trabalhar. Despreza-se tanto a indutância da armadura do motor como quaisquer atritos e a saturação.

15

Figura 5

Modelo matemático do motor DC

Sendo: 

, a tensão aplicada;



, a corrente da armadura;



, a velocidade angular do rotor;



R, a resistência do enrolamento da armadura;



J, o momento de inércia das partes rotativas;



B, o coeficiente de atrito devido ao atrito viscoso;

 

, a força contra-electromotriz (f.c.e.m.); , o binário electromecânico.

Função de transferência do sistema:

16

2.3.

CONTROLADOR PID

Figura 6

Esquema de um controlador PID

O controlador PID é a forma mais comum de controlo por realimentação. Devido à sua simplicidade e excelente performance em muitas aplicações, estes controladores são usados em 95% dos processos industriais de malha-fechada [1]. Tal utilização deve-se ao facto de ser facilmente implementável, de baixo custo, versátil e capaz de alterar os comportamentos transitórios e de regime permanente dos processos sob controlo. Actualmente, a maioria dos processos automatizados que utilizam PLC’s (Programmable Logic Controller), possuem malhas de controlo de algoritmos PID, sendo responsabilidade dos engenheiros/técnicos a tarefa de sintonia dos parâmetros dos controladores. A sua adaptação às novas mudanças na tecnologia permitiu o aumento de recursos adicionais tais como o ajuste automático, a programação dos ganhos e a adaptação contínua. Muito resumidamente, este tipo de controlador calcula o erro entre o valor medido (set point) e o valor desejado, e tenta minimizá-lo ajustando as entradas que controlam o processo como sugere a figura 6. O cálculo da acção do controlador envolve, separadamente, três constantes: a proporcional (P), a integral (I), e a derivativa (D). A soma destes três componentes dá-nos a saída,

17

, do controlador e o seu algoritmo (1).

(



)

Nos parágrafos seguintes irão ser analisados os efeitos provocados por cada uma das destas constantes e tipo de controlo que elas exercem.

2.3.1.

GANHO PROPORCIONAL

Figura 7

Exemplo do impacto dos ganhos proporcionais num sistema

Para se estabelecer um controlo proporcional é necessário que variar

e

, fazendo

. Neste tipo de controlo verifica-se que com o aumento do ganho proporcional, o

erro diminui. Analisando (2) pode-se comprovar isso mesmo, pois para um erro pequeno, se a constante Kp tiver um valor baixo o controlo irá ser praticamente inexistente não sendo possível colmatar o erro que ainda existe.

18

Por outro lado, um valor demasiado alto pode criar uma maior oscilação no sistema devido ao excesso de controlo quando o erro é baixo, não sendo possível que este estabilize. As conclusões retiradas da análise de (2) podem ser observadas na figura 7.

2.3.2.

GANHO INTEGRAL

Adicionando a parte integrativa, passa-se a ter um controlador do tipo Proporcional Integral – PI. Irá ser considerado o ganho proporcional constante, variando apenas a constante de tempo integral – Ti. A saída associada a este tipo de controlador passará a ser (3).

(



)

A acção da parte integrativa aumenta com a diminuição de Ti porque o ganho desta componente é dado por (4).

.

A grande vantagem da adição da constante integrativa é a eliminação do erro do valor final. Porém todos os erros anteriores são aumentados, causando um grande overshoot se a sua acção for elevada, ou seja, Ti baixo.

19

Figura 8

Exemplo do impacto de um ganho integrativo num sistema

Enquanto que a parte proporcional considera o valor de e(t) em cada momento, o termo integrativo considera a “história” do erro, por quanto e quanto tempo esteve afastado do ponto final. É de notar que na Figura 8, o integral de cada porção a sombreado tem o mesmo sinal que o erro. Assim o soma do integral cresce quando e(t) é positivo e diminui quando é negativo.

2.3.3.

GANHO DERIVATIVO

Por último, e com a adição da componente derivativa, obtém-se uma saída do controlador, u(t), igual ao do PID (1). A derivada do erro do processo é calculada através do declive do erro ao longo do tempo e depois multiplicada pelo ganho derivativo Kd (5).

20

Esta componente pode ser analisada com a previsão dos erros futuros, pois ao calcular o declive do erro, ou seja, o ritmo de alteração provocado pelo controlador no sistema, o ganho derivativo torna essas mesmas mudanças mais lentas, o que por consequência torna também mais lenta a saída do controlador. Na prática, o controlo derivativo permite reduzir o overshoot provocado pelo ganho integrativo, e melhora a estabilidade do sistema. No entanto, também existem desvantagens no uso desta componente. Pode-se verificar não só um aumento no tempo de resposta do sistema se este ganho for demasiado grande, como também a destabilização do sistema, pois a derivada do sinal amplifica o ruído. Por isso mesmo são mais usadas aproximações a diferenciadores com larguras de banda limitadas. Em resumo a tabela 1 mostra o impacto do aumento dos diversos ganhos num sistema:

Tabela 1

Resumo das acções dos ganhos de um controlador PID num sistema

Parâmetros Tempo de subida

2.4.

Overshoot

Tempo de estabilização

Erro final

Estabilidade

Kp

Diminui

Aumenta

Ligeira mudança

Diminui

Degrada

Ki

Diminui

Aumenta

Aumenta

Elimina

Degrada

Kd

Alteração mínima

Diminui

Diminui

Não altera

Melhora se Kd pequeno

SINTONIA BASEADA EM HEURÍSTICAS

Para sintonizar um controlador é necessário ajustar todos os ganhos em causa de acordo com a resposta pretendida. A estabilidade é requisito quase obrigatório, mas à parte disso, existem sistemas com diferentes comportamentos, diferentes requisitos, etc. Existem vários métodos de sintonia de um controlador mas não conclusões sobre qual é o melhor, pois cada um deles pode ser eficiente para um sistema específico. Apenas é

21

possível concluir que alguns são melhor que outros na rejeição de perturbações e/ou robustez [2]. Apesar de grande variedade de formas de sintonia, apenas se irão aqui retractar dois métodos heurísticos pois são estes os aplicados na primeira experiência realizada relativa a controladores PID.

2.4.1.

MÉTODO DE SINTONIA ZIEGLER-NICHOLS

Zegler e Nicholis (1942) propuseram um método baseado na resposta do processo a uma excitação em degrau (malha-aberta) e regra de sintonia baseado no ganho crítico Kcrítico e no período crítico Pcrítico (malha-fechada). Na primeira experiência foram usadas estas duas formas de sintonia que irão ser explicadas de seguida. O primeiro, sintonia do controlador por malha aberta, pode ser visto como método tradicional baseado em modulação e controlo, onde se assume um modelo matemático de 1ª ordem com atraso de transporte para o sistema. Inicialmente é aplicado um degrau ao sistema. Um exemplo de resposta pode ser o da Figura 9.

Figura 9

Esquematização dos parâmetros de sintonia em malha aberta

22

Depois de registada a saída, o passo seguinte será calcular o ponto de maior declive positivo, ou seja, o ponto máximo da derivada. Achado o respectivo ponto e a sua derivada (m), usa-se a equação de uma recta (6) para saber em que ponto esta se intersecta com o eixo dos yy (b).

A partir da equação é possível traçar a recta ao longo do gráfico e saber em que ponto, no tempo, se intersecta tanto com o valor inicial como o valor final. Na figura 9, o valor de L interpreta-se como o atraso do sistema, T simboliza a constante de tempo do sistema, e K o ganho do sistema calculado pela entre a origem e o valor final do sistema em regime permanente. Com estes valores o processo irá ser modulado para a equação (7) que deverá produzir uma resposta idêntica ao sistema real.

Através destes valores calculados pode-se sintonizar os tipos de controlador encontrados na tabela 2, sabendo que a R é o declive da recta tangente pois (8). Será necessário recorrer a (7) e (8), para calcular os ganhos das componentes integrativa e derivativa, para os controladores PI e PID, respectivamente.

Tabela 2

Resumo das regras de sintonização para a heurística de Z-N em malha aberta

Tipo de controlador

Kp

Ti

Td

P

0

PI

0

PID

2L

23

0.5L

O segundo método, sintonia de controlador em malha-fechada, é baseado nas características da resposta transitória do processo para a determinação dos parâmetros Kp, Ti e Td.

Figura 10 Esquematização dos parâmetros da sintonia em malha fechada

No início, o controlo do sistema é feito com um controlador proporcional. Procede-se então ao aumento gradual do valor da acção de controlo proporcional até achar o valor do ganho para qual o sistema entra numa oscilação estável. Este ganho é o ganho crítico (chamado de Ku ou Kc), e o período da onda é o período crítico (chamado de Pu ou Pc). Por último são calculados os parâmetros pretendidos de acordo com as fórmulas da tabela 3 e do tipo de controlo que se pretende exercer.

Tabela 3

Resumo das regras de sintonização para as regras de Z-N em malha fechada

Tipo de controlador

Kp

Ti

Td

P

0

PI

0

PID

24

2.4.2.

MÉTODO DE SINTONIA DE ZHUANG-ATHERTON

Em 1993, Zhuang e Atherton conceberam um método prático para a sintonia de controladores PI e PID. Esta optimização é baseada no critério de integral do erro. São utilizados alguns índices de desempenho para a avaliação da sintonia dos controladores, como por exemplo: integral do erro quadrático (ISE), integral do erro quadrático multiplicado pelo tempo (ISTE), etc.

Os parâmetros de sintonia são obtidos quando o modelo do processo é dado por uma função de transferência de primeira ordem com um tempo de atraso expresso por (9).

Para o controlo PI, os ganhos são determinados através das fórmulas (10) e (11).

( )

( )

Onde para os diferentes valores L/T, os coeficientes (a, b) são definidos de acordo com a tabela 4. Tabela 4

Resumo dos valores dos coeficientes a e b para o controlador PI

25

Para o controlador PID, os seus ganhos são determinados usando as formulas (10), (11) e ainda (12).

( )

Por fim, dependendo do tipo de índice de desempenho a usar verifica-se na tabela 5 o valor dos coeficientes (a, b).

Tabela 5

2.4.3.

Resumo dos valores dos coeficientes a e b para o controlador PID

CONTROLADOR DIFUSO

Figura 11 Esquemático de um sistema difuso

26

Fuzzy significa algo confuso, impreciso, vago, e por isso mesmo é usado este conceito para exprimir ideias que não são passíveis de ser descritas por outras lógicas. As grandezas deste tipo de controlo podem ter diferentes valores e fronteiras, de um sujeito para o outro, como quente, morno, frio, alto, baixo, etc. A incerteza pode ser tratada de várias formas, uma dessas formas é a lógica difusa.

A lógica difusa foi sofrendo várias mudanças ao longo tempo, mas o seu verdadeiro nascimento surgiu com um matemático chamado Lotfi A. Zadeh, professor da Universidade de Berkeley em 1965. Ele introduziu a ideia de fuzzy como uma tentativa de imitar o controlo humano. Nesta lógica, tudo é, ou é permitido ser, parcial; tudo é, ou é permitido ser, impreciso; tudo é, ou é permitido ser, granular; tudo é, ou é permitido ser, baseado na percepção [4]. A introdução dos dados e dos conhecimentos em sistemas que usam esta lógica difusa é mais fácil e próxima da experiência quotidiana, e os seus resultados demonstram a verdadeira incerteza que temos.

Dentro dos tipos de controladores que existem apenas irá ser estudado o controlador de Mamdani. Este é o mais conhecido e usado. Não existem muitas diferenças entre os controladores difusos, mas no controlo exercido pelo de Mamdani as regras são colocadas num único nível, pelo que não acontece encadeamento. Isto significa que apenas existe a diferença entre os diversos tipos controladores difusos no processo de desfuzificação e que todo o resto do processo é partilhado por todos os outros controladores. Nos controladores difusos, ou seja, os que utilizam lógica difusa, é necessário definir os conjuntos ou as chamadas variáveis linguísticas, que serão atribuídos no intervalo [0,1]. O valor do conjunto num ponto será o seu grau de pertença (membership). Ao longo do universo de trabalho cada conjunto terá diferentes graus de pertença, ou seja, serão criadas funções de pertença para cada variável que se estabelece. Estas podem ter diferentes formas como triangular ou rectangular, entre outras. Na figura 12, observam-se três conjuntos num universo de trabalho em que se compara valores de alturas.

27

Figura 12 Exemplo de um universo de trabalho de um controlador difuso

Cada variável e função atribuída, respectivamente, são criadas por um sujeito que lhe atribui um significado linguístico e um contexto, que pode não ser dado por outro. O que confere ao processo de criação de variáveis um elevado grau de subjectividade.

Até aqui foi descrita a transformação que os dados sofrem até se tornarem dados difusos fuzificação. O passo seguinte do controlador fuzzy representado na figura 11 é a elaboração das operações que irão exercer o controlo sobre o processo. Controlo este que é baseado em regras, denominadas por inferência difusa, do tipo SE X ENTÃO Y, sendo X referente às entradas do controlador e Y às saídas. O número e tipo de regras irão ser, respectivamente, definidos pelo número de conjuntos e entradas que são criados. A cada entrada do controlador criada são-lhe atribuídos conjuntos difusos como já foi analisado acima. A quantidade de conjuntos no universo de trabalho é proporcional à precisão do controlador. O sistema, depois do processo de fuzificação, analisa as regras para saber o tipo de acção a exercer. As regras baseiam-se numa condição, verdadeira ou falsa, que compara o estado das entradas do controlador, estado esse, que é representado pelos conjuntos difusos. Uma das vantagens destes sistemas é permitirem mais que uma só entrada ou saída de dados. Por exemplo, caso sejam duas entradas e uma saída, as regras passaram a ser SE X E Z ENTÃO Y ou SE X OU Z ENTÃO Y, dependo do operador e considerando que se pretende incluir as duas variáveis na regra.

28

Relativamente as saídas, acontece um processo contrário ao da fuzificação, a desfuzificação, ou seja, Y será um determinado conjunto difuso no espaço de acção do controlador, sendo as funções de cada um definidas também pelo utilizador. A única diferença relativamente à fuzificação, é que este processo terá que levar em conta as regras já elaboradas e encontrar a resposta de saída que corresponde ao colapso de todas as regras.

Na figura 13, é possível resumir o processo da desfuzificação e como este vai ser afectado pelos processos precedentes. 

O operador escolhido em cada regra afecta a saída final. Se o operador for AND, o valor de pertença atribuído ao conjunto de saída será o mais baixo. Se o operador for OR, o valor de pertença atribuído ao conjunto de saída será o mais alto. Estas afirmações são apenas válidas se forem usados os parâmetros predefinidos, como na segunda experiência realizada.



Depois de achada a resposta a cada regra é necessário soma-las e encontrar o ponto que corresponde à saída. Na gama de valores que compõe a acção a realizar no sistema é calculado esse ponto. Existem 5 métodos de colapsagem suportados no MATLAB: centroid, bissector, middle of maximum, largest of maximum, e smallest of maximum. Mas apenas irá ser abordado o primeiro e mais usado, centroid ou centro de massa, pois será o utilizado na segunda experiência. Tal como o nome indica o ponto do colapsagem usado será o centro da área.

29

Figura 13 Processo de desfuzificação

30

3.

EXPERIÊNCIAS REALIZADAS

Foram propostos dois guiões onde eram descritas várias experiências a executar no sistema servo.

3.1.

GUIÃO 1

São apresentadas de seguida as principais conclusões e resultados retirados da execução do primeiro guião cujo objectivo principal passou pelo controlo da velocidade do dito sistema através da utilização de um controlador PID.

3.1.1.

SINTONIA DO CONTROLADOR PID EM MALHA-FECHADA

Na primeira experiência foram utilizadas as heurísticas de Ziegler-Nichols em malha fechada para fazer a sintonia do referido controlador. Como já foi mencionado anteriormente, o processo de sintonia tem como resultado final as constantes Kp, Kd e Ki que serão posteriormente aplicadas no sistema de controlo do servo para observar a melhor resposta possível deste a um degrau na entrada de referência.

31

O primeiro passo na sintonização do controlador utilizando a heurística de Z-N é a determinação do ganho crítico (Kc). Para achar este ganho foram feitas alterações ao sistema de controlo do servo, nomeadamente a utilização em malha fechada de um controlador apenas com ganho proporcional. Este ganho foi então incrementado gradualmente até que fossem observáveis oscilações por parte do motor com período e amplitude constantes. A figura 14 representa a velocidade do motor e o degrau de entrada em função do tempo observado para um ganho crítico de 0.0856.

Figura 14 Gráfico obtido no sistema servo para um ganho critico de 0.0856

A partir dos dados retirados da experiência foi possível recorrer ao MATLAB para determinar o segundo parâmetro necessário à sintonia do controlador, o Pc ou período critico. Foi desenvolvida uma função que através dos vectores da velocidade e do tempo retirados do gráfico da figura 14 apresenta como saída o Kc e o Pc. É mostrado de seguida o código da função mencionada.

function [Kc, Pc] = id_zn_mf(t, vel, Kc) % Obtenção dos parâmetros Kc e Pc aplicando as % regras de Ziegler-Nichols em malha fechada bloquear = 0; n = 1;

32

max = zeros(18,1); total = 0; for i=2:length(vel) a = vel(i-1); b = vel(i); if(vel(i) >= 0) if(bloquear == 0) if(b < a && vel(i) > 0) max(n)= i; n = n + 1; bloquear = 1; end end if(b > a) bloquear = 0; end end i = i + 1; end for i=6:length(max) sub = t(max(i))-t(max(i-1)); total = total + sub; end Pc = total/(length(max) - 5); Kc = 0.0856; end

Esta função começa por percorrer o vector da velocidade à procura dos pontos máximos, armazenando a sua localização no novo vector “max”. Terminada esta fase, procede-se ao cálculo do período crítico através da consulta do vector do tempo nas localizações especificadas no novo vector, ou seja, desta forma é retirado o instante temporal onde acontece a amplitude máxima das oscilações. Sabendo estes tempos é possível fazer a subtracção entre dois máximos consecutivos com o intuito de determinar o período crítico. Como é possível ver na figura 14, apenas a partir do sexto pico as oscilações se tornam visivelmente constantes, optou-se então por descartar todos os períodos anteriores a este ponto. No fim desta função o período critico devolvido trata-se então da média dos períodos calculados entre cada um dos máximos. Na figura 15 é possível observar os parâmetros de saída da função.

33

Figura 15 Parâmetros de saída da função id_zn_mf observados no MATLAB

Com os parâmetros Kc e Pc determinados tornou-se possível sintonizar o controlador PID através da aplicação das regras de Z-N em malha fechada mostradas na tabela 3 e das equações (13). Estas equações representam a estrutura alternativa do PID e auxiliam no calculo dos parâmetros do PID uma vez que as regras de Z-N devolvem as constantes de tempo integrativos e derivativos e no modelo real do sistema devem se inseridos os ganhos constantes de cada acção de controlo.

Para tal foi elaborada uma nova função em MATLAB que recebesse o ganho e o período crítico e devolvesse os parâmetros do controlador (Kp, Ki e Kd) e também a sua função de transferência. A função em questão permite também inserir uma opção que controla o tipo de sintonização executada, isto é, se são determinados os parâmetros para um controlador apenas proporcional (P), proporcional-integrativo (PI) ou proporcional-integrativoderivativo (PID). O código desta função encontra-se em baixo.

function [Kp, Ki, Kd, Gc] = zn2(Kc, Pc, op) % % Sintonia dos controladores PID usando % as regras de Ziegler-Nichols em malha fechada

34

% s=tf('s'); switch op case 1 disp('Controlador P') Kp = 0.5*Kc; Ti = inf; Ki = Kp/Ti; Td = 0; Kd = Td * Kp; Gc = Kp; case 2 disp('Controlador PI') Kp = 0.45*Kc; Ti = (1/1.2*Pc; Ki = Kp/Ti; Td = 0; Kd = Td * Kp; Gc = Kp*(1+(1/(Ti*s))); case 3 disp('Controlador PID') Kp = 0.6*Kc; Ti = (1/2*Pc; Ki = Kp/Ti; Td = (1/8)*Pc; Kd = Td * Kp; Gc = Kp*(1+(1/(Ti*s))+Td*s); end end

Na figura 16 são mostradas as saídas do MATLAB para as três sintonizações possíveis descritas anteriormente, respectivamente para um controlador do tipo P, do tipo PI e do tipo PID.

Figura 16 Parâmetros devolvidos pela função de sintonização zn2 no MATLAB

35

Tabela 6

Resumo dos parâmetros de

A tabela 6 apresenta um resumo dos

sintonização

valores obtidos no MATLAB (figura 16)

Tipo de controlador

para a sintonização do controlador. Estes

P

PI

PID

valores são inseridos posteriormente no

Kp

0.0428

0.0385

0.0514

sistema servo para observar a sua resposta.

Ki

0

0.0621

0.1380

Kd

0

0

0.0048

Parâmetros

Os três gráficos (um para cada tipo de controlador) são apresentados de seguida.

Figura 17 Resposta do sistema para um controlador do tipo P em malha fechada

36

Figura 18 Resposta do sistema para um controlador do tipo PI em malha fechada

Figura 19 Resposta do sistema para um controlador do tipo PID em malha fechada

Através desta primeira experiência foi possível verificar o impacto das três acções de um controlador PID num sistema. Na figura 17, onde é apresentado o resultado gráfico da saída de um sistema controlado apenas por uma componente proporcional é visível um erro em regime permanente. Isto

37

acontece pois o valor da referida componente não é elevada o suficiente para eliminar o erro, o que implica uma ausência de controlo no sistema. Na figura 18, é adicionada uma componente integrativa ao controlador. Esta nova adição foi responsável por eliminar o erro em regime permanente da saída, mas à custa de uma maior instabilidade e de um maior overshoot Isto acontece pois este parâmetro acumula a soma de todos os erros anteriores, ao contrário da parte proporcional onde o erro é apenas considerado em cada instante. Na figura 19, a adição da terceira componente, a derivativa, promoveu uma redução do overshoot e bastante mais estabilidade ao sistema sem afectar o valor final da saída. Isto deve-se ao facto da acção de controlo derivativa contrariar os termos proporcionais e integrativos quando a saída se encontra a variar rapidamente.

Como experiência adicional para a heurística de Z-N em malha fechada foi proposta a alteração dos parâmetros de sintonização resumidos na tabela 6 para cada um dos diferentes controladores com o objectivo de estudar o impacto no sistema dos mesmos, nomeadamente:

Tabela 7

Resumo dos parâmetros de sintonização alterados para malha fechada

Parâmetros

Tipo de controlador P

Kp

Ki

Kd

x2

0,0856

/2

0,0214

PI

x2

0,1242

/2

0,03105

PID

x2

0,0096

/2

0,0024

São apresentados de seguida as simulações efectuadas no sistema servo para os valores mencionados na tabela 7.

38

Figura 20 Resposta para metade do ganho proporcional num controlador P em malha fechada

Figura 21 Resposta para o dobro do ganho proporcional num controlador do tipo P em malha fechada

39

Figura 22 Resposta para metade do ganho integrativo num controlador PI em malha fechada

Figura 23 Resposta para o dobro do ganho integrativo num controlador PI em malha fechada

40

Figura 24 Resposta para metade do ganho derivativo num controlador PID em malha fechada

Figura 25 Resposta para o dobro do ganho derivativo num controlador PID em malha fechada

Com estas novas simulações foi possível verificar o impacto do aumento e diminuição de cada um dos ganhos num controlador PID.

41

Relativamente ao controlador proporcional, a redução para metade retirou ainda mais controlo ao sistema em relação ao valor sintonizado através das heurísticas cujo resultado foi apresentado na figura 17. A ausência do referido controlo fez com que o sistema ficasse incapacitado de compensar o erro em regime permanente existente. No teste com o dobro do ganho proporcional foi comprovado que também não é benéfico que esta componente seja muito elevada, pois cria um estado de excesso de controlo fazendo com que o sistema não consiga atingir a estabilidade. Na figura que representa o gráfico desta experiencia o sistema encontra-se a oscilar próximo do estado crítico. Na redução para metade da componente integrativa relativamente ao observado na figura 18, continuou-se a verificar a eliminação total do erro em regime permanente, com o benefício adicional de que o tempo de estabilização foi reduzido bem como o overshoot. É possível concluir que a componente integrativa cujo objectivo principal é complementar a componente proporcional na eliminação do erro deve ter um valor que lhe permita atingir este objectivo sem comprometer a resposta do sistema. No caso do aumento para o dobro da componente integrativa, é notada uma elevada instabilidade no sistema. Como já foi mencionado a componente integrativa faz a soma dos erros anteriores do sistema, sendo que esta soma aumenta quando o erro é positivo e diminui quando é negativo. Devido à instabilidade do sistema não pode haver esta compensação, isto é, o overshoot negativo continuou a adicionar à soma enquanto o overshoot positivo fazia a sua diminuição, fazendo com que o sistema entre em oscilação constante indefinidamente. Para o dobro do ganho derivativo há um amortecimento mais acentuado do overshoot relativamente à registada na figura 19 onde foram experimentados os valores da sintonização. O maior valor desta componente tornou as variações do sistema mais lentas permitindo que este se adapte melhor ao valor final pretendido. Outro dos aspectos que merecem analise nesta experiencia são as respostas do sistema servo apresentadas na figura 24 e 22, respectivamente controlador PI com metade do ganho integrativo e controlador PID com metade do ganho derivativo. É possível visualizar na figura 24 que apesar da adição da componente derivativa ao controlador a resposta tornouse mais instável, com um overshoot e tempo de estabilização maiores que na figura 22. É possível concluir que tal acontece devido ao elevado valor da componente integrativa

42

obtida através da sintonização para o controlador PID (o seu valor é mais do dobro daquele que foi obtido para o controlador PI). Apesar de o controlador PID possuir a componente derivativa, esta a metade do valor não é suficiente para amortecer a resposta do sistema.

3.1.2.

SINTONIA DO CONTROLADOR PID EM MALHA-ABERTA

Na segunda experiência proposta serão também utilizadas as heurísticas de Z-N para sintonizar o controlador PID mas desta vez através do uso das regras em malha aberta. Na heurística mencionada, o primeiro passo é utilizar o modelo do sistema servo em malha aberta semelhante ao da figura 14 para visualizar a resposta deste a um degrau unitário de entrada. A figura 26 representa a resposta mencionada.

Figura 26 Resposta do sistema servo para uma entrada de 1 rad/s

Como mencionado neste relatório, na heurística de Z-N em malha aberta é necessário determinar os parâmetros K, L e T a partir dos dados da figura 26. Estes parâmetros

43

correspondem à função de transferência de primeira ordem com atraso que produz, quando implementada, uma resposta aproximada ao sistema real. Para determinar os parâmetros foi elaborada uma função em MATLAB que recebe os vectores u e vel e retorna o K, L e T bem como a função de transferência. A função mencionada é apresentada de seguida.

function [K, L, T, G] = id_zn_ma(u, vel) % % Identificação da curva de resposta % ao degrau do sistema servo % somaK = zeros(301,1); derivada = zeros(1001,1); n = 1; for i=700:length(vel) somaK(n) = vel(i,2); n = n + 1; i = i + 1; end K = mean(somaK); derivada = diff(vel(:,2))./diff(vel(:,1)); [declive pos_declive] = max(derivada); derivada_eixo_x = vel(pos_declive,1); derivada_eixo_y = vel(pos_declive,2); intersecao_eixo_y = derivada_eixo_y - declive*derivada_eixo_x; intersecao_eixo_x = -intersecao_eixo_y/declive; L = intersecao_eixo_x; valor_em_x_intersecao_com_K = (K - intersecao_eixo_y)/declive; T = valor_em_x_intersecao_com_K - L; s=tf('s'); G=(K*exp(-L*s))/(T*s+1); end

O primeiro parâmetro a ser calculado nesta função é o K que se trata do valor final da velocidade para o qual a saída do sistema tende em regime permanente. Uma vez que a resposta do sistema mostrada na figura 26 apenas fica visivelmente estável na segunda metade do tempo de simulação, optou-se por apenas usar os dados para o cálculo deste parâmetro a partir do ponto referido. Por consequência é feita uma média de todos os valores do vector vel a partir da posição 700 (sendo que o comprimento total do vector é 1501), determinando assim o parâmetro K.

44

Seguidamente é calculado o L que é definido como o atraso do sistema. Como se pode ver na figura 9, o L é considerado o valor na qual a recta tangente ao ponto de inflexão da função se intersecta com o eixo t. O primeiro passo para o cálculo deste parâmetro é então a determinação do ponto de inflexão. Como é conhecido da matemática um ponto de inflexão numa função acontece no ponto máximo da sua derivada, pelo que através do MATLAB procede-se à derivação ponto a ponto da função em questão através da expressão diff. Sabendo assim a posição desse ponto e o seu valor é possível através de uma equação da recta determinar as intersecções com os eixos das coordenadas, nomeadamente com o referido eixo t. Por fim é calculado o parâmetro T, que se trata da constante de tempo do sistema. Através da figura 9 é possível ver que este parâmetro é a diferença entre dois tempos, nomeadamente o tempo em que acontece a intersecção da recta tangente como o K e o tempo em que acontece a intersecção da mesma recta com o eixo t, ou seja, o valor do parâmetro L.

Figura 27 Saída da função id_zn_ma observada no MATLAB

Através dos parâmetros calculados com a função id_zn_ma é possível desenhar a aproximação linear à resposta do sistema servo para malha aberta. O código utilizado no MATLAB para executar a representação gráfica mencionada é o seguinte.

45

%% Esboçar a resposta em malha aberta e a aproximação linear tempo=vel(:,1); velocidade=vel(:,2); plot(tempo,velocidade,'b', [0 L L+T tempo(end)], [0 0 K K], 'r') title('ZN - Resposta em Malha Aberta') ylabel('Velocidade'); xlabel('Tempo'); legend('Sinal Exacto','Aproximação Linear')

Figura 28 Representação da aproximação linear e da resposta do sistema servo em malha aberta

Com os parâmetros K, L e T determinados tornou-se possível sintonizar o controlador PID através da aplicação das regras de Z-N em malha aberta apresentadas na tabela 2 e também das equações (13). Para tal foi elaborada uma nova função em MATLAB que através desses parâmetros, devolvesse os valores das acções de controlo do controlador (Kp, Ki e Kd) e também a sua função de transferência. A função em questão permite também inserir uma opção que controla o tipo de sintonização executada, isto é, se são determinados os parâmetros para um controlador apenas proporcional (P), proporcional-integrativo (PI) ou proporcional-integrativo-derivativo (PID). O código desta função encontra-se em baixo.

function [Kp, Ki, Kd, Gc] = zn1(K, L, T, op) % % Sintonia dos controladores PID usando % as regras de Ziegler-Nichols em malha aberta

46

% s = tf('s'); R = K/T; switch op case 1 disp('Controlador P') Kp = 1/(R*L); Ti = inf; Ki = Kp/Ti; Td = 0; Kd = Td * Kp; Gc = Kp; case 2 disp('Cotrolador PI') Kp = 0.9/(R*L); Ti = (L/0.3); Ki = Kp/Ti; Td = 0; Kd = Td * Kp; Gc = Kp*(1+(1/(Ti*s))); case 3 disp('Controlador PID') Kp = 1.2/(R*L); Ti = (2*L); Ki = Kp/Ti; Td = (0.5)*L; Kd = Td * Kp; Gc = Kp*(1+(1/(Ti*s))+Td*s); end end

Na figura 29 são mostradas as saídas do MATLAB para as três sintonizações possíveis descritas anteriormente, respectivamente para um controlador do tipo P, do tipo PI e do tipo PID.

Figura 29 Parâmetros devolvidos pela função de sintonização zn1 no MATLAB

47

Resumo dos parâmetros de

A tabela 8 apresenta um resumo dos

sintonização

valores obtidos no MATLAB (figura 29)

Tipo de controlador

para a sintonização do controlador. Tal

P

PI

PID

como na experiencia em malha fechada

Kp

0,0363

0,0326

0,0435

estes valores são inseridos posteriormente

Ki

0

0,0535

0,1188

no sistema servo para observar a sua

Kd

0

0

0,004

resposta. Os três gráficos (um para cada

Tabela 8

Parâmetros

tipo de controlador) são apresentados de seguida.

Figura 30 Resposta do sistema para um controlador do tipo P em malha aberta

48

Figura 31 Resposta do sistema para um controlador do tipo PI em malha aberta

Figura 32 Resposta do sistema para um controlador do tipo PID em malha aberta

49

De modo análogo à experiencia em malha fechada, foi proposta como experiência adicional para a heurística de Z-N em malha aberta, a alteração dos parâmetros de sintonização resumidos na tabela 8 para cada um dos diferentes controladores com o objectivo de estudar o impacto no sistema dos mesmos, nomeadamente: 

Controlador P – efectuar os testes no sistema para metade e para o dobro do ganho proporcional;



Controlador PI – efectuar os testes no sistema para metade e para o dobro do ganho integrativo, mantendo o proporcional;



Controlador PID – efectuar os testes no sistema para metade e para o dobro do ganho derivativo, mantendo o proporcional e o integrativo.

Tabela 9

Resumo dos parâmetros de sintonização alterados para malha aberta

Parâmetros

Tipo de controlador P

Kp

Ki

Kd

x2

0,0726

/2

0,01815

PI

x2

0,107

/2

0,02675

PID

x2

0,008

/2

0,002

São apresentados de seguida as simulações efectuadas no sistema servo para os valores mencionados na tabela 9.

50

Figura 33 Resposta para metade do ganho proporcional num controlador do tipo P em malha aberta

Figura 34 Resposta para o dobro do ganho proporcional num controlador do tipo P em malha aberta

51

Figura 35 Resposta para metade do ganho integrativo num controlador do tipo PI em malha aberta

Figura 36 Resposta para o dobro do ganho integrativo num controlador do tipo PI em malha aberta

52

Figura 37 Resposta para metade do ganho derivativo num controlador do tipo PID em malha aberta

Figura 38 Resposta para o dobro do ganho derivativo num controlador do tipo PID em malha aberta

53

3.1.3.

COMPARAÇÃO DAS HEURÍSTICAS UTILIZADAS

Neste ponto será feita uma análise sobre os resultados obtidos nos dois pontos anteriores, nomeadamente a sintonização do controlador PID através das regras de Z-N em malha fechada e malha aberta.

Nestes dois pontos foram utilizados dois métodos diferentes para atingir um objectivo, sendo esse a referida sintonização do controlador. Relativamente aos métodos de aquisição dos dados para realizar a sintonia isto foi possível graças à versatilidade do servo, que permite que o seu modelo de controlo em tempo real seja alterado à descrição do utilizador. Foi assim possível estudar dois sistemas que podem ser implementados num vasto número de aplicações. Num caso prático, a heurística em malha aberta pode ser utilizada para achar os parâmetros de sintonia de um sistema sem realimentação onde se planeia implementar uma malha de controlo no futuro. Este método permite elaborar uma aproximação linear a partir de um modelo real não linear, e que pode ser utilizado posteriormente para calcular os valores das acções de controlo através de métodos de cálculo usados em sistemas lineares. Por consequência, não há garantia que ao aplicar o controlo, o sistema se comporte conforme desejado. No caso da heurística em malha fechada os cálculos para os valores de sintonia são efectuados a partir de uma resposta na qual o sistema se encontra imediatamente acima do funcionamento desejável, ou seja, em oscilação constante. Ao observar as repostas do sistema na secção 3.1.1 e 3.1.2 pode-se concluir que os valores calculados dos parâmetros não devem ser considerados um valor final, pelo que numa situação real estes devem ser sempre alvo de afinação. Relativamente a estes valores de sintonização que se encontram na tabela 6 e 8, era de esperar a diferença entre ambos, pois tanto os dados do sistema como as heurísticas aplicadas são distintos.

54

Seguidamente são apresentados três gráficos onde são sobrepostas as respostas obtidas para os valores sintonizados através dos dois métodos, nomeadamente as respostas do controlador P, PI e PID.

Figura 39 Resposta do sistema para os valores proporcionais obtidos em malha fechada e malha aberta

Figura 40 Resposta do sistema para os valores integrativos obtidos em malha fechada e malha aberta

55

Figura 41 Resposta do sistema para os valores proporcionais obtidos em malha fechada e malha aberta

Analisando os gráficos é possível tecer conclusões sobre as regras de sintonia das duas heurísticas. Nos gráficos do controlador P o valor ligeiramente maior do parâmetro proporcional na malha fechada faz com que este sistema tenha capacidade também para eliminar ligeiramente mais o erro do que o controlador P em malha aberta. No controlador PI o maior valor integrativo resultante da sintonização em malha fechada degradou a estabilidade do sistema, pois o maior overshoot fez com que a soma do erro provocado pelo parâmetro integral aumentasse, aumentando também por consequência o tempo de estabilização. No controlador PID é aparente o menor tempo de estabelecimento do sistema sintonizado em malha aberto devido à acção do parâmetro derivativo sobre a componente integrativa.

56

3.1.4.

SIMULAÇÃO DO SISTEMA SERVO

Neste ponto do guião o objectivo passou pela criação de um modelo no MATLAB/SIMULINK que permitisse testar os parâmetros sintonizados através das heurísticas em malha aberta de Z-N. O modelo em questão é representado na figura 42 e é composto por: 

Uma entrada em degrau;



Um controlador PID;



Um bloco de saturação para restringir o controlo do PID;



Um scope;



Uma função transferência e um atraso (transport delay).

O servo é modulado pela função transferência de primeira ordem com o atraso, sendo que os parâmetros que definem esta função, nomeadamente o K, L e T, são retirados da secção 3.1.2 com a ajuda da função id_zn_ma elaborada no MATLAB.

Figura 42 Modelo do sistema servo no SIMULINK utilizando uma função de primeira ordem com atraso

Tal como já mencionado neste relatório a função de transferência é responsável por modular uma aproximação ao sistema real, pelo que os parâmetros K e T nomeadamente o valor final e a constante de tempo de sistema devem ser introduzidos no bloco Transfer Fcn e o parâmetro L, o atraso do sistema, é introduzido no Transport Delay.

57

Após a elaboração do modelo este foi testado usando os parâmetros sintonizados através da heurística de Z-N em malha aberta representados na tabela 8. São apresentados de seguida os três gráficos, um para cada tipo de controlador.

Figura 43 Resposta do sistema simulado para um controlador P

Figura 44 Resposta do sistema simulado para um controlador PI

58

Figura 45 Resposta do sistema simulado para um controlador PID

Em todas as simulações efectuadas, é possível observar as diferenças existentes entre os gráficos retirados do modelo no MATLAB e os gráficos retirados do sistema real. Sendo o modelo elaborado baseado numa função de transferência de primeira ordem com atraso que tenta simular o sistema servo através de uma aproximação linear os resultados obtidos através das simulações nunca serão coincidentes com os gráficos observados na secção 3.1.2.

59

Adicionalmente de modo análogo à secção 3.1.2, foram testados no modelo os parâmetros de controlo da tabela 9, onde as constantes proporcional, integrativa e derivativa variavam para o dobro e para metade do seu valor, respectivamente nos controladores P, PI e PID. Os gráficos destes testes são apresentados de seguida.

Figura 46 Resposta do sistema simulado para um controlador P com metade do ganho proporcional

Figura 47 Resposta do sistema simulado para um controlador P com o dobro do ganho proporcional

60

Figura 48 Resposta do sistema simulado para um controlador PI com metade do ganho integral

Figura 49 Resposta do sistema simulado para um controlador PI com o dobro do ganho integral

61

Figura 50 Resposta do sistema simulado para um controlador PID com metade do ganho derivativo

Figura 51 Resposta do sistema simulado para um controlador PID com o dobro do ganho derivativo

62

3.1.5.

ANÁLISE E CORRECÇÃO DO OVERSHOOT

Neste ponto foi efectuado um estudo sobre o sistema servo controlado através de um PID sintonizado com as regras da heurística de Z-N em malha fechada. A resposta do sistema à sintonização mencionada pode ser encontrada na figura 19. Numa primeira fase procedeuse ao cálculo do overshoot desta resposta. Foi elaborada uma função em MATLAB que recebe os vectores t e vel e retorna o valor do overshoot em percentagem. O código desta função é mostrado de seguida.

function Mp = calc_ov (t, vel) % % Cálculo do overshoot da resposta % de saída % somaK = zeros(801,1); n = 1; for i=700:length(vel) somaK(n) = vel(i,1); n = n + 1; i = i + 1; end K = mean(somaK); [max_point_y max_point_x] = max(vel); Mp = ((max_point_y-K)/K)*100; end

É chamado de overshoot à primeira oscilação de uma função que ultrapassa o valor final pretendido. Com isto em mente, a função elaborada começa por percorrer o vector vel a partir de uma posição onde a resposta seja visivelmente estável, isto é, coincida com o degrau de entrada de referência sem erro em regime permanente. É feita uma média dos valores no vector a partir do ponto mencionado e considerado esse como o valor final K.

63

Seguidamente usa-se a expressão max para achar o valor em xx e yy onde a velocidade foi máxima. Por fim é feito o cálculo do overshoot utilizando a equação (14).

A saída da função calc_ov no MATLAB é apresentada na figura 52.

Figura 52 Saída da função calc_ov no MATLAB

Seguidamente foi proposta uma nova simulação do controlador PID no modelo do servo em tempo real tendo por objectivo a diminuição do overshoot para menos de 20% através da alteração dos parâmetros de sintonização obtidos das regras de Z-N em malha fechada. Tendo por base conhecimentos adquiridos à priori e que permitiram a criação da tabela 1, os parâmetros mais indicados para serem alterados eram já conhecidos no inicio da simulação. Começou-se por procurar aumentar o valor da componente derivativa mantendo as restantes constantes, tendo sido obtido um factor de 3.2, isto é, a multiplicação do parâmetro derivativo obtida através da sintonização por 3.2 fez com que a resposta do sistema observada apresentasse um overshoot imediatamente inferior ao pretendido. A resposta do sistema para o valor mencionado é apresentada na figura 53.

64

Tabela 10 Parâmetros do controlador PID actualizados

Parâmetros

sintonização actualizados que foram

Tipo de controlador

introduzidos no controlador PID do

PID

modelo do servo para observar a

Kp

0,0514

Ki

0,138

Kd

0,01536

Figura 53

A tabela 10 apresenta os valores de

resposta da figura 53.

Resposta do sistema observada para um aumento da acção de controlo derivativa no PID

Figura 54 Estatísticas da nova resposta obtidas através do MATLAB após aumento do ganho derivativo

65

A componente derivativa tem impacto no overshoot pois esta analisa o ritmo da alteração do sistema provocado pelo controlador PID, tornando o ritmo da saída do controlador mais lento com o custo de tornar toda a resposta mais sensível a ruido e de aumentar o tempo de subida. Uma saída mais lenta, conforme mencionado, faz com que esta tenha mais tempo para se adaptar ao valor final pretendido quando próximo deste. Foi executada ainda uma segunda simulação no sistema servo, desta vez promovendo a alteração da componente proporcional. Na simulação foi verificado que uma divisão do valor desta componente por um factor de 1.5 enquanto se mantinha a componente derivativa anteriormente simulada, diminuía não só o overshoot como aumentava a estabilidade do sistema através da diminuição o tempo de estabelecimento. A figura 55 demonstra a simulação mencionada.

Tabela 11 Parâmetros do controlador PID actualizados

Parâmetros

A tabela 11 apresenta os valores de sintonização actualizados que foram

Tipo de controlador

introduzidos no controlador PID do

PID

modelo do servo para observar a

Kp

0,0343

Ki

0,138

Kd

0,01536

resposta da figura 55.

Figura 55 Resposta observada para uma diminuição da acção de controlo proporcional

66

Na figura 56 é observável a diminuição do overshoot e do tempo de estabelecimento.

Figura 56 Estatísticas da nova resposta obtida no MATLAB apos a diminuição do ganho proporcional

Uma constante proporcional elevada, pode provocar excesso de controlo num sistema onde erro seja baixo, fazendo com que este não atinja a estabilidade. Por outro lado um ganho proporcional muito pequeno pode fazer com que o controlo seja reduzido e por consequência o sistema não consiga compensar o erro que ainda existe. Um equilíbrio no valor acção de controlo proporcional é importante para atingir o melhor desempenho do sistema.

3.1.6.

SINTONIA DO CONTROLADOR ATRAVÉS DAS REGRAS DE Z-A

A sexta experiência do primeiro guião compreende novamente a sintonia do controlador PID, mas desta vez através de uma heurística diferente, a de Zhaung e Atherton. Tal como a sintonização através das regras de Z-N em malha aberta, também as heurísticas de Z-A utilizam o modelo de primeira ordem com atraso, tal como especificado nas equações (7) e (9). Então, para a determinação dos parâmetros Kp, Ki e Kd é necessário recorrer à

67

experiencia realizada em malha aberta no sistema servo da secção 3.1.2 e utilizar os parâmetros K, L e T ai determinados. Seguidamente os parâmetros de sintonia do controlador são calculados com o auxílio de uma função elaborada no MATLAB através das equações (10) e (11) e da tabela 4 para o controlador PI e das equações (10), (11) e (12) e da tabela 5 para o controlador PID. O índice de desempenho utilizado para achar os parâmetros de sintonia foi o ISTE. Deve ser notado que as regras de Z-A apenas calculam os parâmetros dos controladores PI e PID uma vez que esta heurística e baseada no critério de integral do erro. O código da função MATLAB mencionada é apresentado em anexo A. A figura 57 mostra os valores para a sintonização dos controladores devolvidos pelo MATLAB.

Figura 57 Parâmetros de saída da função za no MATLAB

Um resumo dos valores da figura 57 pode ser encontrado na tabela 12.

68

Tabela 12 Resumo dos parâmetros sintonizados através da heurística de Z-A

Parâmetros

Tipo de controlador PI

PID

Kp

0.0223

0.0311

Ki

0.0173

0.0248

Kd

0

0.0026

Os valores da tabela 12 foram posteriormente inseridos no modelo em tempo real do sistema servo para que pudesse ser observada a sua resposta aos novos parâmetros de sintonia. As figuras 58 e 59 representam as respostas mencionados.

Figura 58 Resposta do sistema servo para o controlador PI sintonizado através da heurística Z-A

69

Figura 59 Resposta do sistema servo para o controlador PID sintonizado através da heurística Z-A

Com a sintonização através das heurísticas de Z-A foi possível observar melhores respostas do sistema servo ao degrau de entrada relativamente aquelas que foram observadas através da sintonização com as heurísticas de Z-N em malha aberta, nomeadamente nas figuras 31 e 32. Analisando as tabelas 8 e 12, que contem o resumo dos parâmetros de sintonização dos controladores é possível verificar as suas diferenças. Tanto no controlador PI como o PID os valores sintonizados através da heurística de Z-A apresentam um menor valor relativamente à heurística de Z-N. Relativamente ao controlador PI o menor valor proporcional promove um maior erro em regime permanente do sistema, erro este que é eliminado pelo componente integrativo, que como possui um valor reduzido não degrada a resposta de modo tão acentuado como os valores da tabela 8. Os valores de sintonização do controlador PID originaram também uma resposta satisfatória uma vez que o valor reduzido da componente integrativa permitiu que o amortecimento proporcionado pela componente derivativa diminuísse o overshoot o que permitiu que o sistema estabilizasse mais rapidamente.

70

3.2.

GUIÃO 2

São apresentadas de seguida as principais conclusões e resultados retirados da execução do segundo guião cujo objectivo principal passou pelo controlo da velocidade do sistema servo através da utilização de um controlador difuso.

Foram estabelecidas desde o início um conjunto de especificações para a resposta do servo, nomeadamente: 

Erro em regime permanente nulo (eSS = 0);



Sobre elongação (overshoot) inferior a 10%;



Tempo de estabelecimento inferior a 4 segundos (ts < 4s);

O tipo de controlador difuso usado foi o de Mamdani. A grande vantagem deste controlador sobre o de Sugeno é a complexidade inerente ao processo de fuzificação. Enquanto no controlador de Mamdani a sua saída é obtida através da união das áreas correspondente à resposta de cada regra, e depois usado um método de colapsagem para passar a um valor numérico; No de Sugeno tem-se como saída um polinómio de grau n em função das variáveis de entrada, sendo n, normalmente, igual a 0 ou 1 pois o aumento da complexidade não é justificado pelos resultados obtidos. Além de que, neste tipo de controladores, são usadas uma enorme quantidade de regras, por exemplo para aproximar constantemente o sistema do valor pretendido. Esta diferença foi a base da nossa escolha. No controlador de Mamdani é permitido um controlo bastante mais simples e muito mais intuito, sem no entanto exibir maus resultados. Tanto que é bastante usado em processos especializados. Primeiramente era necessário desenvolver um sistema de controlo difuso, com recurso ao MATLAB, considerando o modelo do sistema definido por uma função de primeira ordem com atraso, igual a (14). Sendo

e

71

.

Não foi criado só um mas dois controladores difusos, um de 3 e outro com 7 variáveis linguísticas, com o objectivo de comparar as diferenças entre um controlo com mais conjuntos e consequentemente mais regras difusas. As entradas de ambos os controladores serão o erro e a variação do erro da resposta de saída do sistema e a saída, o binário aplicado ao mesmo.

Para o segundo controlador foram então criadas sete variáveis para cada entrada e saída, o nome dessas variáveis linguísticas são as seguintes: 

NB (Negative Big)



NM (Negative Medium)



NS (Negative Small),



Z (Zero)



PS (Positive Small)



PM (Positive Medium)



PB (Positive Big)

A cada um destes conjuntos foi atribuída uma função de pertença caracterizada pelo significado atribuído a esta variável. Baseada numa lógica intuitiva, como já foi mencionado, foram atribuídos intervalos a cada um dos conjuntos nos vários universos de trabalho. Pode-se referir o caso do erro como forma de demonstrar este processo. Foi atribuído o valor de pertença de 1 aos conjuntos NB e PB, nos intervalos [-40;-15] e [15;40], respectivamente, pois nestes intervalos os erros ainda são bastante altos.

72

Os intervalos utilizados nas entradas foram definidos tendo por base a analise o sistema em questão. Para a entrada do erro, como o erro máximo é o erro inicial, ou seja, 40. Do lado negativo, foi colocado um valor máximo de -40, pois, apesar de ser pouco provável que o erro chegue a este valor, neste tipo de controladores é aconselhável garantir a simetria no espaço de trabalho. Para a entrada da variação do erro, o intervalo colocado foi [-150;150]. Estes valores surgiram duma análise realizada aos gráficos da resposta de saída do primeiro trabalho. A máxima diferença encontrada entre dois pontos foi de 0.015. Como o valor do steptime utilizado para os testes no MATLAB é de 0.01 foi obtido o valor máximo para a variação do erro de 150.

Figura 60 Função de pertença da entrada valor do erro, para o controlador difuso de 49 regras

Figura 61 Funções de pertença da entrada variação do erro, para o controlador difuso de 49 regras

73

Figura 62 Função de pertença da saída para o controlador difuso de 49 regras

Variação do erro

As regras difusas aplicadas no nosso controlador estão representadas na tabela 13:

NB NM NS Z PS PM PB

NB NB NB NB NB NB NB NM

NM NB NB NB NB NB NM NS

NS NB NB NB NB NM NS Z

Erro Z NM NM NS Z PS PM PM

PS Z PS PM PB PB PB PB

PM PS PM PB PB PB PB PB

PB PM PB PB PB PB PB PB

Tabela 13 Regras difusas para o controlador de 49 regras

Para as simulações no SIMULINK foi implementado o seguinte diagrama de bloco como forma de implementar o controlo difuso e simular o sistema servo:

74

Figura 63 Sistema de controlo difuso no MATLAB

Neste modelo do servo, além dos blocos imprescindíveis como o degrau de entrada, o controlador de lógica difusa, a função transferência do servo, etc; foram ainda adicionados ganhos a cada um das entradas e um bloco de saturação para limitar a nossa saída. As funções de pertença dos conjuntos de cada entrada foram desenvolvidas com o intuito de criar um controlador difuso que efectua-se um controlo fino de modo a conseguir uma melhor resposta do sistema. Inicialmente, todos os ganhos do sistema foram colocados a 1. A resposta produzida (figura 64) garantia duas das condições pretendidas, erro em regime permanente nulo e tempo de estabelecimento abaixo dos 4s, mas com um overshoot próximo dos 30%. Além disso é claro pela figura 64 que a reposta é pouco estável. Foi então necessário alterar o valor dos ganhos do sistema.

75

Figura 64 Resposta de saída do sistema simulado com todos os ganhos a 1

Estes ganhos permitem controlar o valor de entrada no controlador, multiplicando a constante definida pelo valor à saída da realimentação ou do bloco derivativo, consoante a entrada. Um ganho abaixo 1, torna o valor de entrada mais pequeno, e, consequentemente, mais próximo de zero. Dependendo do ramo, isto pode significar menor erro ou menor variação do erro. Um ganho acima de 1 tem o comportamento oposto, ou seja, provocam valores do erro ou variação do erro maiores que na realidade. O processo explicitado anteriormente pode ser bastante útil. No caso de primeira resposta obtida com o MATLAB, foi descrita acima como tendo um overshoot demasiado elevado. Para isso optou-se por aumentar o ganho do valor do erro para que o controlador exercer-se maior controlo para erros mais baixos. Alterado o ganho para 2, a resposta permitiu, como esperado, baixar o overshoot mas não o suficiente. Para além disso o sistema continuava bastante instável. Decidiu-se então baixar o ganho da variação do erro, isto porque apesar da resposta do sistema ser mais lenta, pois o valor do erro real irá ser mais pequeno, permite que o controlo não seja tão exigente quando o erro é próximo de zero. Depois de várias tentativas, com ganhos de 2 para o erro, de 0.2 para a variação do erro, e de 1 para a saída, foi obtida uma reposta de saída do sistema simulado no MATLAB, representada pela figura 65, com as característica inicialmente exigidas.

76

Figura 65 Resposta de saída do sistema simulado melhorada para o controlador de 49 regras

Guardando o gráfico como array numa variável à escolha, que neste caso foi data, é possível saber as características de resposta usando o comando stepinfo:

  

RiseTime: 1.1820 SettlingTime: 1.8281 Overshoot: 0.1577

No terceiro ponto deste trabalho, era pretendido que o controlador difuso desenvolvido fosse testado no sistema servo. Depois de adaptado o modelo de controlo PID para o sistema do controlador difuso e colocados os parâmetros da simulação do MATLAB, foi testado o controlador. A resposta do sistema real foi bastante diferente da simulada. Embora não houvesse erro em regime permanente, a sobreelongação era bastante maior, tal como o tempo de estabelecimento. Seguindo os mesmos conceitos aplicados na simulação do MATLAB, começou-se por alterar o ganho correspondente ao erro. Como era de esperar, este ganho não poderia ser demasiado alto pois o sistema adoptava um estilo instável. Foi definido o valor máximo de 2.5 para o ganho do erro. Mas ainda não era suficiente para a sair cumprir os requisitos

77

pedidos. Decidiu-se então baixar o valor do ganho da variação do erro. Depois de várias tentativas chegou-se aos ganhos de 2.5, 0.095 e 1, para o erro, variação do erro e saída, respectivamente. A resposta de saída do sistema servo pode ser observada na figura 66, e as suas características são:   

RiseTime: 0.8126 SettlingTime: 2.6246 Overshoot: 0.6760

Figura 66 Resposta de saída do sistema servo modular para o controlador de 49 regras (1)

Analisando melhor a figura 66, observa-se que existe um controlo excessivo quando o erro está próximo de zero. Ou seja, ter-se-á que diminuir não só o ganho da variação do erro, mas também o do erro, pois não existe forma de compensar o controlo provocado pelo elevado ganho do mesmo quando o sistema está perto do valor pretendido. Tendo em conta que foram baixados os ganhos das duas componentes, é espectável que o tempo de subida seja maior. Sendo assim, chegou-se ao valor dos ganhos de 1.5, 0.045 e 1, para o erro, variação do erro e saída, respectivamente. A resposta do sistema encontra-se representada pela figura 67, e as suas características são:

78

  

RiseTime: 1.1028 SettlingTime: 3.4016 Overshoot: 4.2777

Figura 67 Resposta de saída do sistema servo modular para o controlador de 49 regras (2)

Usando os mesmos métodos do controlo difuso de 7 conjuntos, foi criado um controlador de apenas 3 variáveis linguísticas. Os conjuntos criados são N (Negative), Z (Zero) e P (Positive). As funções de pertença atribuídas a cada um dos conjuntos são as expostas nas figuras 68, 69 e 70. O aspecto destas funções baseiam-se em testes levados a cabo para melhorar o desempenho do controlador por forma a obter uma resposta de saída aceitável.

79

Figura 68 Funções de pertença dos conjuntos da entrada, erro, para o controlador difuso de 9 regras

Figura 69 Função de pertença dos conjuntos da entrada, variação do erro, para o controlador difuso de 9 regras

80

Figura 70 Função de pertença dos conjuntos da saída para o controlador difuso de 9 regras

As regras difusas aplicadas neste controlador estão representadas na tabela 14:

Variação do erro

Tabela 14 Regras Difusas para o controlador de 9 regras

N Z P

N N N N

Erro Z N Z P

P P P P

Ajustando os ganhos de modo a obter a melhor resposta possível, foi obtida no MATLAB a saída demonstrada pela figura 71, com ganhos de 1.2, 0.45 e 1, para o erro, variação do erro e saída, respectivamente.

81

Figura 71 Resposta de saída do sistema simulado melhorada para o controlador de 9 regras

Seguindo o procedimento efectuado para o controlador anterior, foi testado o controlador difuso no sistema servo. Depois de ajustados os ganhos, chegou-se à resposta de saída representada na figura 72, sendo as suas características:

RiseTime: 0.7846 SettlingTime: 2.8377 Overshoot: 6.7855

Figura 72 Resposta de saída do sistema servo modular para o controlador de 9 regras (1)

82

Numa segunda tentativa de melhorar a resposta do sistema foram achados os ganhos de 3.3, 0.365 e 1, para os ganhos do erro, variação do erro e saída respectivamente. A saída encontra-se representada na figura 73, com as seguintes características:

RiseTime: 0.8108 SettlingTime: 3.4156 Overshoot: 6.1068

Figura 73 Resposta de saída do sistema servo modular para o controlador de 9 regras (2)

Existem grandes diferenças no que toma ao controlador difuso sobre o PID. No que toca ao controlo, podem se enumerar algumas: o facto, de os sistemas difusos permitirem mais que uma entrada ou saída, o que não acontece nos controladores PID; o seu desempenho pode ser rapidamente melhorado com a adição de novas regras e variáveis; tem vantagem sobre os controladores PID, pois possibilitam um controlo mais eficiente em sistemas não lineares. São bastante mais versáteis, pois podem ser utilizados em múltiplos sistemas, como, por exemplos, processos de baixo custo, onde estes controladores oferecem bons resultados. Podem também funcionar em paralelo com outros controladores de modo a adicionar uma camada extra de inteligência.

83

Referências Documentais [1] - Astrom K. J. and Hagglund T. H., “New tuning methods for PID controllers”, Proceedings of the 3rd European Control Conference, 1995

[2] - http://www.ece.ualberta.ca/~marquez/journal_publications_files/papers/tan_cce_06.pdf

[3] – Marcos Manala, “Projectos de Controle Convencional e Adaptativo Aplicados ao Sistema Térmico de uma Bancada de Ensaios de Cabos Conutores”, 2004

[4] – Lofti A. Zadeh, “Fuzzy Logic Systems: Origin, Concepts, and Trends”, 2004 [5] – http://www.feng.pucrs.br/~gacs/new/disciplinas/psc_CN/apostilas/Aula6_2007II.pdf

[6] – http://newton.ex.ac.uk/teaching/CDHW/Feedback/ControlTypes.html

84

Anexo A. Código MATLAB para a determinação dos parâmetros de sintonia dos controladores PID através da heurística de Z-A

function [Kp, Ki, Kd] = za(K, L, T, op) teste = L/T; switch op case 1 disp('Controlador PI') if(teste a1 = b1 = a2 = b2 = Kp Ti Ki Td Kd

= = = = =

end if(teste a1 = b1 = a2 = b2 = a3 = Kp Ti Ki Td Kd

= = = = =

1) 0.786; -0.559; 0.883; -0.158; 0.385; (a1/K)*(L/T)^b1; T/(a2+b2*(L/T)); Kp/Ti; 0; Td * Kp;

end case 2 disp('Controlador PID') if(teste a1 = b1 = a2 = b2 = a3 = b3 =

1) 1.142; -0.579; 0.919; -0.172; 0.384; 0.839; (a1/K)*(L/T)^b1; T/(a2+b2*(L/T)); Kp/Ti; a3*T*(L/T)^b3; Td * Kp;

end end end

86