Você está na página 1de 11

IFSP – prof.

Angelo – N9 – IAA

CONTROLE NEBULOSO OU CONTROLE DIFUSO

A lógica nebulosa, ou “fuzzy” tem sido cada vez mais usada para automatizar processos,
como o controle de plantas industriais e no auxílio à decisão em sistemas que utilizam
informações fornecidas por seres humanos. Por exemplo, tem-se a lógica nebulosa em
aplicações que vão do controle de eletrodomésticos ao controle de satélites, do mercado
financeiro à medicina. O número de aplicações tende a crescer, pois a lógica nebulosa
permite a inclusão da experiência humana na construção do sistema controlador [1]. A
lógica nebulosa (também chamada de lógica difusa ou lógica “fuzzy”) permite que
requerimentos complexos possam, muitas vezes, ser implementados em controladores
simples, de fácil manutenção e baixo custo. O uso de sistemas construídos desta maneira,
chamados de controladores difusos ou controladores nebulosos, é especialmente
interessante quando o modelo matemático está sujeito a incertezas [2] [3] [4] [5].

Pode-se entender um controlador difuso através do estudo de um problema, como o


equilíbrio do pêndulo invertido mostrado na figura abaixo. Na figura abaixo, y indica o
ângulo que o pêndulo faz com a vertical (em radianos), l indica o comprimento de meio
pêndulo (em metros), e u indica entrada de força que se move o carrinho (em Newtons).
Usaremos r para denotar a posição angular desejada do pêndulo. O objetivo é equilibrar o
pêndulo na posição vertical (isto é, r = 0) quando se inicialmente começa com certo
ângulo diferente de zero da vertical (ou seja, y ≠ 0). Este é um problema de controle
clássico e muitas técnicas já existem para a sua solução. O objetivo aqui é apenas
introduzir o funcionamento de um controlador difuso pelo exemplo.

 Entradas e saídas do controlador difuso

Considere que um humano tem a responsabilidade de controlar o pêndulo, o controlador


difuso deve ser concebido para automatizar a forma como o especialista humano, que é
bem sucedido nessa tarefa, controlaria o sistema. Primeiro, o especialista deve ser
entrevistado pelos projetistas do controlador sobre as entradas para o processo de tomada
de decisão. Suponha que o especialista humano use:

𝑑
e(t) = r(t) − y(t) e 𝑑𝑡
𝑒(𝑡)

como sendo as variáveis sobre a qual as decisões são tomadas. Certamente, existem
muitas outras escolhas (como, por exemplo, a integral do erro), mas esta escolha é
suficiente para a presente demonstração.

Em seguida, devemos identificar a variável controlada. Controlaremos aqui apenas a força


que move o carro, u.

1
IFSP – prof. Angelo – N9 – IAA

Depois que todas as entradas e saídas são definidas, podemos especificar o sistema de
controle difuso, para tal, deve-se obter uma descrição de como controlar o processo. O
sistema de controle é mostrado na figura acima.

 Descrições linguísticas

Suponha-se que o perito humano fornece uma descrição em português de como melhor
controlar a planta. Usam-se “variáveis linguísticas” para descrever as entradas e saídas do
controlador. Para o pêndulo invertido,

“erro” descreve e(t)


𝑑
“mudança no erro” descreve 𝑑𝑡 𝑒(𝑡)
“força” descreve u(t)

Suponha, por exemplo, que "erro", "mudança no erro", e "força" possam assumir os
seguintes valores: “negativo grande”, “negativo pequeno”, “zero”, “positivo pequeno” e
“positivo grande”.

As variáveis linguísticas e seus valores permitem ao perito expressar suas ideias sobre o
controle do processo de tomada de decisão. Recordamos que nesta aplicação de pêndulo
invertido r=0 e e=r–y de modo a que:

𝑑 𝑑 𝑑
e=–y e 𝑒 =− 𝑦 , pois 𝑟 = 0.
𝑑𝑡 𝑑𝑡 𝑑𝑡

Primeiro, estudaremos como quantificar os comportamentos dinâmicos com as variáveis


linguísticas, em seguida, veremos como quantificar o conhecimento sobre o controle do
pêndulo. Por exemplo, cada uma destas afirmações quantifica uma configuração diferente
do sistema:

 A declaração “o erro é positivo grande” representa a situação em que o pêndulo está


em um ângulo significativo para a esquerda da vertical.
 A declaração “o erro é negativo pequeno” representa a situação em que o pêndulo
está apenas ligeiramente para a direita da vertical, mas não demasiado perto da
vertical para quantificá-lo como “zero” e não muito longe de justificar quantificá-lo
como “negativo grande”.
 A declaração “erro é zero” representa a situação em que o pêndulo está muito
próximo da posição vertical (uma quantificação linguística não é precisa, portanto,
estamos dispostos a aceitar qualquer valor de erro em torno de e (t) = 0 como sendo
quantificada linguisticamente por “zero”, pois isso pode ser considerado uma melhor
quantificação do que “negativo pequeno” ou “positivo pequeno”).

2
IFSP – prof. Angelo – N9 – IAA

 A declaração “o erro é positivo grande e a mudança no erro é positiva pequena”


representa a situação em que o pêndulo está à esquerda da vertical e, uma vez que
d
dt
y < 0, o pêndulo está se movendo para longe da posição vertical (note que neste
caso o pêndulo está se movendo para a esquerda).
 A declaração “o erro é negativo pequeno e a mudança no erro é positiva pequena”
representa a situação em que o pêndulo está ligeiramente para a direita da vertical e,
𝑑
uma vez que 𝑑𝑡 𝑦 < 0, o pêndulo está se movendo em direção à posição vertical (note
que, neste caso o pêndulo está se movendo para a esquerda).

 Base de Regras

Agora, usaremos a quantificação linguística para especificar um conjunto de regras que


captura o conhecimento do especialista sobre como controlar o sistema. Em particular,
para o pêndulo invertido nas três posições mostradas na figura abaixo, temos as regras:

1. Se o erro é “negativo grande” E a mudança no erro é “negativa grande” Então a força


é “positiva grande”.

Esta regra quantifica a situação (a) da figura acima, na qual o pêndulo tem um ângulo
positivo grande e está se movendo no sentido horário, então devemos aplicar uma força
forte e positiva (à direita) para que possamos tentar colocar o pêndulo na direção correta.

2. Se o erro é “zero” E a mudança no erro é “positiva pequena” Então a força é


“negativa pequena”.

Esta regra quantifica a situação (b) da figura acima na qual o pêndulo tem ângulo quase
zero com a vertical (uma quantificação linguística de zero não implica que e (t) = 0
exatamente) e está se movendo para a esquerda, portanto devemos aplicar uma pequena
força negativa (à esquerda) para neutralizar o movimento (uma força positiva poderia
resultar no pêndulo passando da posição desejada).

3. Se o erro é “positivo grande” E a mudança no erro é “negativa pequena” Então a


força é “negativa pequena”.

Esta regra quantifica a situação (c) da figura acima, na qual o pêndulo está longe e à
esquerda da vertical e está em movimento em direção ao centro, portanto deve-se aplicar
uma pequena força negativa (para a esquerda) para auxiliar o movimento, mas não uma
grande força, uma vez que o pêndulo já está se movendo na direção correta.

Cada uma das três regras listadas acima é uma “regra linguística”, pois é formada

3
IFSP – prof. Angelo – N9 – IAA

exclusivamente a partir de variáveis linguísticas e valores linguísticos. Como os valores


linguísticos não são representações precisas das quantidades que eles descrevem, regras
linguísticas também não são precisas. Elas são apenas ideias abstratas sobre como
conseguir um bom controle que podem ter significados diferentes para diferentes pessoas.
Eles estão, no entanto, em um nível de abstração que os seres humanos, muitas vezes,
estão confortáveis em termos de especificação de como controlar um processo.

Continuando com a descrição acima, poderíamos escrever as regras para todos os casos
possíveis do problema do pêndulo. Nota-se que, uma vez que especificamos um número
finito de variáveis linguísticas e valores linguísticos, há apenas um número finito de
regras possíveis. Para o problema do pêndulo, com duas entradas e cinco valores
linguísticos para cada uma delas, há 52 = 25 regras possíveis.

A representação tabular de um conjunto possível de regras para o pêndulo invertido é


mostrada na tabela a seguir.

𝑑
“mudança no erro” 𝑒
𝑑𝑡
“força” u negativa negativa positiva positiva
zero
grande pequeno pequeno grande
positiva positiva positiva positiva
negativo grande zero
grande grande grande pequeno
positiva positiva positiva negativa
negativo pequeno zero
grande grande pequeno pequeno
“erro” positiva positiva negativa negativa
zero zero
e grande pequeno pequeno grande
positiva negativa negativa negativa
positivo pequeno zero
pequeno pequeno grande grande
negativa negativa negativa negativa
positivo grande zero
pequeno grande grande grande

 Funções de pertinência

Devemos quantificar o significado dos valores linguísticos usando “funções de


pertinência”. Considere, por exemplo, a figura da esquerda abaixo, na qual um gráfico de
μ em função de e(t) assume um formato triangular. A função μ quantifica a certeza que
e(t) pode ser classificado linguisticamente como “positivo pequeno”.

Para entender a maneira como as funções de pertinência operam pode-se realizar uma
análise de caso, na qual se mostra como interpretar os vários valores de e(t):

• Se e(t) = π/4, então, μ (π/4) = 1; indicando que estamos absolutamente certos de que
e(t) = π/4 é o que queremos dizer com “positivo pequeno”.
• Se e(t) = π/2, então, μ (π/2) = 0; indicando que estamos certos de que e(t) = π / 2 não é
“positivo pequeno”.

4
IFSP – prof. Angelo – N9 – IAA

• Se e(t) = π/8, então, μ (π/8) = 0,5; indicando que estamos meio certos de que e(t) = π/8
é “positivo pequeno”. (estamos apenas meio certos, uma vez que também poderia ser
“zero” com algum grau de certeza, ou seja, este valor está em uma “zona cinzenta” em
termos de interpretação linguística).
• Se e (t) = π¸ então, μ (π) = 0, indicando que estamos certos de que e(t) = π não é
“positivo pequeno” (na verdade, é “positivo grande”).

A função de pertinência quantifica, de uma maneira contínua, se os valores de e(t)


pertencem (são membros) ao conjunto de valores “positivo pequeno”, e, portanto,
quantifica o significado da declaração linguística “erro é positivo pequeno”. É importante
saber que a função de pertinência da figura da esquerda da página anterior é apenas uma
definição possível do significado de “erro é positivo pequeno”, poderia ser usada uma
função em forma de sino, trapézio ou outros. Neste exemplo, temos um conjunto difuso
para descrever os valores μ como sendo “positivo pequeno”. Um conjunto crisp
(antônimo de “difuso”) de quantificação de “positivo pequeno” também pode ser
especificado, como na função de pertinência bivalente mostrada na figura da direita.

Já especificamos o significado de um valor linguístico através de um conjunto difuso


(função de pertinência), podemos, então, especificar as funções de pertinência para todos
os 15 valores linguísticos de nosso exemplo. Veja a figura abaixo para uma possível
escolha de funções de pertinência.

As funções de pertinência nas bordas exteriores da figura acima merecem atenção


𝑑
especial. Para as entradas e(t) e 𝑒(𝑡), vemos que as funções externas saturam em ‘1’.
𝑑𝑡
Isso faz um sentido intuitivo, como se em algum momento o especialista humano apenas
agrupasse todos os grandes valores juntos em uma descrição linguística como “positivo
grande”. As funções de pertinência nas bordas caracterizam adequadamente este
fenômeno, uma vez que conceituam o ‘maior que’ (para o lado direito) e o ‘menor que’
(para o lado esquerdo). Para a saída de u, as bordas das funções de pertinência não podem
ser saturadas. A razão básica para isto é que, nos processos de controle, procuramos tomar
medidas que especificam um valor exato para a entrada dos atuadores. Geralmente, não se

5
IFSP – prof. Angelo – N9 – IAA

indica para um atuador do processo “qualquer valor maior do que 10 é aceitável”.

 Nebulização ou “Fuzzificação”

O processo de nebulização ou “fuzzificação” pode ser definido como obtenção do valor


de uma variável de entrada (por exemplo, e(t)), e a determinação de seu respectivo valor
na função de pertinência. No exemplo da figura na página anterior, se e(t) = π/4 e
𝑑
𝑒(𝑡) = π/16, teremos:
𝑑𝑡

𝜇𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜 𝑝𝑒𝑞𝑢𝑒𝑛𝑜 (𝑒(𝑡)) = 1 com todos os outros em zero e

𝑑 𝑑
𝜇𝑧𝑒𝑟𝑜 ( 𝑒(𝑡)) = 0,5 e 𝜇𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜 𝑝𝑒𝑞𝑢𝑒𝑛𝑜 ( 𝑒(𝑡)) = 0,5
𝑑𝑡 𝑑𝑡

Podem-se entender os valores da função de pertinência como uma codificação das


entradas do controlador difuso.

 Etapa de inferência: processamento das informações

A informação codificada pelo método de nebulização descrito acima é utilizada no


processo de inferência do controlador. Este processo inicia com a correspondência.

 Correspondência: determinar quais regras serão usadas

O processo de inferência geralmente envolve duas etapas:

1. As premissas de todas as regras são comparadas com os valores de entrada do


controlador para determinar quais regras se aplicam à situação atual. Este processo de
correspondência envolve a determinação do grau de certeza de que cada regra se aplica,
levando-se mais fortemente em conta as recomendações das regras que estamos mais
certos de que se apliquem à situação atual.

2. As conclusões (que especificam quais ações tomar) são determinadas usando as regras
aplicadas ao momento atual. As conclusões são caracterizadas com um conjunto nebuloso
que representa o grau de certeza dos valores que a entrada da planta deve receber.

 Quantificação das premissas

Para realizar a inferência é preciso primeiro ponderar cada uma das regras com. Para isso,
quantificamos as premissas das regras, usando a correspondência de cada uma das
entradas do controlador. Veja a regra abaixo:

Se o erro é zero E a mudança no erro é positiva pequena Então força é negativa pequena.

A premissa da regra é: “erro é zero E mudança no erro é negativa pequena”.

A quantificação da premissa é feita pela avaliação da lógica “E” (operação que combina
os dois termos linguísticos).

𝑑
Vamos supor que e(t) = π/8 e 𝑑𝑡
𝑒(𝑡) = π/32. Pela figura da próxima página teremos:

6
IFSP – prof. Angelo – N9 – IAA

𝑑
𝜇𝑧𝑒𝑟𝑜 (𝑒(𝑡)) = 0,5 e 𝜇𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑜 𝑝𝑒𝑞𝑢𝑒𝑛𝑜 (𝑑𝑡 𝑒(𝑡)) = 0,25

Para esses valores, qual a quantificação premissa: “erro é zero E mudança no erro é
negativa pequena”? Vamos denotar essa certeza por μ premissa. Existem várias maneiras de
definir isso, mas aqui vamos usar o valor mínimo, que define:

μpremissa = min {0,5, 0,25} = 0,25

Ou seja, o mínimo entre os dois valores de pertinência. Qual o sentido desse valor? O
sentido é que, se não estamos muito certos sobre a verdade de uma declaração, não
podemos ter mais certeza sobre a veracidade dessa declaração "E" a outra declaração.

 Determinando quais regras estão ativadas

Dizemos que uma regra está ativa se sua premissa μpremissa > 0. Assim, o mecanismo de
inferência procura determinar quais as regras são relevantes para a situação atual. No
passo seguinte, o mecanismo de inferência irá combinar as recomendações de todas as
regras para chegar a uma única conclusão.

Vejamos quais regras estão ativas para o seguinte caso:

𝑑
e(t) = 0 e 𝑒(𝑡)= π/8 − π/32 (= 0.294)
𝑑𝑡

A figura acima mostra as funções de pertinência para as entradas e indica com linhas
𝑑
verticais os valores para e(t) e 𝑑𝑡 𝑒(𝑡). Observe que μzero(e(t)) = 1, e que todas as outras

7
IFSP – prof. Angelo – N9 – IAA

funções de pertinência para a entrada e(t) estão com seus valores iguais a zero. Para a
𝑑 𝑑 𝑑
entrada 𝑑𝑡 𝑒(𝑡), vemos que μzero(𝑑𝑡 𝑒(𝑡)) = 0,25 e μpositivo pequeno(𝑑𝑡 𝑒(𝑡)) = 0,75 e que todas
as outras funções de pertinência estão em zero. Isto implica que as regras que têm a
premissa, “erro é zero”, “mudança no erro é zero” e “mudança no erro é positiva
pequena” estão ativadas. Quais as regras são essas? Usando a tabela da página 4, observa-
se que temos apenas duas regras ativadas:

1. Se o erro é zero E a mudança no erro é zero, Então a força é zero.

2. Se o erro é zero E a mudança no erro é positiva pequena Então a força é negativa pequena.

 Determinando conclusões

Para determinar as conclusões derivadas do conjunto de regras que estão ativadas vamos
primeiro considerar as recomendações de cada regra de forma independente e depois
combinar todas as recomendações para determinar a força que deve ser aplicada no carro
que carrega o pêndulo invertido.

 Recomendação dada por uma regra

Considere a conclusão alcançada pela Regra 1:

Se o erro é zero e mudança no erro é zero, então a força é zero.

Usando o valor mínimo para representar a premissa, temos:

μpremissa(1) = min {0,25, 1} = 0,25 (a notação μpremissa(1) representa μpremissa para a Regra 1)

que representa 0,25 de certeza de que esta regra se aplica à situação atual. A regra indica
que, se a sua premissa é verdadeira, então a sua ação deve ser tomada. A ação indicada
pela Regra 1 é a “força é zero” (isso faz sentido, pois aqui o pêndulo está equilibrado). A
função de pertinência para esta ação é mostrada na figura (a) abaixo. A função de
pertinência para a conclusão da Regra 1, denotada por μ(1), é mostrada abaixo em (b).

Vemos que a função μ(1)(u) da figura (b) acima quantifica a certeza da Regra 1 sobre o
valor que a força (u) deve assumir. É provável que (u) deva estar em uma região em torno
de zero, indicando que a força não deve ser demasiado grande na direção positiva ou
negativa. A função de pertinência μ(1)(u) quantifica a conclusão da Regra 1.

 Recomendação dada pela outra regra

Considere, agora, a conclusão alcançada pela Regra 2:

Se o erro é zero e a mudança no erro é positiva pequena Então força é negativa pequena

8
IFSP – prof. Angelo – N9 – IAA

Usando o valor mínimo para representar a premissa, temos:

μpremissa(2) = min {0,75, 1} = 0,75

que representa 0,75 de certeza que esta regra se aplica à situação atual. Observe que
estamos muito mais certo que a Regra 2 se aplica à situação atual do que a Regra 1. A
ação indicada pela Regra 2 é que a força seja negativa pequena (isso faz sentido, pois aqui
o pêndulo está equilibrado, mas se movendo no sentido anti-horário com uma velocidade
pequena). A função de pertinência para esta ação é mostrada na figura (a) abaixo e a
função associada à conclusão da Regra 2, que denotamos μ(2), é mostrada na figura (b).

 Convertendo conclusões em ações: Denebulização ou “Defuzzificação”

A operação de denebulização opera sobre os conjuntos de difusos produzidos pelo


mecanismo de inferência com o objetivo de combinar seus efeitos. Para entender este
processo, reuniremos todos os conjuntos difusos das ações indicadas em um único eixo,
como mostrado na figura abaixo, para encontrar um valor de saída, “ucrisp”.

O método mais usado para a produção deste valor é o Centro de Gravidade (COG, em
inglês). Tendo bi denotando o centro da função de pertinência da ação de Regra i (isto é,
onde ela atinge o seu pico). Para o nosso exemplo, temos:

b1 = 0 e b2 = -10 (de acordo com a figura acima) e ∫ 𝜇(𝑖)

como a área sob a função de pertinência μ(i). O método de COG calcula ucrisp por

∑𝑖 𝑏𝑖 ∫ 𝜇(𝑖)
𝑢𝑐𝑟𝑖𝑠𝑝 =
∑𝑖 ∫ 𝜇(𝑖)

Embora possa não parecer, é fácil calcular ∫ 𝜇(𝑖) para o nosso exemplo. Para o caso em
que se têm funções de pertinência triangulares simétricas com w como a largura da base,
a área de um triângulo “cortado” a uma altura de h (tais como nas figuras acima) é :

ℎ2
∫ 𝜇(𝑖) = 𝑤 (ℎ − )
2

9
IFSP – prof. Angelo – N9 – IAA

Diante disso, tem-se o cálculo para se obter o valor de saída ucrisp:

(0). (4,375) + (−10). (9,375)


𝑢𝑐𝑟𝑖𝑠𝑝 = = −6.81
4,375 + 9,375

Será que esse valor para de força (6,81 Newtons para a esquerda) faz sentido? Considere
a figura abaixo, na qual temos os conjuntos difusos de saída ativados. Pode-se dizer que a
indicação numérica de “defuzzificação” por COG é uma boa representação das
conclusões a que chegaram as regras ativadas. Nota-se que o valor de ucrisp está
aproximadamente no meio dos dois conjuntos difusos.

E, lembrando que tínhamos:

𝑑
e(t) = 0 e 𝑒(𝑡)= π/8 − π/32 (= 0,294)
𝑑𝑡

ou seja, o pêndulo invertido está se movendo para a esquerda com uma velocidade
pequena então, faz sentido puxar o carrinho com pouca força, que é o que o controlador
nebuloso indica como ação.

Referência Bibliográfica:

[1] D. Ruan, A. J. Vander Wal, Ariën. Controlling the power output of a nuclear reactor
with fuzzy logic. Information Sciences, v. 110, n. 3-4, p. 151-177, 1998.

[2] Fuzzy Open-Loop Attitude Control for the FAST Spacecraft, San Diego - CA, Julho
1996. Proc. of the NASA AIAA, Guidance, Navigation and Control Conference.

[3] P. of the NASA AIAA, editor. AutomatedManeuver Planning Using a Fuzzy Logic
Controller, SanDiego -CA, Julho 1996. Guidance: Navigation and Control Conference.

[4] R. Guerra, S. A. Sandri, M. L. O. Souza. Controle de atitude autônomo de satélites


usando lógica nebulosa. Anais do SBAI’97, p. 337–342, 1997.

[5] S. Chiu and S. Chand. Adaptative Traffic Signal Control Using Fuzzy Logic. The
Institute of Eletrical and Eletronics Engineers, Inc., New York, 1994.

Texto extraído e modificado do artigo: Lógica Nebulosa Sandra Sandri, Cláudio Correa
INPE V Escola de Redes Neurais, Promoção: Conselho Nacional de Redes Neurais, pp.
c073-c090, 19 de julho, 1999 - ITA, São José dos Campos – SP.

10
IFSP – prof. Angelo – N9 – IAA

Texto também extraído, traduzido e modificado do livro: Fuzzy Control, Kevin M.


Passino e Stephen Yurkovich. EUA: Addison-Wesley, 1998.

11

Você também pode gostar