ULISSES FRAZÃO DE OLIVEIRA TIBURCIO · Figura 20. Erro em função do número de épocas:...
Transcript of ULISSES FRAZÃO DE OLIVEIRA TIBURCIO · Figura 20. Erro em função do número de épocas:...
CARLOS DE OLIVEIRA AFFONSO
REDES NEURAIS APLICADAS EM PROCESSOS DE USINAGEM DA MADEIRA
Tese apresentada à Faculdade de Engenharia do Campus de Guaratinguetá, Universidade Estadual Paulista, para a obtenção do título de Doutor em Engenharia Mecânica na área de Materiais.
Orientador: Prof. Dr. Marcos Tadeu Tibúrcio Gonçalves
Guaratinguetá 2013
A257r
Affonso, Carlos de Oliveira. Redes neurais aplicadas em processos de usinagem da madeira / Carlos de Oliveira Affonso - Guaratinguetá : [s.n.], 2013. 102 f. : il. Bibliografia: f. 76-81 Tese (doutorado) – Universidade Estadual Paulista, Faculdade de Engenharia de Guaratinguetá, 2013. Orientador: Prof. Dr. Marcos Tadeu Tibúrcio Gonçalves
1.Inteligência artificial 2. Redes neurais (Computação) I. Título
CDU 007.52(043)
DADOS CURRICULARES
CARLOS DE OLIVEIRA AFFONSO
NASCIMENTO 05.03.1971 – Itapeva / SP FILIAÇÃO Célio de Oliveira Affonso Neusa de Oliveira Affonso 1991/1995 Curso de Graduação Bacharel em Engenharia Mecânica USP – Universidade de São Paulo
EESC – Escola de Engenharia de São Carlos 1997/2010 Volkswagen do Brasil
Engenheiro de Produto 2011/2012 Professor Substituto Engenharia Industrial Madeireira
Cálculo Diferencial e Integral e Instalações Elétricas 2011/2013 Doutorado
UNESP – Área de concentração: Materiais
AGRADECIMENTOS
Aos meus pais Célio e Neusa que sempre me deram apoio em todas as fases de
minha vida. Ao Prof. Dr. Marcos Tadeu Tibúrcio Gonçalves, pelo seu exemplo de incansável
incentivo, de sugestões e orientações para realização deste trabalho. Aos membros da banca, Prof. Dr. Manoel Cléber de Sampaio Alves, Profa. Dra.
Maria Angélica Martins Costa, Prof. Dr. Gustavo Ventorim, Profa. Dra. Raquel Gonçalves, Prof. Dr. Ivaldo De Domenico Valarelli, Prof. Dr. Marcos Valério Ribeiro, Prof. Dr. Eduardo Carlos Bianchi, Prof. Dr. Francisco Antônio Rocco Lahr, pelo pronto atendimento ao convite.
Ao Prof. Dr. Renato José Sassi pela colaboração e amizade.
Aos docentes e funcionários da Universidade Estadual Paulista campus de
Itapeva, em especial aos Profs. Drs. Elen Aparecida Martins Morales e Antônio Francisco Savi, pelo aconselhamento.
A todos os alunos do programa de mestrado e funcionários do campus de
Itapeva, pelo apoio no desenvolvimento da pesquisa. Aos funcionários da Faculdade de Engenharia de Guaratinguetá, pela
colaboração. Aos meus irmãos Cesar e Célio Affonso e a família de José Maria da Veiga e
Vice, pelo apoio. Aos amigos Fábio Antunes, Ricardo Ferreira, Rubens Ando, Ricardo Kinap,
Maricy e Eduardo Busato, pela amizade. Aos colegas da segunda vara do Fórum de Itapeva, pelas sugestões e
aconselhamento. Aos alunos da FAIT, pela inspiração.
“14Se a construção resistir, o construtor receberá a recompensa.15 Se pegar fogo arcará com os danos. Ele será salvo, porém passando de alguma maneira através do fogo.”
I Epístola de São Paulo aos Coríntios 3,14-15.
AFFONSO, O. C. Redes Neurais Aplicadas em Processos de Usinagem da
Madeira. 2013. 102f. Tese (Doutorado em Engenharia Mecânica) – Faculdade de
Engenharia do Campus de Guaratinguetá, Universidade Estadual Paulista,
Guaratinguetá, 2013.
RESUMO
Para se obter produtos e serviços que atendam ao nível de produtividade exigida pelo
mercado, deve-se otimizar vários fatores determinantes na usinagem da madeira. O
atual objetivo da pesquisa em Inteligência Artificial dedica-se ao desenvolvimento de
sistemas inteligentes flexíveis e auto ajustáveis, com vistas à diminuição da presença
de operadores humanos, de forma que o controle destes processos seja realizado
através de sistemas computacionais. A usinagem da madeira se caracteriza pela ação
de vários agentes, que de forma geral, são muito complexos para serem representados
de forma analítica, adicionalmente as respostas destes sistemas são não-lineares.
Portanto, estas dificuldades na modelagem do processamento da madeira justificam a
utilização de redes neurais como ferramenta para melhoria de processo, e consequente
agregação de valor ao produto final. O objetivo deste trabalho foi utilizar a capacidade
de aprendizagem e a generalização das redes neurais e outras técnicas de inteligência
computacional no processamento de madeira. A metodologia utilizada consistiu em
utilizar redes neurais do tipo Multilayer Perceptrons (MLP) associadas à Lógica Fuzzy
para construção de controlador do processo de usinagem da madeira. Adicionalmente
as redes neurais realizaram uma classificação de imagens com relação aos defeitos
superficiais da madeira. Foi utilizadas bases de dados obtidas através dos processos
reais de usinagem da madeira. Os resultados obtidos foram satisfatórios, o que
confirma que as redes neurais foram uma boa opção para modelagem do
processamento da madeira.
PALAVRAS-CHAVE: Inteligência artificial. Controle.
AFFONSO, O. C. Artificial neural network applied to wood machining process.
2013. 102f. Thesis (Doctorate in Mechanical Engineering) - Faculdade de Engenharia
do Campus de Guaratinguetá, Universidade Estadual Paulista, Guaratinguetá, 2012.
ABSTRACT
In order to obtain products and services to exceed the level of productivity required by
the market, many machining wood factors should be optimized. The current goal of
research in Artificial Intelligence is dedicated to develop intelligent flexible systems,
self-adjusting, to decrease the presence of human operators. The control of these
processes is done through the help of computer systems composed from software and
hardware. The modern industrial processes are characterized by the action of various
agents that are generally too complex to be represented analytically, additionally
answers these systems are non-linear. Therefore, these difficulties in modeling wood
machining process justify the use of Neural Network as a tool for process
improvement and to add value to the final product. Computational Intelligence
techniques such as Neuro-Fuzzy Networks have been proved applicable to this
problem, since they combine the ability to learn from examples and to generalize the
information learned from the neural network with the ability of Fuzzy Logic to turn
variables into linguistic rules. The objective of this work is to use the learning ability
and generalization of neural networks and other techniques of Artificial Intelligence in
machining materials, which have solid non-linear character. The results were
satisfactory, thus confirming the neural networks as an option to be applied to such
problems.
KEYWORDS: Artificial Intelligence. Control.
SUMÁRIO
1. INTRODUÇÃO............................................................................................. 10
2. REVISÃO BIBIOGRÁFICA ....................................................................... 13
2.1 Inteligência artificial ..................................................................................... 13
2.1.1 Redes neurais artificiais ............................................................................... 14
2.1.2 Redes hibridas ............................................................................................... 20
2.1.3 Lógica Fuzzy .................................................................................................. 22
2.1.4 Redes neurais aplicadas ao processo de usinagem .................................... 30
2.1.5 Identificação de defeito na madeira ............................................................ 34
2.2 Usinagem da madeira ................................................................................... 35
3. MATERIAIS E MÉTODOS ........................................................................ 43
3.1 Experimentos realizados .............................................................................. 45
3.2 Usinagem dos metais .................................................................................... 47
3.2.1 Base de dados ................................................................................................ 47
3.2.2 Definição da arquitetura da rede neural .................................................... 50
3.3 Usinagem da madeira ................................................................................... 52
3.3.1 Base de dados ................................................................................................ 53
3.3.2 Definição da arquitetura da rede neural .................................................... 54
3.4 Identificação de defeitos na madeira .......................................................... 57
3.4.1 Base de dados ................................................................................................ 59
3.4.2 Definição da arquitetura da rede neural .................................................... 62
4. RESULTADOS E DISCUSSÃO.................................................................. 63
4.1 Usinagem dos metais .................................................................................... 64
4.1.1 Aprendizado da rede .................................................................................... 64
4.2 Usinagem da madeira ................................................................................... 66
4.2.1 Aprendizado da rede .................................................................................... 66
4.3 Tratamento de imagem ................................................................................ 71
4.3.1 Aprendizado da rede .................................................................................... 73
5. CONCLUSÕES ............................................................................................. 75
REFERÊNCIAS BIBLIOGRÁFICAS ...................................................................... 76
ANEXO A ..................................................................................................................... 81
LISTA DE TABELAS
Tabela 1: Redes neurais aplicadas à usinagem da madeira ...................................................... 45
Tabela 2: Nivel de vibração (aceleração) em função da velocidade de corte vc e velocidade de
avanço vf, (Adaptado de Kazem e Zangala: 2007) ................................................................... 49
Tabela 3: Erros quadráticos médios em função da topologia sugerida .................................... 51
Tabela 4: Valores de Ks1 e 1-Z, obtidos em função do ângulo de saída para as 10 espécies,
(Fonte: Tiburcio e Gonçalves, 2000) ........................................................................................ 53
Tabela 5: Erros quadráticos médios em função da topologia sugerida para Ks1 ...................... 56
Tabela 6: Erros quadráticos médios em função da topologia sugerida para 1-Z ..................... 56
Tabela 7: Base de dados: vetores característico ....................................................................... 61
Tabela 8: Matriz de pesos sinápticos – processo de unsinagem dos metais ............................. 65
Tabela 9: Matriz de pesos sinápticos – saída Ks1 ..................................................................... 67
Tabela 10: Matriz de pesos sinápticos – saída 1-Z ................................................................... 67
Tabela 11: Pressão especifica de corte (Ks1) e coeficiente adimencional (1-Z) para diferentes
espécies ..................................................................................................................................... 68
Tabela 12: Pressão especifica de corte (Ks1) e coeficiente adimencional (1-Z) para diferentes
espécies ..................................................................................................................................... 68
LISTA DE ILUSTRAÇÕES
Figura 1. Representação do neurônio artificial. ........................................................................ 15
Figura 2. Arquitetura básica da MLP ....................................................................................... 18
Figura 3. Superfície de resposta mapeada pela RNF no espaço 3D. ........................................ 21
Figura 4. Rede Neuro Fuzzy (RNF) .......................................................................................... 21
Figura 5. Função de pertinência para a variável linguistica idade............................................ 24
Figura 6. Tipos de Funções de pertinência, (Adaptado de Passino e Yurkovich, 1998) .......... 24
Figura 7. Fatores envolvidos no processo de usinagem, (Tibúrcio, 2009) ............................... 36
Figura 8. Principais ângulos de usinagem (Gonçalves, 2000) .................................................. 37
Figura 9. Forças atuantes no corte: (a) esforços na ferramenta e (b) decomposição da
resultante dos esforços, (Gonçalves, 2000) .............................................................................. 38
Figura 10. Sistemas de corte,(Koch, 1964, apud Gonçalves, 2000) ......................................... 39
Figura 11. Deflexão elástica da serra de fitas em relação ao plano de corte. ........................... 41
Figura 12. Controlador Neuro-Fuzzy para a usinagem da madeira. ......................................... 44
Figura 13. Rede neural atuando no controle do processo de usinagem de metais .................. 47
Figura 14. Processo de usinagem de metais, ( Kazem e Zangala, 2007).................................. 48
Figura 15. Arquitetura da RN para processo de usinagem saída aceleração ............................ 50
Figura 16. Erro em função do número de épocas: processo de usinagem saída aceleração ..... 51
Figura 17. Rede neural atuando no controle do processo de usinagem de madeira ................. 52
Figura 18. Arquitetura da RN para processo de usinagem saída Ks1 ....................................... 54
Figura 19. Arquitetura da RN para processo de usinagem saída 1-Z ....................................... 54
Figura 20. Erro em função do número de épocas: processo de usinagem saída Ks1 ............... 55
Figura 21. Erro em função do número de épocas: processo de usinagem saída 1- Z .............. 55
Figura 22. Diagrama de blocos para reconhecimento de imagem ............................................ 57
Figura 23. Rede neural atuando na classificação visual de defeitos da madeira ...................... 58
Figura 24. Base de dados: padrão de imagem .......................................................................... 59
Figura 25. Informação topográfica da imagem ........................................................................ 60
Figura 26. Vetores caracteristicos das imagens ........................................................................ 60
Figura 27. Arquitetura da rede - processamento de imagem .................................................... 62
Figura 28. Erro da rede em função das épocas - tratamento de imagem .................................. 62
Figura 29. Saída Aceleração: processo de usinagem da metais ............................................... 64
Figura 30. Saída Ks1: processo de usinagem da madeira ......................................................... 66
Figura 31. Saida 1-Z: processo de usinagem da madeira ......................................................... 66
Figura 32. Ks1 em função de �: várias espécies ........................................................................ 69
Figura 33. 1-Z em função de �: várias espécies ........................................................................ 69
Figura 34. 1-Z em função de �: várias espécies ........................................................................ 70
Figura 35. Exemplos de padrão de imagem ............................................................................. 71
Figura 36. Topografia da imagem capturada ............................................................................ 71
Figura 37. Coordenadas do vetor característico ....................................................................... 72
Figura 38. Saida da rede - tratamento de imagem .................................................................... 73
Figura 39. Clusterização do vetor característico ...................................................................... 74
LISTA DE ABREVIATURAS E SIGLAS
ANN - Artificial Neural Network
CA - Controle Adaptativo
CAO - Controle Adaptativo Otimizado
C1... C3 - Camadas de neurônios da rede neural artificial
e - Espessura do corte
Fc - Força principal de corte
Fp - Força de corte paralela
IA - Inteligência Artificial
M - Matriz de pesos sinápticos da camada de saída
MLP - Multilayer Perceptron
MPa - Mega Pascal ( unidade de pressão )
RBF - Radial Basis Function
RNAs - Redes Neurais Artificiais
RS - Rough Sets
vc - Velocidade de corte
vf - Velocidade de avanço
W - Matriz de pesos sinápticos das camadas ocultas
LETRAS GREGAS
� - Rótulo linguístico / ângulo de ataque da ferramenta
� - Ângulo de cunha da ferramenta da ferramenta
� - Ângulo de saída da ferramenta
� - Erro médio absoluto
� - Tensão de ruptura (MPa)
� - Densidade de probabilidade
� - Taxa de aprendizagem
- Tensão de cisalhamento
� - Taxa de cisalhamento
- Volume específico
�A(x) - Função de pertinência do rótulo linguístico A
� - Regra de Inferência
OPERADORES ALGÉBRICOS E VARIÁVEIS
- Determinado elemento pertence a certo conjunto
� - Mínimo ou operador “e”.
� - Máximo ou operador “ou”
�x - Existe um elemento x
� - Implicação lógica
� - Somatório
� - Gradiente
�x - Qualquer elemento x
� - Conjunto vazio
A,B - Conjuntos Fuzzy
A,B - Conjuntos ordinários
c� - Centro da função de pertinência
A � B - O conjunto A contém o conjunto B
A � B - O conjunto A esta contido no conjunto B
A � B - União dos conjuntos A e B
A - Conjunto complementar a A.
S - Norma de Implicação Fuzzy S
�� - Norma de Implicação Fuzzy T
R - Relação Fuzzy
10
1. INTRODUÇÃO
Para se obter produtos a base de madeira que atendam ao nível de produtividade
exigido pelo mercado, deve-se, ainda na fase de planejamento de usinagem, otimizar
vários fatores determinantes na produtividade, como ferramental, material, parâmetros
de usinagem, entre outros.
Estes fatores mostram-se relevantes, uma vez que, além do enfoque econômico
envolvido na busca por materiais que possuam melhor relação de custo-benefício,
existe a preocupação ambiental, com interesse no desenvolvimento de processos que
minimizem o consumo de energia.
Desta forma, para que os critérios de custo e de qualidade sejam atendidos o
especialista humano deve intervir, ajustando os parâmetros envolvidos. Usualmente tal
avaliação é feita através de técnicas tradicionais. Entretanto, surgem problemas
envolvidos quanto avaliação por parte do especialista. Além disso, este processo
consome tempo elevado e está sujeito a erros quanto à repetibilidade e precisão. Pois,
apesar de toda a tecnologia envolvida, seus parâmetros estão mergulhados em
incertezas que dificultam e muitas vezes impedem uma modelagem analítica.
Adicionalmente, a literatura tem apontado como ponto crítico para a perda de
produtividade no processo de usinagem da madeira a necessidade de um controle
visual realizado por operadores humanos.
Desta forma, a pesquisa em manufatura esta direcionada ao desenvolvimento de
sistemas inteligentes flexíveis e auto-ajustáveis, com vistas à diminuição da presença
de operadores humanos, de forma que o controle destes processos seja realizado
através de sistemas computacionais autônomos.
A motivação deste trabalho surgiu do fato de existir vasta literatura sobre
aplicação de redes neurais artificiais, em diversos processos industriais. No entanto,
verificou-se lacuna quanto aplicação de técnicas de IA (Inteligência Artificial), e em
particular RNA’s (Redes Neurais Artificiais), em processos de usinagem da madeira.
Considerando-se as dificuldades apontadas, a aplicação da Lógica Fuzzy
associada às redes neurais é recomendada para aumento do rendimento do processo de
usinagem da madeira, pois por um lado fornece o ferramental matemático necessário
para tratar as incertezas relacionadas ao processo de aquisição de conhecimento junto
11
aos especialistas, ao mesmo tempo em que pode ser implementada sem fazer uso dos
pacotes computacionais comerciais.
Desta forma buscou-se utilizar a capacidade de aprendizagem e generalização das
redes neurais e outras técnicas de Inteligência Artificial para auxiliar no
processamento de usinagem da madeira.
Logo, tomando-se o exemplo das aplicações em outros produtos, buscou-se
responder à questão fundamental: “É possível construir controlador utilizando redes
neurais artificiais para otimização do processo de usinagem da madeira?”. Tal
questionamento é especialmente significativo considerando-se as características
particulares da madeira, como: anisotropia, heterogeneidade e higroscopia.
Portanto, este trabalho desenvolveu um sistema de controle de baixo custo, tanto
do ponto de vista dos equipamentos eletrônicos para coleta de dados, quanto dos
programas computacionais necessários. Assim, objetivo deste trabalho foi a construção
de software para sistemas de controle que utilizam redes neurais como ferramenta para
a otimização de processos de usinagem da madeira.
A metodologia utilizada consistiu em dois níveis:
Inicialmente foi considerado um protótipo em escala laboratorial, onde é
validado o modelo computacional e o sistema de aquisição de dados.
Num segundo estágio este mecanismo de controle deverá ser expandido para um
ambiente industrial madeireiro onde é utilizado como apoio para a avalição do
processo de corte.
Em ambos os caso o enfoque é dado na construção de um sistema de controle de
implementação viável, tanto técnica, quanto financeiramente, para ser aplicado em
plantas industriais madeireiras de médio e pequeno porte.
A estrutura hierárquica de controle é composta por dois níveis:
No primeiro nível o sistema é construido como um sistema em malha aberta.
Constituindo desta forma a base de dados de treinamento da RNA (Rede Neural
Artificial).
Num segundo nível, utilizando-se os pesos sinápticos obtidos pela rede foi
constituído um controlador em malha fechada.
12
O trabalho foi constituído pelas seguintes fases intermediárias:
Primeiramente utilizou o tratamento de imagem realizado por redes neurais
híbridas para classificação de defeitos em madeira.
O segundo enfoque foi criar um mecanismo de inferência para melhoria do
rendimento do processo de usinagem a partir de seus principais parâmetros.
Este trabalho está estruturado em cinco capítulos. Além da introdução, o trabalho
compõe-se das seguintes partes:
Capítulo 2 - É apresentado o estado da arte sobre IA (Inteligência
Artificial), dando-se enfoque as redes neurais artificiais e a Lógica Fuzzy, e finaliza-se
mostrando a aplicação destas técnicas para a usinagem da madeira.
Capítulo 3 - São descritos os materiais e métodos utilizados nos
experimentos computacionais.
Capítulo 4 - São discutidos os resultados encontrados.
Capítulo 5 - Neste capítulo conclui-se o trabalho, sumarizam-se as
contribuições, e apresentam-se as perspectivas para trabalho futuros.
13
2. REVISÃO BIBIOGRÁFICA
Neste capítulo serão revisados os estados da arte referentes aos temas
Inteligência Artificial e usinagem da madeira.
2.1 Inteligência Artificial
Neste capítulo é apresentada a motivação e os princípios que deram origem a IA
(Inteligência Artificial), analisando seus ramos conexionistas e simbólicos.
O objetivo da IA foi inicialmente definido na Conferência de Dartmouth em
1955 por John McCarthy como: “construir máquinas que se comportam como
se possuíssem inteligência”. Portanto a definição de IA enfatiza a capacidade de
aprender para lidar com novas situações.
Uma das questões principais que o estudo da IA se depara é: ”Como funciona o
cérebro humano?”. O presente trabalho não teve como objetivo responder á esta
pergunta, se guer o estado da arte atual é capaz de responder plenamente a este
questionamento.
A fim de definir o termo “agir racionalmente”, em 1950 Allan Turing, criou seu
famoso teste, cujo objetivo foi verificar se é possível criar um algoritmo cujo
comportamento quanto a questões aleatórias seja totalmente compatível com as
respostas dados por um indivíduo humano.
Pode-se verificar que sobre o campo da IA aglutinam-se várias técnicas:
As marcadamente simbólicas como: Lógica Fuzzy, Lógica Predicativa, Busca
Heurística; e as de caráter numérico (ou associativo) como Redes Neurais, Algoritmos
Genéticos, Colônias de Formigas e os Sistemas Híbridos.
Todas estas técnicas possuem em comum a utilização de algoritmos
computacionais, que de alguma forma procuram imitar as capacidades cognitivas
humanas, ou de outros agentes biológicos.
Através do desenvolvimento destas técnicas é possível aproveitar a capacidade
dos computadores modernos para a realização destas tarefas de simulação, uma vez
que, devido a sua alta velocidade de processamento, é possível realizar experimentos
computacionais num tempo viável e a custos acessíveis.
14
Particularmente em relação à matemática aplicada a Ciência dos materiais,
observa-se que os avanços da tecnologia são muitas vezes acompanhados pelo
desenvolvimento de novos materiais. Consequentemente uma tarefa para o futuro
é construir uma ciência dos materiais baseada em algoritmos do ramo da IA.
As disciplinas que fazem parte do campo da IA têm como característica
unificadora o mimetismo biológico, ou seja, a observação da forma como os sistemas
biológicos se comportam e a tentativa de imitar este comportamento na construção de
algoritmos computacionais que possam ser aplicados na resolução de problemas do
cotidiano humano (RUSSELL e NORVIG, 1995).
2.1.1 Redes Neurais Artificiais
Neste item é feita uma revisão aos princípios matemáticos que dão suporte às
Redes Neurais Artificiais, com especial atenção ao processo de aprendizagem. Em
seguida será discutida a Rede Neuro Fuzzy, formada pela associação das Redes
Neurais Artificiais com Lógica Fuzzy.
Além disso, é discutida a forma com que a rede realiza a generalização a partir
dos pesos sinápticos (no caso de redes do tipo Multlayer Perceptron - MLP) ou dos
parâmetros das funções de base radial (no caso das redes Radial Basis Function -
RBF).
As RNAs são modelos inspirados na estrutura do cérebro humano, tendo como
objetivo simular o comportamento humano em processos como: aprendizagem,
associação, generalização e abstração.
Nestas redes, a aprendizagem computacional se dá através de um conjunto de
unidades simples de processamento chamados de neurônios artificiais ou nós.
Importante contribuição das RNAs é sua capacidade de aprender a partir de
dados incompletos e sujeitos a ruídos.
15
Em geral se aceita como o início do estudo sobre RNAs o artigo de Mcculoch e
Pitts (1943), na qual é proposto que com um número suficiente de neurônios artificiais,
é possível representar qualquer expressão matemática.
Na Figura 1 é mostrada uma representação do neurônio artificial.
Figura 1. Representação do neurônio artificial.
Tanto as RNAs quanto a Lógica Fuzzy têm sido intensamente aplicadas em
problemas em diversas áreas, contudo, ambas as técnicas possuem limitações, as quais
podem ser superadas através da utilização de Arquiteturas Híbridas.
As RNFs (Redes Neuro Fuzzy) combinam alguns atributos positivos das RNAs e
da Lógica Fuzzy, possuindo a capacidade de aprender e de se adaptar às necessidades
para a resolução de problemas do mundo real (HALGAMUDE e GLESNER, 1994;
GOMIDE et al., 1998; RESENDE, 2005; RUTKOWSKI, 2008), mostrando-se ideais
para aplicações como identificação, predição, classificação e controle.
Os principais modelos de inferência encontrados na literatura, aplicados as
RNFs são os do tipo Mamdani (MAMDANI e ASSILIAN, 1975), e os do tipo Takagi-
Sugeno (RUTKOWSKI, 2008).
A inferência do tipo Mamdani consiste em conectar os antecedentes e o
consequente das regras usando normas-� (geralmente do tipo mínimo ou produto).
Para o presente estudo foi utilizado o sistema do tipo Mamdani, uma vez que com este
modelo não há necessidade de realizar a defuzzyficação da saída.
yRNA
yReal
16
Uma das primeiras RNAs, cuja arquitetura foi baseada no neurônio biológico,
proposta por Rosemblatt (1958), é o Perceptron. O objetivo desta rede é classificar as
entradas xi (ou estímulos) em duas classes através de um hiperplano.
Para o caso simples de um espaço em duas dimensões, o hiperplano fica reduzido
a uma reta, cuja equação é representada na Equação (1).
�xiwi + w0 = 0 (1)
A ativação do neurônio artificial é realizada através da função de ativação �, que
ativa ou não a saída dependendo da soma ponderada de suas entradas.
De uma forma geral, a aprendizagem das redes Perceptron se dá através dos
ajustes dos pesos sinápticos.
O valor do peso sináptico W(t+1) no instante t+1 será determinado em função do
seu valor na iteração anterior wt, conforme na Equação 2. t
i
t
i
t
i www ����1 (2)
A atualização dos pesos depende do algoritmo, mas geralmente baseia-se na
minimização do erro �i, entre os valores previstos pela rede e as saídas yi desejadas,
conforme Equação (3).
�i = ��(wix)i- yi (3)
Desta forma, o aprendizado (ou generalização) em uma RNA é definido, segundo
Haykin (2001), como o ajuste iterativo dos pesos sinápticos, de forma a minimizar os
erros.
Existem duas formas básicas de aprendizado nas RNAs: aprendizado
supervisionado e aprendizado não-supervisionado.
De acordo com Braga et al. (2000) as RNA’s se caracterizam por aprender
através de exemplos e fazer interpolações.
Desta forma, no aprendizado conexionista não se procura obter regras da forma
simbólica, como ocorre, por exemplo, na Lógica Fuzzy, mas sim se determinar a
intensidade das conexões entre os neurônios.
A um conjunto de algoritmos, que permite um ajuste de seus pesos de modo que
a rede possa aprender através dos exemplos, dá-se o nome de método de aprendizado
(BRAGA et al., 2000).
17
No aprendizado supervisionado, existe conhecimento prévio sobre os valores das
entradas xi e das respectivas saídas yi. A este conjunto de pares ordenados (xi,yi) que se
conhece a priori dá-se o nome de base de dados de aprendizado.
Na aprendizagem não supervisionada (ou auto-supervisionado), não se conhece
os valores das saídas desejadas yi , e a aprendizagem ocorre através da identificação de
padrões nas entradas.
A arquitetura de uma RNA depende do tipo de problema no qual a rede deve ser
utilizada, e é definida, entre outros fatores, pelo número de camadas, número de nós
em cada camada, pelo tipo de conexão entre os nós (feedforward ou feedback) e por
sua topologia (KOVÁCS, 1996).
Minsky e Papert (1969) demonstraram que para alguns problemas (como por
exemplo, o OU-exclusivo) o Perceptron não é capaz de realizar o aprendizado. Em
resposta a este dilema sugiram outros tipos de RNAs mais poderosas do ponto de vista
computacional, que sobrepuseram as limitações do neurônio de Rosemblatt,
destacando-se a Multilayer Perceptron (MLP) e a Radial Basis Function (RBF).
Uma MLP consiste de um conjunto de unidades (nós ou neurônios) que
constituem a camada de entrada, uma ou mais camadas ocultas e uma camada de saída,
onde o sinal de entrada se propaga pela RNA camada por camada.
De acordo com Haykin (2001), um dos algoritmos de treinamento mais usados
nas MLP é o de retro-propragação do erro (error backpropagation) que funciona da
seguinte forma: apresenta-se um padrão à camada de entrada da rede, esse padrão é
processado camada por camada até que a camada de saída forneça a resposta
processada, fMLP, conforme a Equação (4):
��
!""#
$��
!"#
$�%� � �
n m
llljlMLP bbxwxf1
01
0)( �&� (4)
onde vl e wlj são pesos sinápticos; bl0 e b0 são os termos independentes ou biases; e φ a
função de ativação, comumente especificada como sendo uma função sigmoide.
O princípio deste algoritmo para cálculo dos erros nas camadas intermediárias é
o seu cálculo por retroalimentação, possibilitando desta forma o ajuste dos pesos
proporcionalmente aos valores das conexões entre camadas.
18
De acordo com Haykin (2001) a MLP possui as seguintes características:
função de ativação não-linear (sigmoidal), uma ou mais camadas de neurônios ocultos
e um alto grau de conectividade. Na Figura 2 é apresentada a estrutura básica de uma
rede do tipo MLP.
Figura 2. Arquitetura básica da MLP
Uma RNA do tipo MLP treinada com o algoritmo de retro-propagação realiza
mapeamento não-linear de entrada-saída.
De acordo com Haykin (2001) matematicamente uma RNA é um método para
determinar um função f: A→B onde A é um conjunto de dados, sendo que alguns
elementos de B são conhecidos a priori.
A determinação da função f é possível graças ao Teorema de Andrei
Kolmogorov sobre representação e aproximação de funções contínuas.
Qualquer função contínua f(xi)i=1,m , com imagem In = [0;1]m pode ser
representada na forma da Equação (5):
' (mpmi
m
qpppi xhgxf
,1/,1
12
1)()(
��
�
�� �� � (5)
O Teorema de Kolmogorov estabelece exata representação para uma função
contínua, mas não indica como obter estas funções, e segundo Mitchell (1997) esta
abordagem assemelha-se com o estudo de inferência estatístico não-paramétrico.
19
Em uma RNA (Rede Neural Artificial) do tipo RBF (Radial Base Function) o
processo de aprendizagem é visto como o ajuste de uma curva de alta
dimensionalidade.
Assim, aprender corresponde a encontrar uma superfície, em um espaço
multidimensional, que forneça o melhor ajuste para os dados de aprendizagem.
Na RNA do tipo RBF as unidades ocultas fornecem um conjunto de funções que
constituem base arbitrária para os padrões de entrada, essas funções são chamadas de
funções de base radial.
A RNA do tipo RBF, em sua forma mais básica, envolve três camadas com
papéis totalmente diferentes:
- A camada de entrada, também conhecida como camada sensorial, conecta a
rede ao seu ambiente.
- A camada interna aplica uma transformada não-linear no espaço de entrada,
para um espaço de mais alta dimensionalidade.
- A camada de saída é linear, fornecendo a resposta da rede ao padrão de ativação
aplicada à camada de entrada.
Para a utilização de uma rede RBF é necessária especial atenção quanto ao
número de elementos da base de dados de treinamento.
Quando ocorre correto dimensionamento, diz-se que o problema está “bem
formulado”.
Conforme Haykin (2001) para que isto ocorra é necessário que três condições
sejam atendidas: existência, unicidade e continuidade.
Portanto, o conjunto das possíveis respostas da rede deve ser contínuo
(existência), dado uma entrada a saída deve ser única (unicidade) e finalmente, deve
possuir um erro convergente (continuidade).
20
Na RNA do tipo RBF é utilizada para aproximação das respostas uma
combinação de funções de base radial, para este caso em particular são utilizadas as
funções de Green, as conforme Equações (6) e (7).
��
�m
iii cxGwxF
1),()( (6)
' (
eicx
icxG �2
)())
�) (7)
O algoritmo de aprendizado escolhido para esta aplicação foi o K-médias, de
forma que os pesos sinápticos w, e os centros das funções de base c são recalculados, a
partir dos parâmetros de aprendizagem �1 e �2, de forma minimizar o erro �*�conforme
as Equações (8) e (9).
� )��� )()()()1( 1 ijij cxGnnwnw �� (8)
)()()1( 2 ijkk cxncnc )��� � (9)
2.1.2 Rede Hibrida
Na RNF proposta para este trabalho os parâmetros do processo de usinagem
foram fuzzyficados através de funções de pertinência, conforme será detalhado no
capítulo de metodologia experimental.
Através do mecanismo de inferência estabelecido para o processo de usinagem
da madeira foram determinados os valores das regras de inferência �j que servirão de
entrada para a RNF. As RNFs têm como característica aproximar uma função n-
dimensional que é parcialmente definida pela base de dados de aprendizado.
Através das regras de inferência obtidas a partir da base de dados de
aprendizagem foi construida uma superfície de resposta, a partir da qual se faz
inferências sobre os valores da saída do sistema yi, para valores que não fazem parte da
base de dados de aprendizado, através do critério da distância euclidiana mínima.
21
Na Figura 3 é mostrada uma projeção no espaço em três dimensões 3D da
superfície de resposta mapeada pela RNF.
Figura 3. Superfície de resposta mapeada pela RNF no espaço 3D. Conforme Figura 4, a camada C1 representa os valores crisp de entradas da
rede, e a saída desta camada corresponde aos valores das funções de pertinência.
Na camada C2 a rede é treinada a partir de um conjunto de regras de inferência.
Conforme Resende (2005), os pesos sinápticos da rede (ou os parâmetros das funções
de base) são determinados de forma a se atingir os valores de target y, os quais são os
próprios valores dos parâmetros do processo de usinagem obtidos experimentalmente.
A camada C3 apresenta os valores de saída do sistema, correspondendo aos
valores previstos pela RNF para a superfície de resposta.
Figura 4. Rede Neuro Fuzzy (RNF)
22
Nesta seção os conceitos básicos sobre RNAs foram revisitados focando as
redes do tipo MLP e RBF, e finalmente a RNF.
Na próxima seção serão apresentados os aspectos principais sobre a Lógica
Fuzzy.
2.1.3 Lógica Fuzzy
Segundo Haykin (2007) um sistema de IA possui três componentes
fundamentais: representação, raciocínio e aprendizagem.
A parte da IA que atua principalmente na representação é chamada IA
Simbólica, e corresponde às estruturas de linguagem utilizadas para representar o
conhecimento específico para a solução de um problema.
Os símbolos utilizados nesta estrutura de comunicação devem ser simples e
universais, permitindo seu entendimento pelo usuário humano, tornando-se inclusive
adequados para a comunicação homem-máquina.
O termo conhecimento pode ser considerado no estudo da IA como apenas mais
um termo para dados.
Pode-se considerar raciocínio como a habilidade para resolver problemas
(HAYKIN, 2007), e mais especificamente como um problema de busca. Tomaremos
o aprendizado (de máquina) como a capacidade para se adaptar às novas
circunstâncias e para detectar e extrapolar padrões.
Os conceitos da Lógica Fuzzy podem ser utilizados para traduzir em termos
matemáticos a informação imprecisa, expressa por um conjunto de variáveis
linguísticas.
Os conjuntos Fuzzy serão considerados como uma classe de objetos de variáveis
contínuas. Tais conjuntos são caracterizados por funções de pertinência as quais
assinalam para cada elemento um grau de pertinência com domínio no intervalo [0,1],
conforme preconizado por Zadeh (1965).
Os conceitos da Lógica Fuzzy podem ser utilizados para traduzir em termos
matemáticos a informação imprecisa expressa por um conjunto de variáveis
23
linguísticas. Os conjuntos Fuzzy serão considerados como uma classe de objetos de
variáveis contínuas.
Um conjunto Fuzzy A em um universo X é definido através de uma função de
pertinência, conforme mostram as Equações (10) e (11) a seguir:
]1,0[:)( +XxA� (10)
E representado por um conjunto de pares ordenados:
XxxxA A � }/)({� (11)
Onde �A(x) indica quanto x é compatível com o conjunto, quanto mais próximo
da unidade, maior a “afinidade” do elemento ao conjunto. Deve-se considerar que
embora a função de pertinência aparente-se com uma função de probabilidade, existem
diferenças entre elas.
A seguir um exemplo de função de pertinência (WANG et al. 2009): Considere-
se A como ”velho” e B como “jovem”.
Limitando-se o escopo das idades no intervalo 0 a 100. Ambos A e B são
conjuntos Fuzzy que são definidos respectivamente como nas Equações (12) e (13) que
seguem:
(12)
(13)
Deve-se considerar que a escolha da função de pertinência depende do contexto.
Por exemplo, o conceito de temperatura alta, é claramente diferente para a temperatura
de um forno de indução, do que para a temperatura de um corpo humano febril.
Ainda que considerando um mesmo conceito, a escolha depende do contexto em
que o observador esta inserido.
12
5501
))
��
!""#
$� !
"#$ )
�x
�)(xA�0 caso contrário
10050 ,, xse
12
5251
)
��
!""#
$� !
"#$ )
�x
�)(xB�1 caso contrário
10025 ,, xse
24
Por exemplo, na Figura 5 são apresentados os conjuntos Fuzzy para a variável
linguística criança, jovem e adulto, considerando um intervalo [0;40].
Figura 5. Função de pertinência para a variável linguística idade
As funções de pertinência têm formas variadas, dependendo do conceito que se
deseja expressar, e podem ser definidas a partir das necessidades do usuário, mas é
comum utilizar-se funções de pertinência padronizadas, como por exemplo: funções
triangulares, trapezoidal e gaussiana, ou mesmo através de funções analíticas
(RESENDE, 2005).
Na Figura 6 estão ilustrados alguns exemplos de configuração de funções de
pertinência.
Figura 6. Tipos de Funções de pertinência, (Adaptado de Passino e Yurkovich, 1998)
Assim como ocorre com conjuntos ordinários pode-se definir uma série de
operações e propriedades envolvendo conjuntos Fuzzy.
25
Serão apresentadas as mais relevantes para uma abordagem inicial.
Neste trabalho são utilizados os operadores minimum (min ou �) e maximum
(max ou �).
A união, intersecção e complementar podem ser definidas como as Equações 14,
15 e 16.
' ()(),(min)()()( xxxxx BABABA ����� ���- Xx � (14)
' ()(),(max)()()( xxxxx BABABA ����� ���� Xx � (15)
)(1)( xx AA �� )� Xx � (16)
Pode-se também definir a função de pertinência que mede o grau de verdade da
implicação entre x e y, que podem ser definidas opcionalmente das formas
apresentadas na Equação 17.
. /
. /)();(1max)()(1);(min1)(
xxx
xxx
BABA
BABA
������
)�))�
+
+ (17)
Pode-se também definir as relações; conjunto vazio, igualdade entre conjuntos e
pertinência, também para os conjuntos Fuzzy de forma semelhante a que estes
conceitos são aplicados aos conjuntos clássicos, conforme mostrado nas Equações 18,
19 e 20.
��A se somente se 0)( �xA� Xx � (18)
BA � se somente se )()( xx BA �� � Xx � (19)
BA� se somente se )()( xx BA �� , Xx � (20)
26
Operando com os conjuntos Fuzzy é possível demonstrar algumas relações
importantes, semelhantes àquelas presentes na Teoria dos conjuntos ordinários,
conforme apresentado a seguir:
i. Involução: AA �)(
ii. Idempotência: AAA
AAA
���-
iii. Comutatividade ABBA
ABBA
���-�-
iv. Associatividade )()()()(
CBACBA
CBACBA
�����--�--
v. Distributiva )()()()()()(
CABACBA
CABACBA
�-��-�-�-��-
vi. Absorção ABAA
ABAA
�-���-
)()(
vii. Transitiva se BA � e CACB ���
viii. Lei de De Morgan BABA
BABA
-��
��-
)(
)(
Da mesma forma que para a teoria clássica dos conjuntos, a Lógica Fuzzy
também utiliza os conectivos lógicos “e” e “ou”. Para combinar os conectivos “e” e
“ou”, a Lógica Fuzzy faz uso das normas-� e normas-S respectivamente.
27
Em essência a norma-� é uma função de duas variáveis que será utilizada para
operações algébricas necessárias para operacionalização do mecanismo de inferência.
Uma norma-� é definida com uma transformada de [0,1]x[0,1] em [0,1] que satisfaz a
todas as propriedades a seguir:
i. Comutatividade: ]1,0[,),(),( ���� BAABBA ������
ii. Monotonicidade: BBAABABA e '')','(),( �������� 001�0�
iii. Associatividade: ]1,0[,,)),(,()),,(( ������ CBACBACBA ���������
iv. Condições de contorno: ]1,0[,),1( �� AAB ���
Conforme discutido anteriormente o Mecanismo de Inferência é uma questão
central na modelagem do problema. A forma de construí-lo será apresentada a seguir.
O estabelecimento do mecanismo de inferência que simula um sistema envolve
dois estágios, conforme Carvalho (2008):
- As premissas de todas as regras são comparadas com as entradas para
determinar quais regras se aplicam para determinada situação.
- As conclusões são estabelecidas usando as regras que foram determinadas.
As conclusões são caracterizadas com os conjuntos Fuzzy que representam o grau
de certeza que as variáveis de entrada devem ter.
Conforme definido na Teoria dos Conjuntos uma relação é um subconjunto do
produto cartesiano de dois conjuntos. Entretanto, em casos reais é difícil de
determinar se dois elementos estão relacionados.
Por exemplo, é difícil determinar se um número é “muito maior” que outro, uma
vez que é impossível determinar qual o valor mínimo para a diferença destes números
de tal forma que esta relação seja válida.
De acordo com Wang et al. (2009), se os subconjuntos estão fuzzyficados, a
relação entre eles também está.
Para representar o mecanismo de inferência através dos conjuntos Fuzzy, será
utilizado o conceito de relação Fuzzy, sendo que estas generalizam o conceito de
28
relações presente da Teoria Clássica dos Conjuntos, e representam o grau da
associação entre elementos de dois ou mais conjuntos Fuzzy.
Formalmente, dados dois conjuntos Fuzzy X e Y. Um subconjunto do produto
cartesiano R: X x Y→ [0,1], é chamado relação, para (x,y) (X x Y ), R(x,y) [0,1].
Para conjuntos finitos pode-se escrever a relação R de X para Y, x =
{x1,x2,…,xn}, y = {y1,y2,…,ym}, neste caso escrevendo rij=R(xi,yj) i=1,..,n/j=1,…,m.
Uma variável é frequentemente descrita através de palavras em linguagem
natural, ao invés de números.
Desta forma, o conceito variável linguística tem uma função importante na
representação do conhecimento impreciso humano. A composição de múltiplas
variáveis linguísticas pode constituir uma descrição sistemática do conhecimento
humano em determinada área do conhecimento.
Os valores das variáveis linguísticas podem constituir-se de termos primários
como, “temperatura’, “pressão”, e por termos primários modificados por adjetivos
como “alta”, “moderada”, e por conectivos lógicos “não”, “e” , “ou”.
A Lógica Clássica estabelece que toda a proposição possua um valor
determinístico 1 (verdade) ou 0 (falso).
Entretanto se conceitos Fuzzy estão envolvidos na proposição, os valores de
verdade se tornam Fuzzy. Uma proposição com valor verdade no intervalo [0,1] é
chamada proposição Fuzzy. Existem dois tipos de proposição Fuzzy, as proposições
primárias e as compostas.
Uma proposição primária é “x é A”, onde x é uma variável linguística, e A e o
valor linguístico de x. Uma proposição composta é uma composição de proposições
compostas feitas através de conectivos lógicos.
Neste trabalho, será utilizado o operador sugerido por Mamdani e Assilian
(1975) onde o valor verdade de uma composição �*�a qual serão exatamente as regras
do mecanismo de inferência, será calculado conforme apresentado nas Equações (21) e
(22) a seguir:
))(),((),( yxRTyx ijij
���� (21)
)(...)()()( 22
211
1 nn
nxxj xxxxR ��� ��� ���� (22)
29
Uma relação Fuzzy pode ser expressa linguisticamente através de proposições
semelhantes a: “a temperatura é baixa” ou “a temperatura não é baixa”. Onde “baixa”
representa um rótulo linguístico definido por um número Fuzzy no universo do
discurso da variável linguística “temperatura”.
Neste trabalho, utilizou-se como regra de inferência Fuzzy, o modus ponens
generalizado, que é apresentado conforme a proposição mostrada na Equação (23) a
seguir:
Premissa 1: x é A’
Premissa 2: se x é A então y é B
Consequência: y é B’ (23)
Na Lógica Fuzzy, uma regra será disparada se houver um grau de similaridade
diferente de zero entre a premissa 1 e o antecedente da regra; o resultado será um
consequente com grau de similaridade não nulo em relação ao consequente da regra.
Em geral, o conectivo “e” ou equivalentemente o operador mínimo é usado com
variáveis em diferentes universos, enquanto que o conectivo “ou”, (ou máximo)
conecta valores linguísticos de uma mesma variável, os quais estão no mesmo
universo. Assim, as regras Fuzzy podem ser escritas na forma apresentada pela
Equação (24):
se x = A’ e se x = A � y = B (24)
Onde os antecedentes e o consequente são do tipo variável Crisp, A e B são
conjuntos Fuzzy.
Objetos são normalmente descritos através de agrupamentos no mundo real.
O método matemático no qual estes agrupamentos são realizados é chamado de
classificação.
Tomando X = {x1,x2,…,xn}, como um conjunto de objetos a ser classificados, e
os correspondentes índices de xi são xi1,xi2,...,xim. A questão é classificar x com base
nestes índices. Como se sabe este problema é atacado pela estatística descritiva.
30
As relações Fuzzy fornecem uma solução alternativa, como mostrada a seguir.
Deve-se transformar os índices (xi1,xi2,...,xim) e (xj1,xj2,...,xjm) de xi e xj em um número
único dij o qual reflita o grau de similaridade de xi com xj (WANG; RUAN; KERRE,
2009).
Este processo é conhecido como classificação. Existem várias formas de se
realizar a classificação, entre elas a distância euclidiana, conforme mostrado na
Equação (25);
��
))�m
kjkikij xxcd
11
(25) onde c é uma constante apropriadamente escolhida de forma que dij [0;1].
Esta técnica de classificação pode ser utilizada para identificar em qual classe
determinada regra de inferência deve ser classificada. Esta questão será retomada
quando da discussão sobre a construção da RNF.
Neste item foram apresentados os princípios matemáticos envolvidos no
tratamento da Lógica Fuzzy, como: conjuntos Fuzzy, funções de pertinência, relações
Fuzzy, propriedades dos conjuntos Fuzzy, mecanismo de inferência.
No próximo item será discutida a aplicação de redes neurais especificamente no
processo de usinagem da madeira.
2.1.4 Redes neurais aplicadas ao processo de usinagem
Existe vasta literatura com propostas de implementação de controladores para
sistemas de usinagem por CNC (Comando Numérico Computadorizado). Kazem e
Zangana (2007) descrevem a utilização de rede neural artificial para controle, em
tempo real, do nível de vibração de um processo de usinagem de metais.
Achi (1987) propõe a utilização de um motor de passo microcontrolado para
controle de eixos servo-hidráulicos. Altintas e Peng (1990) sugerem a implementação
de controlador eletrônico de velocidade e da posição da ferramenta na usinagem, entre
outros.
31
Uma das estratégias utilizadas para se construir controladores é fornecer ajustes
dos parâmetros do processo baseados na aquisição de dados realizada através de
transdutores. Tais sistemas são referenciados como Controles Adaptativos (CA).
Apesar de existir vasta bibliografia de aplicação de redes neurais artificiais ao
processo de usinagem de metais, foi identificada lacuna na utilização desta técnica de
inteligência artificial especificamente na usinagem da madeira, apresentando-se, desta
forma, como um potencial a ser explorado.
Atualmente grande parte dos controles adaptativos possuem a função adicional
de maximizar a produtividade, através do correto ajuste de seus parâmetros principais,
dado origem aos Controles Adaptativos Otimizados (CAO).
A maioria dos CAO’s necessita coletar dados experimentais específicos,
utilizados como entradas de um modelo matemático antes de sua implementação
(GROOVER, 1996).
Em comparação com os tradicionais CA, os resultados indicam que a abordagem
com RNA apresenta bom desempenho quanto à eliminação de ruídos e tratamento de
dados não lineares.
Conforme Kazem e Zangana (2007), uma grande vantagem da abordagem
utilizando RNA, é que um esforço computacional intenso é realizado durante o
processo de treinamento, entretanto, uma vez que a rede esteja treinada para uma
tarefa particular, a operacionalização é relativamente rápida e exemplos que não
constam em sua base de dados podem ser facilmente identificados.
Segundo Kazem e Zangala (2007) a vibração é um fenômeno complexo, que caso
esteja fora de controle pode causar desgaste prematuro da ferramenta, má qualidade
superficial. Desta forma, vibrações excessivas podem inclusive danificar as máquinas
de usinagem.
Segundo Groover (1996) existem dois tipos de vibração: vibração forçada - este
tipo de vibração geralmente provocado por alguma força de origem periódica presente
na máquina de usinagem, tais como desbalanceamento dos elementos girantes.
Vibração autoexcitada - ocorre devido ao processo de remoção do cavaco e a estrutura
do centro de usinagem. As vibrações autoexcitadas são em geral de alta frequência.
Conforme discutido anteriormente na revisão bibliográfica sobre Redes Neuro-
32
Fuzzy. Para vários problemas complexos de engenharia, mostra-se vantajoso
utilizarem-se duas técnicas computacionais diferentes, as chamadas técnicas híbridas,
de forma a se obter os pontos fortes de diferentes abordagens e minimizar suas
fraquezas.
Para este tipo de problema entradas devem ser fuzzyficadas de forma a
incrementar a precisão da rede.
Portanto são criadas Redes Neuro Fuzzy – RNF, onde os parâmetros de entradas
foram encolhidos em conjunto com os especialistas humanos, entre as grandezas
físicas que apresentam maior influência no fenômeno de usinagem estudado.
Também com ajuda dos especialistas são construídas funções de pertinência cuja
função é capturar as incertezas envolvidas no processo e transforma-las em valores que
podem ser processados numericamente.
Os parâmetros computacionais da RNF, tais como: quantidade de camadas,
números de neurônios por camada, fator de aprendizagem e critério de corte foram
obtidos através de experimentos computacionais, onde o elemento crítico para a
seleção foi a minimização do erro da rede em função do número de épocas.
Em geral utiliza-se rede do tipo MLP devido ás facilidades para sua
implementação, e a aprendizagem foi off-line.
Conforme é característicos nas RNF off-line a fase de aprendizagem foi realizada
anteriormente ao início do processo de controle efetivo, onde os valores dos pesos
sinápticos são calculados.
De acordo com Kazem e Zangana (2007) existem formas alternativas de se
compor um controlador Neuro-Fuzzy: controle em série, controle paralelo, sistema
autocontrolado e emulador.
As redes, quanto a sua forma de operação, foram classificadas em: controle,
inferência, e classificação.
Redes que operam na inferência são aquelas em que após o aprendizado, os
pesos sinápticos encontrados são utilizados como parâmetros para a determinação de
valores de pares (entrada, saída) que não pertencem à base de dados original, tais
redes são também conhecidas como mecanismo de inferência.
33
Na operação de classificação, também denominada de clusterização, redes
neurais não-supervisionadas mapeiam o espaço de busca do problema de forma que
ocorra um agrupamento (clusterização) de elementos que possuam características
próximas.
Redes utilizadas na operação de controle têm a função de retroalimentar o
sistema, ajustando seus parâmetros de forma que seja alcançado seu ponto ótimo, ou
seja, mantida sua estabilidade.
Em função do grau de complexidade foram selecionadas abordagens diferentes
quanto à configuração das redes, sendo;
As redes puras: MLP (MultLayer Perceptron), RBF (Radial Base Function).
As redes híbridas: Fuzzy-MLP, Fuzzy-MLP não supervisionada.
O critério de escolha quanto ao tipo de rede foi o da simplicidade, ou seja, a
solução mais simples possível que obtenha bons resultados.
No ítem dedicado às redes híbridas, pode-se encontrar a explicação e o
detalhamento matemático para cada um destes tipos de redes. Com exceção das redes
Rough-Fuzzy, as quais, para um aprofundamento, sugere-se o estudo de Sassi et al.
(2007).
Depois de decidir sobre uma determinada categoria de RNA para uma aplicação,
deve-se determinar detalhes específicos sobre a estrutura dos nós (funções de
transferência) e as ligações entre eles.
No geral, não existe uma base teórica para realizar esta tarefa, mas inúmeras
estratégias têm sido propostas.
De uma forma geral uma rede de dimensões adequadas deve exibir:
- Boa "generalização", ou seja, previsão para novos dados, evitando sub e
sobre-montagem.
- Eficiência computacional, buscando-se, uma rede menor, menor os
parâmetros, menos dados, e o menor tempo de processamento.
Para a definição do número de neurônios que apresenta o melhor compromisso
entre desempenho e tempo de processamento foram realizadas simulações iniciais
variando o número de neurônios por camada, o critério para escolha da topologia em
34
geral recai sobre menor erro quadrático médio da fase de teste (RMSE - Root means
square error).
O próximo passo é apresentar a base de dados em um conjunto de vetores da
forma (entrada,saída), separados em dois subgrupos separados aleatoriamente, a base
de aprendizagem (70% do total ) e a base de dados de validação (30%).
Caso o desempenho da rede não seja o esperado, ocorrendo elevado tempo de
processamento ou erros muito altos, aumenta-se o número de camadas intermediárias e
processo continua.
Outrossim, as bases de dados não sejam bem comportadas faz-se necessário
lançar mãos das arquiteturas híbridas. Por este caminho os dados da base são pré-
processados, através de funções de pertinência (veja seção sobre Lógica Fuzzy) que
posteriormente são processadas na RNF (Rede Neuro-Fuzzy).
Como resultado final têm-se os pesos sinápticos da rede, de forma que para
qualquer vetor de entrada é possível fazer um inferência sobre a resposta do sistema.
2.1.5 Identificação de defeito na madeira
Os avanços tecnológicos em imagem e tecnologia de computação aumentaram
consideravelmente a eficiência nas operações de usinagem de madeira.
O tratamento de imagens tem sido usado intensamente no processamento de
madeira, principalmente em relação á classificação de espécies.
Em muitas aplicações, tais como a mobília e produção de painéis de madeira, a
classificação dos tipos de madeira podem fornecer informações relevantes sobre o
aspecto, as propriedades e os procedimentos de preparação dos produtos.
Na maioria dos casos, a classificação do tipo de madeira é feita por operadores
treinados, mas esta solução sofre de desvantagens importantes, desta forma a literatura
apresenta vários trabalhos onde redes neurais são utilizadas no tratamento de imagem
para identificação de defeitos na madeira (PHAM et al.,2006), (HE et al.,1997) e na
determinação de espécies (KHALID,et al.,2008), (TOPALOVA e TZOKEV, 2011),
(LABATI et al., 2009) assim como na análise de fratura de produtos de madeira
(DASSANAYAKE, 2000), (SAMARASINGHE, S.; KULASIRI, D.; JAMIESON, T.
35
2007).
O avanço tecnológico dos últimos anos tornou viáveis os sistemas de controle em
um custo relativamente baixo. Em última análise, um sistema deste tipo irá melhorar
significativamente a utilização de madeiras, melhorando a qualidade de saída do
processo de usinagem e reduzindo o desperdício.
Uma vez que, com auxílio do computador são tomadas decisões no início da
cadeia de produção que oferecem o maior potencial de ganho econômico.
2.2 Usinagem da madeira
Madeira é um material natural e vivo, que desempenha um papel importante na
natureza e no meio ambiente, e a séculos é utilizada como matéria-prima e fonte de
energia a celulose, como pode ser observado pelas vastas obras arquitetônicas que
utilizam este material (GROSSER, 1989).
Devido a várias razões, os materiais lignocelulósicos (madeira) são amplamente
utilizados, ainda nos dias atuais, das quais algumas serão apresentadas a seguir:
- Ela é parte do processo de fabricação de papel e serve de base para vários
processos químicos;
- Devido as suas características individuais é um material muito apreciado como
mobiliário (KALWEIT et al.,2009);
- Pode ser processada com ferramentas simples;
- A energia utilizada para processamento e produção de madeira é mais barata
que para outros tipos de materiais, de acordo com Werner, Zimmer e Lissner (2009).
Nas construções modernas com madeira pode-se observar intensiva pesquisa
para melhoria de seu desempenho, impulsionado por exigências do mercado.
Estas normas estabelecem um novo campo de utilização de materiais à base de
madeira em áreas como instalações industriais, estádios, escolas, igrejas, torres e
pontes (RUG, 2003).
A madeira é um material orgânico, anisotrópico e não homogêneo. Portanto,
suas propriedades físicas somente podem ser compreendidas com a observação de sua
estrutura biológica.
36
As diferentes propriedades mecânicas da madeira são explicadas pelas suas
diferentes composições, embora, possua os mesmo elementos elementares, sendo:
celulose, lignina e hemicelulose.
A configuração porosa da madeira propicia-lhe um comportamento higroscópico,
tornando-a capaz de absorver e liberar umidade. Experimentalmente verifica-se que a
velocidade de troca depende da temperatura, da pressão atmosférica e da umidade
relativa.
Com relação a agentes externos os materiais lignocelulósicos sofrem
decomposição devido ao efeito de intemperismo (raios ultravioleta, chuva, calor/frio,
neve), e ao ataque químico.
Conforme Tibúrcio (2009), o estudo da usinabilidade serve para descobrir as
propriedades de mecanização de um determinado material, definindo-a ainda como a
facilidade de se manipular um material em formas e dimensões definidas com certa
qualidade superficial, por operações de corte. A Figura 7 apresenta a interação entre os
fatores envolvidos num processo de usinagem.
Figura 7. Fatores envolvidos no processo de usinagem, (Tibúrcio, 2009)
Ferramenta: - material; - ângulos; - características; - condições de corte.
Interação
Material: - densidade; - teor de umidade; - defeitos; - abrasividade; - homogeneidade.
Desbaste: - máximo fluxo de
cavacos a mínimo custo, desgaste e potência.
Acabamento: - medição da
qualidade superficial da peça usinada.
- força de corte; - potência elétrica; - desgaste; - fluxo de cavaco.
Qualidade para uso definido
37
De acordo com Woodson e Koch (1970), os seguintes parâmetros são
fundamentais no processo de usinagem da madeira: ângulo de folga �, ângulo de
cunha �, ângulo de saída �, e a espessura de corte h, orientação das fibras em relação
ao corte e afiação da ferramenta de corte, atrito entre o cavaco e a superfície de saída
da ferramenta, vibração lateral.
Esses parâmetros são definidos a seguir:
�: Ângulo de saída da ferramenta de corte - é o ângulo formado entre a superfície
principal de saída da ferramenta (A�) e o plano de referência da ferramenta (Pr).
�: Ângulo de cunha da ferramenta de corte - é o ângulo formado entre as superfícies
principais de saída (A�) e de folga (A�) da ferramenta.
�: Ângulo de folga da ferramenta de corte - é o ângulo formado entre a superfície
principal de folga (Aa) e o plano de corte da ferramenta (Ps).
A Figura 8 mostra os principais ângulos envolvidos no processo de usinagem da
madeira.
Figura 8. Principais ângulos de usinagem (Gonçalves, 2000)
Conforme Gonçalves (2000) as forças que agem em um dente de serra no
serramento contínuo podem ser divididas em dois grupos: forças que atuam no plano
de trabalho e forças que atuam lateralmente ao plano de trabalho.
38
Forças que atuam no Plano de Trabalho:
As pressões exercidas pelo dente sobre a madeira são aplicadas na superfície de
saída. A distribuição dessas pressões é particularmente complexa, sendo elevadas na
proximidade da aresta de corte e, gradativamente menores ao se afastar dessa região.
Esse conjunto de ações descritas pode ser simplificada a uma força normal Fn em
relação à superfície de saída; e por uma força paralela Ff decorrente dos atritos gerados
pelo cavaco sobre a superfície de saída, resultando na força F, conforme demonstrado
na Figura 9.
Figura 9. Forças atuantes no corte: (a) esforços na ferramenta e (b) decomposição da resultante dos esforços, (Gonçalves, 2000)
Conforme Néri (1998), as forças envolvidas no processo de usinagem
determinam o tipo de ferramenta a ser utilizada e as potências da planta de usinagem.
Com efeito, tais forças variam em função da espécie de madeira, direção das
fibras, direção de corte, afiação das ferramentas de corte, e outras variáveis
relacionadas à matéria prima ou a ferramenta.
39
De acordo com Gonçalves (2000), em razão da estrutura ordenada da madeira,
caracterizada por um crescimento orientado das fibras, dos vasos e raios, as
propriedades físicas e mecânicas variam segundo a direção considerada.
Os diferentes modos de cortar não podem ser abordados sem uma definição
prévia do comportamento anisotrópico da madeira.
Existem três direções principais relativas ao corte, padronizadas na literatura
específica, como descrita a seguir:
Direção Longitudinal ou Axial: corte paralelo às fibras (notação 90 - 0);
Direção Radial: corte perpendicular às fibras (notação 0 - 90);
Direção Tangencial: corte perpendicular às fibras (notação 90 - 90).
Os diferentes sistemas de corte da madeira são definidos pela notação de
McKenzie (1961 apud KOCH, 1964), conforme apresentado na Figura 10.
Figura 10. Sistemas de corte,(Koch, 1964, apud Gonçalves, 2000)
O primeiro número da notação, representa o ângulo da aresta de corte em relação
à direção das fibras e o segundo número, corresponde ao ângulo da direção do
movimento em relação à direção das fibras, como especificado a seguir:
40
Corte 90-0: A aresta de corte faz um ângulo de 90º com a direção das fibras e a
direção de movimento 0º com a direção das fibras. Como exemplificação, este sistema
de corte ocorre em operações de serramento circular e de aplainamento de superfícies
na direção longitudinal da madeira.
Corte 0-90: A aresta de corte está paralela à direção das fibras e a direção do
movimento é perpendicular às fibras. Como exemplificação, este sistema de corte
ocorre na operação de torneamento de lâminas de madeira.
Corte 90-90: A aresta de corte e a direção do movimento são perpendiculares à
direção das fibras. Como exemplificação, este sistema de corte ocorre nas operações
do processo de serramento por serra de fita.
De acordo com Gonçalves (2000), os principais parâmetros utilizados na
usinagem da madeira são a velocidade de corte e velocidade de avanço.
Velocidade de corte:
Corresponde à distância percorrida por unidade de tempo, pela aresta de corte
do dente, é diretamente proporcional ao diâmetro e à rotação dos volantes e pode ser
calculada pela Equação (26):
(26)
Sendo:
Velocidade de avanço ou velocidade de alimentação:
Definida como sendo a distância percorrida por unidade de tempo entre a
ferramenta e a madeira. Para operações de desdobro, as velocidades de avanço estão
entre 15 a 100 m/min, dependendo do modelo da máquina.
41
Usualmente empregam-se velocidades de avanço próximas de: 17 m/min para
madeiras de média e alta densidade, 22 m/min para madeiras de baixa densidade,
podendo atingir 35 m/min em função da altura de corte.
A velocidade de avanço pode ser calculada pela Equação (27):
(27)
Sendo:
Outro parâmetro fundamental no processamento da madeira é a deflexão elástica
da serra de fita em relação ao plano de trabalho (plano formado pelos vetores
velocidade de corte e velocidade de avanço), conforme apresentada na Figura 11.
Figura 11. Deflexão elástica da serra de fitas em relação ao plano de corte
Conforme Tibúrcio e Gonçalves (2005), para o cálculo da potência de corte em
42
processos de usinagem da madeira, é necessário o conhecimento dos valores da
pressão específica de corte em função de suas características.
Através dos valores da pressão específica de corte, é possível indicar a geometria
da ferramenta mais adequada, a fim de promover o menor consumo de energia durante
o corte, bem como um bom acabamento da superfície usinada.
A referida adequação é de extrema importância para minimizar o desgaste das
ferramentas de corte e melhorar a qualidade das peças usinadas, condição que vem
sendo almejada continuamente por indústrias do ramo madeireiro.
Para a determinação da força principal de corte foi utilizada a metodologia de
Kienzle (TIBURCIO e GONÇALVES, 2000).
A metodologia proposta, emprega os valores de força principal de corte Pc numa
equação geral, para a determinação da pressão específica de corte para uma seção
transversal de 1mm2 Ks1 e o coeficiente adimensional 1-Z, os quais são tabelados para
cada material, o que resulta na Equação 25 a seguir:
Z
sc hbKP )� 11 .. (25)
Sendo:
KS1 = Constante específica do material 1 - Z = Coeficiente adimensional
Para o presente estudo, Ks1 representa as características e propriedades da
madeira, ou seja: teor de umidade, densidade e direção de corte em relação à direção
das fibras.
O coeficiente adimensional 1-Z, representa parâmetros do processo de usinagem,
tais como: condição de usinagem (Vc), geometria da ferramenta (�) e grandezas de
corte (h, b).
43
3. MATERIAIS E MÉTODOS
Uma vez discutidos nos capítulos anteriores os conceitos fundamentais
relacionados a: usinagem da madeira, Lógica Fuzzy e RNAs; neste capítulo será
apresentada a metodologia experimental empregada na construção das redes neurais.
Os experimentos realizados neste trabalho podem ser divididos em três fases. Na
primeira fase foram coletados dados experimentais em processos de usinagem da
madeira.
Na segunda fase estes dados foram utilizados para construção das funções de
pertinência e regras de inferência Fuzzy, e posteriormente foram inseridos nas Redes
Neuro Fuzzy – RNF.
Neste capítulo foram abordados os critérios utilizados para a construção das
funções de pertinência, enfocando principalmente: centro das funções gaussianas, os
rótulos linguísticos, os desvios-padrão (spread), conforme apresentados.
A seguir são mostrados os algoritmos de aprendizado utilizados na arquitetura
das redes, bem como os detalhes construtivos das RNF do tipo MLP.
A fim de realizar-se a validação dos parâmetros das funções de pertinência,
regras de inferência, número de épocas e taxa de aprendizagem das RNF utilizou-se
uma segunda Base de dados obtida dos trabalhos de Kazem e Zangala (2007).
44
Na fase de aprendizagem a rede utiliza base de dados para identificar o padrão de
comportamento do sistema. Posteriormente, na etapa de generalização, o controlador
construído a partir da rede neural utiliza o conhecimento adquirido para alterar os
parâmetros de entrada de forma a se obter uma determinada saída desejada.
A Figura 12, apresenta diagrama de blocos que representa o funcionamento de
uma rede neural atuando no controle (RN-controlador).
Também será construída uma segunda rede neural que atuará na identificação de
padrão visual de defeitos na madeira (RN-identificação).
Figura 12. Controlador Neuro-Fuzzy para a usinagem da madeira.
Para o trabalho foi utilizado sistema autocontrolado. Neste conceito os
parâmetros de entrada são alterados pelos valores propostos pela RNF (Rede Neuro-
Fuzzy), de tal forma que os valores de saída se aproximem ao máximo de um
determinado valor desejado.
Com efeito, o sistema é ajustado de forma semelhante ao que ocorreria caso um
operador humano, que através de seu conhecimento técnico atua-se sobre o sistema
alterando seus parâmetros de forma a obter a saída desejada.
Portanto, a RNF substitui a ação do operador através do conhecimento obtido
através do ajuste de seus pesos sinápticos.
45
3.1 Experimentos realizados
Para a realização deste trabalho foram realizadas centenas de experimentos
computacionais, onde o resumo é apresentado na Tabela 1. Nesta Tabela esta
sintetizada a metodologia experimental utilizada neste trabalho.
A primeira coluna apresenta as Bases de dados utilizadas nas simulações
computacionais realizadas.
Na segunda coluna discrimina-se a operação realizada pela rede neural. As
redes quanto a sua forma de operação foram classificadas em: controle, inferência, e
classificação.
Redes que operam na inferência, são aquelas em que após o aprendizado, os
pesos sinápticos encontrados são utilizados como parâmetros para a determinação de
pares de valores (entrada,saida) que não pertencem à base de dados original, tais redes
são também conhecidas como mecanismo de inferência.
Na operação de classificação, também denominada de clusterização, redes
neurais não-supervisionadas mapeiam o espaço de busca do problema de forma que
ocorra um agrupamento (clusterização) de elementos que possuam características
próximas.
Redes utilizadas na operação de controle têm a função de retroalimentar o
sistema, ajustando seus parâmetros de forma que seja alcançado seu ponto ótimo ou
seja mantida sua estabilidade.
Tabela 1: Redes neurais aplicadas à usinagem da madeira
Arquitetura Epocas Erro Usinagem RMS Kazem controle Fuzzy MLP MBP 2-6-6-1 1050 0,04998Usinagem Tiburcio Ks inferência MLP MBP / DEV-C 2-8-6-1 14850 0,00999Usinagem Tiburcio 1-Z inferência MLP MBP / DEV-C 2-8-6-1 96921 0,00499Tratamento imagem classificação Fuzzy MLP não-sup. MBP / ImageJ 38-4-1 129 0,00999
Base de dados Operação Tipo de rede SoftwareOtimização
46
O tipo de rede neural utilizada, relacionada na terceira coluna da Tabela 1, foi
escolhida em função do grau de complexidade. Para tanto foram selecionadas
abordagens diferentes, sendo;
As redes puras: MLP, RBF.
As redes híbridas: Fuzzy-MLP, Fuzzy-MLP não supervisionada.
O critério de escolha quanto ao tipo de rede foi o da simplicidade, ou seja, a
solução mais simples possível, contanto que se obtenham bons resultados.
Também foi necessário selecionar o software utilizado nas simulações. A
estratégica desta escolha foi guiada pela busca do melhor compromisso, ou seja,
aquelas que apresentaram o menor erro de aprendizagem.
Nos casos em que a base de dados estava melhor organizada, ou seja, onde não
apresentando dados com baixa dispersão, nestes casos optou-se pelo programa MBP
(Multiple Back Propagation), motivado pela interface amigável aliada a gráficos bem
definidos.
Nos casos em que foi necessária a utilização de arquiteturas híbridas optou-se
pelo compilador Scilab 5.3, uma vez que se tem total controle sobre o código fonte.
Uma vez conhecida a matriz de pesos sinápticos, o caminho mais promissor é
utilizar subrotinas na linguagem c devido à facilidade de implementação.
No tratamento de imagens, fez-se uso do software Imagej para transformar a
informação visual em uma matriz numérica.
Uma vez escolhidos o tipo de rede e o software utilizado, fez-se necessário a
otimização da rede neural, o qual é realizado através dos ajustes dos parâmetros que
compõem a rede, como: número de neurônios, número de camadas e coeficientes de
aprendizagem, além de critérios de parada.
Deve-se observar que, todos os códigos fontes criados neste trabalho estão
disponíveis para consulta no anexo A.
47
3.2 Usinagem dos metais
Utilizando a metodologia proposta por Kazem e Zangala (2007) para controle do
processo de usinagem dos metais, este trabalho definiu uma abordagem semelhante
para a usinagem da madeira. Desta forma esta base de dados de usinagem de metais foi
serviu como validação da rede neural proposta.
Neste caso a rede tem função de controle do processo de usinagem conforme
apresentado na Figura 13.
Figura 13. Rede neural atuando no controle do processo de usinagem de metais 3.2.1 Base de dados
O primeiro passo para construção de uma rede neural é a obtenção de uma base
de dados, para tanto foram tomadas bases experimentais originárias de processos de
usinagem de metais
Esta base foi obtida do trabalho de Kazem e Zangala (2007), onde os parâmetros
de entrada são a velocidade de corte (vc) e a velocidade de avanço (vf) em um processo
de usinagem de metais e como saída o nível médio de aceleração.
48
Para avaliação do nível de vibração são utilizados os valores médios de
aceleração para várias amostras, apresentados na Figura 14 a seguir:
Figura 14. Processo de usinagem de metais, (Kazem e Zangala, 2007)
No trabalho de Kazem e Zangala (2007) Foram realizados testes com 30
amostras, variando a velocidade de corte vc (medida através da rotação do motor), e a
velocidade de avanço vf (medido em mm por revolução) conforme a Tabela 2.
tempo [s]
aceleração [m/s2]
49
Com base nestes experimentos foi construída a seguinte base de dados.
Tabela 2: Nível de vibração (aceleração) em função da velocidade de corte vc e velocidade de avanço vf, (Adaptado de Kazem e Zangala: 2007)
teste Vc Vf aceleração
[rpm] [mm/rev] [mm/s2]
1 540 0,03 4,977 2 540 0,04 4,886 3 540 0,05 4,921 4 540 0,10 5,481 5 540 0,06 4,758 6 260 0,06 3,798 7 260 0,03 5,120 8 260 0,04 5,323 9 260 0,05 5,070
10 260 0,08 5,307 11 370 0,10 5,068 12 370 0,08 4,854 13 370 0,06 4,139 14 370 0,04 4,405 15 370 0,03 4,028 16 125 0,06 3,704 17 125 0,08 3,441 18 125 0,10 3,000 19 125 0,04 3,329 20 125 0,05 3,121 21 180 0,05 3,813 22 180 0,08 3,963 23 180 0,06 2,708 24 180 0,10 3,011 25 180 0,04 2,615 26 180 0,03 2,950 27 85 0,10 2,336 28 85 0,08 2,194 29 85 0,06 2,219 30 85 0,04 2,314
50
3.2.2 Definição da arquitetura da rede neural
Conforme apresentado na Tabela 1, as redes aplicadas a este problema operam
no controle, cujo objetivo é manter ao mínimo o nível de vibração. Para construção
deste controlador, o presente trabalho desenvolveu um programa computacional capaz
de realizar este monitoramento.
Deve-se considerar que a construção da estrutura física deste controle –
hardware faz parte das sugestões para estudos futuros.
A definição da arquitetura da rede foi feita a partir de um número inicial de
neurônios e de camadas intermediárias conforme a Figura 15.
Figura 15. Arquitetura da RN para processo de usinagem saída aceleração
Cada peso sináptico w relaciona uma determinada entrada como o neurônio
correspondente. De uma forma geral, a aprendizagem das redes ocorrerá através dos
ajustes dos pesos sinápticos. O valor do peso sináptico w(t+1) no instante t+1 foi
determinado em função do seu valor na iteração anterior wt, conforme na Equação (2).
A cada iteração ou época o erro entre o valor estimado da rede e o valor real
deve decrescer à medida que os pesos sinápticos são ajustados, conforme a Equação
(3).
Desta forma para que a rede neural realize seu aprendizado, a cada época os
valores dos erros devem decrescer até que alcancem um valor de erro permissível.
No caso da rede em questão o valor estabelecido para este erro mínimo é de 0,05.
Conforme pode ser observado na Figura 16, os valores dos erros diminuem à medida
que aumenta o número de épocas, de forma que a partir da época 1050 o erro passa a
Vc
Vf
Aceleração
Wi
51
ser menor do que o mínimo estabelecido. Lembrando que cada época corresponde a
uma iteração completa do programa.
Figura 16. Erro em função do número de épocas: processo de usinagem saída aceleração
Não existe uma técnica específica para se determinar o número de neurónios
por camada e o número de camadas, desta forma a literatura (HAYKIN, 2009) indica
que se realizem vários experimentos para se determinar a arquitetura com menor erro.
Após os experimentos computacionais, a configuração com melhor resultado foi
com 2 camadas de 6 neurônios, uma vez que apresentou o menor erro na saída,
conforme Tabela 3 que mostra os erros quadráticos médios. Tabela 3: Erros quadráticos médios em função da topologia sugerida
Arquitetura epocas Erro tempos[s]2-4-1 5409 0.04999 282-6-1 2180 0.04999 52-8-1 1714 0.04999 42-4-4-1 3710 0.04999 82-6-6-1 1050 0.04998 3
N. épocas
Erro
52
3.3 Usinagem da Madeira
Este experimento anterior foi realizado para reforçar a validação da rede neural,
de forma a demonstrar que o procedimento pode ser utilizado em bases de dados
diversas.
Na próxima etapa a rede neural também atuará no controle do processo de
usinagem, agora especificamente de madeira, conforme o diagrama apresentado na
Figura 17.
Figura 17. Rede neural atuando no controle do processo de usinagem de madeira
Como base de dados a ser utilizada na fase de aprendizagem da rede foi
utilizados os dados obtidos por Tiburcio e Gonçalves (2000) onde foram avaliadas as
os valores da pressão específica de corte Ks1 para dez espécies de madeira na condição
de umidade seca ao ar para a situação de corte 90-0, para três ângulos de saída � (10º;
17º e 24º).
53
3.3.1 Base de dados
A base de dados utilizada para a fase de aprendizagem da rede apresenta como
valor de saída o valor da pressão específica de corte Ks1, e o parâmetro 1-Z e a entrada
é os ângulo de saída para cada espécie, conforme é apresentada na Tabela 4.
Tabela 4: Valores de Ks1 e 1-Z, obtidos em função do ângulo de saída para as 10 espécies, (Fonte: Tibúrcio e Gonçalves, 2000).
Espécie ���� Ks1 1-Z
PINUS 24º 3,94 0,71
17º 5,08 0,78 10º 5,33 0,75
CEDRO 24º 5,28 0,82 17º 6,55 0,8 10º 7,18 0,81
PINHO 24º 6,68 0,7 17º 7,83 0,82 10º 7,58 0,81
IMBUIA 24º 4,37 0,66 17º 5,24 0,67 10º 6,64 0,81
CASTANHEIRA 24º 5,46 0,83 17º 6,46 0,77 10º 8,59 0,79
EUCALÍPTO 24º 6,83 0,79 17º 7,87 0,75 10º 8,84 0,84
PEROBA 24º 7,35 0,69 17º 10,24 0,74 10º 11,78 0,8
MAÇARANDUBA 24º 7,06 0,69 17º 8,86 0,66 10º 11,44 0,71
ANGICO 24º 9,66 0,8 17º 11,34 0,82 10º 12,29 0,82
IPÊ 24º 6,18 0,68 17º 7,17 0,64 10º 8,5 0,72
54
3.3.2 Definição da arquitetura da rede neural
Da mesma forma como realizado anteriormente, a configuração dos número de
neurônios e de camadas, foi realizado escolhendo-se a arquitetura que apresenta o
menor erro admissível, a qual é apresentada através nas Figuras 18 e 19.
Figura 18. Arquitetura da RN para processo de usinagem saída Ks1
Figura 19. Arquitetura da RN para processo de usinagem saída 1-Z
A partir de um conjunto de valores iniciais de pesos sinápticos, estes foram sendo
ajustados, a cada nova época, na fase de aprendizagem da rede, através das Equações
(2) e (3). Os erros admissíveis escolhidos experimentalmente foram: 0,01 para ks1 e
0,005 para 1-Z.
Espécie
��
Ks1
Espécie
��
1-Z
55
Conforme se pode observar na Figura 20 e 21 este valor de erro especificado foi
alcançado a partir das épocas 14850 e 96921, respectivamente.
Figura 20. Erro em função do número de épocas: processo de usinagem saída Ks1
Figura 21. Erro em função do número de épocas: processo de usinagem saída 1- Z
N. epocas
Erro
N. epocas
Erro
56
As Tabelas 5 e 6 representam a comparação entre os erros encontrados para
cada arquitetura (representada pelo número de neurônios em cada camada), bem como
a quantidade de épocas.
Após os experimentos computacionais, a configuração com melhor resultado foi
com 2 camadas de 8 e 6 neurônios para as saída Ks1 e 1-Z, uma vez que apresentaram
os menores erros na saída.
Tabela 5: Erros quadráticos médios em função da topologia sugerida para Ks1
Arquitetura épocas Erro tempos[s]
2-4-1 não conv 0.00999 8
2-6-1 não conv 0.00999 8
2-8-1 não conv 0.00999 8
2-4-4-1 não conv 0.00999 8 2-8-6-1 14850 0.00999 24
Tabela 6: Erros quadráticos médios em função da topologia sugerida para 1-Z
Arquitetura épocas Erro tempos[s]
2-4-1 não conv 0.00499 8
2-6-1 não conv 0.00499 8
2-8-1 não conv 0.00499 8
2-4-4-1 não conv 0.00499 8
2-8-6-1 96921 0.00499 407
57
3.4 Identificação de defeitos na madeira
As técnicas de processamento de imagem são amplamente utilizadas para a
identificação de defeitos da madeira, na identificação de espécies e na análise de
fratura.
Neste trabalho apresenta-se proposta de software para identificação de padrão de
defeitos que servirá como apoio para o processo de usinagem da madeira.
Nesta etapa do trabalho a rede atua na classificação (clusterização) da madeira
por tipo de defeito, baseando-se em padrão visual do produto após o processo de
usinagem.
Por clusterização entende-se o processo de classificar ou agrupar elementos que
possuam características semelhantes em um mesmo grupo. A Figura 22 mostra o
diagrama de blocos que representa o processo de classificação visual realizado pela
rede neural.
Figura 22. Diagrama de blocos para reconhecimento de imagem
Em linhas gerais estes sistemas de processamento de imagem operam da seguinte
forma;
A primeira etapa após a captação de imagem foi transformação da informação da
forma de pixels em superfícies através do software de livre acesso Imagej.
Na segunda etapa foi criada uma matriz numérica com os valores de intensidade
cromática correspondente a cada pixel. Esta matriz numérica depende das dimensões
do objeto em estudo.
58
Posteriormente foi realizada uma normatização desta matriz numérica, onde é
atribuído um valor unitário para os pixels de máxima intensidade e zero para os de
mínima intensidade.
A partir desta base normatizada foram criados vetores que identifiquem padrões
para cada imagem. Estes padrões foram utilizados como base de dados de treinamento
para um RNA, o qual após seu treinamento foi capaz de identificar o nível de
qualidade superficial do produto acabado, mesmo que seu vetor de características não
pertença à base de dados de treinamento.
Para este caso foi utilizada uma RNA não-supervisionada com o objetivo de
identificação de defeitos.
A rede neural para classificação de imagem (RN de identificação) atua no
processo de controle da planta de usinagem informando se determinado padrão de
qualidade superficial no produto final esta sendo atendido.
De forma que, a classificação realizada por esta rede, serve como entrada para
eventuais ajustes no processo de usinagem realizado pela rede neural de controle (RN-
controle).
A Figura 23 a seguir representa esta etapa do processo.
Figura 23. Rede neural atuando na classificação visual de defeitos da madeira
59
3.4.1 Base de dados
O primeiro passo foi a criação de um banco de dados de imagens que serviu
como referência para o padrão de defeitos. Com este software após o processo de
reconhecimento de padrões verificou-se se a amostra apresenta algum tipo de
problema qualitativo, e procedeu-se a seleção quando necessário.
Na Figura 24 apresenta-se um banco de dados de imagens composto por cortes
radiais em diferentes amostras;
Anel 0
Anel 1
Anel 2
Anel 3
Anel 5
Anel 6
Figura 24. Base de dados: padrão de imagem
Com ajuda do software de livre acesso Imagej as imagens foram convertidas em
informação tridimensional que identifica, com base nos padrões de tonalidade, a
informação topográfica da imagem.
60
Nesta etapa o programa “Imagej” criou malha que representa a topografia da
imagem, onde cada ponto esta associado um conjunto de coordenadas espaciais (x,y,z),
o qual é salvo no formato de arquivo .txt. na Figura 25.
Figura 25. Informação topográfica da imagem
Tomando-se o conjunto de coordenadas construiu-se vetor de atributos v(x1, x2)
que definiu as características da imagem.
Desta forma, para cada imagem tem-se um vetor característico, o prompt do
programa escrito na linguagem “C”, para a determinação do vetor de características da
imagem do tipo 0 e 2,conforme Figura 26.
Figura 26. Vetores característicos das imagens
No presente trabalho a característica escolhida foi à densidade de distribuição de
pontos por tonalidade.
61
No passo seguinte foi realizada uma normatização desta base numérica, de
forma a se atribuir um valor unitário para os pilxels de máxima intensidade zmax =1 e
zero para os de mínima intensidade zmin=0.
Em seguida, todo o espaço topográfico da imagem foi fatiado em intervalos
regulares em função da densidade, e a variável x1 corresponde a quantidade de pontos
da malha dentro deste intervalo de tonalidade, e x2 o diâmetro desta área.
Desta forma, foi possível estabelecer uma base de dados com os respectivos
vetores de características para todas as imagens padrão, conforme a Tabela 7.
Os vetores característicos, definidos anteriormente foram utilizados como base
de dados de treinamento para um RNF, o qual após seu treinamento foi capaz de
identificar a qual padrão de imagem a amostra de avaliação pertencia, mesmo que seu
vetor de características não pertença à base de dados de treinamento.
Tabela 7: Base de dados: vetores característicos
área diam área diam área diam área diam área diam área diam[0.05 - 0.10] 3636 48,1 8 2,3 29 4,3 11 2,6 15 3,1 119 8,7[0.10 - 0.15] 3284 45,7 0 0,0 108 8,3 0 0,0 6 2,0 444 16,8[0.15 - 0.20] 1842 34,3 1 0,8 186 10,9 0 0,0 25 4,0 932 24,4[0.20 - 0.25] 1160 27,2 11 2,6 286 13,5 1 0,1 59 6,1 1254 28,3[0.25 - 0.30] 796 22,5 80 7,1 413 16,2 0 0,0 137 9,3 1759 33,5[0.30 - 0.35] 655 20,4 433 16,6 574 19,1 4 1,6 248 12,6 1937 35,1[0.35 - 0.40] 681 20,8 1390 29,8 749 21,8 67 6,5 319 14,3 2050 36,1[0.40 - 0.45] 549 18,7 3144 44,7 998 25,2 370 15,4 443 16,8 2311 38,4[0.45 - 0.50] 677 20,8 5431 58,8 1278 28,5 1276 28,5 482 17,5 2472 39,7[0.50 - 0.55] 775 22,2 7383 68,6 1585 31,8 3012 43,8 610 19,7 2509 40,0[0.55 - 0.60] 1051 25,9 4516 53,6 2176 37,2 5006 56,5 1039 25,7 2409 39,2[0.60 - 0.65] 1484 30,7 1110 26,6 2653 41,1 5916 61,4 1806 33,9 1950 35,2[0.65 - 0.70] 1999 35,7 235 12,2 2779 42,1 4196 51,7 2878 42,8 1583 31,8[0.70 - 0.75] 2214 37,6 61 6,2 2978 43,6 2580 40,5 3971 50,3 871 23,6[0.75 - 0.80] 1757 33,5 14 3,0 3344 46,2 1140 26,9 5046 56,7 468 17,3[0.80 - 0.85] 967 24,8 2 1,1 2786 42,1 341 14,7 4646 54,4 149 9,7[0.85 - 0.90] 320 14,3 3 1,4 1052 25,9 106 8,2 1950 35,2 40 5,0[0.90 - 0.95] 87 7,4 5 1,8 300 13,8 22 3,7 421 16,4 7 2,1[0.95 - 1.00] 16 3,2 0 0,0 29 4,3 2 1,1 56 6,0 0 0,0
tonalidadeamostra 6amostra 0 amostra 1 amostra 2 amostra 3 amostra 5
62
3.4.2 Definição da arquitetura da rede neural
Da mesma forma como realizado anteriormente, a configuração do número de
neurônios e de camadas, foi realizado escolhendo-se a arquitetura que apresenta o
menor erro admissível.
Uma vez que os tempos de processamento foram próximos de zero, o critério
para escolha da arquitetura foi a simplicidade da rede.
Desta forma a arquitetura da RNF para clusterização de imagem apresentou a 32
neurônios sensoriais e 4 neurônios na camada intermediária, conforme apresentado na
Figura 27.
Figura 27. Arquitetura da rede - processamento de imagem
O erro admissível escolhido experimentalmente para esta rede foi de 0,01.
Conforme se pode observar na Figura 28 este valor de erro especificado foi alcançado
a partir da época 129.
Figura 28. Erro da rede em função das épocas - tratamento de imagem
N. epocas
Erro
63
4. RESULTADOS E DISCUSSÃO
Este capítulo esta dividido em três secções, onde foram apresentados e
discutidos os resultados obtidos a partir das redes neurais construídas, sendo:
- Usinagem dos metais: Saída aceleração.
Trata-se da base de dados proposta no trabalho de Kazem e Zangala (2007), na
qual as entradas são as velocidades de corte e de avanço e a saída é o nível de vibração
medido a partir da aceleração em um centro de usinagem de metais.
- Usinagem da madeira: Saída Força de corte (Ks1 e 1-Z).
Trata-se da base de dados proposta por Tibúrcio e Gonçalves (2000), sendo as
entradas o ângulo de saída, velocidades de corte e tipo de madeira, e as saídas a
pressão especifica de corte Ks1 e o coeficiente adimensional 1-Z.
- Tratamento de imagem.
A partir de uma base de dados de imagem de amostras de madeira, é realizada
classificação do produto final por tipo de defeito.
Para cada um destes casos detalha-se o tratamento da base de dados, e os
resultados obtidos a partir do aprendizado da rede. Finalmente, são discutidos os
resultados.
64
4.1 Usinagem dos metais
A seguir apresenta-se o detalhamento dos resultados obtidos da rede neural
construída a partir da base de dados de Kazem e Zangala (2007).
4.1.1 Aprendizado da rede
Uma forma de se verificar a aderência dos dados é avaliando o valor da saída da
rede e comparar com os valores experimentais da base de dados, uma vez que é
possível realizar comparação visual do comportamento do erro da rede. Na Figura 29,
conforme segue, é possível verificar que houve um boa aderência da rede em relação
ao fenômeno estudado.
Figura 29. Saída Aceleração: processo de usinagem da metais Uma vez que a arquitetura da rede esta definida, e o erro objetivo foi alcançado,
para que se possa utilizar a rede no controle de um processo de usinagem é necessário
conhecer os valores dos pesos sinápticos.
A partir dos valores dos pesos, podem-se fazer previsões sobre a saída do
sistema (fMLP) a partir de um determinada entrada xi, utilizando-se a Equação (4).
Aceleração
Amostra
[m/s2]
65
Para o problema considerado, após 1050 épocas foram encontrados os pesos
sinápticos da RNF conforme apresentado na Tabela 8. Tabela 8: Matriz de pesos sinápticos – processo de usinagem dos metais
para Camada oculta 1 bias n1 n2
n1 1,67 2,24 -1,42n2 2,28 3,97 -7,16n3 -0,77 -7,15 -0,20n4 -0,95 -1,55 -0,60n5 -0,01 1,98 -0,72n6 1,49 11,04 -3,20
para Camada oculta 2 bias n1 n2 n3 n4 n5 n6
n1 0,60 -4,20 -2,03 0,36 1,50 -3,11 -2,97n2 0,63 -0,02 0,48 -1,61 0,08 -0,45 0,15n3 -0,02 1,63 -2,84 -0,94 -1,83 2,68 -1,05n4 -0,79 -1,58 0,50 -0,58 1,25 -1,27 0,41n5 0,70 0,77 -4,13 -1,56 -1,01 1,83 8,98n6 0,40 -0,40 1,41 -4,59 0,77 -1,14 1,40
para Camada saída bias n1 n2 n3 n4 n5 n6
n1 -0,61 -3,08 -0,50 3,44 -1,53 4,13 -3,89
da Camada entrada
da camada oculta 1
da camada oculta 2
Estes valores foram utilizados nos programas mostrados no Anexo A para a
construção do controlador para o processo de usinagem.
Foram utilizadas RNF (Redes Neuro Fuzzy) de forma que as variáveis utilizadas
foram escolhidas por especialistas (humanos) no processo de usinagem da madeira,
dentre aquelas de maior impacto no processo, sendo a velocidade de avanço e a
velocidade de corte, e como resposta do sistema utilizou-se o nível de ruído RMS.
Ainda com apoio dos especialistas foram criadas funções de pertinência, com o
objetivo de tratar as incertezas inerentes ao problema, de forma a possibilitar sua
utilização em processamento numérico.
O programa mostrou-se capaz de realizar o controle do sistema de usinagem, e
como próximos passos sugere-se a construção de modelo físico deste controlador.
Os resultados obtidos em relação as duas RNF propostas permitem demonstrar a
possibilidade de se construir uma RNF capaz de fazer previsões sobre o processamento
de materiais a base de madeira.
66
4.2 Usinagem da madeira
A seguir o detalhamento dos resultados obtidos da rede neural construída a
partir da base de dados de Tibúrcio e Gonçalves (2000).
4.2.1 Aprendizado da rede
A aderência foi avaliada através da comparação da saída da rede e os dados
experimentais, quanto mais próximas as curvas, maior a capacidade da rede de
reproduzir os resultados do sistema real, conforme apresentado nas Figuras 30 e 31.
Figura 30. Saída Ks1: processo de usinagem da madeira
Figura 31. Saída 1-Z: processo de usinagem da madeira
Amostra
Ks1
[daN/mm2]
Amostra
1-Z
67
Pode-se verificar através das Figuras 30 e 31 que a curva que representa os dados
experimentais esta bem próxima daquela prevista pela rede neural.
A partir do momento que o erro admissível é alcançado, acaba a iteração do
programa, e os pesos sinápticos são encontrados, conforme as Tabelas 9 e 10. Tabela 9: Matriz de pesos sinápticos – saída Ks1
para
Camada oculta 1 bias n1 n2n1 -5,85 6,21 0,43n2 -3,08 -6,66 1,07n3 -7,81 -9,53 0,18n4 2,07 3,81 1,61n5 0,47 -12,53 4,16n6 0,15 -8,48 -3,17n7 7,59 -11,55 0,26n8 0,62 -14,73 -7,24
para Camada oculta 2 bias n1 n2 n3 n4 n5 n6 n7 n8
n1 0,55 1,91 0,53 0,47 0,60 -0,07 0,81 -0,03 -1,41n2 1,74 0,65 1,59 -1,61 2,68 0,31 -3,71 -10,91 -0,41n3 -0,53 -4,02 0,88 0,00 -1,88 0,52 -0,75 -1,23 1,51n4 0,48 -4,02 1,12 -1,50 -0,14 -0,46 -3,21 -0,16 2,34n5 -1,18 -2,11 -3,33 0,19 0,31 0,23 -1,68 0,81 -0,27n6 -0,18 5,69 -1,38 3,88 0,64 1,73 1,23 -0,19 -1,11
para Camada saída bias n1 n2 n3 n4 n5 n6
n1 -0,49 -0,93 5,40 5,23 9,53 2,88 -5,97
da camada oculta 2
da camada oculta 1
da Camada entrada
Tabela 10: Matriz de pesos sinápticos – saída 1-Z
para Camada oculta 1 bias n1 n2
n1 -9,13 13,30 2,53n2 -2,00 3,36 -1,94n3 4,37 8,57 7,96n4 4,34 -6,13 2,41n5 7,24 19,70 6,82n6 7,39 16,10 -6,27
para Camada oculta 2 bias n1 n2 n3 n4 n5 n6
n1 0,30 -0,95 8,05 -4,24 -0,01 -2,45 -5,21n2 -4,50 -2,33 -2,32 -3,55 -2,74 10,67 -5,97n3 -0,21 -8,91 -0,89 -0,82 0,35 6,97 -6,32n4 1,34 -79,00 3,46 -11,19 0,42 -7,01 4,36n5 -4,51 9,92 -5,34 0,44 -7,43 -0,52 0,43n6 -0,01 13,19 0,25 -1,94 -8,97 -1,76 2,49
para Camada saída bias n1 n2 n3 n4 n5 n6
n1 -3,13 -9,25 -15,15 7,74 5,14 -13,23 6,33
da Camada entrada
da camada oculta 1
da camada oculta 2
68
Adicionalmente é possível realizar previsões sobre o comportamento dos
parâmetros de usinagem. Desta forma foi avaliadas a variação do ks1 em relação ao
ângulo de saída conforme apresentada nas Tabelas 11 e 12.
Tabela 11: Pressão especifica de corte (Ks1) e coeficiente adimensional (1-Z) para diferentes espécies
� ks 1-z ks 1-z ks 1-z ks 1-z ks 1-z
10 5,444 0,750 7,201 0,810 7,601 0,813 6,684 0,807 8,494 0,79111 5,341 0,757 7,249 0,800 7,676 0,813 6,463 0,811 8,335 0,81012 5,247 0,762 7,257 0,778 7,753 0,814 6,250 0,813 8,167 0,82313 5,162 0,766 7,220 0,760 7,827 0,813 6,044 0,814 7,982 0,83314 5,085 0,770 7,136 0,761 7,891 0,811 5,840 0,816 7,763 0,77315 5,012 0,772 7,004 0,768 7,930 0,808 5,631 0,817 7,478 0,75216 4,941 0,775 6,830 0,779 7,918 0,811 5,402 0,741 7,081 0,76017 4,865 0,780 6,619 0,800 7,806 0,820 5,144 0,670 6,557 0,76518 4,771 0,791 6,384 0,824 7,527 0,736 4,878 0,802 6,024 0,77019 4,642 0,812 6,138 0,804 7,070 0,786 4,674 0,835 5,683 0,77820 4,468 0,827 5,899 0,724 6,631 0,831 4,579 0,833 5,555 0,79321 4,286 0,767 5,679 0,719 6,463 0,837 4,559 0,798 5,511 0,81522 4,168 0,716 5,488 0,732 6,520 0,834 4,554 0,712 5,470 0,83123 4,125 0,711 5,329 0,768 6,626 0,794 4,541 0,672 5,418 0,83524 4,119 0,710 5,193 0,819 6,701 0,700 4,519 0,661 5,357 0,830
PINUS CEDRO PINHO IMBUIA CASTANHEIRA
Tabela 12: Pressão especifica de corte (Ks1) e coeficiente adimensional (1-Z) para diferentes espécies
� ks 1-z ks 1-z ks 1-z ks 1-z ks 1-z
10 8,893 0,838 11,608 0,800 11,612 0,710 12,144 0,820 8,490 0,72011 8,939 0,838 11,631 0,730 10,452 0,653 12,128 0,812 8,380 0,65412 8,989 0,821 11,641 0,720 9,444 0,641 12,107 0,799 8,247 0,64113 9,027 0,763 11,629 0,719 9,098 0,641 12,075 0,764 8,088 0,64014 9,015 0,753 11,571 0,723 9,052 0,643 12,019 0,738 7,938 0,64015 8,876 0,752 11,413 0,728 9,052 0,650 11,911 0,757 7,815 0,64016 8,498 0,755 11,028 0,733 9,013 0,658 11,676 0,793 7,595 0,64017 7,861 0,758 10,203 0,737 8,923 0,663 11,245 0,818 7,214 0,64018 7,241 0,760 9,007 0,739 8,785 0,666 10,771 0,829 6,846 0,64019 6,915 0,763 8,082 0,739 8,604 0,668 10,427 0,833 6,595 0,64120 6,814 0,765 7,640 0,736 8,386 0,670 10,203 0,834 6,438 0,64121 6,797 0,767 7,468 0,729 8,126 0,673 10,044 0,834 6,334 0,64322 6,805 0,770 7,413 0,719 7,819 0,675 9,918 0,830 6,258 0,64623 6,823 0,777 7,407 0,706 7,449 0,677 9,809 0,821 6,198 0,65624 6,845 0,790 7,422 0,690 7,000 0,679 9,710 0,800 6,147 0,681
IPÊEUCALÍPTO PEROBA MAÇARANDUBA ANGICO
69
Na Figura 32 é apresentada a previsão da rede neural para o comportamento da
pressão especifica de corte em função do ângulo de saída para diferentes espécies.
Figura 32. Ks1 em função de �: várias espécies
Nas Figuras 33 e 34 é apresentados os comportamento dos coeficientes
adimensionais 1-Z para diferentes espécies.
Figura 33. 1-Z em função de �: várias espécies
70
Figura 34. 1-Z em função de �: várias espécies
Dos resultados apresentados neste item pode-se concluir que:
As RNFs aplicadas a este processo apresentam capacidade de generalização, uma
vez que identificaram padrões de comportamento, o que possibilita a criação de um
controlador num sistema com alto grau de complexidade.
Uma vez estabelecida superfície de respostas é possível construir controlador
Fuzzy que permita a obtenção de solução otimizada para o sistema.
71
4.3 Tratamento de imagem
Conforme a metodologia proposta por Pham et al. (2006) e discutido
anteriormente no item 3.4, foi construída rede neural cuja função foi classificar
(clusterizar) imagem referente a uma amostra de madeira, e identificar se esta possui
algum tipo de defeito superficial. Isto deve ocorrer de forma autônoma, ou seja, sem o
apoio de um especialista humano. Portanto, é apresentada à rede neural uma imagem
de uma amostra originária do processo de usinagem, conforme exemplificado na
Figura 35.
Figura 35. Exemplos de padrão de imagem
Na etapa seguinte, através das imagens foram criadas superfícies, tomando como
referência a tonalidade dos pixels. A Figura 36 um exemplo da superfície topográfica
criada pelo software Imagej.
Figura 36. Topografia da imagem capturada
Utilizando-se as coordenadas espaciais geradas pelo software Imagej foi gerado
um vetor de atributos v(x1,x2) com as características marcantes da imagem.
72
Na próxima etapa a imagem foi fatiada em intervalos regulares de acordo com a
sua tonalidade, sendo que a tonalidade corresponde à coordenada z da imagem
topográfica.
Em seguida o espaço de resposta foi fatiado em intervalos constantes, onde foram
obtidas as variáveis x1 e x2 correspondendo a quantidade de pontos no intervalo de
tonalidade, e o diâmetro, respectivamente.
Por exemplo, na Figura 37, o software identificou que no intervalo de tonalidade
[0,05 – 0,10] existem 29 pontos.
Portanto, as primeiras coordenadas do vetor característico para esta imagem são
v(x1,x2) = [29; 4,3; 108; 8,3; ...] conforme Figura 37.
Figura 37. Coordenadas do Vetor característico
Conforme discutido no item 3.4, foi construída rede neural utilizando uma base
de dados de imagem, a qual esta representada na Figura 27. Desta forma, a rede neural
aprendeu qual o padrão numérico dos vetores característicos referente a cada tipo de
defeito visual.
Utilizando a capacidade da rede de aprender através de exemplos, esta
identificou qual padrão visual o vetor apresenta-se mais próximo.
73
4.3.1 Aprendizado da rede
Na rede construída para classificação de defeitos da madeira através do
tratamento de imagem, as entradas são os valores do vetor característico para cada
padrão de defeito, e a saída é a sua classificação.
Com efeito, é possível identificar a capacidade de classificação de uma rede
através da avaliação de sua saída. Na Figura 38 esta representada a classificação
proposta pela rede e a classificação real da imagem. Portanto, como pode ser
verificado, que existe boa aderência da rede em relação aos dados experimentais, uma
vez que as linhas estão praticamente sobrepostas.
Figura 38. Saída da rede - tratamento de imagem
Como pode ser observado na Figura 38 ocorreu convergência satisfatória entre a
RNA e a base de dados experimental. Portanto, pode-se concluir que o processo de
aprendizagem foi satisfatório, uma vez que o erro é inferior ao erro admissível,
especificado em 0,01.
Amostra
Classificação
74
Após o critério de corte ter sido alcançado foram encontrados os pesos sináptico
da rede neural.
Para este caso foi utilizada rede não-supervisionada com o objetivo de classificar
(clusterizar) as imagens obtidas. A rede não-supervisionadas corresponde aquelas na
qual o valor de saída corresponde a um padrão de classificação.
Uma vez que a RNA aprenda através da base de dados é possível identificar a
qual grupo a imagem originária do processo de usinagem (ImagemTexte) pertence.
A região circulada mostra o resultado da classificação conforme apresentado na Figura
39.
Figura 39. Clusterização do vetor característico
Importante observar que o vetor de característica da imagem teste não é
exatamente igual ao vetor padrão do tipo 2, entretanto pelo processo de clusterização a
rede neural identifica dentro do espaço de resposta qual o vetor esta mais próximo.
75
5. CONCLUSÕES
Os resultados obtidos em relação às redes neurais propostas permitiram
responder à questão inicial, sobre a possibilidade de se construir modelos matemáticos
capazes de controlar e prever o comportamento de sistemas industriais de
processamento da madeira.
Uma vez que as RNAs aplicadas aos vários processos industriais estudados
apresentaram capacidade de generalização, pois identificaram padrões de
comportamento, o que possibilitou a criação de mecanismos de inferência,
classificadores e controladores, em sistemas com alto grau de complexidade.
Adicionalmente, os resultados obtidos permitiram identificar as melhores
estratégias de processamento, com potencial de otimização da utilização dos recursos
energéticos, assim como melhoria na qualidade do produto final.
Considerando, que um dos pontos fracos da utilização da Lógica Fuzzy para a
modelagem de sistemas complexos é sua dependência em relação ao especialista
humano, pois foi necessário se apoiar no conhecimento do especialista da área para a
construção das funções de pertinência, tornando claro que a geração de conhecimento
confiável foi uma tarefa notoriamente difícil, principalmente quando especialistas não
estão disponíveis.
Entretanto, a combinação de RNA com a Lógica Fuzzy tornou possível transpor
as duas principais dificuldades encontradas: extrair conhecimento de especialistas, e as
bases de dados com um número restrito de exemplos.
A abordagem do tratamento de imagens abre várias perspectivas de trabalhos
futuros, focando no desenvolvimento de sistemas completos incluindo software e
hardware com aplicabilidade na indústria da madeira.
Tal iniciativa pode aflorar em sistemas de escaneamento a baixo custo, tornando
viável sua aplicação para o médio industrial da área. Observa-se ainda, que há uma
clara demanda por Arquiteturas Híbridas para atuação em várias áreas do
conhecimento. Este cenário oferece, portanto, amplo espaço para trabalhos de
continuidade.
76
REFERÊNCIAS BIBLIOGRÁFICAS
ACHI, P. U. A low-cost computer numerical control machine system using LSI interfaces. IEEE Transations on on industrial electronics, vol. 34, no.1, 1987. AFFONSO, C. e SASSI, R.J. A Rough-Neuro Fuzzy Network Applied to Polymer Processing. Proceedings of 2nd International Conference on Software Engineering and Data Mining SEDM 2010 IEEE Conference, p. 355-361, Cheng du-China, 2010. BRAGA, A. P; LUDEMIR T. B.;CARVALHO, A. C. P. L. F. Redes Neurais Artificiais: Teoria e Aplicações. LTC, 2000. ALTINTAS, Y.; PENG, J. Design and analysis of a modular CNC system. Computer and Industry. vol.13, p. 305-316, 1990 ALTINTAS, Y. ALTINTAS, Y.; Manufactoring Automation. Cambridige Press, 2000. BLAZADONAKIS, E.; MICHALIS, Z. Support Vector Machines and Neural Networks as Marker Selectors in Cancer Gene Analysis. Intelligent Techniques and Tools for Novel System Architectures. Berlin, Heidelberg: Springer-Verlag Berlin Heidelberg, p. 237-258, 2008. CARVALHO, L. M. F. A neuro-fuzzy system to support in the diagnostic of epileptic events using different fuzzy arithmetical operations. Neuropsiquiatria, p.179-183, 2008. DASSANAYAKE, D. Software project on fracture dynamics of wood and artificial neural network model for prediction of fracture toughness. A thesis submitted in partial fulfilment of the requirements for the degree of Master of Applied Science at Lincoln University, 2000. ER, M. J.; ZHOU, Y. Dynamically Self-generated Fuzzy Neural Networks with Industry Applications. Soft Computing Applications in Industry, Springer-Verlag Berlin Heidelberg, p. 47-68, 2008. FERREIRA, R.P.; AFFONSO, C.; SASSI, R. J. Dynamic routing combined to forecast the behavior of traffic in the city of São Paulo using Neuro Fuzzy Network. Stochastic Modeling Techniques and Data Analysis International Conference, 2010, Chania Crete. GOMIDE, F.; FIGUEIREDO, M.; PEDRYCZ, W. A neural Fuzzy network: Structure and learning, Fuzzy Logic and Its Applications. Information Sciences and Intelligent Systems, Bien, Z. and Min, K., Kluwer Academic Publishers, Netherlands, p. 177-186, 1998.
77
GONÇALVES, M.T.T. Processamento da Madeira. 1.ed. Bauru: Document Center Xerox – USC, p. 242, 2000. GROOVER, M. P. Fundamental of modern manufacturing process. Prentice Hall International Inc, 1996. GROSSER, D. Einheimische Nutzhölzer und ihre Verwendungsmöglichkeiten.
Info Holz/ EGH-Bericht, 1989.
HALGAMUDE, S.K.; GLESNER, M. Neural networks in designing Fuzzy systems for real world applications. Fuzzy Sets and Systems 65, 1994. HAYKIN, S. Neural Networks: A Comprehensive Foundation. New York: Willey & Sons, 2001. HE, W.; ZHANG, F.Y.; LIU, T.I. Development of a Fuzzy-Neuro System for Parameter Resetting of injection Molding. Journal of Manufacturing Science and Engineering. vol. 123, p. 110-118, 2001. HE, J. A. Comparison of Artificial Neural Network Classifiers for Analysis of CT Images for the Inspection of Hardwood Logs. Thesis submitted to the Faculty of the Bradley Department of Electrical and Computer Engineering of Virginia,1997. HEBB, D.O. The Organization of Behavior: Neuropsychological Theory. N. Y.:Willey 1949. HERRERA, P.J.; PAJARES, G.; GUIJARRO, M; RUZ, J.J.; CRUZ, J.M.; Choquet Fuzzy Integral Applied to Stereovision Matching for Fish-Eye Lenses in Forest Analysis. W. Yu and E.N. Sanchez (Eds.): Advances in Computational Intell., AISC 61, p. 179-187. springerlink.com © Springer-Verlag Berlin Heidelberg, 2009. KALWEIT, A; PAUL, C; PETERS, S ; WALLBAUM, R. Hölzer Handbuch für Technisches Produktdesign - Material und Fertigung Entscheidungsgrundlagen für Designer und Ingenieure. S. 151 - 188. - Berlin, Heidelberg : Springer-Verlag Berlin Heidelberg, 2009. KAZEM, B. I.; ZANGANA, N. F. H. A Neaural Network Based Real Time Controller for Turning Process. Jordan Journal of Mechanical and Industrial Engineering, p. 43-55,2007. KHALID, M.; LEE, E. L.; YUSOF, R.; and NADARAJ, M. Design of an intelligent wood species Recognition system. IJSSST, Vol. 9, No. 3,p. 9-19, 2008.
78
KOCH, P. Wood Machining Processes. New York: Ronald Press Company, p. 530, 1964. KOVÁCS, Z. L. Redes Neurais Artificiais: Fundamentos e Aplicações. Ed. Collegium Cognitio, 1996. LUCIMAR, M.F. C.; NASSAR, S.M.; AZEVEDO, F.M. Um sistema neuro-difuso para auxiliar no diagnóstico de eventos epilépticos e eventos não epilépticos utilizando diferentes operações aritméticas difusas. Arq. Neuro-Psiquiatr., vol. 66, n. 2a, p. 179-183, 2008. MAMDANI, E.H.; ASSILIAN, S. An experiment in linguistic synthesis with a fuzzy logic controller. Int. J. Man Mach. Studies vol. 7, p. 1-13, 1975. NÉRI, A. C. Medidas de forças de corte na madeira de eucalipto. Campinas, 1998. Dissertação (Mestrado em Engenharia Agrícula) – Faculdade de Engenharia Agricola da Universidade Estadual de Campinas. LABATI, R. D.; GAMASSI, M. and PIURI V. A Low-cost Neural-based Approach for Wood Types Classification. CIMSA 2009 - International Conference on Computational Intelligence for Measurement Systems and Applications Hong Kong, China. p. , 2009 MCCULOCH, W. S.; PITTS, W. H. A logical calculus of the ideas immanent in nervous activity. Bulletin of mathematical biophysics, vol. 5, p. 115-133, 1943. MINSKY, M. L.; PAPERT, S.A. Perceptrons: An Introduction to Computational Geometry. expanded edition, Cambridge, MA: MIT Press, 1969. MITCHELL, T. Machine Learning. McGraw-Hill, 1997. PHAM, D. T.;J. SOROKA A.J; GHANBARZADEH, A.; KOC, E.; Optimising Neural Networks for Identification of Wood Defects Using the Bees Algorithm. IEEE International Conference on Industrial Informatics, p. 1346-1351,2006. PASSINO, K.M.; YURKOVICH, S. Fuzzy Control. Addison Wesley Longman, Inc. 1998. RESENDE, S. O. Sistemas Inteligentes: Fundamentos e Aplicações. Ed. Malone, 2005. ROSENBLATT, M. The Perceptron: A probabilistic model for information storage and organization in the Brain. Psychological review, vol. 65, n.6, p. 386-408, 1958.
79
RUG, W. 100 Jahre Holzbau und Holzbauforschung. In: 100 Jahre Bund Deutscher Zimmermeister, Berlin, 2003. RUSSEL, B. Introdução a Filosofia matemática. tradução Maria L. X. A. Borges, Ed Jorge Zahar, Rio de Janeiro, 2007. RUSSELL, S. e NORVIG, P. Artificial Inteligence: A modern approach. Prentice Hall, Inc., 1995. RUTKOWSKI, L. Computational Intelligence – Methods and Techniques. Berlin, Heidelberg: Springer, 2008. SALAZAR P. A.; MELIN, P.; CASTILLO, O. A New Biometric Recognition Technique Based on Hand Geometry and Voice Using Neural Networks and Fuzzy Logic. Soft Computing for Hybrid Intelligent Systems. Springer-Verlag Berlin Heidelberg 2008. SAMARASINGHE, S.; KULASIRI, D.; AND JAMIESON, T.; Neural Networks for Predicting Fracture Toughness of Individual Wood Samples. Silva Fennica 41(1), p. 105–122, 2007. SANG-MOOK LEEA, A.; LYNN ABBOTTA; PHILIP A. ARAMANB; DANIEL L. SCHMOLDTC. A Prototype Scanning System for Optimal Edging and Trimming of Rough Hardwood Lumber. Proceedings of Scan Tech 2003 International Conference, Seattle, Washington, U.S.A. SASSI, R. J.; SILVA, L.A.; HERNANDEZ, E.D.M. A Hybrid Architecture for the Knowledge Discovery in Databases: Rough Sets Theory and Artificial Neural Nets Self-Organizing Maps. Proceedings e Abstracts 4th International Conference on Information Systems and Technology Management, 2007. vol. 1, p. 1149-1177. TIBURCIO, U. F. O. Medição e análise do acabamento superficial da madeira de eucalipto na usinagem de torneamento cilíndrico e lixamento. Bauru, 2009. Tese (Doutorado em Engenharia Mecânica na área de Materiais) – Faculdade de Engenharia de Bauru da Universidade Estadual de Paulista. TIBURCIO, U. F. O. e GONÇALVES, M. T. T. Aplicação do método de “kienzle” em experimentos de usinagem da madeira para determinação da pressão Específica de corte. Bauru. 2000. TOPALOVA, I; TZOKEV, A. Modular Structure of Neural Networks for Classification of Wooden Surfaces with PLC Industrial Implementation. ICAS 2011: The Seventh International Conference on Autonomic and Autonomous Systems, p.13-17, 2011.
80
WANG, X.; RUAN, D.; KERRE, E. Mathmatics of Fuzzzyness. Berlin, Heidelberg : Springer-Verlag Berlin Heidelberg, 2009. WOODSON, G. E.; Koch, P. Tool forces and chip formation in orthogonal cutting of loblolly pine. Department of Agriculture-Forest Service research paper SO-52, 1970. WERNER, G; ZIMMER, K; LISSNER, K. Holzbau 1 - Grundlagen DIN 1052 (neu 2008) und Eurocode 5 / Berlin, Heidelberg : Springer-Verlag Berlin Heidelberg, 2009. WUSSING, H. 6000 Jahre mathematik. Springer 2008. ZADEH, L.A. Fuzzy Sets, Information and Control, vol. 8. p. 338-353, 1965.
81
ANEXO A
A seguir são apresentados os programas computacionais utilizado no
desenvolvimento deste trabalho.
Programa para modelamento da usinagem da madeira
Código fonte (SCILAB versão 5.1.1) // Multlayer Perceptron (backpropagatin com gradiente decrescente) // Usando as funcoes internas do Scilab // Autores: Carlos Affonso;Renato Sassi; Ricardo Ferreira // Data: 05/10/2010 clear; clc; //===================================================================== // Dados de entrada //===================================================================== dados=dados' alvos=alvos' // Número de nós da camada de saída No=1 // Dimensão dos dados de entrada [LinD,ColD] = size(dados); //==================================================================== // Embaralha vetores de entrada e saidas desejadas // Normaliza componentes para media zero e variancia unitaria mi = mean(dados,2); // Media das ao longo das colunas di = stdev(dados,2); // desvio-padrao das colunas for j = 1:ColD dados(:,j) = (dados(:,j)-mi)./di; end; Dn = dados; // Define tamanho dos conjuntos de treinamento/teste (hold out) ptrn = 0.8; // Porcentagem usada para treino ptst = 1-ptrn; // Porcentagem usada para teste J = floor(ptrn*ColD);
82
// Vetores para treinamento e saidas desejadas correspondentes P = Dn(:,1:J); T1 = alvos(:,1:J); [lP,cP] = size(P); // Tamanho da matriz de vetores de treinamento // Vetores para teste e saidas desejadas correspondentes Q = Dn(:,J+1:$); T2 = alvos(:,J+1:$); [lQ,cQ] = size(Q); // Tamanho da matriz de vetores de teste // DEFINE ARQUITETURA DA REDE //=========================== Ne = 500; // No. de epocas de treinamento Nr = 1; // No. de rodadas de treinamento/teste Nh = 8; // No. de neuronios na camada oculta eta = 0.01; // Passo de aprendizagem mom = 0.75; // Fator de momento for r=1:Nr, // Inicio do loop de rodadas de treinamento rodada=r, // Inicia matrizes de pesos WW = 0.1*(2*rand(Nh,lP+1)-1); // Pesos entrada -> camada oculta WW_old = WW; // Necessario para termo de momento MM = 0.1*(2*rand(No,Nh+1)-1); // Pesos camada oculta -> camada de saida MM_old = MM; // Necessario para termo de momento // ETAPA DE TREINAMENTO for t = 1:Ne, Epoca = t; [s,I]=sort(rand(1,cP)); //I é uma permutação randômica de 1:ColD P = P(:,I); T1 = T1(:,I); // Embaralha vetores de treinamento e saidas desejadas EQ = 0; for tt = 1:cP, // Inicia LOOP de epocas de treinamento // CAMADA OCULTA X = [-1; P(:,tt)]; // Constroi vetor de entrada com adicao da entrada x0=-1 U = WW*X; // Ativacao (net) dos neuronios da camada oculta Yi = tanh(Ui); // Saida entre [-1,1] (função tanh) // CAMADA DE SAIDA
83
Y = [-1;Yi]; // Constroi vetor de entrada DESTA CAMADA Uk = MM*Y; // Ativacao (net) dos neuronios da camada de saida Ok = tanh(Uk); // Saida entre [-1,1] (função logistica) // CALCULO DO ERRO Ek = T1(:,tt)-Ok; // erro entre a saida desejada e a saida da rede EQ = EQ + 0.5*sum(Ek^2); // soma do erro quadratico de todos os neuronios // CALCULO DOS GRADIENTES LOCAIS Dk = 0.5*(1-Ok^2); // derivada da sigmoide logistica (camada de saida) DDk = Ek.*Dk; // gradiente local (camada de saida) Di = 0.5*(1-Yi^2); // derivada da sigmoide logistica (camada oculta) DDi = Di.*(MM(:,2:$)'*DDk); // gradiente local (camada oculta) // AJUSTE DOS PESOS - CAMADA DE SAIDA MM_aux = MM; MM = MM + eta*DDk*Y' + mom*(MM-MM_old); MM_old = MM_aux; // AJUSTE DOS PESOS - CAMADA OCULTA WW_aux = WW; WW = WW + eta*DDi*X' + mom*(WW-WW_old); WW_old = WW_aux; end; // Fim do loop de uma epoca EQM(r,t) = EQ/cP; // MEDIA DO ERRO QUADRATICO P/ EPOCA end; // Fim do loop de treinamento // ETAPA DE GENERALIZACAO %%% EQ2=0; OUT2=[]; SAIDA=[]; for tt = 1:cQ, // Inicia LOOP de epocas de treinamento // CAMADA OCULTA X = [-1; Q(:,tt)]; // Constroi vetor de entrada com adicao da entrada x0=-1 Ui = WW*X; // Ativacao (net) dos neuronios da camada oculta Yi = tanh(Ui); // Saida entre [-1,1] (funcao logistica)
84
// CAMADA DE SAIDA Y = [-1;Yi]; // Constroi vetor de entrada DESTA CAMADA Uk = MM*Y; // Ativacao (net) dos neuronios da camada de saida Ok = tanh(Uk); // Saida entre [-1,1] (funcao logistica) OUT2=[OUT2 Ok]; // Armazena saida da rede Ek = T2(:,tt)-Ok; // erro entre a saida desejada e a saida da rede EQ2 = EQ2 + 0.5*sum(Ek^2); // soma do erro quadratico de todos os neuronios SAIDA=[SAIDA; norm(Ek) T2(:,tt) Ok]; end; // Fim do loop de uma epoca EQM2(r)=EQ2/cQ; // MEDIA DO ERRO QUADRATICO COM REDE TREINADA end // Fim do loop de rodadas de treinamento // CALCULA ACERTO EQM_media=mean(EQM,1); // Curva de aprendizagem media (p/ Nr realizacoes) //plot(EQM_media); // Plota curva de aprendizagem // SALVA PESOS E SAÍDA savematfile('pesos.dat','WW','-ascii'); // RODAR A REDE COM OS PESOS SINAPTICOS OUT3=[]; for tt = 1:ColD, // Inicia LOOP de epocas de treinamento // CAMADA OCULTA X = [-1; dados(:,tt)]; // Constroi vetor de entrada com adicao da entrada x0=-1 Ui = WW*X; // Ativacao (net) dos neuronios da camada oculta Yi = tanh(Ui); // Saida entre [-1,1] (função tanh) // CAMADA DE SAIDA Y = [-1;Yi]; // Constroi vetor de entrada DESTA CAMADA Uk = MM*Y; // Ativacao (net) dos neuronios da camada de saida Ok = tanh(Uk); // Saida entre [-1,1] (função logistica)
88
Código fonte (Linguagem C) /** Rede neuro-fuzzy MLP Para usinagem da madeira. autor; Carlos Affonso data: 30:11:12 */ #include <math.h> #define cabecario " Rede Neuro Fuzzy -:\n" #define linha "-------------------------\n" #define saida " Forca de corte: ks1 e 1-z \n" double inputs[2],outputs[0]; int c; void inicio(); void ler(); void Ks(); void z(); int main() { int i; // inicio(); for(i = 0; i <= 14; i++){ inputs[1]=10+i; ler(); z(); } getch(); } void inicio() { printf(cabecario); printf(linha); } void ler(){ inputs[0]=7; } void Ks() { double mainWeights[] = {-2.402025556056655, 5.569721858875051, -0.428470747120619, 1.972717221547390, 7.651607201940797, -0.538716691923882, 2.097003003510839, -16.276508031841217, -0.998499744625461, 8.514178451968391, 16.522268350621129, -0.716004832566106, -5.670050806413442, 6.563369687773903, -0.143563543445429, 10.778860171565141, 14.282980367564647, 0.693100199303483, -1.749210886903909, 0.451728500208372, -0.382923785494577, -1.369710621131877, 2.760979143735644, 5.661643982471547, -0.578328113958013, -1.862357683329365, -2.647692793521353, 0.927007384028757, 0.362123038392003, 11.340051106671121, -1.144991481081334, -3.880302253222749, -0.372753557113624, 0.283278032675920, -1.241684033586956, 0.555376666954915, -0.117918601391759, -1.084807031454131, -0.585840125684430, -0.611512570651778, 1.868719858925271, -3.606067739118016, 0.495004587799109, -0.129427778326570, 0.567077603117196, -2.172235152860301, -0.636938968292299, -1.758701583273666,
89
0.443803354392048, 1.151810930272149, 2.144209707923406, -0.832269396214271, 0.527895377559035, 0.109326540193745, -1.293061380140570, 5.692934889877712, -1.411056831070568, -0.690719697707852, -1.623869074195498, -0.271036333892711, -1.235863272541410, -1.795725349591921, 0.734543164107234, -0.242979628915045, -0.989289629898548, 5.564252086257004, 1.004681545614301, 2.409836665076666, 0.037197365837617, 0.292785045932199, 2.809612733785411, 0.131647540800878, 6.616486541573850, -1.172744757875953, -5.715367331175504, -1.756862215073335, -2.336409720380698, 3.922341152156645, 0.177956142141440, -8.050774813919254, 4.850485502688330, 0.785874612853159, -1.634341512378448, 7.736610841498105, -2.949393011889209}; double * mw = mainWeights; double hiddenLayer1outputs[8]; double hiddenLayer2outputs[6]; int c; inputs[0] = -1.0 + (inputs[0] - 1.000000000000000) / 4.500000000000000; inputs[1] = -1.0 + (inputs[1] - 10.000000000000000) / 7.000000000000000; hiddenLayer1outputs[0] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[0] += *mw++ * inputs[c]; hiddenLayer1outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[0])); hiddenLayer1outputs[1] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[1] += *mw++ * inputs[c]; hiddenLayer1outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[1])); hiddenLayer1outputs[2] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[2] += *mw++ * inputs[c]; hiddenLayer1outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[2])); hiddenLayer1outputs[3] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[3] += *mw++ * inputs[c]; hiddenLayer1outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[3])); hiddenLayer1outputs[4] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[4] += *mw++ * inputs[c]; hiddenLayer1outputs[4] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[4])); hiddenLayer1outputs[5] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[5] += *mw++ * inputs[c]; hiddenLayer1outputs[5] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[5])); hiddenLayer1outputs[6] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[6] += *mw++ * inputs[c]; hiddenLayer1outputs[6] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[6])); hiddenLayer1outputs[7] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[7] += *mw++ * inputs[c]; hiddenLayer1outputs[7] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[7])); hiddenLayer2outputs[0] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[0] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[0])); hiddenLayer2outputs[1] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[1] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[1])); hiddenLayer2outputs[2] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[2] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[2])); hiddenLayer2outputs[3] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[3] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[3])); hiddenLayer2outputs[4] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[4] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[4] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[4])); hiddenLayer2outputs[5] = *mw++; for(c = 0; c < 8; c++) hiddenLayer2outputs[5] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[5] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[5])); outputs[0] = *mw++; for(c = 0; c < 6; c++) outputs[0] += *mw++ * hiddenLayer2outputs[c]; outputs[0] = 1.0 / (1.0 + exp(-outputs[0]));
90
outputs[0] = 3.940000000000000 + (outputs[0] - 0.000000) * 8.350000000000000; printf("%.3f\n",outputs[0]); } void z() { double mainWeights[] = {-9.131632633668229, 13.375169941540147, 2.539781601464922, -2.006259528085054, 3.362885833462217, -1.945824331295555, 4.374928975976663, 8.568150245746454, 7.962038403385009, 4.346587341469116, -6.317189953581922, 2.414507390756577, 7.246363553757060, 19.735810341970023, 6.821503619093130, 7.399195191933164, 16.069257215237418, -6.269799010930660, 0.299523955266154, -0.959963169785554, 8.051374932304420, -4.247707414656442, -0.072548896642816, -2.455258969299806, -5.210448878949332, -4.498912220723041, -2.337755394107816, -2.324125425594263, -3.555034319144045, -2.740162171413497, 10.676167257907391, -5.977101552567634, -0.208461631581041, -8.902964242123252, -0.894071619265052, -0.821131814517106, 0.350629328219178, 6.977125524088897, -6.327952374108819, 1.339135886745331, -0.789993596578565, 3.465015952640013, -11.190575541948538, 4.224153747160278, -7.015246020509153, 4.364226841427365, -4.525662892508358, 9.917048593801910, -5.343717012160052, 0.443405193948139, -7.348232243610265, -0.520860818739921, 0.432468178589116, -0.075890960634660, 13.192449517707232, 0.256300759869693, -1.941129567442559, -8.975094463179261, -1.764149795526679, 2.496865035761135, -3.135061215079671, -9.525024364637933, -15.155040309524459, 7.739553111341117, 5.145692799581990, -13.323787834861125, 6.338329297054339}; double * mw = mainWeights; double hiddenLayer1outputs[6]; double hiddenLayer2outputs[6]; int c; inputs[0] = -1.0 + (inputs[0] - 1.000000000000000) / 4.500000000000000; inputs[1] = -1.0 + (inputs[1] - 10.000000000000000) / 7.000000000000000; hiddenLayer1outputs[0] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[0] += *mw++ * inputs[c]; hiddenLayer1outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[0])); hiddenLayer1outputs[1] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[1] += *mw++ * inputs[c]; hiddenLayer1outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[1])); hiddenLayer1outputs[2] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[2] += *mw++ * inputs[c]; hiddenLayer1outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[2])); hiddenLayer1outputs[3] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[3] += *mw++ * inputs[c]; hiddenLayer1outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[3])); hiddenLayer1outputs[4] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[4] += *mw++ * inputs[c]; hiddenLayer1outputs[4] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[4])); hiddenLayer1outputs[5] = *mw++; for(c = 0; c < 2; c++) hiddenLayer1outputs[5] += *mw++ * inputs[c]; hiddenLayer1outputs[5] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[5])); hiddenLayer2outputs[0] = *mw++; for(c = 0; c < 6; c++) hiddenLayer2outputs[0] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[0])); hiddenLayer2outputs[1] = *mw++; for(c = 0; c < 6; c++) hiddenLayer2outputs[1] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[1])); hiddenLayer2outputs[2] = *mw++; for(c = 0; c < 6; c++) hiddenLayer2outputs[2] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[2])); hiddenLayer2outputs[3] = *mw++; for(c = 0; c < 6; c++) hiddenLayer2outputs[3] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[3])); hiddenLayer2outputs[4] = *mw++; for(c = 0; c < 6; c++) hiddenLayer2outputs[4] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[4] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[4])); hiddenLayer2outputs[5] = *mw++;
91
for(c = 0; c < 6; c++) hiddenLayer2outputs[5] += *mw++ * hiddenLayer1outputs[c]; hiddenLayer2outputs[5] = 1.0 / (1.0 + exp(-hiddenLayer2outputs[5])); outputs[0] = *mw++; for(c = 0; c < 6; c++) outputs[0] += *mw++ * hiddenLayer2outputs[c]; outputs[0] = 1.0 / (1.0 + exp(-outputs[0])); outputs[0] = 0.640000000000000 + (outputs[0] - 0.000000) * 0.200000000000000; printf("%.3f\n",outputs[0]); }
92
Programa para classificação de imagem de crescimento
/* Name: Neural Network Wood image Treatment Author: Carlos Affonso Date: 20/10/12 comentario; */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define cabecario " REDE MLP:\n\ \nCLASSIFICACAO DE ANEIS DE MADEIRA\n" #define linha "\n---------------------------------------\n" #define classificacao "Anel de crescimento do tipo %d" #define TAM 1000 #define col 220 #define lin 220 #define range 20 #define arquivo "aneis_3.txt" float sum,maior,menor,faixa; double inputs[38],outputs[0]; int up,down,flag=0; void TratImagemRN(); void buscar(); void scann(); void classificar(); int main() { int k; buscar(); scann(); TratImagemRN(); classificar(); getche(); } void buscar() { int i,j; float z; char buf[TAM]; FILE *arq; arq = fopen(arquivo,"r"); fgets(buf,TAM,arq); sum=0;maior=0;menor=100; for(j=1;j<=lin;j++) { z = atof(strtok(buf,";"));
93
for(i=2;i<=col;i++) { z = atof(strtok(NULL,";")); if(z>maior)maior=z; if(z<menor)menor=z; sum = sum+z; } fgets(buf,TAM,arq); } } void scann() { int i,j,k,cont[range],max_up,max_down; float z; char buf[TAM]; FILE *arq; arq = fopen(arquivo,"r"); fgets(buf,TAM,arq); faixa=(maior-menor)/range; for(k=0;k<=range;k++)cont[k]=0;max_up=0;max_down=0; for(j=1;j<=lin;j++) { z = atof(strtok(buf,";")); for(i=2;i<=col;i++) { z = atof(strtok(NULL,";")); for(k=1;k<=range;k++) { if((z>=faixa*(k-1))&&(z<=faixa*k))cont[k]++; } for(k=1;k<=range/2;k++) { if(cont[k]>max_down) { max_down=cont[k]; down=k; } if(cont[range/2+k]>=max_up) { max_up=cont[range/2+k]; up=range/2+k; } } } fgets(buf,TAM,arq); } printf(" PADRAO IMAGEM: "); printf(arquivo); printf(linha); printf(" tonalidade Area(mm2) diam.(mm)\n"); for(k=1;k<=range;k++) if(cont[k]>0) if(faixa*(k-1)>0){ printf("[%.2f - %.2f] %.5d %.1f\n",faixa*(k-1)/maior,faixa*(k)/maior,\ cont[k],sqrt(2*cont[k]/3.14)); inputs[k-2]=cont[k];inputs[k+17]=sqrt(2*cont[k]/3.14); } printf(linha);
94
printf("comprimento: %d(mm) largura %d(mm) \n",lin,col); } void TratImagemRN() { double mainWeights[] = {-0.067519744324443, -0.772566039175079, 0.801991245142845, -0.347562459927984, -1.004662851364978, -0.568135539170710, 0.673003272367772, -0.621401762469890, 0.796468488476488, 0.088632093303959, 0.445184673993300, -0.848900231694861, 0.851056436004979, 0.983862968259182, 0.947577907001170, 0.966591625047389, 0.270250230398886, 0.227315473194224, 0.825878985066388, -0.157280240728494, -1.036557727052258, -0.882156965613025, 0.645979745900667, -0.296069228532666, 0.189638522524087, -0.957652846375997, -0.389805340210405, -1.023068746200007, 0.305249433035169, 0.770544897355109, 0.457638569196841, -0.721937085877098, -0.034756101794688, 0.198995053248931, 0.579933848431946, 0.450578945126667, 0.468005476421473, 0.092402015937140, -0.690479771035369, 0.442597939513660, -0.546590404223569, 0.522310759839821, 0.492792606467865, 0.955705653386320, 1.248822144971396, 1.035686636588718, -0.269777221407609, 0.514255764923457, 0.371914079404163, 0.892531845484257, -0.632900397195740, -0.986514550247905, -0.309687419029236, -0.824245698963222, 0.335389291681877, 0.829920914746281, 1.179161559560506, -0.624246598350024, 1.441250983081270, -0.819297095838786, -0.761578382483510, 0.634127275150516, -1.104737505817740, 0.098182935819970, -0.157658177151056, -0.478875466617600, 0.370649751455699, 0.503159379989562, 0.071225339877978, -0.307613631845527, -1.019473630544127, -0.536549601148988, 0.662335954675648, -0.375536254852570, 0.334493568999546, 0.070814504620856, 0.303060368648048, -0.458533256927795, -0.999510770733930, -0.539906999576623, -1.138308050234507, -0.189844704305025, 1.253156320311757, 0.022438276378125, 1.190077902341452, -0.611244059105729, -0.540020467005423, -0.600376240432181, 0.482319273172538, -0.044100331407327, 0.444471406919800, 0.442196892077029, -0.003258768796171, 0.607107673830009, 0.238492951989740, -0.329389377579399, -0.300293947442914, 0.468608384106925, -0.042866609015172, -0.108828895633745, -0.570082751565859, 0.009591496538926, -0.447235597498426, -0.624650873919045, -0.013553533329387, -0.263766518049324, 0.669880495417506, -0.893084877372829, -0.466115174455187, -0.482823961403710, -0.944937815861545, 0.404270024962703, -0.590774562503156, -0.862185977242074, 0.763590304225787, -0.715849427211170, -0.374377087257215, 0.442081265923647, 0.652168528293601, -0.357378304761332, 0.818027711470050, -0.685745869593919, -1.408857200591795, -0.719568125637395, -0.322700465848856, -0.224821708750687, 1.032057832014450, 0.762145780047232, -0.938789340252086, -0.884490184091952, -1.182783034551264, -0.672866060249811, 0.615125583712463, 0.789676053931729, -1.215203420986272, 0.829359236447843, -1.097134343880049, 1.102764771457258, -0.044751764496854, 0.440156061415070, 0.714454069136247, -0.513896529394926, 0.136213068991719, -0.186083612045229, -0.253624450869994, 0.898685758217964, -0.013319983840285, -0.495430280423697, 0.830348783540370, 0.589617668333239, -0.233670783354770, -0.138620916015409, -0.308903332158643, -0.664679428259920, 0.364630079931346, 0.454784798179646, 0.290693587417120, -1.028767371825137, 2.497955683825585, 1.548516834135147, -4.265023146459587}; double * mw = mainWeights; double hiddenLayer1outputs[4]; int c; inputs[0] = -1.0 + (inputs[0] - 8.000000000000000) / 1814.000000000000000; inputs[1] = -1.0 + (inputs[1] - 0.000000000000000) / 1642.000000000000000; inputs[2] = -1.0 + (inputs[2] - 0.000000000000000) / 921.000000000000000; inputs[3] = -1.0 + (inputs[3] - 1.000000000000000) / 626.500000000000000; inputs[4] = -1.0 + (inputs[4] - 0.000000000000000) / 879.500000000000000; inputs[5] = -1.0 + (inputs[5] - 4.000000000000000) / 966.500000000000000; inputs[6] = -1.0 + (inputs[6] - 67.000000000000000) / 991.500000000000000; inputs[7] = -1.0 + (inputs[7] - 370.000000000000000) / 1387.000000000000000; inputs[8] = -1.0 + (inputs[8] - 482.000000000000000) / 2474.500000000000000; inputs[9] = -1.0 + (inputs[9] - 610.000000000000000) / 3386.500000000000000; inputs[10] = -1.0 + (inputs[10] - 1039.000000000000000) / 1983.500000000000000; inputs[11] = -1.0 + (inputs[11] - 1110.000000000000000) / 2403.000000000000000; inputs[12] = -1.0 + (inputs[12] - 235.000000000000000) / 1980.500000000000000; inputs[13] = -1.0 + (inputs[13] - 61.000000000000000) / 1955.000000000000000; inputs[14] = -1.0 + (inputs[14] - 14.000000000000000) / 2516.000000000000000; inputs[15] = -1.0 + (inputs[15] - 2.000000000000000) / 2322.000000000000000; inputs[16] = -1.0 + (inputs[16] - 3.000000000000000) / 973.500000000000000; inputs[17] = -1.0 + (inputs[17] - 5.000000000000000) / 208.000000000000000; inputs[18] = -1.0 + (inputs[18] - 0.000000000000000) / 28.000000000000000;
95
inputs[19] = -1.0 + (inputs[19] - 2.300000000000000) / 22.900000000000002; inputs[20] = -1.0 + (inputs[20] - 0.000000000000000) / 22.850000000000001; inputs[21] = -1.0 + (inputs[21] - 0.000000000000000) / 17.149999999999999; inputs[22] = -1.0 + (inputs[22] - 0.100000000000000) / 14.100000000000000; inputs[23] = -1.0 + (inputs[23] - 0.000000000000000) / 16.750000000000000; inputs[24] = -1.0 + (inputs[24] - 1.600000000000000) / 16.750000000000000; inputs[25] = -1.0 + (inputs[25] - 6.500000000000000) / 14.800000000000001; inputs[26] = -1.0 + (inputs[26] - 15.400000000000000) / 14.650000000000002; inputs[27] = -1.0 + (inputs[27] - 17.500000000000000) / 20.649999999999999; inputs[28] = -1.0 + (inputs[28] - 19.699999999999999) / 24.449999999999996; inputs[29] = -1.0 + (inputs[29] - 25.699999999999999) / 15.400000000000000; inputs[30] = -1.0 + (inputs[30] - 26.600000000000001) / 17.399999999999999; inputs[31] = -1.0 + (inputs[31] - 12.199999999999999) / 19.750000000000000; inputs[32] = -1.0 + (inputs[32] - 6.200000000000000) / 22.049999999999997; inputs[33] = -1.0 + (inputs[33] - 3.000000000000000) / 26.850000000000001; inputs[34] = -1.0 + (inputs[34] - 1.100000000000000) / 26.649999999999999; inputs[35] = -1.0 + (inputs[35] - 1.400000000000000) / 16.900000000000002; inputs[36] = -1.0 + (inputs[36] - 1.800000000000000) / 7.299999999999999; inputs[37] = -1.0 + (inputs[37] - 0.000000000000000) / 3.000000000000000; hiddenLayer1outputs[0] = *mw++; for(c = 0; c < 38; c++) hiddenLayer1outputs[0] += *mw++ * inputs[c]; hiddenLayer1outputs[0] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[0])); hiddenLayer1outputs[1] = *mw++; for(c = 0; c < 38; c++) hiddenLayer1outputs[1] += *mw++ * inputs[c]; hiddenLayer1outputs[1] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[1])); hiddenLayer1outputs[2] = *mw++; for(c = 0; c < 38; c++) hiddenLayer1outputs[2] += *mw++ * inputs[c]; hiddenLayer1outputs[2] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[2])); hiddenLayer1outputs[3] = *mw++; for(c = 0; c < 38; c++) hiddenLayer1outputs[3] += *mw++ * inputs[c]; hiddenLayer1outputs[3] = 1.0 / (1.0 + exp(-hiddenLayer1outputs[3])); outputs[0] = *mw++; for(c = 0; c < 4; c++) outputs[0] += *mw++ * hiddenLayer1outputs[c]; outputs[0] = 1.0 / (1.0 + exp(-outputs[0])); outputs[0] = 0.000000000000000 + (outputs[0] - 0.000000) * 60.000000000000000; } void classificar() { printf(linha);printf(cabecario); printf(linha); if(outputs[0]>5)flag=1; if(outputs[0]>15)flag=2; if(outputs[0]>25)flag=3; if(outputs[0]>45)flag=5; if(outputs[0]>55)flag=6; printf(classificacao,flag);