Bachelor\'s Thesis: Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov

May 30, 2017 | Autor: Enzo Lazo | Categoria: Machine Learning, Home automation, Hidden Markov Models, ZigBee, Thermal Control
Share Embed


Descrição do Produto

Universidade de Brasília - UnB Faculdade UnB Gama - FGA Engenharia Eletrônica

Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov Autor: Enzo Mendes Montoya Lazo Orientador: Professor Dr. Daniel Mauricio Muñoz Arboleada Brasília, DF 2014

Enzo Mendes Montoya Lazo

Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov

Monografia submetida ao departamento de Engenharia Eletrônica da Universidade de Brasília, como requisito parcial para obtenção do Título de Bacharel em Engenharia Eletrônica.

Universidade de Brasília - UnB Faculdade UnB Gama - FGA

Orientador: Professor Dr. Daniel Mauricio Muñoz Arboleada

Brasília, DF 2014

Enzo Mendes Montoya Lazo Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov/ Enzo Mendes Montoya Lazo. – Brasília, DF, 2014108 p. : il. Cores ; 30 cm. Orientador: Professor Dr. Daniel Mauricio Muñoz Arboleada Trabalho de Conclusão de Curso – Universidade de Brasília - UnB Faculdade UnB Gama - FGA , 2014. 1. Automação Residencial. 2. Modelos Ocultos de Markov. I. Professor Dr. Daniel Mauricio Muñoz Arboleada. II. Universidade de Brasília. III. Faculdade UnB Gama. IV. Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov. CDU 02:141:005.6

Enzo Mendes Montoya Lazo

Controle de Temperatura para Automação Residencial Utilizando Modelos Ocultos de Markov Monografia submetida ao departamento de Engenharia Eletrônica da Universidade de Brasília, como requisito parcial para obtenção do Título de Bacharel em Engenharia Eletrônica.

Trabalho aprovado. Brasília, DF, 25 de junho de 2014:

Professor Dr. Daniel Mauricio Muñoz Arboleada Orientador

Professor Dr. Sandro Augusto Pavlik Haddad Convidado 1

Professora Dra. Lourdes Mattos Brasil Convidado 2

Brasília, DF 2014

Resumo Neste trabalho é proposto um sistema para controle de temperatura baseado no método de aprendizagem de máquina Modelos Ocultos de Markov (Hidden Markov Models – HMM) para aplicações em automação residencial. O objetivo é minimizar a necessidade de intervenção do usuário em equipamentos de controle de temperatura, melhorando assim, o conforto térmico em residências. Para tanto é necessário que o sistema identifique o perfil do usuário. A aprendizagem de máquina é uma área de pesquisa que estuda técnicas que tornam possível que agentes de software melhorarem suas medidas de desempenho ao longo do tempo. A metodologia de pesquisa escolhida para este trabalho é do tipo bottom-up, onde módulos individuais do sistema são especificados e desenvolvidos para posteriormente serem interconectados, formando assim, o sistema completo. Neste trabalho é abordado um caso de estudo para controle de temperatura com um único módulo de monitoramento. A solução proposta considera um módulo mestre no qual é implementado o algoritmo de treinamento para o HMM e um módulo escravo para monitoramento do sensor de temperatura. Adicionalmente, foi escolhida um protocolo de rede de comunicação sem fio tipo ZigBee. Implementações baseadas em HMM para solução de problema similares foram previamente realizadas em computador pessoal, demostrando a viabilidade da solução proposta. Resultados de simulações e testes experimentais demonstram que a arquitetura do sistema proposto foi implementado com sucesso. Palavras-chaves: aprendizagem de máquina, modelos ocultos de markov, automação residencial, controle térmico, zigbee.

Abstract In this work it is proposed a system for thermal control based on Hidden Markov Models (HMM) for applications in residential automation. The main goal is to minimize human intervention on Heating, Venting and Air Conditioning (HVAC) systems, and then consequently to elevate the user thermal comfort. In order to achieve this objective, it is necessary to identify the user profile. Machine learning is a research area that studies the techniques that make it possible for software agents to improve their operation over time. The bottom-up methodology is the research methodology chosen for this work, where system individual modules are specified and developed to be posteriorly connected, thus molding the complete system. The present work addresses a case study for temperature control using a monitoring module. The proposed solution considers a master module, on which it is implemented the training algorithm for the HMM and a slave module for temperature sensor monitoring. Additionally, it is chosen a wireless communication network based on the ZigBee protocol. HMM designs for solving similar problems were previously accomplished on a personal computer, demonstrating the viability for the proposed solution. Experimental test and simulation results demonstrate that the proposed system architecture was successfully implemented. Key-words: machine learning, hidden markov models, residential automation, thermal control, zigbee.

Sumário I Introdução

17

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.1

Descrição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.2

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.3

Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.4

Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5

Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

II Referencial Teórico

25

2 Referencial Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1

Automação Residencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.1

Variáveis Físicas a Serem Automatizadas . . . . . . . . . . . . . . . 28

2.1.2

Modelos de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.3

Protocolo ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.4

Protocolo Controller Area Network – CAN . . . . . . . . . . . . . . 31

2.1.5

Protocolo RS-485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2

Modelo de Aprendizagem para Automação Residencial . . . . . . . . . . . 33

2.3

Conceitos de Probabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.4 2.5

2.3.1

Variável Aleatória . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.2

Probabilidade Conjunta . . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.3

Probabilidade Condicional . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.4

Independência entre Eventos . . . . . . . . . . . . . . . . . . . . . . 35

2.3.5

Função Densidade de Probabilidade Gaussiana . . . . . . . . . . . . 36

2.3.6

Processos Estocásticos . . . . . . . . . . . . . . . . . . . . . . . . . 37

Cadeias de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Modelos Ocultos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5.1

Algoritmos de Treinamento . . . . . . . . . . . . . . . . . . . . . . 40

2.6

Trabalhos Correlatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.7

Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

III Especificação do Sistema

43

3 Especificação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1

Sistema Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2

Caso de Estudo: Monitoramento de Temperatura com HMM . . . . . . . . 46 3.2.1

Módulo Computacional (Mestre) . . . . . . . . . . . . . . . . . . . 47

3.2.2

Cartão de Memória SD . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.2.3

Unidade de Monitoramento (Escravo) . . . . . . . . . . . . . . . . . 48

3.2.4

Sensor de Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.2.5

Rede de Comunicação ZigBee . . . . . . . . . . . . . . . . . . . . . 49

3.3

Algoritmo de Treinamento Proposto . . . . . . . . . . . . . . . . . . . . . . 50

3.4

Métrica para Estimativa de Erro do Sistema de Previsão . . . . . . . . . . 52

3.5

Simulações Prévias Usando HMM . . . . . . . . . . . . . . . . . . . . . . . 52

3.6

3.5.1

Carro Estacionário . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.5.2

Carro em Movimento . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

IV Simulações

57

4 Simulações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.1

Perfil de Temperatura do Usuário . . . . . . . . . . . . . . . . . . . . . . . 59

4.2

Dados de Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.3

Simulações em Computador Pessoal . . . . . . . . . . . . . . . . . . . . . . 61 4.3.1

4.4

Intervenção do Usuário sobre o Sistema . . . . . . . . . . . . . . . . 62

Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

V Implementação do Sistema

69

5 Implementação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.1

Arquitetura Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.2

Lista de Materiais Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.3

Desenho dos Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.4

Testes sobre o Sistema Implementado . . . . . . . . . . . . . . . . . . . . . 73

5.5

Resultados dos Testes Experimentais . . . . . . . . . . . . . . . . . . . . . 73

5.6

Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

VI Conclusões

77

6 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.1

Sugestões Para Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . 80

Referências Bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Apêndices

85

APÊNDICE A Algoritmo HMM em C para Raspberry Pi . . . . . . . . . . . . 87 APÊNDICE B Algoritmo em C para Criação do Perfil de Temperatura . . . . 97 APÊNDICE C Algoritmo em C para Cálculo do Estimador MSE . . . . . . . 103 APÊNDICE D Script em Matlab para Geração de Gráficos . . . . . . . . . . 105

Lista de ilustrações Figura 1 – Subsistemas de uma residência. . . . . . . . . . . . . . . . . . . . . . . 28 Figura 2 – Topologias de Rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Figura 3 – Topologia de Rede CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Figura 4 – Barramento RS-485. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Figura 5 – Conceito de variável aleatória. . . . . . . . . . . . . . . . . . . . . . . . 34 Figura 6 – Comparação entre diferentes distribuições gaussianas. . . . . . . . . . . 36 Figura 7 – Transição de Estados em HMM. . . . . . . . . . . . . . . . . . . . . . . 40 Figura 8 – Sistema Geral para Automação Residencial. . . . . . . . . . . . . . . . 45 Figura 9 – Arquitetura do Sistema Proposto. . . . . . . . . . . . . . . . . . . . . . 46 Figura 10 – Computador Raspberry Pi. . . . . . . . . . . . . . . . . . . . . . . . . 47 Figura 11 – Cartão de Memória SD. . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Figura 12 – Módulo CC2530ZNP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Figura 13 – Sensor de Temperatura LM35. . . . . . . . . . . . . . . . . . . . . . . . 49 Figura 14 – Topologia de Rede Escolhida. . . . . . . . . . . . . . . . . . . . . . . . 50 Figura 15 – Simulação Carro Estacionário. . . . . . . . . . . . . . . . . . . . . . . . 53 Figura 16 – Simulação Carro em Movimento. . . . . . . . . . . . . . . . . . . . . . 55 Figura 17 – Perfil Térmico Desejado pelo Usuário. . . . . . . . . . . . . . . . . . . . 59 Figura 18 – Série de Fourier para o Perfil Desejado. . . . . . . . . . . . . . . . . . . 60 Figura 19 – Perfil Térmico e Aproximação. . . . . . . . . . . . . . . . . . . . . . . . 60 Figura 20 – Resultado da Aproximação do HMM. . . . . . . . . . . . . . . . . . . . 61 Figura 21 – Métrica MSE para Estimativa de Erro. . . . . . . . . . . . . . . . . . . 61 Figura 22 – Métrica MSE para 100 semanas. . . . . . . . . . . . . . . . . . . . . . . 62 Figura 23 – Perfil Térmico Desejado (anteriormente à mudança). . . . . . . . . . . 63 Figura 24 – Perfil Térmico Desejado (posteriormente à mudança). . . . . . . . . . . 63 Figura 25 – Perfis Térmicos Desejado e Estimado para a Semana 1. . . . . . . . . . 64 Figura 26 – Perfis Térmicos Desejado e Estimado para a Semana 2. . . . . . . . . . 64 Figura 27 – Perfis Térmicos Desejado e Estimado para a Semana 3. . . . . . . . . . 64 Figura 28 – Perfis Térmicos Desejado e Estimado para a Semana 4. . . . . . . . . . 65 Figura 29 – Perfis Térmicos Desejado e Estimado para a Semana 5. . . . . . . . . . 65 Figura 30 – Erro Quadrático e MSE para a Semana 1. . . . . . . . . . . . . . . . . 65 Figura 31 – Erro Quadrático e MSE para a Semana 2. . . . . . . . . . . . . . . . . 66 Figura 32 – Erro Quadrático e MSE para a Semana 3. . . . . . . . . . . . . . . . . 66 Figura 33 – Erro Quadrático e MSE para a Semana 4. . . . . . . . . . . . . . . . . 66

Figura 34 – Erro Quadrático e MSE para a Semana 5. . . . . . . . . . . . . . . . . 67 Figura Figura Figura Figura Figura Figura Figura Figura Figura

35 36 37 38 39 40 41 42 43

– Arquitetura Final Implementada. . . . . . . . . . . – Perfil de Temperatura Obtido. . . . . . . . . . . . . – Perfis de Temperatura Anteriormente à Mudança. . – Perfis de Temperatura Posteriormente à Mudança. – Perfil Térmico Estimado pelo HMM, Semana 1. . . – Perfil Térmico Estimado pelo HMM, Semana 2. . . – Perfil Térmico Estimado pelo HMM, Semana 3. . . – Perfil Térmico Estimado pelo HMM, Semana 4. . . – Perfil Térmico Estimado pelo HMM, Semana 5. . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

71 73 74 74 75 75 75 76 76

Lista de tabelas Tabela 1 – Tecnologias de Redes sem Fio. . . . . . . . . . . . . . . . . . . . . . . . 30 Tabela 2 – Lista Completa de Materiais Utilizados. . . . . . . . . . . . . . . . . . 72

Parte I Introdução

19

1 Introdução Com o aumento no desempenho e diminuição do tamanho de dispositivos de computação, juntamente com avanços em outras áreas relacionadas, aumentou-se o número de pesquisas realizadas sobre ambientes inteligentes, onde dispositivos incorporados ao ambiente visam melhorar a experiência do usuário (Cook Das, 2007). Atualmente, diversas técnicas são pesquisadas com o objetivo de desenvolver ou melhorar sistemas para automação residencial. Esses sistemas podem proporcionar maior conforto e segurança para os usuários que estão presentes nesses ambientes. A automação inteligente pode propiciar maior comodidade para as pessoas inseridas em ambientes residenciais por diminuir a necessidade de realizar trabalhos repetitivos ou rotineiros, tais como acender lâmpadas, procurar canais de preferência. Também pode dispensar a preocupação com variáveis do ambiente, tais como temperatura, umidade e luminosidade (Zambiasi, 2002). Projetos de residências inteligentes têm atraído crescente interesse, pois tornam possível a atuação de módulos eletrônicos em uma residência para realizar tarefas complexas, interagir com os usuários e também com o meio físico. Entretanto, estes projetos são de extrema complexidade e encontram diversos desafios. O intuito deste trabalho é apresentar uma forma alternativa de implementar um módulo para ambientes inteligentes, utilizando para isso uma estrutura hierárquica mestre-escravos, juntamente com técnicas de aprendizagem de máquina. Mais especificamente, é sugerida uma arquitetura para implementar um módulo de aprendizagem de máquina que torne mínima ou desnecessária a intervenção do usuário sobre equipamentos de controle de temperatura, visando então a elevação do conforto térmico em lares. Este módulo é conectado à uma rede de comunicação residencial onde, futuramente, outros módulos com diferentes aplicações poderão ser adicionados. É valido salientar que o foco deste trabalho está na validação e implementação do sistema físico em uma plataforma embarcada e, portanto, é proposto um sistema simplificado considerando somente uma variável de interesse (temperatura).

1.1 Descrição do Problema Os primeiros equipamentos eletrônicos apresentavam interface homem-máquina bem simples, e para utilizá-los, era necessário que o usuário estivesse fisicamente próximo

20

Capítulo 1. Introdução

ao equipamento eletrônico. Na década de 50 foi inventado o primeiro dispositivo de controle remoto para equipamentos televisores. Com esse dispositivo, o usuário era capaz de mudar de canal e ajustar o volume sonoro de sua televisão remotamente Mais de meio século se passou e com o avanço da tecnologia, diversos equipamentos eletrônicos foram desenvolvidos, tais como equipamentos para controle de temperatura, equipamentos de rádio e televisão, tocadores de CD e DVD, home theater, câmeras de segurança, entre outros. Entretanto, a forma de controlá-los ainda é bastante similar àquela de quase 60 anos atrás: por meio de dispositivos de controle remoto; Com a frequente necessidade de intervenção, por parte do usuário, em equipamentos utilizados no dia-a-dia, começa-se a estudar formas para tornar este tipo atividade automática. A utilização de aprendizagem de máquina com aplicações em automação residencial é uma forma de solucionar esse problema e é objeto de estudo deste trabalho.

1.2 Objetivos Este trabalho tem como objetivo principal desenvolver um sistema para controle de temperatura utilizando Modelos Ocultos de Markov (Hidden Markov Models – HMM) com aplicação em automação residencial. Destacam-se também objetivos secundários, que fornecem a estrutura para o desenvolvimento do objetivo principal mencionado. São esses: • propor e implementar o algoritmo de treinamento; • projetar a arquitetura do sistema; • especificar e adquirir as unidades que constituem os módulos do sistema proposto, bem como definir o padrão de comunicação; • realizar validação do sistema e corrigir eventuais problemas.

1.3 Justificativa Neste trabalho é proposta a utilização de HMM para aplicações em automação residencial. A escolha do método de aprendizagem de máquina HMM deve-se, primeiramente, ao fato de que a variável em questão – temperatura desejada por um usuário de uma residência – não pode ser observada diretamente. HMMs tem como principal característica realizar observações indiretas para identificar o estado – neste caso, o valor de temperatura – que tem maior probabilidade de ser desejado pelo usuário. Além disso, HMM é um método de aprendizagem supervisionado, onde a aprendizagem é feita por exemplos. Essa abordagem é pertinente ao caso em questão. Adicionalmente, HMMs são processos Markovianos, e portanto a probabilidade de um processo evoluir para um estado qualquer depende exclusivamente do estado atual do sistema. Em outras palavras, o modelo não leva em consideração a evolução do sistema, mas somente a configuração

1.4. Metodologia

21

na qual o sistema se encontra no instante de tempo presente. Por último, HMM consiste em um modelo probabilístico simples e intuitivo, e por esse motivo seus algoritmos de treinamento não apresentam extrema complexidade de implementação.

1.4 Metodologia No contexto do presente trabalho, o ambiente estudado e o perfil de usuário em questão devem ser definidos. Dentre as principais considerações acerca do ambiente estudado, podem ser listadas: 1. O ambiente em questão é uma residência simples e relativamente pequena: um apartamento pequeno sem divisórias para quarto, cozinha ou sala. Este ambiente é equipado com um equipamento ar condicionado exclusivo para esta residência. 2. O usuário deste sistema é um trabalhador comum, que acorda pontualmente às 06h45 de segunda a sexta-feira, toma café da manhã, se veste adequadamente para ir ao trabalho e sai de casa por volta das 08h00. Retorna à sua residência às 17h00 nas segundas, quartas e sextas-feiras. Nas terças e quintas-feiras, volta para casa às 20h00. De domingo a quinta-feira, o usuário costuma dormir às 22h00, devido à jordana de trabalho no dia seguinte. Nos dias restantes, vai para cama às 00h00 e acorda às 09h00 no dia seguinte. Na sexta-feira pela noite, costuma sair com amigos por volta das 21h00 e retorna às 23h00. O usuário não tem rotina definida para os sábados. Nos domingos costuma ficar em casa, cozinhar, fazer faxina, ler livros e assistir filmes. 3. É sabido que a zona de conforto térmico do usuário está entre 21 e 25 graus centígrados. A residência está localizada em Brasília, onde as estações do ano não são bem definidas. Em outras palavras, não há invernos rigorosos nem verões escaldantes e, portanto, a sensação térmica nesta cidade é aproximadamente igual à temperatura verdadeira. Uma metodologia do tipo bottom-up para desenvolvimento de sistemas embarcados (Gajski et al., 2009) foi utilizada neste trabalho. Todas as implementações de software são feitas utilizando a linguagem C. Para efeito de validação do sistema, o erro de previsão é estimado usando a métrica Erro Quadrático Médio (MSE). Durante a descrição inicial do sistema, é utilizado um computador pessoal baseado em um processador Intel core i5 com 4GB de memória RAM e sistema operacional OS X. A implementação final é realizada em plataformas de desenvolvimento para sistemas embarcados. O sistema mestre, onde é implementado o HMM, é computador de baixo custo Raspberry Pi com processador ARM11, 512 MB de flash, operando a 700 MHz. Finalmente, o módulo de monitoramento de temperatura é implementado com o CC2530ZNP, que é um módulo

22

Capítulo 1. Introdução

que contém o System on Chip (SoC) CC2530 para comunicação sem fio e o microcontrolador MSP430 da Texas Instruments. Desta forma, a metodologia de desenvolvimento deste projeto segue as seguintes fases: Fase 1: Revisão bibliográfica sobre os principais tópicos que estão relacionados com automação residencial e modelos de aprendizagem de máquina. Particularmente, são estudados processos Markovianos, com maior atenção para HMMs. Fase 2: Definição do algoritmo de treinamento a ser utilizado pelo módulo de aprendizagem de máquina. Fase 3: Especificação da rede de comunicação doméstica. Fase 4: Modelagem, descrição e simulação, em computador pessoal, do sistema integrado para previsão do perfil de usuário. Fase 5: Preparação dos ambientes de trabalhos e desenvolvimento dos módulos mestre e de monitoramento nas plataformas de desenvolvimento. Fase 6: Implementação da rede de comunicação. Fase 7: Integração dos módulos desenvolvidos e simulações funcionais do sistema integrado. Fase 8: Desenho de experimentos e testes de validação numérica do sistema.

1.5 Organização do Trabalho O capítulo 2 corresponde ao referencial teórico necessário para entender o contexto deste trabalho. São introduzidos conceitos relacionados à automação residencial e à classificação de modelos de aprendizagem de máquina, bem como uma revisão sobre conceitos da teoria da probabilidade. São discutidos, ainda no capitulo 2, alguns modelos Markovianos e trabalhos correlatos na área de automação residencial. No capítulo 3 é apresentada a arquitetura proposta para solução do problema, bem como especificações dos módulos necessários a este sistema. São apresentados também o pseudocódigo do algoritmo de treinamento e a métrica escolhida para efetuar a validação do sistema. Por último, são discutidas simulações acerca de um problema similar que foi solucionado com emprego de HMM. No capítulo 4 são apresentados o perfil de temperatura do usuário, a aproximação utilizada para os dados de treinamento, as condições e, por último, resultados das simulações, em computador pessoal, do algoritmo HMM implementado. Preocupou-se em avaliar os resultados das simulações com uma métrica de estimativa de erro. Questões sobre a implementação física do sistema, arquitetura final e lista de materiais utilizados, desenho dos experimentos e condições de teste são apresentadas no

1.5. Organização do Trabalho

23

capítulo 5 deste trabalho. Ainda nesse capítulo, são mostradas os resultados dos testes experimentais, bem como discussões sobre os mesmos. O capítulo 6 traz as principais conclusões sobre o presente trabalho, ao passo que os principais documentos produzidos são apresentados nos Apêndices.

Parte II Referencial Teórico

27

2 Referencial Teórico Este capítulo apresenta os principais conceitos relacionados à automação residencial, aos modelos de aprendizagem de máquina, bem como uma revisão teórica acerca de conceitos básicos de probabilidade, que são necessários para o completo entendimento de modelos Markovianos. Trabalhos relacionados na área de automação residencial são discutidos no final deste capítulo.

2.1 Automação Residencial A utilização de dispositivos computadores e redes de comunicação possibilita a automatização de processos em uma residência (Bolzani, 2004). De acordo com Osório et al. (2010) e Bolzani (2004), a automação residencial visa aperfeiçoar a qualidade de vida dos moradores, melhorando as dimensões conforto, segurança e eficiência energética. A principal questão em pauta na automação residencial aborda a necessidade de interconectar sistemas eletrônicos e eletromecânicos presentes nas residências, tendo em vista que muitas vezes estes sistemas estão isolados (Aarts e Roovers, 2004). De acordo com Bolzani (2007), é indispensável que o monitoramento e o controle destes sistemas sejam realizados remotamente, via rede doméstica cabeada ou sem fio. Atualmente, projetos que visam o desenvolvimento e implantação desses novos sistemas encontram severos desafios, devidos à extrema complexidade de implementação das funcionalidades requeridas por tais sistemas. De acordo com Aarts Roovers, (2004) e Osório et al. (2010), estes sistemas devem: • ser sensíveis à presença dos usuários e ao contexto atual; • disponibilizar o acesso à informação em qualquer lugar da residência, de forma pervasiva; • proporcionar interação natural com os usuários do sistema; • estar, para o usuário, em plano de fundo; • priorizar a interação social, o bem estar e o conforto dos indivíduos. Nas subseções seguintes são listados vários sistemas que podem coexistir em uma residência e modelos de comunicação para automação residencial.

28

Capítulo 2. Referencial Teórico

2.1.1 Variáveis Físicas a Serem Automatizadas O ambiente de uma residência inteligente apresenta diversos subsistemas, que deverão ser integrados e possuir um controle unificado (Medeiros, 2009). Na Figura 1 é possível ter uma ideia da variedade de subsistemas que podem coexistir em um ambiente integrado.

Figura 1 – Subsistemas de uma residência. Os subsistemas numerados na Figura 1 são listados a seguir: 1. Irrigação de jardim (horários programados e sensores de umidade); 2. Cabeamento estruturado (dados, voz e imagem); 3. Circuito fechado de TV; 4. Controle de acesso (biometria, cartões de proximidade); item Controle de iluminação; 5. Controle de utilidades; 6. Controle de monitoramento de elevadores; 7. Controle de monitoramento de medições (gás, água e eletricidade); 8. Controle e monitoramento do sistema de climatização; 9. Entretenimento; 10. Redes de dados condominial; 11. Sistema de detecção e alarme de incêndio; 12. Sistema de segurança.

2.1. Automação Residencial

29

Inúmeras são as possibilidades de sistemas e processos a serem trabalhados em um projeto de automação residencial. Contudo, no presente trabalho, apenas uma variável física é considerada: a temperatura, que pode ser controlada por sistemas de aquecimento, ventilação ou ar condicionado.

2.1.2 Modelos de Comunicação De acordo com Silva (1994), um modelo de comunicação trata-se de um modelo matemático, para permitir a transmissão de um conjunto de informações quantificáveis de um lugar para outro, através de um ponto A (o emissor) para um ponto B (o receptor). A informação, uma vez codificada em sinais por um emissor, seria transmitida através de um canal (a mídia) para um receptor que processaria a sua decodificação. Neste trabalho, objetiva-se utilizar uma tecnologia de comunicação que atenda às seguintes características: • Alcance suficiente para cobrir a área de uma residência comum; • Baixo consumo de potência; • Taxa transmissão de dados adequada para monitoramento de sensores. Dentre os modelos de comunicação que atendem às características supracitadas, são discutidos neste trabalho os protocolos ZigBee, CAN e RS-485.

2.1.3 Protocolo ZigBee Dentre as diversas tecnologias sem fio disponíveis, o ZigBee é um padrão global e aberto que tem como base o protocolo 802.15.4 (IEEE, 2011) criado pelo Institute of Electrical and Electronics Engineers – IEEE, desenvolvido como solução para redes sem fio com baixo consumo de energia, baixa taxa de transmissão, segurança, confiabilidade e baixo custos de aquisição, instalação e manutenção (Oliveira, 2010). O padrão ZigBee provê uma rede de curto alcance e boa relação custo-benefício. Foi desenvolvido com ênfase em aplicações de baixo custo alimentadas por bateria, tais como automação residencial e predial (Monsignore, 2007). De acordo com Streeton Stanfield (2005), essa tecnologia está sendo considerada como a melhor solução para sistemas de comunicação de baixa taxa de transferência de dados e curto alcance. Outras características importantes desse padrão é que sua complexidade é simples, e portanto, pode ser implementado em microcontroladores de baixo custo, sua rede pode conter centenas de dispositivos a ela conectados e opera também nas bandas não licenciadas de 2.4GHz, 868MHz e 915MHz.

30

Capítulo 2. Referencial Teórico

A Tabela 1 ilustra a superioridade do protocolo ZigBee, no contexto deste trabalho, em relação a outras tecnologias de redes sem fio. Tabela 1 – Tecnologias de Redes sem Fio. Propriedade Frequência de Operação Taxa de Dados Alcance Formas de Conexão Complexidade Consumo de Potência Aplicações

802.11 Wi-Fi

Bluetooth

Zigbee

2.4 GHz

2.4 GHz

2.4 GHz

11 Mbit/s 100 metros

1 Mbit/s 10 metros

250 kbit/s 10 a 100 metros

Point-to-multipoint

Ad hoc, piconets

Ad hoc, peer-to-peer, mesh

alta

alta

baixa

alto

médio

baixo

WLAN hotspots

Fones de ouvido sem fio, Conexões PC-PDA-laptop

Monitoramento industrial, Automação residencial, Redes de sensores

Em uma rede ZigBee são identificados dois tipos de dispositivos: (Full Function Device – FFD) e Dispositivos de Funções Reduzidas (Reduced Function Device – RFD). Dispositivos FFD são mais complexos e precisam de hardware mais potente para implantação da pilha de protocolos e, consequentemente, consomem mais energia e processamento. Podem se comunicar com quaisquer membros da rede (Monsignore, 2007). Já os dispositivos RFD podem comunicar apenas com dispositivos FFD e, em geral, requerem menos capacidade de processamento, memória e potencia (Oliveira, 2010). Devido ao baixo consumo de energia, os dispositivos RFD são adequados para uso em nós sensores e atuadores. O padrão ZigBee especifica três possíveis tipos de nós em uma rede: coordenador (ZigBee Cordinator – ZC), roteador (ZigBee Router – ZR) e end device (ZigBee End Device – ZED). O nó coordenador é mandatório, responsável por atividades de gerenciamento de rede, tais como a admissão de outros nós na rede, atribuição de endereços de rede e inicialização da rede. Nós roteadores são utilizados para estender a área de cobertura de uma rede e também para criar rotas adicionais de dados, aumentando então a confiabilidade da rede. Um nó end device apresenta funcionalidade apenas para comunicar-se com o nó pai (coordenador ou roteador. Dentre os tipos de dispositivos, o end device é o que consome menor quantidade de recursos, tais como memória, processamento e energia (Oliveira, 2010). A especificação do padrão ZigBee permite que três topologias de rede diferentes podem ser implementadas. São elas: estrela, árvore e malha (Streeton e Stanfield, 2005). Estas topologias estão representadas graficamente na Figura 2.

31

2.1. Automação Residencial

Figura 2 – Topologias de Rede. De acordo com Monsignore (2007), na configuração estrela o dispositivo coordenador da rede se encarrega de toda a comunicação efetuada em cada um dos canais de comunicação. O coordenador deve ser capaz de se comunicar com qualquer outro dispositivo presente na rede e deve estar no modo de recepção quando não estiver transmitindo, o que leva a um alto consumo de potência deste dispositivo. A topologia Árvore apresenta características similares à topologia Estrela. Uma vantagem desta topologia é que dispositivos roteadores podem ser adicionados entre os nós coordenador e end device para aumentar a cobertura geográfica da rede. A última topologia de rede suportada pelo padrão ZigBee é a Malha. Por prover uma ampla quantidade de rotas, sua principal vantagem é a confiabilidade e rendimento da rede.

2.1.4 Protocolo Controller Area Network – CAN O CAN é um protocolo de comunicação serial que suporta um eficiente controle em tempo real com um nível elevado de segurança. Os diferentes tipos de redes CAN e suas aplicabilidades são regulamentados pela Society of Automotive Engineers – SAE (Luz, 2010). Sendo assim, as versões desse protocolo são definidas em escala mundial, ou seja, seguem um padrão. Diante das funcionalidades desse protocolo, o mesmo vem sendo difundido em diferentes mercados, não somente para o ramo automobilístico, mas também em aplicações de automação industrial e transmissão de voz (Luz, 2010). Por ter sido concebido em ambientes de altos níveis de ruído e alternância de alimentação, este protocolo é extremamente robustos e confiável. Dentre as principais características da rede CAN, pode-se citar (Ferreira, 2009): • Faixa de operação de até 1Mbps para curtas distâncias • Excelente detecção de erros • Flexibilidade de configurações • Utilização de mensagens curtas de até 8 bytes • Controle de rede por prioridade de mensagens

32

Capítulo 2. Referencial Teórico

• Consistência dos dados Em uma rede CAN, todos os nós podem requisitar utilizar o barramento de transferência dos dados, porém, a cada solicitação é necessário verificar a disponibilidade do barramento (Luz, 2010). De acordo com Luz (2010), não há necessidade de definir a rede nas camadas física e de enlace no protocolo CAN, pois suas implementações já são definidas. Portanto, os desenvolvedores da rede CAN devem se preocupar apenas com a definição da camada de aplicação. O protocolo CAN apresenta um conceito bastante importante, o da dominância de bit (Barbosa, 2003). Dessa forma, neste protocolo existem dois possíveis bits, um chamado de recessivo e outro de dominante. O bit recessivo representa o estado de repouso da rede, a situação onde nenhum pacote está sendo transmitido. E o dominante, a situação oposta. (Luz, 2010). De acordo com Barbosa (2003), o método de transmissão na rede CAN está relacionada com os níveis de tensão entre os fios CAN_H e CAN_L. De acordo com a convenção utilizada, o bit recessivo é considerado em nível lógico alto, ao passo que o bit dominante é considerado em nível lógico baixo (Luz, 2010). Para que no barramento seja gerado um bit dominante é necessário produzir uma diferença de potencial de aproximadamente 2 volts entre os fios CAN_L e CAN_H, sendo que a tensão no canal CAN_L deve ser de aproximadamente 1.5 volt (Ferreira, 2009). Fisicamente, os fios CAN_H e CAN_L compõem um par trançado (Ferreira, 2009). Por este motivo, ruídos que causem distorções no sinal elétrico de um dos fios irão gerar efeito similar no outro fio. Desta forma, o efeito do sinal ruidoso é minimizado, tendo em vista que a transmissão de dados na rede CAN baseia-se na diferença de tensão entre os fios CAN_H e CAN_L (Luz, 2010). É esta forma de transferência de informação que garante confiabilidade e robustez à rede (Barbosa, 2003). A Figura 3 ilustra a topologia da rede CAN.

Figura 3 – Topologia de Rede CAN.

2.2. Modelo de Aprendizagem para Automação Residencial

33

2.1.5 Protocolo RS-485 Criado em 1983, o protocolo RS-485 é capaz de prover uma forma bastante robusta de comunicação multiponto. Vem sendo muito utilizado na indústria em controle de sistemas e comunicação de dados de baixa densidade (Comm5, 2013). É um padrão físico de comunicação serial e baseia-se no conceito de transmissão diferencial, que é realizado fisicamente utilizando par trançado de fios (Arboleda, 2006). Através deste par de fios, os dispositivos conectados a esta rede transmitem e recebem dados. Cada dispositivo aciona o seu transmissor apenas no instante que necessita transmitir, mantendo-o desligado no restante do tempo, de modo a permitir que outros dispositivos transmitam dados (Gazziro, 2013). De acordo com Arboleda (2006) e Gazziro (2013), dentre as principais características do padrão RS-485, destacam-se: • Comunicação multiponto, permitindo até 32 dispositivos na rede; • Distância máxima de até 1200 metros; • Robustez à interferência de origem eletromagnética; • Arquitetura Mestre/Escravo. A Figura 4 ilustra uma rede RS-485, onde n Æ 31.

Figura 4 – Barramento RS-485. Na próxima seção são classificados os tipos de modelos de aprendizagem de máquina e suas características.

2.2 Modelo de Aprendizagem para Automação Residencial Considera-se que uma máquina aprende quando seu desempenho em alguma tarefa definida melhora com a experiência. Em outras palavras, a máquina tem capacidade de modificar-se para obter melhor desempenho na próxima vez que executar determinada tarefa (Michalski et al., 1983).

34

Capítulo 2. Referencial Teórico

Algoritmos de aprendizado tem sido utilizado em diferentes domínios de aplicação, tais como reconhecimento de frases, sistemas especialistas, processamento de linguagem natural, música, predição de sequências e robótica (Michalski et al., 1983). De acordo com Duda et al. (2001), é possível classificar aprendizagem de máquina em três subconjuntos, baseando-se na dependência do professor. Na aprendizagem supervisionada, um professor proporciona um conjunto de exemplos (dados) de treinamento com rótulo, do qual o aprendiz deveria generalizar uma representação. Já na aprendizagem não-supervisionada, nenhuma informação sobre as entradas é dada, e portanto, o sistema não sabe quão correta estão suas aproximações. O algoritmo cria grupos a partir dos dados de entrada em uma forma “natural”. Aprendizagem por reforço encontra-se entre esses dois, onde nenhuma saída desejada é informada ao sistema, entretanto, o algoritmo acaba por conseguir conhecimento acerca da saída, se ela está correta ou não. Dentre as três classificações de aprendizagem de máquina mencionadas, a mais simples e que melhor convém ao contexto deste trabalho é a que trabalha em modo supervisionado, pois permite o treinamento com exemplos bem definidos e rotulados, visto que é possível observar diretamente o comportamento do usuário. Na seção seguinte são abordados conceitos básicos de probabilidade para melhor entender os Modelos Markovianos, que são discutidos nas seções 2.4 e 2.5.

2.3 Conceitos de Probabilidade Para melhor compreensão do conteúdo deste trabalho, é de suma importância introduzir alguns conceitos relacionados à teoria da probabilidade.

2.3.1 Variável Aleatória Se x é um experimento com espaço amostral W e X é uma função que associa um número real X(e) a cada resultado de e œ W, então X(e) é chamada variável aleatória (Hines et al., 2006). A Figura 5 ilustra este conceito.

Figura 5 – Conceito de variável aleatória. Na Figura 5, a parte (a) ilustra W: espaço amostral de x, e a parte (b), RX : espaço imagem de X. Uma variável aleatória é, em outras palavras, uma função que atribui um

35

2.3. Conceitos de Probabilidade

valor numérico a cada resultado individual de uma experiência aleatória. Diz-se que uma variável aleatória é discreta se todos os seus possíveis valores podem ser listados, e estes valores pertencem a um conjunto finito ou infinito numerável (Portnoi, 2010). Exemplos: número de computadores com defeito em uma fábrica, resultado da jogada de uma moeda ou dado. Uma variável aleatória é contínua se seus valores não podem ser listados, mas podem assumir um número infinito de valores em um intervalo finito ou infinito (Portnoi, 2010). Exemplos: altura das pessoas, intervalo de tempo entre eventos.

2.3.2 Probabilidade Conjunta Dados dois eventos A e B, P (A fl B) é chamada de probabilidade conjunta entre os eventos. Matematicamente, esta probabilidade pode ser calculada como mostrado na Equação 2.1 (Garcia, 2008). P (A fl B) = P (A) + P (B) ≠ P (A fi B)

(2.1)

A propriedade 2.1 pode ser verificada empiricamente ao construir o diagrama de Venn para um cenário qualquer. Para eventos mutualmente exclusivos, P (A fl B) = 0, pois P (A fi B) = P (A) + P (B).

2.3.3 Probabilidade Condicional Dado um evento B com probabilidade não-nula, define-se a probabilidade condicional de um outro evento A, condicionado à ocorrência de B, como P (A|B). P (A|B) =

P (A fl B) P (B)

(2.2)

A Equação 2.2 ilustra matematicamente como calcular a probabilidade condicional utilizando o conceito de probabilidade conjunta.

2.3.4 Independência entre Eventos Sejam dois eventos A e B tais que P (A) ”= 0 e P (B) ”= 0. Diz-se que há independência entre estes eventos se a probabilidade de ocorrência de um deles não afeta a ocorrência do outro evento (Eisencraft, 2007). Matematicamente isto pode ser representado da seguinte forma: P (A|B) = P (A)

(2.3)

P (B|A) = P (B)

(2.4)

36

Capítulo 2. Referencial Teórico

Combinando-se as Equações 2.3 e 2.4, chega-se à conclusão de que a probabilidade conjunta entre dois eventos estatisticamente independentes é regida pela Equação 2.5. P (A fl B) = P (A)P (B)

(2.5)

Neste ponto, chama-se a atenção do leitor para não confundir eventos estatisticamente independentes com eventos mutualmente exclusivos, nos quais a ocorrência de um evento impossibilita a ocorrência de outro evento.

2.3.5 Função Densidade de Probabilidade Gaussiana Também conhecida como Função Densidade de Probabilidade Normal, é a mais utilizada e aparece praticamente em todas as áreas da Ciência e Engenharia. Este fato deve-se à sua precisa descrição de quantidades práticas e que tenham significado no mundo em que vivemos, especialmente quantidades que são resultantes de diversos efeitos aleatórios (Pleyton et Pleebes, 2001). A função densidade gaussiana é matematicamente definida pela Equação 2.6. (x≠µ)2 1 f (x, µ, ‡) = Ô e≠ 2‡2 ‡ 2fi

(2.6)

onde os parâmetros µ e s representam, respectivamente, a média e desvio padrão da distribuição. A Figura 6 ilustra graficamente a diferentes distribuições densidade de probabilidade gaussianas. Verifica-se que os parâmetros µ e s são os únicos responsáveis pela forma da distribuição.

Figura 6 – Comparação entre diferentes distribuições gaussianas.

37

2.4. Cadeias de Markov

2.3.6 Processos Estocásticos O termo processo estocástico (ou processo aleatório) é frequentemente utilizado em relação a observações de um processo físico, orientado no tempo, que é controlado por um mecanismo aleatório. Mais precisamente, um processo estocástico é uma sequência de variáveis aleatórias Xt , onde t œ T é um índice de tempo ou de sequência (Hines et al., 2006). De acordo com Taylor et Karlin (1998), processos estocásticos podem ser entendidos como funções de um ou vários argumentos determinísticos cujo valores de saída são variáveis aleatórias. No caso mais simples possível e discretizado no tempo, um processo estocástico equivale a uma sequência de variáveis aleatórias conhecida como série temporal. Cadeias de Markov, a serem explicadas na próxima seção, consistem um tipo simplificado de processo estocástico.

2.4 Cadeias de Markov Processos Markovianos são um tipo especial de processos estocásticos que têm aplicabilidade junto à química, biologia, física, informática, entre outros, provavelmente abrangendo todas as áreas do conhecimento humano (Espindola, 2009). Em seu trabalho, Jelinek (1988) define processos estocásticos de tempo discreto sobre um espaço de estados também discreto e finito. Seja uma sequência de variáveis estocásticas X0 , X1 , . . . , Xt , . . . , XT , onde 0 Æ t Æ T representa uma ordenação discreta no tempo, definidas para um mesmo espaço de estados discreto e finito. Se nada mais é dito, a probabilidade conjunta dessas variáveis estocásticas é dada pela fórmula de Bayes (ver Equação 2.7). P (X0 X1 . . . XT ) =

T Ÿ

t=0

P (Xt |X0 X1 . . . Xt≠1 ) =

(2.7)

= P (X0 )P (X1 |X0 )P (X2 |X0 X1 ) . . . P (XT |X0 X1 . . . XT ≠1 ) Um processo estocástico que é regido pela Equação 2.7 é dito Markoviano se a probabilidade desse processo evoluir para um estado qualquer no instante seguinte é dependente única e exclusivamente do estado atual do sistema. Matematicamente: P (Xt |X0 X1 . . . Xt≠1 ) = P (Xt |Xt≠1 )

(2.8)

Em outras palavras, dada a sequência temporal de realizações em um processo estocástico Markoviano, a probabilidade de transição de Xt≠1 para Xt depende apenas do estado Xt≠1 . De acordo com Espindola (2009), Essa propriedade é conhecida como “Markov property”.

38

Capítulo 2. Referencial Teórico

Desta forma, para processos Markovianos, a Equação 7 pode ser reescrita da seguinte forma: P (X0 X1 . . . XT ) =

T Ÿ

t=0

P (Xt |Xt≠1 ) =

(2.9)

= P (X0 )P (X1 |X0 )P (X2 |X1 )P (X3 |X2 ) . . . P (XT |XT ≠1 ) Uma vez definido o que são processos Markovianos, é possível partirmos para definição de Cadeias de Markov, que nada mais são do que processos Markovianos em espaços de estados discretos, em tempo contínuo ou discreto. Uma Cadeia de Markov discretizada no tempo com espaço de estados discreto e finito apresenta as seguintes características (Espindola, 2009). 1. Um espaço de estados S = {s1 , s2 , s3 , . . . , sN };

2. Uma variável estocástica X a assumir valores do espaço de estados S em diferentes instantes de tempo; 3. Uma distribuição de probabilidade inicial para cada estado P (X0 = si );

= {fii }, tal que fii =

4. Uma distribuição de probabilidade de transição entre estados A = {aij }, tal que aij = P (Xt = sj |Xt≠1 = si ). As probabilidades de transição definidas pela matriz A possuem as seguintes propriedades: 0 Æ aij Æ 1 (2.10) N ÿ

j=1

aij =

N ÿ

j=1

P (Xt = sj |Xt≠1 = si ) = 1

(2.11)

Em outras palavras, as probabilidades de transição são todas maiores ou iguais a zero e menores ou iguais a um. A propriedade 2.11 ilustra que a soma das probabilidades de transição partindo do estado si para todos os estados definidos em S resulta em um, como esperado.

2.5 Modelos Ocultos de Markov Largamente utilizados no âmbito da inteligência artificial, os HMMs podem ser utilizados para tomar sequências de decisões em casos onde a decisão no tempo presente depende de parâmetros do tempo anterior (Duda et al., 2001). HMM são modelos Markovianos onde a observação da evolução dos estados do sistema se dá de forma indireta, como função probabilística da transição entre os estados

39

2.5. Modelos Ocultos de Markov

definidos num espaço de estados discreto e finito (Rabiner, 1989). A principal diferença entre os HMMs e demais formalismos Markovianos, tais como as cadeias de Markov, está na forma de observar o sistema. Enquanto que esta observação é direta na maioria dos processos Markovianos, em HMM a observação é indireta, pois é feita por inferência (Espindola, 2009). Para melhor entender a diferença entre estes formalismos Markovianos e HMM, basta imaginar o caso em que se deseja saber a condição do clima em determinado local. Uma forma de o fazer é consiste em observar variáveis que estão diretamente ligadas com o clima, tais como temperatura, umidade, luminosidade, entre outras. Esta abordagem, por exemplo, poderia ser utilizada num sistema modelado por uma cadeia de Markov. Outra forma de atingir esse objetivo é observando variáveis que indiretamente são influenciadas pelo clima. Por exemplo, observando-se o número de pessoas que caminham naquela localidade e como estão vestidas, tem-se indicativos da condição do clima naquele local. No contexto deste trabalho, HMMs apresentam formalmente as seguintes características (Espindola, 2009): 1. Um espaço de estados S = {s1 , s2 , s3 , . . . , sN };

2. Um conjunto de observáveis

= {y1 , y2 , y3 , . . . , yM };

3. Uma variável estocástica Q a assumir valores do espaço de estados S em diferentes instantes de tempo; 4. Uma variável estocástica O a assumir valores do conjunto de observáveis diferentes instantes de tempo; 5. Uma distribuição de probabilidade inicial para cada estado P (Q0 = si );

em

= {fii }, tal que fii =

6. Uma distribuição de probabilidade de transição entre estados A = {aij }, tal que aij = P (Qt = sj |Qt≠1 = si ).

7. Uma distribuição de probabilidade de observação B = {bij (k)}, tal que bij (k) = P (Ot = yk |Qt≠1 = si , Qt = sj ). Similarmente à Cadeia de Markov, as seguintes propriedades devem ser satisfeitas numa modelagem de HMM. 0 Æ aij Æ 1 N ÿ

j=1

aij =

N ÿ

(2.12)

P (Qt = sj |Qt≠1 = si ) = 1

(2.13)

0 Æ bij (k) Æ 1

(2.14)

j=1

40

Capítulo 2. Referencial Teórico

M ÿ

bij (k) =

k=1

M ÿ

k=1

P (Ot = yk |Qt≠1 = si , Qt = sj ) = 1

(2.15)

As propriedades 2.12 e 2.13 foram discutidas na seção anterior, ao passo que as propriedades 2.14 e 2.15 apresentam significados similares. Na distribuição de probabilidade de observação B, as probabilidades bij (k) estão compreendidas entre zero e um (Ver Equação 2.14). A Equação 2.15 estabelece que dada a transição do estado si para o estado sj , a soma das probabilidades dos possíveis observáveis yk œ resulta em um.

Genericamente, HMMs apresentam um número finito de estados. A cada instante de tempo t, um novo estado é acionado, dependendo das probabilidades de transição e observação do estado atual (Rabiner et Juang, 1986). A Figura 7 ilustra o processo evolutivo de um HMM, onde x(t) representa o estado no instante de tempo t e setas horizontais referem-se à probabilidade da transição de estado ocorrer, dada a observação y do ambiente.

Figura 7 – Transição de Estados em HMM.

2.5.1 Algoritmos de Treinamento Em HMM há quatro algoritmos de treinamento que estão bem fundamentados na literatura: Forward, Forward-Backward, Viterbi e Baum-Welch. De acordo com Espindola (2009), a escolha do algoritmo de treinamento deve ser baseada na aplicação em questão. Estes algoritmos são brevemente descritos a seguir: Algoritmo Forward: utilizado para calcular, num determinado instante de tempo, o estado mais provável, dado que o histórico de observações é conhecido. Algoritmo Forward-Backward: adiciona a parte Backward ao algoritmo Forward, a qual calcula probabilidades de observação nos instantes subsequentes a t, dado um ponto de partida (estado) em um instante de tempo t (Espindola, 2009). Algoritmo Viterbi: é geralmente utilizado para prever a sequência mais provável de estados que pode ser gerada (Babakura et al. 2014). Algoritmo Baum-Welch: utilizado para encontrar a estimativa de máxima verossimilhança de parâmetros desconhecidos de um HMM, quando conhecido o histórico de observáveis.

2.6. Trabalhos Correlatos

41

Trabalhos correlatos nos âmbitos de automação residencial e HMMs são discutidos no próximo tópico.

2.6 Trabalhos Correlatos Avanços na tecnologia, juntamente com a busca cada vez maior por conforto e segurança, fazem com que as residências tenham mais e melhores sistemas automatizados (Sgarbi, 2007). Algumas vezes estes sistemas são implementados com técnicas de inteligência artificial, entretanto a maioria deles possui apenas mecanismos automáticos (Bolzani, 2004). A principal ênfase destes sistemas está no gerenciamento de recursos, segurança, conforto e atualmente em entretenimento (Sgarbi, 2007). Muitos dos trabalhos publicados alegam que seus sistemas são inteligentes. Alguns deles detectam eventos como a presença dos habitantes e suas ações, ou possuem sensores que conseguem capturar mudanças nas condições do ambiente; a estes eventos são aplicadas reações que estão previamente configuradas (Bolzani, 2004). O conceito de inteligência deve ir além de automatizar ou simplesmente aplicar regras pré-estabelecidas; os sistemas inteligentes devem interagir com os usuários e aprender com seus comportamentos (Sgarbi, 2007). Diversos trabalhos têm sido desenvolvidos sob o tema de residências inteligentes. A grande maioria proveniente de países como os Estados Unidos, Japão e Comunidade Europeia. É tímida, ainda, a participação do Brasil no número de artigos publicados e de projetos desenvolvidos. Algumas associações e entidades têm surgido reunindo profissionais e ministrando cursos sobre novos produtos e tecnologias (Bolzani, 2004). Um dos fatores que motiva os países acima citados a desenvolverem sistemas inteligentes para residências tem sido a necessidade da economia de recursos naturais e energéticos. Eles acreditam que através da implementação de sensores, dispositivos inteligentes e sistemas de gerenciamento haverá uma significativa redução no consumo destes recursos, vitais para os seus contínuos processos de desenvolvimento (Bolzani, 2004). Poucos artigos foram encontrados pelo autor com o escopo de utilizar HMMs para aplicações em automação residencial e/ou ambientes inteligentes. Crandall et al. (2010) Introduziu a implementação de redes de sensores sem fio para identificar indivíduos utilizando conceitos de HMM. Uddin et al. (2011) conduziram uma pesquisa sobre a utilização de HMMs para extrair atributos de perfis de atividades rotineiras em lares. Outro importante trabalho, realizado por Babakura et al. (2014), foca na apresentação de um modelo de decisão baseado em HMMs para ambientes inteligentes. Até o presente momento, não foi encontrada pelo autor nenhuma produção científica no Brasil sobre a utilização de HMMs para aplicações em automação residencial.

42

Capítulo 2. Referencial Teórico

2.7 Conclusão do Capítulo Neste capítulo foram apresentados conceitos de automação residencial e protocolos de comunicação, as classificações dos métodos de aprendizagem de máquina e, como requisito para melhor entender os modelos Markovianos apresentados, também foram revisados tópicos básicos sobre Probabilidade. Por último, foi discutido o estado da arte e trabalhos correlatos em automação residencial com emprego de HMMs. Com base no que foi estudado, conclui-se que a utilização de HMM constitui uma abordagem válida para aplicações em automação residencial, permitindo realizar uma análise comparativa com outras técnicas de aprendizado de máquina. Adicionalmente, a presente proposta de trabalho constitui uma contribuição original nas pesquisas sobre automação residencial realizadas na Universidade de Brasília.

Parte III Especificação do Sistema

45

3 Especificação do Sistema Este capítulo apresenta a arquitetura proposta dos sistemas geral e simplificado, bem como especificações dos módulos necessários a este sistema. São apresentados, ainda neste capítulo, o pseudocódigo do algoritmo de treinamento, a métrica escolhida para efetuar a validação do sistema e simulações acerca de um problema similar que foi solucionado com emprego de HMM.

3.1 Sistema Geral Em um projeto de automação residencial, diversas variáveis físicas podem ser controladas. Para tanto, são necessários módulos de monitoramento destas variáveis e também módulos atuadores que possibilitem aplicar uma lei de controle sobre cada variável em questão. Todos os módulos devem ser interligados por meio de uma rede de comunicação à uma unidade central de computação, que é responsável por tomar decisões baseadas em modelos previamente estabelecidos. De forma geral, a arquitetura de um sistema de automação residencial pode ser entendida como aquela mostrada na Figura 8.

Figura 8 – Sistema Geral para Automação Residencial. Visando usar esta arquitetura para extrair atributos de perfis de atividades rotineiras em automação residencial usando HMM, as seguintes considerações devem ser ressaltadas: 1. O módulo Mestre, com maior capacidade computacional, implementa, para cada variável física, o HMM com seu respectivo algoritmo de treinamento. 2. Dado que o módulo Mestre faz uso dos dados de evolução do perfil de usuário para cada variável física, os requisitos de memória deste módulo devem ser levados em consideração.

46

Capítulo 3. Especificação do Sistema

3. Os módulos de monitoramento realizam a leitura das variáveis físicas usando sensores e conversores de dados. 4. Os módulos de monitoramento ou de atuação devem informar ao módulo Mestre quando o usuário efetua uma intervenção sobre o sistema, permitindo considerar a nova informação para atualizar as distribuições de probabilidade de observação e transição de estados.

3.2 Caso de Estudo: Monitoramento de Temperatura com HMM No contexto deste trabalho é proposto um caso de estudo que considera o uso de HMM para identificar e aprender o perfil do usuário em relação ao seu conforto térmico. A arquitetura proposta do sistema de automação residencial é mostrada na Figura 9. É válido enfatizar que o sistema proposto, ilustrado na Figura 9, tem plena capacidade para comportar diversos outros módulos (assim como mostrado na Figura 8). Entretanto, adicionar mais módulos para sensoriamento de outras grandezas físicas foge do escopo deste trabalho, que é propor um sistema que torne possível a utilização de HMM para aplicações em automação residencial.

Figura 9 – Arquitetura do Sistema Proposto. Os módulos são conectados por uma rede de comunicação sem fio. O módulo atuador, mostrado em cor cinza na Figura 9, não será objeto de estudo deste trabalho e, portanto, sua implementação não será realizada. Todavia, é fundamental que sejam conhecidas suas características para o completo entendimento da proposta. A seguir são descritos os sistemas presentes em cada um dos módulos.

3.2. Caso de Estudo: Monitoramento de Temperatura com HMM

47

1. Módulo Mestre • SD Card: unidade de armazenamento de dados. Será utilizada pelo algoritmo de treinamento. • Raspberry Pi: unidade de computação. Responsável por implementar o algoritmo de aprendizado e receber/transmitir informações para outros módulos. • CC2530ZNP: unidade computacional para transmissão e recepção de dados. 2. Módulo de Monitoramento • Sensor °C: unidade de sensoriamento. Transforma informação da temperatura em sinal elétrico, a ser interpretado pela unidade de computação. • CC2530ZNP: unidade computacional para leitura da unidade de sensoriamento, transmissão e recepção de dados. 3. Módulo Atuador • Equipamento de Controle Térmico: unidade de atuação. Realiza as operações necessárias estabilizar o ambiente na temperatura informada pela unidade de computação do módulo mestre. • CC2530ZNP: unidade computacional para transmissão e recepção de dados. Nas seções seguintes são apresentados em detalhe os sistemas que compõem os módulos Mestre e de Monitoramento.

3.2.1 Módulo Computacional (Mestre) A escolha do módulo computacional foi baseada em alguns fatores, dentre eles, pode-se listar: disponibilidade, praticidade de utilização, suporte oferecido, tamanho e custo. Mostrado na Figura 10, o Raspberry Pi, que é um computador com dimensões similares a de um cartão de crédito, mostrou-se uma escolha conveniente para a implementação física do módulo mestre.

Figura 10 – Computador Raspberry Pi.

48

Capítulo 3. Especificação do Sistema

O Raspberry Pi, modelo B, conta com o processador ARM11 operando a 700Mhz, 512 MB de memória flash e 26 pinos de uso geral. Apresenta interfaces ethernet, UART, SPI e I2C e I2S (eLinux, 2014).

3.2.2 Cartão de Memória SD Para armazenar dados, será utilizado um cartão de memória de 8GB classe 4 da SanDisk, mostrado na Figura 11.

Figura 11 – Cartão de Memória SD. Esta memória será utilizada para armazenar tanto o sistema operacional Raspbian utilizado quanto os dados de saída do algoritmo HMM.

3.2.3 Unidade de Monitoramento (Escravo) O módulo escolhido para realizar as atividades de monitoramento, transmissão e recepção de dados é o CC2530ZNP da Texas Instruments (Ver Figura 12), que conta com o microcontrolador MSP430, que é ideal para aplicações que requerem baixo consumo de energia, e o SoC CC2530, que será utilizado para a implementação da rede sem fio.

Figura 12 – Módulo CC2530ZNP. O SoC CC2530 atende as necessidades do modelo de comunicação escolhido, que será melhor explicado na seção 3.2.5. Quanto ao MSP430, além de ser recomendado para aplicações alimentadas por baterias, o mesmo conta com um conversor analógico-digital integrado de 10 bits, essencial para realizar a leitura do sensor de temperatura (a ser descrito na próxima seção). Uma grande vantagem deste módulo é que a antena é integrada na confecção da placa.

3.2. Caso de Estudo: Monitoramento de Temperatura com HMM

49

3.2.4 Sensor de Temperatura Para adquirir informações sobre a temperatura do ambiente, foi escolhida a utilização do sensor de temperatura LM35 da Texas Instruments. A Figura 13 ilustra o sensor escolhido.

Figura 13 – Sensor de Temperatura LM35. O sensor escolhido apresenta boas características para monitoramento de temperatura em uma residência, tais como acurácia de 0.5 °C, baixo consumo de corrente elétrica e faixa de operação de -55 °C até +150 °C. O LM35 não requer calibração externa e pode ser conectado de tal forma que sua tensão de saída seja proporcional à temperatura em graus centígrados (Vout =10mV/°C) (Texas Instruments, 2013). Este sensor será conectado à unidade de monitoramento, que por sua vez será responsável por enviar informações sobre a temperatura ambiente para o módulo mestre.

3.2.5 Rede de Comunicação ZigBee Por tornar aplicações em automação residencial mais flexíveis, optou-se neste trabalho por utilizar uma rede de comunicação sem fio. A Tabela 1 (ver seção 2.1.3) faz a comparação entre importantes tecnologias comunicação sem fio, tais como Wi-Fi, Bluetooth e ZigBee. O padrão ZiandgBee apresenta alcance relativamente alto para aplicações em automação residencial, aceita várias topologias de rede, conta com uma taxa de transferência de dados suficiente para envio e recepção de informações curtas, tais como leis de ação e apresenta baixos níveis de complexidade de implementação e consumo de potência. Além disso, o protocolo ZigBee pode operar em bas não licenciadas e sua relação custo-benefício é considerada alta para aplicações em automação residencial (Evangelista, 2010). Ainda na Tabela 1, é possível observar que dentre as principais aplicações do padrão ZigBee, estão: • monitoramento industrial; • automação em residencial; • redes de sensores.

50

Capítulo 3. Especificação do Sistema

De acordo com Atmel (2013), ainda que as tecnologias WiFi e ZigBee operem na mesma faixa de frequência (2400 a 2483 MHz), é possível que essas duas tecnologias coexistam em um ambiente sem que os níveis de interferência entre elas seja significativo. Quanto à escolha da topologia de rede, a considerada mais adequada para este trabalho é a do tipo árvore, conforme ilustra a Figura 14.

Figura 14 – Topologia de Rede Escolhida. Pode-se observar na Figura 14. que os dispositivos ZR são utilizados para aumentar a cobertura da rede, caso seja necessário. Nesta topologia, o dispositivo ZC comunica-se com todos os outros dispositivos da rede, direta ou indiretamente. O hardware escolhido que permitirá a comunicação entre os dispositivos é o CC2530 (presente no módulo CC2530ZNP mostrado na Figura 12). Fabricado pela Texas Instruments, o transceptor CC2530 é utilizado para implementar redes de comunicação IEEE 802.3.4 e ZigBee. Conta com 3 modos de operação de baixo consumo e sua potência de transmissão é programável (até 4.5 mW). Sua frequência de operação é também ajustável de 2394 MHz a 2507 MHz em intervalos de 1 MHz (Texas Instruments, 2011).

3.3 Algoritmo de Treinamento Proposto Utilizando-se da formalidade de HMMs, descrita na seção 2.5, o algoritmo de treinamento proposto apresenta as seguintes propriedades: 1. Um espaço de estados S = {s20 , s21 , s22 , . . . , s27 }, onde i em si denota valores considerados de temperatura para o sistema, em graus centígrados; 2. Um conjunto de observáveis = {y1 , y2 , y3 , . . . , yM }, que no contexto deste trabalho correspondem às intervenções do usuário no sistema de controle de temperatura em dado instante de tempo t; 3. Uma variável estocástica Q a assumir valores do espaço de estados S em diferentes instantes de tempo. 4. Uma variável estocástica O a assumir valores do conjunto de observáveis diferentes instantes de tempo.

em

51

3.3. Algoritmo de Treinamento Proposto

5. Uma distribuição de probabilidade inicial para cada estado P (Q0 = si ).

= fii , tal que fii =

6. Uma distribuição de probabilidade de transição entre estados A = {aij }, tal que aij = P (Qt = sj |Qt≠1 = si ). Esta distribuição de probabilidade não leva em conta as intervenções realizadas pelo usuário sobre o sistema, entretanto, somente as probabilidades de transição entre estados observadas até o tempo presente. 7. Uma distribuição de probabilidade de observação B = {bij (k)}, tal que bij (k) = P (Ot = yk |Qt≠1 = si , Qt = sj ), que é afetada unicamente pelo usuário ao intervir no sistema de controle de temperatura. A implementação do algoritmo do sistema é baseada no algoritmo de aprendizado Forward, apresentado brevemente na seção seção 2.5.1. O pseudocódigo do algoritmo a ser implementado é descrito a seguir.

Código Principal - Inicializar timer - Criar e inicializar a matriz de probabilidade de transição entre estados - Criar e inicializar a matriz de probabilidade de observação Loop: a cada 5 minutos, - Obter leitura do sensor de temperatura - Atualizar matriz de probabilidade de transição entre estados - Consultar matrizes de probabilidade de transição e observação (probabilidade conjunta) para identificar o estado mais provável de ser o desejado pelo usuário - Informar sistema de controle de temperatura para resfriar ou aquecer o ambiente, caso necessário. Fim do Loop Fim do Código Principal Interrupção: a cada intervenção do usuário sobre o sistema, - Obter leitura momentânea da temperatura desejada - Atualizar matriz de probabilidade de observação Fim da Interrupção

O pseudocódigo proposto anteriormente, baseado no algoritmo Forward, foi utilizado em outras situações para resolver um problema similar ao deste trabalho: utilizar

52

Capítulo 3. Especificação do Sistema

HMM para prever a posição de um automóvel utilizando somente sensores de ruído (microfone), baseando-se em distribuições de probabilidades de transição e observação, que eram atualizadas a cada instante de tempo t. Simulações acerca da solução deste último problema serão discutidas na próxima seção.

3.4 Métrica para Estimativa de Erro do Sistema de Previsão Existem diversas medidas de erro de previsão. A escolha de uma medida de acurácia pode variar de acordo com a seleção do modelo ou calibração de um dado modelo e com o tamanho das amostras utilizadas. Para alguns autores, algumas medidas de erro apresentam resultados superiores a outras. Morettin et Toloi (1985) indicam o Erro Quadrático Médio (Mean Square Error – MSE) como uma boa e prática medida de acurácia para a realização de estudos empíricos. O MSE é uma forma de avaliar a diferença entre um estimador e o verdadeiro valor da quantidade estimada. O MSE mede a média do quadrado do erro, com o erro sendo o montante pelo qual o estimador difere da quantidade a ser estimada. Quantitativamente, o MSE é calculado de acordo com a Equação 3.1. M SE =

n 1ÿ 2 (Yi ≠ Y¯i ) n i=1

(3.1)

onde n é o número de predições, Yi é o valor verdadeiro e Y¯i é o valor estimado. Neste trabalho será utilizada a medida de estimativa de erro MSE para quantificar o erro associado ao método utilizado para solucionar o problema em questão.

3.5 Simulações Prévias Usando HMM Nesta seção serão discutidas as simulações de dois problemas correlatos, que foram solucionados previamente para o projeto final da disciplina Inteligência Artificial na Universidade de Stanford. Ambos os problemas tratam da previsão da localização de um objeto dado um conjunto de observações (leituras de sensores) utilizando HMM. No primeiro problema, o objeto a ser localizado está estacionário: sua posição não varia com o tempo. Já no segundo problema, o objeto a ser localizado está constantemente em movimento.

3.5.1 Carro Estacionário Neste primeiro problema, o objetivo é descobrir a localização de um carro estacionário utilizando somente um microfone. Na Figura 15, o retângulo preto representa o carro equipado com microfone, o retângulo cinza representa o carro estacionário cuja

53

3.5. Simulações Prévias Usando HMM

localização será inferida com base somente na emissão de ruídos por ele, geometrias azuis representam obstáculos e os ladrilhos rosados representam visualmente a probabilidade do carro cinza estar em determinada posição do ambiente: quanto mais forte a coloração de rosa, maior é a probabilidade do mesmo estar presente no ladrilho. As subfiguras de (a) até (h) da Figura 15 ilustram a convergência na previsão da localização do carro cinza.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

Figura 15 – Simulação Carro Estacionário.

54

Capítulo 3. Especificação do Sistema

Observa-se que no início da simulação – parte (a) da Figura 15 – que os ladrilhos com maior probabilidade (mais rosados) estão dispostos radialmente em relação ao carro preto. Isto ocorre porque nenhuma ou pouca informação foi adquirida ainda. À medida que o carro preto se locomove (mais observações são adicionadas ao modelo probabilístico), a estimativa da localização do carro cinza melhora, até que convirja para a localização correta (ver parte (h) da Figura 15).

3.5.2 Carro em Movimento Neste problema, o objetivo é descobrir a localização de um carro em movimento utilizando somente um microfone. Na Figura 16, o retângulo preto representa o carro equipado com microfone, o retângulo cinza representa o carro em movimento cuja localização será inferida com base somente na emissão de ruídos por ele, geometrias azuis representam obstáculos e os ladrilhos rosados representam visualmente a probabilidade do carro cinza estar em determinada posição do ambiente: quanto mais forte a coloração de rosa, maior é a probabilidade do mesmo estar presente no ladrilho. As subfiguras de (a) até (h) da Figura 16 ilustram a convergência na previsão da localização do carro cinza.

55

3.5. Simulações Prévias Usando HMM

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

Figura 16 – Simulação Carro em Movimento. Observa-se que no início da simulação – parte (a) da Figura 16 – que os ladrilhos de maior probabilidade (mais rosados) estão bastante dispersos. Isto ocorre porque nenhuma ou pouca informação foi adquirida ainda. À medida que o carro cinza se locomove (mais observações são adicionadas ao modelo probabilístico), sua estimativa de localização melhora, até que convirja para a localização correta (ver parte (h) da Figura 16). Para

56

Capítulo 3. Especificação do Sistema

tornar esta solução possível, foi necessário treinar o algoritmo com as rotas mais usuais a serem traçadas por um veículo quando trafega no ambiente ilustrado.

3.6 Conclusão do Capítulo Neste capítulo foram apresentadas as arquiteturas propostas para um sistema de previsão de perfis de usuário em automação residencial utilizando HMM. Inicialmente foi apresentada uma arquitetura geral do sistema, com diversos módulos de monitoramento de variáveis físicas. Em seguida, foi proposta uma arquitetura específica para o caso de estudo de um único módulo de monitoramento de temperatura. Para o caso de estudo foram definidos os dispositivos necessários para a correta implementação destes sistemas. Foram também descritas as propriedades do algoritmo de treinamento proposto e seu pseudocódigo, baseados em um algoritmo já existente e bem conhecido na literatura (Forward algorithm). Soluções e simulações prévias, aplicadas ao problema de localização de um robô móvel, foram incluídas neste trabalho para mostrar a eficácia do método de aprendizagem de máquina escolhido.

Parte IV Simulações

59

4 Simulações Este capítulo apresenta detalhes sobre o perfil de temperatura do usuário e sobre a criação dos dados de treinamento pro algoritmo HMM. Posteriormente são discutidos os resultados das simulações realizadas em computador pessoal.

4.1 Perfil de Temperatura do Usuário Baseando-se no perfil de usuário previamente definido na seção 1.4, criou-se o perfil térmico desejado por aquele usuário. Este perfil é cíclico e tem período de 1 semana (10080 minutos). A Figura 17 ilustra este perfil.

Figura 17 – Perfil Térmico Desejado pelo Usuário.

4.2 Dados de Treinamento Considerando-se que os dados de treinamento não devem satisfazer igualmente o perfil térmico desejado pelo usuário, foi criado um perfil físico baseando-se na aproximação do perfil desejado (ilustrado na Figura 17). Primeiramente, calcula-se a série de Fourier para o perfil desejado (ver Figura 18). Em seguida, a ela é adicionando ruído branco (ver Figura 19) com as seguintes propriedades: • µ = 0.0°C; • s = 0.4°C. A Figura 18 ilustra a aproximação do perfil desejado por série de Fourier, em contraste com o perfil térmico desejado pelo usuário.

60

Capítulo 4. Simulações

Figura 18 – Série de Fourier para o Perfil Desejado. Adiciona-se ruído branco à forma de onda ilustrada em cor azul na Figura 18 para obter a forma de onda ilustrada em cor azul na Figura 19. O perfil térmico desejado pelo usuário permanece em cor vermelha.

Figura 19 – Perfil Térmico e Aproximação. É importante citar a necessidade de adicionar ruído ao perfil desejado, para então criar o perfil físico a ser utilizado pelo algoritmo de treinamento, pois este ruído pode significar a soma de algumas componentes, aleatórias ou não, tais como a inércia térmica, o erro associado aos sensores de temperatura, a incerteza da temperatura desejada pelo próprio usuário, variações na temperatura ambiente causada por fatores externos e/ou internos, entre outras. Um segundo ponto a ser enfatizado é a não ciclicidade do perfil físico. Isto ocorre porque o valor do ruído branco a ser adicionado em cada componente do perfil desejado, para cada semana, é aleatório. Portanto, o perfil utilizado para a primeira semana de treinamento do algoritmo é provavelmente diferente do perfil utilizado para a segunda semana, e assim por diante.

4.3. Simulações em Computador Pessoal

61

4.3 Simulações em Computador Pessoal Utilizou-se o perfil físico descrito na seção 4.2 como dado de treinamento para o algoritmo HMM. Este conjunto de dados relaciona-se diretamente, no algoritmo HMM, com a operação da matriz de probabilidade de transição entre estados. O resultado do algoritmo de treinamento, isto é, o perfil de temperatura previsto por ele, é ilustrado em cor azul na Figura 20, juntamente o com o perfil térmico desejado pelo usuário (em vermelho). É importante notar que, para cada instante de tempo, a saída do algoritmo implementado é sempre um valor inteiro de temperatura.

Figura 20 – Resultado da Aproximação do HMM. Percebe-se, ao analisar a Figura 20, que o algoritmo de treinamento foi capaz de identificar, com erros, o perfil de temperatura desejado pelo usuário. Utilizando-se a métrica de estimativa de erro MSE, é possível quantificar o erro. A Figura 21 ilustra o erro quadrático da aproximação em cada instante de tempo (em azul), juntamente com o MSE (em vermelho), que nada mais é do que a média dos erros quadráticos no intervalo de uma semana.

Figura 21 – Métrica MSE para Estimativa de Erro. A Figura 21 ilustrou, para a simulação da primeira semana com HMM, a distribui-

62

Capítulo 4. Simulações

ção das medidas de erro em cada instante de tempo. O valor MSE obtido com a simulação da primeira semana foi de 0.254 °C2 . Neste ponto, é importante analisar os erros pontuais cometidos. Ainda na Figura 21, é possível observar, para a primeira semana, a ocorrência de erros quadráticos de até 4 °C2 , o que corresponde a erros pontuais de até 2 °C. A explicação para a frequente ocorrência de erros está na escolha dados de treinamento utilizados para treinar o algoritmo HMM: um conjunto de dados aproximados A Figura 22 Ilustra o comportamento da métrica de estimativa de erro MSE para cada uma das 100 semanas simuladas com o algoritmo HMM.

Figura 22 – Métrica MSE para 100 semanas. Analisando-se o gráfico da Figura 22, é possível constatar que o resultado do HMM não varia significativamente com o passar das semanas. Observa-se também que o valor de erro obtido com a métrica MSE não converge para nenhum valor específico, entretanto, oscila em torno de aproximadamente 0.31°C2 . Isto deve-se à natureza aleatória dos dados de treinamento.

4.3.1 Intervenção do Usuário sobre o Sistema Quando o usuário intervém no sistema, informando-o a temperatura desejada por ele naquele instante de tempo, o algoritmo passar a levar em conta esse tipo de informação. Esta informação relacionada ao treinamento da matriz de probabilidade de observação do HMM. Imaginemos o seguinte caso hipotético: Após algumas semanas utilizando o sistema, o usuário decide, por razão qualquer, que o seu perfil de temperatura mudou em um determinado intervalo de tempo, e por isso espera que o sistema se adapte a seu novo perfil de temperatura. Para tanto, o usuário intervêm sobre o sistema utilizando o equipamento controle remoto. Este caso hipotético foi simulado com o algoritmo HMM, considerando que o perfil de temperatura desejado mudou de 23°C para 21°C no intervalo de tempo [4080,4200]

4.3. Simulações em Computador Pessoal

63

minutos, que corresponde ao intervalo de 20h00 até 22h00 nas noites de terça-feira. O usuário intervêm diretamente sobre o equipamento ar-condicionado às 20h30, 21h00 e 21h30, buscando aumentar seu conforto térmico, de acordo com suas novas expectativas. As Figuras 23 e 24 ilustram a mudança no perfil térmico desejado pelo usuário, juntamente com a crença do algoritmo HMM sobre o perfil desejado pelo usuário. Considera-se a semana que o usuário realizou as intervenções pela primeira vez como sendo a semana 1.

Figura 23 – Perfil Térmico Desejado (anteriormente à mudança).

Figura 24 – Perfil Térmico Desejado (posteriormente à mudança). Observa-se que, ainda que o usuário tenha mudado seu perfil térmico, o sistema não é capaz de identificar isto instantaneamente. Será necessário algum tempo para que o sistema possa aprender e então satisfazer as novas expectativas do usuário. As Figuras de 25 a 29 ilustram o entendimento do sistema sobre o perfil desejado pelo usuário logo após às 21h30 de terça-feira das semanas 1, 2, 3, 4 e 5, respectivamente.

64

Capítulo 4. Simulações

Figura 25 – Perfis Térmicos Desejado e Estimado para a Semana 1.

Figura 26 – Perfis Térmicos Desejado e Estimado para a Semana 2.

Figura 27 – Perfis Térmicos Desejado e Estimado para a Semana 3. Ao analisar as Figuras 25 a 29, observa-se que, com poucas semanas de treinamento, o perfil estimado pelo HMM consegue atender satisfatoriamente às expectativas do usuário. Já as Figuras 30 a 34 mostram a evolução do estimador Erro Quadrático logo após às 21h30 de terça-feira, juntamente com o valor MSE para o intervalo [4080,4200] minutos, das semanas 1 a 5, respectivamente.

4.3. Simulações em Computador Pessoal

65

Figura 28 – Perfis Térmicos Desejado e Estimado para a Semana 4.

Figura 29 – Perfis Térmicos Desejado e Estimado para a Semana 5.

Figura 30 – Erro Quadrático e MSE para a Semana 1.

Ao analisar as Figuras 30 a 34, observa-se que o valor do estimador MSE decresce com o tempo. Seus valores para as semanas 1 a 5 são 1.96°C2 , 0.63°C2 , 0.58°C2 , 0.54°C2 e 0.50°C2 , respectivamente.

66

Capítulo 4. Simulações

Figura 31 – Erro Quadrático e MSE para a Semana 2.

Figura 32 – Erro Quadrático e MSE para a Semana 3.

Figura 33 – Erro Quadrático e MSE para a Semana 4.

4.4 Conclusão do Capítulo Neste capítulo foi apresentado, em forma de gráfico, o perfil térmico desejado pelo usuário. A partir desse perfil térmico, foi criado e apresentado um perfil aproximado, a ser utilizado como dado de treinamento pelo HMM. Ainda neste capítulo, foram apresentadas e discutidas duas simulações distintas para verificar as funcionalidades e convergência do

4.4. Conclusão do Capítulo

Figura 34 – Erro Quadrático e MSE para a Semana 5. algoritmo de treinamento, realizadas em computador pessoal.

67

Parte V Implementação do Sistema

71

5 Implementação do Sistema Este capítulo apresenta detalhes sobre a implementação física do sistema, tais como sua arquitetura final, lista de materiais utilizados e tabela de custo dos produtos utilizados. Ainda neste capítulo é discutido o desenho dos experimentos para verificação funcional do sistema, assim como os resultados obtidos experimentalmente.

5.1 Arquitetura Final Após feitas as considerações acerca da disponibilidade, praticidade de utilização e facilidade de obtenção dos componentes e módulos eletrônicos, a arquitetura final do sistema implementado é ilustrada na Figura 35.

Figura 35 – Arquitetura Final Implementada. Na Figura 35, foram omitidos alguns componentes eletrônicos (resistores e LEDs) com a finalidade de melhorar o entendimento sobre a arquitetura proposta.

5.2 Lista de Materiais Utilizados Para a implementação física do sistema, fez-se necessário adquirir diversos produtos (hardware e software). A Tabela 2 mostra o custo total aproximado da implementação física do sistema, exceto pelo custo dos módulos CC2530ZNP, pois esses não são mais fabricados.

72

Capítulo 5. Implementação do Sistema

Tabela 2 – Lista Completa de Materiais Utilizados. Produto

Loja

Quantidade

Preço Unitário

Preço Total

Suporte Para Pilhas

http://www.farnellnewark.com.br

2

R$ 4,75

R$ 9,50

Conjunto 4 Pilhas AA BIC

http://www.kalunga.com.br

2

R$ 2,80

R$ 5,60

LD1117V33 - Regulador de Tensão

http://www.farnellnewark.com.br

3

R$ 1,47

R$ 4,41

LM35 – Sensor de Temperatura

Contato Eletrônica

2

R$ 6,95

R$ 13,90

Potenciômetro 10K

http://www.farnellnewark.com.br

2

R$ 3,21

R$ 6,42

Resistor

Contato Eletrônica

15

R$ 0,20

R$ 3,00

LED

Contato Eletrônica

2

R$ 0,30

R$ 0,60

Conversor USB-TTL

http://www.adafruit.com

1

R$ 23,00

R$ 23,00

Matriz de Contato (Protoboard)

http://www.soldafria.com.br

2

R$ 18,55

R$ 37,10

Chave Lógica

Contato Eletrônica http://www.soldafria.com.br

2

R$ 0,50

R$ 1,00

Cartão de Memória 8GB

http://www.ciadoseletronicos.com

1

R$ 34,90

R$ 34,90

Raspberry Pi

http://www.lojamundi.com.br

1

R$ 187,00

R$ 187,00

Pacote com Fios Conectores

Contato Eletrônica

1

R$ 10,00

R$ 10,00

Fonte de Tensão 5V

http://www.cauastore.com

1

R$ 31,00

R$ 31,00

Módulo CC2530ZNP

Não Manufaturado

3

-

-

IAR Workbench for MSP430

http://www.iar.com

1

R$ 0,00

R$ 0,00

Sistema Operacional Raspbian

http://www.raspberrypi.org/

1

R$ 0,00

R$ 0,00

Software TightVNC Server para Raspbian

http://www.tightvnc.com

1

R$ 0,00

R$ 0,00

Software RealVNC Client para OS X

http://www.realvnc.com

1

R$ 0,00

R$ 0,00

TOTAL

R$ 372,43

5.3 Desenho dos Experimentos Para verificar a funcionalidade do sistema implementado fisicamente, propõe-se uma verificação simplificada da funcionalidade do mesmo. De fato, verificar o sistema em seu funcionamento normal pode ser bastante dispendioso, visto que o sistema é programado processar informações de 5 em 5 minutos, durante todo o dia, todos os dias da semana. Uma possível solução para minimizar os esforços sobre as baterias de teste é reduzir a escala de tempo do sistema. Entretanto, ao fazer isso, torna-se inviável atuar sobre o sensor de temperatura LM35 de forma que o mesmo ofereça uma resposta em tempo hábil, devido à inércia térmica associada ao mesmo. Portanto, a solução utilizada para realizar os testes no sistema implementado fisicamente considera as seguintes simplificações no modo de operação do sistema: • A escala de tempo é reduzida na proporção 12:1. Ou seja, 1 minuto no sistema físico equivale a 5 segundos em tempo real. • A informação sobre a temperatura ambiente não será informada pelo sensor de temperatura. Alternativamente, esta informação será obtida por um dispositivo de resistência variável (potenciômetro), a ser controlado manualmente durante todo o tempo de teste.

5.4. Testes sobre o Sistema Implementado

73

Feitas as considerações sobre as simplificações presentes nos experimentos, é possível iniciar a bateria de testes.

5.4 Testes sobre o Sistema Implementado Foram realizados dois experimentos sobre o sistema físico. O primeiro experimento tem como finalidade averiguar se o sistema está de fato identificando o perfil térmico do usuário. Este experimento apresenta similaridades com a simulação realizada em computador pessoal mostrada na Figura 20. Entretanto, o experimento foi realizado para somente um dia da semana: terça-feira de 00h00 às 23h55. Quanto ao segundo experimento, será verificada quão bem o sistema físico trata as intervenções do usuário sobre o sistema. Para este experimento, será considerado o mesmo caso hipotético da seção 4.3.1, que será reescrito no parágrafo seguintepara fins de praticidade na leitura deste documento. Após algumas semanas utilizando o sistema, o usuário decide, por razão qualquer, que o seu perfil de temperatura mudou em um determinado intervalo de tempo, e por isso espera que o sistema se adapte a seu novo perfil de temperatura. Para tanto, o usuário intervêm sobre o sistema utilizando o equipamento controle remoto. Similarmente ao caso da seção 4.3.1, considera-se que o perfil de temperatura desejado pelo usuário muda de 23°C para 21°C no intervalo de tempo [4080,4200] minutos. O usuário intervêm diretamente sobre o equipamento ar-condicionado às 20h30, 21h00 e 21h30, pontualmente, buscando aumentar seu conforto térmico.

5.5 Resultados dos Testes Experimentais A Figura 36 ilustra o resultado do primeiro experimento, descrito na seção anterior e utilizando as simplificações mencionadas na seção 5.3.

Figura 36 – Perfil de Temperatura Obtido.

74

Capítulo 5. Implementação do Sistema

Observa-se da Figura 36, em geral, que a aproximação obtida pelo algoritmo HMM em muito se assemelha com a aproximação simulada em computador pessoal da Figura 20. Visando quantificar a qualidade da presente aproximação, o estimador MSE foi calculado para o resultado obtido durante todo o dia de terça-feira. O valor obtido foi de 0.381°C2 , ou cerca de 50% superior ao valor MSE encontrado para a simulação em computador pessoal. Para o segundo experimento, as Figuras 37 e 38 ilustram a mudança do perfil de temperatura do usuário de 23°C para 21°C no intervalo [4080,4200] minutos.

Figura 37 – Perfis de Temperatura Anteriormente à Mudança.

Figura 38 – Perfis de Temperatura Posteriormente à Mudança. Diante tal cenário, simulou-se as intervenções do usuário sobre o sistema de acordo com as definições da seção anterior. As Figuras 39 a 43 ilustram a evolução do perfil térmico estimado pelo HMM com o passar das semanas. Novamente, considera a primeira semana de mudanças no perfil de temperatura como o marco inicial, ou semana 1.

5.5. Resultados dos Testes Experimentais

Figura 39 – Perfil Térmico Estimado pelo HMM, Semana 1.

Figura 40 – Perfil Térmico Estimado pelo HMM, Semana 2.

Figura 41 – Perfil Térmico Estimado pelo HMM, Semana 3.

75

76

Capítulo 5. Implementação do Sistema

Figura 42 – Perfil Térmico Estimado pelo HMM, Semana 4.

Figura 43 – Perfil Térmico Estimado pelo HMM, Semana 5. Analisando-se visualmente os gráficos apresentados, é possível afirmar que o sistema conseguiu identificar as mudanças no perfil térmico desejado do usuário. Utilizandose da métrica de estimativa de erros MSE, calculou-se o erro quadrático médio associado à cada semana, no intervalo de tempo em questão. Para as semanas 1, 2, 3, 4 e 5, os valores MSE calculados são, 2.0.2°C2 , 1.12°C2 , 0.72°C2 , 0.68°C2 e 0.48°C2 , respectivamente.

5.6 Conclusão do Capítulo Neste capítulo foram apresentadas a arquitetura final do sistema, a lista de materiais (com preços) necessária para a completa implementação do sistema. Também foram discutidos o desenho dos experimentos, as considerações e simplificações dos testes experimentais, e seus resultados.

Parte VI Conclusões

79

6 Conclusões Neste trabalho é proposta a arquitetura de um sistema para controle térmico com aplicação em automação residencial, cujo objetivo principal é melhorar o conforto térmico de usuários em suas residências. O sistema proposto explora o método de aprendizagem de máquina supervisionada HMM para extrair atributos de perfis de atividades rotineiras realizadas em lares. O algoritmo HMM foi proposto e implementado baseando-se no algoritmo de treinamento Forward. Simulações foram necessárias para averiguar os resultados do algoritmo HMM implementado em computador pessoal. Verificou-se, para o primeiro teste ≠ o qual confere a capacidade de identificação e extração do perfil do usuário ≠ que o algoritmo de treinamento é capaz de, com uma semana de execução, extrair o perfil do usuário com erro médio quadrático de 0.25°C2 . Com o passar das semanas, verificou-se que o algoritmo não converge exatamente para o perfil desejado pelo usuário devido à configuração dos testes realizados, e atinge, aproximadamente, um erro quadrático médio de 0.31°C2 . Quanto ao segundo teste, o qual confere a capacidade de identificação de mudanças no perfil do usuário, o algoritmo de treinamento é capaz ≠ de acordo com critério utilizado ≠ de convergir para o perfil desejado após a terceira semana de intervenção do usuário sobre o sistema, quando é atingido um erro quadrático médio inferior a 0.60°C2 , que corresponde à redução de 69% do erro inicial. Foram adquiridos os componentes eletrônicos e unidades que constituem os módulos do sistema proposto paria realizar sua implementação físca. O padrão escolhido para efetuar a comunicação entre os módulos mestre e escravo foi o protocolo ZigBee. Testes experimentais foram necessários para averiguar o funcionamento do sistema implementado fisicamente como um todo. Verificou-se, para o primeiro teste proposto ≠ o qual confere a capacidade de identificação e extração do perfil do usuário ≠ que o sistema é capaz de, com um dia de execução, extrair parte (referente àquele dia) do perfil do usuário em questão de forma satisfatória, com erro médio quadrático de 0.38°C2 . Não foi verificado o desempenho do sistema implementado ao longo do tempo devido à característica exaustiva dos testes experimentais e, portanto, testes mais robustos sobre o sistema serão sugeridos na seção de trabalhos futuros. Quanto ao segundo teste, o qual confere a capacidade de identificação de mudanças no perfil do usuário, o sistema implementado é capaz ≠ de acordo com critério utilizado ≠ de convergir para o perfil

80

Capítulo 6. Conclusões

desejado após a quinta semana de intervenção do usuário sobre o sistema, quando é atingido um erro quadrático médio inferior a 0.62°C2 , que corresponde à redução de 69% do erro inicial. Os resultados das simulações realizadas em computador pessoal e dos testes experimentais realizados no sistema implementado mostram que o sistema apresenta resultados satisfatórios e, portanto, é possível concluir que um sistema para extração de atributos de perfis foi implementado fisicamente com sucesso.

6.1 Sugestões Para Trabalhos Futuros As perspectivas de trabalhos futuros descritas a seguir visam melhorias no sistema implementado e propostas para continuação deste trabalho. 1. Realizar testes experimentais mais condizentes com a realidade, eliminando-se as simplificações utilizadas neste trabalho, e mais robustos a erros. 2. Melhorar a precisão do sistema implementado. Isto pode ser feito utilizando-se sensores de temperatura com maior precisão e reduzindo-se o intervalo de tempo considerado neste trabalho. Para tanto, será necessário remodelar o sistema quanto à forma de processamento dos dados monitorados e quanto ao número de estados utilizado pelo algoritmo de treinamento, o que levará a um maior consumo de memória de armazenamento. 3. Expandir o sistema para atender outras variáveis físicas, conforme ilustrado na Figura 8. Sugere-se a inclusão das variáveis físicas umidade e iluminação. 4. Estudar e implementar outros algoritmos de aprendizagem de máquina ≠ supervisionada ou não-supervisionada ≠ com a finalidade de efetuar comparações com os resultados obtidos neste trabalho.

81

Referências Bibliográficas Aarts, E., Roovers, R., Embedded Design Issues in Ambiente Intelligence. Ambient Intelligence: Impact on Embedded System Design. 2004 Kluwer Academic Publishers New York, Boston, Dordrecht, London, Moscow, 2004. Arboleda, D.M.M., Implementação e Simulação de Algoritmos de Escalonamento para Sistemas de Elevadores usando Arquiteturas Reconfiguráveis. Dissertação (Mestrado). Universidade de Brasília, Faculdade de Tecnologia, Brasília, 2006. Atmel, Application Note: Coexistence between ZigBee and Other 2.4GHz Products. 2013. Artigo disponível em: http://www.atmel.com/Images/Atmel-42190-Coexistence-between-ZigBee-and-Other-24GHz-Products_AP-Note_AT02845.pdf. Acesso em 04/2014. Babakura, A., Sulaiman, M.N., Mustapha, N., Perumal, T., HMM-Based Decision Model for Smart Home Environment. International Journal of Smart Home. Vol.8, No.1, pp. 129-138. 2014. Barbosa, L.R.G., Rede CAN. Trabalho (Graduação). Escola de Engenharia da UFMG. Universidade Federal de Minas Gerais, Belo Horizonte, 2003. Bolzani, C., Desenvolvimento de um simulador de controle de dispositivos residenciais inteligentes: uma introdução aos sistemas domóticos. Dissertação (Mestrado). Universidade de São Paulo. São Paulo, 2004. Bolzani, C., Desmistificando a Domótica. AURESIDE. 2007. Artigo disponível em: http://www.aureside.org.br/artigos/default.aspfile=01.asp&id=74. Acesso em 03/2014. Comm5, Aplicações em redes RS-485. Artigo disponível em: http://www.comm5.com.br/desenvolvedores/artigos.asp?IDArtigo=15. Acesso em 03/2014. Cook, D.J. & Das, S.K., 2007, How smart are our environments? An updated look at the state of the art. Pervasive and Mobile Computing 3, pp. 53–73. Design and Use of Smart Environments. Crandall, A. S., Cook, D.J. “Using hidden Markov Model for Resident Identification”, doi.computersociety.org/10.1109/IE. 2010. Duda, R.O., Hart, P.E. & Stork, D.G., 2001 Pattern Classification. John Wiley & Sons, New York, second edition. Eisencraft, M., Loiola, M. Curso de Probabilidade. Universidade Federal do ABC.

82

Referências Bibliográficas

São Paulo. Notas de Aula. 2011. Espindola, L.S., Um estudo sobre Modelos Ocultos de Markov, HMM – Hidden Markov Models. Pontifícia Universidade Católica do Rio Grande do Sul, Faculdade de Informática, Porto Alegre. 2009. Evangelista, D.S., Integração de Redes de Sensores ZigBee para Automação Predial Utilizando Módulos Meshbean. Trabalho (Graduação). Universidade de Brasília. Departamento de Engenharia Elétrica. Brasília, 2010. Ferreira, E.D.C., Automação Residencial Utilizando Protocolo CAN. Trabalho (Graduação). Universidade Federal do Paraná. Departamento de Engenharia Elétrica. Curitiba, 2009. Frenzel, L.E., Wireless control that simply works. A supplement to electronic design. pp. 1-12, 2004. Gajski, D., Abdi, S., Gerstlauer, A., Schirner, G., Embedded System Design: Modeling, Synthesis and Verification. New York, NY, USA: Springer, 2009. Garcia, N. L., Probabilidade Condicional. Instituto de Matemática, Estatística e Computação Científica, Universidade Estadual de Campinas. Notas de Aula. 2008. Gazziro, M., Microprocessadores: padrões de comunicação serial (RS-422, 423, 449 e 485). Universidade de São Paulo, Escola de Engenharia de São Carlos. São Carlos. Notas de Aula. 2013. Halswanter, T., Distributions of one variable. 2014. Artigo disponível em: http://wo rk.thasl-wanter.at/Stats/html/statsDistributions.html. Acesso em 03/2014. IEEE, Institute of Electrical and Electronics Engineers. IEEE standard 802.15.4. Artigo disponível em: http://standards.ieee.org/getieee802/download/802.15.4-2011.pdf. Acesso em 03/2014. Jelinek, F., Statistical Methods for Speech Recognition. The MIT Press. Cambridge, 1988. Karlin, Samuel & Taylor, Howard M., An Introduction to Stochastic Modeling, Academic Press. 1988. Lamberts, R., Conforto e Stress Térmico. Universidade Federal de Santa Catarina. Departamento de Engenharia Civil. Santa Catarina, 2013. Luz, I.A.S., Redes de Sensores Heterogênia. Trabalho (Graduação). Universidade Estadual de Feira de Santana, Feira de Santana, 2010. Medeiros, H.; Casa do futuro. Revista Téchne. 2009. Artigo disponível em: http://w ww.aureside.org.br/artigos/techne.pdf. Acesso em 03/2014.

83

Michalski, R.S., Carbonell, J.G. & Mitchell, T.M. (eds.), 1983, Machine Learning: An Artificial Intelligence Approach. Morgan Kaufmann, Los Altos, Califórnia. Monsignore, F., Sensoriamento de ambiente utilizando o padrão ZigBee. Dissertação (Mestrado). Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos, 2007. Morettin, P. A.; Toloi, C. M. de C. Modelos para previsão de séries temporais. Rio de Janeiro: IMPA, 1981. 2v. Trabalho apresentado no XIII Colóquio Brasileiro de Matemática, Poços de Caldas, 1985. NR, Norma Regulamentadora Ministério do Trabalho e Emprego. NR-17: Ergonomia em Engenharia de Segurança e em Medicina do Trabalho. 2009. Oliveira, F.A.R., Instrumentação e identificação de um ambiente predial visando controle preditivo do conforto térmico. Dissertação (Mestrado). Universidade de Brasília, Faculdade de Tecnologia, Brasília, 2010. Osório, A.S., Filho, J.D., Santos, M.C., Pimentel, V.C., 2010. Automação Residencial. Trabalho (Graduação), Universidade Federal do Rio Grande do Norte, Departamento de Engenharia Elétrica, Natal, 15p. Peyton, Z. Pleebes, Jr., Probability, Random Variables And Random Signal Principles, 4th ed. New York: McGraw-Hill, 2001. Rabiner, L.R. & Juang, B.H., An Introduction to Hidden Markov Models. IEEE ASSP Magazine 3, pp. 4–16, 1986. eLinux. Raspberry Pi Hardware, 2014. Artigo Disponível em: http://elinux.org/RPi _Hardware. Acesso em 06/2014. Sgarbi, J.A., Domótica Inteligente: Automação Residencial Baseada em Comportamento. Dissertação (Mestrado), Centro Universitário da FEI, Departamento de Engenharia Elétrica, São Bernardo do Campo, 2007. Silva, F.C., Redes de comunicação para aplicações em automação residencial: revisão de literatura. Monografia (Graduação), Universidade Federal de Lavras, Departamento de Ciência da Computação, Minas Gerais, 2006. Smith, W., Bioinformatics. Presbyterian College. Notas de Aula. 2013. Streeton M., Stanfield, C., Zigbee: the telemetry solution? The IEEE seminar on Telemetry and Telematics. Savoy Place, London. pp. 1-8, 2005. Texas Instruments, CC2530 Datasheet, 2011. Artigo Disponível em: http://www.ti .com/lit/ds/symlink/cc2530.pdf. Acesso em 06/2014. Texas Instruments, LM35 Datasheet, 2013. Artigo Disponível em: http://www.ti .com/lit/ds/symlink/lm35.pdf. Acesso em 06/2014.

84

Referências Bibliográficas

Uddin, M.Z., Kim, T., Kim T.J, “Video-based Indoor Human Gait Recognition Using Depth Imaging and Hidden Markov Model: A Smart System for Smart Home”, Indoor and Built Environment. 2011. Zambiasi, S. P., Ambientes Inteligentes. Dissertação (Mestrado), Universidade Federal de Santa Catarina, Departamento de Ciência da Computação. Florianópolis, 2002.

Apêndices

87

APÊNDICE A – Algoritmo HMM em C para Raspberry Pi Será apresentado o algoritmo HMM em linguagem C implementado no computador Raspberry Pi. O resultado da execução deste algoritmo é a geração de quatro arquivos texto: 1. Transition_Probability: Neste arquivo é armazenada a matriz de probabilidade de transição entre estados. Este arquivo é sempre modificado enquanto o algoritmo estiver sendo executado, a cada 5 minutos. De acordo com a aproximação utilizada, este arquivo ocupa 1.4 MB de memória de armazenamento; 2. Observation_Probability: Neste arquivo é armazenada a matriz de probabilidade de observação. Este arquivo é modificado somente quando há intervenções do usuário sobre o sistema. De acordo com a aproximação utilizada, este arquivo ocupa 1.4 MB de memória de armazenamento; 3. Total_Probability: Neste arquivo é armazenada a matriz de probabilidade total, calculada com base nas matrizes de probabilidade de transição e observação. De acordo com a aproximação utilizada, este arquivo ocupa 1.4 MB de memória de armazenamento; 4. belief : Neste arquivo é armazenado o perfil de temperatura identificado pelo algoritmo HMM. Este arquivo é modificado enquanto o algoritmo estiver sendo executado, a cada 5 minutos. De acordo com a aproximação utilizada, este arquivo ocupa 20 kB de memória de armazenamento;

1 2 3 4 5 6 7 8 9

#include #include #include #include #include #include #include #include #include



10 11

#define DEVICE0 "AE51"

88 12 13 14 15 16 17 18 19 20 21 22 23

APÊNDICE A. Algoritmo HMM em C para Raspberry Pi

#define DEVICE1 "8E54" #define MAX_BYTES 512 #define N_states 8 #define N_discrete 2016 #define ONEWEEK 10080 #define TOTAL N_discrete*pow(N_states,2) #define PI acos(≠1) #define TRAN_STD 5.0 #define OBSERV_STD 1.5 #define TIME_STD 2.0 #define MIN_AS_SECONDS 60 // Tempo de execucao: 1 minuto equivale ... a MIN_AS_SECONDS segundos. //#define RUN_ONCE

24 25 26 27 28 29 30 31 32 33 34

void check_inputs(int argc, char* argv[]); void uart_init(int* uart_fd, char* argv[]); double gaussian_pdf(int x, int mean, float std); void normalize(double* vector, int posicao); int temperature_belief(double* vector, int indice, int ... leitura_temperatura); float adc10_to_temperature(int ADC10_value); float check_temperature(float temperature); void catch_alarm(int sig); void currenttime(void); void wait_for_alarm(void);

35 36

struct tm *local; time_t tempo; 38 int hora=0, minuto=0, segundo=0, dia_semana=0; 39 int hora2, minuto2, segundo2, dia_semana2, milissegundo2; 37

40 41

volatile sig_atomic_t hold_and_go = 0; volatile sig_atomic_t zigbee_device0 = 0; 43 volatile sig_atomic_t zigbee_device1 = 0; 42 44 45

int main(int argc, char* argv[]) { srand(time(NULL)); 47 signal(SIGALRM, catch_alarm); 46 48 49 50 51 52

FILE* FILE* FILE* FILE*

fp2; fp4; fp5; fp6;

53 54 55 56

int data_length; unsigned char data[MAX_BYTES]; int uart0_filestream;

89 57 58 59 60 61

double* Tran_Prob; double* Observ_Prob; double* Total_Prob; int* Belief;

62 63 64 65 66

Tran_Prob = (double*) malloc(TOTAL*sizeof(double)); Observ_Prob = (double*) malloc(TOTAL*sizeof(double)); Total_Prob = (double*) malloc(TOTAL*sizeof(double)); Belief = (int*) malloc(N_discrete*sizeof(int));

67 68 69 70 71 72

int leitura_tempo=0; int posicao, posicao2, aux, aux2, indice, i, k; char device[4]; unsigned char leitura_controle[3]; float device_battery[3], leitura_temperatura[3], ... leitura_temp_controle[3];

73 74 75 76 77 78 79 80

for (i=0;i 6) { dia_semana = 0; }

232 233

leitura_tempo = (floor(minuto/5))*5 + 60*hora + ... 1440*(dia_semana);

234 235 236

zigbee_device0 = 0; zigbee_device1 = 0;

237 238 239 240

currenttime(); printf("\nDia da semana: %d\tHorario atual: ... %02d:%02d:%02d\n", dia_semana2, hora2, minuto2, segundo2); printf("Dia da semana: %d\tHorario sistema: ... %02d:%02d:%02d\t%05d\n", dia_semana, hora, minuto, ... segundo, leitura_tempo);

241 242

#ifndef RUN_ONCE } 244 #endif 245 return 0; 243

94 246

APÊNDICE A. Algoritmo HMM em C para Raspberry Pi

}

247 248 249

/* * * * * * * * * * * * * * * * * * * * * * / 250 /* Funcoes */ 251 /* * * * * * * * * * * * * * * * * * * * * */ 252 253 254 255 256 257 258 259 260

void check_inputs(int argc, char* argv[]) { if (argc != 3) { printf("\n* * * Modo de execucao incorreto!\n"); printf("* * * Utilize a seguinte sintaxe: %s [device ... location] [baud rate]\n",argv[0]); printf("* * * Exemplo: %s /dev/tty0 9600\n\n",argv[0]); exit(≠1); } }

261 262

void uart_init(int* uart_fd, char* argv[]) {

263 264

*uart_fd = open(argv[1], O_RDWR | O_NOCTTY | O_NDELAY);

265 266

if (*uart_fd < 0) { printf("\nError: Unable to open %s\n\n",argv[1]); exit(≠1); }

267 268 269 270 271

struct termios options; tcgetattr(*uart_fd, &options);

272 273 274

options.c_cflag options.c_cflag options.c_cflag options.c_cflag options.c_cflag

275 276 277 278

|= &= &= &= |=

atoi(argv[2]) | CLOCAL | CREAD | CRTSCTS; ¬PARENB; ¬CSTOPB; ¬CSIZE; CS8;

279 280

options.c_iflag = IGNPAR; options.c_oflag = 0; options.c_lflag &= ¬(ICANON | ECHO | ECHOE | ISIG);

281 282 283 284

tcflush(*uart_fd, TCIFLUSH); tcsetattr(*uart_fd, TCSANOW, &options);

285 286

}

287 288

int temperature_belief(double* vector, int indice, int ... leitura_temperatura) { 289 double maior[N_states] = {}; 290 int i,maior_indice[N_states] = {};

95 291

int k = 0; int menor = 7, menor_indice, diferenca;

292 293 294

for (i=0;i maior[k]) { maior[k] = vector[indice+i]; maior_indice[k] = i; } else if (vector[indice+i] == maior[k]) { k++; maior[k] = vector[indice+i]; maior_indice[k] = i; } }

295 296 297 298 299 300 301 302 303 304 305

for (i=0;itm_sec; minuto2 = local≠>tm_min; hora2 = local≠>tm_hour; }

353 354 355 356 357 358 359 360 361 362 363

void wait_for_alarm(void) { if (hold_and_go == 0) while (hold_and_go == 0) { usleep(1E5); } else while (hold_and_go != 0) { usleep(1E5); } }

364 365

void catch_alarm(int sig) { if (hold_and_go == 0) 367 hold_and_go = 1; 368 else 369 hold_and_go = 0; 366

370 371

alarm(5*MIN_AS_SECONDS); signal(sig, catch_alarm);

372 373

}

97

APÊNDICE B – Algoritmo em C para Criação do Perfil de Temperatura Será apresentado o algoritmo em linguagem C utilizado para a criação do perfil de temperatura desejado pelo usuário. O resultado da execução deste algoritmo é o arquivo texto dados_treinamento, onde suas linhas apresentam o seguinte formato: Tempo (em minutos)

Temperatura (em graus centígrados)

Como, por exemplo: 00000 00005 00010 00015 00020 .. .

23 23 22 21 22 .. .

10080

1

#include #include 3 #include 4 #include 5 #include 2

21



6 7

int main(int argc, char* argv[]) { // Ponteiro para arquivos 9 FILE* fp; 10 int i; 8

11 12 13 14

struct tm *local; time_t tempo; int hora, minuto, segundo, dia_semana;

15 16 17 18 19 20

tempo = time(NULL); local = localtime(&tempo); dia_semana = local≠>tm_wday; segundo = local≠>tm_sec; minuto = local≠>tm_min;

// // // // //

Pega a hora atual do sistema. Converte≠o em uma estrutura tm. calcula o dia da semana calcula o segundo calcula o minuto

98 21

APÊNDICE B. Algoritmo em C para Criação do Perfil de Temperatura

hora = local≠>tm_hour;

// calcula a hora

22 23 24 25 26

printf("Dia da semana: %d\tHora atual: %02d:%02d:%02d\n", ... dia_semana+1, hora, minuto, segundo); /* ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ */ fp = fopen("dados_treinamento","w");

27 28 29 30 31 32

/* ≠ ≠ ≠ ≠ DOMINGO ≠ ≠ ≠ ≠ */ // DOMINGO 00h00 ¬ 09h00: 21oC for (i=0;i
Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.