• Nenhum resultado encontrado

Controlador Paraconsistente Utilizando Microcontrolador

N/A
N/A
Protected

Academic year: 2021

Share "Controlador Paraconsistente Utilizando Microcontrolador"

Copied!
65
0
0

Texto

(1)

PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL

RICARDO MARTINEZ VICENTINI

CONTROLADOR PARACONSISTENTE UTILIZANDO MICROCONTROLADOR

SÃO CAETANO DO SUL 2016

(2)

CONTROLADOR PARACONSISTENTE UTILIZANDO MICROCONTROLADOR

Trabalho de Conclusão de Curso apresentado a Faculdade SENAI de Tecnologia Mecatrônica como requisito parcial para obtenção do título de Especialista em Automação Industrial.

Orientador: Professor Paulo Sebastião Ladivez

SÃO CAETANO DO SUL 2016

(3)

Z33a Controlador paraconsistente utilizando microcontrolador / Ricardo Martinez Vicentini. -- São Caetano do Sul, 2016.

65 f. : il.

Inclui bibliografia.

Monografia (Especialização) – Faculdade SENAI de Tecnologia Mecatrônica.

Orientador: Paulo Sebastião Ladivez

1. Automação industrial 2. Lógica Paraconsistente 3. LPA2v 4. Linguagem C 5.Microcontrolador I. Título.

(4)
(5)

Dedico esse trabalho à minha mãe Roseli Martinez Fontes, que desde os meus primeiros anos de vida sempre me incentivou, acreditou no meu potencial e me mostrou a importância do estudo. Muito obrigado.

(6)

AGRADECIMENTOS

Ao professor e orientador Paulo Sebastião Ladivez, pelos grandes ensinamentos, paciência e por acreditar neste trabalho.

Ao mestre Vicente Quartieri Neto, que me introduziu neste mundo fantástico da eletrônica e da Automação, e que me transformou de um estagiário em um professor.

Ao mestre Cláudio Luis Magalhães Fernandes, por me guiar na vida profissional, pelos valiosos conselhos e por me apresentar a Lógica Paraconsistente. A toda minha família, em especial à minha irmã Rafaella Martinez Vicentini, que foi a responsável pelo passo inicial na minha carreira acadêmica.

A minha noiva e amiga Francielle Bezerra Augusto Pereira, por sempre estar do meu lado me apoiando, incentivando e acreditando no meu potencial.

A toda equipe da Faculdade SENAI de Tecnologia Mecatrônica, em especial aos grandes professores, que com inteligência e competência foram essenciais por mais esta conquista na minha vida.

(7)

“Um raciocínio lógico leva você de A a B. A imaginação leva você a qualquer lugar que

você quiser ”.

(8)

RESUMO

Com a propriedade de oferecer tratamentos adequados em situações contraditórias, a lógica paraconsistente vem se mostrando aplicável em diversos ramos da automação, robótica e biomedicina. Situações como indeterminação e inconsistências se tornam de difícil tratamento pela lógica clássica, onde são conhecidos apenas dois estados lógicos, o verdadeiro e o falso, o que se mostra ineficiente quando se deseja modelos de resultados esperados próximos da realidade. Porém, muitos projetistas ainda não se sentem seguros em implementar esse tipo de lógica em seus projetos, tendo em vista que se trata de um tema relativamente novo no estudo de lógicas não clássicas. O presente trabalho teve como objetivo implementar a Lógica Paraconsistente, com ênfase na LPA2v (Lógica Paraconsistente Anotada Com Anotação de 2 Valores) em um controlador, utilizando como principal componente um microcontrolador, onde foi inserido o algoritmo para-analisador programado em linguagem C. A principal contribuição desse trabalho está na consistência dos resultados obtidos, pois além do controlador atuar no processo, também constatava em tempo real o nível de certeza e de contradição nas medidas das variáveis envolvidas no processo.

(9)

ABSTRACT

With the property of adequate treatment in contradictory situations, paraconsistent logic has proven applicable in various fields of automation, robotics and biomedicine. Situations like vagueness and inconsistencies become difficult to treat for classical logic, which are known only two logical states, the true and the false, which proves inefficient when you want results expected models close to reality. However, many designers still do not feel safe to implement this kind of logic in their designs, given that it is a relatively new topic in the study of non-classical logic. This study aimed to implement Paraconsistent Logic, emphasizing LPA2v (Paraconsistent Annotated Logic With 2 Securities Note) on a controller using a microcontroller as the main component, where the algorithm para-analyzer was inserted programmed in language C. The main contribution of this work is the consistency of the results, because besides the controller work in the process, also noted in real time the level of certainty and contradiction in the measures of the variables involved in the process.

(10)

LISTA DE ILUSTRAÇÕES

Figura 1 – Representação da Lógica Paraconsistente Anotada no Quadrado

Unitário do Plano Cartesiano. ... 17

Figura 2 – Representação da Análise Paraconsistente... .... 18

Figura 3 – Eixo dos graus de certeza e de contradição ... 19

Figura 4 – Reticulado Delimitado com 12 Estados Lógico Resultantes ... 20

Figura 5 – Robô Emmy ... 23

Figura 6 – Bloco Funcional BF_PARACON ... 24

Figura 7 – Pinagem do Microcontrolador PIC18F452 ... 25

Figura 8 – Arquitetura interna do microcotrolador PIC18F452... ... 26

Figura 9 – Placa Eletrônica CLP FLEXIS II... ... 29

Figura 10 – Módulo Display LCD... ... 30

Figura 11 – Protótipo construído... ... 31

Figura 12 – Placa eletrônica criada para teste de variação de tensão... ... 34

Figura 13 – Valores teóricos obtidos no primeiro teste ... 35

Figura 14 – Valores obtidos no primeiro teste ... ... 35

Figura 15 – Valores obtidos no segundo teste... ... 36

Figura 16 – Valores obtidos no terceiro teste... ... 36

Figura 17 – Valores obtidos no quarto teste ... ... 37

Figura 18 – Interpolação dos graus de certeza e de contradição no interior do reticulado para os testes realizados... ... 37

Figura 19 – Sistema de Controle de Temperatura... ... 39

Figura 20 – Sensor de Temperatura LM35... ... 40

Figura 21 – Modelo de ferro de solda utilizado ... ... 40

Figura 22 – Reticulado Associado da LPA2v com 12 regiões delimitadas modificado... ... 42

Figura 23 – Sistema de Controle de Temperatura com o Controlador Paraconsistente... ... 43

Figura 24 – Comportamento do Controlador Paraconsistente... ... 44

Figura 25 – Interpolação dos valores dos graus de crença e descrença no interior do reticulado durante 230 segundos de funcionamento... ... 45

(11)

LISTA DE TABELAS

Tabela 1 – Valores obtidos durante o teste de controle de temperatura do

(12)

LISTA DE ABREVIATURAS E SIGLAS

BF_PARACON Bloco Fucional BF_PARACON CLP Controlador Lógico Programável CPU Central Processing Unit

IHM Interface Homem-Máquina

LPA2v Lógica Paraconsistente Anotada com Anotação de 2 Valores QUPC Quadrado Unitário do Plano Cartesiano

(13)

LISTA DE SÍMBOLOS

µ1 Grau de crença ou evidência favorável

µ2 Grau de descrença ou evidência desfavorável T Inconsistente

Indeterminado Gct Grau de contradição Gc Grau de certeza

VSCC Valor superior de controle da contradição

VICC Valor inferior de controle da certeza

VSCCT Valor superior de controle da contradição

VICCT Valor inferior de controle da contradição

┴ → F Indeterminado tendendo a falso ┴ → V Indeterminado tendendo a verdadeiro T → F Inconsistente tendendo a falso

T → V Inconsistente tendendo a verdadeiro

Qv → T Quase verdadeiro tendendo a inconsistente Qf → T Quase falso tendendo a inconsistente Qf → ┴ Quase falso tendendo a indeterminado Qv → ┴ Quase verdadeiro tendendo a indeterminado

(14)

SUMÁRIO

1 INTRODUÇÃO ... 14

1.1 Objetivo geral ... 15

1.2 Objetivos específicos ... 15

2 LÓGICA PARACONSISTENTE ... 16

2.1 Lógica Paraconsistente Anotada ... 16

2.2 Lógica Paraconsistente Anotada com Anotação de 2 valores ... 18

2.2.1 Grau de Contradição ... 18

2.2.2 Grau de Certeza ... 19

2.3 O Reticulado da Lógica Paraconsistente Anotada com Regiões Delimitadas 20 2.4 Algoritmo Para-Analisador ... 21

2.5 Aplicações da Lógica Paraconsistente ... 23

3 MICROCONTROLADOR ... 25

3.1 Arquitetura interna do Microcontrolador PIC18F452 ... 26

4 DESENVOLVIMENTO DO CONTROLADOR PARACONSISTENTE ... 28

4.1 Requisitos ... 28

4.2 Elementos do Controlador Paraconsistente ... 28

4.2.1 CPU ... 28

4.2.2 Interface Homem - Máquina ... 30

4.3 Implementação ... 31

4.4 Descrição do Software ... 31

5 TESTES E ANÁLISE DE FUNCIONAMENTO ... 33

5.1 Considerações Iniciais... 33

5.2 Verificação da Funcionalidade do Algoritmo Para-Analisador ... 33

5.3 Conclusão sobre os Testes e Análise de Funcionamento ... 38

6 DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE DE TEMPERATURA UTILIANDO O CONTROLADOR PARACONSISTENTE ... 39

6.1 Elemento Sensor ... 39

6.2 Elemento Final de Controle ... 40

6.3 Metodologia ... 40

6.4 Funcionamento do Sistema de Controle de Temperatura ... 42

6.5 Resultados Obtidos ... 43

(15)

7 CONCLUSÃO ... 46

REFERÊNCIAS ... 47

APÊNDICE A – Programação do Controlador Paraconsistente Utilizada Para Teste ... 49

APÊNDICE B – Programação do Controlador Paraconsistente Utilizada Para Controle de Temperatura ... 54

APÊNDICE C – Programação do MATLAB ... 60

APÊNDICE D – Alteração na Placa Eletrônica Utilizada nos Testes...62

(16)

1 INTRODUÇÃO

Seguindo a tendência tecnológica, os controladores aplicados em automação e sistemas eletrônicos estão cada vez mais rápidos e eficientes, sendo possível a implementação de algoritmos cada vez mais complexos. Porém, a grande maioria dos sistemas especialistas ainda funcionam com base na lógica clássica, onde são descritos apenas dois estados lógicos, e por esta razão em situações onde se deseja obter resultados próximos aos reais, esse tipo de lógica não se aplica. Sendo assim, é necessário investir em estudos de lógica não clássicas em busca de um tratamento mais adequado para este tipo de situação. Um tipo de lógica que vem se mostrando como uma potencial solução para este tipo problema é a lógica paraconsistente. Esta, além de possuir mais estados lógicos quando comparada às lógicas clássicas, possui como principal característica a capacidade de tratar informações contraditórias, muito comum na descrição do mundo real e em controladores industriais.

A Lógica Paraconsistente é uma Lógica Não-Clássica que revoga o princípio da Não Contradição e admite o tratamento de sinais contraditórios na sua estrutura teórica. Desde a sua recente criação as lógicas paraconsistentes têm sido utilizadas em uma ampla variedade de domínios onde se permite um tratamento lógico da crença, níveis de incerteza e de inconsistências (DA SILVA FILHO, 2010, p. 20).

Com a evolução da tecnologia empregada na construção de dispositivos eletrônicos, surgiram os primeiros computadores, e “os principais circuitos responsáveis pelo processamento de instruções e dados foram denominados de CPU (Central Processing Unit – Unidade Central de Processamento)” (PAIXÃO, JUNIOR, 2005, p.20). Quando a CPU é implementada numa única pastilha de silício, recebe o nome de Microprocessador. Um microprocessador dedicado, integrado a outros periféricos como memórias, pinos de entrada e saída e circuitos de clock, em um único invólucro, recebe o nome de Microcontrolador. Para SOUZA (2000, p.3), um microcontrolador é definido com “um pequeno componente eletrônico, dotado de uma inteligência programável, utilizado no controle de processos lógicos. ”

(17)

1.1 Objetivo Geral

O objetivo geral do trabalho é a implementação da lógica paraconsistente anotada com anotação de 2 valores (LPA2v) em um microcontrolador, programado em linguagem C.

1.2 Objetivos Específicos

Os objetivos específicos são:

a) Estabelecer os requisitos para implementar o algoritmo para-analisador em microcontroladores;

b) Verificar o funcionamento da lógica paraconsistente anotada com anotação de 2 valores (LPA2v) implementada em microcontroladores;

c) Analisar o comportamento do controlador desenvolvido com base na lógica paraconsistente em uma aplicação prática, através de um processo de controle de temperatura, visando determinar a consistência dos resultados obtidos.

(18)

2 LÓGICA PARACONSISTENTE

Os sistemas de Controle das áreas de Automação e Robótica e os Sistemas Especialistas utilizados em Inteligência Artificial funcionam em geral com base na Lógica Convencional ou Booleana, onde a descrição do mundo é considerada por apenas dois estados o que às vezes são inadequados para retratar algumas situações do mundo real (DA SILVA FILHO, 1999, p.1). Esses estados são o Verdadeiro e o Falso. Associando estes níveis com sinais elétricos, pode ser considerado como verdadeiro uma lâmpada acesa (1), e o falso como uma lâmpada apagada (0).

Frente a esse cenário, cada vez mais pesquisadores investem no estudo das lógicas não clássicas, buscando um melhor tratamento para situações encontradas no mundo real. “De maneira geral, pode-se considerar uma lógica não clássica como sendo toda aquela que, de alguma forma, apresentam fundamentos que possam contrariar ou ignorar algum princípio da lógica clássica” (FERNANDES, 2012, p.17). Entre outras, são consideradas lógicas não clássicas a lógica modal, lógica linear, lógica institucionista, lógica fuzzy e a lógica paraconsistente. Esta última, possui como principal característica a propriedade de tratar inconsistências de forma não trivial.

Para Abe (1992), a Lógica Paraconsistente é denominada conforme a seguir: É dito que uma teoria é consistente quando entre os seus teoremas não houver contradição, em caso contrário ela é denominada inconsistente. Uma teoria é denominada como trivial se todas as sentenças (ou fórmulas) de sua linguagem forem teoremas; se o contrário ocorrer ela é classificada como sendo não-trivial. Uma lógica é denominada Paraconsistente se puder tratar de inconsistências e de forma não trivial.

A lógica paraconsistente se aplica onde a lógica clássica se mostra de difícil tratamento, onde se faz necessário conhecer mais estados lógicos além do verdadeiro e do falso.

2.1 Lógica Paraconsistente Anotada

Para aplicação em sistemas de tomadas de decisões, a lógica paraconsistente vem acompanhada de valores. Estes valores, denominados de

(19)

proposições, representam os graus de crença ou evidência favorável (µ1) e de descrença ou evidência desfavorável (µ2).

O estudo da lógica paraconsistente anotada pode ser representada em um Quadrado Unitário do Plano Cartesiano – QUPC (figura 1), onde os valores dos graus de crença e de descrença são representados respectivamente nos eixos x e y. Na representação a seguir, os graus de crença e descrença variam no intervalo fechado entre 0 (mínimo) e 1 (máximo).

Figura 1 - Representação da Lógica Paraconsistente Anotada no Quadrado Unitário do Plano Cartesiano – QUPC.

Fonte: Silva Filho (1999, p. 29)

Interpolando o valor máximo do grau de crença com o valor mínimo do grau de descrença encontra-se o ponto D no reticulado, que representa o estado lógico Verdadeiro. Seguindo o mesmo princípio, a interpolação do valor mínimo do grau de crença e do valor máximo do grau de descrença encontra-se o ponto B no reticulado, que representa o estado lógico Falso. Quando os valores do grau de crença e do grau de descrença forem os mínimos, como no ponto A, o estado lógico resultante no reticulado é o Indeterminado. Quando os valores encontrados no reticulado representarem a intersecção dos pontos com os valores máximos do grau de crença e do grau de descrença, o estado lógico resultante é o Inconsistente ou Paracompleto.

(20)

2.2 Lógica Paraconsistente Anotada com Anotação De 2 Valores LPA2v

Na Lógica Paraconsistente Anotado com Anotação de 2 Valores, os graus de crença ou evidência favorável e de descrença ou evidência desfavorável são representados com anotações, ou seja, valores. Em sistemas de automação, por exemplo, estes valores são representados por sinais elétricos provenientes de sensores, e são utilizados como entradas através das variáveis µ1 e µ2. Os estados lógicos no interior do reticulado representam as saídas na análise. A figura abaixo representa, em blocos, a análise paraconsistente.

Figura 2 - Representação da Análise Paraconsistente

Fonte: Silva Filho, Abe (2001, p. 35)

2.2.1 Grau de Contradição

“O Grau de Contradição (Gct) é definido como sendo o valor que representa a interpolação entre os graus de evidência favorável e de evidência desfavorável no quadrado unitário do plano cartesiano, representados pelos pontos B e D, onde B = (0,1) – Falso e D = (1,0) – Verdadeiro” (FERNANDES, 2012, p. 22). O valor do grau de contradição (Gct) encontra-se no intervalo entre [-1 e 1], e é calculado pela equação 1:

Gct = (µ1+µ2)-1 (1)

Onde: 0 ≤ µ1 ≤ 1 0 ≤ µ2 ≤ 1

(21)

2.2.2 Grau de Certeza

“O Grau de Certeza (Gc) é definido como sendo o valor que representa a interpolação entre os graus de evidência favorável (crença) e de evidência desfavorável (descrença) no quadrado unitário do plano cartesiano, representados pelos pontos A e C, onde, A = (0,0) - Indeterminado ao ponto C = (1,1) Inconsistente” (FERNANDES, 2012, p. 22). Os valores dos Graus de Certeza (Gc) encontram-se no intervalo entre [-1 e 1], e é calculado pela equação 2:

Gc = µ1-µ2 (2)

Onde: 0 ≤ µ1 ≤ 1 0 ≤ µ2 ≤ 1

A figura 3 abaixo ilustra a interpolação dos pontos dos valores extremos dos graus de certeza de contradição.

Figura 3 - Eixo dos graus de certeza e de contradição

Fonte: Silva Filho, Abe (2001, p. 3)

Utilizando o Quadrado Unitário do Plano Cartesiano e os valores dos graus de Crença e de Descrença, é possível obter os valores dos Graus de Certeza (Gc) e de

(22)

Contradição (Gct), e assim interpolar diferentes pontos no interior do reticulado, representando diferentes estados lógicos resultantes.

2.3 O Reticulado da Lógica Paraconsistente Anotada com Regiões Delimitadas

Para se obter os diferentes estados lógicos no interior do reticulado, utilizam-se valores para delimitá-los, que são: Valor Superior de Controle da Certeza – Vscc e o Valor Inferior de Controle da Certeza – Vicc, que representam o eixo que vai considerar se a proposição analisada é totalmente verdadeira ou totalmente falsa, e o Valor Superior de Controle da Contradição – Vscct junto com o Valor Inferior de Controle da Contradição – Vicct que representam o eixo que vai considerar se a proposição é totalmente inconsistente ou totalmente indeterminada. Com os valores superior e inferior de controle da contradição e da certeza, é possível repartir o reticulado em 12 partes, obtendo assim 12 diferentes estados lógicos resultantes, conforme ilustra a figura 4.

Figura 4 - Reticulado Delimitado com 12 Estados Lógicos Resultantes

(23)

Como pode ser visto, as 4 regiões nos extremos do reticulado são conhecidas como os estados Lógicos Extremos, e são eles: Verdadeiro, Falso, Inconsistente e Indeterminado.

No interior do reticulado são conhecidos os estados Lógicos Não-Extremos, são eles:

Indeterminado tendendo a Falso Indeterminado tendendo a Verdadeiro Inconsistente tendendo a Falso

Inconsistente tendendo a Verdadeiro

Quase - verdadeiro tendendo a Inconsistente Quase – falso tendendo a Inconsistente Quase – falso tendendo a Indeterminado Quase – verdadeiro tendendo a Indeterminado

2.4 Algoritmo Para-Analisador

Com estas considerações, pode-se desenvolver o algoritmo para-analisador conforme segue abaixo:

*/Definições dos valores*/

Vscc = C1 */Definição do valor superior de controle de certeza*/ Vicc = C2 */Definição do valor inferior de controle de certeza*/ Vscct = C3 */Definição do valor superior de controle de contradição*/ Vicct = C4 */Definição do valor inferior de controle de contradição*/

*/Variáveis de Entrada

µ1 */Grau de crença ou evidência favorável

µ2 */Grau de descrença ou evidência desfavorável

*/Variáveis de Saída Saída discreta = S1 Saída analógica = S2a

(24)

Saída analógica = S2b

*/Expressões matemáticas*/ Sendo: 0 ≤ µ1 ≤ 1 e 0 ≤ µ2 ≤ 1

Gct = µ1+µ2-1 Gc = µ1-µ2

*/Determinação dos estados extremos*/ Se Gc ≥ C1 então S1 = V Se Gc ≤ C2 então S1 = F Se Gct ≥ C3 então S1 = T Se Gct ≤ C4 então S1 = ┴

*/Determinação dos estados lógicos não-extremos*/ Para 0 ≤ Gc < C1 e 0 ≤ Gct < C3 Se Gc ≥ Gct então S1 = Senão S1 = Para 0 ≤ Gc < C1 e C4 < Gct ≤ 0 Se Gc ≥ |Gct| então S1 = Senão S1 = Para C2 < Gc ≤ 0 e C4 < Gct ≤ 0 Se |Gc| ≥ |Gct| então S1 = Senão S1 = Para C2 < Gc ≤ 0 e 0 ≤ Gct < C3 Se |Gc| ≥ Gct então S1 = Senão S1 = Gct = S2a Gc = S2b */FIM*/

(25)

2.5 Aplicações da Lógica Paraconsistente

Diversos trabalhos têm sido desenvolvidos utilizando a lógica paraconsistente dentre eles é possível destacar os trabalhos de Da Silva Filho (1999), Fernandes (2012), e Lopes (2009).

Em Da Silva Filho (1999) foi desenvolvido o robô Emmy (figura 5), o primeiro robô que funcionava com um controlador baseado no algoritmo para-analisador. Neste projeto, sensores ultrassônicos eram utilizados com a função de informar ao controlador a presença de obstáculos, permitindo o desvio do robô.

Figura 5 - Robô Emmy

Fonte: Silva Filho [S.d.]

No trabalho de Lopes (2009), a lógica paraconsistente foi utilizada para auxílio do diagnóstico da doença de Alzheimer e em Fernandes (2012), a lógica paraconsistente foi implementada e um controlador programável, através da criação do bloco funcional BF_PARACON (figura 6), seguindo as diretrizes da norma IEC61131.

(26)

Figura 6 - Bloco funcional BF_PARACON

(27)

3 MICROCONTROLADOR

Características como baixo consumo de energia, baixo custo e facilidade de programação e implementação, tornam um microcontrolador uma versátil opção para o desenvolvimento de projetos embarcados e de sistemas de controle.

“Os microcontroladores (uC ou MCU) são pequenos dispositivos dotados de inteligência, basicamente constituídos de CPU (Central Processing Unit em inglês ou Unidade Central de Processamento em Português), memória (dados e programas) e periféricos (portas E/S, I2C, SPI, USART, etc)” (MIYADAIRA, 2013, p.23). Trata-se, portanto, de um computador num chip. Diversas são as famílias de microcontroladores existentes no mercado, das quais é possível destacar a família 8051 (ATMEL), ARM (NXP), 56F (Freescale) e a família PIC, da Microchip.

Devido à popularidade, o microcontrolador escolhido para este trabalho foi o PIC18F452, do fabricante Microchip, cujas principais características são:

 Memória de Programa tipo FLASH de 32KB;

 Memória de dados volátil tipo RAM de 1536Bytes;

 Memória de dados não volátil tipo EEPROM de 256 Bytes;

4 Timers;

8 Canais de Conversor Analógico Digital de 10 bits de resolução;

 Comunicação UART, USART, SPI, I2C;

2 Módulos de Captura, Comparação e PWM (Pulse Width Modulation – Modulação por Largura de Pulso)

A figura 7 abaixo ilustra a pinagem do microcontrolador PIC18F452.

Figura 7 - Pinagem do Microcontrolador PIC18F452

(28)

3.1 Arquitetura Interna do Microcontrolador PIC18F452

A figura abaixo ilustra a arquitetura interna do microcontrolador PIC18F452.

Figura 8 - Arquitetura interna do microcontrolador PIC18F452

Fonte: Microchip (2006)

No campo destacado 1, é onde fica a memória de programa. Neste lugar é onde o programa feito pelo usuário é armazenado. Por ser uma memória do tipo FLASH, os dados continuam armazenados mesmo quando o componente é desenergizado.

(29)

No campo 2, se encontra a memória de dados. Nesta memória são alocadas as variáveis que serão utilizadas durante a execução do programa. Esta memória é do tipo RAM.

No campo 3 são destacados os PORT’s do microcontrolador. Estas são as vias de comunicação do componente com o mundo exterior, e são utilizados para leitura e envio de sinais elétricos.

Os elementos constituintes no campo 4 são os periféricos do microcontrolador, ou seja, funções agregadas a estes componentes e que eliminam a necessidade de utilizar componentes externos ao sistema.

(30)

4 DESENVOLVIMENTO DO CONTROLADOR PARACONSISTENTE

Neste capítulo, são detalhadas as etapas de desenvolvimento do sistema, bem como a descrição dos elementos que o constituem. Visando facilitar a implementação, optou-se por utilizar componentes de baixo custo e fácil aquisição no mercado.

4.1 Requisitos

Para que um microcontrolador possa estar apto a servir de CPU para o controlador paraconsistente, são necessários 2 requisitos mínimos:

 2 entradas analógicas (graus de crença e descrença).

 6 saídas digitais (para utilização da IHM – display LCD).

Além dos requisitos mínimos, é aconselhável:

Ao menos 1 saída analógica ou PWM para acionamento ou controle de cargas.

 Permitir programação em Linguagem C.

4.2 Elementos do Controlador Paraconsistente

A seguir, são descritos os elementos necessários para a construção do Controlador Paraconsistente.

4.2.1 CPU

Para o sistema de controle desenvolvido, foi utilizada a placa eletrônica modelo CLP FLEXIS II, do fabricante Smart Radio (figura 9).

(31)

Figura 9 - Placa eletrônica CLP FLEXIS II

Fonte: NCtec (2016)

Esta placa possui como recursos:

02 Entradas Analógicas com resolução de 10 bits e configuráveis: 0-5 Volts, 4-20mA ou 0-10Volts;

 06 Entradas Digitais optoacopladas;

 06 Saídas por Relé;

 Programável através de Ladder, C, Assembly, Basic;

 Conexão para LCD Serial controlável também através de Ladder;

 Interface Serial RS232 conectores Serial padrão DCE tipo DB9 fêmea;

IHM: Buzzer, 01 LED de Status e 3 Teclas + 01 tecla Reset;

01 Saída PWM acoplada ao CCP2 do PIC Conector p/ ICSP/ Debuger / Programador Externo;

 Conector de expansão padrão UEXT.

E possui como características elétricas:

 Tensão de alimentação de 12Volts +- 15%;

 Consumo 300mA máx;

 Entradas digitais 3,8 à 25VDC;

Resolução das Entradas Analógicas de 10 bits;

(32)

 Serial padrão RS232 conector DB9 fêmea (DCE).

 Temperatura de operação 0 à 60°C.

O esquema eletrônico completo dessa placa pode ser visualizado no Anexo A deste trabalho.

4.2.2 Interface Homem – Máquina

Informações como valores do grau de crença e grau de descrença podem ser visualizados em tempo real através da interface homem máquina, constituída do módulo display da empresa CONTROL CHIP ENGENHARIA (figura 10). Este módulo possui um display LCD alfanumérico de 16 colunas e duas linhas. A conexão do módulo à CPU é realizada por meio do conector de expansão UEXT.

Figura 10 - Módulo display LCD

Fonte: Control Chip Engenharia [S.d.]

Para servir de estrutura para o protótipo do controlador, foi utilizada uma superfície em acrílico, conforme figura 11.

(33)

Figura 11 - Protótipo construído

Fonte: Dados do autor

4.3 Implementação

A entrada analógica AN0, localizada no pino 2 do microcontrolador será tratada como grau de crença ou evidência favorável μ1, e a entrada analógica AN1 localizada no pino 3 do microcontrolador será o grau de descrença ou evidência desfavorável μ2. Os valores analógicos captados pelas entradas analógicas serão convertidos em um valor inteiro de 0 a 1023, devido a resolução do módulo conversor analógico digital do microcontrolador PIC18F452. A tensão de referência utilizada é de 5V. O valor 1023 é proveniente da resolução do conversor analógico digital do microcontrolador, pois 210 = 1024 (0 a 1023).

4.4 Descrição do Software

O algoritmo para-analisador foi implementado em linguagem C através da IDE MPLABX, utilizando o compilador C18, ambos da Microchip. Os valores obtidos através dos canais AN0 e AN1 são tratados como entradas pela análise

(34)

paraconsistente, e através desta análise, o estado lógico resultante pode ser visualizado na IHM, em tempo real. A programação completa do sistema está disponível no anexo B deste trabalho.

(35)

5. TESTES E ANÁLISE DE FUNCIONAMENTO

Neste capitulo são destacadas as etapas dos testes realizados, para verificar o funcionamento do Controlador Paraconsistente.

5.1 Considerações Iniciais

Para auxílio na verificação do funcionamento do controlador, foram utilizados os programas MATLAB, para realizar os cálculos envolvidos na análise paraconsistente a fim de obter os valores corretos para determinação do estado lógico resultante, e o GEOGEBRA, para criação com precisão do reticulado associado da LPA2v com 12 regiões delimitadas, sendo possível determinar a localização exata da interpolação dos graus de certeza e contradição no interior do reticulado.

5.2 Verificação da Funcionalidade do Algoritmo Para-Analisador

O intuito desse teste foi verificar se o algoritmo implementado é capaz de receber níveis de tensões com sendo os graus de crença e de descrença, convertê-los para valores digitais, realizar os cálcuconvertê-los necessários e mostrar na IHM o estado lógico resultante. Para isto, uma placa eletrônica foi projetada para enviar ao controlador os valores de tensões variáveis entre 0 e 5V, utilizando potenciômetros (figura 12).

(36)

Figura 12 - Placa eletrônica criada para teste de variação de tensão

Fonte: Dados do autor

A placa é alimentada com 5V provenientes da placa eletrônica CLP FLEXIS II. Os capacitores são utilizados para estabilizar a tensão e prevenir contra ruídos; o led (Light Emitting Diode – Diodo Emissor de Luz) é responsável por indicar visualmente a presença de tensão na placa eletrônica; os potenciômetros de ajuste definem o valor máximo a ser regulados pelos potenciômetros Pot 1 e Pot 2. As tensões reguladas são enviadas para as entradas AN0 e AN1 do microcontrolador, que representam respectivamente os valores do grau de crença ou evidência favorável µ1, e o grau de descrença ou evidência desfavorável µ2.

A equação 3 de conversão do valor de tensão analógica em valor digital é a descrita a seguir:

(3)

Onde:

Vd = valor digital

Van. = tensão analógica (em volt)

Primeiramente, é ajustado aleatoriamente um valor de tensão de 2,15V em AN0 (µ1), e 2,78V em AN1 (µ2). Transformando esses valores analógicos em

(37)

valores digitais utilizando a equação 13, e tratando-os no algoritmo para-analisador, obtêm-se os seguintes resultados:

Figura 13 - Valores teóricos obtidos no primeiro teste

Fonte: Dados do autor

Para comprovar na prática os valores calculados, foi inserido um multímetro para realizar a medição na entrada analógica AN0. Os valores do grau de certeza gc, grau de contradição gct e o estado lógico resultante podem ser visualizados simultaneamente na IHM, conforme figura abaixo:

Figura 14 - Valores obtidos no primeiro teste

(38)

Este teste foi realizado por mais 3 vezes, com diferentes valores de tensões, obtendo os seguintes resultados:

Figura 15 - Valores obtidos no segundo teste

Fonte: Dados do autor

Figura 16 - Valores obtidos no terceiro teste

(39)

Figura 17 - Valores obtidos no quarto teste

Fonte: Dados do autor

A figura abaixo ilustra as interpolações dos graus de certeza e contradição no interior do reticulado, para cada um dos testes realizados.

Figura 18 - Interpolação dos graus de certeza e contradição no interior do reticulado para os testes realizados.

(40)

5.3 Conclusão sobre Testes e Análise de Funcionamento

Foi comprovado que o algoritmo Para-Analisador inserido no controlador foi capaz de tratar de forma satisfatória os valores analógicos de tensão como sendo os valores dos graus de crença e de descrença, pois foi capaz de realizar os cálculos necessários para obtenção dos valores dos graus de certeza, contradição, módulo_gc e módulo_gct, e assim determinar o estado lógico resultante. Nota-se também que a precisão dos valores obtidos na prática com os valores teóricos foram bem próximos.

(41)

6 DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE DE TEMPERATURA UTILIZANDO O CONTROLADOR PARACONSISTENTE

Como mencionado anteriormente, a principal propriedade da lógica paraconsistente é tratar de inconsistências, e de forma não trivial. Para aplicar este conceito na prática, foi desenvolvido um sistema para controle de temperatura, onde o Controlador Paraconsistente teve a função de controlar a temperatura de um ferro de solda, e simultaneamente a este controle verificar o nível do grau de certeza e de contradição na temperatura medida. A figura abaixo ilustra, em blocos, o funcionamento do sistema desenvolvido:

Figura 19 - Sistema de Controle de Temperatura

Fonte Dados do autor

6.1 Elemento Sensor

As variáveis que serão tratadas como sendo os valores dos graus de crença µ1 e descrença µ2 serão provenientes de 2 sensores de temperatura LM35 (figura 20).

(42)

Este sensor possui 3 terminais, sendo dois de alimentação (4V à 20V) e um de saída de tensão proporcional à temperatura medida. Para cada grau Celsius medido, a tensão de saída aumenta +10mV.

Figura 20 - Sensor de Temperatura LM35

Fonte: Vida de Silício [S.d.]

6.2 Elemento Final de Controle

A fonte de calor proveniente do sistema é através de um ferro de solda (figura 21). Foi utilizado para teste um ferro de solda de 220V x 42W.

Figura 21 - Modelo do ferro de solda utilizado

Fonte: Hikari (2015)

6.3 Metodologia

A função do controlador é manter a temperatura do ferro de solda em 50°C, ou seja, esse foi o valor definido como Set Point do sistema, e o valor máximo escolhido de temperatura a ser tratado pelo reticulado associado da LPA2v como 12 regiões delimitadas foi de 60ºC. As variáveis de processo são provenientes dos sensores de temperatura LM35.

(43)

Uma temperatura de 60ºC resulta em uma tensão de saída de 600mV do sensor, e a temperatura do Set Point resulta numa tensão de saída do sensor de 500mV. Convertendo o valor de 600mV em um valor digital, utilizando a equação 3, obtêm-se o valor de 122,76. Conforme mencionado anteriormente, a resolução do módulo conversor analógico digital do microcontrolador é de 10 bits, o que resulta em valores convertidos compreendidos em um intervalo de 0 à 1023. A tensão utilizada como referência do módulo conversor analógico digital interno do microcontrolador foi de 5V. Sendo assim, é necessário realizar uma equivalência entre os valores, de modo que a máxima tensão resultante da temperatura admissível no sistema, que é de 60°C (122,76 em valor digital) seja equivalente ao valor máximo de conversão analógica digital (1023). Dividindo o valor 1023 pelo valor 122,76 foi encontrado o valor 8,33. Este, portanto, é o fator de multiplicação a ser utilizado para padronização dos valores na análise paraconsistente.

Para converter os valores medidos em valores a serem interpretados pela lógica paraconsistente, são utilizadas as equações 4 e 5, conforme segue abaixo:

µ1 = AN0 x 8.33 (4) µ2 = 1023 – (AN1 x 8.33) (5)

Onde:

AN0 = Canal 0 do conversor analógico digital AN1 = Canal 1 do conversor analógico digital

Notar que na equação 5, é necessário inverter o valor medido para se obter o valor do grau de descrença.

Quando a temperatura do ferro de solda alcançar o valor do Set Point (50ºC), as entradas AN0 e AN1 do microcontrolador, respectivamente as entradas que representam os graus de crença e descrença, estarão recebendo uma tensão no valor de 500mV, que convertidos através da equação 3 resulta no valor 102,3 e multiplicado pelo fator 8,33 obtêm-se o valor 852,16. Utilizando as equações 4 e 5, obtêm-se o valor de 852,16 para µ1 (grau de crença) e o valor de 170,4 para µ2 (grau de descrença), e utilizando as equações 1 e 2, obtêm-se o valor 0 para a variável Gct (grau de contradição) e o valor 681 para a variável Gc (grau de certeza).

(44)

Com estas informações, é possível traçar o reticulado associado da LPA2v com 12 regiões delimitadas.

Valor máximo dos graus de crença µ1 e descrença µ2 = 1023 Vscc = 681

Vicc = -681 Vscct = 681 Vicct = -681

Figura 22 - Reticulado Associado da LPA2v com 12 regiões delimitadas modificado

(45)

6.4 Funcionamento do Sistema de Controle de Temperatura.

O objetivo do controlador foi manter a temperatura do ferro de solda em 50ºC, resultando no estado lógico Verdadeiro, e paralelo a isso, mostrar os graus de certeza e de contradição durante o controle. O ideal do controlador é quando a temperatura alcançar o valor de 50ºC, o ferro de solda deverá desligar, o valor do grau de certeza deve ser 681 e o valor do grau de contradição deverá ser 0. A instalação do sistema de controle de temperatura pode ser visualizada na figura 23 a seguir:

Figura 23 - Sistema de Controle de Temperatura com o Controlador Paraconsistente

Fonte: Dados do autor

6.5 Resultados Obtidos

Ao iniciar o sistema, a temperatura do ferro de solda era de 26ºC. Depois de 130 segundos do início do aquecimento, a temperatura desejada (Set Point) foi alcançada, indicando um valor de grau de certeza de 684 e um grau de contradição de 7. A resistência permaneceu desliga por 80 segundos, e voltou a ligar quando a temperatura detectada no sensor 1 foi 50ºC e no sensor 2 foi 48ºC. A tabela 1 ilustra o comportamento do controlador durante os primeiros 230 segundos de teste.

(46)

Tabela 1 - Valores obtidos durante o teste de controle de temperatura do controlador paraconsistente.

Fonte: Dados do autor

Figura 24 - Comportamento do Controlador Paraconsistente

Fonte: Dados do autor

Com os valores obtidos, foi possível traçar a interpolação dos valores dos graus de certeza e de contradição no interior do reticulado, conforme figura abaixo.

(47)

Figura 25 - Interpolação dos valores dos graus de crença e descrença no interior do reticulado durante 230 segundos de funcionamento.

Fonte: Dados do autor

6.6 Conclusão sobre o Controlador Paraconsistente

Nota-se que o ponto em destaque vermelho marca o início do teste, e este ponto desloca-se em direção ao estado lógico Verdadeiro, que representa o valor do Set Point. Nota-se também que durante todo o processo, os pontos que representam os graus de certeza e de contradição se mantiveram bem próximos da linha certeza, indicando alto grau de certeza nas medidas de temperatura.

(48)

3 CONCLUSÃO

O objetivo desse trabalho foi implementar a Lógica Paraconsistente em microcontroladores, através do Algoritmo Para-Analisador, e assim poder tratar de indeterminações e sinais contraditórios, muito comum nos controles utilizados atualmente, que trabalham com a lógica clássica.

Foi comprovado que a Lógica Paraconsistente pode ser implementada em microcontroladores, e desta forma pode ser aplicada em sistemas de controle e automação. Os resultados obtidos comprovam que grandezas elétricas, como tensões, podem ser tratadas como graus de crença (ou evidência favorável) e de descrença (ou evidência desfavorável) para a obtenção de resultados mais próximos do real, e assim obter dados mais consistentes.

O controle paraconsistente se mostra como uma poderosa ferramenta a ser utilizada em controle, pois demonstrou que além de controlar as variáveis de processo, também demonstra seus níveis de certeza e de contradição, garantindo uma maior credibilidade nos resultados obtidos.

Por fim, esse trabalho comprova que a Lógica Paraconsistente Anotada com Anotação de 2 valores pode ser de implementada em uma grande variedade de microcontroladores, pois seus requisitos mínimos estão presentes em diversos modelos de diversos fabricantes de microcontroladores.

(49)

REFERÊNCIAS

ABE, Jair Minoro. Fundamentos da Lógica Anotada. 1992. 98 f. Dissertação (Mestrado em Filosofia) - Faculdade de Filosofia, Letras e Ciências Humanas, Universidade de São Paulo, São Paulo.

BERTO, Marciel Francisco. Aplicação da Lógica Paraconstistente Evidencial Et no controle de sensores de temperatura na atuação de robôs móveis. 2007. 154 f. Dissertação (Mestrado em Engenharia de Produção) - Universidade Paulista (UNIP), São Paulo.

CONTROL CHIP ENGENHARIA. Módulo display lcd. [S.d.] Disponível em: http://www.controlchip.com.br/produtos_d.asp?id=51&busca=produtos_kits_8051 Acesso em 27 mai. 2016.

FERNANDES, Cláudio Luís Magalhães. Lógica Paraconsistente Aplicada em Sistemas de Automação e Controle. 2012. 109 f. Dissertação (Mestrado em Engenharia Mecânica) – Universidade Santa Cecília, Santos.

HIKARI. Ferro de solda. 2015. Disponível em:

http://www.hikariferramentas.com.br/ferro-de-soldar/218/104/ Acesso em: 27 mai. 2016.

LOPES, Helder Frederico da Silva. Aplicação de Redes Neurais Artificais Paraconsistentes como Método de Auxílio no Diagnóstico da Doença de Alzheimer. 2009. 73 f. Dissertação (Mestrado em Ciências) – Faculdade de Medicina, Universidade de São Paulo, São Paulo.

MICROCHIP TECHNOLOGY INC. PIC18FXX2 data sheet. 2006. Disponível em: http://ww1.microchip.com/downloads/en/DeviceDoc/39564c.pdf Acesso em: 27 mai. 2016.

MIYADAIRA, Alberto Noboru. Microcontrolador PIC18 – Aprenda e Programe em Linguagem C. 4. ed. São Paulo: Érica, 2013. 400 p.

NCTEC. Placa eletrônica clp flexis II. Disponível em: http://www.nctec.ind.br/loja/images/flexisgde.jpg 2016. Acesso em: 27 mai. 2016 PAIXÃO, Renato Rodrigues; JUNIOR, José Carlos de Souza. Controlador Digital de Sinais – Família 56F800/E – Baseado no MC56F8013. 1. ed. São Paulo: Érica, 2005. 348 p.

SILVA FILHO, João Inácio da. Conheça o Robô Emmy: O Primeiro Robô que Funciona com Lógica Paraconsistente. Paralogike. [S.d.] Disponível em: < http://paralogike.com.br/site/links/ver/29 >. Acesso em 27 mai. 2016.

SILVA FILHO, João Inácio da; ABE, Jair Minoro. Fundamentos das Redes Neurais Paraconsistentes – Destacando Aplicações em Neurocomputação (in portuguese). Arte e Ciência, ISBN 85-7473-045-9, 247 p. 2001.

(50)

SILVA FILHO, João Inácio da; ABE, Jair Minoro. Introdução à lógica paraconsistente anotada com ilustrações. 1ª. ed. Santos: Editora Emmy, 2000. 150 p.

SILVA FILHO, João Inácio da. Introdução ao conceito de estado Lógico Paraconsistente ετ. Artigo Técnico, Revista Seleção Documental, n.17, ISSN 1809-0648 – Ed. Paralogike – Santos – SP – Brasil, 2010 pp 20-24.

SILVA FILHO, João Inácio da. Métodos de Aplicações da Lógica Paraconsistente Anotada de Anotação com 2 valores – LPA2v com Construção de Algoritmo e Implementação de Circuitos Eletrônicos. 1999. 237 f. Tese (Doutorado em Engenharia Elétrica) – Escola Politécnica de Engenharia da Universidade de São Paulo, São Paulo.

SOUZA, David José de. Desbravando o PIC – Baseado no Microcontrolador PIC16F84. 2. ed. São Paulo: Érica, 2000. 200 p.

VIDA DE SILICIO. Sensor de temperatura lm35. [S.d.] Disponível em: http://blog.vidadesilicio.com.br/wp-content/uploads/2015/06/LM35.jpg Acesso em: 27 mai. 2016.

(51)

APÊNDICE A – Programação do Controlador Paraconsistente Utilizada para Teste

/* CONTROLADOR PARACONSISTETNE FACULDADE SENAI DE TECNOLOGIA MECATRÔNICA PÓS GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL

AUTOR: RICARDO MARTINEZ VICENTINI */

#include <p18f452.h> //Microcontrolador utilizado #include <adc.h> //Biblioteca de conversor AD #include <delays.h> //Biblioteca de delays #include <stdlib.h> //Biblioteca de miscelâneas #include <stdio.h> //Biblioteca de entradas e saídas #include <string.h> //Biblioteca de strings

#include "C:\PIC18\biblioteca_lcd_uext_2x16.h" //Biblioteca LCD CLP FLEXIS

#pragma config OSC = XT //Oscilador tipo XT

#pragma config PWRT = OFF //Power-up Timer Desabilitado #pragma config BOR = OFF //Brown-out Reset Desabilitado #pragma config WDT = OFF //Watchdog Timer Desabilitado #pragma config LVP = OFF //Low Voltage ICSP Desabilitado

//DECLARAÇÃO DAS VARIÁVEIS

int u1; //Grau de Crença - Evidência Favorável int u2; //Grau de Descrença - Evidência Desfavorável int u1a; // grau de crença instantâneo

int u2a; // grau de descrença instantâneo

int vscc = 512; //Vscc - Valor Superior de Controle da Certeza 512 int vicc = -512; //Vicc - Valor Inferior de Controle da Certeza -512 int vscct = 512; //Vscct - Valor Superior de Controle da Contradição 512 int vicct = -512; //Vicct - Valor Inferior de Controle da Contradição -512 float gc; // Grau de Certeza

float gct; //Grau de Contradição float modulo_gc; //Módulo do grau de certeza float modulo_gct; //Módulo do grau de contradição unsigned char buffer[5]; //Buffer para o LCD

void main( ) //Função principal - Início do Programa {

(52)

TRISA = 0b11111111; //PORTA = Entrada TRISEbits.TRISE1 = 0; //PORTE,1 = saída (Buzzer)

PORTA = 0; //Limpa os Port's PORTB = 0;

PORTC = 0; PORTD = 0; PORTE = 0;

OpenADC(ADC_FOSC_4& //Fosc = 4 (para 4 MHz)

ADC_RIGHT_JUST& //Alinhamento justificado a direita

ADC_3ANA_0REF, //3 Canais analógicos, referência de tensão VCC E VSS ADC_INT_OFF); //Interrupção desligada

PORTEbits.RE1 = 1; //Bip de início Delay10KTCYx(30); //

PORTEbits.RE1 = 0; //

lcd_inicia(0x28, 0x0f, 0x06); //Inicia LCD 2x16 lcd_LD_cursor(0); //Desliga cursor

lcd_limpa_tela ( );

lcd_posicao(1,1); imprime_string_lcd("FACULDADE SENAI "); lcd_posicao(2,1); imprime_string_lcd("TCL. MECATRONICA"); Delay10KTCYx(500);

lcd_posicao(1,1); imprime_string_lcd(" POS GRADUACAO "); lcd_posicao(2,1); imprime_string_lcd("AUT. INDUSTRIAL "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd(" CONTROLADOR "); lcd_posicao(2,1); imprime_string_lcd("PARACONSISTENTE "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd("RICARDO MARTINEZ"); lcd_posicao(2,1); imprime_string_lcd(" VICENTINI "); Delay10KTCYx(200);

lcd_limpa_tela ( );

while(1)//loop infinito {//inicio do bloco while

(53)

//Leitura CH0

SetChanADC(ADC_CH0); //Seleciona o canal AN0 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u1a=ReadADC(); //Transfere o valor lido para a variável u1a

//Leitura CH1

SetChanADC(ADC_CH1); //Seleciona o canal AN1 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u2a=ReadADC(); //Transfere o valor lido para a variável u2a

//Padronizando valores medidos em valores de 0 a 1023

u1=u1a; //Transfere o valor de u1a para u1 u2=u2a; //Transfere o valor de u2a para u2

/*Algoritmo Para-Analisador*/ //Operações Matemáticas

gc=u1-u2; //Cálculo do grau de certeza

gct=(u1+u2)-1023; //Cálculo de grau de contradição

modulo_gc = 0-gc; //Cálculo do modulo_gc modulo_gct = -gct; //Cálculo do modulo_gct

lcd_posicao(1,1); //Mostra valor de gc no display LCD imprime_string_lcd("gc:"); //

lcd_posicao(1,4); //

sprintf(buffer,"%04ld ",(long)gc); //Carrega buffer com o valor presente em gc imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(2,1); //Mostra valor de gct no display LCD imprime_string_lcd("gct:"); //

lcd_posicao(2,5); //

sprintf(buffer,"%04ld ",(long)gct); //Carrega buffer com o valor presente em gct imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

(54)

if (gc>=vscc) {lcd_posicao(2,10); imprime_string_lcd("[ V ]"); lcd_posicao(1,10); imprime_string_lcd("P 5");} //Verdadeiro if (gc<=vicc) {lcd_posicao(2,10); imprime_string_lcd("[ F ]"); lcd_posicao(1,10); imprime_string_lcd("P95");} //Falso if (gct>=vscct) {lcd_posicao(2,10); imprime_string_lcd("[ T ]"); lcd_posicao(1,10); imprime_string_lcd("P50");} //Inconsitente if (gct<=vicct) {lcd_posicao(2,10); imprime_string_lcd("[ I ]"); lcd_posicao(1,10); imprime_string_lcd("P50");} //Indeterminado if((gc>=0)&&(gc<vscc)&&(gct>=0)&&(gct<vscct)) { if(gc>=gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->T]"); lcd_posicao(1,10); imprime_string_lcd("P22");} //Quase verdadeiro tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->V ]"); lcd_posicao(1,10); imprime_string_lcd("P45");} //Inconsistente tendendo a verdadeiro } if((gc>=0)&&(gc<vscc)&&(gct>vicct)&&(gct<=0)) { if(gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->I]"); lcd_posicao(1,10); imprime_string_lcd("P22");} //Quase verdadeiro tendendo a indeterminado

(55)

else

{lcd_posicao(2,10); imprime_string_lcd("[I->V ]"); lcd_posicao(1,10); imprime_string_lcd("P45");} //Indeterminado tendendo a verdadeiro } if((gc>vicc)&&(gc<=0)&&(gct>vicct)&&(gct<=0)) { if(modulo_gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->I]"); lcd_posicao(1,10); imprime_string_lcd("P90");} //Quase falso tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[T->F] "); lcd_posicao(1,10); imprime_string_lcd("P75");} //Indeterminado tendendo a falso

} if((gc>vicc)&&(gc<=0)&&(gct>=0)&&(gct<vscct)) { if(modulo_gc>=gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->T]"); lcd_posicao(1,10); imprime_string_lcd("P90");} //Quase falso tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->F ]"); lcd_posicao(1,10); imprime_string_lcd("P75");} //Inconsistente tendendo a falso

}

/*Fim do Algoritmo Para-Analisador*/

}//fim do bloco while }//fim do programa

(56)

APÊNDICE B – Programação do Controlador Paraconsistente Utilizada Para Controle de Temperatura.

/* CONTROLADOR PARACONSISTETNE FACULDADE SENAI DE TECNOLOGIA MECATRÔNICA PÓS GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL

AUTOR: RICARDO MARTINEZ VICENTINI */

#include <p18f452.h> //Microcontrolador utilizado

#include <adc.h> //Biblioteca de conversor AD #include <delays.h> //Biblioteca de delays #include <stdlib.h> //Biblioteca de miscelâneas #include <stdio.h> //Biblioteca de entradas e saídas #include <string.h> //Biblioteca de strings

#include "C:\PIC18\biblioteca_lcd_uext_2x16.h" //Biblioteca LCD CLP FLEXIS

#pragma config OSC = XT //Oscilador tipo XT

#pragma config PWRT = OFF //Power-up Timer Desabilitado #pragma config BOR = OFF //Brown-out Reset Desabilitado #pragma config WDT = OFF //Watchdog Timer Desabilitado #pragma config LVP = OFF //Low Voltage ICSP Desabilitado

//DECLARAÇÃO DAS VARIÁVEIS

float u1; //Grau de Crença - Evidência Favorável float u2; //Grau de Descrença - Evidência Desfavorável float u1a; // grau de crença instantâneo

float u2a; // grau de descrença instantâneo

int vscc = 681; //Vscc - Valor Superior de Controle da Certeza 512 int vicc = -681; //Vicc - Valor Inferior de Controle da Certeza -512 int vscct = 681; //Vscct - Valor Superior de Controle da Contradição 512 int vicct = -681; //Vicct - Valor Inferior de Controle da Contradição -512 float gc; // Grau de Certeza

float gct; //Grau de Contradição float modulo_gc; //Módulo do grau de certeza float modulo_gct; //Módulo do grau de contradição unsigned char buffer[5]; //Buffer

(57)

unsigned char buffer3[3]; //Buffer float celsius1;

float celsius2;

void main( ) //Função principal - Início do Programa {

TRISA = 0b11111111; //Declara entradas e saídas do sistema TRISEbits.TRISE1 = 0; //Declara saída do Buzzer

TRISB = 0b000000; //Declara PORTB como saída

PORTA = 0;//Limpa os Port's PORTB = 0;

PORTC = 0; PORTD = 0; PORTE = 0;

OpenADC(ADC_FOSC_4& //Fosc = 4 (para 4 MHz)

ADC_RIGHT_JUST& //Alinhamento justificado a direita

ADC_3ANA_0REF, //3 Canais analógicos, referência de tensão VCC E VSS ADC_INT_OFF); //Interrupção desligada

PORTEbits.RE1 = 1; //Bip de início Delay10KTCYx(30); //

PORTEbits.RE1 = 0; //

lcd_inicia(0x28, 0x0f, 0x06); //Inicia LCD 2x16 lcd_LD_cursor(0); //Desliga cursor

lcd_limpa_tela ( );

lcd_posicao(1,1); imprime_string_lcd("FACULDADE SENAI "); lcd_posicao(2,1); imprime_string_lcd("TCL. MECATRONICA"); Delay10KTCYx(500);

lcd_posicao(1,1); imprime_string_lcd(" POS GRADUACAO "); lcd_posicao(2,1); imprime_string_lcd("AUT. INDUSTRIAL "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd(" CONTROLADOR "); lcd_posicao(2,1); imprime_string_lcd("PARACONSISTENTE "); Delay10KTCYx(200);

(58)

lcd_posicao(1,1); imprime_string_lcd("RICARDO MARTINEZ"); lcd_posicao(2,1); imprime_string_lcd(" VICENTINI "); Delay10KTCYx(200);

lcd_limpa_tela ( );

while(1)//loop infinito {//inicio do bloco while

//Leitura CH0

SetChanADC(ADC_CH0); //Seleciona o canal AN0 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u1a=ReadADC(); //Transfere o valor lido para a variável u1a

//Leitura CH1

SetChanADC(ADC_CH1); //Seleciona o canal AN1 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u2a=ReadADC(); //Transfere o valor lido para a variável u2a

//Padronizando valores medidos em valores de 0 a 1023

u1=((float)u1a)*8.33; //Converte valores medidos para range de 0 a 1023 u2=1023.0-(((float) u2a)*8.33); //Inverte valor de u2 - valor máximo - valor medido

celsius1 =((float) u1a)*0.488; //Converte valor medido para temperatura (em ºC) celsius2 =((float) u2a)*0.488;

/*Algoritmo Para-Analisador*/ //Operações Matemáticas

gc=u1-u2; //Cálculo do grau de certeza

gct=(u1+u2)-1023.0; //Cálculo de grau de contradição

modulo_gc = 0-gc; //Cálculo do modulo_gc modulo_gct = -gct; //Cálculo do modulo_gct

lcd_posicao(1,1); //Mostra valor de gc no display LCD imprime_string_lcd("gc:"); //

(59)

sprintf(buffer,"%04ld ",(long)gc); //Carrega buffer com o valor presente em gc imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(2,1); //Mostra valor de gct no display LCD imprime_string_lcd("gct:"); //

lcd_posicao(2,5); //

sprintf(buffer,"%04ld ",(long)gct); //Carrega buffer com valor presente em gct imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(1,10); //Mostra valor da temperatura no display sprintf(buffer2,"%03ld ",(long)celsius1); //Carrega buffer com celsius

imprime_buffer_lcd(buffer2,4); //Imprime no display o valor da temperatura em °C

lcd_posicao(1,14); //Mostra valor da temperatura no display sprintf(buffer3,"%03ld ",(long)celsius2); //Carrega buffer com celsius

imprime_buffer_lcd(buffer3,4); //Imprime no display o valor da temperatura em °C

//Obtenção dos Estados Lógicos Resultantes if (gc>=vscc) {lcd_posicao(2,10); imprime_string_lcd("[ V ]"); PORTBbits.RB0 = 0;} //Verdadeiro if (gc<=vicc) {lcd_posicao(2,10); imprime_string_lcd("[ F ]"); PORTBbits.RB0 = 1;} //Falso if (gct>=vscct) {lcd_posicao(2,10); imprime_string_lcd("[ T ]"); PORTBbits.RB0 = 1;} //Inconsitente if (gct<=vicct) {lcd_posicao(2,10); imprime_string_lcd("[ I ]"); PORTBbits.RB0 = 1;} //Indeterminado

(60)

if((gc>=0)&&(gc<vscc)&&(gct>=0)&&(gct<vscct)) {

if(gc>=gct)

{lcd_posicao(2,10); imprime_string_lcd("[QV->T]"); PORTBbits.RB0 = 1;}

//Quase verdadeiro tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->V ]"); PORTBbits.RB0 = 1;}

//Inconsistente tendendo a verdadeiro } if((gc>=0)&&(gc<vscc)&&(gct>vicct)&&(gct<=0)) { if(gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->I]"); PORTBbits.RB0 = 1;}

//Quase verdadeiro tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[I->V ]"); PORTBbits.RB0 = 1;}

//Indeterminado tendendo a verdadeiro } if((gc>vicc)&&(gc<=0)&&(gct>vicct)&&(gct<=0)) { if(modulo_gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->I]"); PORTBbits.RB0 = 1;}

//Quase falso tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[T->F] "); PORTBbits.RB0 = 1;}

//Indeterminado tendendo a falso }

if((gc>vicc)&&(gc<=0)&&(gct>=0)&&(gct<vscct)) {

(61)

if(modulo_gc>=gct)

{lcd_posicao(2,10); imprime_string_lcd("[QF->T]"); PORTBbits.RB0 = 1;}

//Quase falso tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->F ]"); PORTBbits.RB0 = 1;}

//Inconsistente tendendo a falso }

/*Fim do Algoritmo Para-Analisador*/ Delay10KTCYx(40); //400 ms

}//fim do bloco while

(62)

APÊNDICE C – Programação do MATLAB %ALGORITMO DE ANÁLISE PARACONSISTENTE LPA2v

resp='s';

while resp=='s' || resp=='S' clear all;

clc;

disp('+---+'); disp('| Algoritmo Para-Analisador')

disp('| Autor: Tecnólogo Ricardo Martinez Vicentini')

disp('+---+'); disp(' ');

maximo=input('Digite o valor máximo de u1 e u2: '); disp(' ');

u1=input('Digite o grau de crença ou evidência favorável u1: '); disp(' ');

u2=input('Digite o grau de descrença ou evidência desfavorável u2: '); disp(' '); vscc=maximo/2; vicc=-maximo/2; vscct=maximo/2; vicct=-maximo/2; gc=u1-u2; gct=(u1+u2)-maximo; modulo_gc=0-gc; modulo_gct=-gct; disp('************************************************************'); disp(' Valores '); disp('************************************************************'); disp(' ');

fprintf('Grau de Crença u1 = %.0f \n', u1) fprintf('Grau de Descrença u2 = %.0f \n', u2) fprintf('Grau de Certeza Gc = %.0f \n', gc) fprintf('Grau de Contradição Gct = %.0f \n', gct)

fprintf('Módulo Gc = %.0f \n', modulo_gc) fprintf('Módulo Gct = %.0f \n', modulo_gct) disp(' ');

disp('---');

%Determinação dos Estados Lógicos Extremos

if (gc>=vscc) fprintf('-> VERDADEIRO'); elseif (gc<=vicc) fprintf('-> FALSO'); elseif (gct>=vscct) fprintf('-> INCONSISTENTE'); elseif (gct<=vicct) fprintf('-> INDETERMINADO'); end

%Determinação dos Estados Lógicos Não Extremos

if (gc<vscc & gc>=0 & gct<vscct & gct>=0) if(gc>=gct)

fprintf('-> Quase Verdadeiro Tendendo a Inconsistente') else

(63)

end

elseif (gc<vscc & gc>=0 & gct<=0 & gct>vicct) if(gc>=modulo_gct)

fprintf('-> Quase Verdadeiro Tendendo a Indeterminado') else

fprintf('-> Indeterminado Tendendo a Verdadeiro') end

elseif (gc>vicc & gc<=0 & gct<=0 & gct>vicct) if(modulo_gc>=modulo_gct)

fprintf('-> Quase Falso Tendendo a Indeterminado') else

fprintf('-> Indeterminado Tendendo a Falso')

end

elseif(gc>vicc & gc<=0 & gct>=0 & gct<vscct) if(modulo_gc>=gct)

fprintf('-> Quase Falso Tendendo a Inconsistente') else

fprintf('-> Inconsistente Tendendo a Falso') end

end

disp(' ');

disp('---'); disp(' ');

resp=input('Nova simulação? s ou n: ','s');

while resp~='s' && resp~='S' && resp~='N' && resp~='n' disp('Responda somente s ou n');

resp=input('Nova simulação? s ou n: ','s');

end end

(64)

APÊNDICE D – Alteração na Placa Eletrônica Utilizada nos Testes

De modo a facilitar a programação e a base de tempo utilizada nos ensaios, o cristal oscilador conectado ao microcontrolador, no valor de 20MHz, foi substituído por outro no valor de 4MHz.

Para o correto funcionamento dessa placa eletrônica, foi necessário realizar uma alteração no circuito do microcontrolador, onde foi inserido 2 capacitores no valor de 22 pF conectados ao cristal oscilador, conforme figura 26 abaixo:

Figura 26 – Alteração do circuito do microcontrolador da placa eletrônica

Fonte: Dados do Autor

(65)

Referências

Documentos relacionados

A Etnomatemática, tem se destacado, nas últimas décadas, como uma vertente da Educação Matemática considerada tanto como um método de pesquisa como um método

O presente trabalho de conclusão de curso tem como objetivo contribuir, fornecendo subsídios teóricos e práticos, para que os profissionais responsáveis pelos diversos trabalhadores

Sob a perspectiva de lógicas clássicas só poderemos afirmar que ela é vermelha (Verdadeiro) ou não é vermelha (Falso). Entretanto, sabemos que a maçã pode possui

O analisador lógico (Para-analisador), controlador lógico (Paracontrol), o simulador lógico (Parasim) e outros conceitos em hardware, baseado na lógica paraconsistente

Assim, o objetivo do presente artigo é realizar a análise de risco legal, especificamente no processo de prevenção à lavagem de dinheiro, com o uso da Lógica Paraconsistente

Este capítulo apresenta uma extensão da Lógica Paraconsistente Anotada de Dois Valores - LPA2v para Lógica Paraconsistente Anotada de Três Valores - LPA3v, com a

uma empresa que visa fornecer os melhores conteúdos educacionais relacionados a operações no mercado financeiro; especificamente operações de curto prazo, no intra day

Foram analisados, para verificação do estado da arte no que diz respeito à aplicação de Lean no contexto de administração pública, aspectos como os benefícios