Projeto Controlador Fuzzy Vilma A Oliveira Fbio Rosseto
Projeto Controlador Fuzzy Vilma A. Oliveira Fábio Rosseto Maio 2008
Controlador Fuzzy Proporcional Sobresinal Simples Derivativo Reduz sobresinal Aumenta a sensibilidade ao ruído Apresenta pequeno erro de regime Integrativo Necessário caso ainda existir um pequeno erro É difícil escrever regras Implementado externamente (Fuzzy PD+I ou Fuzzy PD Incremental)
Controlador PD Fuzzy Escolher: Funções de pertinência (universo de discurso, forma e parâmetros das funções) Ganhos Regras Sistema fuzzy: And: mínimo, Or: máximo Operadores de implicação e agregação Defuzzificação: CDA
Funções de pertinência Tipo Triangular Gaussiana suaviza a resposta do sistema fuzzy Posicionamento Linear Espaçamento linear entre as funções de pertinência i= -2, 1, 0, 1, 2 Centros ci = 10*i
Funções de pertinência Não linear Exemplo Centros: ci = 5*sign(i)i 2 ci = 5 i 3 Centros próximos a origem são menor espaçados que funções distantes da origem. Efeito: Se o erro/variação do erro indicam proximidade da referência, então a força de entrada da planta não precisa ser tão grande, mas, se o erro e a variação do erro são grandes, a força precisa ser também muito grande para que o pêndulo retorne rapidamente mais próximo a posição desejada. Efeito no desempenho: Robustez a grandes perturbações Universo de discurso Faixa de variação do erro, do erro e da saída do controlador
Regras n entradas m funções de pertinência mn regras e(t) = r – y(t) r = 0 (e dr(t)/dt = 0) e = -y de(t)/dt = -dy/dt Obtenção das regras Extrair de um PD/Controlador Clássico
Regras (cont. ) Análise do sistema físico Exemplo de base de regras Erro + + - Negativo Zero Positivo Negativo Zero Negativo Zero Positivo + Variação do Erro - Diagonal composta pelos conjuntos fuzzy Zero Erro = referência – saída atual E(t) < 0 (Saída > Ref) E(t) = 0 (Saída = Ref) E(t) > 0 (Saída < Ref) De(t)/dt < 0 Erro diminuindo De(t)/dt = 0 Mínimo Sistema parado Máximo De(t)/dt > 0 Erro aumentando
Escalonamento da entrada g = 1, sem alteração nas entradas g < 1, corresponde à expansão das funções de pertinência em fator de 1/g. g > 1, corresponde à contração das funções de pertinência em um fator 1/g. Escalonamento da saída h = 1, sem alteração na saída h < 1, corresponde à situação em que as funções de pertinência são uniformemente contraídas pelo fator h h > 1, corresponde a situação em que as funções de pertinência são uniformemente “expandidas” pelo fator h.
Exemplo: Pêndulo invertido com carrinho Fuzzy PD Duas entradas (erro e variação do erro) Reduz sobresinal Pode apresentar erro em regime
Pêndulo invertido com carrinho Equações dinâmicas
Funções de pertinência Base de regras
Exercício: I – sem perturbação II – com perturbação de 600 N (no intervalo 0, 99 – 1, 01 s) Caso g 0 g 1 h I 1 0, 1 1 I 2 0, 1 5 II 2 0, 1 10 No Matlab pendulo = readfis(‘pendulo. fis’) % carregar sistemas fuzzy: %Abrir arquivo simulink com bloco fuzzy chamado pendulo open Pendulo. Inv. mdl Alterar os ganhos do sistema fuzzy (equivale a modificar os parametros das funções de pertinências)
Sintonia de Controladores Fuzzy Fábio Rosseto
Controlador PD Fuzzy linear Bloco PD Fuzzy: Erro / variação do erro / sinal u • Entradas Triangulares com cruzamento em u = 0, 5 Conectivos / operadores: • Usar operadores lineares Exemplo: produto, soma algébrica • Regras Construídas utilizando “and” e regras definidas entre todas as combinações de entrada • Saída “singletons” e posições determinadas pela soma das posições dos picos dos conjuntos de entrada • Defuzzificação Método do centro de área
Universos de discurso PD Fuzzy PD u = Kp(e + Td de/dt) Entrada e [-1, 1] de/dt [-1, 1] u [-2, 2] Para |max(e)| = |max(de/dt)| = 1 u = Kp(e+Td de/dt) Td = 1 Kp = 1
Transferência de ganhos Controladores clássicos Controlador fuzzy linear Controlador Proporcional Fuzzy Caso linear U = GU*GE*e P clássico: Por comparação GU*GE = Kp
Controlador PD Fuzzy (Análogo ao PD clássico) U = GU*f(GE*e, GCE*de/dt) Caso linear U = GU * (GE*e + GCE*de/dt) U = GE*GU * (e + GCE/GE*de/dt) PD clássico: Por comparação: GU*GE = Kp GCE/GE = Td
Controlador PIncremental Fuzzy (Análogo ao PI clássico) k U ( k ) = å cu ( j ) * GCU * Ts j =1 U(k): soma até t=k CU = GCU * (GE*e + GCE*de/dt) U(k)= PI clássico: Por comparação tem-se GCU*GCE = Kp GE/GCE = 1/Ti é GE k ù + GCE * GCU * ê e ( j ) * T e ( k ) ú å s ë GCE j =1 û
Controlador PD+I Fuzzy (Análogo ao PID Clássico) Caso linear PID clássico: Por comparação: GU*GE = Kp GCE/GE = Td GIE/GE = 1/Ti
Resumo da transferência de ganhos Controladores P, PI, PD e PID e controlador fuzzy linear Controlador Fuzzy. P Kp 1/Ti Td GE*GU Fuzzy. Incremental GCE*GCU GE/GCE Fuzzy. PD GE*GU Fuzzy. PD+I GE*GU GCE/GE GIE/GE GCE/GE
Sintonia de Controladores Fuzzy 1. Sintonizar um PID - Sintonia manual - Ziegler-Nichols - Outros métodos clássicos 2. Insira um Fuzzy PD+I 3. Transfira os ganhos do PID (se não houver saturação nas entradas e saídas a resposta deverá ser parecida) 4. Adicione não linearidades ao controlador 5. Ajuste fino: Ajuste manual GE melhora a taxa de subida GCE amortecer o sobresinal GIE remove o erro em regime
“Fazendo o controlador não linear” Exemplo Uma entrada uma saída Regras: SE erro é Neg ENTÃO Saida é Neg SE erro é Zero ENTÃO Saída é Zero SE error é Pos ENTÃO Saída é Pos Operadores Max: produto Implicação: min Agregação: probor Defuzzificação: CDA Modificando a forma das funções de pertinência Modificando a disposição das funções de pertinência
Ajustes Finos Taxas de amostragens altas sensível ao ruído Compensar alterando o ganho GCE GE: emax * GE = max (universo de discurso) Fuzzy. PD afeta ganhos proporcionais e derivativos GE tão grande quanto possível reduz problemas com ruído PIncremental GE grande controle incremental torna-se menos estável (ganho integrativo alto) Fuzzy. PD+I GE tão grande quanto possível porém ao custo do aumento do ganho integrativo GCE: cemax * GCE = max (universo de discurso) Fuzzy. PD tão pequeno quanto possível Evitar problemas com ruído Altera o ganho derivativo sem afetar o ganho proporcional Fuzzy. Incremental aumento de GCE diminui ação integrativa e incrementa o ganho proporcional, manter GCE tão grande quanto possível para preservar a estabilidade. Fuzzy. PD+I incremento em GCE incrementa o ganho derivativo manter tão pequeno quanto possível GCU / GU: Afetam ganho proporcional, deve ser tão grande quanto possível sem criar muito sobressinal. Se pequeno, o sistema pode apresentar-se lento, se muito grande instável.
Resumo das características controladores Controlador Vantagem Desvantagem Fuzzy. P Simples Muito simples demais Fuzzy. PD Menos sobresinal Sensível ao ruído chute derivativo Fuzzy. Incremental Remove erro de regime Lento Sinal de controle suave Fuzzy. PD+I Tudo em um Efeito “windup” chute derivativo
Exercício Projetar controlador Fuzzy PInc e Fuzzy PD+I e comparar com controlador convencional utilizado como ponto de partida. Sistemas Fuzzy PD linear utilizados: linear. fis sistema fuzzy linear Entradas: Saída: 3 funções de pertinência triangulares (cruzamento em 0. 5) 5 funções de pertinência (singletons distribuidos ao longo do universo de discurso) Universos de discurso normalizados. Ajustar funções de pertinência, Verificar efeito com operadores (min, max) usando o sistema fuzzy pd não linear nlinear. fis sistema fuzzy não linear Comparar fuzzy linear e não linear
Projeto do controlador Clássico ZN. mdl Ajuste via ZN Parâmetros obtidos: Ku = 8 Tu = 15/4 Parâmetros Obtém PI/PID nas formas PI Kp =. 45 * Ku Ti = Tu / 1. 2 PID Ku = 8 Tu = 15/4 P = Kp I = Kp/Ti Kp =. 6 * Ku Ti = Tu / 2 Td = Tu / 8 Pinc Fuzzy GE = 1. 5; GCE = Ti*GE; GCU = Kp/GCE; P = Kp I = Kp/Ti D = Kp*Td Parâmetros PD+I Fuzzy GE =. 8; GU = Kp/GE; GCE = GE*Td GIE = GE*1/Ti e os ganhos para transferência.
No Matlab Carregar sistemas fuzzy: linear = readfis(‘linear. fis’) nlinear = readfis(‘nlinear. fis’) Rodar parametros. m (P, I, D (clássico) e ganhos fuzzy GE, GCE, GU, GCU, GIE) Opção PI Fuzzy PIncremental: open fuzzy. PInc. mdl Opção PID Fuzzy PD+I: open FPD_I. mdl Para cada caso comparar com o clássico Open PID. mdl Modificar o sistema fuzzy para nlinear (modificando funções de pertinências) Sistema fuzzy não linear: nlinear. fis Verificar aumento de robustez para o PID (adicionar ruído)
Ajuste manual 1. Td=0 e 1/Ti=0 2. Selecionar Kp para fornecer a resposta transitória desejada 3. Aumentar Kp e ajustar Td para reduzir sobressinal 4. Ajustar 1/Ti para eliminar erro de regime 5. Repetir passo 3 até Kp atingir o maximo valor possível
Bibliografia • • • Jantzen, J. , Tuning of Fuzzy PID Controllers, Technical University of Denmark: Dept. of Automation, 1998 (http: //fuzzy. iau. dtu. dk/tedlib. nsf/htmlmedia/library. html) Jantzen, J. , Design of Fuzzy Controllers, Technical University of Denmark: Dept. of Automation, 1998 (http: //fuzzy. iau. dtu. dk/tedlib. nsf/htmlmedia/library. html) Passino K. M. , Yurkovich S. , Fuzzy Control, Addison Wesley Longman, 1998
Solução (Problemas com Simulink) Em Simulation >> Simulation parameters Aba Advanced Desligar "Boolean logic signals" localizado em optimizations section. Desligar o Zero cross detection (colocar em off)
- Slides: 30