CAPÍTULO 6. Resultados y aportaciones
6.3 Recomendaciones
El sistema de control necesita tener una sintonización más fina para poder reducir el tiempo de ajuste al valor de referencia. Así como se debe se acortar el rango del sistema de control para poder aplicarlo en la parte lineal de operación de la lámpara mixta.
En el caso del transductor se opta por cambiar a una fotocelda .Para observar el comportamiento del sistema ya que la fotocelda es un transductor más lineal.
Es adecuado observar el comportamiento si en vez de ocupar cinco funciones de membresía se ocupen más. Para así poder observar si el sistema de control es más eficiente.
En la aplicación de lámparas LED .Se debe de considerar qué su regulación se basa en la variación de corriente, por lo que se debe de hacer una modificación al sistema de control .Para que regule a base de la variación en corriente eléctrica.
Como se observo en la figura 6.2 del capítulo 6.El control actuó y apago en su totalidad las lámparas, pero no pudo llegar al nivel de iluminación de la referencia. Una de las alternativas por las que puede optar es la aplicación de persianas automáticas. Para controlar la iluminación exterior y así mantener siempre el nivel de iluminación en la referencia del sistema de control.
Referencias
[1] Carlos Jiménez. “Manual de luminotecnia”. Editorial Ceac. Barcelona 1998. [2]Adolf Senner.”Principios de electrotecnia”. Editorial Reverté. Barcelona 1994. [3] Jorge Chapa Carreón.”Manual de instalaciones de alumbrado y fotometría”. LImusa.2004.
[4]Manual de luminotecnia indal. “17456327 Lighting Handbook INDAL guide español”. 2002.
[5]Norman S. Nse. “Sistemas de control para ingeniería” .Tercera edición. Editorial Grupo editorial patria. México 2002.
[6] Alfred Roca Cusido. “Control de procesos”. Segunda edición. Editorial Alfa omega. México 2003.
[7]Steve Marsh,Yee Wei Huang ,Jim Sibigtroth.”Fuzzy Logic Program 2.0” .Motorola USA 1994.
[8] Freescale Semiconductor, Inc. “Reference Manual S12CPUV2”. 2006.
[9] Freescale Semiconductor, Inc. “MC9S12C Family, MC9S12GC Family Data Sheet”. 2006.
[10]Driakov Dimiter,Hellendoorn Hans,Reinfrank Michael “.An introduction to fuzzy control”.Springer-Verlag,Berlin Heidelberg. USA 1993.
[11] Escareño Gómez Manuel Antonio, Trujillo Soriano José Reyes. “Control de iluminación con lógica difusa para ahorro de energía con plc’s”. Tesis para obtener el grado de Ingeniero Electricista. México, Zacatecas.2009.
[12] Sinhue Lopez Vite. “Simulación de reguladores difusos de velocidad para motores de C.D con excitación separada.”. Tesis para obtener el grado de Ingeniero Electricista. México, D.F. 2008
[13] Jiménez Madrigal René. “Diseño de un controlador lógico difuso, aplicado al control de posición de un servomotor de CD, usando un algoritmo genético”. Tesis para obtener el grado de Maestro en Ciencias. México, Veracruz. 2007.
[14] Herrera Espinosa Javier. “Implementación en un DSP de un regulador de velocidad difuso tipo Takagi-Sugeno para un arreglo de motor de corriente directa- alternador”. Tesis para obtener el grado de Maestro en ciencias. México D.F.2003 [15]www.osram.com.ar/osram_ar/Productos_Profesional/Iluminacion_general/Lampa ras_de_descarga/hql_hwl.pdf [16] http://catalog.myosram.com [17] www.csiss.org/classics/content/68 [18]http://www.racom.com.mx/rac1/productos/descargas/1090A000001001_MT.pdf [19]http://es.testwall.com/products/product.6394.0.0.TektronixTDS1001B .html
APÉNDICE A. Curvas de la lámpara mixta
Se presentan algunas figuras como lo son la curva fotométrica, la distribución espectral, características de arranque, fotométricas y de servicio. Así como las curvas de depreciación de flujo y mortalidad
Figura A.1 Distribución espectral.
Figura A.2 Características fotométricas.
Figura A.4 Características en servicio.
Figura A.5. Curva de depreciación de flujo.
APÉNDICE B. Equipo de medición [19]
La obtención de las curvas se realizaron mediante el osciloscopio tektronik TDS1001b, sus características son las siguientes:
Figura B.1. Osciloscopio tektronik TDS1001b. Ancho de Banda de 40 MHz
Velocidad de Muestreo de hasta 2 GS/s en Tiempo Real 2 Canales
Pantalla LCD Monocromática
Almacenamiento removible por medio de un puerto USB en el panel frontal Conectividad transparente a la PC usando un puerto USB para dispositivos con el software incluido OpenChoice y NI SignalExpress PC Software
Disparos avanzados incluyendo disparo por ancho de pulsos y de video con selección de línea
Funcionalidad FFT estandard en todos los modelos 11 Mediciones Automáticas
Interface de Usuario Multi- Idioma con ayuda sensible al Contexto
Impresión directa a todas las impresoras compatibles con PictBridge vía Puerto USB para dispositivos
APÉNDICE C. Programa en código ensamblador de la tesis C.1 PROGRAMA
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD ZACATENCO
DEPARTAMENTO DE INGENIERIA ELECTRICA
IMPLEMENTACION DE UN CONTROL INTELIGENTE PARA LA REGULACION INTENSIDAD LUMINOSA EN UNA LAMPARA
PROGRAMA REALIZADO POR: -CIPRES SIGUENZA ROBERTO -LOZADA RUIZ HECTOR ALONSO -MEJIA BANDA CESAR ALEJANDRO ASESORES:
-M.en C.JAVIER HERRERA ESPINOZA -M.en C.MANUEL GARCIA LOPEZ
PROGRAMA EN PLATAFORMA Freescale CodeWarrior PARA HCS12 EN LENGUAJE ENSAMBLADOR (ASSEMBLY
;********************************************************************************************************* XDEF Entry ABSENTRY Entry INCLUDE 'MC9S12GC32.inc' ROMStart EQU $4000 ;***************************************************************** ;***** SECCIÓN DE VARIABLES/DATOS ***** ;***************************************************************** ifdef _HCS12_SERIALMON
ORG $3FFF - (RAMEnd - RAMStart) else
ORG RAMStart endif
;***************************************************************** REF EQU $3800;LOCALIDAD DE REFERENCIA TEMPORAL EQU $3801
ERR_ANT EQU $3802; VARIABLE DEL VALOR DEL ERROR ANTERIOR ERR_ACT EQU $3803; VARIABLE DEL VALOR DEL ERROR ACTUAL NUMINP EQU $02 ;NUMERO 2
NUMOUT EQU $01 ;NUMERO 1 DATOS EQU $3EFF
MAX EQU $3804;RESTRICCION DEL LIMITE DE VALORES ORG $3805
FOT RMB NUMOUT; VARIABLE DEL VALOR DE ENTRADA ERR RMB NUMOUT;ACONDICIONADOR DE LA SEÑAL DE ERROR
VARERR RMB NUMOUT; ACONDICIONADOR DE LA VARIACION DEL ERROR COG_OUT RMB NUMOUT; RESULTADO FINAL
;*****************************************************************
;* RESERVACIÓN DE MEMORIA PARA LAS FUNCIONES DE ENTRADA Y SALIDA * ;*****************************************************************
FUZ_INS RMB 5*NUMINP; SELECCIONA 10 LOCALIDADES DE MEMORIA FUZ_OUT RMB 5*NUMOUT; 5 LOCALIDADES DE MEMORIA
;***************************************************************** ;***** BASE DE CONOCIMIENTO ***** ;***************************************************************** ;FP: FUNCION DE PERTENENCIA ;FS: FUNCION DE SALIDA INPUT_MFS: ;ERROR FCB $00,$43,$00,$04 ;FP PARA NG 00 FCB $03,$7C,$04,$05 ;FP PARA NP 01 FCB $49,$C2,$05,$04 ;FP PARA CE 02 FCB $82,$FB,$04,$05 ;FP PARA PP 03 FCB $C7,$FF,$05,$00 ;FP PARA PG 04 ;VAR ERROR FCB $00,$43,$00,$04 ;FP PARA NG 05 FCB $03,$7C,$04,$05 ;FP PARA NP 06 FCB $49,$C2,$05,$04 ;FP PARA CE 07 FCB $82,$FB,$04,$05 ;FP PARA PP 08 FCB $C7,$FF,$05,$00 ;FP PARA PG 09 SGLTN_POS: FCB $00;FS PARA NG 0A
FCB $46;FS PARA NP 0B FCB $7F;FS PARA CE 0C FCB $C0;FS PARA PP 0D FCB $FF;FS PARA PG 0E ;***************************************************************** ;***** REGLAS ***** ;***************************************************************** RULE_START: ;ERR,VARERR,SEP,CONS,FE FCB $00,$05,$FE,$0A,$FE ;(REGLA 01) FCB $00,$06,$FE,$0A,$FE ;(REGLA 02) FCB $00,$07,$FE,$0A,$FE ;(REGLA 03) FCB $00,$08,$FE,$0A,$FE ;(REGLA 04) FCB $00,$09,$FE,$0A,$FE ;(REGLA 05) FCB $01,$05,$FE,$0A,$FE ;(REGLA 06) FCB $01,$06,$FE,$0A,$FE ;(REGLA 07) FCB $01,$07,$FE,$0A,$FE ;(REGLA 08) FCB $01,$08,$FE,$0B,$FE ;(REGLA 09) FCB $01,$09,$FE,$0B,$FE ;(REGLA 10) FCB $02,$05,$FE,$0B,$FE ;(REGLA 11) FCB $02,$06,$FE,$0C,$FE ;(REGLA 12) FCB $02,$07,$FE,$0C,$FE ;(REGLA 13) FCB $02,$08,$FE,$0C,$FE ;(REGLA 14) FCB $02,$09,$FE,$0D,$FE ;(REGLA 15) FCB $03,$05,$FE,$0D,$FE ;(REGLA 16) FCB $03,$06,$FE,$0D,$FE ;(REGLA 17) FCB $03,$07,$FE,$0E,$FE ;(REGLA 18) FCB $03,$08,$FE,$0E,$FE ;(REGLA 19) FCB $03,$09,$FE,$0E,$FE ;(REGLA 20) FCB $04,$05,$FE,$0E,$FE ;(REGLA 21) FCB $04,$06,$FE,$0E,$FE ;(REGLA 22) FCB $04,$07,$FE,$0E,$FE ;(REGLA 23) FCB $04,$08,$FE,$0E,$FE ;(REGLA 24) FCB $04,$09,$FE,$0E ;(REGLA 25) END_OF_RULE: FCB $FF;fin de reglas
; code section
ORG ROMStart Entry:
; remap the RAM & EEPROM here. See EB386.pdf ifdef _HCS12_SERIALMON
; set registers at $0000
CLR $11 ; INITRG= $0 ; set ram to end at $3FFF LDAB #$39
STAB $10 ; INITRM= $39 ; set eeprom to end at $0FFF LDAA #$9
STAA $12 ; INITEE= $9
LDS #$3FFF+1;initialize the stack pointer else
LDS #RAMEnd+1; initialize the stack pointer endif
CLI ; enable interrupts
;***************************************************************** ;***** INICIO DEL PROGRAMA PRINCIPAL ***** ;***************************************************************** main:
LDAA #$00 ;CARGAR EL ACUMULUDOR "A" CON CEROS STAA FOT ;SE INICIALIZAN LAS VARIABLES CON EL VALOR DEL STAA REF ;ACUMULADOR "A" $00
STAA ERR STAA VARERR LDAA #$7F STAA ERR_ANT
LDAA #$FE ;CARGO CON EL VALOR FE EL ACUMULADOR A STAA MAX ;INICIA MAX CON EL VALOR DEL ACUMULADOR "A" JSR CONFPWM ;SALTA A SUBRUTINA DE CONFIGURACION DEL PWM JSR CONFADC ;SALTA A SUBRUTINA DE CONFIGURACION DEL ADC
LOOP: LDAB #$20;ATDDR0H ;LOCALIDAD DE MEMORIA PARA ALMACENAR EL VALOR STAB FOT ;DE LA POSICION ACTUAL
CALL LIM ;LLAMA FUNCION LIM PARA CONDICIONAMIENTO ;DEL VALOR DE ENTRADA
LDY #DATOS ;CARGA A Y EL VALOR DE DATOS
;*****************************************************************
;***** ACONDICIONAMIENTO DE LAS SEÑALES DE ERROR ***** ;*****************************************************************
BEQ IN_ERROR;SIY ES IGUAL A DATOS SALTA A FUNCION IN_ERROR STAB 0, Y ;LIMPIA Y
INY
STY TEMPORAL; CARGA TEMPORAL A Y
LDAB FOT ; CARGA EL VALOR DE ENTRADA a B FOT=>B IN_ERROR:
LDAA REF ; CARGA EL VALOR DE REFERENCIA a A REF=>A SBA ;RESTA B a A A-B=>A
BMI CONTRA ;SI EL RESULTADO ES NEGATIVO SALTA A CONTRA ADDA #$7F ;SUMA 7F a A 7F + A=>A
STAA ERR_ACT;EL ACUMULADOR A SE GUARDA COMO ERROR ACTUAL STAA ERR ;EL ACUMULADOR A SE GUARDA COMO ERROR
BRA VARE ;BRINCA A VARE
CONTRA: STAA ERR_ACT;EL ACUMULADOR A SE GUARDA COMO ERROR ACTUAL NEGA ;REALIZA UN COMPLEMENTO AL ACUMULADOR A A*=>A
TAB ;TRANSFIERE EL VALOR DE A a B A=>B LDAA #$7F ;CARGA EL ACUMULADOR A CON 7F SBA ;RESTA B a A A-B=>A
STAA ERR ;EL ACUMULADOR A SE GUARDA COMO ERROR ;*****************************************************************
;***** VARIACION DEL ERROR ***** ;*****************************************************************
VARE: LDAA ERR_ACT ;CARGA EL VALOR DEL ERROR ACTUAL EN A SUBA ERR_ANT ;RESTA EL ERROR ANTERIOR a A A-ERR_ANT=>A BMI CONTRA2 ;SI EL RESULTADO ES NEGATIVO SALTA A CONTRA2 ADDA #$7F ;SUMA 7F a A 7F + A=>A
STAA VARERR ;CARGA "A" A LA VARIABLE VARERR BRA ACTUAL ;SALTA SIEMPRE A ACTUAL
CONTRA2:
NEGA ;REALIZA UN COMPLEMENTO AL ACUMULADOR A A*=>A TAB ;TRANSFIERE EL VALOR DE A a B A=>B
LDAA #$7F ;CARGA EL ACUMULADOR A CON 7F SBA ;RESTA B a A A-B=>A
STAA VARERR ;CARGA "A" A LA VARIABLE VARERR
ACTUAL: MOVW ERR_ACT,ERR_ANT;MUEVE ERR_ACT =>ERR_ANT CLR ERR_ACT ;LIMPIA VARIABLE ERR_ACT
CALL CLD ;LLAMA A CLD
BRA LOOP ;BRINCA A CICLO INFINITO ;***************************************************************** ; CLD (CONTROLADOR LÓGICO DIFUSO)
;***************************************************************** CLD:
FUZZIFY:
LDX #INPUT_MFS;APUNTA A LAS DEFINICIONES DE FPS LDY #FUZ_INS;APUNTA A LAS ENTRADAS
LDAA ERR;CARGA LA PRIMERA ENTRADA DEL SISTEMA LDAB #5;CARGA EL NUMERO DE ETIQUETAS
GRAD_LOOP: MEM;EVALUA LA FP
DBNE B, GRAD_LOOP;FORMA UN LAZO PARA FUZZIFICAR LAS 5 ETIQUETAS LDAA VARERR;TRAE LA SEGUNDA ENTRADA DEL SISTEMA
LDAB #5;CARGA EL NUMERO DE ETIQUETAS GRAD_LOOP1: MEM;EVALUA LA FP
DBNE B, GRAD_LOOP1;FORMA UN LAZO PARA FUZZIFICAR LAS 5 ETIQUETAS LDAB #5;5 SALIDAS DIFUSAS
RULE_EVAL:
CLR 1,Y+;LIMPIA SALIDAS E INCREMENTA EL APUNTADOR
DBNE B, RULE_EVAL;FORMA UN LAZO PARA LIMPIAR LAS SALIDAS DIFUSAS
;ANTESDE COMENZARLA EVALUCION DE REGLAS LDX #RULE_START; APUNTA A LA PRIMERA REGLA
LDY #FUZ_INS;APUNTA A ENTRADAS Y SALIDAS DIFUSAS LDAA #$FF;INICIA A Y LIMPIA BIT V
REV;PROCESA LISTA DE REGLAS DEFUZ:
LDY #FUZ_OUT;APUNTA A SALIDAS DIFUSAS LDX #SGLTN_POS;APUNTA A FPS TIPO BARRA LDAB #5;5 SALIDAS DIFUSAS POR SALIDA REAL WAV;SUMATORIA PARA PROMEDIO PONDERADO EDIV;DIVIDE POR SUMA PONDERADA
TFR Y, D;;MUEVE RESULTADO A D
STAB COG_OUT;ALMACENA SALIDA DEL SISTEMA
STAB PWMDTY0;CARGA SALIDA AL PERIODO UTIL DEL PWM JSR DELAY;BRINCA A SUBRUTINA DELAY(RETRASO DE TIEMPO) RTC ;RETORNO DE LLAMADA
;*****************************************************************
;***** RETARDO NECESARIO EN LA CONVERSION ANALÓGICA/DIGITAL ***** ;*****************************************************************
RETAR:
LDAA #200 ; 200 LAZOS PARA TARDA:
NOP ; 800 CICLOS DE RELOJ DBNE A, TARDA
RTC
;***************************************************************** ;***** PULSE WIDTH MODULATOR ***** ;***************************************************************** CONFPWM:
LDAA #$FF
STAA MODRR;RELACIONADO CON PWM
MOVB #%00000001,PWME;INICIALIZA CANAL 0 DE PWM;PWM0 MOVB #$FF,PWMPER0;CARGA VALOR DEL PERIODO
MOVB #$80,PWMDTY0;INICIA MOVB #$01,PWMCLK
MOVB #%00000001,PWMPOL;ACTIVA LA POLARIDAD DEL CICLO ;ALTO:1
;BAJO:0
LDAA #$FF ;CARGA EL ACUMULADOR "A" EL VALOR FF STAA PWMDTY0 ;ASIGNA "A" AL PERIODO UTIL DEL PWM RTS ;RETORNO DE SUBRUTINA
;***************************************************************** ;***** CONVERTIDOR ANALOGICO DIGITAL ***** ;***************************************************************** CONFADC: LDAA #$00
STAA DDRT LDAA #$80
STAA ATDCTL2;ENCENDIDO DEL CONVERT SIN INTERRUPCIONES CALL RETAR
LDAA #$08
STAA ATDCTL3;HACE 1 CONVERSION LDAA #$80
STAA ATDCTL4;MODO A 8 BITS, 12 CICLOS POR CONVERSION LDAA #$30
STAA ATDCTL5; LDAB #$7F
STAB REF ;LOCALIDAD DE MEMORIA PARA ALMACENAR EL VALOR ;DE LA POSICION DE REFERENCIA
;O SETPOINTDE LA REFERENCIA RTS ;RETORNO DE SUBRUTINA
;***************************************************************** ;***** DELAY ***** ;***************************************************************** DELAY: LDX #$FFFF ;CARGA A X EL VALOR FFFF LPP: DEX ;DECREMENTA EN 1 EL VALOR DE X BNE LPP ;BRINCA A LPP SI NO ES CERO RTS ;RETORNO DE SUBRUTINA
;***************************************************************** ;***** LIMTANTE DE CTRL ***** ;***************************************************************** LIM: LDAA FOT ;METE a "A" EL VALOR DE ENTRADA FOT CMPA MAX ;COMPARA "A" CON EL VALOR DE MAX BHI MAN ;SI ES MAYOR QUE MAX BRINCA A MAN RTC ;RETORNO DE LLAMADA
MAN: LDAA #$FE ;CARGA ACUMULADOR "A" CON EL VALOR DE FE STAA FOT ;GUARDA ACUMULADOR "A" EN FOT
STAA MAX ;GUARDA ACUMULADOR "A" EN MAX RTC ;RETORNO DE LLAMADA ;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFFE