63
SEMINARIO DE TITULACIÓN “PROCESAMIENTO DIGITAL DE SEÑALES” Procesamiento digital de señales en edificios inteligentes T E S I N A Que para obtener el grado de: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA. Presenta: Luis Felipe Gambino Mejía ASESORES: M. en C. ORLANDO BELTRÁN NAVARRO. M. en C. BRAULIO SANCHEZ ZAMORA México, D. F. Noviembre de 2009. INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Embed Size (px)

Citation preview

Page 1: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

SEMINARIO DE TITULACIÓN “PROCESAMIENTO DIGITAL DE SEÑALES”

Procesamiento digital de señales en edificios inteligentes

T E S I N A

Que para obtener el grado de:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA.

Presenta:

Luis Felipe Gambino Mejía

ASESORES:

M. en C. ORLANDO BELTRÁN NAVARRO. M. en C. BRAULIO SANCHEZ ZAMORA

México, D. F. Noviembre de 2009.

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD CULHUACAN INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

Page 2: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA ELÉCTRICA

UNIDAD CULHUACAN

TESINA Que para obtener el título de: INGENIERO EN COMUNICACIONES Y

ELECTRONICA Por la opción de titulación: SEMINARIO DE TITULACIÓN

“PROCESAMIENTO DIGITAL DE SEÑALES” Deberán desarrollar: LUIS FELIPE GAMBINO MEJIA

INTRODUCCION

La evolución de la tecnología y de los modos de vida, nos permite hoy prever espacios de uso cotidiano mejor adaptados, tanto en edificios nuevos como en construcciones existentes. Esta posibilidad se debe básicamente al progreso realizado en la electrónica y la nueva concepción de redes externas e internas de comunicación.

CAPITULO I GENERALES CAPITULO II FUNDAMENTOS TEORICOS CAPITULO III SIMULACION DEL SISTEMA EN MATLAB CAPITULO III CONCLUSIONES _______________________________ _____________________________ M. en C. Orlando Beltrán Navarro M. en C. Braulio Sánchez Zamora Coordinador del seminario Asesor

________________________________ Ing. Ignacio Monroy Ostria

Jefe de carrera de ICE

Page 3: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 2 

INDICE

CAPITULO I GENERALES

Justificación del proyecto ………………………………………………………… 3

Objetivos ………………………………………………………………………… 3

Conceptos generales ………………………………………………………………. 3

CAPITULO II FUNDAMENTOS TEORICOS

Redes neuronales.………………………………………………………………….. 15

Introducción a Matlab.…………………………………………………………..…. 32

Capturar y grabar un sonido en MatLab.…………………………………………... 49

Ventaneo …………………………………………………………………………… 50

Filtros digitales.……………………………………………………………………. 51

CAPITULO III SIMULACION DEL SISTEMA EN MATLAB

Captura de los mandos de voz …………………………………………………..… 54

Entrenamiento de la red Neuronal.………………………………………………… 57

CAPITULO IV CONCLUSIONES

Conclusiones…………………….………………………………………………… 62

Bibliografía………………………………………………………………………… 63

Page 4: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 3 

CAPITULO I

GENERALES

JUSTIFICACIÓN DEL PROYECTO

Vivimos bajo el desarrollo constante y agigantado de la tecnología y si bien es cierto que nación o persona que no se actualiza perece ante la actual competencia laboral, profesional y comercial, ésta realidad impulsa el especial interés por este tema: Edificios Inteligentes.

OBJETIVO

En esta tesina se abordará desde los conceptos básicos y necesarios para entender en qué consiste un sistema inteligente, hasta los últimos desarrollos tecnológicos en éste ámbito. Así mismo se propone un esquema de equipamiento de un edificio o una casa en el que se contemplan los principales parámetros de automatización.

CONCEPTOS GENERALES

Para tratar el tema de los edificios inteligentes es necesario conocer algunos conceptos para una mejor comprensión

Inteligencia: Capacidad para aprender o comprender. Suele ser sinónimo de intelecto (entendimiento), pero se diferencia de éste por hacer hincapié en las habilidades y aptitudes para manejar situaciones concretas y por beneficiarse de la experiencia sensorial.

En psicología, la inteligencia se define como la capacidad de adquirir conocimiento o entendimiento y de utilizarlo en situaciones novedosas. En condiciones experimentales se puede medir en términos cuantitativos el éxito de las personas a adecuar su conocimiento a una situación o al superar una situación específica.

Los psicólogos creen que estas capacidades son necesarias en la vida cotidiana, donde los individuos tienen que analizar o asumir nuevas informaciones mentales y sensoriales para poder dirigir sus acciones hacia metas determinadas. No obstante, en círculos académicos hay diferentes opiniones en cuanto a la formulación precisa del alcance y funciones de la inteligencia; por ejemplo, algunos consideran que la inteligencia es una suma de habilidades específicas que se manifiesta ante ciertas situaciones.

No obstante, en la formulación de los test's de inteligencia la mayoría de los psicólogos consideran la inteligencia como una capacidad global que opera como un factor común en una amplia serie de aptitudes diferenciadas. De hecho, su medida en términos cuantitativos suele derivar de medir habilidades de forma independiente o mediante la resolución de problemas que combinan varias de ellas.

Automatización: Sistema de fabricación diseñado con el fin de usar la capacidad de las maquinas para llevar a cabo determinadas tareas anteriormente efectuadas por seres humanos, y para controlar la secuencia de las operaciones sin intervención humana. El término automatización también se ha utilizado para describir sistemas no destinados a la fabricación en los que dispositivos programados o automáticos pueden funcionar de forma independiente o semi independiente del control humano. En comunicaciones, aviación y astronáutica, dispositivos

Page 5: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 4 

como los equipos automáticos de conmutación telefónica, los pilotos automáticos y los sistemas automatizados de guía y control se utilizan para efectuar diversas tareas con más rapidez o mejor de lo que podría hacerlo un ser humano.

Elementos de la automatización.

La fabricación automatizada surgió de la íntima relación entre fuerzas económicas e innovaciones técnicas como la división del trabajo, la transferencia de energía y la mecanización de las fábricas, y el desarrollo de las máquinas de transferencia y sistemas de realimentación, como se explica a continuación.

La división del trabajo (esto es, la reducción de un proceso de fabricación o de prestación de servicios a sus fases independientes más pequeñas) se desarrolló en la segunda mitad del siglo XVIII, y fue analizada por primera vez por el economista británico Adam Smith en su libro Investigación sobre la naturaleza y causas de la riqueza de las naciones (1776). En la fabricación, la división del trabajo permitió incrementar la producción y reducir el nivel de especialización de los obreros.

La mecanización fue la siguiente etapa necesaria para la evolución hacia la automatización. La simplificación del trabajo permitida por la división del trabajo también posibilitó el diseño y construcción de máquinas que reproducían los movimientos del trabajador. A medida que evolucionó la tecnología de transferencia de energía, estas máquinas especializadas se motorizaron, aumentando así su eficacia productiva. El desarrollo de la tecnología energética también dio lugar al surgimiento del sistema fabril de producción ya que todos los trabajadores y máquinas debían estar situados junto a la fuente de energía.

La máquina de transferencia es un dispositivo utilizado para mover la pieza que se está trabajando desde una máquina herramienta especializada hasta otra, colocándola de forma adecuada para la siguiente operación de maquinado. Los robots industriales, diseñados en un principio para realizar tareas sencillas en entornos peligrosos para los trabajadores, son hoy extremadamente hábiles y se utilizan para trasladar, manipular y situar piezas ligeras y pesadas, realizando así todas las funciones de una máquina de transferencia. En realidad, se trata de varias máquinas separadas que están integradas en lo que a simple vista podría considerarse una sola.

En la década de 1920 la industria del automóvil combinó estos conceptos en un sistema de producción integrado. El objetivo de este sistema de línea de montaje era abaratar los precios. A pesar de los avances más recientes, éste es el sistema de producción con el que la mayoría de la gente asocia el término automatización.

Domótica.

En Francia, muy amantes de adaptar términos propios a las nuevas disciplinas, se acuñó la palabra "Domotique". De hecho, la enciclopedia Larousse definía en 1988 el término domótica como el siguiente: "el concepto de vivienda que integra todos los automatismos en materia de seguridad, gestión de la energía, comunicaciones etc.". Es decir, el objetivo es asegurar al usuario de la vivienda un aumento del confort, de la seguridad, del ahorro energético y las facilidades de comunicación.

Page 6: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 5 

Una definición más técnica del concepto sería: "conjunto de servicios de la vivienda garantizado por sistemas que realizan varias funciones, los cuales pueden estar conectados entre sí y a redes interiores y exteriores de comunicación. Gracias a ello se obtiene un notable ahorro de energía, una eficaz gestión técnica de la vivienda, una buena comunicación con el exterior y un alto nivel de seguridad".

Para que un sistema pueda ser considerado "inteligente" ha de incorporar elementos o sistemas basados en las Nuevas Tecnologías de la Información (NTI). El uso de las NTI en la vivienda genera nuevas aplicaciones y tendencias basadas en la capacidad de proceso de información y en la integración y comunicación entre los equipos e instalaciones.

Así concebida, una vivienda inteligente puede ofrecer una amplia gama de aplicaciones en áreas tales como:

seguridad gestión de la energía automatización de tareas domésticas formación, cultura y entretenimiento teletrabajo monitorización de salud operación y mantenimiento de las instalaciones, etc.

La definición de vivienda domótica o inteligente presenta múltiples versiones y matices. También aquí son diversos los términos utilizados en distintas lenguas: "casa inteligente" (smart house), automatización de viviendas (home automation), domótica (domotique), sistemas domésticos (home systems), etc.

De una manera general, un sistema domótico dispondrá de una red de comunicación y dialogo que permite la interconexión de una serie de equipos a fin de obtener información sobre el entorno doméstico y, basándose en ésta, realizar unas determinadas acciones sobre dicho entorno.

Los elementos de campo (detectores, sensores, captadores, etc.), transmitirán las señales a una unidad central inteligente que tratará y elaborará la información recibida. En función de dicha información y de una determinada propagación la unidad central actuará sobre determinados circuitos de potencia relacionados con las señales recogidas por los elementos de campo correspondientes.

En este sentido, una vivienda domótica se puede definir como: "aquella vivienda en la que existen agrupaciones automatizadas de equipos, normalmente asociados por funciones, que disponen de la capacidad de comunicarse interactivamente entre sí de un bus doméstico multimedia que las integra".

A continuación se detallan las diferentes definiciones que ha ido tomando el término:

1) La nueva tecnología de los automatismos de maniobra, gestión y control de los diversos aparatos de una vivienda, que permiten aumentar el confort del usuario, su seguridad, y el ahorro en el consumo energético.

2) Un conjunto de servicios en las viviendas, asegurados por sistemas que realizan varias funciones, pudiendo estar conectados, entre ellos y a redes internas y externas de comunicación.

Page 7: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 6 

3) La informática aplicada a la vivienda. Agrupa el conjunto de sistemas de seguridad y de la regulación de las tareas domesticas destinadas a facilitar la vida cotidiana automatizando sus operaciones y funciones.

Edificios Inteligentes

Es muy difícil dar con exactitud una definición sobre un edificio inteligente, por lo que se citarán diferentes conceptos, de acuerdo a la compañía, institución o profesional de que se trate. Los objetivos o finalidad de un edificio inteligente, son los siguientes:

Arquitectónicos

a) Satisfacer las necesidades presentes y futuras de los ocupantes, propietarios y operadores del edificio.

b) La flexibilidad, tanto en la estructuras como en los sistemas y servicios.

c) El diseño arquitectónico adecuado y correcto.

d) La funcionalidad del edificio.

e) La modularidad de la estructura e instalaciones del edificio.

f) Mayor confort para el usuario.

g) La no interrupción del trabajo de terceros en los cambios o modificaciones.

h) El incremento de la seguridad.

i) El incremento de la estimulación en el trabajo.

j) La humanización de la oficina

Tecnológicos

a) La disponibilidad de medios técnicos avanzados de telecomunicaciones. b) La automatización de las instalaciones. c) La integración de servicios

Ambientales

a) La creación de un edificio saludable. b) El ahorro energético. c) El cuidado del medio ambiente.

Page 8: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 7 

Económicos

a) La reducción de los altos costos de operación y mantenimiento

b) Beneficios económicos para la cartera del cliente.

c) Incremento de la vida útil del edificio.

d) La posibilidad de cobrar precios más altos por la renta o venta de espacios.

e) La relación costo-beneficio.

f) El incremento del prestigio de la compañía.

Grados de inteligencia

La inteligencia de un Edificio es una medida:

De la satisfacción de las necesidades de los habitantes y su administración. De la posibilidad de respetar y adaptarse al medio ambiente que lo rodea.

Los elementos que deben considerarse como parte del programa arquitectónico de un Edificio inteligente independientemente del género al que éste se refiera, siendo éstos:

La protección, contra contingencias contra accidentes caseros hasta problemas en edificios de varios niveles de oficinas desde la intrusión, el robo, el plagio, el clima, el incendio, entre otros. En todos estos casos existe la potencialidad de que cualquier falla desencadene un incendio destructor. El prever y superar tales sucesos es parte del programa del Edificio Inteligente.

Manejo preventivo de contingencias, es primordial dotar desde el diseño arquitectónico de aquellos elementos necesarios para superar las fallas en el control de humo y aire caliente, (efecto de chimenea) tanto en cubos de escaleras y de elevadores, ductos de instalaciones, vestíbulos y pasillos largos y falsos plafones. Para todo ello es necesario la compartimentación vertical para ductos de instalaciones. Sellos en los pasos de tubería de ventilación en muros y losas. Así como también el control automatizado en puestas de compartimentación, vestibulación y salidas de emergencia en las instalaciones y los ductos. Se debe dotar al edificio de sistemas de extracción de humos estableciendo una presión positiva en cubos de escaleras y de elevadores.

Diseño Arquitectónico lógico, los edificios altos resuelven necesidades y problemas del programa arquitectónico, sin embargo crean nuevos problemas como su desalojo en un tiempo razonable, la falta de ventilación al no existir ventanas que puedan abrirse. Por lo que es lógico plantear como parte de su programa la existencia de elevadores eficientes en cualquier contingencia, al igual de niveles de refugio a prueba de contingencias, rutas y datos de acceso para bomberos, giro de puertas en el sentido de salida, pasamanos en escaleras y rampas, una adecuada señalización en escaleras y puertas para salidas de emergencia.

Acabados y decoración, básicamente habría que considerar el control de los materiales combustibles, empleando retardantes en los acabados del edificio, y dejando claramente indicadas la localización de rampas y escaleras.

Page 9: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 8 

El principal problema de los detectores es la falsa alarma que se ha tratado de resolver en la combinación de los diversos tipos de sensores. Por otro lado existen los sistemas operados por detectores para compuertas de compartimentación, el control de la presión positiva en ductos de escaleras y elevadores, el control programado de sistemas de acondicionamiento de aire, la iniciación de las alarmas y el voceo a la par de los sistemas de supresión de fuego por agua, espuma, polvo químico y gas. Dando a su vez aviso a la estación de bomberos.

Todo esto debe estar dentro del sistema central de control desde el cual se localiza el control de cada sensor, se revisa y reporta el estado de cada elemento, se establece el récord impreso de los sucesos diarios y se despliegan en pantalla los planos de instalación.

Clasificación

Existen tres grados de inteligencia, catalogados en función de la automatización de las instalaciones o desde el punto de vista tecnológico:

Grado 1.

Inteligencia mínima o básica. Un sistema básico de automatización del edificio, el cual no está integrado. Existe una automatización de la actividad y los servicios de telecomunicaciones, aunque no están integrados.

Grado 2.

Inteligencia media. Tiene un sistema de automatización del edificio totalmente integrado. Sistemas de automatización de la actividad, sin una completa integración de las telecomunicaciones.

Grado 3.

Inteligencia máxima o total. Los sistemas de automatización del edificio, la actividad y las telecomunicaciones, se encuentran totalmente integrados. El sistema de automatización del edificio se divide en: sistema básico de control, sistema de seguridad y sistema de ahorro de energía. El sistema básico de control es el que permite monitorear el estado de las instalaciones, como son: eléctricas, hidrosanitarias, elevadores y escaleras eléctricas, y suministros de gas y electricidad.

El sistema de seguridad protege a las personas, los bienes materiales y la información. En la seguridad de las personas, destacan los sistemas de detección de humo y fuego, fugas de gas, suministro de agua, monitoreo de equipo para la extinción de fuego, red de rociadores, extracción automática de humo, señalización de salidas de emergencia y el voceo de emergencia.

Para la seguridad de bienes materiales o de información, tenemos el circuito cerrado de televisión, la vigilancia perimetral, el control de accesos, el control de rondas de vigilancia, la intercomunicación de emergencia, la seguridad informática, el detector de movimientos sísmicos y el de presencia.

Page 10: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 9 

El sistema de ahorro de energía es el encargado de la zonificación de la climatización, el intercambio de calor entre zonas, incluyendo el exterior, el uso activo y pasivo de la energía solar, la identificación del consumo, el control automático y centralizado de la iluminación, el control de horarios para el funcionamiento de equipos, el control de ascensores y el programa emergente en puntos críticos de demanda

Fases de desarrollo

Las fases de la producción de un edificio, son:

a) Fase proyectual

b) Fase constructiva

c) Fase operativa

a) Fase proyectual

Hoy en día para proyectar un edificio, sobre todo si se trata de un edificio inteligente, debe conformarse un equipo de trabajo con el propósito de lograr los más óptimos resultados. Este equipo lo componen: propietarios del edificio y usuarios, arquitectos, arquitectos paisajistas, restauradores de monumentos, gerente de operaciones, ingenieros civiles, hidráulicos, eléctricos, de telecomunicaciones e informática, consultores en instalaciones especiales, compañía constructora, proveedores de sistemas y servicios, y compañías de suministro de servicios de electricidad agua, teléfono y gas. De esta forma existe la posibilidad de diseñar el inmueble con base en una comunicación constante, pues el trabajo en equipo es indispensable para obtener un edificio inteligente. Una evaluación y verificación aprobatoria del proyecto ejecutivo en los aspectos arquitectónico, tecnológico y financiero, nos permitirá continuar con la siguiente fase.

b) Fase constructiva Se refiere a la ejecución de la obra, con base en los planos ejecutivos. En esta fase intervienen las compañías constructoras, contratistas, subcontratistas y demás elementos del equipo de trabajo de la etapa proyectual, con su asesoría, supervisión y aprobación.

c) Fase operativa. Los buenos resultados de la primera y segunda fases se ven reflejados en esta última, en la que están involucrados los usuarios, propietarios y el personal de administración y mantenimiento, quienes tienen la responsabilidad de operar, utilizar y mantener las instalaciones en óptimo estado. Para esto debe entrenarse al personal técnico, con el propósito de que intervenga adecuadamente desde el primer día.

En México el encargado de evaluar los grados de inteligencia de un edificio es el IMEI, (Instituto Mexicano del Edificio Inteligente), y en resumen debe cumplir con los siguientes requisitos.

Page 11: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 10 

Eficiencia en el uso de energéticos y consumibles, renovables (Máxima Economía) Adaptabilidad a un bajo costo a los continuos cambios tecnológicos requeridos por sus

ocupantes y su entorno (Máxima Flexibilidad). Capacidad de proveer un entorno Ecológico interior y exterior respectivamente habitable

y sustentable, altamente seguro que maximice la eficiencia en el trabajo a los niveles óptimos de confort de sus ocupantes según sea el caso (Máxima Seguridad para el entorno, usuario y patrimonial).

Eficazmente comunicativo en su operación y mantenimiento, (Máxima automatización de la actividad).

Operando y mantenido bajo estrictos métodos de optimización (Máxima predicción y prevención, refaccionamiento virtual).

APLICACIÓN DE LA INFRAESTRUCTURA AL SISTEMA INTELIGENTE.

Se pueden considerar cuatro elementos como básicos que se integran al Edificio Inteligente y serán los siguientes:

a) La estructura del edificio. Todo lo que se refiere a la estructura y diseño arquitectónico, incluyendo los acabados y mobiliario. Entre sus componentes están: la altura de losa a losa, la utilización de pisos elevados y plafones registrables, cancelería, ductos y registros para las instalaciones, tratamiento de fachadas, utilización de materiales a prueba de fuego, acabados, mobiliario y ductos para cableado y electricidad.

b) Los sistemas del edificio. Son todas las instalaciones que integran un edificio. Entre sus componentes están: aire acondicionado, calefacción y ventilación, energía eléctrica e iluminación, controladores y cableado, elevadores y escaleras mecánicas, seguridad y control de acceso, seguridad contra incendios y humo, telecomunicaciones, instalaciones hidráulicas, sanitarias y seguridad contra inundación.

c) Los servicios del edificio. Como su nombre lo indica, son los servicios o facilidades que ofrecerá el edificio. Entre sus componentes están: comunicaciones de video, voz y datos; automatización de oficinas; salas de juntas y cómputo compartidas; área de fax y fotocopiado; correo electrónico y de voz; seguridad por medio del personal; limpieza; estacionamiento; escritorio de información en el lobby o directorio del edificio; facilidad en el cambio de teléfonos y equipos de computación; centro de conferencias y auditorio compartidos, y videoconferencias.

d) La administración del edificio. Se refiere a todo lo que tiene que ver con la operación del mismo. Entre sus variables están: mantenimiento, administración de inventarios, reportes de energía y eficiencia, análisis de tendencias, administración y mantenimiento de servicios y sistemas. La optimización de cada uno de estos elementos y la interrelación o coordinación entre sí, es lo que determinará la inteligencia del edificio.

Page 12: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 11 

EDIFICIOS INTELIGENTES EN MÉXICO.

Hospital General Regional No. 1 "Gabriel Mancera"

El nuevo Hospital General Regional No. 1 "Gabriel Mancera", es un claro ejemplo de introducción de nuevas tecnologías en el diseño de instalaciones integradas al concepto arquitectónico del edificio.

• Instalaciones y diseño arquitectónico

El arquitecto Sánchez Robles explica que si bien este proyecto no se puede ubicar dentro de los edificios inteligentes de la ciudad de México, porque no cuenta con todos los avances de la llamada tecnología, sí podemos afirmar que fue diseñado inteligentemente, tomando en cuenta la relación que existe entre las instalaciones y el diseño arquitectónico.

•Uso eficiente del agua. Con el fin de reducir el consumo del agua utilizada tradicionalmente en hospitales similares, alrededor de 800 litros por cama y día, se estudiaron distintas posibilidades para la aplicación de equipos y accesorios. Se llegó a la decisión de instalar equipos que, además de contar con accesorios de bajo consumo de agua, operan en forma automática al cierre y apertura de las llaves alimentadoras. También se colocaron reguladores de temperatura en las regaderas de los baños, donde la demanda de agua caliente representa gastos excesivos. Con la aplicación de estos sistemas, se reduce en un 40% el consumo del agua.

•Aguas negras tratadas. Para evitar un impacto en el entorno y la saturación de la red, el inmueble cuenta con una planta para el tratamiento de las aguas negras, que cumple con las normas técnicas de la Secretaría de Desarrollo Urbano y la Dirección General de Construcción y Operación Hidráulica de la ciudad de México.

•Gases medicinales. La instalación de gases medicinales es vital en un hospital. El hospital en mención dispone del equipo denominado "Grado Médico", lo mejor que existe en sistemas generadores de vacío y de aire comprimido, así como con una consola de tomas para cada cama.

Edificio Cenit Plaza Arquímedes.

•Instalaciones y diseño arquitectónico. Plaza Arquímedes cuenta con un centro de control, de donde se manejan y supervisan todas las instalaciones del edificio y los espacios a que éstas sirven. Esta supervisión se hace por medio de una computadora la cual cuenta con un programa especialmente diseñado para el edificio. Dicho programa lleva el control y el registro del funcionamiento del edificio, así como del desempeño del operador en turno.

Dentro de este control, está el sistema central de aire acondicionado, iluminación, sistemas de alarma y contra incendio, control de monóxido de carbono, telefonía, escaleras y espacios presurizados.

La fachada forma parte de la misma estructura interna del edificio, lo que la hace o le da una apariencia mucho más innovadora o futurista, complementando con esto el estilo de edificación al que pertenece el edificio inteligente. El material utilizado como recubrimiento en la fachada, es el zinc, el cual no necesita mucho mantenimiento y contribuye a darle un buen aspecto a la edificación.

Page 13: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 12 

Con relación a las instalaciones con que cuenta el edificio, en el caso del aire acondicionado, se consideraron torres de enfriamiento, complementadas con una planta de almacenamiento de hielo que operará durante las noches.

Cada espacio cuenta con detectores inteligentes, los cuales registran el número de ocupantes en un espacio determinado y asimismo la cantidad de aire suministrada.

El World Trade Center (WTC)

El conjunto suma alrededor de 630 826 m2, de los cuales se ejecutaron 115 914 m2 en la torre de oficinas; 302 022 m2 de estacionamiento, con una capacidad de 8 026 cajones, y los 36 844 m2 del centro de convenciones y exposiciones. Hoy existen prácticamente cuatro etapas, dos reales: la torre con sus estacionamientos, el centro de convenciones y exposiciones, y dos a futuro: el centro comercial y el hotel. Todo el WTC se desarrolla en tres predios que suman 76 000 m2.

La inteligencia del WTC. El sistema inteligente del WTC agrupa a todos los sistemas e instalaciones del edificio, tales como el de aire acondicionado, el hidráulico, eléctrico, de seguridad y protección contra incendio. Dicho sistema controla los accesos. Cuenta con un circuito cerrado de televisión y monitoreo de los tanques de almacenamiento, alarmas y elevadores. Acciona y detiene equipos, enciende y apaga alumbrados, y modera el trabajo de los equipos en cuanto a temperaturas, horarios e iluminación de áreas comunes. Cada uno de los espacios que se venden, cuenta con las acometidas básicas de todas las instalaciones necesarias y pueden volverse tan sofisticados como se requiera, ya que el sistema central permite la integración de cualquier otro sistema a los cerebros del edificio.

Con relación al ahorro de energía, se colocaron en todas las luminarias del edificio lámparas ahorradoras de vapor de sodio, focos tipo PL y lámparas ditróicas de bajo voltaje. En el caso del aire acondicionado, no solamente se consideraron torres de enfriamiento, sino también una planta de almacenamiento de hielo que operará durante las noches.

Para las fachadas del edificio se seleccionaron materiales que cumplieran con las normas internacionales de seguridad y riesgos y que además formaran parte de la modernidad de la arquitectura del edificio.

La fachada del WTC es comparada con un vestido de lentejuela, donde cada una de las piezas se mueve por sí sola para absorber el movimiento de un sismo. El espesor de los cristales varía entre seis y nueve milímetros. Dependiendo de su ubicación, el cristal en cuestión fue diseñado y fabricado especialmente para el WTC, con una garantía de 25 años por decoloración y resistencia.

Medición del nivel de inteligencia de un edificio.

Mecanismo de evaluación que considere TODOS los aspectos y posibilidades necesarios. Hecho en México, tomando en consideración las características del mercado mexicano.

Page 14: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 13 

Aplicaciones:

Edificio de oficinas Corporativas Multiusuario Hoteles. Hospitales. Universidades. Industrias.

Conceptos Arquitectónicos y de Ingeniería Civil

Diseño del edificio bajo el concepto del Edificio Inteligente. Actividad Multidisciplinaria. La mayoría de las decisiones tomadas en las fases iniciales de los proyectos son

permanentes.

Conceptos Arquitectónicos:

Factor innovación. Expresión Plástica. Respuesta al contexto. Aportación Formal Fundamental a la Tecnológica. Percepción espacial.

Conceptos de Ingeniería Civil.

estructuración Respaldo del DDF

Procedimiento:

recopilación de la información.

definición de características generales de la estructura.

clasificación subsuelo.

Otros.

Conceptos de instalaciones:

Instalaciones para soporte a los sistemas y servicios del edificio: Eléctrica. Hidráulica. Aire Acondicionado, Calefacción, Ventilación. Telecomunicaciones. Instalación Eléctrica: capacidad en las subestaciones de servicios generales u en la de la Cía.

suministradora.

Page 15: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 14 

sistema de detección de incendios. Instalación Hidráulica: área permeable para cargar mantos acuíferos. sistema de captación y recuperación de aguas pluviales. sistema de extinción de incendios. Aire Acondicionado, Calefacción y Ventilación: eficiencia. consumo energético. control distribuido. interacción con sistemas de detección de incendio y evacuación. monitoreo de CO. selección del sistema de filtrado y enriquecimiento del aire.

Otras Instalaciones:

plantas de congelación. plantas de tratamientos de afluentes. plantas de tratamiento de aguas. reutilización de agua residual. digestores.

Utilizar soluciones y sistemas no convencionales pensados en términos del mejoramiento de la calidad del medio ambiente. Plataforma única de Cableado.

Concepto que ofrece las ventajas de ahorro, flexibilidad, protección a la inversión. Integración de las redes de comunicaciones (voz, datos) y sistemas de

automatización, seguridad y protección. Garantía de evolución tecnológica. Sistemas completos: SI Integración de componentes aislados: NO

Sistemas del Edificio.

Aplicación de elementos tecnológicos en la operación diaria del inmueble. Requerimientos de adaptabilidad/apertura, flexibilidad, conectividad.

Dependientes de la Aplicación. Telecomunicaciones, Automatización Control, Ahorro de Energía, Protección,

Seguridad, Mantenimiento. Telecomunicaciones. Área de desarrollo, crecimiento y aceptación. Fundamentales en la toma de decisiones y ofrecimiento de servicios. Comunicación de emergencia. Protección de mantenimiento adecuado. Otros.

Page 16: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 15 

CAPITULO II

FUNDAMENTOS TEORICOS

Una vez integrados, generalidades y conceptos del tema a tratar, nos enfocaremos en la parte del confort de un Edificio Inteligente.

Nuestra aplicación consistirá en controlar mediante mandos de voz, los diferentes dispositivos (luz, televisor, música, aire acondicionado, etc) ubicados en alguna estancia determinada, como por ejemplo:

Cocina

Bar

Sala

Recamara

Mediante el uso del MATLAB para la simulación del sistema, se captura la voz de mando (por medio de un micrófono) y mediante una red neuronal artificial se procesa y se obtiene una respuesta a dicha orden.

Redes Neuronales Las Redes Neuronales Artificiales (Artificial Neural Networks - ANNs) se constituyeron inicialmente como una simulación abstracta de los sistemas nerviosos biológicos formados por un conjunto de unidades llamadas neuronas o nodos conectados unos con otros. Las conexiones de estos nodos se asemejan a las dendritas y axones de los sistemas nerviosos biológicos. Warren McCulloch y Walter Pitts desarrollaron en 1943 el primer modelo de red neuronal en términos de modelo sistemático de actividad nerviosa. El modelo se caracteriza básicamente por ser binario, donde cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió de ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, FranK Rosenblatt, etc. Las ANNs pueden clasificarse en modelos de tipo biológico y tipo dirigido a la aplicación de acuerdo a su similitud con la realidad biológica:

Page 17: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 16 

1.- Redes neuronales de tipo biológico

El cerebro humano promedio cuenta con aproximadamente mil millones de neuronas. Asimismo, durante las sinapsis cada una de estas neuronas recibe en promedio alrededor de 1000 estímulos de entrada y genera alrededor de 1000 estímulos de salida. En este sentido, la principal ventaja del cerebro humano promedio recae en su conectividad, interpretada como la capacidad del mismo para realizar diferentes procedimientos lógicos a la vez. Sin embargo, su principal debilidad recae en la velocidad de procesamiento de la información, siendo las computadoras en este sentido, muchísimo más rápidas.

El objetivo de las redes neuronales de tipo biológico se constituye en desarrollar un elemento sintáctico que permita verificar las hipótesis correspondientes a los demás sistemas biológicos. Es decir, las redes neuronales de tipo biológico deben recibir y procesar información de otros sistemas biológicos y devolver una respuesta de acción efectiva. La mayor parte de las neuronas posee una estructura arbórea formada en su mayor parte por dendritas que, conectadas a otras neuronas, se encargan de recibir los estímulos de entrada neuronales mediante uniones denominas sinopsis. Algunas neuronas tiene una estructura que las comunica con miles de neuronas más, mientras otras sólo puede comunicarse con unas cuantas a su alrededor. Las tres partes importantes de la estructura de una neurona son:

Ramas de Extensión o Dendritas – Reciben estímulos de Entrada. Cuerpo de la Neurona – Procesa estímulos de Entrada. Axón – Emite estímulos de Salida a las Dendritas de otras neuronas.

Page 18: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 17 

Actualmente no sé conoce con certeza la verdadera forma de interacción de las neuronas. En general, una neurona recibe estímulos de entrada mediante las dendritas, estos estímulos son procesados en el cuerpo de la misma para posteriormente emitir un estímulo de salida mediante el axón. Este último estímulo utiliza diferencias de potencial eléctrico u ondas de corriente las cuales dependen fundamentalmente del potencial de la neurona. Asimismo, la neurona utiliza la función de escalón y la función de activación para determinar la salida que debe emitir de acuerdo a los estímulos recibidos. 2. Redes neuronales para aplicaciones concretas. El conocimiento que se posee sobre el sistema nervioso es aún incompleto. En este sentido, las ANNs no se encuentran muy ligadas a lo que son en sí las redes neuronales biológicas. Por lo tanto, se han definido otras funcionalidades y estructuras de conexión distintas a las establecidas por la biología. Las principales características de las ANNs son las siguientes: Auto Organización y Adaptabilidad Utilizan algoritmos de aprendizaje adaptativo y auto organización ofreciendo posibilidades de un procesamiento robusto y adaptable. Procesado No Lineal y Paralelo Aumenta la capacidad de la neurona para poder aproximar y clasificar información haciéndose más inmune al ruido (datos desordenados). Estas características juegan un papel importante en las ANNs aplicadas al procesado de señales. En este sentido, la red constituida para una aplicación determinada poseerá una arquitectura concreta de elementos de procesado adaptativo, masivo y paralelo que se combinan en estructuras de interconexión de red jerárquica. 3. Taxonomía de las redes neuronales. Toda aplicación de redes neuronales consta de dos fases: la fase de aprendizaje o entrenamiento y la fase de prueba o funcionamiento directo. En la fase de entrenamiento se usa un conjunto de datos o patrones de entrenamiento para determinar los pesos que definen el modelo neuronal. Este modelo una vez entrenado, se usará en la fase de funcionamiento directo en la que se procesarán patrones de prueba que constituyen la entrada habitual de la red con el objetivo de analizar las prestaciones definitivas de la misma.

Page 19: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 18 

Fase de Prueba Los pesos de la red neuronal se han obtenido a partir de patrones representativos de entradas que se denominan patrones de entrenamiento. Los pesos pueden ser calculados de una vez como adaptados iterativamente según el tipo de red neuronal y en función de las ecuaciones dinámicas de prueba. Una vez calculados los pesos de la red, se compararán las salidas deseadas con los valores de las neuronas de la última capa para determinar la validez del diseño. Fase de Aprendizaje Una de las características más resaltantes de las redes neuronales es su capacidad de aprender. Éstas aprenden por la actualización o variación de los pesos sinápticos que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información extraída de los patrones de entrenamiento nuevos que se van presentando. Normalmente, los pesos óptimos se obtienen de la optimización (minimización o maximización) de alguna función de energía. El entrenamiento de las redes neuronales puede realizarse fuera de línea o en tiempo real. La elección de cualquiera de ellos o ambos implica velocidades de proceso diferentes que afectas a los algoritmos y hardware utilizados. De acuerdo al tipo de entrenamiento, las redes neuronales pueden clasificarse en:

¿Cuánto tiempo se debe entrenar? Existe una concepción errónea muy común concerniente al entrenamiento iterativo. Se dice que las redes neuronales pueden ser sobreentrenadas. Quiere decir que hay una cantidad óptima de entrenamiento y que se puede entrenar más allá de dicho punto para mejorar el funcionamiento en el conjunto de entrenamiento, pero degradando dicho funcionamiento en la población general. Esta idea es particularmente arriesgada porque tiene un elemento de verdad en ella, para el caso en que la red y/o el conjunto de entrenamiento hayan sido mal diseñados, el mito puede ser realidad.

Page 20: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 19 

A continuación se examinará brevemente cómo el concepto de sobre entrenamiento tomó forma, porqué es usualmente (si no es que siempre) una noción inapropiada y cómo se puede detectar y evitar el problema común que se malentiende como sobre entrenamiento.

Figura 4.4. Manifestación de sobre entrenamiento.

La figura 4.4. es una gráfica del error en una red neuronal para dos conjuntos diferentes de datos en función del número realizado de iteraciones de entrenamiento. Un conjunto de datos es el conjunto de entrenamiento. Como era de esperarse, el error para ese conjunto de datos decrece monótonamente, aproximando una asíntota. El otro conjunto de datos, llamado conjunto de validación, es tomado de la misma población que el conjunto de entrenamiento, pero no es usado para entrenar. Su error decrece al inicio del entrenamiento. Pero, para sorpresa, si se continúa con el entrenamiento más allá de cierto número de iteraciones, el error empieza a incrementar. Partiendo del hecho que el conjunto de validación es representativo de la población a la cual la red será finalmente aplicada, la solución obvia aparente es detener el entrenamiento hasta que el error de dicho conjunto desaparezca totalmente. Sin embargo, actuar así es un caso en que el remedio es peor que el mal. Se vio en la sección anterior que usar muchas neuronas ocultas puede ocasionar un sobre ajuste. En vez de aprender sólo los patrones generales necesarios para producir una decisión correcta, la red se enfoca excesivamente a idiosincrasias de muestras individuales. Cuando éstas demuestran no tener valor en su trabajo posterior, el funcionamiento decae. Ya que se necesita un tiempo considerable para aprender estas idiosincrasias, mientras los patrones importantes se aprenden al menos rápidamente, la calidad de la red alcanza frecuentemente un pico mientras el entrenamiento progresa, después se deteriora. Así nació el mito de entrenamiento excesivo. Sin embargo, hay dos razones para no limitar el entrenamiento con esperanzas a encontrar ese pico tan difícil de encontrar:

1) Tratando el síntoma, no la enfermedad. Reducir el número de neuronas ocultas al punto en que la red no aprenda idiosincrasias, o incrementar el tamaño y variedad del conjunto de entrenamiento, y la enfermedad es curada.

2) No olvidar que usualmente se empieza el entrenamiento con valores aleatorios de pesos. Si se detiene prematuramente el entrenamiento, posiblemente se habrá aprendido lo que se tenía que aprender. Probablemente después ya no. Y nunca se estará seguro de eso.

Número de iteraciones entrenamiento

Error

Datos de

Datos de

Page 21: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 20 

El segundo punto merece un examen más profundo. Cuando se usa un conjunto de entrenamiento para representar una población entera, se está confiando en que la red será capaz de interpolar entre muestras e de entrenamiento cuando haya muestras desconocidas que no son idénticas a las que se utilizaron al entrenar. Esto implica una suave transición entre casos de entrenamiento vecinos. Dado que se empieza típicamente el proceso de entrenamiento con pesos aleatorios pequeños, las derivativas de las salidas con respecto a las entradas serán pequeñas, dirigiéndose a la suavidad deseada. Sin embargo, sólo con usar polinomiales de grado mayor en aproximación de funciones permite mayor oscilación debida a derivativas mayores, el uso de más neuronas ocultas también permite mayor oscilación. Cuando todos los recursos de las capas ocultas no se utilizan sólo para asegurar un funcionamiento adecuado, algunas neuronas pueden aprender a especializar. Así como el entrenamiento continúa, sus pesos pueden llevarse a extremos en los cuales las neuronas sólo se dedican a encontrar idiosincrasias en el conjunto de entrenamiento. Las derivativas de las salidas con respecto a las entradas se hacen mayores, y la interpolación suave se pierde. La filosofía de detener el entrenamiento prematuramente es la prevención de que los pesos alcancen esos valores extremos. Superficialmente, esto parece razonable. Es indiscutible el hecho de que, en ciertos casos, continuar con el entrenamiento degrada el desempeño en el conjunto de validación y por lo tanto degradará probablemente el desempeño en la población entera. Pero el defecto en este razonamiento proviene del hecho de que los pesos iniciales fueron elegidos de manera aleatoria. No se sabe realmente si se está aproximando a los pesos óptimos desde una buena dirección. Puede ser que se tenga que pasar por una región en la cual el conjunto de validación tenga un desempeño pobre, pero que mejoraría si se continuase. Y ciertamente no se tienen bases para exigir que se deje de entrenar cuando el conjunto de validación ha encontrado un tipo de optimalidad práctica. Eso es estafar. Es en efecto usar lo que se supone es el juez final de calidad como un conjunto de entrenamiento sustituto. Se podría haberlo unido también al conjunto de entrenamiento. Cualquier grado al cual el conjunto de validación no es representativo de la población será reflejado en la red entrenada si se basa la decisión de paro en ese conjunto. El desempeño estimado será excesivamente optimista. La moraleja es que se debe utilizar el menor número posible de neuronas ocultas. Empezar con el número mínimo y después añadir tantas como sea necesario para asegurar el desempeño adecuado en el conjunto de entrenamiento. Nunca se debe empezar con muchas neuronas ocultas y después ver cuántas se pueden desechar mientras se mantenga un buen desempeño. También se debe tener especial cuidado en escoger un conjunto de entrenamiento que represente lo mejor posible a la población. Si no, el fenómeno visto en la figura 4.4 aparecerá casi siempre, independientemente del número de neuronas ocultas. En resumen, un entrenamiento correcto se hace de la siguiente manera. Para cada número experimental de neuronas ocultas, generar pesos iniciales aleatorios y entrenar hasta que la mejora sea despreciable. Después generar más pesos iniciales y entrenar de nuevo. Y otra vez. Y otra vez. Cuando un número moderado de estas repeticiones fracasa a mejorar el desempeño, se puede estar seguro que la red se entrenó lo mejor que se pudo para el conjunto de entrenamiento.

Page 22: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 21 

Después se debe probarla con un conjunto de validación independiente. Si, después de todo el entrenamiento, su desempeño en el conjunto de validación es significativamente peor que con el conjunto de entrenamiento, o el conjunto de entrenamiento es pésimo (muy pequeño o no representativo de la población), o hay muchas neuronas ocultas. La red no fue sobreentrenada. Siempre se debe recordar que el sobre ajuste es el reflejo de un conjunto de entrenamiento no representativo de la población. No puede haber sobre ajuste si el conjunto de entrenamiento está formado por toda la población. Naturalmente, esto es una imposibilidad práctica. Sin embargo, los conjuntos de entrenamiento minuciosos hacen que el sobre ajuste sea menos problemático. También es necesario recordar que el sobre juste se produce cuando el conjunto de entrenamiento es pequeño en relación con el número de neuronas ocultas. Se compensa la escasez de datos de entrenamiento limitando el número de neuronas ocultas. El tamaño del conjunto de entrenamiento y el número de capas ocultas están íntimamente ligados. Cuando no están balanceados en una dirección, la red no es capaz de aprender tan bien como debería. Cuando no están balanceados a la inversa, la red aprende mucho y generaliza poco. Debe haber un balance. Ahora se discute una manera de conseguir ese balance. En el evento fortuito en que se puedan acumular fácilmente grandes cantidades de datos conocidos, hay un procedimiento de entrenamiento efectivo a seguir. Una ventaja de este procedimiento es que puede ser utilizado también para seleccionar el número óptimo de neuronas ocultas. Aún se escogen un conjunto de entrenamiento inicial y un conjunto de validación independiente que serán usados para calificar a la red final. Pero ahora se permite escoger un tercer conjunto, llamado conjunto de prueba de entrenamiento. Este conjunto se utiliza para revisar la habilidad de generalización de una red entrenada. Si el desempeño de la red con el conjunto de prueba de entrenamiento es significativamente peor que con el conjunto de entrenamiento, se puede concluir que se ha producido un sobre ajuste, o que la información importante presente en el conjunto de prueba no estuvo presente en el conjunto de entrenamiento. En ambos casos, la solución es añadir el conjunto de prueba al conjunto de entrenamiento, y volver a entrenar. Esto se hace explícito en el diagrama de flujo mostrado en la figura siguiente

Figura 4.5. Entrenamiento cuando los casos conocidos son pocos

Inicializar

E t

Error de entrenamien A

Escoger conjunto de

Error del conjunto de

Unir conjunto de

Hecho

No

S

Page 23: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 22 

Nótese que el algoritmo anterior depende de que el conjunto de prueba de entrenamiento sea representativo de la población y sea independiente del conjunto de entrenamiento. Se tienen problemas si el error de toma de muestras provee un conjunto de prueba extremadamente similar al conjunto de entrenamiento. En consecuencia, se deben tomar dos precauciones. Primero, asegurarse de que los conjuntos son suficientemente grandes para disminuir la probabilidad de ocurrencia de problemas de este tipo. Segundo, no evitar la validación final. Aunque se puede evitar este paso, siempre se estará más seguro si se realiza antes de determinar a la red como definitiva. Finalmente, obsérvese que el algoritmo anterior puede ser utilizado también para obtener el mejor desempeño posible de la red. Supóngase que se empieza con un considerable buen estándar de desempeño, y se sigue el algoritmo hasta que se alcanza el nivel de desempeño. No se valida la red. Se salva y después se pide mejor desempeño. Obviamente, inmediatamente se añadirá una neurona oculta. Se tendrá que añadir al conjunto de entrenamiento un nuevo conjunto de prueba. Se sigue el algoritmo hasta que se canse de lidiar con un conjunto de entrenamiento enorme o hasta que se haya alcanzado la nueva expectativa. Tanto tiempo en lo que la suposición fundamental de la calidad de los conjuntos de prueba se alcanza, las acciones son legales. El objetivo de desempeño es limitado sólo por la capacidad de acumular nuevos datos y por los recursos computacionales. El número de neuronas ocultas crecerá tanto como sea necesario, y el sobre ajuste será prevenido mediante los conjuntos de prueba. 4. Redes neuronales supervisadas y no supervisadas. Las redes neuronales se clasifican comúnmente en términos de sus correspondientes algoritmos o métodos de entrenamiento: redes de pesos fijos, redes no supervisadas, y redes de entrenamiento supervisado. Para las redes de pesos fijos no existe ningún tipo de entrenamiento. Redes de entrenamiento supervisado. Las redes de entrenamiento supervisado han sido los modelos de redes más desarrolladas desde los inicios de este tipo de diseños. Los datos para el entrenamiento están constituidos por varios pares de patrones de entrenamiento de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia de la supervisión de un maestro. Dado un nuevo patrón de entrenamiento (m+1), los pesos serán adaptados de la siguiente forma:

Redes de entrenamiento no supervisado. Las Redes de Entrenamiento no Supervisado utilizan datos de entrenamiento consistentes en sólo patrones de entrada. Por lo tanto, la red es entrenada sin el beneficio de un maestro. La red aprende a adaptarse basada en las experiencias recogidas de los patrones de entrenamiento anteriores.

Page 24: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 23 

Diagrama esquemático de sistema de entrenamiento. La Regla de Aprendizaje de Hebb: Refuerza el peso que conecta dos nodos que se excitan simultáneamente.

Regla de Aprendizaje Competitiva: Determina la factibilidad de pertenencia de un patrón a una clase reconocida previamente. En caso de darse esta pertenencia, la inclusión de este nuevo patrón a la clase reconocida cambiará al representante de la misma. 5. Funciones de base y activación. Una neurona suministra un valor a su salida que se propaga a través de la red de conexiones unidireccionales hacia otras células de la red. Asociada a cada conexión hay un peso sináptico denotado por wij, que determina el efecto de la neurona j-ésima sobre la neurona i-ésima. Las entradas a la neurona i-ésima que provienen de las otras neuronas son acumuladas junto con el umbral externo, para dar el valor de red. La forma de hacerlo está determinada matemáticamente por la función de base f para dar un valor de activación. En este sentido, la salida final se puede expresar como una función de la entrada y pesos. Las redes de conexión son matemáticamente representadas por la función de base u (w, x) donde w es la matriz de pesos y x el vector de entrada. La función de base tiene dos formas típicas:

Page 25: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 24 

Función Lineal de Base

Función de primer orden o de tipo hiperplano. El valor de red es una combinación lineal de las entradas.

Función de Base Radial Función de segundo orden o de tipo hiperesférico. El valor de red representa la distancia a un determinado patrón de referencia.

Función de activación o función de neurona. La función de activación se encarga de transforma el valor de red expresado por la función de base u (w, x). Las funciones de activación más comunes son:

Función paso Función rampa Función sigmoidal Función Gaussiana

6. Estructuras de las redes neuronales artificiales Los aspectos más característicos de las estructuras son la estructura de conexión, el tamaño de la red y la elección entre ACON (All Class in One Network -Todas las Clases en Una Red) y OCON (One Class in One Network - Una Clase en Una Red). Estructuras de conexión. Una red neuronal está determinada por la neurona y la matriz de pesos. El comportamiento de la red depende en gran medida del comportamiento de la matriz de pesos. Hay tres tipos de capas de neuronas: la de entrada, las ocultas y la de salida. Entre dos capas de neuronas existe una red de pesos de conexión, que puede ser de los siguientes tipos: Hacia delante, hacia atrás, lateral y de retardo.

Page 26: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 25 

1. Conexiones hacia delante: Los datos de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por medio de las redes de conexiones hacia adelante. 2. Conexiones hacia atrás: Los datos de las neuronas de una capa superior son propagados hacia las neuronas de la capa inferior por medio de las redes de conexiones hacia adelante. 3. Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria. Tamaño de las redes neuronales. El Tamaño de las Redes depende del Número de Capas y del Número de Neuronas Ocultas por Capa. 1. Número de capas: En una Red Multicapa, hay una o más capas de neuronas ocultas entre la entrada y la salida. El número de capas se cuenta a menudo a partir del número de capas de pesos en vez de las capas de neuronas). 2. Número de unidades ocultas: El Número de Unidades Ocultas está directamente relacionado con las capacidades de la red. Para que el comportamiento de la red sea correcto se tiene que determinar apropiadamente el número de neuronas de la capa oculta.

Page 27: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 26 

Aproximaciones ACON frente a OCON Normalmente, cada nodo de salida se usa para representar una clase. Si tomamos un problema de reconocimiento alfanumérico, habrá 36 clases y 36 nodos de salida. Dado un patrón de entrada en la fase de prueba, el ganador es normalmente el nodo que tiene el valor más alto a la salida. All Class in One Network – ACON: Todas las clases son reconocidas dentro de una única Súper Red. One Class in One Network – OCON: En algunos casos es ventajoso descomponer esta Súper Red en varias Subredes más pequeñas. La descomposición más extrema es la llamada OCON donde una Subred se dedica para una sola clase. Aunque el número de Subredes en la estructura OCON es relativamente largo, cada una de ellas tiene un tamaño menor que la red ACON. 7. Modelos no supervisados. La capacidad de clasificación de la red neuronal depende de los valores de los pesos sinápticos los cuales pueden ser preestablecidos o entrenados adaptativamente mediante mecanismos de aprendizaje. En función de la forma con la que los pesos sinápticos son entrenados, las ANNs| se pueden clasificar en modelos supervisados y modelos no supervisados. Una clase de modelos de entrenamiento no supervisado son las Redes Asociativas de Pesos Fijos que se usan para obtener patrones originales libres de ruido a partir de señales incompletas o distorsionadas. La principal característica de estas redes es que sus pesos son preestablecidos y pre calculados. Adicionalmente, estas redes tienen aplicaciones limitadas ya que no se pueden adaptar a ambientes cambiantes. Otra clase de modelos de entrenamiento no supervisado son las Redes de Aprendizaje Competitivo cuyos pesos se adaptan de acuerdo con reglas de aprendizaje no supervisadas. Estas redes pueden aprender en ausencia de un maestro. En decir, el entrenamiento de las mismas se basa únicamente en la información de los patrones de entrada.

Page 28: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 27 

Redes de memoria proasociativa. 1. Memoria asociativa lineal (LAM) Una red de memoria asociativa es matemáticamente un mapeado de un espacio de entrada sobre uno de salida. Las redes de memoria asociativa se pueden usar tanto para las aplicaciones autoasociativas como para las heteroasociativas. En las aplicaciones autoasociativas la dimensión del espacio de entrada es igual al de salida. En las aplicaciones heteroasociativas la dimensión del espacio de entrada y del espacio de salida son en general diferentes. Los valores de entrada y de salida pueden ser reales o binarios Una LAM es una red de una capa de propagación. La LAM se deriva de un conjunto de pares de patrones de entrada/salida

Aquí la entrada es

y la salida es

para m=1, 2,...., M, donde [-] denota la transpuesta del Vector o Matriz. El objetivo de LAM es recuperar el patrón de salida basado en la información total o parcial del patrón de entrada. Patrones de entrada continuos La Matriz de Pesos Sinápticos W en la Memoria Asociativa Lineal se obtiene de la correlación de los pares de patrones originales:

donde a y b son Vectores Reales Continuos: a

Las entradas de la matriz se denotan por

Page 29: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 28 

Patrones de Entrada Binarios Si las entradas son binarias (1/0), entonces los elementos de la matriz de pesos W, de N x K dimensiones, que se calculan como:

Donde a, b I k(Vectores Binarios). Esta fórmula permite que la condición de ortogonalidad sea impuesta más apropiadamente. Para producir una salida binaria, los elementos del vector Wt se ajustan primero por sus umbrales respectivos:

Luego son procesados por alguna unidad no lineal en los nodos de salida. Si el valor ajustado es positivo entonces la salida será 1; de cualquier otro modo, será 0. 2.- Memoria asociativa no lineal para la recuperación holográfica. El uso de una unidad de proceso no lineal, será esencial para eliminar las perturbaciones indeseadas. Dado un Patrón de Prueba t, definimos el Vector Resultado s como el Producto

Interno entre y el Patrón de Prueba t y lo escribimos como

donde la operación del Producto Interno para una entrada de valor real se define como:

I = 1

Page 30: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 29 

Al vector resultado s se le hace un Procesado no Lineal llegando a un Vector de Decisión Binario V = N {s} que se espera tenga solo un elemento distinto de cero. Si este elemento se posiciona correctamente, entonces se puede realizar la Recuperación Holográfica. El patrón a recuperar es el Valor de Salida Av. constituida por la matriz formada por los vectores columna a (k). El propósito del operador NOLINEAL N {-} es seleccionar sólo un nodo ganador y simultáneamente descartar todos los otros nodos. El propósito es suprimir el ruido llegando a la Recuperación Holográfica. Los operadores no lineales se pueden manifestar como un elemento de umbral o un circuito MAXNET. Redes de Hamming Las redes de Hamming son comúnmente utilizadas cuando las entradas son de tipo binario. La red de Hamming selecciona un ganador de entre los patrones almacenados

que tienen la menor distancia de Hamming al vector de entrada. Para los vectores bipolares (-1/1) se puede adoptar la misma definición de producto interno introducida anteriormente. Para los valores binarios (1/0) de entrada, el producto interno se tiene que redefinir como:

Por lo tanto se tiene que:

= número total de bits que concuerdan - numero de bits que no concuerdan = K - 2 (distancia de Hamming entre b(m)y t) En donde la distancia de Hamming es el número de inconsistencias entre los bits de los dos vectores. Esto prueba que en este caso, tanto el valor del producto interno como la distancia de Hamming darán el mismo efecto. Redes de memoria retroasociativa Una Red con Realimentación necesita de muchas iteraciones hasta que conseguir la recuperación del patrón final. La Red de Retroasociacion más popular es el Modelo de Hopfield el cual que tiene las siguientes características:

Page 31: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 30 

1. Los Pesos sinápticos son pre almacenados. 2. Se usan operaciones no lineales de escalonamiento en cada etapa para producir valores binarios. 3. La retroalimentación tiene la función de propiciar que los estados se puedan actualizar iterativamente. 4. Las iteraciones convergen hacia una solución que minimiza una función de energía de la red. 1.Modelo de Hopfield secuencial (asíncrono) Obtención de los Pesos Sinápticos

Dados M patrones binarios tiene valores binarios 0 o 1), los pesos en el modelo de Hopfield se obtienen de la siguiente forma:

El umbral de la red se da de la siguiente forma:

Page 32: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 31 

Funciones de Energía y Convergencia Utilizando la Función de Liapunov como concepto de Función de Energía:

Bajo la situación ideal de que los vectores almacenados son perfectamente ortogonales, entonces cada patrón original representa un mínimo local (o global) de la función de energía. Esto motiva que se diseñe la red para que iterativamente se pueda buscar el estado de mínimo local. La técnica del gradiente nos lleva al modelo secuencial de Hopfield. La diferencia de la función de energía antes y después de la actualización de un estado es:

En caso de una actualización secuencial (asíncrona), hay solo una adaptación de un bit al mismo

tiempo. Sin pérdida de generalidad, asumamos que sea en en el bit i-esimo:

Puesto que Wii= 0

Introduzcamos una versión discreta del gradiente como:

Para garantizar el descenso de la Función de Energía se debería actualizar en la dirección de descenso del gradiente:

2. Modelo de Hopfield, algoritmo secuencial. Suponiendo que la entrada a la red de retroalimentación es a, que se usa como el vector de estado inicial, esto es, se fija

Page 33: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 32 

y las iteraciones inician en k=1 hasta la convergencia. Durante la iteración k-ésima, la red realiza la actualización en orden secuencial desde i=1, i=2,..., hasta i=N se tiene que: Cálculo del valor de red

Introducción a MATLAB

MATLAB es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares −tanto reales como complejos−, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio. MATLAB es un gran programa de cálculo técnico y científico. Para ciertas operaciones es muy rápido, cuando puede ejecutar sus funciones en código nativo con los tamaños más adecuados para aprovechar sus capacidades de vectorización. En otras aplicaciones resulta bastante más lento que el código equivalente desarrollado en C/C++ o Fortran. En la versión 6.5, MATLAB incorporó un acelerador JIT (Just In Time), que mejoraba significativamente la velocidad de ejecución de los ficheros *.m en ciertas circunstancias, por ejemplo cuando no se hacen llamadas a otros ficheros *.m, no se utilizan estructuras y clases, etc. Aunque limitado en ese momento, cuando era aplicable mejoraba sensiblemente la velocidad, haciendo innecesarias ciertas técnicas utilizadas en versiones anteriores como la vectorización de los algoritmos. En cualquier caso, el lenguaje de programación de MATLAB siempre es una magnífica herramienta de alto nivel para desarrollar aplicaciones técnicas, fácil de utilizar y que, como ya se ha dicho, aumenta significativamente la productividad de los programadores respecto a otros entornos de desarrollo.

MATLAB dispone de un código básico y de varias librerías especializadas (toolboxes). MATLAB se puede arrancar como cualquier otra aplicación de Windows, clicando dos veces en el icono correspondiente en el escritorio o por medio del menú Inicio). Al arrancar MATLAB se abre una ventana similar a la mostrada en la Figura 1. Ésta es la vista que se obtiene eligiendo la opción Desktop Layout/Default, en el menú View. Como esta configuración puede ser cambiada fácilmente por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. En cualquier caso, una vista similar se puede conseguir con el citado comando View/Desktop Layout/Default.

Page 34: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 33 

El entorno de trabajo de MATLAB

El entorno de trabajo de MATLAB es muy grafico e intuitivo, similar al de otras aplicaciones profesionales de Windows. Ahora se explican estos componentes un poco a detalle.

Las componentes más importantes del entorno de trabajo de MATLAB 7.0 son las siguientes:

1. El Escritorio de Matlab (Matlab Desktop), que es la ventana o contenedor de máximo nivel en la que se pueden situar (to dock) las demás componentes.

2. Las componentes individuales, orientadas a tareas concretas, entre las que se puede citar:

a. La ventana de comandos (Command Window),

b. La ventana historica de comandos (Command History),

c. El espacio de trabajo (Workspace),

d. La plataforma de lanzamiento (Launch Pad),

e. El directorio actual (Current Directory),

f. La ventana de ayuda (Help)

g. El editor de ficheros y depurador de errores (Editor&Debugger),

h. El editor de vectores y matrices (Array Editor).

i. La ventana que permite estudiar cómo se emplea el tiempo de ejecución (Profiler).

A continuación se describen brevemente estas componentes. Téngase en cuenta que utilizar MATLAB y desarrollar programas para MATLAB es mucho más fácil si se conoce bien este entorno de trabajo. Para alcanzar la máxima productividad personal en el uso de esta aplicación es por ello muy importante leer con atención las secciones que siguen.

El escritorio de MATLAB (MATLAB DESKTOP)

El Matlab Desktop es la ventana más general de la aplicación. El resto de las ventanas o componentes citadas pueden alojarse en la Matlab Desktop o ejecutarse como ventanas independientes. A su vez, los componentes alojados en el Matlab Desktop pueden aparecer como sub-ventanas independientes o como pestanas dentro de una de las sub-ventanas. MATLAB ofrece una gran flexibilidad al respecto y es cada usuario quien decide en qué forma desea utilizar la aplicación.

Cuando se arranca MATLAB por primera vez o cuando se ejecuta el comando View/Desktop Layout/Default aparece una ventana como la mostrada en la Figura 10. Aunque dividida en tres zonas, en realidad aparecen cuatro componentes, pues la sub-ventana superior izquierda contiene dos componentes superpuestas que se permutan por medio de la pestana correspondiente.

Page 35: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 34 

La Figura 11 muestra un detalle del menú Desktop, desde el que se controlan las componentes visiblesy la forma en que se visualizan. Por ejemplo, como en la Figura 10 la ventana activa es la Command Window, en el menú de la Figura 11 aparece la opción de dejar de alojar dicha ventana en el Matlab Desktop (Undock Command Window). Dicho menú permite también eliminar del Desktop alguna de las componentes visibles o visualizar el Help (que no está visible). Con los submenús de Desktop Layout se pueden adoptar algunas configuraciones predefinidas, como la configuración por defecto (Default) o incluir solo la Command Window. La configuración adoptada por el usuario se mantendrá la siguiente vez que arranque el programa. Es posible también guardar distintas configuraciones con distintos nombres, para su uso posterior.

Figura 10. Configuración por defecto del Figura 11. Menú para configurar el Matlab Matlab Desktop.

Figura 12. Arrastrar una pestana desde una Figura 13. Creación de una nueva sub-ventana.

sub-ventana.

Además del menú mostrado en la Figura 11, que cambia en algunos detalles según cual sea la ventana activa, el usuario puede configurar el Matlab Desktop por medio del ratón mediante algunas operaciones como las siguientes:

Page 36: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 35 

1. Colocando el ratón sobre los bordes intermedios de las sub-ventanas y arrastrando puede modificar su tamaño en la forma que desee.

2. Clicando sobre la barra de titulo de la sub-ventana activa y arrastrando (Figura 12) se puede llevar a otra parte del Desktop, obteniéndose el resultado mostrado en la Figura 13.

3. Si todas las ventanas se van seleccionando sucesivamente y se elige la correspondiente opción Undock... en el menú View, se podría obtener una configuración como la mostrada en la Figura 14, en la que todas las ventanas son independientes y aparecen separadas en la barra de tareas.

4. Finalmente, si se parte de la configuración por defecto y cada uno de los componentes se arrastra sobre la Command Window se puede obtener una configuración como la mostrada en la Figura 15, en la que todos los componentes abiertos aparecen como pestanas alternativas en una ventana única.

Figura 14. Ventanas independientes sobre Figura 15. Todos los componentes compartiendo

el Desktop. ventana.

La variedad de configuraciones mostradas en las figuras precedentes da una idea de las posibilidades de adaptación a las preferencias del usuario que tiene MATLAB. Otros componentes como el Help Browser podrían añadirse a esta ventana de forma análoga.

Command Window

Esta es la ventana en la que se ejecutan interactivamente las instrucciones de MATLAB y en donde se muestran los resultados correspondientes, si es el caso. En cierta forma es la ventana más importante y la única que existía en las primeras versiones de la aplicación. En esta nueva versión se han añadido algunas mejoras significativas, como las siguientes:

1. Se permiten líneas de comandos muy largas que automáticamente siguen en la línea siguiente al llegar al margen derecho de la ventana. Para ello hay que activar la opción Wrap Lines, en el menú File/Preferences/Command Window.

2. Clicando con el botón derecho sobre el nombre de una función que aparezca en esta ventana se tiene acceso a la página del Help sobre dicha función. Si el código fuente (fichero *.m) está

Page 37: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 36 

disponible, también se puede acceder al fichero correspondiente por medio del Editor/Debugger.

3. Comenzando a teclear el nombre de una función y pulsando la tecla Tab, MATLAB completa automáticamente el nombre de la función, o bien muestra en la línea siguiente todas las funciones disponibles que comienzan con las letras tecleadas por el usuario.

4. Cuando al ejecutar un fichero *.m se produce un error y se obtiene el correspondiente mensaje en la Command Window, MATLAB muestra mediante un subrayado un enlace a la línea del fichero fuente en la que se ha producido el error. Clicando en ese enlace se va a la línea correspondiente del fichero por medio del Editor/Debugger.

Command History Browser

La ventana Command History ofrece acceso a las sentencias que se han ejecutado anteriormente en la Command Window. Estas sentencias están también accesibles por medio de las teclas ª y « como en las versiones anteriores, pero esta ventana facilita mucho el tener una visión mas general de lo hecho anteriormente y seleccionar lo que realmente se desea repetir.

Las sentencias ejecutadas anteriormente se pueden volver a ejecutar mediante un doble clic o por medio del menú contextual que se abre al clicar sobre ellas con el botón derecho. También se pueden copiar y volcar sobre la línea de comandos, pero se ha de copiar toda la línea, sin que se admita la copia de un fragmento de la sentencia. Existen opciones para borrar algunas o todas las líneas de esta ventana. Se puede también hacer un profile (evaluar la eficiencia relativa) de una sentencia o de un grupo de sentencias.

Current Directory Browser.

El concepto de directorio activo o directorio actual es muy importante en MATLAB. Los programas de MATLAB se encuentran en ficheros con la extensión *.m. Estos ficheros se ejecutan tecleando su nombre en la línea de comandos (sin la extensión), seguido de los argumentos entre paréntesis, si se trata de funciones. No todos los ficheros *.m que se encuentren en el disco duro o en otras unidades lógicas montadas en una red local son accesibles sin mas. Para que un fichero *.m se pueda ejecutar es necesario que se cumpla una de las dos condiciones siguientes:

1. Que este en el directorio actual. MATLAB mantiene en todo momento un único directorio con esta condición. Este directorio es el primer sitio en el que MATLAB busca cuando desde la línea de comandos se le pide que ejecute un fichero.

2. Que este en uno de los directorios indicados en el Path de MATLAB. El Path es una lista ordenada de directorios en los que el programa busca los ficheros o las funciones que ha de ejecutar. Muchos de los directorios del Path son propios de MATLAB, pero los usuarios también pueden añadir sus propios directorios, normalmente al principio o al final de la lista. En un próximo apartado se verá como se controla el Path.

El comando pwd (de print working directory) permite saber cual es el directorio actual. Para cambiar de directorio actual se puede utilizar el comando cd (de change directory) en la línea de comandos, seguido del nombre del directorio, para el cual se puede utilizar un path absoluto (por

Page 38: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 37 

ejemplo cd C:\Matlab\Ejemplos) o relativo (cd Ejemplos). Para subir un nivel en la jerarquía de directorios se utiliza el comando cd .., y cd ../.. para subir dos niveles. Este es el mismo sistema que se sigue para cambiar de directorio en las ventanas de MS-DOS. MATLAB permite utilizar la barra normal (/) y la barra invertida (\), indistintamente.

La ventana Current Directory permite explorar los directorios del ordenador en forma análoga a la del Explorador u otras aplicaciones de Windows. Cuando se llega al directorio deseado se muestran los ficheros y ficheros allí contenidos. La ventana Current Directory permite ordenarlos por fecha, tamaño, nombre, etc. El directorio actual cambia automáticamente en función del directorio seleccionado con este explorador, y también se puede cambiar desde la propia barra de herramientas del Matlab Desktop. Los ficheros *.m mostrados en la ventana Current Directory se pueden abrir con el Editor/Debugger mediante un doble clic.

A partir del menú contextual que se abre clicando con el botón derecho en cualquier parte de la ventana Current Directory se tiene la posibilidad de añadir ese directorio al Path de MATLAB.

Path de MATLAB: Establecer el camino de búsqueda (SEARCH PATH)

MATLAB puede llamar a una gran variedad de funciones, tanto propias como programadas por los usuarios. Puede incluso haber funciones distintas con el mismo nombre. Interesa saber cuales son las reglas que determinan que función o que fichero *.m es el que se va a ejecutar cuando su nombre aparezca en una línea de comandos del programa. Esto queda determinado por el camino de búsqueda (search path) que el programa utiliza cuando encuentra el nombre de una función.

El search path de MATLAB es una lista de directorios que se puede ver y modificar a partir de la línea de comandos, o utilizando el cuadro de dialogo Set Path, del menú File. El comando path hace que se escriba el search path de MATLAB (el resultado depende de en que directorio este instalado MATLAB; se muestran solo unas pocas lineas de la respuesta real del programa):

>> path

>> path

MATLABPATH

C:\MATLAB701\toolbox\matlab\general

C:\MATLAB701\toolbox\matlab\ops

C:\MATLAB701\toolbox\matlab\lang

C:\MATLAB701\toolbox\matlab\elmat

...

C:\MATLAB701\toolbox\matlab\helptools

C:\MATLAB701\toolbox\matlab\winfun

C:\MATLAB701\toolbox\matlab\demos

C:\MATLAB701\toolbox\local

Para ver como se utiliza el search path supóngase que se utiliza la palabra nombre1 en un comando.

Page 39: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 38 

El proceso que sigue el programa para tratar de conocer que es nombre1 es el siguiente:

1. Comprueba si nombre1 es una variable previamente definida por el usuario.

2. Comprueba si nombre1 es una función interna o intrínseca de MATLAB.

3. Comprueba si nombre1 es una sub-función o una función privada del usuario.

4. Comprueba si hay un fichero llamado nombre1.mex, nombre1.dll o nombre1.m en el directorio actual, cuyo contenido se obtiene con el comando dir. Ya se ha visto como se cambiaba el directorio actual.

5. Comprueba si hay ficheros llamados nombre1.mex, nombre1.dll o nombre1.m en los directorios incluidos en el search path de MATLAB.

Estos pasos se realizan por el orden indicado. En cuanto se encuentra lo que se esta buscando se detiene la búsqueda y se utiliza el fichero que se ha encontrado. Conviene saber que, a igualdad de nombre, los ficheros *.mex tienen precedencia sobre los ficheros *.m que están en el mismo directorio.

Figura 16. Cuadro de dialogo Set Path. Figura 17. Anadir un directorio al Path.

El cuadro de dialogo que se abre con el comando File/Set Path ayuda a definir la lista de directorios donde MATLAB debe buscar los ficheros de comandos y las funciones, tanto del sistema como de usuario. Al ejecutar dicho comando aparece el cuadro de dialogo de la Figura 16, en el cual se muestra la lista de directorios en la que MATLAB buscara. Para añadir (o quitar) un directorio a esta lista se debe clicar sobre los botones Add Folder o Add with Subfolders, con lo cual aparece un nuevo cuadro de dialogo, mostrado en la Figura 17, que ayuda a elegir el directorio deseado. El nuevo directorio se añade al comienzo de la lista, pero desde esa posición puede desplazarse hacia abajo o hasta el final con los botones Move Down o Move to Botton, respectivamente. Como ya se ha dicho el orden de la lista es muy importante, porque refleja el orden de la búsqueda: si dos funciones con el mismo nombre están en dos directorios diferentes, se utilizara al que primero se encuentre.

Page 40: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 39 

El cuadro de dialogo Set Path contiene los botones necesarios para realizar todas las operaciones que el usuario desee. Para incluir desde la línea de comandos de MATLAB un directorio nuevo al comienzo del Path sin utilizar el cuadro de dialogo Set Path, se puede utilizar también el comando path, que concatena dos listas de directorios (solo se deben utilizar directorios que realmente existan en el PC), como por ejemplo:

>> path('c:\mat\matlab', path)

mientras que para añadir el nuevo directorio al final de la lista, se utilizaría el comando:

>> path(path, 'c:\mat\practicas')

El comando addpath permite añadir uno o más directorios al Path. Su forma general puede verse en los siguientes ejemplos:

>> addpath 'c:\Matlab' 'c:\Temp' -end

>> addpath 'c:\Matlab\Pruebas' 'c:\Temp\Pruebas' -begin

donde la opción por defecto (cuando no se pone ni .begin ni .end) es añadir al comienzo de la lista.

Después de ejecutar estos comandos conviene comprobar cómo ha quedado modificado el search

path (recuerdese que los directorios deben existir en realidad). No es difícil borrar las líneas que se han introducido en el Path: por una parte, los cambios no son permanentes y dejaran de surtir efecto al salir de MATLAB y volver a entrar (salvo que se guarden como opciones estables). Además se puede utilizar el comando rmpath (de remove path), al que se le pasan la lista de directorios a eliminar del Path. Por ejemplo, el comando:

>> rmpath 'c:\Matlab' 'c:\Temp'

borra del Path los dos directorios indicados.

Workspace Browser y array editor.

El espacio de trabajo de MATLAB (Workspace) es el conjunto de variables y de funciones de usuario que en un determinado momento están definidas en la memoria del programa o de la función que se esta ejecutando. Para obtener información sobre el Workspace desde la línea de comandos se pueden utilizar los comandos who y whos. El segundo proporciona una información más detallada que el primero. Por ejemplo, una salida típica del comando whos es la siguiente:

>> whos

Name Size Bytes Class

A 3x3 72 double array

B 3x3 72 double array

C 3x3 72 double array

D 3x3 72 double array

Grand total is 36 elements using 288 bytes

Page 41: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 40 

Estas son las variables del espacio de trabajo base (el de la línea de comandos de MATLAB). Más adelante se verá que cada función tiene su propio espacio de trabajo, con variables cuyos nombres no interfieren con las variables de los otros espacios de trabajo.

La ventana Workspace constituye un entorno grafico para ver las variables definidas en el espacio de trabajo. Se activa con el comando View/Workspace. La Figura 18 muestra el aspecto inicial de la ventana Workspace cuando se abre desde un determinado programa. Haciendo doble clic por ejemplo sobre la matriz BARS aparece una nueva ventana (o pestana, si la ventana ya existía) del Array Editor, en la que se muestran y pueden ser modificados los elementos de dicha matriz (ver Figura 19).

Figura 18. Workspace Browser con elementos definidos Figura 19. Array Editor (Editor de Matrices).

Es importante insistir en que cada una de las funciones de MATLAB tiene su propio espacio de trabajo, al que en principio solo pertenecen las variables recibidas como argumentos o definidas dentro de la propia función. En la barra de herramientas de la ventana Workspace aparece una lista desplegable llamada Stack, con los espacios de trabajo del programa actual. Hay que tener en cuenta que cuando se termina de ejecutar una función y se devuelve el control al programa que la había llamado, las variables definidas en la función dejan de existir (salvo que se hayan declarado como persistent) y también deja de existir su espacio de trabajo.

Si se desean examinar otras matrices y/o vectores, al hacer doble clic sobre ellas el Array Editor las muestra en la misma ventana como subventanas con una pestana diferente.

Clicando con el botón derecho sobre alguna de las variables del Workspace Browser se abre un menú contextual que ofrece algunas posibilidades interesantes, como por ejemplo la de representar gráficamente dicha variable.

El Array Editor no solo permite ver los valores de los elementos de cualquier matriz o vector definido en el programa: es también posible modificar estos valores clicando sobre la celda correspondiente. La ventana del Array Editor incluye una lista desplegable en la que se puede elegir el formato en el que se desea ver los datos.

El Array Editor es muy útil también para entender bien ciertos algoritmos, ejecutando paso a paso un programa y viendo cómo cambian los valores de las distintas variables. Es posible aparcar o situar las ventanas o pestanas del Array Editor en la misma ventana del Editor/Debugger, que se va a ver a continuación.

Page 42: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 41 

El Editor/Debugger

En MATLAB tienen particular importancia los ya citados ficheros-M (o M-files). Son ficheros de texto ASCII, con la extensión *.m, que contienen conjuntos de comandos o definición de funciones (estos últimos son un poco más complicados y se verán mas adelante). La importancia de estos ficheros-M es que al teclear su nombre en la línea de comandos y pulsar Intro, se ejecutan uno tras otro todos los comandos contenidos en dicho fichero. El poder guardar instrucciones y grandes matrices en un fichero permite ahorrar mucho trabajo de tecleado.

Figura 20. Ventana del Editor/Debugger. Figura 21. Ejecución interactiva con el Editor/Debugger.

Aunque los ficheros *.m se pueden crear con cualquier editor de ficheros ASCII tal como Notepad, MATLAB dispone de un editor que permite tanto crear y modificar estos ficheros, como ejecutarlos paso a paso para ver si contienen errores (proceso de Debug o depuración). La Figura 20 muestra la ventana principal del Editor/Debugger, en la que se ha tecleado un fichero-M llamado Prueba1.m, que contiene un comentario y seis sentencias5. El Editor muestra con diferentes colores los diferentes tipos o elementos constitutivos de los comandos (en verde los comentarios, en violeta las cadenas de caracteres, etc.). El Editor se preocupa también de que las comillas o paréntesis que se abren, no se queden sin el correspondiente elemento de cierre. Colocando el cursor antes o después de una apertura o cierre de corchete o paréntesis y pulsando las teclas ( ©) o ( ¨), el Editor muestra con que cierre o apertura de corchete o paréntesis se empareja el elemento considerado; si no se empareja con ninguno, aparece con una rayita de tachado.

Seleccionando varias líneas y clicando con el botón derecho aparece un menú contextual cuya sentencia Comment permite entre otras cosas comentar con el caracter % todas las líneas seleccionadas. Estos comentarios pueden volver a su condición de código ejecutable seleccionándolos y ejecutando Uncomment en el menú contextual. Otra opción muy útil de ese menú contextual es Smart Indent, que organiza el sangrado de los bucles y bifurcaciones de las sentencias seleccionadas.

La Figura 21 corresponde a una ejecución de este fichero de comandos controlada con el Debugger. Dicha ejecución se comienza eligiendo el comando Run en el menú Debug, pulsando la tecla F5, clicando en el botón Continue ( ) de la barra de herramientas del Editor o tecleando el nombre del fichero en la línea de comandos de la Command Window. Los puntos rojos que aparecen en el margen izquierdo son breakpoints (puntos en los que se detiene la ejecución de

Page 43: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 42 

programa); la flecha verde en el borde izquierdo indica la sentencia en que está detenida la ejecución (antes de ejecutar dicha sentencia); cuando el cursor se coloca sobre una variable (en este caso sobre A) aparece una pequeña ventana con los valores numéricos de esa variable, tal como se ve en la Figura 21.

En la Figura 21 puede apreciarse también que están activados los botones que corresponden al Debugger.

El significado de estos botones, que aparece al colocar sobre ellos el cursor, es el siguiente:

Set/Clear Breakpoint. Coloca o borra un breakpoint en la línea en que esta el cursor.

Clear All Breakpoints. Elimina todos los breakpoints que haya en el fichero.

Step. Avanzar un paso sin entrar en las funciones de usuario llamadas en esa línea.

Step In. Avanzar un paso, y si en ese paso hay una llamada a una función cuyo fichero

*.m esta accesible, entra en dicha función.

Step Out. Salir de la función que se está ejecutando en ese momento.

Continue. Continuar la ejecución hasta el siguiente breakpoint.

Quit Debugging. Terminar la ejecución del Debugger.

Stack. En la parte derecha de la barra de herramientas aparece esta lista desplegable (visible en la

Figura 21 con las letras Pru...) mediante la cual se puede elegir el contexto, es decir el

espacio de trabajo o el ámbito de las variables que se quieren examinar. Ya se ha

comentado que el espacio de trabajo base (el de las variables creadas desde la línea de

comandos) y el espacio de trabajo de cada función son diferentes.

El Debugger es un programa que hay que conocer muy bien, pues es muy útil para detectar y corregir errores. Es también enormemente útil para aprender métodos numéricos y técnicos de programación.

Para aprender a manejar el Debugger lo mejor es practicar. Cuando se está ejecutando un programa con el Debugger, en cualquier momento se puede ir a la línea de comandos de MATLAB y teclear una expresión para ver su resultado. También se puede seleccionar con el ratón una sub-expresión en cualquier línea vista en el Editor/Debugger, clicar con el botón derecho y en el menú contextual que se abre elegir Evaluate Selection. El resultado de evaluar esa sub-expresión aparece en la línea de comandos de MATLAB.

Ya en las versiones anteriores MATLAB disponía de un Debugger alfanumérico que se utilizaba desde la línea de comandos y en el que está basado el nuevo Debugger grafico del que se ha hablado anteriormente. De hecho, al realizar operaciones con el Debugger grafico van apareciendo las correspondientes instrucciones en la línea de comandos de MATLAB. Para mas información sobre los comandos del Debugger alfanumérico, buscar en la sección gEditing and Debugging M-Files en Help/Matlab/Desktop Tools and Development Environment.

Seleccionando el nombre de una función o de un fichero de comandos en el código mostrado en la ventana del Editor/Debugger y abriendo con el botón derecho el menú contextual

Page 44: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 43 

correspondiente, se ofrecen las tres posibilidades Evaluate Selection, Open Selection y Help on Selection, que son muy útiles para comprobar, ver o recibir ayuda sobre la función seleccionada.

MATLAB permite tambien introducir breakpoints condicionales (indicados con un punto amarillo, en vez de rojo), en los que el programa se para solo si se cumple una determinada condición. Para introducir un breakpoint condicional basta clicar con el botón derecho en la correspondiente línea del código en la ventana del Editor/Debugger y elegir en el menú contextual que resulta Set/Modify Conditional Breakpoint. Se abre una ventana como la mostrada en la Figura 22 en la que se escribe la condición que debe cumplirse para que el programa se detenga en dicho punto.

Figura 22. Establecer una condición en un breakpoint.

El Profiler

El profiler es un programa de utilidad que permite saber cómo se ha empleado el tiempo de la CPU en la ejecución de un determinado programa. El profiler es una herramienta muy útil para determinar los cuellos de botella de un programa, es decir las funciones y las líneas de código que más veces se llaman y que se llevan la mayor parte del tiempo de ejecución. Por ejemplo, es obvio que si se trata de mejorar la eficiencia de un programa, seria más importante mejorar una función que se llevase el 60% del tiempo total que otra que solo se llevase el 2%. Dentro de la función mas llamada, el profiler proporciona información sobre el tiempo que se lleva cada sentencia, y da también algunas orientaciones sobre las posibilidades de mejorarla.

Preferencias: Formatos de salida y de otras opciones de MATLAB

MATLAB dispone de un cuadro de dialogo desde el que se establecen casi todas las opciones que el usuario puede determinar por su cuenta. Este cuadro de dialogo se abre con el comando Preferences del menú File. En la Figura 23 se aparece el cuadro de dialogo Preferences mostrando todas las posibilidades que ofrece en el menú de la izquierda: en total son 24 cuadros de dialogo diferentes. La Figura 24 muestra el que permite elegir los colores generales del código.

Page 45: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 44 

Figura 23. Cuadro de dialogo Preferences/General. Figura 24. Cuadro de dialogo Preferences/ Color.

El cuadro de dialogo Command Window/Fonts ofrece la posibilidad de elegir el tipo de letra .así como el tamaño y el color, tanto de las letras como del fondo. con la que se escribe en la ventana de comandos de MATLAB. Es muy importante utilizar tipos de letra de tamaño constante (por ejemplo, Courier New, Lucida Console o Monospaced), para que las filas de las matrices se alineen bien en la pantalla.

Respecto a los formatos numéricos con que MATLAB muestra los resultados (recuérdese que siempre calcula con doble precisión, es decir con unas 16 cifras decimales equivalentes), las posibilidades existentes se muestran en la lista desplegable de la Figura 25 y son las siguientes:

short coma fija con 4 decimales (defecto)

long coma fija con 15 decimales

hex cifras hexadecimales

bank números con dos cifras decimales

short e notación científica con 4 decimales

short g notación científica o decimal, dependiendo del valor

long e notación científica con 15 decimales

long g notación científica o decimal, dependiendo del valor

rational expresa los números racionales como cocientes de enteros

Estos formatos se pueden cambiar también desde la línea de comandos anteponiendo la palabra

format. Por ejemplo, para ver las matrices en formato long habrá que ejecutar el comando:

>> format long

Page 46: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 45 

Por otra parte, el formato loose introduce algunas líneas en blanco en la salida (opción por defecto), mientras que el formato compact elimina las líneas en blanco citadas (es la opción recomendada en este manual). Estas opciones están disponibles en el cuadro de dialogo de la Figura 25 y se pueden también establecer desde la línea de comandos en la forma:

>> format compact

El cuadro de dialogo de la Figura 26 permite elegir un editor de programas distinto del que trae MATLAB (built-in editor), así como obligar a que los ficheros se abran de modo automático al ejecutarlos con el Debugger.

Figura 25. Cuadro de dialogo Prefs./Command Window. Figura 26. Cuadro de dialogo Prefs./Editor&Debugger.

MATLAB aplica un factor de escala general a las matrices cuando los elementos no enteros mas grandes o mas pequeños son superiores o inferiores a una determinada cantidad (103 y 10.3, respectivamente). Hay que añadir que MATLAB trata de mantener el formato de los números que han sido definidos como enteros (sin punto decimal). Si se elige la opción format rational el programa trata de expresar los números racionales como cocientes de enteros.

Ficheros matlabrc.m, startup.m y finish.m

El search path inicial o por defecto de MATLAB está definido en un fichero llamado matlabrc.m, en el sub-directorio toolbox\local. Este fichero contiene también otros parámetros de inicialización y es, por ejemplo, el responsable de los mensajes que aparecen al arrancar el programa. Este fichero se ejecuta automáticamente al arrancar MATLAB. En las instalaciones de MATLAB en red, matlabrc.m es un fichero controlado por el administrador del sistema. Una de las cosas que hace este fichero es ver si en algún directorio del search path existe otro fichero llamado startup.m, y en caso de que exista lo ejecuta. Esto abre la posibilidad de que cada usuario arranque MATLAB de una forma personalizada. Si en el search path de MATLAB se coloca un fichero creado por el usuario llamado startup.m las instrucciones contenidas en dicho fichero se ejecutaran automáticamente cada vez que arranque MATLAB.

Page 47: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 46 

Un posible contenido de este fichero puede ser el siguiente (crearlo con el Editor/Debugger):

>> format compact

>> addpath 'c:\Matlab\Practicas' -end

>> disp('!Hola!')

Se puede crear el fichero startup.m en el directorio indicado y probar a arrancar MATLAB. Si el saludo !Hola! se sustituye por un saludo más personal (por ejemplo, incluyendo el propio nombre), se comprobara lo explicado previamente. Es muy aconsejable crear este fichero si MATLAB se utiliza en un ordenador de uso personal.

De forma análoga, al abandonar la ejecución de MATLAB con el comando quit se ejecuta automáticamente el fichero finish.m, siempre que se encuentre en alguno de los directorios del search path. Este fichero se puede utilizar por ejemplo para guardar el espacio de trabajo de MATLAB y poder continuar en otro momento a partir del punto en el que se abandono el trabajo, por ejemplo al cerrar el programa.

Guardar variables y estados de una sesión: Comandos save y load

En muchas ocasiones puede resultar interesante interrumpir el trabajo con MATLAB y poderlo recuperar mas tarde en el mismo punto en el que se dejo (con las mismas variables definidas, con los mismos resultados intermedios, etc.). Hay que tener en cuenta que al salir del programa todo el contenido de la memoria se borra automáticamente.

Para guardar el estado de una sesión de trabajo existe el comando save. Si se teclea:

>> save

antes de abandonar el programa, se crea en el directorio actual un fichero binario llamado matlab. mat (o matlab) con el estado de la sesión (excepto los gráficos, que por ocupar mucha memoria hay que guardar aparte). Dicho estado puede recuperarse la siguiente vez que se arranque el programa con el comando:

>> load

Esta es la forma más básica de los comandos save y load. Se pueden guardar también matrices y vectores de forma selectiva y en ficheros con nombre especificado por el usuario. Por ejemplo, el comando (sin comas entre los nombres de variables):

>> save filename A x y

guarda las variables A, x e y en un fichero binario llamado filename.mat (o filename). Para recuperarlas en otra sesión basta teclear:

>> load filename

Si no se indica ninguna variable, se guardan todas las variables creadas en esa sesión. El comando save permite guardar el estado de la sesión en formato ASCII utilizándolo de la siguiente forma (lo que va detrás del caracter (%) es un comentario que es ignorado por MATLAB):

Page 48: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 47 

>> save -ascii % almacena 8 cifras decimales

>> save -ascii -double % almacena 16 cifras decimales

>> save -ascii -double -tab % almacena 16 cifras separadas por tabs

aunque en formato ASCII solo se guardan los valores y no otra información tal como los nombres de las matrices y/o vectores. Cuando se recuperan estos ficheros con load -ascii toda la información se guarda en una única matriz con el nombre del fichero. Esto produce un error cuando no todas las filas tienen el mismo número de elementos. Con la opción -append en el comando save la información se guarda a continuación de lo que hubiera en el fichero.

El comando load admite las opciones -ascii y -mat, para obligarle a leer en formato ASCII o binario, respectivamente.

Guardar sesión y copiar salidas: Comando diary

Los comandos save y load crean ficheros binarios o ASCII con el estado de la sesión. Existe otra forma más sencilla de almacenar en un fichero un texto que describa lo que el programa va haciendo (la entrada y salida de los comandos utilizados). Esto se hace con el comando diary en la forma siguiente:

>> diary filename.txt

...

>> diary off

...

>> diary on

...

El comando diary off suspende la ejecución de diary y diary on la reanuda. El simple comando diary pasa de on a off y viceversa. Para poder acceder al fichero filename.txt con Notepad o Word es necesario que diary este en off. Si en el comando diary no se incluye el nombre del fichero se utiliza por defecto un fichero llamado diary (sin extensión).

Líneas de comentarios

Ya se ha indicado que para MATLAB el caracter tanto por ciento (%) indica comienzo de comentario. Cuando aparece en una línea de comandos, el programa supone que todo lo que va desde ese caracter hasta el fin de la línea es un comentario.

MATLAB permite comentar bloques de sentencias, es decir, muchas sentencias contiguas de una vez. Una forma de hacerlo es seleccionar las sentencias que se desea comentar, clicar con el botón derecho, y elegir la opción Comment en el menú que se abre; las sentencias selecionadas se comentan individualmente con el caracter %. De forma similar se pueden eliminar los comentarios.

Page 49: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 48 

Otra forma de comentar bloques de sentencias (similar a la utilizada en C/C++ con /* y */) es encerrar las líneas que se desea inutilizar entre los caracteres %{ y %}. Los bloques comentados pueden incluirse dentro de otros bloques comentados más amplios (bloques anidados).

Medida de tiempos y de esfuerzo de cálculo

MATLAB dispone de funciones que permiten calcular el tiempo empleado en las operaciones matemáticas realizadas. Algunas de estas funciones son las siguientes:

cputime devuelve el tiempo de CPU (con precisión de centésimas de segundo) desde que el

programa arranco. Llamando antes y después de realizar una operación y restando

los valores devueltos, se puede saber el tiempo de CPU empleado en esa

operación. Este tiempo sigue corriendo aunque MATLAB este inactivo.

etime(t2, t1) tiempo transcurrido entre los vectores t1 y t2 (!atencion al orden!), obtenidos como

respuesta al comando clock.

tic ops toc imprime el tiempo en segundos requerido por ops. El comando tic pone el reloj a

cero y toc obtiene el tiempo transcurrido.

A modo de ejemplo, el siguiente código mide de varias formas el tiempo necesario para resolver un sistema de 1000 ecuaciones con 1000 incognitas. Tengase en cuenta que los tiempos pequeños (del orden de las decimas o centésimas de segundo), no se pueden medir con gran precisión.

>> n=1000; A=rand(n); b=rand(n,1); x=zeros(n,1);

>> tiempoIni=clock; x=A\b; tiempo=etime(clock, tiempoIni)

>> time=cputime; x=A\b; time=cputime-time

>> tic; x=A\b; toc

donde se han puesto varias sentencias en la misma línea para que se ejecuten todas sin tiempos muertos al pulsar intro. Esto es especialmente importante en la línea de comandos en la que se quiere medir los tiempos. Todas las sentencias de cálculos matriciales van seguidas de punto y coma (;) con objeto de evitar la impresión de resultados. Conviene ejecutar dos o tres veces cada sentencia para obtener tiempos óptimos, ya que la primera vez que se ejecutan se emplea un cierto tiempo en cargar las funciones a memoria.

Page 50: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 49 

Captura de sonido con MATLAB

Para capturar una señal por la entrada auxiliar de la tarjeta de sonido del computador, MATLAB cuenta con la función wavrecord(t*Fs,Fs,Ch) cuyos parámetros corresponden al tiempo en segundos de captura de la señal, frecuencia de muestreo (admite 8000, 11025, 22050 y 44100), el tipo de canal (1 para mono y 2 para stereo).

Si se desea capturar una señal en stereo con 5 segundos de duración, con una frecuencia de muestreo de 11.025 podemos emplear las siguientes funciones:

Fs = 11025; y = wavrecord(5*Fs, Fs, 2);

Para guardar una señal capturada en formato wav se puede hacer uso de la función wavwrite(y,Fs,NBits,'Nombre.wav') cuyos parámetros corresponden a la señal grabada, la frecuencia de muestreo, el número de bits (puede ser 8, 16, 24 o 32) y el nombre del archivo en el cual se grabará el sonido. Hay que tener en cuenta que los valores de amplitud que estén fuera del rango [-1,+1] son clipeados.

Si no se especifican los NBits el programa asume por defecto 16 Bits. Si no se determina una Fs, el programa asume por defecto 8000 Hz.

Por ejemplo, para guardar el sonido capturado anteriormente se empleará el siguiente comando:

wavwrite(y,Fs,16,'sonido_uno.wav')

Para escuchar o manipular vectorialmente un sonido almacenado en formato wav se utilizan dos comandos.

wavread('File.wav') sound(Var)

Para el ejemplo anterior File es el nombre del archivo que se desea escuchar, los valores de amplitud deben estar en el rango [-1,+1].

La variable Var corresponde al vector que se desea escuchar cuya frecuencia de muestreo por defecto será de 8192 Hz.

Si se utiliza sound(var,Fs) el resultado será un sonido con una frecuencia de muestreo definida por el usuario. Se asume que los valores están dentro del rango [-1,1] ya que los valores que están fuera del rango son clipeados.

Si se emplea sound(var,Fs,Bits) sonará con una frecuencia de muestreo definida por el usuario y determinados número de Bits por muestra.

Por ejemplo, para escuchar la señal guardada anteriormente como sonido_uno, se asigna a una variable s el comando wavread y luego se escucha con el comando sound.

s= wavread('sonido_uno.wav'); sound(s,44100)

Page 51: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 50 

Si se desean conocer los datos de un archivo en formato wav, como los valores del vector, su frecuencia de muestreo o el número de bits NBits por muestra, se emplea la siguiente sintaxis:

[y,Fs,NBits]=wavread('file.wav')

En la variable y se almacenan los valores del vector, en la variable Fs se almacena la frecuencia de muestreo y en la variable Nbits se almacena el número de bits por muestra del archivo con formato wav. Si se desea saber la dimensión de los canales del archivo en formato wav, se utiliza el siguiente comando:

siz=wavread('file.wav','size')

En la variable siz se almacena la dimensión del archivo en formato wav. Si se desean leer las primeras N muestras del archivo en formato wav se emplea el siguiente comando:

[n]=wavread('file.wav',Num)

En donde la variable Num corresponde a la cantidad de muestras que se desean tomar del archivo. Si se desea obtener la información adicional contenida en un archivo de formato wav, como el copyright o el título, se emplea el siguiente comando:

[y,Fs,NBits,Opts]=wavread('file.wav')

En la variable y se almacenan los valores del vector, en la variable Fs se almacena la frecuencia de muestreo, en la variable Nbits se almacena el número de bits por muestra y en la variable Opts se almacena el resto de la información.

Ventaneo

Se utiliza con el fin de evitar que las discontinuidades introducidas al analizar solo una fracción de la señal o al introducir muestras con valor de cero introduzcan componentes de alta frecuencia en el espectro, que son mas bien un artificio de las discontinuidades introducidas y no de la señal. Ya que la transformada rápida de Fourier asume que la señal es periódica, es conveniente siempre hacerle un procedimiento de ventaneo a la señal con la que se quiere trabajar.

MATLAB cuenta con diferentes tipos de ventanas como:

Hamming

Hanning

Bartlett

Blackman

Boxcar

Triangular

Gauss

Blackmanharris

Page 52: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 51 

Kaiser

Dolph-Chebyshev

Filtros digitales

Un filtro digital es un sistema que, dependiendo de las variaciones de las señales de entrada en el tiempo y amplitud, se realiza un procesamiento matemático sobre dicha señal; generalmente mediante el uso de la Transformada rápida de Fourier; obteniéndose en la salida el resultado del procesamiento matemático o la señal de salida.

Los filtros digitales tienen como entrada una señal analógica o digital y en su salida tienen otra señal analógica o digital, pudiendo haber cambiado en amplitud, frecuencia o fase dependiendo de las características del filtro digital.

El filtrado digital es parte del procesado de señal digital. Se le da la denominación de digital más por su funcionamiento interno que por su dependencia del tipo de señal a filtrar, así podríamos llamar filtro digital tanto a un filtro que realiza el procesado de señales digitales como a otro que lo haga de señales analógicas.

Comúnmente se usa para atenuar o amplificar algunas frecuencias, por ejemplo se puede implementar un sistema para controlar los tonos graves y agudos del audio del estéreo del auto.

La gran ventaja de los filtros digitales sobre los analógicos es que presentan una gran estabilidad de funcionamiento en el tiempo.

El filtrado digital consiste en la realización interna de un procesado de datos de entrada.

En general el proceso de filtrado consiste en el muestreo digital de la señal de entrada, el procesamiento considerando el valor actual de entrada y considerando las entradas anteriores. El último paso es la reconstrucción de la señal de salida.

En general la mecánica del procesamiento es:

1. Tomar las muestras actuales y algunas muestras anteriores (que previamente habían sido almacenadas) para multiplicadas por unos coeficientes definidos.

2. También se podría tomar valores de la salida en instantes pasados y multiplicarlos por otros coeficientes.

3. Finalmente todos los resultados de todas estas multiplicaciones son sumados, dando una salida para el instante actual.

El procesamiento interno y la entrada del filtro serán digitales, por lo que puede ser necesario una conversión analógica-digital o digital-analógica para uso de filtros digitales con señales analógicas.

Page 53: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 52 

Un tema muy importante es considerar las limitaciones del filtro de entrada debido a Teorema de muestreo de Nyquist-Shannon que en pocas palabras; si quiero procesar hasta una frecuencia de 10KHz, debo muestrear a por lo menos 20 KHz.

Los filtros digitales se usan frecuentemente para tratamiento digital de la imagen o para tratamiento del sonido digital.

Otro ejemplo común de filtros digitales son los programas para retocar imágenes.

Page 54: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 53 

CAPITULO III

SIMULACIÓN DEL SISTEMA EN MATLAB

Captura de los mando de voz

A continuación se muestra el código fuente del programa que se encarga de almacenar los mandos de voz previos que se han de emplear para nuestra red neuronal.

clear all;

clc

fs = 8000;

pause

%yy = wavrecord(2.5*Fs, Fs, 'double');

yy=wavrecord(2.5*fs,fs, 'double');

% [ha,fr]=wavread ('alumbrado1');

fr=8000

x=yy;

% filtro eliminación de ruido por umbral de 0.8

yo=x;

%x2 es la señal normalizada

mwad=max(yo);

mwid=min(yo);

%x3=((yo-mwad)/(mwid-mwad))*2.0-1.0;

x3=yo/(max(mwad,mwid));

Page 55: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 54 

%% Calculo de Potencia

x2=x3;

gamma=1000/(fr*.2);

E(1)=0.0;

for i=2:length(x2)

E(i)=(1-gamma)*E(i-1)+gamma*x2(i)*x2(i)/0.00000000052998;

end

% Calculo de inicio y final de la señal de voz %

maxp=max(E);

M=(maxp*.2);%.01

N=(maxp*.9);%.15

er=0;

for i=1: length(E)

if E(i)>=M

Id2=i;

break;

end

end

for j=Id2:-1:1

if E(j)<=N

Id1=j;

er=er+1;

break;

end

if er==0

Page 56: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 55 

Id1=Id2;

end

end

%*

elz=0;

for i=length(E):-1:1

if E(i)>=M

Id22=i;

break;

end

end

for j=Id22:1:length(E)

if E(j)<=N

Id11=j;

elz=elz+1;

break;

end

if elz==0

Id11=Id22;

end

end

PX=x2(Id1:Id11); %PX Inicio y final de la potencia

xiyf=x(Id1:Id11); %xin0 Señal acotada

wavwrite(xiyf,8000,'alumbrado1.wav');

subplot(2,1,1);plot(x);

subplot(2,1,2);plot(PX);

Page 57: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 56 

Entrenamiento de la red neuronal

A continuación se muestra el código fuente del programa de entrenamiento de la red neuronal.

clear all;

clc

N=10;

[a1,fr1]=wavread ('alumbrado1');

[b1,fr1]=wavread ('calefaccion1');

[a2,fr2]=wavread ('alumbrado2');

[b2,fr2]=wavread ('calefaccion2');

[a3,fr3]=wavread ('alumbrado3');

[b3,fr3]=wavread ('calefaccion3');

[a4,fr4]=wavread ('alumbrado4');

[b4,fr4]=wavread ('calefaccion4');

[a5,fr5]=wavread ('alumbrado5');

[b5,fr5]=wavread ('calefaccion5');

[lpca1,ga1]=lpc(a1,N); %coeficientes en frecuencia de comandos

[lpce1,ge1]=lpc(b1,N);

[lpca2,ga2]=lpc(a2,N);

[lpce2,ge2]=lpc(b2,N);

[lpca3,ga3]=lpc(a3,N);

[lpce3,ge3]=lpc(b3,N);

[lpca4,ga4]=lpc(a4,N);

[lpce4,ge4]=lpc(b4,N);

[lpca5,ga5]=lpc(a5,N);

[lpce5,ge5]=lpc(b5,N);

t=2:11;

Page 58: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 57 

a11=(abs(lpca1(:,t)));

e11=(abs(lpce1(:,t)));

a22=(abs(lpca2(:,t)));

e22=(abs(lpce2(:,t)));

a33=(abs(lpca3(:,t)));

e33=(abs(lpce3(:,t)));

a44=(abs(lpca4(:,t)));

e44=(abs(lpce4(:,t)));

a55=(abs(lpca5(:,t)));

e55=(abs(lpce5(:,t)));

N=11;%neuronas de entrada (incluido el BIAS)

L=7;%neuronas de la capa oculta (incluido el BIAS)

M=3;%neuronas de salida

NT=10;%patrones de entrenamiento

NI=10000;%# maximo de iteraciones (epochs)

epsilon=0.005;%error cuadratico medio requerido

%miu=0.08;%factor de convergencia

Ws=(2*rand(N,L-1))-1;

Vs=(2*rand(L,M))-1;

%datos de entrenamiento

PE=[a11;e11;

a22;e22;

a33;e33;

a44;e44;

a55;e55];

Page 59: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 58 

%salida deseada de cada uno

D=[ 1 -1 -1;

-1 1 -1;

-1 -1 1;

1 -1 -1;

-1 1 -1;

-1 -1 1;

1 -1 -1;

-1 1 -1;

-1 -1 1;

1 -1 -1;

-1 1 -1;

-1 -1 1;

1 -1 -1;

-1 1 -1;

-1 -1 1];

%%for principal No. de iteraciones para entrenamiento.

for k=1:NI

Err=0;

for i=1:NT;

if k<=70

miu=0.3;

end

if k>70&k<=200 %factor de convergencia

miu=0.1;

end

if k>200

Page 60: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 59 

miu=0.05;

end

X=[1.0,PE(i,:)];%bias y patrones de entrenamiento

%calculo de salida de la red

U_hat=X*Ws;

U=[1.0,f_nl(1,U_hat)]; %agrega Bias

Y_hat=U*Vs;

Y=f_nl(1,Y_hat);

E=D(i,:)-Y;

%adaptacion

delta1=E.*f_prime(1,Y_hat);

Vs=Vs+miu*U'*delta1;

S=Vs*delta1';

delta2=S(2:L)'.*f_prime(1,U_hat);

Ws=Ws+miu*X'*delta2;

Err=Err+E*E';

end % i

Err=Err/(NT*M);

vec_err(1,k)=Err;

fprintf(1,'Err=%4.9f ==> %d\n',Err,k);

if Err<epsilon

break;

end

end % k

Page 61: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 60 

A continuación se muestra el código fuente de la evaluación de la red neuronal.

% evaluación de la red entrenada %

cont_a=0;

for i=1:NT

X=[1.0,PE(i,:)];

U_hat=X*Ws;

U=[1.0,f_nl(1,U_hat)];

Y_hat=U*Vs;

Y=hardlims(f_nl(1,Y_hat));

fprintf(1,'Salida de la Red: %d %d %d \n\n',Y(1),Y(2),Y(3));

end

fidfun=fopen('Wij.dat','w');

%fidfun=fopen('c:\matlab\bin\Wij.dat','w');

fprintf(fidfun,'%6.4f %6.4f %6.4f %6.4f %6.4f %6.4f\n',Ws');

fclose(fidfun);

fidfun=fopen('Vij.dat','w');

%fidfun=fopen('c:\matlab\bin\Vij.dat','w');

fprintf(fidfun,'%6.4f %6.4f %6.4f %6.4f %6.4f\n',Vs');

fclose(fidfun);

Page 62: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 61 

CAPITULO IV

CONCLUSIONES

Al realizar este trabajo de investigación hemos podido darnos cuenta de las tendencias de la tecnología, a la par de la arquitectura. Se ha podido ver que la domótica se encarga del control o automatización de una vivienda abarcando los aspectos de comunicaciones, gestión de la energía, seguridad y bienestar para los ocupantes. Así mismo es necesario notar que para poder llegar al equipamiento de dichos edificios o recintos se deben planear las construcciones con antelación y ofrecer todas las facilidades para que se puedan integrar todos los sistemas que componen a un Edificio Inteligente.

Hemos podido constatar que en éste rubro se emplean en gran medida las matemáticas, desde aritmética básica, hasta cálculo integral, diferencial, teoremas de convolución, y probabilidad y estadística.

Es básico entender toda la programación y sistemas aplicados que hacen posible la existencia de toda esta tecnología y mantenernos a la vanguardia de nuevos avances e inventos sobre el tema.

Otra gran ventaja y herramienta medular que se tuvo para el desarrollo de este trabajo, fue el empleo de MatLab. Gracias a este software es posible simular desde una PC el funcionamiento del procesador central y de las salidas operativas de un edificio inteligente, sin tener que invertir en equipo y componentes costosos requeridos para dicho fin.

Así fue que mediante el almacenamiento y procesamiento de mandos de voz a través de MatLab y haciendo uso de las redes neuronales se integra y se da fin a la simulación de un Edificio Inteligente. El siguiente paso será llevar al plano físico-electrónico mediante un FPGA la programación e instalación de los sistemas que en el presente trabajo se han simulado.

Page 63: SEMINARIO DE TITULACIÓN T E S I N A INGENIERO …tesis.ipn.mx/jspui/bitstream/123456789/7528/1/ice261.pdf · Automatización: Sistema de fabricación diseñado con el fin de usar

Procesamiento digital de señales en edificios inteligentes

Luis Felipe Gambino Mejía  Página 62 

Bibliografía

Domotica e inmotica. Viviendas y Edificios Inteligentes. 2ª Edición, Romero Vazquez, F. Castro.

Introducción a la teoría y sistemas de comunicación, B. P. Lathi, Editorial: Limusa, 2001

Adquisición y distribución de señales, Pallas, Ramón, Marcombo, S.A. 1ª Edición 1993.

http://www.tijbc.com/pds/libros/pds-presentacion.htm

http://musica.unq.edu.ar/personales/ebonnier/cam2/matlab/tutorial2993.html?page=funcondas2

http://www.wikilearning.com/curso_gratis/domotica_automatizacion_de_viviendas-introduccion/3063-1

http://es.wikipedia.org/wiki/Red_neuronal_artificial

http://www.fisica.unav.es/~angel/matlab/matlab0.html

http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf