Post on 01-Oct-2018
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
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
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.
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;