86
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

CONTROLO DA VELOCIDADE DE UM SISTEMA …ave.dee.isep.ipp.pt/~lbf/LABF520/Alulas Laboratoriais SISCA/sisca... · Figura 4 Modelo do servo com controlador difuso, no SIMULINK Depois

Embed Size (px)

Citation preview

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

iv

Índice

ÍNDICE .......................................................................................................................................................... IV

ÍNDICE DE FIGURAS ................................................................................................................................... V

ÍNDICE DE TABELAS ................................................................................................................................ IX

1. OBJECTIVOS ....................................................................................................................................... 11

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

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

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

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

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

3. 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

v

Í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

vi

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

vii

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

viii

ix

Í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

11

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.

12

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

13

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

14

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 Modelo em malha aberta do sistema servo, no SIMULINK

Figura 4 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”).

15

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.

16

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:

17

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, , do controlador e o seu algoritmo (1).

18

(

)

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 e , fazendo

variar . 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.

19

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.

20

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).

21

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 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

2.4. 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 é

22

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

23

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 0.5L

24

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

25

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

26

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 Resumo dos valores dos coeficientes a e b para o controlador PID

2.4.3. CONTROLADOR DIFUSO

Figura 11 Esquemático de um sistema difuso

27

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.

28

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.

29

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.

30

Figura 13 Processo de desfuzificação

31

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.

32

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;

33

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.

34

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-integrativo-

derivativo (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

35

% 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

36

Tabela 6 Resumo dos parâmetros de

sintonização

Parâmetros Tipo de controlador

P PI PID

Kp 0.0428 0.0385 0.0514

Ki 0 0.0621 0.1380

Kd 0 0 0.0048

A tabela 6 apresenta um resumo dos

valores obtidos no MATLAB (figura 16)

para a sintonização do controlador. Estes

valores são inseridos posteriormente no

sistema servo para observar a sua resposta.

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

37

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

38

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 PI PID

Kp x2 0,0856

/2 0,0214

Ki x2 0,1242

/2 0,03105

Kd 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.

39

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

40

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

41

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.

42

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 tornou-

se 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

43

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

44

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.

45

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.

46

%% 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

47

% 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

48

Tabela 8 Resumo dos parâmetros de

sintonização

Parâmetros Tipo de controlador

P PI PID

Kp 0,0363 0,0326 0,0435

Ki 0 0,0535 0,1188

Kd 0 0 0,004

A tabela 8 apresenta um resumo dos

valores obtidos no MATLAB (figura 29)

para a sintonização do controlador. Tal

como na experiencia em malha fechada

estes valores são inseridos posteriormente

no sistema servo para observar a sua

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

tipo de controlador) são apresentados de

seguida.

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

49

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

50

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 PI PID

Kp x2 0,0726

/2 0,01815

Ki x2

0,107

/2

0,02675

Kd 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.

51

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

52

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

53

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

54

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.

55

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

56

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.

57

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.

58

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

59

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.

60

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

61

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

62

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

63

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 procedeu-

se 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.

64

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.

65

Tabela 10 Parâmetros do controlador PID

actualizados

Parâmetros Tipo de controlador

PID

Kp 0,0514

Ki 0,138

Kd 0,01536

A tabela 10 apresenta os valores de

sintonização actualizados que foram

introduzidos no controlador PID do

modelo do servo para observar a

resposta da figura 53.

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

66

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 Tipo de controlador

PID

Kp 0,0343

Ki 0,138

Kd 0,01536

A tabela 11 apresenta os valores de

sintonização actualizados que foram

introduzidos no controlador PID do

modelo do servo para observar a

resposta da figura 55.

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

67

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 à

68

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.

69

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

70

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.

71

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 .

72

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.

73

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

74

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

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

Erro

NB NM NS Z PS PM PB

Var

iaçã

o d

o e

rro NB NB NB NB NM Z PS PM

NM NB NB NB NM PS PM PB

NS NB NB NB NS PM PB PB

Z NB NB NB Z PB PB PB

PS NB NB NM PS PB PB PB

PM NB NM NS PM PB PB PB

PB NM NS Z PM 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:

75

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.

76

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.

77

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

78

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:

79

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.

80

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

81

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:

Tabela 14 Regras Difusas para o controlador de 9 regras

Erro

N Z P

Var

iaçã

o

do e

rro N N N P

Z N Z P

P N 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.

82

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)

83

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.

84

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

85

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 <= 1) a1 = 0.712; b1 = -0.921; a2 = 0.968; b2 = -0.247;

Kp = (a1/K)*(L/T)^b1; Ti = T/(a2+b2*(L/T)); Ki = Kp/Ti; Td = 0; Kd = Td * Kp; end if(teste > 1) a1 = 0.786; b1 = -0.559; a2 = 0.883; b2 = -0.158; a3 = 0.385;

Kp = (a1/K)*(L/T)^b1; Ti = T/(a2+b2*(L/T)); Ki = Kp/Ti; Td = 0; Kd = Td * Kp; end

case 2 disp('Controlador PID')

if(teste <= 1) a1 = 1.042; b1 = -0.897; a2 = 0.987; b2 = -0.238; a3 = 0.385; b3 = 0.906;

86

Kp = (a1/K)*(L/T)^b1; Ti = T/(a2+b2*(L/T)); Ki = Kp/Ti; Td = a3*T*(L/T)^b3; Kd = Td * Kp; end if(teste > 1) a1 = 1.142; b1 = -0.579; a2 = 0.919; b2 = -0.172; a3 = 0.384; b3 = 0.839;

Kp = (a1/K)*(L/T)^b1; Ti = T/(a2+b2*(L/T)); Ki = Kp/Ti; Td = a3*T*(L/T)^b3; Kd = Td * Kp; end

end

end