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

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

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

Mensagempor MOR_AL » 11 Jan 2008 14:59

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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor proex » 11 Jan 2008 15:50

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?
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor MOR_AL » 11 Jan 2008 15:56

É Proex ... Tá certo!

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

MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Sergio38br » 12 Jan 2008 20:42

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
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor MOR_AL » 12 Jan 2008 23:09

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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Peters » 13 Jan 2008 10:13

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
Avatar do usuário
Peters
Byte
 
Mensagens: 123
Registrado em: 12 Out 2006 11:42
Localização: Canoinhas, SC

Mensagempor MOR_AL » 13 Jan 2008 14:37

Olá Peters.

Baixei o documento.

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

Grato.

MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor fabim » 13 Jan 2008 14:57

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
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor tcpipchip » 13 Jan 2008 21:02

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+
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor MOR_AL » 13 Jan 2008 21:58

Olá tcpipchip.

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

Grato.

MOR_AL
Editado pela última vez por MOR_AL em 14 Jan 2008 15:51, em um total de 1 vez.
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor fabim » 14 Jan 2008 07:16

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
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor MOR_AL » 14 Jan 2008 09:50

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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor veioloko » 14 Jan 2008 15:30

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.
veioloko
Byte
 
Mensagens: 348
Registrado em: 10 Nov 2006 06:01
Localização: São Bernardo do Campo

Mensagempor MOR_AL » 14 Jan 2008 16:20

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.

"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x