Página 1 de 1

Lógica Difusa ... Nebulosa "Fuzzy Logic"

MensagemEnviado: 11 Jan 2008 14:59
por MOR_AL
Olá Pessoal!

Estou tentando fazer um sistema de controle com PIC sem facilidades matemáticas e de apenas 8 bits.
Na verdade são dois sistemas. Um controla a velocidade de rotação de um motor diesel por meio do acelerador e monitora a rotação. O acionamento do acelerador é feito por um motor elétrico de escovas para 12V.
O outro sistema controla o ângulo de um eixo de leme.

Sei como calcular e fazer os dois sistemas com componentes analógicos, assim como por meio de microcontroladores.
Aí vocês me perguntam. Pô!! Então qual é o problema?!! :?:
E eu respondo.
O problema é que para fazer isso usando controle analógico ou digital, por meio da função de transferência, ou por meio de um controle P, PI, ou PID, é necessário conhecer as características do motor e da carga. E eu não possuo estes dados, além do quê parece ser um sistema não linear. Este é o problema.
Sei que há diversos modos de se obter estes dados e até saberia como obtê-los, mas como gostaria de fazer um controle digital usando o mesmo PIC16F... ficaria inviável controlar tanta coisa (há mais tarefas a serem gerenciadas pelo PIC) e ainda ter que fazer contas com ponto flutuante, pois os coeficientes da função de transferência são números reais, quase sempre fracionários.
Em vista disso, decidi que meu sistema de controle seria realizado mesmo com, no máximo, operações de soma e subtração de 8 bits.
Como fazer? Bom. Em princípio a resposta do sistema pode não ser tão garantida em termos de "overshoot, settling time, rise time" e erro em regime permanente, como a resposta de um sistema feito do modo tradicional. Mas e daí?!! :twisted: Qual é a diferença se o meu sistema levar o dobro do tempo para convergir, se ainda assim for rápido?
Meu sistema parte da premissa simples "Se ultrapassou, reduza. Se faltou aumente. Se estiver dentro de limites aceitáveis, então está bom".
Quando já estava terminando de escrever a rotina, me lembrei da lógica fuzzy. Sei que ela segue este conceito "humano" em que os limites não precisam ser exatos, apesar de ser necessário fazer algumas contas de multiplicar e dividir com 16 bits.
Procurei então na internet, visitei cerca de 100 sites sobre a tal da lógica fuzzy, e ... Pasmem! Não encontrei sequer um exemplo completo (desde as premissas até o acionamento) de qualquer sistema de controle (temperatura, vazão, pressão, etc.). Tem muito papo e pouca ação!

Finalmente, pra quem chegou até aqui :D , aí vai a minha pergunta.

Alguém conhece alguma documentação que contenha um exemplo COMPLETO que usa a lógica fuzzy? Apesar de não aproveitá-la neste projeto, gostaria de saber usá-la!

Desde já aguardo e agradeço os seus comentários.

MOR_AL

MensagemEnviado: 11 Jan 2008 15:50
por proex
uai, vc mesmo ja tem a resposta: "Se ultrapassou, reduza. Se faltou aumente. Se estiver dentro de limites aceitáveis, então está bom".

Vai complicar pra que?

MensagemEnviado: 11 Jan 2008 15:56
por MOR_AL
É Proex ... Tá certo!

Acho que vou fazer do jeito fácil mesmo e ver no que dá!

MOR_AL

MensagemEnviado: 12 Jan 2008 20:42
por Sergio38br
boa noite,

Na texas tem um doc , sobre implementação da logica fuzzy para controle de motor, se quizer o endereço do doc. é este:



http://focus.ti.com/general/docs/techdo ... me=slaa235


G.A.

Sergio

MensagemEnviado: 12 Jan 2008 23:09
por MOR_AL
Olá Sergio38br.

Eu já tinha visto esta aplicação!
Confesso a você que não tinha encontrado o elo de ligação que transformava o vetor de saída (Y[]) em valor do PWM. :oops:

Agora, já mais descançado e pensando melhor, notei que este elo existe no documento. :D

Que coisa, né! ... Para te responder que já tinha visto este documento e que NÃO tinha este detalhe, eu tive que revê-lo, e aí "caiu a ficha!".

Valeu pela dica.

Um grande abraço.

MOR_AL

MensagemEnviado: 13 Jan 2008 10:13
por Peters
Tenho um e-book aqui [1] "Fuzzy Logic in Embedded Microcomputers and Control Systems". Livro muito bom, com vários exemplos de código... Bem prático e didático.


[1] - www.bytecraft.com/fuzlogic.pdf

MensagemEnviado: 13 Jan 2008 14:37
por MOR_AL
Olá Peters.

Baixei o documento.

Parece ser interessante. Vou lê-lo mais tarde.

Grato.

MOR_AL

MensagemEnviado: 13 Jan 2008 14:57
por fabim
olha. né por nada não..
Mais os chegados me chaman de 13eletrico, por causa das coisas que eu conheço e sei fazer em eletro eletronica..

São muitas coisas, de quase tudo...

Mais vem cá.. Pirex...

Convenhamos....
Cara pra que aprender uma logica fuzzy das idéias..?

Acho que o pessoal aqui é mais 13 que eu.!!!!

AFF credo. as coisas estão mudando por aqui.rsrsrsrsrkkkk


fabim

MensagemEnviado: 13 Jan 2008 21:02
por tcpipchip
OLA,
EU ORIENTEI UM ALUNO EM UM TCC SOBRE LOGICA FUZZY...
SÓ QUE USAMOS O 80C552
http://campeche.inf.furb.br/tccs/2002-I ... bargap.pdf
BOM PROVEITO
T+

MensagemEnviado: 13 Jan 2008 21:58
por MOR_AL
Olá tcpipchip.

Já baixei o arquivo. Vou dar uma estudada assim que puder. Parece interessante.

Grato.

MOR_AL

MensagemEnviado: 14 Jan 2008 07:16
por fabim
http://www.seattlerobotics.org/encoder/ ... index.html

fuzzy logic example descriptor...

acho que da pra clarear suas idéias..

Procure na rede P2P, um software chamado "ORIGIN PRO"..

eu uso ele quando o raciocinio esta fervido, com certeza voce vai gostar deste programito que tem tudo quanté diabo de calculo que você imaginar.

abraços
fabim

MensagemEnviado: 14 Jan 2008 09:50
por MOR_AL
Olá Fabim.

Já conhecia este site. Nele o cálculo da centróide não está claro. Já concluí que o caminho das pedras é ler todos e ir pegando as partes interessantes até que o quadro fique completo.

Vou procurar o software ORIGIN PRO.

Grato.

MOR_AL

MensagemEnviado: 14 Jan 2008 15:30
por veioloko
Essa parte de controle é um saco. principalmente quando nao se tem as caracteristicas do motor, resistencia etc.

Tenho muita documentação de PID e autotuning. Ja cheguei a testar alguns e aparentemente funcionaram, não cheguei ir tão a fundo. Precisa ser logica fuzzy?

Controlar uma resistência para um forno de tamanho fixo por exemplo é facil. Dificil é esse autotuning. Ou seja colocar o controlador pra funcionar em qualquer forno.

MensagemEnviado: 14 Jan 2008 16:20
por MOR_AL
veioloko escreveu:Essa parte de controle é um saco. principalmente quando nao se tem as caracteristicas do motor, resistencia etc.

Você não precisa saber estas características do motor. Considere o conjunto (motor + carga) e só precisa descobrir, por meio de duas medidas; o ganho constante (Km) e a constante de tempo do conjunto (tal m).

Tenho muita documentação de PID e autotuning. Ja cheguei a testar alguns e aparentemente funcionaram, não cheguei ir tão a fundo. Precisa ser logica fuzzy?

Bom. Até onde eu sei, uma comparação entre a lógica Fuzzy e o sistema tradicional é que a teoria da primeira é mais simples que a da segunda. Outro detalhe também é que, como o próprio nome diz, na lógica Fuzzy (difusa) você não precisa conhecer os limites das faixas de atuação. Você chuta os limites com um pouco de bom senso e usa as leis da lógica Fuzzy para determinas o grau de atuação (sua entrada), na variável que você quer controlar (sua saída).

Controlar uma resistência para um forno de tamanho fixo por exemplo é facil. Dificil é esse autotuning. Ou seja colocar o controlador pra funcionar em qualquer forno.

Concordo. Apesar da maioria dos fornos possuírem expressões de comportamento semelhantes. Só mudam os coeficientes da função.