controle de temperatura para automação residencial...

110
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

Upload: phamanh

Post on 01-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Universidade de Brasília - UnBFaculdade UnB Gama - FGA

Engenharia Eletrônica

Controle de Temperatura para AutomaçãoResidencial Utilizando Modelos Ocultos de

Markov

Autor: Enzo Mendes Montoya LazoOrientador: Professor Dr. Daniel Mauricio Muñoz Arboleada

Brasília, DF2014

Enzo Mendes Montoya Lazo

Controle de Temperatura para Automação ResidencialUtilizando Modelos Ocultos de Markov

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

Universidade de Brasília - UnB

Faculdade UnB Gama - FGA

Orientador: Professor Dr. Daniel Mauricio Muñoz Arboleada

Brasília, DF2014

Enzo Mendes Montoya LazoControle de Temperatura para Automação Residencial Utilizando Modelos

Ocultos de Markov/ Enzo Mendes Montoya Lazo. – Brasília, DF, 2014-108 p. : il. Cores ; 30 cm.

Orientador: Professor Dr. Daniel Mauricio Muñoz Arboleada

Trabalho de Conclusão de Curso – Universidade de Brasília - UnBFaculdade 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. FaculdadeUnB Gama. IV. Controle de Temperatura para Automação Residencial UtilizandoModelos Ocultos de Markov.

CDU 02:141:005.6

Enzo Mendes Montoya Lazo

Controle de Temperatura para Automação ResidencialUtilizando Modelos Ocultos de Markov

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

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

Professor Dr. Daniel Mauricio MuñozArboleadaOrientador

Professor Dr. Sandro Augusto PavlikHaddad

Convidado 1

Professora Dra. Lourdes Mattos BrasilConvidado 2

Brasília, DF2014

Resumo

Neste trabalho é proposto um sistema para controle de temperatura base-ado no método de aprendizagem de máquina Modelos Ocultos de Markov (HiddenMarkov Models – HMM) para aplicações em automação residencial. O objetivo éminimizar a necessidade de intervenção do usuário em equipamentos de controlede 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 agentesde software melhorarem suas medidas de desempenho ao longo do tempo. A meto-dologia de pesquisa escolhida para este trabalho é do tipo bottom-up, onde módulosindividuais do sistema são especificados e desenvolvidos para posteriormente sereminterconectados, formando assim, o sistema completo. Neste trabalho é abordadoum caso de estudo para controle de temperatura com um único módulo de monito-ramento. A solução proposta considera um módulo mestre no qual é implementadoo algoritmo de treinamento para o HMM e um módulo escravo para monitoramentodo sensor de temperatura. Adicionalmente, foi escolhida um protocolo de rede decomunicaçã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 testesexperimentais demonstram que a arquitetura do sistema proposto foi implementadocom 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 HiddenMarkov Models (HMM) for applications in residential automation. The main goal isto minimize human intervention on Heating, Venting and Air Conditioning (HVAC)systems, and then consequently to elevate the user thermal comfort. In order toachieve this objective, it is necessary to identify the user profile. Machine learningis a research area that studies the techniques that make it possible for softwareagents to improve their operation over time. The bottom-up methodology is theresearch methodology chosen for this work, where system individual modules arespecified and developed to be posteriorly connected, thus molding the completesystem. The present work addresses a case study for temperature control using amonitoring module. The proposed solution considers a master module, on whichit is implemented the training algorithm for the HMM and a slave module fortemperature sensor monitoring. Additionally, it is chosen a wireless communicationnetwork based on the ZigBee protocol. HMM designs for solving similar problemswere previously accomplished on a personal computer, demonstrating the viabilityfor the proposed solution. Experimental test and simulation results demonstratethat the proposed system architecture was successfully implemented.

Key-words: machine learning, hidden markov models, residential automation, ther-mal control, zigbee.

Sumário

I Introdução 17

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.1 Descrição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.5 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

II Referencial Teórico 25

2 Referencial Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.1 Automação Residencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.1 Variáveis Físicas a Serem Automatizadas . . . . . . . . . . . . . . . 282.1.2 Modelos de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . 292.1.3 Protocolo ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.1.4 Protocolo Controller Area Network – CAN . . . . . . . . . . . . . . 312.1.5 Protocolo RS-485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2 Modelo de Aprendizagem para Automação Residencial . . . . . . . . . . . 332.3 Conceitos de Probabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.1 Variável Aleatória . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3.2 Probabilidade Conjunta . . . . . . . . . . . . . . . . . . . . . . . . 352.3.3 Probabilidade Condicional . . . . . . . . . . . . . . . . . . . . . . . 352.3.4 Independência entre Eventos . . . . . . . . . . . . . . . . . . . . . . 352.3.5 Função Densidade de Probabilidade Gaussiana . . . . . . . . . . . . 362.3.6 Processos Estocásticos . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.4 Cadeias de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.5 Modelos Ocultos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.5.1 Algoritmos de Treinamento . . . . . . . . . . . . . . . . . . . . . . 402.6 Trabalhos Correlatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7 Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

III Especificação do Sistema 43

3 Especificação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.1 Sistema Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2 Caso de Estudo: Monitoramento de Temperatura com HMM . . . . . . . . 463.2.1 Módulo Computacional (Mestre) . . . . . . . . . . . . . . . . . . . 473.2.2 Cartão de Memória SD . . . . . . . . . . . . . . . . . . . . . . . . . 483.2.3 Unidade de Monitoramento (Escravo) . . . . . . . . . . . . . . . . . 483.2.4 Sensor de Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . 493.2.5 Rede de Comunicação ZigBee . . . . . . . . . . . . . . . . . . . . . 49

3.3 Algoritmo de Treinamento Proposto . . . . . . . . . . . . . . . . . . . . . . 503.4 Métrica para Estimativa de Erro do Sistema de Previsão . . . . . . . . . . 523.5 Simulações Prévias Usando HMM . . . . . . . . . . . . . . . . . . . . . . . 52

3.5.1 Carro Estacionário . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.5.2 Carro em Movimento . . . . . . . . . . . . . . . . . . . . . . . . . . 54

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

IV Simulações 57

4 Simulações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.1 Perfil de Temperatura do Usuário . . . . . . . . . . . . . . . . . . . . . . . 594.2 Dados de Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.3 Simulações em Computador Pessoal . . . . . . . . . . . . . . . . . . . . . . 61

4.3.1 Intervenção do Usuário sobre o Sistema . . . . . . . . . . . . . . . . 624.4 Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

V Implementação do Sistema 69

5 Implementação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.1 Arquitetura Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.2 Lista de Materiais Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . 715.3 Desenho dos Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.4 Testes sobre o Sistema Implementado . . . . . . . . . . . . . . . . . . . . . 735.5 Resultados dos Testes Experimentais . . . . . . . . . . . . . . . . . . . . . 735.6 Conclusão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

VI Conclusões 77

6 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.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. . . . . . . . . . . . . . . . . . . . . . . 28Figura 2 – Topologias de Rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figura 3 – Topologia de Rede CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . 32Figura 4 – Barramento RS-485. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Figura 5 – Conceito de variável aleatória. . . . . . . . . . . . . . . . . . . . . . . . 34Figura 6 – Comparação entre diferentes distribuições gaussianas. . . . . . . . . . . 36Figura 7 – Transição de Estados em HMM. . . . . . . . . . . . . . . . . . . . . . . 40

Figura 8 – Sistema Geral para Automação Residencial. . . . . . . . . . . . . . . . 45Figura 9 – Arquitetura do Sistema Proposto. . . . . . . . . . . . . . . . . . . . . . 46Figura 10 –Computador Raspberry Pi. . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 11 –Cartão de Memória SD. . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figura 12 –Módulo CC2530ZNP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figura 13 –Sensor de Temperatura LM35. . . . . . . . . . . . . . . . . . . . . . . . 49Figura 14 –Topologia de Rede Escolhida. . . . . . . . . . . . . . . . . . . . . . . . 50Figura 15 –Simulação Carro Estacionário. . . . . . . . . . . . . . . . . . . . . . . . 53Figura 16 –Simulação Carro em Movimento. . . . . . . . . . . . . . . . . . . . . . 55

Figura 17 –Perfil Térmico Desejado pelo Usuário. . . . . . . . . . . . . . . . . . . . 59Figura 18 –Série de Fourier para o Perfil Desejado. . . . . . . . . . . . . . . . . . . 60Figura 19 –Perfil Térmico e Aproximação. . . . . . . . . . . . . . . . . . . . . . . . 60Figura 20 –Resultado da Aproximação do HMM. . . . . . . . . . . . . . . . . . . . 61Figura 21 –Métrica MSE para Estimativa de Erro. . . . . . . . . . . . . . . . . . . 61Figura 22 –Métrica MSE para 100 semanas. . . . . . . . . . . . . . . . . . . . . . . 62Figura 23 –Perfil Térmico Desejado (anteriormente à mudança). . . . . . . . . . . 63Figura 24 –Perfil Térmico Desejado (posteriormente à mudança). . . . . . . . . . . 63Figura 25 –Perfis Térmicos Desejado e Estimado para a Semana 1. . . . . . . . . . 64Figura 26 –Perfis Térmicos Desejado e Estimado para a Semana 2. . . . . . . . . . 64Figura 27 –Perfis Térmicos Desejado e Estimado para a Semana 3. . . . . . . . . . 64Figura 28 –Perfis Térmicos Desejado e Estimado para a Semana 4. . . . . . . . . . 65Figura 29 –Perfis Térmicos Desejado e Estimado para a Semana 5. . . . . . . . . . 65Figura 30 –Erro Quadrático e MSE para a Semana 1. . . . . . . . . . . . . . . . . 65Figura 31 –Erro Quadrático e MSE para a Semana 2. . . . . . . . . . . . . . . . . 66Figura 32 –Erro Quadrático e MSE para a Semana 3. . . . . . . . . . . . . . . . . 66Figura 33 –Erro Quadrático e MSE para a Semana 4. . . . . . . . . . . . . . . . . 66

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

Figura 35 –Arquitetura Final Implementada. . . . . . . . . . . . . . . . . . . . . . 71Figura 36 –Perfil de Temperatura Obtido. . . . . . . . . . . . . . . . . . . . . . . . 73Figura 37 –Perfis de Temperatura Anteriormente à Mudança. . . . . . . . . . . . . 74Figura 38 –Perfis de Temperatura Posteriormente à Mudança. . . . . . . . . . . . 74Figura 39 –Perfil Térmico Estimado pelo HMM, Semana 1. . . . . . . . . . . . . . 75Figura 40 –Perfil Térmico Estimado pelo HMM, Semana 2. . . . . . . . . . . . . . 75Figura 41 –Perfil Térmico Estimado pelo HMM, Semana 3. . . . . . . . . . . . . . 75Figura 42 –Perfil Térmico Estimado pelo HMM, Semana 4. . . . . . . . . . . . . . 76Figura 43 –Perfil Térmico Estimado pelo HMM, Semana 5. . . . . . . . . . . . . . 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 com-putação, juntamente com avanços em outras áreas relacionadas, aumentou-se o númerode pesquisas realizadas sobre ambientes inteligentes, onde dispositivos incorporados aoambiente visam melhorar a experiência do usuário (Cook Das, 2007).

Atualmente, diversas técnicas são pesquisadas com o objetivo de desenvolver oumelhorar sistemas para automação residencial. Esses sistemas podem proporcionar maiorconforto e segurança para os usuários que estão presentes nesses ambientes.

A automação inteligente pode propiciar maior comodidade para as pessoas inseri-das em ambientes residenciais por diminuir a necessidade de realizar trabalhos repetitivosou rotineiros, tais como acender lâmpadas, procurar canais de preferência. Também podedispensar a preocupação com variáveis do ambiente, tais como temperatura, umidade eluminosidade (Zambiasi, 2002).

Projetos de residências inteligentes têm atraído crescente interesse, pois tornampossível a atuação de módulos eletrônicos em uma residência para realizar tarefas com-plexas, interagir com os usuários e também com o meio físico. Entretanto, estes projetossão de extrema complexidade e encontram diversos desafios.

O intuito deste trabalho é apresentar uma forma alternativa de implementarum módulo para ambientes inteligentes, utilizando para isso uma estrutura hierárquicamestre-escravos, juntamente com técnicas de aprendizagem de máquina. Mais especifi-camente, é sugerida uma arquitetura para implementar um módulo de aprendizagem demáquina que torne mínima ou desnecessária a intervenção do usuário sobre equipamentosde controle de temperatura, visando então a elevação do conforto térmico em lares. Estemódulo é conectado à uma rede de comunicação residencial onde, futuramente, outrosmódulos com diferentes aplicações poderão ser adicionados. É valido salientar que o focodeste trabalho está na validação e implementação do sistema físico em uma plataformaembarcada e, portanto, é proposto um sistema simplificado considerando somente umavariável de interesse (temperatura).

1.1 Descrição do Problema

Os primeiros equipamentos eletrônicos apresentavam interface homem-máquinabem 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 con-trole remoto para equipamentos televisores. Com esse dispositivo, o usuário era capaz demudar de canal e ajustar o volume sonoro de sua televisão remotamente Mais de meioséculo se passou e com o avanço da tecnologia, diversos equipamentos eletrônicos foramdesenvolvidos, tais como equipamentos para controle de temperatura, equipamentos derádio e televisão, tocadores de CD e DVD, home theater, câmeras de segurança, entreoutros. Entretanto, a forma de controlá-los ainda é bastante similar àquela de quase 60anos atrás: por meio de dispositivos de controle remoto;

Com a frequente necessidade de intervenção, por parte do usuário, em equipamen-tos utilizados no dia-a-dia, começa-se a estudar formas para tornar este tipo atividadeautomática. A utilização de aprendizagem de máquina com aplicações em automaçãoresidencial é uma forma de solucionar esse problema e é objeto de estudo deste trabalho.

1.2 ObjetivosEste 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, quefornecem 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 JustificativaNeste 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, primeira-mente, ao fato de que a variável em questão – temperatura desejada por um usuário deuma residência – não pode ser observada diretamente. HMMs tem como principal carac-terística realizar observações indiretas para identificar o estado – neste caso, o valor detemperatura – que tem maior probabilidade de ser desejado pelo usuário. Além disso,HMM é um método de aprendizagem supervisionado, onde a aprendizagem é feita porexemplos. Essa abordagem é pertinente ao caso em questão. Adicionalmente, HMMs sãoprocessos Markovianos, e portanto a probabilidade de um processo evoluir para um es-tado 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 consisteem um modelo probabilístico simples e intuitivo, e por esse motivo seus algoritmos detreinamento não apresentam extrema complexidade de implementação.

1.4 MetodologiaNo 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 estu-dado, podem ser listadas:

1. O ambiente em questão é uma residência simples e relativamente pequena: um apar-tamento pequeno sem divisórias para quarto, cozinha ou sala. Este ambiente é equi-pado com um equipamento ar condicionado exclusivo para esta residência.

2. O usuário deste sistema é um trabalhador comum, que acorda pontualmente às06h45 de segunda a sexta-feira, toma café da manhã, se veste adequadamente parair ao trabalho e sai de casa por volta das 08h00. Retorna à sua residência às 17h00nas 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 eacorda às 09h00 no dia seguinte. Na sexta-feira pela noite, costuma sair com amigospor volta das 21h00 e retorna às 23h00. O usuário não tem rotina definida para ossábados. Nos domingos costuma ficar em casa, cozinhar, fazer faxina, ler livros eassistir filmes.

3. É sabido que a zona de conforto térmico do usuário está entre 21 e 25 graus centígra-dos. A residência está localizada em Brasília, onde as estações do ano não são bemdefinidas. Em outras palavras, não há invernos rigorosos nem verões escaldantes e,portanto, a sensação térmica nesta cidade é aproximadamente igual à temperaturaverdadeira.

Uma metodologia do tipo bottom-up para desenvolvimento de sistemas embarca-dos (Gajski et al., 2009) foi utilizada neste trabalho. Todas as implementações de softwaresão feitas utilizando a linguagem C. Para efeito de validação do sistema, o erro de pre-visão é estimado usando a métrica Erro Quadrático Médio (MSE). Durante a descriçãoinicial do sistema, é utilizado um computador pessoal baseado em um processador Intelcore i5 com 4GB de memória RAM e sistema operacional OS X. A implementação fi-nal é realizada em plataformas de desenvolvimento para sistemas embarcados. O sistemamestre, onde é implementado o HMM, é computador de baixo custo Raspberry Pi comprocessador ARM11, 512 MB de flash, operando a 700 MHz. Finalmente, o módulo demonitoramento 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 microcon-trolador MSP430 da Texas Instruments. Desta forma, a metodologia de desenvolvimentodeste projeto segue as seguintes fases:

Fase 1: Revisão bibliográfica sobre os principais tópicos que estão relacionados com au-tomação residencial e modelos de aprendizagem de máquina. Particularmente, sãoestudados processos Markovianos, com maior atenção para HMMs.

Fase 2: Definição do algoritmo de treinamento a ser utilizado pelo módulo de aprendi-zagem 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 inte-

grado.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 con-texto 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 sobreconceitos da teoria da probabilidade. São discutidos, ainda no capitulo 2, alguns modelosMarkovianos e trabalhos correlatos na área de automação residencial.

No capítulo 3 é apresentada a arquitetura proposta para solução do problema, bemcomo especificações dos módulos necessários a este sistema. São apresentados também opseudocódigo do algoritmo de treinamento e a métrica escolhida para efetuar a validaçãodo sistema. Por último, são discutidas simulações acerca de um problema similar que foisolucionado 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 dassimulações, em computador pessoal, do algoritmo HMM implementado. Preocupou-se emavaliar 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 demateriais 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 testesexperimentais, bem como discussões sobre os mesmos.

O capítulo 6 traz as principais conclusões sobre o presente trabalho, ao passo queos 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 residen-cial, aos modelos de aprendizagem de máquina, bem como uma revisão teórica acercade conceitos básicos de probabilidade, que são necessários para o completo entendimentode modelos Markovianos. Trabalhos relacionados na área de automação residencial sãodiscutidos no final deste capítulo.

2.1 Automação ResidencialA 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 etal. (2010) e Bolzani (2004), a automação residencial visa aperfeiçoar a qualidade de vidados 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 deinterconectar sistemas eletrônicos e eletromecânicos presentes nas residências, tendo emvista que muitas vezes estes sistemas estão isolados (Aarts e Roovers, 2004). De acordocom Bolzani (2007), é indispensável que o monitoramento e o controle destes sistemassejam realizados remotamente, via rede doméstica cabeada ou sem fio.

Atualmente, projetos que visam o desenvolvimento e implantação desses novossistemas encontram severos desafios, devidos à extrema complexidade de implementaçãodas funcionalidades requeridas por tais sistemas. De acordo com Aarts Roovers, (2004) eOsó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 umaresidê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 de-verã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 ambienteintegrado.

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 umprojeto de automação residencial. Contudo, no presente trabalho, apenas uma variávelfí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 modelomatemático, para permitir a transmissão de um conjunto de informações quantificáveisde 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 deum 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 àsseguintes 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 globale aberto que tem como base o protocolo 802.15.4 (IEEE, 2011) criado pelo Institute ofElectrical and Electronics Engineers – IEEE, desenvolvido como solução para redes semfio com baixo consumo de energia, baixa taxa de transmissão, segurança, confiabilidadee 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, taiscomo automação residencial e predial (Monsignore, 2007).

De acordo com Streeton Stanfield (2005), essa tecnologia está sendo consideradacomo a melhor solução para sistemas de comunicação de baixa taxa de transferência dedados e curto alcance. Outras características importantes desse padrão é que sua com-plexidade é simples, e portanto, pode ser implementado em microcontroladores de baixocusto, sua rede pode conter centenas de dispositivos a ela conectados e opera também nasbandas 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 802.11 Wi-Fi Bluetooth Zigbee

Frequência deOperação 2.4 GHz 2.4 GHz 2.4 GHz

Taxa de Dados 11 Mbit/s 1 Mbit/s 250 kbit/sAlcance 100 metros 10 metros 10 a 100 metros

Formas deConexão Point-to-multipoint Ad hoc, piconets Ad hoc, peer-to-peer, mesh

Complexidade alta alta baixaConsumo de

Potência alto médio baixo

Aplicações WLAN hotspotsFones de ouvido sem fio,

ConexõesPC-PDA-laptop

Monitoramento industrial,Automação residencial,

Redes de sensores

Em uma rede ZigBee são identificados dois tipos de dispositivos: (Full FunctionDevice – FFD) e Dispositivos de Funções Reduzidas (Reduced Function Device – RFD).Dispositivos FFD são mais complexos e precisam de hardware mais potente para im-plantação da pilha de protocolos e, consequentemente, consomem mais energia e proces-samento. Podem se comunicar com quaisquer membros da rede (Monsignore, 2007). Jáos dispositivos RFD podem comunicar apenas com dispositivos FFD e, em geral, reque-rem menos capacidade de processamento, memória e potencia (Oliveira, 2010). Devido aobaixo consumo de energia, os dispositivos RFD são adequados para uso em nós sensorese 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 EndDevice – ZED). O nó coordenador é mandatório, responsável por atividades de gerencia-mento de rede, tais como a admissão de outros nós na rede, atribuição de endereços de redee inicialização da rede. Nós roteadores são utilizados para estender a área de coberturade uma rede e também para criar rotas adicionais de dados, aumentando então a confi-abilidade da rede. Um nó end device apresenta funcionalidade apenas para comunicar-secom o nó pai (coordenador ou roteador. Dentre os tipos de dispositivos, o end device é oque 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 diferentespodem ser implementadas. São elas: estrela, árvore e malha (Streeton e Stanfield, 2005).Estas topologias estão representadas graficamente na Figura 2.

2.1. Automação Residencial 31

Figura 2 – Topologias de Rede.

De acordo com Monsignore (2007), na configuração estrela o dispositivo coorde-nador da rede se encarrega de toda a comunicação efetuada em cada um dos canais decomunicação. O coordenador deve ser capaz de se comunicar com qualquer outro disposi-tivo 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 apre-senta características similares à topologia Estrela. Uma vantagem desta topologia é quedispositivos roteadores podem ser adicionados entre os nós coordenador e end device paraaumentar a cobertura geográfica da rede. A última topologia de rede suportada pelo pa-drã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 controleem tempo real com um nível elevado de segurança. Os diferentes tipos de redes CANe 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, ouseja, seguem um padrão.

Diante das funcionalidades desse protocolo, o mesmo vem sendo difundido em di-ferentes mercados, não somente para o ramo automobilístico, mas também em aplicaçõesde automação industrial e transmissão de voz (Luz, 2010). Por ter sido concebido emambientes de altos níveis de ruído e alternância de alimentação, este protocolo é extre-mamente robustos e confiável. Dentre as principais características da rede CAN, pode-secitar (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 trans-ferência dos dados, porém, a cada solicitação é necessário verificar a disponibilidade dobarramento (Luz, 2010).

De acordo com Luz (2010), não há necessidade de definir a rede nas camadas físicae de enlace no protocolo CAN, pois suas implementações já são definidas. Portanto, osdesenvolvedores da rede CAN devem se preocupar apenas com a definição da camada deaplicação.

O protocolo CAN apresenta um conceito bastante importante, o da dominância debit (Barbosa, 2003). Dessa forma, neste protocolo existem dois possíveis bits, um chamadode 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á relacio-nada com os níveis de tensão entre os fios CAN_H e CAN_L. De acordo com a convençãoutilizada, 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 umbit dominante é necessário produzir uma diferença de potencial de aproximadamente 2volts entre os fios CAN_L e CAN_H, sendo que a tensão no canal CAN_L deve ser deaproximadamente 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 fiosirã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ãoentre 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 atopologia 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 ro-busta de comunicação multiponto. Vem sendo muito utilizado na indústria em controlede sistemas e comunicação de dados de baixa densidade (Comm5, 2013). É um padrãofísico de comunicação serial e baseia-se no conceito de transmissão diferencial, que é re-alizado fisicamente utilizando par trançado de fios (Arboleda, 2006). Através deste parde fios, os dispositivos conectados a esta rede transmitem e recebem dados. Cada dispo-sitivo aciona o seu transmissor apenas no instante que necessita transmitir, mantendo-odesligado no restante do tempo, de modo a permitir que outros dispositivos transmitamdados (Gazziro, 2013).

De acordo com Arboleda (2006) e Gazziro (2013), dentre as principais caracterís-ticas 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 ResidencialConsidera-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 demodificar-se para obter melhor desempenho na próxima vez que executar determinadatarefa (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 linguagemnatural, 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áquinaem três subconjuntos, baseando-se na dependência do professor. Na aprendizagem su-pervisionada, um professor proporciona um conjunto de exemplos (dados) de treinamentocom rótulo, do qual o aprendiz deveria generalizar uma representação. Já na aprendizagemnão-supervisionada, nenhuma informação sobre as entradas é dada, e portanto, o sistemanão sabe quão correta estão suas aproximações. O algoritmo cria grupos a partir dosdados de entrada em uma forma “natural”. Aprendizagem por reforço encontra-se entreesses dois, onde nenhuma saída desejada é informada ao sistema, entretanto, o algoritmoacaba 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 maissimples e que melhor convém ao contexto deste trabalho é a que trabalha em modosupervisionado, 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 melhorentender os Modelos Markovianos, que são discutidos nas seções 2.4 e 2.5.

2.3 Conceitos de ProbabilidadePara 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 umnú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çoimagem de X. Uma variável aleatória é, em outras palavras, uma função que atribui um

2.3. Conceitos de Probabilidade 35

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 podemser 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 dajogada de uma moeda ou dado.

Uma variável aleatória é contínua se seus valores não podem ser listados, maspodem 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 entreos eventos. Matematicamente, esta probabilidade pode ser calculada como mostrado naEquaçã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 deVenn 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 condi-cional 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 condicionalutilizando 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á inde-pendência entre estes eventos se a probabilidade de ocorrência de um deles não afeta aocorrência do outro evento (Eisencraft, 2007). Matematicamente isto pode ser represen-tado 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 probabilidadeconjunta 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 estatistica-mente independentes com eventos mutualmente exclusivos, nos quais a ocorrência de umevento 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 maisutilizada e aparece praticamente em todas as áreas da Ciência e Engenharia. Este fatodeve-se à sua precisa descrição de quantidades práticas e que tenham significado no mundoem que vivemos, especialmente quantidades que são resultantes de diversos efeitos ale-atórios (Pleyton et Pleebes, 2001). A função densidade gaussiana é matematicamentedefinida pela Equação 2.6.

f(x, µ, ‡) = 1‡

Ô2fi

e≠ (x≠µ)22‡

2 (2.6)

onde os parâmetros µ e s representam, respectivamente, a média e desvio padrão dadistribuição.

A Figura 6 ilustra graficamente a diferentes distribuições densidade de probabili-dade gaussianas. Verifica-se que os parâmetros µ e s são os únicos responsáveis pela formada distribuição.

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

2.4. Cadeias de Markov 37

2.3.6 Processos Estocásticos

O termo processo estocástico (ou processo aleatório) é frequentemente utilizadoem relação a observações de um processo físico, orientado no tempo, que é controlado porum mecanismo aleatório. Mais precisamente, um processo estocástico é uma sequência devariáveis aleatórias X

t

, 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 enten-didos como funções de um ou vários argumentos determinísticos cujo valores de saídasão variáveis aleatórias. No caso mais simples possível e discretizado no tempo, um pro-cesso estocástico equivale a uma sequência de variáveis aleatórias conhecida como sérietemporal. Cadeias de Markov, a serem explicadas na próxima seção, consistem um tiposimplificado de processo estocástico.

2.4 Cadeias de MarkovProcessos Markovianos são um tipo especial de processos estocásticos que têm

aplicabilidade junto à química, biologia, física, informática, entre outros, provavelmenteabrangendo todas as áreas do conhecimento humano (Espindola, 2009).

Em seu trabalho, Jelinek (1988) define processos estocásticos de tempo discretosobre um espaço de estados também discreto e finito. Seja uma sequência de variáveisestocásticas X0, X1, . . . , X

t

, . . . , XT

, onde 0 Æ t Æ T representa uma ordenação discretano 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 (X0X1 . . . XT

) =TŸ

t=0P (X

t

|X0X1 . . . Xt≠1) =

= P (X0)P (X1|X0)P (X2|X0X1) . . . P (XT

|X0X1 . . . XT ≠1)

(2.7)

Um processo estocástico que é regido pela Equação 2.7 é dito Markoviano se aprobabilidade desse processo evoluir para um estado qualquer no instante seguinte é de-pendente única e exclusivamente do estado atual do sistema. Matematicamente:

P (Xt

|X0X1 . . . Xt≠1) = P (X

t

|Xt≠1) (2.8)

Em outras palavras, dada a sequência temporal de realizações em um processoestocástico Markoviano, a probabilidade de transição de X

t≠1 para Xt

depende apenasdo estado X

t≠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 se-guinte forma:

P (X0X1 . . . XT

) =TŸ

t=0P (X

t

|Xt≠1) =

= P (X0)P (X1|X0)P (X2|X1)P (X3|X2) . . . P (XT

|XT ≠1)

(2.9)

Uma vez definido o que são processos Markovianos, é possível partirmos paradefinição de Cadeias de Markov, que nada mais são do que processos Markovianos emespaços de estados discretos, em tempo contínuo ou discreto.

Uma Cadeia de Markov discretizada no tempo com espaço de estados discreto efinito 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 � = {fi

i

}, tal que fii

=P (X0 = s

i

);4. Uma distribuição de probabilidade de transição entre estados A = {a

ij

}, tal quea

ij

= P (Xt

= sj

|Xt≠1 = s

i

).

As probabilidades de transição definidas pela matriz A possuem as seguintes pro-priedades:

0 Æ aij

Æ 1 (2.10)

Nÿ

j=1a

ij

=Nÿ

j=1P (X

t

= sj

|Xt≠1 = s

i

) = 1 (2.11)

Em outras palavras, as probabilidades de transição são todas maiores ou iguais azero e menores ou iguais a um. A propriedade 2.11 ilustra que a soma das probabilidadesde transição partindo do estado s

i

para todos os estados definidos em S resulta em um,como esperado.

2.5 Modelos Ocultos de MarkovLargamente 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 presentedepende de parâmetros do tempo anterior (Duda et al., 2001).

HMM são modelos Markovianos onde a observação da evolução dos estados dosistema se dá de forma indireta, como função probabilística da transição entre os estados

2.5. Modelos Ocultos de Markov 39

definidos num espaço de estados discreto e finito (Rabiner, 1989). A principal diferençaentre 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 maioriados 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 oclima, tais como temperatura, umidade, luminosidade, entre outras. Esta abordagem, porexemplo, poderia ser utilizada num sistema modelado por uma cadeia de Markov. Outraforma de atingir esse objetivo é observando variáveis que indiretamente são influencia-das pelo clima. Por exemplo, observando-se o número de pessoas que caminham naquelalocalidade e como estão vestidas, tem-se indicativos da condição do clima naquele local.

No contexto deste trabalho, HMMs apresentam formalmente as seguintes caracte-rísticas (Espindola, 2009):

1. Um espaço de estados S = {s1, s2, s3, . . . , sN

};2. Um conjunto de observáveis � = {y1, y2, y3, . . . , y

M

};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 � em

diferentes instantes de tempo;5. Uma distribuição de probabilidade inicial para cada estado � = {fi

i

}, tal que fii

=P (Q0 = s

i

);6. Uma distribuição de probabilidade de transição entre estados A = {a

ij

}, tal quea

ij

= P (Qt

= sj

|Qt≠1 = s

i

).7. Uma distribuição de probabilidade de observação B = {b

ij

(k)}, tal que bij

(k) =P (O

t

= yk

|Qt≠1 = s

i

, Qt

= sj

).

Similarmente à Cadeia de Markov, as seguintes propriedades devem ser satisfeitasnuma modelagem de HMM.

0 Æ aij

Æ 1 (2.12)

Nÿ

j=1a

ij

=Nÿ

j=1P (Q

t

= sj

|Qt≠1 = s

i

) = 1 (2.13)

0 Æ bij

(k) Æ 1 (2.14)

40 Capítulo 2. Referencial Teórico

Mÿ

k=1b

ij

(k) =Mÿ

k=1P (O

t

= yk

|Qt≠1 = s

i

, Qt

= sj

) = 1 (2.15)

As propriedades 2.12 e 2.13 foram discutidas na seção anterior, ao passo que aspropriedades 2.14 e 2.15 apresentam significados similares. Na distribuição de probabili-dade de observação B, as probabilidades b

ij

(k) estão compreendidas entre zero e um (VerEquação 2.14). A Equação 2.15 estabelece que dada a transição do estado s

i

para o estados

j

, a soma das probabilidades dos possíveis observáveis yk

œ � resulta em um.

Genericamente, HMMs apresentam um número finito de estados. A cada instantede tempo t, um novo estado é acionado, dependendo das probabilidades de transiçãoe observação do estado atual (Rabiner et Juang, 1986). A Figura 7 ilustra o processoevolutivo de um HMM, onde x(t) representa o estado no instante de tempo t e setashorizontais referem-se à probabilidade da transição de estado ocorrer, dada a observaçãoy 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 naliteratura: 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, oestado mais provável, dado que o histórico de observações é conhecido.

Algoritmo Forward-Backward: adiciona a parte Backward ao algoritmo Forward, aqual calcula probabilidades de observação nos instantes subsequentes a t, dado umponto de partida (estado) em um instante de tempo t (Espindola, 2009).

Algoritmo Viterbi: é geralmente utilizado para prever a sequência mais provável deestados que pode ser gerada (Babakura et al. 2014).

Algoritmo Baum-Welch: utilizado para encontrar a estimativa de máxima verossimi-lhança de parâmetros desconhecidos de um HMM, quando conhecido o histórico deobserváveis.

2.6. Trabalhos Correlatos 41

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

2.6 Trabalhos Correlatos

Avanços na tecnologia, juntamente com a busca cada vez maior por conforto eseguranç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ên-cia 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. Algunsdeles detectam eventos como a presença dos habitantes e suas ações, ou possuem sensoresque conseguem capturar mudanças nas condições do ambiente; a estes eventos são aplica-das reações que estão previamente configuradas (Bolzani, 2004). O conceito de inteligênciadeve ir além de automatizar ou simplesmente aplicar regras pré-estabelecidas; os siste-mas 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 ComunidadeEuropeia. É tímida, ainda, a participação do Brasil no número de artigos publicados e deprojetos desenvolvidos. Algumas associações e entidades têm surgido reunindo profissio-nais e ministrando cursos sobre novos produtos e tecnologias (Bolzani, 2004).

Um dos fatores que motiva os países acima citados a desenvolverem sistemas in-teligentes para residências tem sido a necessidade da economia de recursos naturais eenergéticos. Eles acreditam que através da implementação de sensores, dispositivos inte-ligentes e sistemas de gerenciamento haverá uma significativa redução no consumo destesrecursos, vitais para os seus contínuos processos de desenvolvimento (Bolzani, 2004).

Poucos artigos foram encontrados pelo autor com o escopo de utilizar HMMspara 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íduosutilizando conceitos de HMM. Uddin et al. (2011) conduziram uma pesquisa sobre autilizaçã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çãode um modelo de decisão baseado em HMMs para ambientes inteligentes.

Até o presente momento, não foi encontrada pelo autor nenhuma produção cien-tí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ítuloNeste capítulo foram apresentados conceitos de automação residencial e protoco-

los de comunicação, as classificações dos métodos de aprendizagem de máquina e, comorequisito para melhor entender os modelos Markovianos apresentados, também foram re-visados tópicos básicos sobre Probabilidade. Por último, foi discutido o estado da arte etrabalhos correlatos em automação residencial com emprego de HMMs.

Com base no que foi estudado, conclui-se que a utilização de HMM constitui umaabordagem válida para aplicações em automação residencial, permitindo realizar umaanálise comparativa com outras técnicas de aprendizado de máquina. Adicionalmente, apresente proposta de trabalho constitui uma contribuição original nas pesquisas sobreautomaçã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, aindaneste capítulo, o pseudocódigo do algoritmo de treinamento, a métrica escolhida paraefetuar a validação do sistema e simulações acerca de um problema similar que foi solu-cionado com emprego de HMM.

3.1 Sistema GeralEm um projeto de automação residencial, diversas variáveis físicas podem ser con-

troladas. Para tanto, são necessários módulos de monitoramento destas variáveis e tambémmódulos atuadores que possibilitem aplicar uma lei de controle sobre cada variável emquestã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 emmodelos previamente estabelecidos.

De forma geral, a arquitetura de um sistema de automação residencial pode serentendida 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 ro-tineiras em automação residencial usando HMM, as seguintes considerações devem serressaltadas:

1. O módulo Mestre, com maior capacidade computacional, implementa, para cadavariá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 paracada variável física, os requisitos de memória deste módulo devem ser levados emconsideração.

46 Capítulo 3. Especificação do Sistema

3. Os módulos de monitoramento realizam a leitura das variáveis físicas usando senso-res e conversores de dados.

4. Os módulos de monitoramento ou de atuação devem informar ao módulo Mestrequando o usuário efetua uma intervenção sobre o sistema, permitindo considerar anova informação para atualizar as distribuições de probabilidade de observação etransição de estados.

3.2 Caso de Estudo: Monitoramento de Temperatura com HMMNo 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 ca-pacidade para comportar diversos outros módulos (assim como mostrado na Figura 8).Entretanto, adicionar mais módulos para sensoriamento de outras grandezas físicas fogedo escopo deste trabalho, que é propor um sistema que torne possível a utilização deHMM 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óduloatuador, mostrado em cor cinza na Figura 9, não será objeto de estudo deste trabalhoe, portanto, sua implementação não será realizada. Todavia, é fundamental que sejamconhecidas suas características para o completo entendimento da proposta. A seguir sãodescritos 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 algoritmode treinamento.

• Raspberry Pi: unidade de computação. Responsável por implementar o algo-ritmo 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 temperaturaem 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çõesnecessárias estabilizar o ambiente na temperatura informada pela unidade decomputaçã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 osmó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 ecusto. Mostrado na Figura 10, o Raspberry Pi, que é um computador com dimensõessimilares a de um cartão de crédito, mostrou-se uma escolha conveniente para a imple-mentaçã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 daSanDisk, mostrado na Figura 11.

Figura 11 – Cartão de Memória SD.

Esta memória será utilizada para armazenar tanto o sistema operacional Raspbianutilizado 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 erecepção de dados é o CC2530ZNP da Texas Instruments (Ver Figura 12), que conta como microcontrolador MSP430, que é ideal para aplicações que requerem baixo consumo deenergia, 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, queserá melhor explicado na seção 3.2.5. Quanto ao MSP430, além de ser recomendado paraaplicações alimentadas por baterias, o mesmo conta com um conversor analógico-digitalintegrado de 10 bits, essencial para realizar a leitura do sensor de temperatura (a serdescrito na próxima seção). Uma grande vantagem deste módulo é que a antena é integradana 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 utili-zação do sensor de temperatura LM35 da Texas Instruments. A Figura 13 ilustra o sensorescolhido.

Figura 13 – Sensor de Temperatura LM35.

O sensor escolhido apresenta boas características para monitoramento de tempera-tura em uma residência, tais como acurácia de 0.5 °C, baixo consumo de corrente elétricae faixa de operação de -55 °C até +150 °C. O LM35 não requer calibração externa e podeser conectado de tal forma que sua tensão de saída seja proporcional à temperatura emgraus centígrados (V

out

=10mV/°C) (Texas Instruments, 2013). Este sensor será conectadoà unidade de monitoramento, que por sua vez será responsável por enviar informações so-bre 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 tra-balho por utilizar uma rede de comunicação sem fio. A Tabela 1 (ver seção 2.1.3) faz acomparação entre importantes tecnologias comunicação sem fio, tais como Wi-Fi, Blueto-oth e ZigBee. O padrão ZiandgBee apresenta alcance relativamente alto para aplicaçõesem automação residencial, aceita várias topologias de rede, conta com uma taxa de trans-ferência de dados suficiente para envio e recepção de informações curtas, tais como leisde ação e apresenta baixos níveis de complexidade de implementação e consumo de po-tência. Além disso, o protocolo ZigBee pode operar em bas não licenciadas e sua relaçãocusto-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ãoZigBee, 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 operemna mesma faixa de frequência (2400 a 2483 MHz), é possível que essas duas tecnologiascoexistam 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 aumentara cobertura da rede, caso seja necessário. Nesta topologia, o dispositivo ZC comunica-secom 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 Instru-ments, o transceptor CC2530 é utilizado para implementar redes de comunicação IEEE802.3.4 e ZigBee. Conta com 3 modos de operação de baixo consumo e sua potência detransmissão é programável (até 4.5 mW). Sua frequência de operação é também ajustávelde 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 detreinamento proposto apresenta as seguintes propriedades:

1. Um espaço de estados S = {s20, s21, s22, . . . , s27}, onde i em si

denota valores con-siderados de temperatura para o sistema, em graus centígrados;

2. Um conjunto de observáveis � = {y1, y2, y3, . . . , yM

}, que no contexto deste trabalhocorrespondem às intervenções do usuário no sistema de controle de temperatura emdado instante de tempo t;

3. Uma variável estocástica Q a assumir valores do espaço de estados S em diferentesinstantes de tempo.

4. Uma variável estocástica O a assumir valores do conjunto de observáveis � emdiferentes instantes de tempo.

3.3. Algoritmo de Treinamento Proposto 51

5. Uma distribuição de probabilidade inicial para cada estado � = fii

, tal que fii

=P (Q0 = s

i

).6. Uma distribuição de probabilidade de transição entre estados A = {a

ij

}, tal quea

ij

= P (Qt

= sj

|Qt≠1 = s

i

). Esta distribuição de probabilidade não leva em contaas intervenções realizadas pelo usuário sobre o sistema, entretanto, somente as pro-babilidades 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 (O

t

= yk

|Qt≠1 = s

i

, Qt

= sj

), que é afetada unicamente pelo usuário ao intervirno sistema de controle de temperatura.

A implementação do algoritmo do sistema é baseada no algoritmo de aprendizadoForward, apresentado brevemente na seção seção 2.5.1. O pseudocódigo do algoritmo aser 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ávelde ser o desejado pelo usuário

- Informar sistema de controle de temperatura para resfriar ouaquecer o ambiente, caso necessário.

Fim do LoopFim 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 utili-zado 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 (mi-crofone), baseando-se em distribuições de probabilidades de transição e observação, queeram atualizadas a cada instante de tempo t. Simulações acerca da solução deste últimoproblema serão discutidas na próxima seção.

3.4 Métrica para Estimativa de Erro do Sistema de PrevisãoExistem diversas medidas de erro de previsão. A escolha de uma medida de acu-

rácia pode variar de acordo com a seleção do modelo ou calibração de um dado modeloe com o tamanho das amostras utilizadas. Para alguns autores, algumas medidas de erroapresentam resultados superiores a outras. Morettin et Toloi (1985) indicam o Erro Qua-drático Médio (Mean Square Error – MSE) como uma boa e prática medida de acuráciapara a realização de estudos empíricos.

O MSE é uma forma de avaliar a diferença entre um estimador e o verdadeiro valorda quantidade estimada. O MSE mede a média do quadrado do erro, com o erro sendo omontante pelo qual o estimador difere da quantidade a ser estimada. Quantitativamente,o MSE é calculado de acordo com a Equação 3.1.

MSE = 1n

nÿ

i=1(Y

i

≠ Yi

)2 (3.1)

onde n é o número de predições, Yi

é o valor verdadeiro e Yi

é o valor estimado.

Neste trabalho será utilizada a medida de estimativa de erro MSE para quantificaro erro associado ao método utilizado para solucionar o problema em questão.

3.5 Simulações Prévias Usando HMMNesta seção serão discutidas as simulações de dois problemas correlatos, que fo-

ram solucionados previamente para o projeto final da disciplina Inteligência Artificial naUniversidade de Stanford. Ambos os problemas tratam da previsão da localização de umobjeto dado um conjunto de observações (leituras de sensores) utilizando HMM. No pri-meiro problema, o objeto a ser localizado está estacionário: sua posição não varia como tempo. Já no segundo problema, o objeto a ser localizado está constantemente emmovimento.

3.5.1 Carro Estacionário

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

3.5. Simulações Prévias Usando HMM 53

localização será inferida com base somente na emissão de ruídos por ele, geometrias azuisrepresentam obstáculos e os ladrilhos rosados representam visualmente a probabilidadedo carro cinza estar em determinada posição do ambiente: quanto mais forte a coloraçãode 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 ladrilhoscom maior probabilidade (mais rosados) estão dispostos radialmente em relação ao carropreto. Isto ocorre porque nenhuma ou pouca informação foi adquirida ainda. À medida queo 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çãocorreta (ver parte (h) da Figura 15).

3.5.2 Carro em Movimento

Neste problema, o objetivo é descobrir a localização de um carro em movimentoutilizando somente um microfone. Na Figura 16, o retângulo preto representa o carro equi-pado com microfone, o retângulo cinza representa o carro em movimento cuja localizaçãoserá inferida com base somente na emissão de ruídos por ele, geometrias azuis representamobstáculos e os ladrilhos rosados representam visualmente a probabilidade do carro cinzaestar 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) daFigura 16 ilustram a convergência na previsão da localização do carro cinza.

3.5. Simulações Prévias Usando HMM 55

(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 ladrilhosde maior probabilidade (mais rosados) estão bastante dispersos. Isto ocorre porque ne-nhuma 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çãomelhora, 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 aserem traçadas por um veículo quando trafega no ambiente ilustrado.

3.6 Conclusão do CapítuloNeste 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 foiapresentada uma arquitetura geral do sistema, com diversos módulos de monitoramentode variáveis físicas. Em seguida, foi proposta uma arquitetura específica para o caso deestudo de um único módulo de monitoramento de temperatura. Para o caso de estudoforam definidos os dispositivos necessários para a correta implementação destes sistemas.

Foram também descritas as propriedades do algoritmo de treinamento proposto eseu 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 aprendizagemde 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 sobrea criação dos dados de treinamento pro algoritmo HMM. Posteriormente são discutidosos resultados das simulações realizadas em computador pessoal.

4.1 Perfil de Temperatura do UsuárioBaseando-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 (10080minutos). A Figura 17 ilustra este perfil.

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

4.2 Dados de TreinamentoConsiderando-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çãodo perfil desejado (ilustrado na Figura 17). Primeiramente, calcula-se a série de Fourierpara o perfil desejado (ver Figura 18). Em seguida, a ela é adicionando ruído branco (verFigura 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, emcontraste 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 paraobter a forma de onda ilustrada em cor azul na Figura 19. O perfil térmico desejado pelousuá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ãocriar o perfil físico a ser utilizado pelo algoritmo de treinamento, pois este ruído podesignificar 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 pelopróprio usuário, variações na temperatura ambiente causada por fatores externos e/ouinternos, entre outras.

Um segundo ponto a ser enfatizado é a não ciclicidade do perfil físico. Isto ocorreporque 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 detreinamento do algoritmo é provavelmente diferente do perfil utilizado para a segundasemana, e assim por diante.

4.3. Simulações em Computador Pessoal 61

4.3 Simulações em Computador PessoalUtilizou-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 previstopor ele, é ilustrado em cor azul na Figura 20, juntamente o com o perfil térmico desejadopelo usuário (em vermelho). É importante notar que, para cada instante de tempo, a saídado 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 deidentificar, 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 (emazul), juntamente com o MSE (em vermelho), que nada mais é do que a média dos errosquadrá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çãoda primeira semana foi de 0.254 °C2.

Neste ponto, é importante analisar os erros pontuais cometidos. Ainda na Figura21, é 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 ocor-rência de erros está na escolha dados de treinamento utilizados para treinar o algoritmoHMM: um conjunto de dados aproximados

A Figura 22 Ilustra o comportamento da métrica de estimativa de erro MSE paracada 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 HMMnão varia significativamente com o passar das semanas. Observa-se também que o valorde 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 dadosde 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 porele 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 doHMM. 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 issoespera que o sistema se adapte a seu novo perfil de temperatura. Para tanto, o usuáriointervêm sobre o sistema utilizando o equipamento controle remoto.

Este caso hipotético foi simulado com o algoritmo HMM, considerando que o perfilde 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. Ousuário intervêm diretamente sobre o equipamento ar-condicionado às 20h30, 21h00 e21h30, 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 comosendo 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 sistemanão é capaz de identificar isto instantaneamente. Será necessário algum tempo para queo sistema possa aprender e então satisfazer as novas expectativas do usuário. As Figurasde 25 a 29 ilustram o entendimento do sistema sobre o perfil desejado pelo usuário logoapó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 treina-mento, o perfil estimado pelo HMM consegue atender satisfatoriamente às expectativasdo usuário. Já as Figuras 30 a 34 mostram a evolução do estimador Erro Quadrático logoapó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 decrescecom 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 pelousuário. A partir desse perfil térmico, foi criado e apresentado um perfil aproximado, a serutilizado como dado de treinamento pelo HMM. Ainda neste capítulo, foram apresentadase discutidas duas simulações distintas para verificar as funcionalidades e convergência do

4.4. Conclusão do Capítulo 67

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

algoritmo de treinamento, realizadas em computador pessoal.

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, taiscomo sua arquitetura final, lista de materiais utilizados e tabela de custo dos produtosutilizados. Ainda neste capítulo é discutido o desenho dos experimentos para verificaçãofuncional do sistema, assim como os resultados obtidos experimentalmente.

5.1 Arquitetura Final

Após feitas as considerações acerca da disponibilidade, praticidade de utilizaçãoe facilidade de obtenção dos componentes e módulos eletrônicos, a arquitetura final dosistema 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çãofísica do sistema, exceto pelo custo dos módulos CC2530ZNP, pois esses não são maisfabricados.

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 ExperimentosPara verificar a funcionalidade do sistema implementado fisicamente, propõe-se

uma verificação simplificada da funcionalidade do mesmo. De fato, verificar o sistema emseu funcionamento normal pode ser bastante dispendioso, visto que o sistema é progra-mado processar informações de 5 em 5 minutos, durante todo o dia, todos os dias dasemana.

Uma possível solução para minimizar os esforços sobre as baterias de teste é reduzira escala de tempo do sistema. Entretanto, ao fazer isso, torna-se inviável atuar sobre osensor 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 realizaros testes no sistema implementado fisicamente considera as seguintes simplificações nomodo de operação do sistema:

• A escala de tempo é reduzida na proporção 12:1. Ou seja, 1 minuto no sistema físicoequivale a 5 segundos em tempo real.

• A informação sobre a temperatura ambiente não será informada pelo sensor detemperatura. Alternativamente, esta informação será obtida por um dispositivo deresistência variável (potenciômetro), a ser controlado manualmente durante todo otempo de teste.

5.4. Testes sobre o Sistema Implementado 73

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

5.4 Testes sobre o Sistema ImplementadoForam 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 dousuário. Este experimento apresenta similaridades com a simulação realizada em com-putador pessoal mostrada na Figura 20. Entretanto, o experimento foi realizado parasomente um dia da semana: terça-feira de 00h00 às 23h55.

Quanto ao segundo experimento, será verificada quão bem o sistema físico trataas intervenções do usuário sobre o sistema. Para este experimento, será considerado omesmo caso hipotético da seção 4.3.1, que será reescrito no parágrafo seguintepara finsde 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 issoespera que o sistema se adapte a seu novo perfil de temperatura. Para tanto, o usuáriointervêm sobre o sistema utilizando o equipamento controle remoto.

Similarmente ao caso da seção 4.3.1, considera-se que o perfil de temperaturadesejado 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 e21h30, pontualmente, buscando aumentar seu conforto térmico.

5.5 Resultados dos Testes ExperimentaisA 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 HMMem 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 calculadopara 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 computadorpessoal.

Para o segundo experimento, as Figuras 37 e 38 ilustram a mudança do perfil detemperatura 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 acordocom as definições da seção anterior. As Figuras 39 a 43 ilustram a evolução do perfiltérmico estimado pelo HMM com o passar das semanas. Novamente, considera a primeirasemana de mudanças no perfil de temperatura como o marco inicial, ou semana 1.

5.5. Resultados dos Testes Experimentais 75

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.

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 sis-tema conseguiu identificar as mudanças no perfil térmico desejado do usuário. Utilizando-se 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 valoresMSE 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ítuloNeste capítulo foram apresentadas a arquitetura final do sistema, a lista de mate-

riais (com preços) necessária para a completa implementação do sistema. Também foramdiscutidos o desenho dos experimentos, as considerações e simplificações dos testes expe-rimentais, e seus resultados.

Parte VI

Conclusões

79

6 Conclusões

Neste trabalho é proposta a arquitetura de um sistema para controle térmico comaplicação em automação residencial, cujo objetivo principal é melhorar o conforto térmicode usuários em suas residências.

O sistema proposto explora o método de aprendizagem de máquina supervisionadaHMM para extrair atributos de perfis de atividades rotineiras realizadas em lares. Oalgoritmo HMM foi proposto e implementado baseando-se no algoritmo de treinamentoForward.

Simulações foram necessárias para averiguar os resultados do algoritmo HMM im-plementado em computador pessoal. Verificou-se, para o primeiro teste ≠ o qual conferea capacidade de identificação e extração do perfil do usuário ≠ que o algoritmo de trei-namento é capaz de, com uma semana de execução, extrair o perfil do usuário com erromédio quadrático de 0.25°C2. Com o passar das semanas, verificou-se que o algoritmo nãoconverge exatamente para o perfil desejado pelo usuário devido à configuração dos testesrealizados, e atinge, aproximadamente, um erro quadrático médio de 0.31°C2. Quantoao segundo teste, o qual confere a capacidade de identificação de mudanças no perfil dousuário, o algoritmo de treinamento é capaz ≠ de acordo com critério utilizado ≠ deconvergir para o perfil desejado após a terceira semana de intervenção do usuário sobre osistema, 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ódu-los do sistema proposto paria realizar sua implementação físca. O padrão escolhido paraefetuar a comunicação entre os módulos mestre e escravo foi o protocolo ZigBee.

Testes experimentais foram necessários para averiguar o funcionamento do sistemaimplementado 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 osistema é capaz de, com um dia de execução, extrair parte (referente àquele dia) doperfil 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 sobreo sistema serão sugeridos na seção de trabalhos futuros. Quanto ao segundo teste, oqual confere a capacidade de identificação de mudanças no perfil do usuário, o sistemaimplementado é 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 experi-mentais realizados no sistema implementado mostram que o sistema apresenta resultadossatisfatórios e, portanto, é possível concluir que um sistema para extração de atributosde perfis foi implementado fisicamente com sucesso.

6.1 Sugestões Para Trabalhos FuturosAs 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 assimplificações utilizadas neste trabalho, e mais robustos a erros.

2. Melhorar a precisão do sistema implementado. Isto pode ser feito utilizando-se sen-sores de temperatura com maior precisão e reduzindo-se o intervalo de tempo con-siderado neste trabalho. Para tanto, será necessário remodelar o sistema quanto àforma de processamento dos dados monitorados e quanto ao número de estados uti-lizado pelo algoritmo de treinamento, o que levará a um maior consumo de memóriade armazenamento.

3. Expandir o sistema para atender outras variáveis físicas, conforme ilustrado na Fi-gura 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 ≠ supervi-sionada ou não-supervisionada ≠ com a finalidade de efetuar comparações com osresultados obtidos neste trabalho.

81

Referências Bibliográficas

Aarts, E., Roovers, R., Embedded Design Issues in Ambiente Intelligence. AmbientIntelligence: Impact on Embedded System Design. 2004 Kluwer Academic Publishers NewYork, Boston, Dordrecht, London, Moscow, 2004.

Arboleda, D.M.M., Implementação e Simulação de Algoritmos de Escalonamentopara Sistemas de Elevadores usando Arquiteturas Reconfiguráveis. Dissertação (Mes-trado). Universidade de Brasília, Faculdade de Tecnologia, Brasília, 2006.

Atmel, Application Note: Coexistence between ZigBee and Other 2.4GHz Pro-ducts. 2013. Artigo disponível em: http://www.atmel.com/Images/Atmel-42190-Coexis-tence-between-ZigBee-and-Other-24GHz-Products_AP-Note_AT02845.pdf. Acesso em04/2014.

Babakura, A., Sulaiman, M.N., Mustapha, N., Perumal, T., HMM-Based DecisionModel 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 daUFMG. Universidade Federal de Minas Gerais, Belo Horizonte, 2003.

Bolzani, C., Desenvolvimento de um simulador de controle de dispositivos resi-denciais 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.comm-5.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 lookat the state of the art. Pervasive and Mobile Computing 3, pp. 53–73. Design and Use ofSmart Environments.

Crandall, A. S., Cook, D.J. “Using hidden Markov Model for Resident Identifica-tion”, 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 – HiddenMarkov Models. Pontifícia Universidade Católica do Rio Grande do Sul, Faculdade deInformática, Porto Alegre. 2009.

Evangelista, D.S., Integração de Redes de Sensores ZigBee para Automação PredialUtilizando Módulos Meshbean. Trabalho (Graduação). Universidade de Brasília. Depar-tamento 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 de-sign. pp. 1-12, 2004.

Gajski, D., Abdi, S., Gerstlauer, A., Schirner, G., Embedded System Design: Mo-deling, Synthesis and Verification. New York, NY, USA: Springer, 2009.

Garcia, N. L., Probabilidade Condicional. Instituto de Matemática, Estatística eComputação Científica, Universidade Estadual de Campinas. Notas de Aula. 2008.

Gazziro, M., Microprocessadores: padrões de comunicação serial (RS-422, 423, 449e 485). Universidade de São Paulo, Escola de Engenharia de São Carlos. São Carlos. Notasde Aula. 2013.

Halswanter, T., Distributions of one variable. 2014. Artigo disponível em: http://work.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. Cam-bridge, 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). UniversidadeEstadual de Feira de Santana, Feira de Santana, 2010.

Medeiros, H.; Casa do futuro. Revista Téchne. 2009. Artigo disponível em: http://www.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. Disser-tação (Mestrado). Escola de Engenharia de São Carlos, Universidade de São Paulo, SãoCarlos, 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 deMatemática, Poços de Caldas, 1985.

NR, Norma Regulamentadora Ministério do Trabalho e Emprego. NR-17: Ergono-mia em Engenharia de Segurança e em Medicina do Trabalho. 2009.

Oliveira, F.A.R., Instrumentação e identificação de um ambiente predial visandocontrole 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 Residen-cial. Trabalho (Graduação), Universidade Federal do Rio Grande do Norte, Departamentode Engenharia Elétrica, Natal, 15p.

Peyton, Z. Pleebes, Jr., Probability, Random Variables And Random Signal Prin-ciples, 4th ed. New York: McGraw-Hill, 2001.

Rabiner, L.R. & Juang, B.H., An Introduction to Hidden Markov Models. IEEEASSP 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 Compor-tamento. Dissertação (Mestrado), Centro Universitário da FEI, Departamento de Enge-nharia Elétrica, São Bernardo do Campo, 2007.

Silva, F.C., Redes de comunicação para aplicações em automação residencial: re-visão de literatura. Monografia (Graduação), Universidade Federal de Lavras, Departa-mento 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 onTelemetry 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 RecognitionUsing 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 Fe-deral de Santa Catarina, Departamento de Ciência da Computação. Florianópolis, 2002.

Apêndices

87

APÊNDICE A – Algoritmo HMM em C paraRaspberry Pi

Será apresentado o algoritmo HMM em linguagem C implementado no computadorRaspberry Pi. O resultado da execução deste algoritmo é a geração de quatro arquivostexto:

1. Transition_Probability: Neste arquivo é armazenada a matriz de probabilidade detransição entre estados. Este arquivo é sempre modificado enquanto o algoritmoestiver 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 deobservação. Este arquivo é modificado somente quando há intervenções do usuáriosobre o sistema. De acordo com a aproximação utilizada, este arquivo ocupa 1.4 MBde 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. Deacordo com a aproximação utilizada, este arquivo ocupa 1.4 MB de memória dearmazenamento;

4. belief : Neste arquivo é armazenado o perfil de temperatura identificado pelo algo-ritmo HMM. Este arquivo é modificado enquanto o algoritmo estiver sendo execu-tado, a cada 5 minutos. De acordo com a aproximação utilizada, este arquivo ocupa20 kB de memória de armazenamento;

1 #include <stdio.h>

2 #include <stdlib.h>

3 #include <unistd.h>

4 #include <fcntl.h>

5 #include <termios.h>

6 #include <string.h>

7 #include <time.h>

8 #include <math.h>

9 #include <signal.h>

10

11 #define DEVICE0 "AE51"

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

12 #define DEVICE1 "8E54"

13 #define MAX_BYTES 512

14 #define N_states 8

15 #define N_discrete 2016

16 #define ONEWEEK 10080

17 #define TOTAL N_discrete*pow(N_states,2)

18 #define PI acos(≠1)19 #define TRAN_STD 5.0

20 #define OBSERV_STD 1.5

21 #define TIME_STD 2.0

22 #define MIN_AS_SECONDS 60 // Tempo de execucao: 1 minuto equivale ...

a MIN_AS_SECONDS segundos.

23 //#define RUN_ONCE

24

25 void check_inputs(int argc, char* argv[]);

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

27 double gaussian_pdf(int x, int mean, float std);

28 void normalize(double* vector, int posicao);

29 int temperature_belief(double* vector, int indice, int ...

leitura_temperatura);

30 float adc10_to_temperature(int ADC10_value);

31 float check_temperature(float temperature);

32 void catch_alarm(int sig);

33 void currenttime(void);

34 void wait_for_alarm(void);

35

36 struct tm *local;

37 time_t tempo;

38 int hora=0, minuto=0, segundo=0, dia_semana=0;

39 int hora2, minuto2, segundo2, dia_semana2, milissegundo2;

40

41 volatile sig_atomic_t hold_and_go = 0;

42 volatile sig_atomic_t zigbee_device0 = 0;

43 volatile sig_atomic_t zigbee_device1 = 0;

44

45 int main(int argc, char* argv[]) {

46 srand(time(NULL));

47 signal(SIGALRM, catch_alarm);

48

49 FILE* fp2;

50 FILE* fp4;

51 FILE* fp5;

52 FILE* fp6;

53

54 int data_length;

55 unsigned char data[MAX_BYTES];

56 int uart0_filestream;

89

57

58 double* Tran_Prob;

59 double* Observ_Prob;

60 double* Total_Prob;

61 int* Belief;

62

63 Tran_Prob = (double*) malloc(TOTAL*sizeof(double));

64 Observ_Prob = (double*) malloc(TOTAL*sizeof(double));

65 Total_Prob = (double*) malloc(TOTAL*sizeof(double));

66 Belief = (int*) malloc(N_discrete*sizeof(int));

67

68 int leitura_tempo=0;

69 int posicao, posicao2, aux, aux2, indice, i, k;

70 char device[4];

71 unsigned char leitura_controle[3];

72 float device_battery[3], leitura_temperatura[3], ...

leitura_temp_controle[3];

73

74 for (i=0;i<TOTAL;i++) {

75 Tran_Prob[i] = 1.0/N_states;

76 Observ_Prob[i] = 1.0/N_states;

77 Total_Prob[i] = 1.0/N_states;

78 if (i < N_discrete)

79 Belief[i] = 23;

80 }

81

82 check_inputs(argc,argv);

83 uart_init(&uart0_filestream, argv);

84

85 currenttime();

86 printf("\nDia da semana: %d\tHorario atual: ...

%02d:%02d:%02d\n",dia_semana2,hora2,minuto2,segundo2);

87 printf("Dia da semana: %d\tHorario sistema: ...

%02d:%02d:%02d\t%05d\n", dia_semana, hora, minuto, segundo, ...

leitura_tempo);

88

89 #ifndef RUN_ONCE

90 alarm(5*MIN_AS_SECONDS);

91 while (1) {

92 #endif

93 do {

94 data_length = read(uart0_filestream, data, MAX_BYTES);

95 if (data_length == 29) {

96 data[data_length] = '\0';

97

98 for (i = 0; i < 4; i++)

99 device[i] = data[i+6];

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

100

101 if (!strncmp(device,DEVICE0,4) && !zigbee_device0) {

102 zigbee_device0 = 1;

103

104 device_battery[0] = 0;

105 leitura_temperatura[0] = 0;

106 leitura_temp_controle[0] = 0;

107 leitura_controle[0] = data[26];

108

109 for (i = 0; i < 4; i++) {

110 device_battery[0] += (data[i+11]≠48)*pow(10,≠i);111 leitura_temperatura[0] += ...

(data[i+16]≠48)*pow(10,3≠i);112 leitura_temp_controle[0] += ...

(data[i+21]≠48)*pow(10,3≠i);113 }

114 leitura_temperatura[0] = ...

adc10_to_temperature(leitura_temperatura[0]);

115 leitura_temp_controle[0] = ...

adc10_to_temperature(leitura_temp_controle[0]);

116 printf("device: %s device_battery: %.2f V ...

temperatura: %.1f oC temp_control: %.1f oC ...

lc: %c\n", DEVICE0, device_battery[0], ...

leitura_temperatura[0], ...

leitura_temp_controle[0], leitura_controle[0]);

117 }

118 if (!strncmp(device,DEVICE1,4) && !zigbee_device1) {

119 zigbee_device1 = 1;

120

121 device_battery[1] = 0;

122 leitura_temperatura[1] = 0;

123 leitura_temp_controle[1] = 0;

124 leitura_controle[1] = data[26];

125

126 for (i = 0; i < 4; i++) {

127 device_battery[1] += (data[i+11]≠48)*pow(10,≠i);128 leitura_temperatura[1] += ...

(data[i+16]≠48)*pow(10,3≠i);129 leitura_temp_controle[1] += ...

(data[i+21]≠48)*pow(10,3≠i);130 }

131 leitura_temperatura[1] = ...

adc10_to_temperature(leitura_temperatura[1]);

132 leitura_temp_controle[1] = ...

adc10_to_temperature(leitura_temp_controle[1]);

133 printf("device: %s device_battery: %.2f V ...

temperatura: %.1f oC temp_control: %.1f oC ...

91

lc: %c\n", DEVICE1, device_battery[1], ...

leitura_temperatura[1], ...

leitura_temp_controle[1], leitura_controle[1]);

134 }

135 }

136 usleep(2E5);

137 } while (!zigbee_device0 || !zigbee_device1);

138

139 device_battery[2] = (device_battery[0]+device_battery[1])/2.0;

140 leitura_temperatura[2] = round((leitura_temperatura[0] + ...

leitura_temperatura[1])/2.0);

141 leitura_temp_controle[2] = round((leitura_temp_controle[0] + ...

leitura_temp_controle[1])/2.0);

142 leitura_temp_controle[0] = round(leitura_temp_controle[0]);

143 leitura_temp_controle[1] = round(leitura_temp_controle[1]);

144

145 leitura_temperatura[2] = ...

check_temperature(leitura_temperatura[2]);

146 leitura_temp_controle[0] = ...

check_temperature(leitura_temp_controle[0]);

147 leitura_temp_controle[1] = ...

check_temperature(leitura_temp_controle[1]);

148 leitura_temp_controle[2] = ...

check_temperature(leitura_temp_controle[2]);

149

150 posicao = pow(N_states,2)*leitura_tempo/5;

151

152 for (k = 0;k < pow(N_states,2);k += N_states) {

153 for (indice = 0;indice < N_states;indice++) {

154 Tran_Prob[(posicao+k)+indice] *= ...

gaussian_pdf(20+indice, leitura_temperatura[2], ...

TRAN_STD);

155

156 Total_Prob[(posicao+k)+indice] = ...

Tran_Prob[(posicao+k)+indice]* ...

Observ_Prob[(posicao+k)+indice];

157 }

158 normalize(Tran_Prob,(posicao+k));

159 normalize(Total_Prob,(posicao+k));

160 }

161

162 if ((leitura_controle[0] == '1') || (leitura_controle[1] == ...

'1')) {

163 if ((leitura_controle[0] == '1') && (leitura_controle[1] ...

== '1'))

164 k = 2;

165 else if (leitura_controle[0] == '1')

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

166 k = 0;

167 else

168 k = 1;

169

170 printf("temperatura_controle: ...

%.1f\n",leitura_temp_controle[k]);

171

172 for (i = leitura_tempo≠40*5;i Æ leitura_tempo+40*5; i += ...

5) {

173 posicao2 = pow(N_states,2)*i/5;

174 if ((i Ø 0) && (i < ONEWEEK)) {

175 for (aux = 0; aux < pow(N_states,2); aux += ...

N_states) {

176 for (aux2 = 0; aux2 < N_states;aux2++) {

177 Observ_Prob[(posicao2+aux)+aux2] *= ...

gaussian_pdf(20+aux2, ...

leitura_temp_controle[k], ...

pow(fabs(i/5≠leitura_tempo/5),3)/20 + ...

TIME_STD);

178 }

179 Total_Prob[(posicao2+aux)+aux2] = ...

Tran_Prob[(posicao2+aux)+aux2]* ...

Observ_Prob[(posicao2+aux)+aux2];

180 normalize(Observ_Prob,(posicao2+aux));

181 normalize(Total_Prob,(posicao2+aux));

182 }

183 }

184 }

185 }

186

187 Belief[leitura_tempo/5] = temperature_belief(Total_Prob, ...

leitura_tempo/5*pow(N_states,2), leitura_temperatura[2]);

188

189 fp2 = fopen("Transition_Probability","w");

190 fp5 = fopen("Observation_Probability","w");

191 fp6 = fopen("Total_Probability","w");

192

193 fp4 = fopen("belief","w");

194 for (aux = 0; aux < N_discrete; aux ++)

195 fprintf(fp4,"%05d\t%d\n",aux*5,Belief[aux]);

196 fclose(fp4);

197

198 for (aux=0;aux<TOTAL;aux+=8) {

199 for (i=0;i<8;i++) {

200 fprintf(fp2,"%.8f ",Tran_Prob[aux+i]);

201 fprintf(fp5,"%.8f ",Observ_Prob[aux+i]);

202 fprintf(fp6,"%.8f ",Total_Prob[aux+i]);

93

203 }

204 fprintf(fp2,"\n");

205 fprintf(fp5,"\n");

206 fprintf(fp6,"\n");

207 }

208

209

210 fclose(fp2);

211 fclose(fp5);

212 fclose(fp6);

213

214 #ifndef RUN_ONCE

215 wait_for_alarm();

216 #endif

217 minuto += 5;

218

219 if (minuto > 55) {

220 minuto = 0;

221 hora++;

222 }

223

224 if (hora > 23) {

225 hora = 0;

226 dia_semana++;

227 }

228

229 if (dia_semana > 6) {

230 dia_semana = 0;

231 }

232

233 leitura_tempo = (floor(minuto/5))*5 + 60*hora + ...

1440*(dia_semana);

234

235 zigbee_device0 = 0;

236 zigbee_device1 = 0;

237

238 currenttime();

239 printf("\nDia da semana: %d\tHorario atual: ...

%02d:%02d:%02d\n", dia_semana2, hora2, minuto2, segundo2);

240 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

243 }

244 #endif

245 return 0;

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

246 }

247

248

249 /* * * * * * * * * * * * * * * * * * * * * */

250 /* Funcoes */

251 /* * * * * * * * * * * * * * * * * * * * * */

252

253 void check_inputs(int argc, char* argv[]) {

254 if (argc != 3) {

255 printf("\n* * * Modo de execucao incorreto!\n");

256 printf("* * * Utilize a seguinte sintaxe: %s [device ...

location] [baud rate]\n",argv[0]);

257 printf("* * * Exemplo: %s /dev/tty0 9600\n\n",argv[0]);

258 exit(≠1);259 }

260 }

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) {

267 printf("\nError: Unable to open %s\n\n",argv[1]);

268 exit(≠1);269 }

270

271 struct termios options;

272 tcgetattr(*uart_fd, &options);

273

274 options.c_cflag |= atoi(argv[2]) | CLOCAL | CREAD | CRTSCTS;

275 options.c_cflag &= ¬PARENB;276 options.c_cflag &= ¬CSTOPB;277 options.c_cflag &= ¬CSIZE;278 options.c_cflag |= CS8;

279

280 options.c_iflag = IGNPAR;

281 options.c_oflag = 0;

282 options.c_lflag &= ¬(ICANON | ECHO | ECHOE | ISIG);

283

284 tcflush(*uart_fd, TCIFLUSH);

285 tcsetattr(*uart_fd, TCSANOW, &options);

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;

292 int menor = 7, menor_indice, diferenca;

293

294 for (i=0;i<N_states;i++) {

295 if (vector[indice+i] > maior[k]) {

296 maior[k] = vector[indice+i];

297 maior_indice[k] = i;

298 } else if (vector[indice+i] == maior[k]) {

299 k++;

300 maior[k] = vector[indice+i];

301 maior_indice[k] = i;

302 }

303 }

304

305 for (i=0;i<N_states;i++) {

306 diferenca = fabs(maior_indice[i] ≠ (leitura_temperatura%20));

307 if (diferenca < menor) {

308 menor = diferenca;

309 menor_indice = maior_indice[i];

310 }

311 }

312 return 20 + menor_indice;

313 }

314

315 double gaussian_pdf(int x, int mean, float std) {

316 double aux;

317 aux = ≠pow(x≠mean,2)/(2.0*pow(std,2));318 return (1.0/sqrt(2*PI*pow(std,2)))*exp(aux);

319 }

320

321 void normalize(double* vector, int posicao) {

322 int i;

323 double sum = 0;

324

325 for (i=0;i<N_states;i++)

326 sum += vector[posicao+i];

327

328 for (i=0;i<N_states;i++)

329 vector[posicao+i] /= sum;

330 }

331

332 float adc10_to_temperature(int ADC10_value) {

333 return (ADC10_value*150.0/1023.0);

334 }

335

336 float check_temperature(float temperature) {

337 if (temperature > 27.0)

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

338 return 27.0;

339 else if (temperature < 20.0)

340 return 20.0;

341 else

342 return temperature;

343 }

344

345 void currenttime(void) {

346 tempo = time(NULL);

347 local = localtime(&tempo);

348 dia_semana2 = local≠>tm_wday;349 segundo2 = local≠>tm_sec;350 minuto2 = local≠>tm_min;351 hora2 = local≠>tm_hour;352 }

353

354 void wait_for_alarm(void) {

355 if (hold_and_go == 0)

356 while (hold_and_go == 0) {

357 usleep(1E5);

358 }

359 else

360 while (hold_and_go != 0) {

361 usleep(1E5);

362 }

363 }

364

365 void catch_alarm(int sig) {

366 if (hold_and_go == 0)

367 hold_and_go = 1;

368 else

369 hold_and_go = 0;

370

371 alarm(5*MIN_AS_SECONDS);

372 signal(sig, catch_alarm);

373 }

97

APÊNDICE B – Algoritmo em C para Criaçãodo Perfil de Temperatura

Será apresentado o algoritmo em linguagem C utilizado para a criação do perfil detemperatura desejado pelo usuário. O resultado da execução deste algoritmo é o arquivotexto dados_treinamento, onde suas linhas apresentam o seguinte formato:

Tempo (em minutos) Temperatura (em graus centígrados)

Como, por exemplo:

00000 2300005 2300010 2200015 2100020 22

... ...10080 21

1 #include <stdlib.h>

2 #include <stdio.h>

3 #include <unistd.h>

4 #include <string.h>

5 #include <time.h>

6

7 int main(int argc, char* argv[]) {

8 // Ponteiro para arquivos

9 FILE* fp;

10 int i;

11

12 struct tm *local;

13 time_t tempo;

14 int hora, minuto, segundo, dia_semana;

15

16 tempo = time(NULL); // Pega a hora atual do sistema.

17 local = localtime(&tempo); // Converte≠o em uma estrutura tm.

18 dia_semana = local≠>tm_wday; // calcula o dia da semana

19 segundo = local≠>tm_sec; // calcula o segundo

20 minuto = local≠>tm_min; // calcula o minuto

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

21 hora = local≠>tm_hour; // calcula a hora

22

23 printf("Dia da semana: %d\tHora atual: %02d:%02d:%02d\n", ...

dia_semana+1, hora, minuto, segundo);

24 /* ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ */

25

26 fp = fopen("dados_treinamento","w");

27

28 /* ≠ ≠ ≠ ≠ DOMINGO ≠ ≠ ≠ ≠ */

29

30 // DOMINGO 00h00 ¬ 09h00: 21oC

31 for (i=0;i<9*60;i+=5)

32 fprintf(fp,"%05d 21\n",i);

33

34 // DOMINGO 09h00 ¬ 10h00: 25oC

35 for (i=9*60;i<10*60;i+=5)

36 fprintf(fp,"%05d 25\n",i);

37

38 // DOMINGO 10h00 ¬ 22h00: 22oC

39 for (i=10*60;i<22*60;i+=5)

40 fprintf(fp,"%05d 22\n",i);

41

42 // DOMINGO 22h00 ¬ 00h00: 21oC

43 for (i=22*60;i<24*60;i+=5)

44 fprintf(fp,"%05d 21\n",i);

45

46

47 /* ≠ ≠ ≠ ≠ SEGUNDA≠FEIRA ≠ ≠ ≠ ≠ */

48

49 // SEGUNDA 00h00 ¬ 06h45: 21oC

50 for (i=24*60;i<30.75*60;i+=5)

51 fprintf(fp,"%05d 21\n",i);

52

53 // SEGUNDA 06h45 ¬ 08h00: 25oC

54 for (i=30.75*60;i<32*60;i+=5)

55 fprintf(fp,"%05d 25\n",i);

56

57 // SEGUNDA 08h00 ¬ 17h00: DON'T CARE

58 for (i=32*60;i<41*60;i+=5)

59 fprintf(fp,"%05d 24\n",i);

60 //fprintf(fp,"%05d XX\n",i);

61

62 // SEGUNDA 17h00 ¬ 22h00: 24oC

63 for (i=41*60;i<46*60;i+=5)

64 fprintf(fp,"%05d 24\n",i);

65

66 // SEGUNDA 22h00 ¬ 00h00: 21oC

99

67 for (i=46*60;i<48*60;i+=5)

68 fprintf(fp,"%05d 21\n",i);

69

70

71 /* ≠ ≠ ≠ ≠ TERCA≠FEIRA ≠ ≠ ≠ ≠ */

72

73 // TERCA 00h00 ¬ 06h45: 21oC

74 for (i=48*60;i<54.75*60;i+=5)

75 fprintf(fp,"%05d 21\n",i);

76

77 // TERCA 06h45 ¬ 08h00: 25oC

78 for (i=54.75*60;i<56*60;i+=5)

79 fprintf(fp,"%05d 25\n",i);

80

81 // TERCA 08h00 ¬ 20h00: DON'T CARE

82 for (i=56*60;i<68*60;i+=5)

83 fprintf(fp,"%05d 24\n",i);

84 //fprintf(fp,"%05d XX\n",i);

85

86 // TERCA 20h00 ¬ 22h00: 23oC

87 for (i=68*60;i<70*60;i+=5)

88 fprintf(fp,"%05d 23\n",i);

89

90 // TERCA 22h00 ¬ 00h00: 21oC

91 for (i=70*60;i<72*60;i+=5)

92 fprintf(fp,"%05d 21\n",i);

93

94

95 /* ≠ ≠ ≠ ≠ QUARTA≠FEIRA ≠ ≠ ≠ ≠ */

96

97 // QUARTA 00h00 ¬ 06h45: 21oC

98 for (i=72*60;i<78.75*60;i+=5)

99 fprintf(fp,"%05d 21\n",i);

100

101 // QUARTA 06h45 ¬ 08h00: 25oC

102 for (i=78.75*60;i<80*60;i+=5)

103 fprintf(fp,"%05d 25\n",i);

104

105 // QUARTA 08h00 ¬ 17h00: DON'T CARE

106 for (i=80*60;i<89*60;i+=5)

107 fprintf(fp,"%05d 24\n",i);

108 //fprintf(fp,"%05d XX\n",i);

109

110 // QUARTA 17h00 ¬ 22h00: 24oC

111 for (i=89*60;i<94*60;i+=5)

112 fprintf(fp,"%05d 24\n",i);

113

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

114 // QUARTA 22h00 ¬ 00h00: 21oC

115 for (i=94*60;i<96*60;i+=5)

116 fprintf(fp,"%05d 21\n",i);

117

118

119 /* ≠ ≠ ≠ ≠ QUINTA≠FEIRA ≠ ≠ ≠ ≠ */

120

121 // QUINTA 00h00 ¬ 06h45: 21oC

122 for (i=96*60;i<102.75*60;i+=5)

123 fprintf(fp,"%05d 21\n",i);

124

125 // QUINTA 06h45 ¬ 08h00: 25oC

126 for (i=102.75*60;i<104*60;i+=5)

127 fprintf(fp,"%05d 25\n",i);

128

129 // QUINTA 08h00 ¬ 20h00: DON'T CARE

130 for (i=104*60;i<116*60;i+=5)

131 fprintf(fp,"%05d 24\n",i);

132 //fprintf(fp,"%05d XX\n",i);

133

134 // QUINTA 20h00 ¬ 22h00: 23oC

135 for (i=116*60;i<118*60;i+=5)

136 fprintf(fp,"%05d 23\n",i);

137

138 // QUINTA 22h00 ¬ 00h00: 21oC

139 for (i=118*60;i<120*60;i+=5)

140 fprintf(fp,"%05d 21\n",i);

141

142

143 /* ≠ ≠ ≠ ≠ SEXTA≠FEIRA ≠ ≠ ≠ ≠ */

144

145 // SEXTA 00h00 ¬ 06h45: 21oC

146 for (i=120*60;i<126.75*60;i+=5)

147 fprintf(fp,"%05d 21\n",i);

148

149 // SEXTA 06h45 ¬ 08h00: 25oC

150 for (i=126.75*60;i<128*60;i+=5)

151 fprintf(fp,"%05d 25\n",i);

152

153 // SEXTA 08h00 ¬ 17h00: DON'T CARE

154 for (i=128*60;i<137*60;i+=5)

155 fprintf(fp,"%05d 24\n",i);

156 //fprintf(fp,"%05d XX\n",i);

157

158 // SEXTA 17h00 ¬ 20h00: 23oC

159 for (i=137*60;i<140*60;i+=5)

160 fprintf(fp,"%05d 23\n",i);

101

161

162 // SEXTA 20h00 ¬ 23h00: DON'T CARE

163 for (i=140*60;i<143*60;i+=5)

164 fprintf(fp,"%05d 24\n",i);

165 //fprintf(fp,"%05d XX\n",i);

166

167 // SEXTA 23h00 ¬ 00h00: 23oC

168 for (i=143*60;i<144*60;i+=5)

169 fprintf(fp,"%05d 22\n",i);

170

171

172 /* ≠ ≠ ≠ ≠ SABADO ≠ ≠ ≠ ≠ */

173

174 // SABADO 00h00 ¬ 09h00: 21oC

175 for (i=144*60;i<153*60;i+=5)

176 fprintf(fp,"%05d 21\n",i);

177

178 // SABADO 09h00 ¬ 16h00: 24oC

179 for (i=153*60;i<160*60;i+=5)

180 fprintf(fp,"%05d 24\n",i);

181

182 // SABADO 16h00 ¬ 00h00: 24oC

183 for (i=160*60;i<168*60;i+=5)

184 fprintf(fp,"%05d 23\n",i);

185

186 fclose(fp);

187 }

103

APÊNDICE C – Algoritmo em C para Cálculodo Estimador MSE

Será apresentado o algoritmo em linguagem C utilizado para calcular o MSE entrea aproximação resultante do algoritmo HMM e o perfil de temperatura desejado pelousuário. O resultado da execução deste algoritmo é o arquivo texto EQM.txt, onde suaslinhas apresentam o seguinte formato:

Tempo (em minutos) Erro Quadrático (em graus centígrados ao quadrado)

Como, por exemplo:

00000 100005 400010 400015 100020 0

... ...10080 1

1 #include <stdlib.h>

2 #include <stdio.h>

3 #include <unistd.h>

4 #include <string.h>

5 #include <time.h>

6 #include <math.h>

7

8 int EQ(int x, int y);

9 int max(int x, int y);

10

11 int main(int argc, char* argv[]) {

12 // Ponteiro para arquivos

13 FILE* fp1; FILE* fp2; FILE* fp3; FILE* fp4;

14

15 int leitura_tempo, LTbelief, LTtreinamento, sum = 0, sum_max = ...

0, i = 0;

16 fp4 = fopen("EQM_value","w");

17 char c = 0;

18 do {

104 APÊNDICE C. Algoritmo em C para Cálculo do Estimador MSE

19 fp1 = fopen("belief","r");

20 fp2 = fopen("dados_treinamento","r"); // comparando com os ...

dados supostamente desejados pelo usuario

21 //fp2 = fopen("saida_matlab.txt","r"); // comparando com os ...

dados lidos (com erro)

22 fp3 = fopen("EQM.txt","w");

23 do {

24 fscanf(fp1,"%d %d\n",&leitura_tempo, &LTbelief);

25 fscanf(fp2,"%d %d\n",&leitura_tempo, &LTtreinamento);

26 fprintf(fp3,"%05d\t%d\n", leitura_tempo, ...

EQ(LTbelief,LTtreinamento));

27 sum += EQ(LTbelief, LTtreinamento);

28 sum_max += max(EQ(27,LTtreinamento), EQ(20,LTtreinamento));

29 //printf("%05d\t%d\n", leitura_tempo, sum);

30 } while (!feof(fp1));

31

32 i++;

33 fprintf(fp4,"%03d\t%.4f\n",i,(float) sum/2016);

34 printf("%03d\t%.4f",i,(float) sum/2016);

35

36 sum = 0;

37 sum_max = 0;

38

39 fclose(fp1);

40 fclose(fp2);

41 fclose(fp3);

42

43 scanf("%c",&c); //condicao de parada pelo teclado

44 } while ((c != 'q') && (i != 200));

45

46 fclose(fp4);

47 return 0;

48 }

49

50 int EQ(int x, int y) {

51 return pow(x≠y,2);52 }

53

54 int max(int x, int y) {

55 if (x>y)

56 return x;

57 else

58 return y;

59 }

105

APÊNDICE D – Script em Matlab para Gera-ção de Gráficos

Será apresentado o script em Matlab utilizado para a geração de quatro tipos degráficos: Perfil Desejado pelo Usuário x Perfil Aproximado, Resultado do HMM x PerfilDesejado pelo Usuário, Erro Médio Quadráticos para a Semana e, por fim, Evolução doErro Médio Quadrático ao longo das Semanas.

1 clear all;

2 close all;

3 clc;

4

5 Nweeks = 200;

6 noise_std = 0.0;

7

8 y = load('dados_treinamento');

9

10 ii = [0,540,600,1320,1845,1920,2460,2760,3285, ...

11 3360,4080,4200,4725,4800,5340,5640,6165,6240,6960,7080,7605, ...

12 7680,8220,8400,8580,8640,9180,9600,10080];

13

14 ti = [21,25,22,21,25,24,24,21,25,24,23,21, ...

15 25,24,24,21,25,24,23,21,25,24,23,24,22,21,24,23];

16

17 Nfourier = 100;

18

19 n = 1:Nfourier;

20 L = 10080/2;

21

22 a0 = 0;

23 for i=1:(length(ti))

24 a0 = a0 + ti(i)*(ii(i+1)≠ii(i))/L;25 end

26

27 an = transpose(zeros(length(n),1));

28 for j = n

29 for i=1:(length(ti))

30 an(j) = an(j) + ...

1/(pi*n(j))*ti(i)*(sin(pi*n(j)*ii(i+1)/L)≠sin(pi*n(j)*ii(i)/L));

106 APÊNDICE D. Script em Matlab para Geração de Gráficos

31 end

32 end

33

34 bn = transpose(zeros(length(n),1));

35 for j = n

36 for i=1:(length(ti))

37 bn(j) = bn(j) + ...

1./(pi*n(j))*ti(i)*(cos(pi*n(j)*ii(i)/L)≠cos(pi*n(j)*ii(i+1)/L));38 end

39 end

40

41 precisao = 0.1;

42 %t = 0:precisao:(y(length(y),1)≠precisao);43 t = 0:precisao:(y(length(y),1)≠precisao+5);44 f(1,:) = a0/2 + transpose(zeros(length(t),1));

45 for i = n

46 f(1,:) = f(1,:) + an(i)*cos(i*pi*t/L) + bn(i)*sin(i*pi*t/L);

47 end

48

49 output = transpose(zeros(length(y),Nweeks));

50 saida = zeros(2016*Nweeks,2);

51 saida_obs = zeros(2016*Nweeks,3);

52

53 for i = 1:Nweeks

54 f(i,:) = f(1,:) + noise_std*randn(size(t));

55 end

56

57 for j = 1:Nweeks

58 for i = 1:(length(y(:,1)))

59 output(j,i) = f(j,5*i/precisao);

60 end

61 end

62

63 for i = 1:Nweeks

64 for j = 0:5:10075

65 k = 2016*(i≠1)+j/5+1;66 saida(k,:) = [j, round(transpose(output(i,j/5+1)))];

67 saida_obs(k,1) = j;

68

69 % mudanca de rotina: agora a pessoa quer dormir mais cedo, e gosta

70 % de tempratura 21 graus centigrados quando vai dormir.

71 if ((j == 4110) || (j == 4140) || (j == 4170))

72 saida_obs(k,2) = 1;

73 saida_obs(k,3) = 21;

74 end

75 end

76 end

107

77

78 file = fopen('saida_matlab.txt','w');

79 fprintf(file,'%.5d\t%.2d\r\n',transpose(saida));

80

81 file = fopen('saida_obs.txt','w');

82 fprintf(file,'%.5d\t%.1d\t%.2d\r\n',transpose(saida_obs));

83

84

85

86 % Semana a ser utilizada como base para o grafico 1:

87 semana = 1;

88

89 figure(1);

90 %plot(y(:,1),output(1,:),'≠b', y(:,1), y(:,2), '≠≠.r', ...

y(:,1),output(2,:), '≠≠g',y(:,1), output(3,:),'≠≠m');91 plot(y(:,1),output(semana,:),'≠b',y(:,1),y(:,2),'≠≠*r');92 %plot(y(:,1),y(:,2),'≠≠*r');93 axis([0 10080 20 27]);

94 grid on;

95 xlabel('Tempo (minutos)','fontsize',12);

96 ylabel('Temperatura (oC)','fontsize',12);

97 title('Perfis de Temperatura','fontsize',18);

98 legend('perfil fisico + ruido (std = 0.04)','perfil desejado');

99 %legend('perfil desejado');

100

101 input('Run HMM and EQM algorithms and then press enter.');

102 figure(2);

103

104 z = load('belief');

105 plot(z(:,1),z(:,2),'≠*b',y(:,1),y(:,2),'≠≠*r');106 axis([0 10080 19 27]);

107 grid on;

108 xlabel('Tempo (minutos)','fontsize',12);

109 ylabel('Temperatura (oC)','fontsize',12);

110 title('Perfis de Temperatura','fontsize',18);

111 legend('HMM','perfil desejado');

112

113

114 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

115 % %

116 % PLOTANDO ERRO QUADRATICO E ERRO QUADRATICO MEDIO ENCONTRADO. %

117 % %

118 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

119

120 figure(3);

121 w = load('EQM.txt');

122 w_eqm = load('EQM_value');

108 APÊNDICE D. Script em Matlab para Geração de Gráficos

123 eqm = zeros(2016,1);

124 eqm = eqm + w_eqm(semana,2);

125 %eqm = eqm + 0.62;

126 max_eq_value = max(w(:,2)) + 1;

127

128 bar(w(:,1),w(:,2),0.05,'b');

129 hold;

130 plot(w(:,1),eqm,'r','LineWidth',3);

131

132 axis([0 10080 0 max_eq_value]);

133 grid on;

134 xlabel('Tempo (minutos)','fontsize',12);

135 ylabel('Erro Quadratico (oC2)','fontsize',12);

136 title('Erro Quadratico','fontsize',18);

137 legend('Erro Quadratico','Erro Quadratico Medio');

138

139 figure(4);

140 eqm = zeros(Nweeks,1);

141 eqm = eqm + mean(w_eqm(:,2));

142 max_eqm_value = max(w_eqm(:,2))*1.1;

143

144 plot(w_eqm(:,1),w_eqm(:,2),'≠*b');145

146 axis([1 50 0.2 max_eqm_value]);

147 grid on;

148 xlabel('Tempo (semanas)','fontsize',12);

149 ylabel('Erro Quadratico (oC2)','fontsize',12);

150 title('Erro Quadratico','fontsize',18);

151 legend('Erro Quadratico Medio');