Вы находитесь на странице: 1из 200

UNIVERSIDAD CATÓLICA DE CÓRDOBA

FACULTAD DE INGENIERÍA

DOCTORADO EN INGENIERÍA
ELECTRÓNICA

Doctoranda: Mónica Andrea Lovay

TESIS DOCTORAL
“APORTES NOVEDOSOS A LA TOLERANCIA A FALLAS
DE SISTEMAS EMBEBIDOS UTILIZANDO
METODOLOGÍAS DE HARDWARE EVOLUTIVO”
AUTOR: Mónica Andrea Lovay

Presentado ante la UNIVERSIDAD CATÓLICA DE CÓRDOBA como


parte de los requerimientos para la obtención del grado de Doctor en
Ingeniería Electrónica.
Córdoba, R.A., Diciembre de 2013

Director de tesis: Dr. Eduardo Romero

--------------------------------

Codirectora de tesis: Dra. Gabriela Peretti

---------------------------------

Doctoranda: Mónica Andrea Lovay

----------------------------------

Miembros del Tribunal de Tesis:

Dr. Esteban Anoardo

-----------------------------------

Dr. Pablo Ferreyra

-----------------------------------

Dr. Leonardo Giovanini

-----------------------------------
A mis hijos:

Patricio, Mariano, Mateo y Juliana


Índice

ÍNDICE........................................................................................................................................7

ÍNDICE DE FIGURAS ......................................................................................................... 12

ÍNDICE DE TABLAS ........................................................................................................... 16

AGRADECIMIENTOS ......................................................................................................... 19

RESUMEN ............................................................................................................................... 21

ÍNDICE DE SIGLAS ............................................................................................................. 23

1. HARDWARE EVOLUTIVO ........................................................................................ 25

1.1. Conceptos generales ................................................................................................ 25

1.2. EHW orientado al diseño o diseño evolutivo ...................................................... 27

1.3. Hardware Adaptivo .................................................................................................. 28

1.4. Tolerancia a fallas adaptiva ..................................................................................... 30

1.5. Evaluación extrínseca e intrínseca ......................................................................... 31

1.6. Hardware reconfigurable ......................................................................................... 33

1.7. Algoritmos evolutivos.............................................................................................. 39

1.7.1. Características generales ............................................................................. 40

1.7.2. Algoritmos Genéticos ................................................................................ 40

1.7.3. Programación Genética (GP) .................................................................... 44

1.7.4. Estrategias Evolutivas (ES) ....................................................................... 44

1.7.5. Programación Evolutiva (EP) ................................................................... 44

1.8. Referencias ................................................................................................................ 45

2. REVISIÓN DE TRABAJOS PREVIOS SOBRE HARDWARE EVOLUTIVO .............47

2.1. EHW orientado al diseño de circuitos .................................................................. 47

2.2. Hardware adaptivo respecto a cambios en el ambiente externo ....................... 48

7
2.3. Tolerancia a fallas Adaptiva ..................................................................................... 49

2.3.1. Circuitos digitales ......................................................................................... 50

2.3.2. Circuitos analógicos..................................................................................... 51

2.4. Contribuciones .......................................................................................................... 57

2.5. Referencias ................................................................................................................. 59

3. FILTRO ADAPTIVO ..................................................................................................... 65

3.1. Introducción .............................................................................................................. 65

3.2. Filtro adaptivo ........................................................................................................... 67

3.3. Test del filtro ............................................................................................................. 70

3.3.1. Consideraciones generales sobre TRAM ................................................. 70

3.3.2. Implementación de TRAM ........................................................................ 72

3.4. Algoritmo genético ................................................................................................... 73

3.4.1. Implementación ........................................................................................... 74

3.4.2. Parámetros del GA ...................................................................................... 85

3.5. Consideraciones prácticas de TRAM ..................................................................... 86

3.5.1. Determinación del tiempo de medición de la respuesta transitoria ..... 86

3.5.2. Estimación de los errores en la determinación de la función de


transferencia ................................................................................................. 88

3.6. Validación del esquema de adaptación .................................................................. 92

3.7. Resultados de simulación ......................................................................................... 93

3.7.1. Operación libre de fallas ............................................................................. 93

3.7.2. Operación bajo condición de falla ..........................................................104

3.7.2.1. Modelo de Falla 1 .........................................................................104

3.7.2.2. Modelo de Falla 2 .........................................................................107

8
3.7.2.3. Modelo de Falla 3 ........................................................................ 109

3.7.2.4. Modelo de Falla 4 ........................................................................ 111

3.8. Conclusiones ........................................................................................................... 114

3.9. Referencias .............................................................................................................. 115

4. AMPLIFICADOR ADAPTIVO ................................................................................. 119

4.1. Introducción............................................................................................................ 119

4.2. Descripción del Sistema ........................................................................................ 120

4.2.1. El amplificador de ganancia programable (PGA) ................................ 120

4.2.2. El amplificador adaptivo.......................................................................... 123

4.3. Test de las resistencias de los PGAs .................................................................... 124

4.4. Algoritmo Genético ............................................................................................... 126

4.4.1. Implementación ........................................................................................ 127

4.4.2. Parámetros del GA ................................................................................... 133

4.5. Modelos de falla e inyección de fallas ................................................................. 133

4.6. Resultados experimentales .................................................................................... 135

4.6.1. Resultados del test .................................................................................... 135

4.6.2. Operación libre de fallas .......................................................................... 136

4.6.3. Operación bajo condición de falla.......................................................... 143

4.6.3.1. Modelo de Falla 1 ........................................................................ 143

4.6.3.2. Modelo de Falla 2 ........................................................................ 145

4.6.3.3. Modelo de Falla 3 ........................................................................ 148

4.6.3.4. Modelo de Falla 4 ........................................................................ 151

4.7. Comparación con el método de búsqueda exhaustiva ...................................... 153

4.8. Conclusiones ........................................................................................................... 154

9
4.9. Referencias ...............................................................................................................155

5. CONCLUSIONES Y TRABAJOS FUTUROS ..........................................................159

5.1. Conclusiones ............................................................................................................159

5.2. Trabajos futuros ......................................................................................................162

APÉNDICE 1. Algoritmos Genéticos: aspectos de implementación ............................165

A1.1. Representación .....................................................................................................165

A1.2. Población ..............................................................................................................166

A1.3. Decodificación del cromosoma y evaluación ..................................................168

A1.4. Estrategias de selección ......................................................................................168

A1.5. Estrategias de reproducción ................................................................................170

A1.5.1. Operadores de cruce .................................................................................170

A1.5.2. Operadores de mutación ..........................................................................172

A1.6. Referencias.............................................................................................................173

APÉNDICE 2. Optimización Multiobjetivo: conceptos básicos ....................................175

A2.1. Problema de optimización multiobjetivo ...............................................175

A2.2. Referencias..................................................................................................177

APÉNDICE 3. Código Matlab para algunas operaciones del GA ..................................179

A3.1. Caso de estudio del filtro adaptivo .....................................................................179

A3.1.1. Generación de la población inicial ..........................................................179

A3.1.2. Selección .....................................................................................................179

A3.1.3. Cruce ...........................................................................................................181

A3.1.4. Mutación .....................................................................................................181

A3.1.5. Función Sharing.........................................................................................183

A3.2. Caso de estudio del Amplificador Adaptivo .....................................................185

A3.2.1. Selección .....................................................................................................185

10
A3.2.2. Cruce........................................................................................................... 185

A3.2.3. Mutación .................................................................................................... 186

APÉNDICE 4. Amplificador adaptivo: Resultados restantes bajo condiciones de


falla… ....................................................................................................................................... 189

A4.1. Modelo de Falla 1................................................................................................. 189

A4.2. Modelo de Falla 2................................................................................................. 192

A4.3. Modelo de Falla 3................................................................................................. 195

A4.4. Modelo de Falla 4................................................................................................. 198

11
Índice de Figuras

Figura 1-1. EH: combinación de RHW y EA. ...................................................................... 26

Figura 1-2. Diagrama conceptual de EHW (se esquematiza la aplicación sobre un único
circuito inicial). .......................................................................................................................... 27

Figura 1-3. Tolerancia a Fallas Adaptiva. ............................................................................... 30

Figura 1-4. Evaluación extrínseca de circuitos. ....................................................................... 32

Figura 1-5. Evaluación intrínseca de circuitos. ........................................................................ 32

Figura 1-6. Arquitectura interna de un FPGA genérico. ..................................................... 34

Figura 1-7. Diagrama de bloques de un dispositivo ispPAC-10. ....................................... 35

Figura 1-8. Arquitectura del dispositivo AN121E04 de Anadigm..................................... 36

Figura 1-9. Diagrama de bloques de un dispositivo PSoC. ................................................. 37

Figura 1-10. Celda de un FPTA. ............................................................................................. 38

Figura 1-11. Arquitectura de un FPTA-2. ............................................................................. 39

Figura 1-12. Diagrama de flujo de un GA clásico. ............................................................... 42

Figura 3-1. Ejemplo de aplicación del filtro adaptivo. ......................................................... 66

Figura 3-2. Implementación de una sección bicuadrática en el dispositivo ispPAC10. .. 67

Figura 3-3. Filtro de octavo orden (filtro nominal). ............................................................. 69

Figura 3-4. Respuesta en frecuencia del filtro nominal. ...................................................... 70

Figura 3-5. Respuesta al escalón de un filtro de segundo orden, mostrando los


parámetros Tp, Vp, OS, Vs y Ts............................................................................................. 71

Figura 3-6. Configuración utilizada para aplicar TRAM a una etapa bicuadrática. ......... 72

Figura 3-7. Diagrama de flujo de un GA clásico. ................................................................. 74

Figura 3-8. Estructura del cromosoma utilizado por el GA. .............................................. 75

Figura 3-9. Ejemplo de un cromosoma generado por el GA. ............................................ 75

Figura 3-10. Proceso de evaluación de los individuos. ........................................................ 76

12
Figura 3-11. Interacción entre el AG y el filtro adaptivo para el cálculo del fitness de un
individuo (y). ............................................................................................................................. 77

Figura 3-12. Frecuencias consideradas en cada banda por el GA para realizar la


evaluación. ................................................................................................................................. 78

Figura 3-13. Errores máximos tolerables permitidos en cada banda. ............................... 80

Figura 3-14. Ejemplo del cálculo de d(j,y). ........................................................................... 82

Figura 3-15. Aplicación del operador de cruce en tres puntos. ......................................... 84

Figura 3-16. Histogramas correspondientes a la simulación Montecarlo. ....................... 88

Figura 3-17. Esquema de simulación de errores debido al ADC. ..................................... 89

Figura 3-18. ERM obtenido por el GA en la banda de paso, bajo operación libre de
fallas. ........................................................................................................................................... 94

Figura 3-19. ERM obtenido por el GA en el punto de corte, bajo operación libre de
fallas. ........................................................................................................................................... 94

Figura 3-20. ERM obtenido por el GA en la banda de transición, bajo operación libre
de fallas....................................................................................................................................... 95

Figura 3-21. ERM obtenido por el GA en la banda de atenuación, bajo operación libre
de fallas....................................................................................................................................... 95

Figura 3-22. Cantidad de generaciones empleadas en cada corrida del GA. ................... 96

Figura 3-23. Evolución del ERM en cada banda, para una corrida del GA. ................... 97

Figura 3-24. Evolución del fitness máximo de cada generación en una corrida del GA.
..................................................................................................................................................... 98

Figura 3-25. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados
que presentaron mayor error, en condiciones normales de funcionamiento. ................. 99

Figura 3-26. Histogramas correspondientes a los capacitores. ........................................ 101

Figura 3-27. Histogramas correspondientes a los amplificadores de entrada que adoptan


valores de ganancia positivos. ............................................................................................... 102

Figura 3-28. Histogramas correspondientes a los amplificadores de entrada que adoptan


valores de ganancia negativos. .............................................................................................. 104

Figura 3-29. ERM obtenido por el GA en cada banda, para el Modelo de Falla 1. ..... 105

13
Figura 3-30. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados
que presentaron mayor error, bajo el Modelo de Falla 1. .................................................106

Figura 3-31. ERM obtenido por el GA en cada banda, para el Modelo de Falla 2. ......107

Figura 3-32. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados
que presentaron mayor error, bajo el Modelo de Falla 2. .................................................108

Figura 3-33. ERM obtenido por el GA en cada banda, para el Modelo de Falla 3. ......110

Figura 3-34. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados
que presentaron mayor error, bajo el Modelo de Falla 3. .................................................111

Figura 3-35. ERM obtenido por el GA en cada banda, para el Modelo de Falla 4. ......112

Figura 3-36. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados
que presentaron mayor error, bajo el Modelo de Falla 4. .................................................113

Figura 4-1. (a) Diagrama del PGA. (b) Configuración de resistencias ............................121

Figura 4-2. Configuración del bloque CT para testear la matriz de resistencias (diagrama
simplificado). ............................................................................................................................122

Figura 4-3. Diagrama del sistema amplificador. .................................................................124

Figura 4-4. Configuración del hardware de test. .................................................................125

Figura 4-5. Diagrama de flujo del GA desarrollado. ..........................................................127

Figura 4-6. Estructura del cromosoma utilizado por el GA. ............................................128

Figura 4-7. Ejemplo de inyección de falla stuck-on. ..........................................................135

Figura 4-8. Error relativo en la ganancia vs. ancho de banda, bajo operación libre de
fallas...........................................................................................................................................137

Figura 4-9. Cantidad de generaciones empleadas en cada corrida del GA. ....................139

Figura 4-10. Histogramas correspondientes a cada PGA, para la ganancia objetivo 15.
...................................................................................................................................................140

Figura 4-11. Histogramas correspondientes a cada PGA, para la ganancia objetivo 8. ......
...................................................................................................................................................141

Figura 4-12. Histogramas correspondientes a cada PGA, para la ganancia objetivo 2. ......
...................................................................................................................................................142

Figura 4-13. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 1.
...................................................................................................................................................144

14
Figura 4-14. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 2.
................................................................................................................................................... 146

Figura 4-15. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 3.
................................................................................................................................................... 149

Figura 4-16. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 4.
................................................................................................................................................... 151

15
Índice de Tablas

Tabla 3-1. Caracterización de Ts y Tp mediante Montecarlo. ............................................ 87

Tabla 3-2. Caracterización de los valores estimados mediante medición ......................... 91

Tabla 3-3. Errores cometidos en la determinación de los parámetros funcionales de los


filtros. .......................................................................................................................................... 91

Tabla 3-4. Caracterización de los errores relativos en condiciones normales. ................. 96

Tabla 3-5. Cantidad de generaciones empleadas por el GA en condiciones normales... 97

Tabla 3-6. Caracterización de los errores relativos considerando el Modelo de Falla 1. ....
...................................................................................................................................................105

Tabla 3-7. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 1.


...................................................................................................................................................106

Tabla 3-8. Caracterización de los errores relativos considerando el Modelo de Falla 2.


...................................................................................................................................................108

Tabla 3-9. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 2.


...................................................................................................................................................108

Tabla 3-10. Caracterización de los errores relativos considerando el Modelo de Falla 3.


...................................................................................................................................................110

Tabla 3-11. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 3.


...................................................................................................................................................110

Tabla 3-12. Caracterización de los errores relativos considerando el Modelo de Falla 4.


...................................................................................................................................................112

Tabla 3-13. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 4.


...................................................................................................................................................113

Tabla 4-1. Condiciones de test y valores esperados de Vref en la matriz de resistencias.


...................................................................................................................................................126

Tabla 4-2. Resultados del test en la matriz de resistencias. ...............................................135

Tabla 4-3. Caracterización del error relativo en la ganancia bajo condición libre de fallas.
...................................................................................................................................................138

Tabla 4-4. Caracterización del BW bajo condición libre de fallas. ...................................138

16
Tabla 4-5. Caracterización de la cantidad de generaciones empleadas por el GA. ....... 139

Tabla 4-6. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 1.
................................................................................................................................................... 144

Tabla 4-7. Caracterización del BW bajo el Modelo de Falla 1. ........................................ 145

Tabla 4-8. Caracterización de la cantidad de generaciones empleadas por el GA bajo el


Modelo de Falla 1. .................................................................................................................. 145

Tabla 4-9. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 2.
................................................................................................................................................... 147

Tabla 4-10. Caracterización del BW bajo el Modelo de Falla 2. ...................................... 147

Tabla 4-11. Caracterización de la cantidad de generaciones empleadas por el GA bajo el


Modelo de Falla 2. .................................................................................................................. 148

Tabla 4-12. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 3.
................................................................................................................................................... 149

Tabla 4-13. Caracterización del BW bajo el Modelo de Falla 3. ...................................... 150

Tabla 4-14. Caracterización de la cantidad de generaciones empleadas por el GA bajo el


Modelo de Falla 3. .................................................................................................................. 150

Tabla 4-15. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 4.
................................................................................................................................................... 152

Tabla 4-16. Caracterización del BW bajo el Modelo de Falla 4. ...................................... 152

Tabla 4-17. Caracterización de la cantidad de generaciones empleadas por el GA bajo el


Modelo de Falla 4. .................................................................................................................. 153

Tabla 4-18. Comparación de desempeño entre ESM y GA............................................. 154

17
18
Agradecimientos

Llegar al final de este largo camino no hubiera sido posible sin la ayuda y el
apoyo de muchas personas y algunas instituciones.

En estos momentos, me resulta difícil encontrar palabras suficientes para


expresar mi agradecimiento hacia ellos, ya que son muchas las ocasiones en las que los
he necesitado y han estado allí conmigo. Hoy, a esas personas, quiero humildemente
decirles gracias, agradeciéndole también a Dios por haberlos elegido para transitar junto
a mí este camino.

En primer lugar, mi más profundo y sincero agradecimiento a mi Director, el


Dr. Eduardo Romero y a mi Codirectora, la Dra. Gabriela Peretti. Cuantas lecciones
aprendidas de ellos. Durante estos ya casi cinco años, han estado siempre a mi lado. En
el aspecto académico, su dedicación ha sido completa, nada más puedo pedirles, porque
me lo han brindado todo. Transitaron el camino conmigo, siempre tratando de
allanarlo, de quitar toda aquella piedra que pudiera impedirme avanzar. Valoro
profundamente todo el trabajo que han realizado durante estos años, no solo
académicamente, sino humanamente también. Han sabido siempre comprenderme,
ponerse en mi lugar, darme ánimo, escucharme, o simplemente acompañarme en el
silencio, porque no siempre hace falta hablar para demostrarle a alguien que se está allí,
listo para cuando lo necesiten. Gracias, muchas gracias a los dos.

Deseo también expresar mi agradecimiento a la Universidad Tecnológica


Nacional y a la Agencia Nacional de Promoción Científica y Tecnológica, por haberme
otorgado la Beca para Docentes para realizar el doctorado.

También deseo agradecer a mi institución, la Facultad Regional Villa María, en


la persona del decano Ing. Pablo Rosso, y al Secretario de Ciencia y Técnica, Ing.
Marcelo Cejas, por haber confiado en mí y por haber apoyado firmemente este trabajo
durante estos cinco años.

19
Agradecimientos

Para finalizar, mi agradecimiento especial a las personas que están más cerca de
mí, a mi familia. Saber en todo momento que podía contar con ellos, ha sido muy
importante para mí.

Deseo agradecer a mis padres, Josefa y Héctor, que siempre han estado
conmigo en todo. Gracias por comprenderme, por apoyarme incondicionalmente, por
confiar en mí, por tratar siempre de facilitarme las cosas. Mi agradecimiento hacia
ustedes, saben que es eterno. Ojalá este logro, que también es de ustedes, contribuya a
retribuirles aunque sea una porcioncita de todo lo que me han dado en estos 37 años.

Mi agradecimiento a mi esposo, Carlitos, mi compañero en tantas luchas de la


vida, con el que aprendí a compartir los buenos y los malos momentos. Siempre has
estado a mi lado, confiando en mí, entendiéndome y tratando de contagiarme tu
constante energía positiva. Sé que has resignado tus proyectos para ayudarme a
concretar este trabajo. En este último tiempo, silenciosamente has ido cubriendo mis
ausencias, dándome la seguridad de que nuestros hijos, nuestro más preciado tesoro,
están en buenas manos. Por todo esto, mi agradecimiento hacia vos es inmenso.

Finalmente, mi agradecimiento más especial, que nace de lo más profundo de


mi corazón es para mis hijos, Patricio, Mariano, Mateo y Juliana. Esta Tesis está
dedicada a ustedes. Estoy segura de que en estos momentos se preguntarán por qué su
mamá está haciendo todo esto, y cuándo por fin terminará. Sé que el esfuerzo para
transitar este camino, también ha significado un esfuerzo por parte de ustedes. Créanme
que siempre traté de minimizarlo. Con el tiempo, ojalá que lleguen a comprenderme, y
permitan que en sus vidas también habite este deseo de demostrar que siempre es
posible superarse y que los esfuerzos al final tienen recompensa. Sepan que se pueden
alcanzar siempre las metas propuestas, y que los logros obtenidos no son siempre
mérito de una sola persona, sino también de las personas que están en su entorno,
confiando en sus acciones y apoyando sus decisiones.

20
Resumen

En esta Tesis se presentan los resultados de una investigación orientada a proveer de


características de adaptación autónoma a un amplificador de ganancia programable y a
un filtro de orden elevado. Se emplean para ello estrategias de hardware evolutivo
(EHW, Evolvable Hardware). Se estudian los mecanismos de detección de fallas, la
reconfiguración del circuito ante la presencia de las mismas, y la viabilidad de su
implementación para cada caso particular direccionado.

Con referencia al filtro adaptivo, se destaca que es la primera vez que se aplica una
estrategia de EHW a un filtro de orden elevado. Se utiliza para la detección de fallas el
método de análisis transitorio (TRAM, Transient Analysis Method). Se propone en esta
Tesis la utilización de TRAM de una manera diferente a la convencional, permitiendo la
reconstrucción de la función de transferencia del filtro.

De acuerdo a los experimentos realizados TRAM resulta ser confiable para la


determinación de la función de transferencia del filtro, si se realizan ciertas
restricciones. Éstas han sido explicitadas, practicadas y evaluadas en esta Tesis.

El esquema de EHW efectúa la reconfiguración del filtro mediante la utilización de un


algoritmo genético (GA, Genetic Algorithm). El mismo debe encontrar los valores de
los parámetros configurables que permitan cumplir con las especificaciones. Se propone
nuevamente la utilización de TRAM para permitir al GA la evaluación intrínseca de los
individuos creados en cada generación. Esto aporta importantes ventajas, como la
posibilidad de evaluar la respuesta real del dispositivo y poder considerar en el proceso
evolutivo a componentes con degradaciones.

Se presenta la evaluación de la capacidad del GA propuesto para encontrar soluciones


bajo condiciones de falla, destacando que el espacio de búsqueda total con el que el
mismo debe trabajar es considerablemente grande. El algoritmo presentado posee
varias características particulares, entre las cuales pueden mencionarse la aplicación de
dos estrategias de cruce y probabilidades de mutación de manera adaptiva (de acuerdo a
las características actuales de la población), la utilización de codificación entera y el uso
de dos métodos de optimización a priori para efectuar la asignación del valor de aptitud
a los individuos, entre otros aspectos. El desempeño del GA es evaluado utilizando
cuatro modelos de fallas, siendo los resultados satisfactorios y con errores por debajo
de lo tolerado en todos los casos, lo cual demuestra la viabilidad del esquema
propuesto.

21
Resumen

Con referencia al amplificador adaptivo, éste es implementado con amplificadores de


ganancia programable en un microcontrolador PSoC1, siendo la primera vez que se
utiliza este tipo de plataformas reconfigurables en el desarrollo de estrategias de EHW.

Se considera que el sistema posee una ganancia que debe ser mantenida a pesar de la
presencia de fallas, mientras que su ancho de banda debe ser mayor al requerido por la
aplicación. El esquema propuesto está compuesto por una estrategia de test basada en
software (SBST, Software-Based Self Test) que chequea durante los tiempos inactivos
todas las ganancias disponibles en el amplificador, y por un GA cuyo propósito es
reconfigurar los recursos del chip, cuando se detectan fallas.

Con referencia a la técnica SBST, esta es la primera aplicación de la misma como parte
de una estrategia de EHW. Este método de test presenta como característica atractiva la
posibilidad de ser aplicado sin restricciones, debido a que no es necesaria la
incorporación de hardware adicional específico para test y no se requiere la
participación de la computadora central.

Con respecto al GA desarrollado para este esquema de EHW, el mismo debe


evolucionar los valores de ganancia de cada uno de los cuatro PGA que conforman el
amplificador adaptivo. Se presentan varias diferencias con respecto al GA
correspondiente al caso de estudio del filtro adaptivo, debido a que el problema de
optimización es distinto. Los resultados de las simulaciones efectuadas muestran que el
sistema mantiene la ganancia objetivo y el ancho de banda dentro de las
especificaciones, a pesar de la presencia de fallas catastróficas y de desviación, lo cual
demuestra la robustez del GA desarrollado. Además, el algoritmo resulta ser
considerablemente más eficiente que el método de búsqueda exhaustiva.

22
Índice de siglas

BW: Bandwidth. Ancho de banda.

CAB: Configurable Analog Blocks. Bloques analógicos configurables.

CM: ɛ-Constraint Method. Método de restricciones-ɛ.

CT: Continuous Time. Tiempo continuo.

DSP: Digital Signal Processor. Procesador de señal digital.

EA: Evolutionary Algorithms. Algoritmos evolutivos.

EFO: Evaluaciones de la función objetivo.

EHW: Evolvable Hardware. Hardware Evolutivo.

EP: Evolutionary Programming. Programación Evolutiva.

ERM: Error relativo en magnitud.

ES: Evolution Strategies. Estrategias de Evolución.

ESM: Exhaustive Search Method. Método de búsqueda exhaustiva.

FPAA: Field Programmable Analogue Arrays. Arreglos analógicos programables en


campo.

FPACA: Field Programable Analog Cell Array. Arreglo de celdas analógicas


programables en campo.

FPGA: Field Programmable Gate Arrays. Arreglos de compuertas programables en


campo.

FPTA: Field Programmable Transistor Array. Arreglo de transistores programables en


campo.

GA: Genetic Algorithms. Algoritmos Genéticos.

23
Índice de siglas

GP: Genetic Programming. Programación Genética.

IA: Input Amplifier. Amplificador de entrada.

MOP: Multiobjective Optimization Problem. Problema de optimización multiobjetivo.

OA: Operational Amplifier. Amplificador operacional.

PGA: Programable Gain Amplifier. Amplificador de ganancia programable.

PID: Proportional, Integrative, Derivative. Proporcional, integrativo, derivativo.

PSoC: Programmable System on Chip. Sistema Programable en Chip.

PWM: Pulse Width Modulator. Modulación por ancho de pulso.

RHW: Reconfigurable Hardware. Hardware reconfigurable.

SA: Simulated Anealing. Recocido simulado.

SABLES: Stand-Alone Board-Level Evolvable System. Sistema evolutivo autónomo a


nivel de placa.

SBST: Software-Based Self Test. Autotest basado en software.

SC: Switched Capacitor. Capacidades conmutadas.

SRAA: Self-Reconfigurable Analog Array. Arreglo analógico auto-reconfigurable.

TRAM: Transient Analysis Method. Método de análisis transitorio.

VLSI: Very Large Scale Integration. Muy alta escala de integración.

WSM: Weighted Sum Method. Método de suma ponderada.

WSN: Wireless Sensor Network. Red inalámbrica de sensado.

24
1. Hardware Evolutivo

1.1. Conceptos generales


El término Hardware Evolutivo (EHW, Evolvable Hardware) se refiere al
hardware que puede cambiar su arquitectura y comportamiento de manera dinámica y
autónoma mediante la interacción con su entorno [1], [2], [3]. La habilidad de
adaptación es una característica que lo hace contrastar fuertemente con el hardware
tradicional, en el cual la estructura y las funciones permanecen fijas luego de ser
implementadas.

Este particular tipo de hardware está inspirado en los principios de la


Naturaleza. Los seres vivos poseen la capacidad de adaptarse a los cambios que se
suscitan en sus ambientes naturales. Esta propiedad de adaptación, la que consiste en
alteraciones más o menos significativas en sus organismos o en sus modos de vida es la
que les permite la subsistencia.

El EHW realiza una abstracción del concepto de adaptación presente en la


Naturaleza para aplicar su esencia en el hardware. Esto es posible gracias a la
combinación de dos elementos fundamentales: hardware reconfigurable (RHW,
Reconfigurable Hardware), el cual posibilita la adaptación mediante la reprogramación
de los circuitos implementados en el mismo, y algoritmos evolutivos (EA,
Evolutionary Algorithms) que dirigen la adaptación mediante un proceso evolutivo. La
Figura 1-1 ilustra este concepto.

En esta metodología, se establecen ciertos requerimientos de desempeño del


RHW y el EA busca las posibles configuraciones para lograr los objetivos propuestos.
La búsqueda que efectúa el EA para alcanzar la funcionalidad requerida se lleva a cabo
mediante un proceso evolutivo en el cual participan los parámetros funcionales del
circuito (y en algunos casos también el conexionado).

25
Hardware Evolutivo

Hardware Reconfigurable Algoritmos Evolutivos


(RHW) (EA)

Hardware Evolutivo
(EHW)

Adaptación

Figura 1-1. EH: combinación de RHW y EA.

La Figura 1-2 representa mediante un simple ejemplo el concepto de EHW. El


mismo es implementado en un dispositivo reconfigurable (por ejemplo un FPGA),
donde la arquitectura puede ser alterada mediante una cadena de bits, denominada bits
de arquitectura [4]. El EA utiliza los bits de arquitectura para representar las posibles
configuraciones de circuitos (los cuales son denominados individuos en la terminología
de los EA). A partir de la representación de un circuito inicial, el EA efectúa un proceso
evolutivo que permite obtener la configuración de un nuevo circuito (circuito
evolucionado). Este proceso evolutivo es aplicado a un conjunto inicial de circuitos.
Luego de varias iteraciones, es posible obtener un circuito final, denominado circuito
solución, el cual es programado en el RHW. Esto posibilita que el mismo opere de
acuerdo a los requerimientos establecidos.

De esta manera, la combinación de RHW y EA permite el surgimiento de


sistemas de hardware que, además de ser construidos automáticamente, presentan
propiedades adaptivas. Estas características proporcionan al EHW un gran potencial
para el desarrollo de aplicaciones potentes e innovadoras [5].

De acuerdo al propósito que persigue el EHW, puede hablarse de diferentes


vistas o dimensiones del mismo: EHW orientado al diseño (o diseño evolutivo) y
Hardware Adaptivo. A continuación, se exponen los aspectos más relevantes de
ambos enfoques.

26
Hardware Evolutivo

bits de configuración bits de configuración


Algoritmo Proceso
Evolutivo Evolutivo

representa representa

Evolución
Hardware
Reconfigurable

Circuito inicial Circuito evolucionado

Figura 1-2. Diagrama conceptual de EHW (se esquematiza la aplicación sobre un único circuito
inicial).

1.2. EHW orientado al diseño o diseño evolutivo


El EHW ha emergido como un potente método para la generación automática
de diseños originales de hardware [3], [6], [7], [8], [9]. La idea detrás de la síntesis de
circuitos evolutiva consiste en emplear un EA en el espacio de todos los posibles
circuitos y determinar cuáles satisfacen las especificaciones impuestas. Las mismas
pueden incluir respuesta funcional, tamaño, velocidad, potencia, entre otros aspectos.

El proceso de síntesis es automatizado mediante el uso de un EA. El mismo se


inicia con la generación aleatoria de un conjunto de circuitos. Luego, el
comportamiento de cada circuito es evaluado teniendo en cuenta las especificaciones
establecidas. Circuitos entre los mejores son considerados por el EA como los más
aptos y tienen mayor probabilidad de ser combinados para generar nuevos y
posiblemente mejores circuitos. Así, el diseño se basa en la mejora incremental de una
población inicial de circuitos generados aleatoriamente. Después de un número de
iteraciones, el circuito más apto es el que mejor acuerda con las especificaciones
definidas. Éste es considerado como el circuito solución y utilizado para programar el
RHW.

La síntesis de circuitos mediante EHW ofrece varias ventajas en comparación


con los métodos tradicionales de diseño. Las mismas se enuncian a continuación [10],
[11], [12]:

27
Hardware Evolutivo

 El diseño evolutivo puede explorar un rango mucho más amplio de


alternativas de diseño que aquellas que pueden ser consideradas por seres
humanos. El EHW frecuentemente encuentra soluciones impensables
cuando se contrastan con las obtenidas por diseñadores humanos.

 La aproximación de diseño evolutivo no asume un conocimiento previo de


un dominio de diseño particular. Por este motivo, puede ser aplicada por
usuarios que no sean expertos. Esto se debe a que en el diseño convencional
se especifica cómo diseñar e implementar un circuito, mientras que en el
diseño evolutivo sólo se definen las especificaciones de desempeño del
mismo.

 La aproximación de diseño evolutivo puede trabajar con diversos grados de


restricciones y requerimientos especiales.

 La creciente complejidad de los circuitos electrónicos obliga a disponer de


un número mayor de diseñadores de gran experiencia. Ante esta realidad el
diseño evolutivo puede convertirse en una alternativa más económica.

1.3. Hardware Adaptivo


El hardware adaptivo es la dimensión más atractiva del EHW. Su principal
objetivo es el desarrollo de una nueva generación de hardware, auto configurable, evolutiva y
consciente del entorno. De manera más concreta, el término hardware adaptivo se refiere a
dotar al hardware de la capacidad de poder reconfigurarse para continuar funcionando
correctamente en un entorno cambiante, todo esto sin intervención humana directa [9],
[13], [14], [15], [16], [17].

Los cambios en el entorno pueden consistir en variaciones en los


requerimientos funcionales o en el mantenimiento de la funcionalidad bajo la presencia
de fallas.

En la literatura, a la rama del hardware adaptivo que se ocupa de brindar


adaptación cuando los requerimientos funcionales cambian se le denomina hardware
adaptivo respecto a cambios en el ambiente externo. Por otro lado, cuando se trata

28
Hardware Evolutivo

de proporcionar características adaptivas ante la presencia de fallas se habla de


tolerancia a fallas adaptiva.

En el primer caso, se trata de una estrategia que brinda adaptación ante cambios
en el entorno que provocan que el sistema deba alterar algunas de sus funciones para
responder adecuadamente a dichas variaciones. Se debe contar con algún mecanismo
sensor que permita detectar las alteraciones del entorno. Una de las áreas clásicas de
aplicación de esta estrategia es la robótica, donde la navegación de robots es una tarea
que implica la adaptación constante de éstos al entorno en el que se encuentran. Por
ejemplo, ante la presencia de obstáculos en su trayectoria, los robots deben ser capaces
de detectarlos y de modificar su trayectoria para evitar una colisión. Esta modificación
de la trayectoria implica la ejecución de un movimiento distinto que se traduce en un
nuevo requerimiento funcional para el hardware.

Por otro lado, la necesidad de tolerancia a fallas en hardware es un aspecto de


vital importancia para aplicaciones críticas o para sistemas electrónicos que deben
operar en ambientes donde el mantenimiento es difícil de efectuar o imposible. Como
ejemplos de ello pueden mencionarse las naves espaciales, cuyo hardware está sujeto a
fallas, envejecimiento, derivas de temperatura y radiación; y también la industria nuclear,
donde los componentes están continuamente sujetos a radiación [18].

En estas condiciones, si se dispone de una estrategia de test que permita


detectar la presencia de fallas, la tolerancia a fallas adaptiva ofrece una alternativa a los
esquemas tolerantes a fallas tradicionales, debido a que mediante el RHW es posible la
corrección en tiempo de ejecución [19], [20]. Esta estrategia no siempre garantiza que la
funcionalidad completa pueda restaurarse, en cuyo caso es posible mantener la
operación del sistema con cierta degradación.

Es necesario destacar que las principales contribuciones de esta Tesis se


contextualizan en el área de la tolerancia a fallas adaptiva.

29
Hardware Evolutivo

1.4. Tolerancia a fallas adaptiva


La adaptación ante la presencia de fallas implica una reconfiguración del sistema
mediante la alteración de la topología del circuito y/o mediante la variación de los
valores de los componentes del mismo (resistencias, capacitores, ganancias de
amplificadores, etc.).

Como se mencionó anteriormente, es necesario contar con la presencia de un


método de test que permita detectar la presencia de fallas en el sistema. Dependiendo
del método de test utilizado, es posible determinar cuál o cuáles componentes son los
que presentan fallas, o bien, simplemente conocer que el sistema está funcionando fuera
de las especificaciones. Cuando esto ocurre, la estrategia de tolerancia a fallas adaptiva
propone iniciar el proceso de adaptación, mediante la invocación del EA. El mismo,
mediante un proceso evolutivo obtiene un circuito solución que luego es programado en el
RHW para permitir que éste continúe funcionando correctamente. El proceso descripto
es ilustrado en la Figura 1-3.

Especificaciones

Respuesta
objetivo

Verificar existencia
de fallas
Estrategia de Test RHW

Iniciar Proceso
de Adaptación Configuración
(si hay fallas) del circuito
solución
EA

Figura 1-3. Tolerancia a Fallas Adaptiva.

Luego de haber expuesto las características principales de las dos categorías de


EHW, es posible observar que ambas están estrechamente relacionadas. No obstante,
en cada una se enfatizan aspectos diferentes del EHW, los cuales se resaltan a
continuación:

30
Hardware Evolutivo

1. En el EHW orientado al diseño se utilizan los EA como una alternativa al


diseño convencional de circuitos electrónicos basado en especificaciones. La
evolución finaliza cuando el algoritmo encuentra una configuración de
circuito que cumple con los requerimientos planteados, después de lo cual el
diseño permanece estático.

2. El hardware adaptivo, en cambio, utiliza los EA como un mecanismo de


adaptación. Por este motivo, los sistemas evolutivos pueden cambiar a lo
largo de su existencia, debido a que cuando el entorno presenta variaciones,
el sistema debe ser capaz de adaptarse a estos cambios y continuar
operando.

1.5. Evaluación extrínseca e intrínseca


Un aspecto importante del proceso evolutivo llevado a cabo por el EA y que es
aplicable tanto al diseño evolutivo como al hardware adaptivo, es el referido a la
evaluación de los circuitos. La misma puede ser efectuada de dos maneras diferentes:

 Extrínseca: En esta modalidad de evaluación, cada circuito generado por el


EA es simulado en software mediante un modelo de simulación. La
respuesta obtenida en cada simulación representa la respuesta de cada
circuito, la cual debe ser comparada por el EA contra las especificaciones
para determinar el nivel de aptitud de cada uno. En este caso, se habla de un
proceso evolutivo simulado donde solamente la mejor configuración (circuito
solución) es implementada en el RHW, por lo cual el mismo es reconfigurado
sólo al final de la evolución. La Figura 1-4 ilustra este concepto.

31
Hardware Evolutivo

Proceso evolutivo simulado


Modelos de
circuitos generados

EA Simulador
Respuesta simulada de
circuitos
Configuración
del circuito
solución
objetivo

RHW

Figura 1-4. Evaluación extrínseca de circuitos.

 Intrínseca: En esta alternativa cada circuito generado por el EA es


programado en el RHW, lo cual permite comprobar de manera real el grado
de satisfacción de las especificaciones. En este caso, el RHW participa en el
proceso evolutivo llevado a cabo por el EA, debido a que la evaluación es efectuada
directamente en el hardware, lo cual implica que el mismo es reconfigurado
repetidas veces hasta encontrar una configuración de circuito apropiada. En
la Figura 1-5 se esquematiza este concepto.

EA
Proceso evolutivo
Proc
Respuesta Configuraciones Configuración del
de circuitos de circuitos Circuito Solución
generados

RHW

Figura 1-5. Evaluación intrínseca de circuitos.

Con referencia a la aplicación de los dos tipos de evaluación mencionados, el


extrínseco es el procedimiento más común en el campo del EHW orientado al diseño
de circuitos.

Por otro lado, cuando se aplica tolerancia a fallas adaptiva la evaluación


intrínseca puede ser una opción conveniente, fundamentalmente en aquellos casos en

32
Hardware Evolutivo

los cuales no se conocen los componentes que presentan fallas o degradaciones. Bajo
esta situación la única manera de evaluar las configuraciones posibles de circuitos es
programándolas en el RHW.

Entre las ventajas que puede proporcionar la evaluación intrínseca respecto a la


extrínseca, pueden mencionarse:

 Es posible evaluar de manera real la respuesta del circuito, ya que el mismo


es configurado en el RHW directamente.

 Cuando se aplica en tolerancia a fallas adaptiva, es posible utilizar en la


evolución y como parte del circuito solución, componentes que presentan
degradaciones, aun cuando éstas no son conocidas por el EA.

1.6. Hardware reconfigurable


El EHW aplicado a adaptación, requiere de hardware específico con
capacidades de reconfiguración. El RHW ofrece la posibilidad de cambiar repetidas veces su
arquitectura para adoptar estructuras de hardware específicas, y también cambiar el valor
de los componentes utilizados.

Actualmente, existen en el mercado dispositivos reconfigurables digitales y


analógicos que permiten la implementación de estrategias de EHW. Además, algunos
grupos de investigación han desarrollado sus propios esquemas reconfigurables
específicamente para ser utilizados en experimentos relacionados con EHW.

En el campo digital, los arreglos de compuertas programables en campo


(FPGA, Field Programmable Gate Arrays) son chips programables utilizados para la
rápida implementación de circuitos digitales [9], [15], [21]. La estructura básica de un
FPGA comprende un array de bloques lógicos configurables, conectados mediante
interconexiones programables, como se muestra en la Figura 1-6. La enorme libertad
disponible en la interconexión de dichos bloques confiere a los FPGA una gran
flexibilidad.

33
Hardware Evolutivo

Interconexiones
programables Bloques de
Entrada/Salida

Bloques
Lógicos

Figura 1-6. Arquitectura interna de un FPGA genérico.

Un FPGA requiere de la programación de tres aspectos: las funciones de los


bloques lógicos, el direccionamiento de señales entre bloques lógicos y las
características de entrada-salida de los mismos. La funcionalidad completa del
dispositivo, determinada por los tres aspectos mencionados, es definida mediante una
cadena de bits, a los que generalmente se les llama bits de configuración. Las
características mencionadas, sumadas a la posibilidad de reconfiguración, convierten a
los FPGA en los dispositivos más utilizados en el entorno del EHW digital.

Por otro lado, en el campo analógico, los arreglos analógicos programables en


campo, denominados en la literatura FPAA (Field Programmable Analogue Arrays),
son dispositivos que pueden ser configurados para implementar una variedad de
funciones. Entre las empresas más destacadas en el desarrollo de FPAA deben
mencionarse a Lattice Semiconductor y Anadigm.

La empresa Lattice Semiconductor introdujo en el mercado los primeros


dispositivos analógicos programables: la familia ispPAC [22], [23], [24], [25]. Estos
dispositivos permiten la reconfiguración de bloques analógicos básicos, basados en
amplificadores operacionales. Se proveen tres niveles de programabilidad: la
funcionalidad de cada celda, las características de performance de cada celda y la
interconexión a nivel arquitectónico en el dispositivo.

34
Hardware Evolutivo

La familia ispPAC comprende varios circuitos: ispPAC10, ispPAC20,


ispPAC30, ispPAC80, ispPAC81, ispPAC-POWR1208, con distintas áreas de
aplicación. La Figura 1-7 muestra un diagrama de bloques provisto por Lattice, del
dispositivo ispPAC10.

Celda analógica

Figura 1-7. Diagrama de bloques de un dispositivo ispPAC10.

Como puede apreciarse en la figura, el FPAA presenta cuatro celdas analógicas,


cada una compuesta por un amplificador operacional (OA, Operational Amplifier), una
resistencia, un capacitor programable, y dos amplificadores de entrada (IA, Input
Amplifier) que se conectan al amplificador operacional a través de resistencias. El área
sombreada representa los recursos de interconexión internos que permiten programar
conexiones entre las celdas. El dispositivo también posee un sistema de referencia, un
circuito de auto calibración, y una memoria de configuración. La resistencia en el lazo
de realimentación del OA tiene un valor fijo y sólo puede conectarse o desconectarse.
Cada capacitor puede adoptar 128 valores posibles (entre 1,07pF y 61,59 pF). Los
valores de ganancia de los IA pueden ser programados desde -10 a +10 en pasos de 1.
Las resistencias que conectan a los IA con el OA son fijas.

Por otro lado, Anadigm desarrolló una familia de dispositivos analógicos


programables (la familia ANxxxE04), basados en la tecnología de capacitores
conmutados, los cuales permiten diseñar e implementar diferentes circuitos analógicos

35
Hardware Evolutivo

[26]. Estos dispositivos disponen de circuitos macros con funciones preestablecidas,


tales como amplificación, suma, integración, diferenciación, comparación, filtros,
osciladores, etc. La Figura 1-8 muestra la arquitectura del dispositivo AN121E04, el
cual consiste de una matriz de 2x2 bloques analógicos configurables (CAB,
Configurable Analog Blocks), rodeada por una red de recursos de interconexión
programables.

Figura 1-8. Arquitectura del dispositivo AN121E04 de Anadigm.

Además de los dispositivos reconfigurables descriptos, los cuales pertenecen


solamente al campo analógico o al campo digital, existen otros que permiten la
configuración de ambos tipos de circuitos. Entre ellos, pueden mencionarse los
dispositivos PSoC (Programmable System on Chip, Sistema Programable en Chip) que
son desarrollados comercialmente por Cypress [27]. Los mismos implementan un
núcleo de procesamiento más un conjunto de recursos digitales y analógicos,
comunicados mediante un complejo sistema de anillos de interconexión global, todo
dentro de un chip. Las múltiples posibilidades de configuración, la flexibilidad de
interconexión y el procesamiento de datos, permiten la implementación de sistemas
complejos de forma sumamente integrada.

36
Hardware Evolutivo

Como puede apreciarse en la Figura 1-9, la arquitectura de PSoC está


compuesta por cuatro áreas principales: un procesador, módulos digitales, módulos
analógicos y recursos generales del sistema. A su vez, cuenta con un conjunto de buses
y multiplexores configurables formando un anillo de interconexión global que permite
comunicar casi todos los recursos del sistema entre sí y con el mundo exterior, dando
soporte a aplicaciones de diversas características.

Salidas
analógicas Bloques analógicos programables

Memoria Micro de 8 CT CT CT CT

Flash bits
SC SC SC SC

Fuentes SRAM SC SC SC SC

Bus de interconexión
múltiples de
Bus del Sistema

reloj
MAC

Bloques digitales programables


Recursos
D0 D1 D2 D3
del Sistema Sleep/
watchdog
D4 D5 D6 D7

Generador
de reloj

E/S de propósito
general

Figura 1-9. Diagrama de bloques de un dispositivo PSoC.

El sistema digital está dividido en filas de cuatro bloques. Algunas de las


configuraciones soportadas son: PWMs, contadores, temporizadores, SPI maestro y
esclavo, generador de CRC, generador de PRS, entre otros.

Por otro lado, el sistema analógico está distribuido en columnas de a tres, con
un total de doce bloques configurables, dentro de los cuales se distinguen bloques de
tiempo continuo (CT) y bloques de tiempo discreto (de capacidades conmutadas, SC).
Conjugando los recursos disponibles se obtienen topologías como: ADCs, filtros pasa
bajo, pasa banda y elimina banda, amplificadores de ganancia programable (PGA,
Programable Gain Amplifier), amplificadores de instrumentación, comparadores,
DACs, moduladores, detectores de pico, entre otros.

37
Hardware Evolutivo

Otro dispositivo reconfigurable que permite la implementación tanto de


funciones digitales como analógicas es el array de transistores programables en campo
(FPTA, Field Programmable Transistor Array) [6], [28]. El mismo ha sido desarrollado
por JPL (Jet Propulsion Laboratory), un grupo de investigación de la NASA, con el
propósito específico de utilizarlo para trabajar en el entorno de EHW. Puede
encontrarse en la literatura gran variedad de trabajos basados en FPTA. Se trata de una
plataforma flexible que permite la reconfigurabilidad a nivel transistor. La Figura 1-10
muestra una celda FPTA. La misma consiste de 8 transistores y 24 conmutadores
programables. El estado de los conmutadores (abierto o cerrado) determina una
topología de circuito y consecuentemente una respuesta específica. De esta manera, la
topología puede ser considerada como una función de los estados de los conmutadores
y puede ser representada por una secuencia binaria, tal como “10011…”, donde por
convención el bit 1 corresponde al estado abierto y el bit 0 al estado cerrado.

Figura 1-10. Celda de un FPTA.

El último chip de la familia FPTA, el FPTA-2, consiste de una matriz de 8x8


celdas reconfigurables, como puede apreciarse en la Figura 1-11. Cada celda posee una
matriz de transistores, así como un set de recursos programables, incluyendo
resistencias programables y capacitores estáticos. La circuitería reconfigurable consiste
de 14 transistores conectados a través de 44 conmutadores, siendo capaz de
implementar diferentes bloques de construcción para procesamiento analógico.

38
Hardware Evolutivo

Figura 1-11. Arquitectura de un FPTA-2.

1.7. Algoritmos evolutivos


Como se mencionó en la sección 1.1, los EA junto al RHW constituyen la base
del EHW. El rol de los EA en este tipo de hardware es fundamental para alcanzar la
adaptación. La participación de estos algoritmos en el proceso de adaptación consiste
precisamente en la dirección del mismo, mediante la búsqueda de la configuración de
circuito más adecuada, para satisfacer las especificaciones de desempeño (en el diseño
evolutivo) o para permitir que el hardware continúe funcionando correctamente ante
cambios en el entorno (en el hardware adaptivo).

La búsqueda mencionada podría ser efectuada mediante otros algoritmos de


búsqueda u optimización. No obstante, en la mayoría de los casos el espacio total de
búsqueda, formado por todas las configuraciones posibles de circuitos, suele ser muy
grande. En estas condiciones la búsqueda exhaustiva es impráctica, debido a que no es
posible examinar en un tiempo razonable todas las posibles configuraciones para
determinar cuál es la más adecuada. Tampoco los algoritmos de búsqueda tradicionales
son eficientes, debido a que pueden demandar mucho tiempo de ejecución sin
encontrar una solución apropiada.

Los EA resultan ser los más adecuados para estas situaciones, ya que su
característica principal es precisamente la eficiencia de búsqueda en espacios con una
cantidad de soluciones considerablemente grande.

39
Hardware Evolutivo

1.7.1. Características generales


Los EA son algoritmos informáticos que imitan las fuerzas de la evolución
natural y la autoadaptación, y pueden ser usados para buscar soluciones óptimas a un
problema dado [29], [30], [31]. Generalmente, existe un número de soluciones
potenciales para cada problema y la tarea de estos algoritmos es encontrar la mejor
solución posible en un tiempo fijo.

La razón por la cual los EA resultan ser la opción más conveniente cuando se
trata de espacios de búsqueda muy grandes, obedece a que estos algoritmos están
basados en una población de individuos que son posibles soluciones, siendo esta la
característica principal que los distingue de los algoritmos de búsqueda tradicionales, los
cuales muestrean el espacio de búsqueda considerando una única solución a la vez. Esta
población de individuos es sometida a un proceso evolutivo que tiene como propósito
alcanzar la adaptación de los mismos durante iteraciones sucesivas, permitiendo al EA
realizar una búsqueda dirigida y eficiente.

Los EA más utilizados en la literatura son: Algoritmos Genéticos (GA, Genetic


Algorithms), Programación Genética (GP, Genetic Programming), Programación
Evolutiva (EP, Evolutionary Programming) y Estrategias Evolutivas (ES, Evolution
Strategies).

Las diferencias principales entre estas alternativas están basadas en los esquemas
de codificación utilizados para representar a los individuos y en los operadores
empleados durante el proceso evolutivo.

A continuación, se describen los aspectos más importantes de cada estrategia,


destacando que en el Apéndice 1 se proporciona una descripción de los principales
aspectos de implementación de los GA, los cuales son utilizados en las estrategias de
EHW que se proponen en la presente Tesis.

1.7.2. Algoritmos Genéticos


Los GA constituyen una de las técnicas de computación evolutiva de uso más
difundido. En el campo del EHW, se han convertido en la técnica más popular para
implementar los mecanismos de adaptación.

40
Hardware Evolutivo

Las ideas fundamentales de la genética y la selección natural son utilizadas para


construir estos algoritmos, con el propósito de que los mismos sean robustos y
requieran información mínima acerca del problema.

Basados en este principio, los GA buscan la mejor solución para un


determinado problema, mediante la evolución de una población de individuos (o
fenotipos) que representan las posibles soluciones, y que son codificados mediante
cromosomas artificiales (o genotipos). La evolución consiste en someter a estos
cromosomas a un proceso que comprende la evaluación de los mismos y la aplicación de
operadores genéticos (selección, cruce y mutación). Se trata de un proceso evolutivo iterativo, donde
cada iteración se denomina generación [29], [30], [31], [32], [33].

La búsqueda efectuada por los GA debe tener en cuenta dos aspectos


diferentes: la exploración del espacio de búsqueda (búsqueda en amplitud que tiene como
propósito localizar zonas prometedoras del espacio de búsqueda) y la explotación de la
mejor solución (búsqueda en profundidad sobre las zonas prometedoras localizadas,
con el objetivo de encontrar en ellas la mejor solución). El éxito del proceso evolutivo
llevado a cabo por un GA está relacionado con la existencia de un adecuado equilibrio
entre ambos aspectos, el cual depende del conjunto de operadores genéticos utilizados
[34]. La Figura 1-12 muestra mediante un diagrama de flujo las operaciones llevadas a
cabo por un GA clásico.

A continuación, se describe la funcionalidad de cada bloque del diagrama:

 Inicializar población: El primer paso consiste en la generación aleatoria de


la población inicial, que está constituida por un conjunto de individuos,
denominados cromosomas. Cada cromosoma es una estructura de datos
que representa una de las posibles soluciones del espacio de búsqueda del
problema.

41
Hardware Evolutivo

Operadores genéticos
Inicializar
Evaluación Selección Cruce Mutación
Población

No Criterio de
parada
cumplido?

Si

Solución

Figura 1-12. Diagrama de flujo de un GA clásico.

 Evaluación: Para cada generación, los individuos de la población actual son


evaluados de acuerdo a un criterio de calidad predefinido, denominado
función de aptitud o fitness. De esta manera, todo cromosoma posee un valor
asociado de fitness que evalúa su aptitud para resolver el problema
planteado. La función fitness es específica de cada problema de
optimización. Su definición es una de las etapas más importantes en el
desarrollo de un GA, debido a que se constituye en la guía del mecanismo
de exploración.

 Selección: Para generar una nueva población (la siguiente generación), los
individuos son seleccionados de acuerdo a su valor de fitness: a mayor valor
del mismo, mayor es la probabilidad de que el individuo sobreviva en la
siguiente generación, mientras que los individuos con menor fitness son más
propensos a desaparecer.

 Cruce: Los individuos seleccionados mediante el proceso de selección son


sometidos a la acción del operador genético más importante y característico
de los GA: el operador de cruce o recombinación. El mismo permite la
selección aleatoria de los progenitores y el intercambio de material genético
entre los mismos, posibilitando la creación de nuevos individuos, que serán

42
Hardware Evolutivo

diferentes de sus padres pero con características genéticas de ambos. Los


nuevos individuos reemplazan a sus padres, por lo que formarán la
población de la siguiente generación.

 Mutación: La población de individuos resultante del proceso de cruce es


sometida, con una determinada probabilidad, a otro operador genético: el
operador de mutación. El mismo efectúa de manera aleatoria una alteración
en la estructura de algunos cromosomas, con el propósito de evitar la
pérdida de diversidad, producto de cromosomas que han convergido a un
cierto valor para toda la población, y que por lo tanto no pueden ser
recuperados por el operador de cruce.

Es importante destacar que existe una distinción importante entre los dos
últimos operadores descriptos, ya que el operador de cruce no introduce
nueva información en la población, mientras que el operador de mutación si
lo hace.

 Criterio de parada: Existen diversas maneras de culminar el proceso


iterativo de un GA, las mismas son:
1. Tiempo de ejecución.
2. Número de generaciones.
3. Alcanzar un criterio de performance.

Generalmente, la condición de parada se conforma mediante la


combinación de algunos de los criterios mencionados.

 Solución: La solución al problema de optimización planteado depende de la


manera en que finaliza la ejecución del algoritmo. Si el mismo termina de
ejecutarse porque el criterio de performance se ha alcanzado, la solución
está representada por el individuo con el valor de aptitud (fitness) más alto
en la generación actual. Por el contrario, si el GA finaliza su ejecución
porque se cumplen cualquiera de las dos condiciones de parada restantes
(alcanzar un número de generaciones o un tiempo de ejecución), la solución

43
Hardware Evolutivo

al problema corresponde al individuo que presenta el valor de aptitud más


alto en todas las generaciones.

1.7.3. Programación Genética (GP)


La GP es una aproximación evolutiva que extiende el modelo genérico de
aprendizaje al espacio de programas. La variación más importante con respecto a los
GA es que los individuos que son evolucionados son programas en sí mismos, cuya
representación no lineal está basada en árboles. La GP permite generar
automáticamente programas para resolver una tarea determinada. En general, la
selección de padres está basada en el fitness. El operador de cruce efectúa el
intercambio de subárboles y la mutación realiza cambios aleatorios en el árbol.

Esta estrategia ha sido utilizada principalmente en aprendizaje de máquinas y


tareas de data mining (predicción y clasificación). Uno de sus principales inconvenientes
es el crecimiento descontrolado de los árboles.

1.7.4. Estrategias Evolutivas (ES)


En las ES la representación utilizada es un vector de valores reales. El principal
operador de reproducción es el operador de mutación Gaussiano, en el cual un valor
aleatorio generado a partir de una distribución Gaussiana es agregado a cada elemento
de un vector de un individuo para crear un nuevo hijo. Otro operador utilizado es la
recombinación intermedia, mediante la cual los vectores de dos padres son
promediados, elemento por elemento, para formar un nuevo hijo. La selección de los
padres presenta menos restricciones que las utilizadas en GA y GP, debido a que se
efectúa de manera aleatoria y uniforme (sin considerar un valor de fitness para cada
individuo).

1.7.5. Programación Evolutiva (EP)


La EP es utilizada para la evolución de máquinas de estado finito. Las
representaciones utilizadas son generalmente adaptadas al dominio del problema. La
más utilizada es la representación mediante un vector real valuado de longitud fija. La
principal diferencia con las aproximaciones anteriores es que en la EP no existe

44
Hardware Evolutivo

intercambio de información entre individuos, debido a que solamente el operador de


mutación es utilizado.

1.8. Referencias
[1] T. Higuchi, Y. Liu, Xin Yao, Evolvable hardware, Springer, 2006.
[2] G. Greenwood, A. Tyrrell, Introduction to Evolvable Hardware: A Practical Guide for Designing Self-Adaptive
Systems, Wiley-Interscience, 2007.
[3] R. Zebulum, M. Pacheco, Evolutionary Electronics: Automatic Design of Electronic Circuits and Systems by
Genetic Algorithms, Crc Press, 2001.
[4] H. Sakanashi, M. Iwata, T. Higuchi, Evolvable hardware for lossless compression of very high resolution bi-level
images. In Computers and Digital Techniques, IEE Proceedings, Vol. 151, No. 4, pp. 277-286, IET,
July 2004.
[5] J. Wang, Q. S. Chen, C. H. Lee, Design and implementation of a virtual reconfigurable architecture for different
applications of intrinsic evolvable hardware. Computers & Digital Techniques, IET, 2(5), pp. 386-400,
2008.
[6] A. Stoica, R. Zebulum, D. Keymeulen, R. Tawel, T. Daud, A. Thakoor, Reconfigurable VLSI
architectures for evolvable hardware: from experimental field programmable transistor arrays to evolution-oriented
chips.Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, 9(1), pp. 227-232, 2001.
[7] J. Torresen, Incremental evolution of a signal classification hardware architecture for prosthetic hand
control. International Journal of Knowledge-based and Intelligent Engineering Systems, 12(3), pp.
187-199, 2008.
[8] L. Sekanina, Evolvable hardware: from applications to implications for the theory of computation.
In Unconventional Computation, pp. 24-36, Springer Berlin Heidelberg, 2009.
[9] J. Torresen, An evolvable hardware tutorial. In Field Programmable Logic and Application, pp. 821-830,
Springer Berlin Heidelberg, 2004.
[10] A. Stoica, R. S. Zebulum, X. Guo, D. Keymeulen, M. I. Ferguson, V. Duong, Taking evolutionary
circuit design from experimentation to implementation: some useful techniques and a silicon demonstration. IEE
Proceedings-Computers and Digital Techniques, 151(4), pp. 295-300, 2004.
[11] X. Yao, T. Higuchi, Promises and challenges of evolvable hardware. Systems, Man, and Cybernetics, Part C:
Applications and Reviews, IEEE Transactions on, 29(1), pp. 87-97, 1999.
[12] O. P. V. Neto, M. A. C. Pacheco, C. R. H. Barbosa, Neural network simulation and evolutionary synthesis of
QCA circuits. Computers, IEEE Transactions on, 56(2), pp. 191-201, 2007.
[13] P. Kaufmann, K. Glette, T. Gruber, M. Platzner, J. Torresen, B. Sick, Classification of Electromyographic
Signals: Comparing Evolvable Hardware to Conventional Classifiers. Evolutionary Computation, IEEE
Transactions on, 17(1), pp. 46-62, 2011.
[14] L. Sekanina, Evolvable computing by means of evolvable components. Natural Computing, 3(3), pp. 253-292,
2004.
[15] P. C. Haddow, A. M. Tyrrell, Challenges of evolvable hardware: past, present and the path to a promising
future. Genetic Programming and Evolvable Machines, 12(3), pp. 183-215, 2011.

45
Hardware Evolutivo

[16] R. Salvador, A. Otero, J. Mora, E. de la Torre, L. Sekanina, T. Riesgo, Fault tolerance analysis and self-
healing strategy of autonomous, evolvable hardware systems. In Reconfigurable Computing and FPGAs
(ReConFig), 2011 International Conference on IEEE, pp. 164-169, November 2011.
[17] E. Benkhelifa, A. Pipe, G. Dragffy, M. Nibouche, Towards evolving fault tolerant biologically inspired
hardware using evolutionary algorithms. In Evolutionary Computation, 2007. CEC 2007. IEEE Congress
on IEEE, pp. 1548-1554, September 2007.
[18] G. S. Hollingworth, A. M. Tyrrell, S. L. Smith, To evolve in a changing environment. In Reconfigurable
Systems (Ref. No. 1999/061), IEE Colloquium on IET, pp. 6-1, 1999.
[19] C. A. C. Coello, A. D. Christiansen, A. H. Aguirre, Use of evolutionary techniques to automate the design of
combinational circuits. International Journal of Smart Engineering System Design, 2, pp. 299-314, 2000.
[20] J. F. Miller, D. Job, V. K. Vassilev, Principles in the evolutionary design of digital circuits - Part I. Genetic
programming and evolvable machines,1(1-2), pp. 7-35, 2000.
[21] N. Raichman, R. Segev, E. Ben-Jacob, Evolvable hardware: genetic search in a physical realm. Physica A:
Statistical Mechanics and its Applications, 326(1), pp. 265-285, 2003.
[22] Nota de aplicación. ispPAC10 biquad filter implementation, Lattice Semiconductor Corporation.
Septiembre 2000.
[23] Nota de aplicación. Designing high-order filters with the ispPAC10. Lattice Semiconductor Corporation.
Julio 2002.
[24] G. W. Greenwood, D. Hunter, E. Ramsden, Fault recovery in linear systems via intrinsic evolution.
In Evolvable Hardware, 2004. Proceedings. 2004 NASA/DoD Conference on IEEE, pp. 115-122,
June 2004.
[25] J. M. Hereford, Fault-tolerant sensor systems using evolvable hardware. Instrumentation and Measurement,
IEEE Transactions on, 55(3), pp. 846-853, 2006.
[26] A. Fathima Jabeen, M. Y. Sanavullah, FPAA Based Bandwidth Recovery in Satellite Subsystems via Intrinsic
Evolution. In Fuzzy Systems and Knowledge Discovery, 2008. FSKD'08. Fifth International
Conference on IEEE, Vol. 3, pp. 555-559, October 2008.
[27] PSoC® Programmable system-on-chip technical reference manual, Cypress Semiconductor Corporation, 2008.
[28] C. Lambert, T. Kalganova, E. Stomeo, FPGA-based systems for evolvable hardware. In Proceedings of
World Academy of Science, Engineering and Technology, Vol. 12, pp. 123-129, March 2006.
[29] X. Yu, M. Gen, Introduction to Evolutionary Algorithms, Springer 2010.
[30] K. Deb, Multi-Objective Optimization using Evolutionary Algorithms, Wiley, 2009.
[31] El-Ghazali Talbi, Metaheuristics From Design to Implementation, Wiley, 2009.
[32] R. Haupt, S. Ellen Haupt, Practical Genetic Algorithms, Wiley 2004.
[33] D. Goldberg, Genetic Algorithm. Search, optimization and machine learning, Addison-Wesley, 1989.
[34] S. N. Sivanandam y S. N. Deepa, Introduction to Genetic Algorithm, New York: Springer, 2008.

46
2. Revisión de trabajos previos sobre Hardware
Evolutivo

En este capítulo se revisan los trabajos reportados en cada una de las áreas del
EHW, considerando aquellos que utilizan como EA un GA.

2.1. EHW orientado al diseño de circuitos


La síntesis de circuitos fue el propósito inicial del EHW. El mismo fue
introducido en 1993 por T. Higuchi et al. [1], para presentar el diseño automático de
circuitos electrónicos a partir de la especificación de las relaciones de entrada/salida.

Posteriormente, diseños innovadores usando EHW en el área de circuitos


lógicos combinacionales son presentados en [2], [3], [4]. Por otro lado, el diseño de
circuitos lógicos secuenciales es considerado en [5], [6], [7], [8] y [9]. En general, se trata
de circuitos pequeños, cuyo diseño es abordado mediante aproximaciones basadas en
un GA, planteando como objetivo minimizar el número total de compuertas o bien
obtener desempeños superiores a los logrados por diseñadores humanos.

La síntesis de circuitos más grandes es considerada en [10] y [11]. En [10] se


propone la aplicación de una estrategia de descomposición que permite la evolución de
subsistemas. Por otro lado, en [11] se presenta la evolución a nivel funcional como una
alternativa para poder diseñar circuitos de mayor tamaño a los que se alcanzan mediante
la evolución a nivel de compuertas.

En [12] se presentan algunas técnicas que pueden ser útiles para transitar desde
el diseño evolutivo para la experimentación al diseño evolutivo para la implementación.
La aplicación de estas técnicas permitió a los autores realizar la primera validación en
silicio de un circuito digital evolucionado.

En comparación con los circuitos digitales, los circuitos analógicos son más
difíciles de diseñar. Uno de los aspectos más importantes consiste en encontrar una
representación del cromosoma adecuada para este tipo de circuitos. Entre las
contribuciones referidas a la síntesis de circuitos analógicos mediante EHW pueden

47
Revisión de trabajos previos sobre hardware evolutivo

encontrarse las relacionadas al diseño de circuitos de RF en [13], de osciladores en [14]


y [15], de filtros en [16], [17] y [18], y de antenas en [19] y [20]. En todos los casos se
propone la utilización de un GA para determinar los parámetros de diseño más
apropiados. Por otro lado, en [13] y [15] se presentan métodos para efectuar la síntesis
de circuitos analógicos mediante GA.

En [21], [22] y [23] se aborda el diseño de circuitos robustos capaces de tolerar


futuras fallas. Para lograr este objetivo se plantea como requisito fundamental el
conocimiento de los tipos de fallas que pueden afectar el circuito, debido a que éstos
son incorporados en la evaluación del fitness, efectuada por el GA. Esta aproximación
es denominada tolerancia a fallas evolutiva en [24]. Usando este enfoque se obtienen
circuitos más grandes, pero no es necesaria la reconfiguración de los mismos cuando se
presenta una falla ya que la redundancia implícita en el circuito permite la continuidad
del funcionamiento.

Como se mencionó en el Capítulo 1, el principal atractivo del EHW radica en su


potencial como un hardware adaptivo que puede cambiar su comportamiento y
mantener su performance mientras se desempeña en un ambiente físico real. En los
siguientes párrafos se revisan los trabajos reportados en cada una de los dos tipos de
hardware adaptivo.

2.2. Hardware adaptivo respecto a cambios en el ambiente


externo
Bajo esta categoría pueden agruparse contribuciones pertenecientes a diferentes
ámbitos, como robótica, clasificación y reconocimiento de patrones, compresión de
datos, entre otros.

En el área de la robótica, Thompson [25] considera la evolución de hardware


para controlar un robot móvil, reportando la primera evolución de un sistema de
control real. Las ventajas de adaptar la estructura de hardware a cambios en el entorno
con EHW son demostradas en [11], donde se considera la tarea de navegación de un
robot móvil. Similarmente, en [26] se presenta un sistema para evolucionar

48
Revisión de trabajos previos sobre hardware evolutivo

autónomamente la marcha de dos robots cuadrúpedos. Un análisis acerca de la


factibilidad de aplicar métodos evolutivos para automatizar la generación de
controladores para robots móviles puede encontrarse en [27].

Por otro lado, en [28] se propone el diseño y control del movimiento de las alas
de vehículos pequeños mediante la combinación de estrategias de EHW y metodologías
tradicionales.

La utilización de EHW en tareas de clasificación y reconocimiento de patrones


es considerada en [29], [11], [30] y [31]. En [29] y [11] se propone el uso de EHW para
la clasificación de señales que permiten el control de una prótesis de mano. En [30]
puede encontrarse una comparación entre aproximaciones basadas en EHW y técnicas
de clasificación convencionales, demostrando que las estrategias basadas en EHW
pueden competir con los clasificadores convencionales. La evolución de un sistema de
reconocimiento de caracteres mediante EHW es abordada en [31].

Un método adaptivo para la compresión de imágenes de alta resolución se


presenta en [32], donde la optimización de los parámetros de codificación se realiza a
través de un GA. En [33] se aborda la reconfiguración mediante un GA de un filtro de
imágenes implementado en un FPGA, con el propósito de eliminar la presencia de
ruido.

Por otro lado, el uso industrial del EHW es propuesto en [11], donde se
presenta un chip de compresión de datos basado en EHW que puede ser utilizado en
las impresoras electrofotográficas.

2.3. Tolerancia a fallas Adaptiva


Seguidamente se analizan las contribuciones referidas a esta categoría de
hardware adaptivo, considerando circuitos digitales y analógicos. Se proporciona un
análisis más profundo de aquellas que hacen referencia a tolerancia a fallas adaptiva en
circuitos analógicos, debido a que estos trabajos constituyen los antecedentes de los
aportes efectuados en la presente Tesis.

49
Revisión de trabajos previos sobre hardware evolutivo

2.3.1. Circuitos digitales


La utilización de EHW para proporcionar características de tolerancia a fallas a
un filtro que mejora la calidad en imágenes (implementado en un FPGA), es abordada
en [34]. Se propone la reestructuración autónoma del circuito ante la presencia de fallas
internas, considerando también el proceso de detección de la falla y el relacionado a la
reconfiguración del circuito.

En [35] se presenta una plataforma basada en EHW para el diseño autónomo y


la recuperación de fallas de un circuito que controla un motor. La plataforma de EHW
propuesta utiliza un GA para configurar de manera autónoma el FPGA en el cual se
encuentra implementado el circuito. Se introducen fallas simples y múltiples en las
unidades lógicas y se demuestra que es posible la recuperación de la funcionalidad del
circuito. No se menciona en este trabajo la estrategia de test utilizada para determinar la
presencia de fallas.

Por otro lado, en [36] se propone un framework para detección y corrección de


fallas en sistemas digitales. La detección de las fallas se basa en chequear
constantemente los pares entrada/salida, por lo cual cuando se detecta la existencia de
las mismas no se conoce cuál es el componente que presenta la falla. La corrección se
realiza a través de la utilización conjunta de un GA y un algoritmo de distribución.

La utilización de controladores basados en EHW para la locomoción de robots


ha sido mencionada en contribuciones analizadas en apartados previos. En [37] se
propone la evolución y reconfiguración para permitir a un robot hexápodo recuperarse
de determinadas fallas que pueden presentarse en la realidad (falla en una pierna, falla
en un bus de comunicación). Se efectúa la simulación a nivel de comportamiento,
utilizando evolución completamente extrínseca y online, por lo cual los controladores
pueden evolucionar mientras están en servicio. Los resultados experimentales muestran
que el número de evaluaciones requerido en algunos movimientos es
considerablemente grande.

50
Revisión de trabajos previos sobre hardware evolutivo

2.3.2. Circuitos analógicos


La aplicación de esquemas de tolerancia a fallas mediante EHW en el dominio
analógico está mayormente relacionada a la evolución topológica de los circuitos para
mantener la funcionalidad requerida.

Con respecto al origen de las fallas consideradas, existen varios trabajos en los
cuales se aborda el problema de tolerancia a fallas en ambientes con temperaturas
extremas y ambientes expuestos a alta radiación. Otros trabajos, en cambio, focalizan
sus esfuerzos para proporcionar tolerancia a fallas cuando las mismas son ocasionadas
por el paso del tiempo (lo cual provoca el envejecimiento de los componentes).

A continuación, se describen las principales contribuciones clasificadas de


acuerdo al origen de las fallas consideradas.

 Ambientes con temperaturas extremas y/o alta radiación


La mayoría de los aportes pueden encontrarse en los trabajos de R. Zebulum et
al. [38], [39], [40], [41], [42], [43], [44] y [45]. Ellos presentan distintas propuestas
basadas en EHW para la reconfiguración de circuitos, durante su operación en
ambientes extremos. Para ello, proponen distintas arquitecturas reconfigurables, sobre
las cuales realizan experimentos utilizando un GA para recuperar la funcionalidad de
una variedad de circuitos, incluyendo rectificadores, amplificadores y filtros. Si bien los
primeros resultados experimentales obtenidos corresponden a la evolución de un
circuito digital muy simple [38] (evolución de una compuerta AND implementada en
un FPTA), los mismos constituyen la base para posteriores trabajos, los cuales se
focalizan en la recuperación de fallas en circuitos analógicos.

En [39] se presenta un sistema evolutivo basado en el esquema SABLES (Stand-


Alone Board-Level Evolvable System), presentado con anterioridad por los mismos
autores en [46]. Sus componentes principales son un array de transistores programables
(FPTA-2) como hardware reconfigurable a nivel de transistor y un procesador de señal
digital (DSP, digital signal processor) que implementa el GA que controla la
reconfiguración. Los experimentos se orientan a la recuperación evolutiva de la
funcionalidad de los siguientes circuitos: un rectificador de media onda, un amplificador

51
Revisión de trabajos previos sobre hardware evolutivo

operacional de lazo cerrado, un filtro pasa bajo y un filtro pasa alto. Los resultados
experimentales demuestran que en todos los casos es posible recuperar la funcionalidad.

En [40] los autores presentan el mismo esquema evolutivo propuesto en [39]


(esquema SABLES), pero considerando que los circuitos se encuentran funcionando en
ambientes con alto grado de radiación. Los experimentos se llevan a cabo con un
rectificador de media onda, un filtro y un conversor DAC, demostrando que la técnica
es capaz de recuperar la funcionalidad hasta un nivel de radiación de 250 kRads. Los
autores resaltan que la evolución es capaz de usar los recursos de celdas reconfigurables
que contengan componentes dañados para sintetizar una nueva solución.

Con el propósito de demostrar la posibilidad de evolucionar circuitos más


grandes que los considerados hasta ese momento, en [41] se utiliza nuevamente el
esquema SABLES para realizar diseño y recuperación de fallas de manera evolutiva e
intrínseca. Para ello, se considera un conversor DAC de 4 bits y se describe un
experimento en el cual se realiza una evolución jerárquica del mismo utilizando 12
celdas del chip FPTA-2. Para validar el esquema, se simulan fallas stuck-at. Los
resultados reportados demuestran que el GA permite la recuperación del circuito ante
las fallas direccionadas.

Posteriormente, en [42] y [43] los autores introducen una arquitectura


reconfigurable denominada Array Analógico Reconfigurable (RAA, Reconfigurable
Analog Array). Los componentes de un RAA pueden usarse para implementar filtros y
circuitos amplificadores, en particular, las arquitecturas de filtros Gm-C. Los autores
proponen utilizar cambios en los voltajes de control de los transconductores para
corregir desviaciones provocadas por temperaturas extremas. A diferencia de los FPTA
en los cuales la evolución se realiza a nivel de topología, el RAA efectúa la evolución
compensando voltajes de polarización, lo cual mejora la performance analógica (ancho
de banda, relación señal-ruido) debido a que no hay conmutadores en el camino de la
señal dentro de la celda RAA. En los experimentos se considera un filtro de primer
orden, cuyo comportamiento es controlado por dos voltajes de polarización. La
recuperación del circuito se realiza mediante el algoritmo hill-climbing.

52
Revisión de trabajos previos sobre hardware evolutivo

En [44] los autores describen otro diseño de FPAA llamado Arreglo Analógico
Auto-Reconfigurable (SRAA, Self-Reconfigurable Analog Array). El mismo está
formado por arrays de celdas analógicas (divididos en arreglos de referencia y arreglos
funcionales), una caja de conmutación y un dispositivo de test. Una característica
especial del SRAA radica en que la reconfiguración del circuito se practica sobre el
arreglo de celdas de referencia y luego es implementada en el arreglo de celdas
funcionales, por lo cual la operación on-line no es interrumpida. La estrategia de test
utilizada emplea dos DAC y dos ADC para la excitación y evaluación, respectivamente,
de las celdas de referencia. Para lograr la adaptación se propone realizar la
compensación de manera jerárquica, proponiendo la utilización de un GA en el tercer
nivel de compensación, cuando el primer nivel (correcciones predeterminadas) y el
segundo nivel (uso de algoritmos de búsqueda basada en el gradiente) no tienen éxito.
Los autores asumen que las celdas funcionales y de referencia tienen el mismo
comportamiento. No se muestran resultados experimentales sobre la reconfiguración
de circuitos específicos. Los dos primeros ejemplos de aplicación se mencionan en [45],
donde sólo se exponen resultados de simulaciones del mapeo de un amplificador de
instrumentación y un circuito PWM (pulse width modulator) en celdas SRAA, usando
la mencionada aproximación jerárquica, pero no se mencionan experimentos
relacionados a la reconfiguración.

Con el objetivo de proveer tolerancia a fallas por efectos de radiación en


ambientes espaciales, en [4] se propone utilizar un FPTA-2 para evolucionar
intrínsecamente controladores analógicos que regulan la velocidad de un motor de DC.
El esquema SABLES es empleado como plataforma de evolución, con el propósito de
efectuar el diseño del controlador (el cual es abordado por los mismos autores en [47])
y la recuperación ante fallas mediante la reconfiguración del diseño. La identificación de
las fallas en el controlador se lleva a cabo mediante la medición periódica del fitness. El
proceso evolutivo puede llegar a utilizar componentes dañados siempre que éstos
mantengan cierta funcionalidad. Se insertan fallas en distintos conmutadores. Los
resultados experimentales muestran una recuperación significativa de la funcionalidad.
Sin embargo, cuando las fallas se insertan en conmutadores que son considerados
críticos (por estar presentes en casi todos los diseños evolucionados), la evolución
necesita mucho tiempo para recuperar un nivel de funcionalidad razonable.

53
Revisión de trabajos previos sobre hardware evolutivo

Con el propósito de proveer características de adaptación ante derivas de


temperatura, se presenta en [48] una arquitectura FPAA flexible y adaptable para la
implementación reconfigurable de filtros analógicos de tiempo continuo. El FPAA
consiste de un array bidimensional de 7 CAB ubicados formando un diseño hexagonal
que facilita el ruteo de señales dentro del chip. Se propone el uso de un GA para
efectuar la síntesis de filtros en la estructura propuesta. Con el propósito de evaluar el
FPAA a nivel de sistema se lo modela en Matlab en el nivel función de transferencia. La
factibilidad de la aproximación propuesta es analizada usando el GA para compensar
derivas de temperatura simuladas en el modelo Matlab. Se efectúan simulaciones
considerando un filtro pasabanda de 4° orden expuesto a tres temperaturas distintas.
En todos los casos el GA es capaz de compensar las derivas de temperatura.

En [49] se realiza un planteamiento similar al presentado en [48], pero en este


trabajo el FPAA es expuesto de manera real a los cambios de temperatura, permitiendo
la demostración experimental de la confiabilidad de la aproximación heurística sugerida.
Los experimentos son realizados considerando un filtro pasabanda de 6° orden como
filtro de prueba. Se propone utilizar un analizador de red para medir la respuesta en
amplitud del FPAA. Los resultados experimentales muestran que el GA es capaz de
anular las desviaciones en la respuesta del filtro provocadas por las influencias de la
temperatura.

Es necesario destacar que el nivel de redundancia que posee la arquitectura de


hardware considerada en [48] y [49] permite que dentro del espacio de búsqueda total
exista una gran cantidad de soluciones apropiadas. Esta característica facilita la
búsqueda que el GA debe realizar.

En [50] se analizan técnicas evolutivas para reparar y ajustar circuitos


analógicos, operando en ambientes hostiles. La reparación puede ser efectuada
utilizando evolución intrínseca o extrínseca. Se describen experimentos realizados con
ambas metodologías, considerando un amplificador para ilustrar la evolución extrínseca
y un inversor TTL para la evolución intrínseca. En ambos casos el GA permite eliminar
los efectos de las fallas consideradas. La evolución intrínseca es realizada en un FPAA
denominado PAMA, el cual posee 32 multiplexores analógicos y bus analógicos de 16
líneas. El circuito obtenido mediante la evolución presenta mejor performance que el

54
Revisión de trabajos previos sobre hardware evolutivo

circuito original, utilizando la misma cantidad de componentes. Sin embargo, debe


tenerse en cuenta que se ha considerado un circuito muy simple como caso de prueba.

 Envejecimiento de componentes:
El trabajo de R. Zebulum et al. [51] presenta una estrategia evolutiva para el
diseño y recuperación de fallas de circuitos de muy alta escala de integración (VLSI,
Very Large Scale Integration). Para ello se considera un chip reconfigurable FPTA y
fallas por envejecimiento. El GA propuesto se fundamenta en dos métodos diferentes,
uno de ellos basado en la definición del fitness y el otro basado en la población, para
realizar el diseño y la recuperación de la funcionalidad ante la presencia de fallas. Se
presentan resultados experimentales obtenidos usando ambas aproximaciones para la
síntesis de un circuito analógico tolerante a fallas (multiplicador analógico) utilizando
evolución extrínseca. El diseño del circuito se realiza a través del GA y luego se aplican
fallas al mismo a través de la inversión del estado de uno o más conmutadores, o bien
imponiendo el estado “abierto” o “cerrado” a uno o más de ellos. El GA es utilizado
para reconfigurar el circuito. Los resultados experimentales muestran que el método
basado en la población es el que presenta mejor desempeño.

Por otro lado, en [52] los autores investigan la recuperación de fallas en sistemas
de control analógicos lineales de tercer orden usando reconfiguración a través de un
GA. Se asume que las fallas ocurren dentro del sistema lineal y que no es posible
acceder a la circuitería interna para reparar o reemplazar componentes con fallas. Por
este motivo, la única forma de restaurar el servicio es insertando una red de
compensación en el lazo de control. En este trabajo, la red de compensación se
implementa en un dispositivo analógico programable ispPAC10 de Lattice
Semiconductor y su configuración se evoluciona intrínsecamente. La evolución
considera valores de componentes y también una pequeña porción de la estructura del
circuito. La simulación de fallas en el sistema se realiza alterando el valor de una de las
resistencias, lo cual produce un cambio en el ancho de banda. Los resultados
experimentales muestran que en la banda de rechazo la compensación no es tan buena
como en las demás bandas. Los autores argumentan que se necesitan valores de
capacitores más grandes que los provistos por ispPAC10 para alcanzar una mejor
compensación.

55
Revisión de trabajos previos sobre hardware evolutivo

En [53] se manifiesta un objetivo muy similar al planteado en [52] en cuanto a


que mediante hardware reconfigurable se pretende lograr la recuperación de fallas en
sistemas de control lineal (sistemas de tercer orden), en los cuales la presencia de fallas
ocasiona un cambio brusco en el ancho de banda del sistema. Se propone la evolución
de redes de compensación con el propósito de restaurar el funcionamiento. Como
características propias de este trabajo puede señalarse la utilización de un FPAA de
Anadigm, basado en la tecnología de capacitores conmutados. Se utiliza un núcleo
embebido para efectuar la reconfiguración autónoma de manera intrínseca. Por otro
lado, la inyección de fallas se realiza variando la posición de los polos del sistema, lo
cual provoca la alteración del ancho de banda y de la respuesta al impulso del sistema.
Los resultados experimentales muestran que en algunos casos la respuesta del sistema
compensado presenta degradaciones.

En [54] se presenta un sistema que es robusto respecto a la falla de sensores, a


través de técnicas de EHW. El sistema utiliza múltiples sensores conectados a un
dispositivo programable ispPAC30, que promedia las salidas de los mismos. El objetivo
del trabajo es el desarrollo de un sistema tolerante a fallas en sensores, de manera que
cuando se detectan fallas en uno o más de ellos, se inicia la reprogramación del circuito
invocando a un GA. En este trabajo se utilizan tres sensores de temperatura y varios
tipos de fallas que son introducidas en los mismos de manera artificial. La estrategia de
test utilizada compara la salida actual del sistema con una salida estimada por un filtro
de Kalman. Si la diferencia supera un cierto valor umbral, se considera que hay fallas,
con lo cual el GA debe ser invocado. El algoritmo que implementa la estrategia de test
y el GA se ejecutan en una computadora externa. El autor demuestra que el sistema es
capaz de detectar fallas en los sensores y recuperarse de las mismas, a excepción del
caso en que fallan todos los sensores.

En [55] se analiza la capacidad de tolerancia a fallas en un arreglo de celdas


analógicas programables en campo (FPACA, Field Programable Analog Cell Array) que
constituye una arquitectura reconfigurable orientada a la evolución de sistemas digitales
y analógicos. Las celdas FPACA se modelan en PSpice y la reconfiguración es
controlada por un algoritmo evolutivo mediante evolución extrínseca. El algoritmo
utilizado es el HereBoy [56], el cual combina el GA con el algoritmo Simulated
Anealing (SA). Los autores utilizan un amplificador típico para ilustrar la capacidad de

56
Revisión de trabajos previos sobre hardware evolutivo

tolerancia a fallas de la estrategia propuesta, considerando tres tipos de fallas en los


transistores: simples, dobles y triples. Las fallas se introducen asignando el estado
“cerrado” a todos los conmutadores que están directamente conectados al transistor
con falla. Los resultados experimentales muestran que la habilidad de tolerancia a fallas
disminuye a medida que el número de capacitores con fallas aumenta. Además, se
detecta que la ubicación del transistor que presenta fallas tiene un impacto crucial en la
habilidad de tolerancia a fallas.

Por otro lado, la recuperación de fallas intrínseca en sistemas embebidos a


través de EHW es analizada en [57]. La reconfiguración intrínseca en este tipo de
sistemas presenta algunas limitaciones como la baja velocidad del reloj y la memoria
limitada. Por este motivo, en este trabajo se propone investigar la efectividad de un GA
que se ejecuta constantemente para lograr adaptación ante los efectos del
envejecimiento cuando también se encuentra restringido a trabajar con un espacio de
memoria pequeño. Para ello, se estudian dos versiones de GA con memoria reducida:
mGA (utiliza mutación e hipermutación) y cGA (mantiene un vector de probabilidades
para describir la población). La plataforma utilizada en los experimentos es EARP
(presentada por los mismos autores en [58]), la cual consiste básicamente en 12
módulos analógicos reconfigurables. Se propone implementar en esta arquitectura un
controlador evolutivo denominado PID (Proportional, Integrative, Derivative). El
sistema está representado por una función de transferencia de tercer orden con un
termistor que permite modificarla, pudiendo de esta manera introducir fallas y simular
efectos del envejecimiento. Los resultados experimentales muestran que el cGA es el
que presenta la mejor performance.

2.4. Contribuciones
En esta Tesis se plantea por primera vez la aplicación de estrategias basadas en
EHW para dotar de características adaptivas a un sistema amplificador y a un filtro de
alto orden ante la presencia de fallas, cuando se considera como entorno posible de
aplicación a los sistemas de redes inalámbricas de sensado (WSN, Wireless Sensor
Network).

57
Revisión de trabajos previos sobre hardware evolutivo

Los aspectos innovadores de los dos esquemas de EHW desarrollados se


presentan a continuación:

1. Con referencia al sistema amplificador adaptivo, cuya implementación es


propuesta utilizando como plataforma reconfigurable PSoC1, es necesario
señalar que no existen precedentes acerca del uso de esta plataforma en el
desarrollo de estrategias de EHW. Además, el esquema propuesto es
absolutamente completo debido a que no solamente aborda la etapa de
recuperación de fallas sino que se considera también el mecanismo de
detección de las mismas. Se propone la utilización de un esquema de autotest
basado en software, siendo esta la primera aplicación del mismo como parte
de una estrategia de EHW.

2. Con respecto al filtro adaptivo de alto orden, es posible destacar que es la


primera vez que se presenta como caso de estudio un filtro de octavo orden,
tanto en el área del EHW orientado al diseño como en área del hardware
adaptivo.

La plataforma reconfigurable utilizada para la implementación del filtro


considerado es ispPAC10. Si bien ya se han desarrollado investigaciones en el
área de tolerancia a fallas adaptiva utilizando ispPAC en [62, 64], el trabajo
presentado en esta Tesis contiene diferencias importantes respecto a los
trabajos previos, las cuales se detallan a continuación:

 Con respecto a [62] donde se aborda la recuperación de fallas sin


contemplar o sugerir una estrategia de test para detectar la presencia de
fallas, puede decirse que en esta Tesis se presenta un esquema que
considera el mecanismo de detección de fallas en el filtro, además de la
recuperación mediante el uso de un GA. En este caso, se considera la
aplicación del método de análisis transitorio (TRAM, Transient Analysis
Method), el cual es ampliamente conocido entre los métodos de test para
secciones de segundo orden. Se propone la utilización de esta técnica para
efectuar la reconstrucción de la función de transferencia del filtro.

58
Revisión de trabajos previos sobre hardware evolutivo

 La reconfiguración del filtro de octavo orden que se presenta en esta


Tesis implica la evolución de los valores de ganancia de 12 amplificadores
de entrada y 8 capacitores, lo cual ocasiona un espacio total de búsqueda
considerablemente mayor con respecto al abordado en [62] y [64].

 El hecho de que el espacio total de búsqueda sea tan grande ha sido el


generador de varias innovaciones en el GA para alcanzar los objetivos
propuestos. A continuación se citan las más relevantes:

a) La utilización de manera conjunta de dos métodos de optimización a


priori para resolver el problema de optimización planteado.

b) La autoadaptación de la estrategia de cruce y de la probabilidad de


mutación en cada generación, de acuerdo a determinadas
características de la población actual del GA.

c) Se propone la utilización de TRAM con otro propósito, además de


la detección de fallas. TRAM interactúa con el GA para efectuar la
evaluación de las posibles configuraciones de filtro generadas. Esta
característica permite una evaluación intrínseca, lo cual aporta al
trabajo las ventajas propias de este tipo de evaluación (mencionadas
en el Capítulo 1).

2.5. Referencias
[1] T. Higuchi, T. Niwa, T. Tanaka, H. Iba, H. de Garis, T. Furuya, Evolving hardware with genetic learning:
A first step towards building a Darwin Machine. In Proceeding of the 2nd Int. Conf. on the Simulation of
Adaptive Behaviour (SAB92), MIT Press, 1993.
[2] C. A. C. Coello, A. D. Christiansen, A. H. Aguirre, Use of evolutionary techniques to automate the design of
combinational circuits. International Journal of Smart Engineering System Design, 2, pp. 299-314, 2000.
[3] J. F. Miller, J. F., Job, V. K. Vassilev, Principles in the evolutionary design of digital circuits—Part I. Genetic
programming and evolvable machines,1(1-2), pp. 7-35, 2000.
[4] J. Wang, C. H. Lee, Evolutionary design of combinational logic circuits using VRA processor. IEICE
Electronics Express, 6(3), pp.141-147, 2009.
[5] C. Manovit, C. Aporntewan, P. Chongstitvatana, Synthesis of synchronous sequential logic circuits from partial
input/output sequences. In Evolvable Systems: From Biology to Hardware, pp. 98-105, Springer Berlin
Heidelberg, 1998.

59
Revisión de trabajos previos sobre hardware evolutivo

[6] A. T. Soliman, H. M. Abbas, Synchronous sequential circuits design using evolutionary algorithms. In Electrical
and Computer Engineering, 2004. Canadian Conference on IEEE, Vol. 4, pp. 2013-2016, May 2004.
[7] B. Ali, A. E. A. Almaini, T. Kalganova, Evolutionary algorithms and theirs use in the design of sequential logic
circuits. Genetic Programming and Evolvable Machines, 5(1), pp. 11-29, 2004.
[8] P. Soleimani, S. Mirzakuchaki, K. Mohammadi, M. Bagheri, A Novel Evolutionary Design of Sequential
Logic Circuits by Using Genetic Algorithm. International Journal of Modeling and Optimization, Vol. 1,
No. 3, 2011.
[9] P. Soleimani, S. Mirzakuchaki, R. Sabbaghi-Nadooshan, M. Bagheri, Improvement of Optimization in
Design of Synchronous Sequential Circuits by Using Evolvable Hardware. International Journal of Computer
Theory and Engineering, Vol. 4, No. 5, 2012.
[10] E. Stomeo, T. Kalganova, C. Lambert, Generalized disjunction decomposition for evolvable hardware. Systems,
Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions on, 36(5), pp. 1024-1043, 2006.
[11] T. Higuchi, M. Iwata, D. Keymeulen, H. Sakanashi, M. Murakawa, I. Kajitani, N. Otsu, Real-world
applications of analog and digital evolvable hardware. Evolutionary Computation, IEEE Transactions
on, 3(3), pp. 220-235, 1999.
[12] A. Stoica, R. S. Zebulum, X. Guo, D. Keymeulen, M. I. Ferguson, V. Duong, Taking evolutionary circuit
design from experimentation to implementation: some useful techniques and a silicon demonstration. IEE
Proceedings-Computers and Digital Techniques, 151(4), pp. 295-300, 2004.
[13] J. D. Lohn, S. P. Colombano, A circuit representation technique for automated circuit design. Evolutionary
Computation, IEEE Transactions on,3(3), pp. 205-219, 1999.
[14] L. Huelsbergen, E. Rietman, R. Slous, Explorations in Evolutionary Computation, IEEE Transactions
on, 3(3), pp. 197-204, 1999.
[15] T. R. Dastidar, P. P. Chakrabarti, P. Ray, A synthesis system for analog circuits based on evolutionary search
and topological reuse. Evolutionary Computation, IEEE Transactions on, 9(2), pp. 211-224, 2005.
[16] C. Zuffada, T. Cwik, C. Ditchman, Synthesis of novel all-dielectric grating filters using genetic
algorithms. Antennas and Propagation, IEEE Transactions on, 46(5), pp. 657-663, 1998.
[17] R. A. Vural, T. Yildirim, T. Kadioglu, A. Basargan, Performance evaluation of evolutionary algorithms for
optimal filter design. Evolutionary Computation, IEEE Transactions on, 16(1), pp. 135-147, 2012.
[18] N. Raichman, R. Segev, E. Ben-Jacob, Evolvable hardware: genetic search in a physical realm. Physica A:
Statistical Mechanics and its Applications, 326(1), pp. 265-285, 2003.
[19] A. Boag, E. Michielssen, R. Mittra, Design of electrically loaded wire antennas using genetic
algorithms. Antennas and Propagation, IEEE Transactions on, 44(5), 687, 1996.
[20] Z. Altman, R. Mittra, A. Boag, New designs of ultra wide-band communication antennas using a genetic
algorithm. Antennas and Propagation, IEEE Transactions on, 45(10), pp. 1494-1501, 1997.
[21] M. Hartmann, P. C. Haddow, Evolution of fault-tolerant and noise-robust digital designs. In Computers and
Digital Techniques, IEE Proceedings, Vol. 151, No. 4, pp. 287-294, IET, July 2004.
[22] J. Macia, R. V. Solé, Distributed robustness in cellular networks: insights from synthetic evolved circuits. Journal
of The Royal Society Interface, 6(33), pp. 393-400, 2009.
[23] A. Thompson, P. Layzell, R. S. Zebulum, Explorations in design space: Unconventional electronics design
through artificial evolution. Evolutionary Computation, IEEE Transactions on, 3(3), pp. 167-196, 1999.
[24] G. S. Hollingworth, A. M. Tyrrell, S. L. Smith, To evolve in a changing environment. In Reconfigurable
Systems (Ref. No. 1999/061), IEE Colloquium on IET , pp. 6-1, 1999.

60
Revisión de trabajos previos sobre hardware evolutivo

[25] A. Thompson, Evolving electronic robot controllers that exploit hardware resources, pp. 640-656, Springer
Berlin Heidelberg, 1995.
[26] G. S. Hornby, S. Takamura, T. Yamamoto, M. Fujita, Autonomous evolution of dynamic gaits with two
quadruped robots. Robotics, IEEE Transactions on, 21(3), pp. 402-410, 2005.
[27] M. Matarić, D. Cliff, Challenges in evolving controllers for physical robots. Robotics and autonomous
systems, 19(1), pp. 67-83, 1996.
[28] J. Gallagher, D. Doman, M. Oppenheimer, The technology of the gaps: An evolvable hardware synthesized
oscillator for the control of a flapping-wing micro air vehicle. Evolutionary Computation, IEEE Transactions
on, 16(6), pp. 753-768, 2012.
[29] J. Torresen, Incremental evolution of a signal classification hardware architecture for prosthetic hand
control. International Journal of Knowledge-based and Intelligent Engineering Systems, 12(3), pp.
187-199, 2008.
[30] P. Kaufmann, K. Glette, T. Gruber, M. Platzner, J. Torresen, B. Sick, Classification of Electromyographic
Signals: Comparing Evolvable Hardware to Conventional Classifiers. Evolutionary Computation, IEEE
Transactions on, 17(1), pp. 46-62, 2011.
[31] J. Wang, Q. S. Chen, C. H. Lee, Design and implementation of a virtual reconfigurable architecture for different
applications of intrinsic evolvable hardware. Computers & Digital Techniques, IET, 2(5), pp. 386-400,
2008.
[32] H. Sakanashi, M. Iwata, T. Higuchi, Evolvable hardware for lossless compression of very high resolution bi-level
images. In Computers and Digital Techniques, IEE Proceedings IET, Vol. 151, No. 4, pp. 277-286,
July 2004.
[33] K. S. R. Krishna, A. G. Reddy, M. G., Prasad, K. C. Rao, M. Madhavi, Genetic algorithm processor for
image noise filtering using evolvable hardware. International Journal of Image Processing, 4(3), pp. 240-250,
2010.
[34] A. G. Reddy, K. S. R. Krishna, M. G. Prasad, B. Rao, V. S. Principal, K. Women, Autonomously
Restructured Fault Tolerant Image Enhancement Filter. Graphics, Vision, and Image Processing, 8(3), pp.
35-40, 2008.
[35] H. C. Wu, Fault Tolerant Circuit Design Using Evolutionary Algorithms. International Journal of Computer
Science Issues, Vol. 10, Issue 1, No 1, ISSN: 1694-0814, 2013.
[36] A. P. Shanthi, R. Parthasarathi, Genetic learning based fault tolerant models for digital systems. Applied Soft
Computing, 5(4), pp. 357-371, 2005.
[37] J. C. Gallagher, An evolvable hardware layer for global and local learning of motor control in a hexapod
robot. International Journal on Artificial Intelligence Tools, 14(06), pp. 999-1017, 2005.
[38] A. Stoica, D. Keymeulen, R. Zebulum, Evolvable hardware solutions for extreme temperature electronics.
In Evolvable Hardware, 2001. Proceedings. The Third NASA/DoD Workshop on IEEE, pp. 93-97,
2001.
[39] R. S. Zebulum, X. Guo, D. Keymeulen, M. I. Ferguson, V. Duong, A. Stoica, High temperature
experiments using programmable transistor array. In Aerospace Conference, 2004, IEEE, Vol. 4, pp. 2437-
2448, 2004.
[40] A. Stoica, T. Arslan, D. Keymeulen, V. Duong, R. Zebulum, I. Ferguson, T. Daud, Evolutionary
recovery from radiation induced faults on reconfigurable devices. In Aerospace Conference, 2004, IEEE, Vol. 4,
pp. 2449-2457, March 2004.

61
Revisión de trabajos previos sobre hardware evolutivo

[41] R. S. Zebulum, D. Keymeulen, V. Duong, X. Guo, M. I. Ferguson, A. Stoica, Experimental results in


evolutionary fault-recovery for field programmable analog devices. In Evolvable Hardware, 2003. Proceedings.
NASA/DoD Conference on IEEE, pp. 182-186, July 2003.
[42] R. S. Zebulum, D. Keymeulen, J. Neff, R. Rejeshuni, T. Daud, A. Stoica, Extreme temperature electronics
using a reconfigurable analog array. In Aerospace Conference IEEE, March 2006.
[43] A. Stoica, R. Zebulum, D. Keymeulen, R. Ramesham, J. Neff, S. Katkoori, Temperature-adaptive circuits
on reconfigurable analog arrays. In Aerospace Conference, 2007 IEEE (pp. 1-6), March 2007.
[44] D. Keymeulen, A. Stoica, R. Zebulum, S. Katkoori, P. Fernando, H. Sankaran, T. Daud, Self-
reconfigurable analog array integrated circuit architecture for space applications. In Adaptive Hardware and
Systems, 2008. AHS'08. NASA/ESA Conference on IEEE, pp. 83-90, June 2008.
[45] A. Stoica, D. Keymeulen, M. Mojarradi, R. Zebulum, T. Daud, Progress in the development of field
programmable analog arrays for space applications. In Aerospace Conference, 2008 IEEE, pp. 1-9, March
2008.
[46] A. Stoica, R. S. Zebulum, M. Ferguson, D. Keymeulen, V. Dong, Evolving circuits in seconds:
Experiments with a stand-alone board-level evolvable system. In Evolvable Hardware, 2002. Proceedings.
NASA/DoD Conference on IEEE, pp. 67-74, 2002.
[47] D. A. Gwaltney, M. I. Ferguson, Hardware evolution of analog speed controllers for a DC motor. In Genetic
and Evolutionary Computation - GECCO 2003, pp. 442-453, Springer Berlin Heidelberg, January
2003.
[48] J. Becker, S. Trendelenburg, F. Henrici, Y. Manoli, A field programmable Gm-C filter array (FPAA) for
online adaptation to environmental changes. In Adaptive Hardware and Systems, 2007. AHS 2007. Second
NASA/ESA Conference on IEEE, pp. 547-553, August 2007.
[49] M. Stein, M. Ortmanns, J. Becker, Mitigating Temperature Impact on Analog Filters Using a Genetic
Algorithm on a Continuous-Time FPAA. In Ph. D. Research in Microelectronics and Electronics
(PRIME), 2012 8th Conference on VDE, pp. 1-4, June 2012.
[50] M. A. C. Pacheco, M. M. R. Vellasco, Automatic repair techniques for analog circuits. In Industrial
Technology, 2002. IEEE ICIT'02. 2002 IEEE International Conference on IEEE, Vol. 2, pp. 804-
809, December 2002.
[51] D. Keymeulen, R. S. Zebulum, Y. Jin, A. Stoica, Fault-tolerant evolvable hardware using field-programmable
transistor arrays. Reliability, IEEE Transactions on, 49(3), pp. 305-316, 2000.
[52] G. W. Greenwood, D. Hunter, E. Ramsden, Fault recovery in linear systems via intrinsic evolution.
In Evolvable Hardware, 2004. Proceedings. 2004 NASA/DoD Conference on IEEE, pp. 115-122,
June 2004.
[53] A. Fathima Jabeen, M. Y. Sanavullah, FPAA Based Bandwidth Recovery in Satellite Subsystems via Intrinsic
Evolution. In Fuzzy Systems and Knowledge Discovery, 2008. FSKD'08. Fifth International
Conference on IEEE, Vol. 3, pp. 555-559, October 2008.
[54] J. M. Hereford, Fault-tolerant sensor systems using evolvable hardware. Instrumentation and Measurement,
IEEE Transactions on, 55(3), pp. 846-853, 2006.
[55] D. Keymeulen, R. S. Zebulum, Y. Jin, A. Stoica, Fault-tolerant evolvable hardware using field-programmable
transistor arrays. Reliability, IEEE Transactions on, 49(3), pp. 305-316, 2000.
[56] D. Levi, HereBoy: A fast evolutionary algorithm. In Evolvable Hardware, 2000. Proceedings. The Second
NASA/DoD Workshop on IEEE, pp. 17-24, 2000.

62
Revisión de trabajos previos sobre hardware evolutivo

[57] C. Jorgensen, G. Greenwood, P. Arefi, Practical considerations for implementing intrinsic fault recovery in
embedded systems. In Evolutionary Computation, 2008. CEC 2008 (IEEE World Congress on
Computational Intelligence). IEEE Congress on IEEE, pp. 757-764, June 2008.
[58] E. Ramsden, G. W. Greenwood, D. Hunter, Earp-1-an evolvable analog research platform. In Evolvable
Hardware, 2005. Proceedings. 2005 NASA/DoD Conference on IEEE, pp. 20-25, June 2005.

63
64
3. Filtro adaptivo

3.1. Introducción
Como se mencionó en el Capítulo 1, los FPAA proporcionan al mundo
analógico ventajas tales como reconfigurabilidad y prototipado rápido [1]. La
característica de reconfigurabilidad provee oportunidades interesantes para realizar
sistemas que puedan adaptarse a un entorno cambiante, o que presenten la capacidad
para compensar degradaciones en los elementos que los constituyen. Para lograr esta
adaptación pueden aplicarse estrategias de EHW, particularmente, las de hardware
adaptivo [2], [3], [4].

Debido al amplio uso de los filtros analógicos, un esquema de EHW que tolere
degradaciones en estos circuitos resulta sumamente interesante. Por este motivo, se
explora en esta Tesis la viabilidad de un esquema de EHW para un filtro pasabajo de
alto orden implementado en un FPAA ispPAC10 de Lattice.

Un esquema de EHW como el planteado aquí es particularmente útil en


sistemas en los que existen recursos de hardware que pueden reutilizarse para
implementar algunas de las funcionalidades requeridas para lograr adaptabilidad, como
tareas de control, test, entre otras. Las WSN son sistemas que naturalmente presentan
esta arquitectura. Generalmente, estas redes cuentan con nodos con circuitería de
adaptación de señales, microcontroladores para gestión de operaciones en el nodo,
procesamiento de información y comunicaciones. Esto último permite que el nodo se
comunique con otros o con la computadora central [6].

Dotar de características de adaptabilidad a estos sistemas es particularmente útil


cuando los nodos están en locaciones remotas de difícil acceso para el mantenimiento.
La aplicación de las técnicas usadas en este trabajo a un sistema como el mencionado
anteriormente se ilustra en la Figura 3-1. En la misma puede verse al filtro objeto de
estudio embebido en un nodo WSN, el cual dispone de recursos como un
microcontrolador (µC), un conversor de datos y un módulo de transmisión a la
computadora central. Parte de los algoritmos necesarios para el test y para la
reconfiguración corren en esta última.

65
Filtro adaptivo

Nodo WSN
Microcontrolador

Control, evaluación y algoritmos de


Puerto Recursos del Puerto
Sensor comunicación
sistema Módulo
entrada salida
Supervisión de TRAM
RF Tx/Rx

Reconfiguración Manejo de
datos de E/S

Salida
Entrada filtro
filtro Bicuadrático Bicuadrático Bicuadrático Bicuadrático
ADC
1 2 3 4

ispPAC10 ispPAC10

Filtro adaptivo

Computadora central

Algoritmo de Procesamiento
Módulo de
reconfiguración de datos y
comunicación
basado en AG reconfiguración

Figura 3-1. Ejemplo de aplicación del filtro adaptivo.

Para establecer si es necesaria la reconfiguración del filtro, se considera que el


mismo es testeado periódicamente durante su operación en campo. Para ello, en este
trabajo se asume que es aplicado TRAM [5]. Si esta estrategia de test detecta que el
sistema no cumple con las especificaciones, entonces un GA que se ejecuta en una
computadora externa, busca un nuevo conjunto de parámetros configurables que
permiten que el filtro cumpla con las especificaciones. Luego, el hardware se configura
con estos parámetros para que el sistema continúe con su operación normal.

En este trabajo, se considera el caso de los sistemas WSN con el fin de brindar
un entorno posible de aplicación. Las técnicas presentadas son aplicables a otros
sistemas que posean recursos similares.

Dada la viabilidad de implementación de un WSN como el de la Figura 3-1 y del


filtro embebido en el mismo, nuestro trabajo se focaliza en dos aspectos que se
consideran críticos para el sistema. Estos son, demostrar la factibilidad del método de
test y evaluar la capacidad del GA para recuperar la funcionalidad ante diferentes
escenarios de degradaciones en los componentes.

66
Filtro adaptivo

Los resultados obtenidos, donde se demuestra que es posible mantener la


funcionalidad del filtro para diferentes condiciones de falla, han sido presentados en [7],
[8], [9], [10], [11].

3.2. Filtro adaptivo


Se asume que el filtro bajo estudio será implementado sobre un dispositivo
analógico configurable. Este tipo de dispositivo normalmente ofrece valores
programables de resistencias, capacidades, ganancias y rutas de interconexión. En
particular, el diseño se hace asumiendo que se dispone de los recursos de un FPAA
ispPAC10 de Lattice [14]. Se hace esta consideración debido a que se trata de una
tecnología madura, siendo posible integrar hoy en día circuitos configurables con
mayor cantidad de valores programables de componentes. Esta mayor riqueza en
recursos permitiría al GA encontrar soluciones más fácilmente.

El diseño del filtro se realiza utilizando Pac Designer [15], el cual es un entorno
de diseño basado en Windows que permite realizar circuitos analógicos utilizando la
familia de productos ispPAC. Mediante este software es posible programar las
conexiones usando los recursos internos del dispositivo elegido y establecer el valor
correspondiente para cada uno de los componentes programables. Se diseña un filtro
pasabajo de orden ocho, con ganancia en continua igual a uno, como una cascada de
cuatro secciones bicuadráticas. La topología de una sección bicuadrática puede ser
observada en la Figura 3-2.

Figura 3-2. Implementación de una sección bicuadrática en el dispositivo ispPAC10.

67
Filtro adaptivo

Como puede apreciarse en la figura, cada sección bicuadrática emplea dos


amplificadores operacionales (OA1 y OA2), dos capacitores (CF1 y CF2), cuatro
resistencias (RF1, Ro1, Ro2 y Ro3) y tres amplificadores de entrada (IA1, IA2 y IA3)
que se conectan a alguno de los dos amplificadores operacionales a través de
resistencias. Los componentes programables de cada sección bicuadrática están
constituidos por los dos capacitores y las ganancias de los tres amplificadores.

La función de transferencia bicuadrática para una salida con características de


filtrado pasabajo se puede expresar de la siguiente manera [14]:

( ) ,

( ) ( ) (1)
( )
( ) ( ) ( )

En (1), k11, k12 y k21 son ganancias programables correspondientes a cada


amplificador de entrada (IA), visualizados en la Figura 3-2. CF1 y CF2 representan los
valores de los capacitores y los valores 250kΩ corresponden a los de las resistencias
mostradas en la figura.

Considerando los recursos disponibles en un dispositivo ispPAC, el mismo


permite la implementación de un máximo de dos filtros bicuadráticos. Por este motivo,
la implementación del filtro de octavo orden requiere del empleo de dos chips [14],
[16].

La expresión de la función de transferencia del filtro de octavo orden, Hy(s), en


función de los componentes del dispositivo es la siguiente:

( ) ( ) (2)
( ) ∏( )
( ) ( ) ( )

En (2), el subíndice i indica el número de etapa bicuadrática. Cada implementación de


un filtro con transferencia Hy requiere configurar 8 capacitores (CF1i y CF2i para cada

68
Filtro adaptivo

etapa bicuadrática i) y 12 ganancias (k11i, k12i y k21i para cada etapa bicuadrática i).
Como se mencionó en el Capítulo 1, estas ganancias pueden programarse en el rango
de -10 a +10 en pasos de 1. No obstante, con el propósito de alcanzar una
implementación estable estos valores deben ser restringidos [14]. Por este motivo, se
considera que k11i y k12i pueden ser programados utilizando valores enteros
comprendidos entre -10 y -1; por otro lado, k21i puede ser programado empleando
valores enteros comprendidos entre 1 y 10. Los capacitores CF pueden configurarse
adoptando uno de los 128 valores posibles (entre 1.07pF y 61.59pF).

La Figura 3-3 muestra la implementación mediante el empleo de dos chips, del


filtro de octavo orden, el cual es referenciado en adelante como filtro nominal. Además,
se visualizan los valores adoptados por cada parámetro configurable del mismo.

Sección 1 Sección 2 Sección 3 Sección 4


CF11= 16.05 CF12= 19.11 CF13= 28.11 CF14= 61.59
k111= -1 k112= -1 k113= -1 k114= -1
Vin RF1 RF1 RF1 RF1
Ro1 Ro1 Ro1 Ro1
IA11 IA12 IA13 IA14

OA11 OA12 OA13 OA14


k211= 1 k212= 1 k213= 1 k214= 1
Ro2 Ro2 Ro2 Ro2
IA21 IA22 IA23 IA24

CF21= 61.59 CF22= 53.14 CF23= 35.25 CF24= 12.39


k121= -1 k122= -1 k123= -1 k124= -1
Ro3 Ro3 Ro3 Ro3
IA31 IA32 IA33 IA34
OA21 OA22 OA23
Vout
OA24

ispPAC10 N°1 ispPAC10 N°2

Figura 3-3. Filtro de octavo orden (filtro nominal).

Por otro lado, en la Figura 3-4 se visualiza la respuesta en frecuencia del filtro
diseñado, denominada Hn(j2f), que corresponde a la llamada respuesta nominal. Esta
característica es la que debe mantenerse dentro de ciertos límites de tolerancia durante
la operación en campo.

69
Filtro adaptivo

-50

Magnitud Hn (dB)
-100

-150

-200

-250

-300 3 4 5 6
10 10 10 10
Frecuencia (Hz)

(a) Magnitud de la función Hn(j2f) expresada de dB.

-90

-180

-270
Fase (deg)

-360

-450

-540

-630

-720
3 4 5 6
10 10 10 10
Frecuencia (Hz)

(b) Fase de la función Hn(j2f).


Figura 3-4. Respuesta en frecuencia del filtro nominal.

3.3. Test del filtro


Para determinar la necesidad de reconfiguración del filtro ante posibles
degradaciones en los componentes del mismo, se asume la aplicación de TRAM. A
continuación, se describen las características generales de esta estrategia de test y luego
se detalla la manera en que la misma fue aplicada para detectar la presencia de fallas en
el filtro de alto orden.

3.3.1. Consideraciones generales sobre TRAM


TRAM es una metodología de test que ha sido propuesta para filtros
implementados como cascada de secciones de segundo orden [5], [17], [18], [19], [20],

70
Filtro adaptivo

[21], [22]. Es un método de test muy atractivo debido a su alta eficiencia y aplicación
relativamente directa.

En esta estrategia, cada sección bicuadrática es excitada con una señal de


entrada que produce una respuesta transitoria sub-amortiguada. De acuerdo a las
características del bloque, la entrada puede ser un escalón (filtro pasabajo), rampa (filtro
pasabanda) o parábola (filtro pasa-alto).

En TRAM, se asume que una falla producirá un cambio en el tiempo de


ocurrencia de pico (Tp) o en el valor de sobrepico (OS) de la respuesta transitoria de
salida. Estos parámetros son denominados atributos de test y se muestran en la Figura
3-5, en la cual también se visualizan el valor de la tensión de pico (Vp), el de estado
estacionario (Vs) y el tiempo de establecimiento (Ts). Los mismos se utilizan más
adelante en este capítulo.

OS
Tensión de
salida (V)

Vp
Vs

Tp Tiempo

Ts

Figura 3-5. Respuesta al escalón de un filtro de segundo orden, mostrando los parámetros Tp,
Vp, OS, Vs y Ts.

El método de test considerado permite deducir la presencia de fallas en una


sección de segundo orden mediante la verificación del valor de los mencionados
atributos de test en una ventana de aceptabilidad definida previamente.

La capacidad de TRAM para detectar diferentes tipos de fallas ha sido


demostrada previamente [5], [17]. Se adopta esta estrategia debido a la simplicidad de su
implementación y a que ha sido estudiada para el dispositivo ispPAC10 [23], si bien no
ha sido aplicada todavía en EHW.

71
Filtro adaptivo

3.3.2. Implementación de TRAM


Para aplicar la mencionada estrategia de test, se deben proveer medios para
pasar el filtro de modo normal a modo test. Esto se ilustra en la Figura 3-6, en la que se
muestra una de las secciones de segundo orden. Si las llaves S1 y S2 se encuentran
cerradas y S3 y S4 abiertas, el filtro está conectado en cascada y cumple su función
normal. Por el contrario, S1 y S2 abiertas y S3 y S4 cerradas permiten el paso a modo
test. En este modo es posible inyectar los estímulos de test y dirigir las respuestas a un
ADC. Esta tarea se repite secuencialmente para cada una de las secciones.

Figura 3-6. Configuración utilizada para aplicar TRAM a una etapa bicuadrática.

La adopción de TRAM como estrategia de test para detectar la presencia de


fallas es posible debido a que, como se mencionó anteriormente, el mismo se encuentra
particionado en secciones de segundo orden.

En esta Tesis se plantea utilizar esta estrategia de test de forma diferente a lo


propuesto previamente para el test de filtros [5], [23]. En particular, se propone efectuar
la medición de los atributos de test con el propósito de utilizarlos para estimar la
función de transferencia del filtro.

La función de transferencia de una sección bicuadrática pasabajas HLP(s),


expresada en términos de la frecuencia natural no amortiguada (ωn), el factor de
amortiguamiento (ζ) y de la ganancia en continua (AvDC) [24] es:

( ) (3)

72
Filtro adaptivo

Tp y OS están relacionados con ωn y ζ de acuerdo a las expresiones (4) y (5)


[24]:

(4)

(

) (5)

donde .

Las ecuaciones (3), (4) y (5) permiten determinar ζ y ωn a partir de las


mediciones de Tp, Vp y Vs (mostradas en la Figura 3-5). El valor de ganancia AvDC se
obtiene teniendo en cuenta el valor de Vs y el valor del escalón unitario U (o estímulo
de entrada), de acuerdo a la siguiente expresión:

(6)

De esta forma, puede reconstruirse la función de transferencia de cada etapa


bicuadrática y en consecuencia es posible obtener la función completa de la cascada.
Esta última es comparada con la función nominal, con el propósito de determinar si es
necesario iniciar el proceso de reconfiguración en el entorno de aplicación supuesto.
Tp, Vp y Vs podrían determinarse en un nodo WSN, luego transmitirse a la
computadora central y en ella realizar los cálculos restantes.

La utilización de TRAM de una manera diferente a la convencional requiere la


revisión de algunos aspectos de implementación adicionales. La misma se posterga
para secciones posteriores.

3.4. Algoritmo genético

El GA debe encontrar los valores de ganancia de los IA (k11i, k12i y k21i) y los
valores de los capacitores (CF1i y CF2i), correspondientes a cada etapa bicuadrática i,
que cumplan con el objetivo de mantener la respuesta total del filtro Hy(s) (ecuación 2)
dentro de especificaciones propuestas para la banda de paso, el punto de corte, la banda

73
Filtro adaptivo

de transición y la banda de atenuación. A continuación, se detallan los aspectos más


importantes referidos a la implementación del mismo.

3.4.1. Implementación
El GA que ha sido desarrollado para llevar a cabo la búsqueda de los valores de
configuración apropiados, mantiene la estructura de un GA clásico, como el descripto
en el Capítulo 1. Por razones de claridad, en la Figura 3-7 se muestra nuevamente el
diagrama de flujo que resume las principales acciones que un GA realiza.

Operadores genéticos

1.Inicializar
2. Evaluación 3. Selección 4. Cruce 5. Mutación
Población

No 6. Criterio
de parada
cumplido?

Si

7. Solución

Figura 3-7. Diagrama de flujo de un GA clásico.

En los siguientes párrafos se describe la manera en que cada bloque del


diagrama ha sido implementado en este caso de estudio particular. La numeración de
los mismos se realiza de acuerdo al bloque correspondiente en el diagrama.

1. Inicializar población: El GA utiliza el método de generación aleatoria


uniforme para crear la población inicial de individuos. En este caso, cada individuo
representa una posible configuración de filtro, caracterizada por los valores de ganancia
(k11i, k12i y k21i) y capacidad (CF1i y CF2i) de las cuatro etapas bicuadráticas. En la
Figura 3-8 se muestra la estructura del cromosoma utilizado por el GA para representar
a cada individuo.

74
Filtro adaptivo

Individuo (fenotipo)
k111 k121 k112 k122 k113 k123 k114 k124 k211 k212 k213 k214 CF11 CF21 CF12 CF22 CF13 CF23 CF14 CF24

Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen Gen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Cromosoma (genotipo)

Figura 3-8. Estructura del cromosoma utilizado por el GA.

Como puede apreciarse en la figura cada gen del cromosoma o genotipo


representa la ganancia de un IA o la capacidad de un capacitor en una etapa
bicuadrática. No obstante, en el mismo no es codificado el valor de la ganancia o de la
capacidad, sino la posición de éstos en el correspondiente registro de valores posibles de
ganancias o de capacitores. Esta consideración resulta necesaria debido a que la
estrategia de test utilizada no proporciona al GA los valores actuales de capacidades y
ganancias.

La representación de cada uno de los veinte genes que conforman el


cromosoma es realizada mediante codificación entera [25], la cual permite formar el
alfabeto de valores posibles para ganancias y capacidades directamente con sus
posiciones posibles en los respectivos registros de valores ganancias y capacitores. En la
Figura 3-9 se muestra como ejemplo un cromosoma generado por el GA.

Individuo (fenotipo)
k111 k121 k112 k122 k113 k123 k114 k124 k211 k212 k213 k214 CF11 CF21 CF12 CF22 CF13 CF23 CF14 CF24

2 3 2 1 4 1 2 4 4 1 1 3 13 114 25 56 78 84 19 120

Cromosoma (genotipo)

Figura 3-9. Ejemplo de un cromosoma generado por el GA.

En la figura, por ejemplo, el primer gen representa la ganancia de un IA


perteneciente a la primera etapa bicuadrática. El valor de este gen es 2, por lo tanto, el
mismo está codificando la ganancia que se encuentra en la segunda posición, en el
registro de ganancias disponibles.

En el Apéndice 1 se proporcionan mayores detalles relacionados a la técnica


utilizada para generar la población inicial y a la estrategia de codificación empleada.

75
Filtro adaptivo

2. Evaluación: Para cada generación, los individuos de la población actual son


evaluados mediante un proceso que comprende varias actividades, las cuales se
encuentran esquematizadas en la Figura 3-10 y descriptas en los siguientes párrafos.

2. 1. Aplicar TRAM
2. Evaluación (evaluación intrínseca)

2. 2. Aplicar Función
Fitness (WSM)

2.3. Incorporar
Restricciones (CM)

No 2.4. Si
2.4.2. Aplicar Premio 2.4.1. Aplicar
Violación de
Restricciones? Penalización

2.5. Aplicar Función


Sharing

Figura 3-10. Proceso de evaluación de los individuos.

2.1. Aplicar TRAM: El primer paso en la etapa de evaluación consiste en la


aplicación de TRAM a cada uno de los individuos. Como se explicó en la sección 3.2.2,
la mencionada estrategia de test puede ser utilizada de una manera no convencional
para obtener la función de transferencia del filtro de octavo orden. En este trabajo, se
propone utilizar este método para efectuar la evaluación de cada uno de los individuos
que el GA va generando en cada iteración. Para ello, se asume una interacción entre el
algoritmo y el filtro adaptivo que permite llevar a cabo el proceso de evaluación de
manera intrínseca, lo cual trae aparejado el conjunto de ventajas que ha sido descripto en
el Capítulo 1. La Figura 3-11 ilustra el concepto, proporcionando a continuación una
explicación más detallada del mismo.

En cada generación o iteración del GA, los valores de ganancias y capacidades


correspondientes a cada uno de los individuos son transferidos al dispositivo
(configuración del dispositivo). El filtro se establece en modo test y se aplica TRAM. El
ADC y el µC local realizan las mediciones de Tp, Vp y Vs y se las transfieren a la
computadora central. En ésta se calcula la función de transferencia de cada etapa y la

76
Filtro adaptivo

global (Hy(s)), mediante las ecuaciones (3), (4) y (5), respectivamente, como se explicó
en la sección 3.3.2. De esta forma, la aplicación de TRAM permite reconstruir la
función de transferencia de cada uno de los individuos en cada generación.

Figura 3-11. Interacción entre el GA y el filtro adaptivo para el cálculo del fitness de un
individuo (y).

2.2. Aplicar Función Fitness: La asignación de aptitud o fitness de cada individuo se


efectúa mediante la comparación de la respuesta en frecuencia de la función
reconstruida mediante TRAM, contra la nominal (Hn(s)). Esta comparación se realiza
en cuatro frecuencias, ubicadas en la banda de paso, en el punto de corte (frecuencia de
-3dB), en la banda de transición y en la banda de atenuación.

La comparación en la banda de paso se realiza evaluando preliminarmente tres


frecuencias. Posteriormente, participa del fitness sólo aquella comparación en la
frecuencia que presenta la respuesta más alejada de la nominal. Esta evaluación
preliminar se realiza debido a que la banda de paso puede presentar diferencias
importantes solo en diferentes secciones de la misma (por ejemplo, cuando se trata de
una respuesta que presenta picos). Por lo tanto, no es suficiente una sola frecuencia
para evaluar la respuesta de un individuo. Las tres frecuencias se seleccionan a partir de
experimentos efectuados con el propósito de detectar diferencias en la respuesta del
individuo con la menor cantidad de evaluaciones.

En la Figura 3-12 se visualizan las frecuencias consideradas en cada banda para


efectuar la evaluación.

77
Filtro adaptivo

0.8 Banda de Paso


Magnitud Hn (abs)

Punto de Corte

0.6
Banda de Transición

0.4

0.2
Banda de Atenuación

0 13 12.8 17.9 21.2


1
10 Frecuencia (KHz) 9.76 (Hz)
Frecuencia 28.1 100105
gg

Figura 3-12. Frecuencias consideradas en cada banda por el GA para realizar la evaluación.

La comparación en cada una de las bandas de la respuesta correspondiente a


cada individuo con la del filtro nominal debe permitir la determinación de un parámetro
numérico que pondere el grado de diferencia que existe en cada banda. Con este
propósito, el GA determina para cada individuo (y) el error relativo en magnitud (ERMy),
mediante la siguiente expresión:

| ( )| | ( )|
( ) | | . (7)
| ( )|

En (7), k adopta los valores 1, 2, 3 y 4 para representar a la banda de paso, el


punto de corte, la banda de transición y la banda de atenuación, respectivamente. Los
valores de fk corresponden a las frecuencias seleccionadas en cada banda k para efectuar
la evaluación. Hy es la función de transferencia del individuo (y) reconstruida
empleando TRAM y Hn es la respuesta nominal definida como respuesta objetivo.

La determinación del ERM observado en cada banda permite definir de manera


más precisa el problema de optimización que el GA debe resolver. En este caso, el
algoritmo debe encontrar una solución (configuración de filtro) que permita mantener
el ERM correspondiente a cada una de las bandas dentro de especificaciones definidas.
Es posible apreciar que se trata de un problema de optimización multiobjetivo (MOP,
Multiobjective Optimization Problem) [25], [26], [27]. Las características de este tipo de
problemas se encuentran descriptas en el Apéndice 2. El MOP puede expresarse, para
este caso de estudio, mediante la siguiente expresión:

78
Filtro adaptivo

∑ ( ) (8)

s. a.: ( ) ,

donde Ek representa el error máximo tolerable definido para cada banda.

En este trabajo, se considera que el objetivo más importante es mantener la


respuesta del filtro dentro de determinadas especificaciones en el punto de corte. Éstas
se hacen progresivamente menos estrictas en la banda de paso, en la banda de
transición y en la banda de atenuación, respectivamente. Esta consideración permite el
uso de métodos de optimización a priori [25], [26], [27] para resolver el problema (en el
Apéndice 2 se brinda una descripción de estos métodos). Particularmente, el método de
suma ponderada (WSM, Weighted Sum Method) [25], [27], [28], [29], [30] permite
representar en la función fitness estas consideraciones. Utilizando WSM se formula la
función fitness f que permite asignar un valor inicial de aptitud a cada individuo. La
misma resulta:

( ) ∑ [ ( )] (9)

donde [ ] ∑

En (9), los valores wk corresponden a los pesos que permiten representar el


grado de importancia asignado al error relativo en cada una de las bandas. Como se
mencionó en la formulación del MOP, el propósito del GA es minimizar los ERM
correspondientes a cada banda. No obstante, en (9) la función fitness f es formulada
para obtener un máximo, por lo cual se adiciona una constante positiva B para evitar
valores negativos en la función.

2.3. Incorporar restricciones: Luego de la aplicación de la función fitness f a cada


individuo, es utilizado el método de restricciones-ɛ (CM, ɛ-Constraint Method) [25],
[29], con el propósito de mejorar la asignación de aptitud efectuada mediante WSM. La
utilización de CM en esta etapa permite refinar aún más el valor de fitness de cada
individuo, teniendo en cuenta el grado de cumplimiento o violación de las restricciones

79
Filtro adaptivo

enunciadas en (8), referidas a los errores tolerables máximos permitidos (Ek) en cada
una de las bandas:

( ) (10)

En la Figura 3-13 se visualiza la interpretación gráfica de los Ek, con referencia a


la respuesta nominal.

1
+E1
+E1
-E1 +E1
-E1
0.8 -E1
+E2
Magnitud Hn (abs)

-E2
0.6
+E3
-E3
0.4

0.2
+E4
-E4
0 9.76 12.8 17.9 21.2 28.1
13 Frecuencia (KHz) Frecuencia (Hz)
B. de 100 5
10 (KHz)
10
B. de Paso gg
P. de Corte B. de Transición Atenuación

Figura 3-13. Errores máximos tolerables permitidos en cada banda.

La aplicación de estas restricciones se efectúa mediante el uso estrategias de


penalización y de premiación, que disminuyen o incrementan, respectivamente, el valor
de fitness de cada individuo. A continuación, se detalla la manera en que fueron
implementadas en el GA las dos estrategias mencionadas.

2.4.1. Aplicar penalización: Con el objetivo de aplicar las restricciones, el GA


penaliza los individuos que presentan ERM superiores a los definidos en (10) con el
propósito de disminuir su valor de fitness. Para estos individuos el algoritmo calcula el
factor de penalidad p para cada banda k en la cual el ERM sea superior a E k, de acuerdo
a la siguiente expresión:

( )
( ) ( ) (11)
{

80
Filtro adaptivo

Como puede observarse en (11), el factor de penalidad pk se incrementa a


medida que el ERM crece con respecto al error máximo tolerable Ek definido para cada
banda.

Estos individuos adoptan un nuevo valor de fitness más bajo (Lf). Como se
aprecia en la siguiente expresión, la disminución del valor de fitness se efectúa
considerando además del factor pk, el nivel de importancia asignado a cada banda, el
cual se representa mediante los pesos wk:

( ) ( )( ∑ ) (12)

2.4.2. Aplicar premio: el GA aplica una técnica de premiación en aquellos


individuos que presentan ERM menores o iguales a los errores máximos tolerables en
las cuatro bandas. Para estos individuos, el algoritmo calcula el factor de premiación ak, de
acuerdo a la siguiente expresión:

( )
( ) (13)

El nuevo valor de fitness más alto (Hf) se calcula considerando el factor ak y el


nivel de importancia asignado a cada banda (representado por wk), mediante la siguiente
expresión:

( ) ( )( ∑ ) (14)

2.5. Aplicar función sharing: El GA incorpora en la última etapa del proceso de


evaluación de los individuos una estrategia de diversificación de la población mediante
una función sharing. El objetivo de esta función es mantener la población distribuida a
través de las múltiples regiones del espacio de búsqueda para prevenir la convergencia
prematura a un óptimo local. El método de la función sharing [25], [30] considera que
el fitness debe ser compartido como un único recurso entre individuos similares en la
población. Este método trabaja degradando el fitness de cada individuo, de acuerdo a
un indicador relacionado con el número de individuos similares en la población.

81
Filtro adaptivo

Específicamente, el nuevo fitness f’ de un individuo y es igual al fitness original f (Lf o


Hf) dividido por un contador, el cual contiene la suma de los valores de la función
sharing sh evaluada entre el individuo y otros individuos de la población:

( )
( ) (15)
∑ ( ( ))

En (15), n es el tamaño de la población. La función sharing sh es una función de


la distancia entre dos elementos de la población (j y y), la cual retorna un "1" si ambos
elementos son idénticos, un "0" si estos sobrepasan un umbral de similitud
(especificado por una constante de distancia, σ), y un valor intermedio para niveles
intermedios de similitud. La función sh es la siguiente:

( )
( ( )) { ( ) (16)

donde d(j,y) es una función que calcula la distancia entre los individuos j y y. Para ello,
dicha función debe comparar ambos individuos de alguna manera con el propósito de
establecer el nivel de diferencias que hay entre ellos. En este caso particular, se propone
efectuar la comparación de los valores de los genes correspondientes en los
cromosomas de ambos individuos para determinar la cantidad de genes diferentes. Esta
cantidad es el valor que se le asigna a d(j,y). En la Figura 3-14 se muestra el valor que
adopta d(j,y) para los cromosomas pertenecientes a dos individuos (j y y) propuestos
como ejemplo.

Cromosoma (genotipo)
Individuo j
2 1 4 1 3 4 2 3 1 3 2 25 114 8 76 48 99 120 101 3

2 1 2 1 3 4 4 2 2 3 2 25 110 29 122 74 99 120 101 39


Individuo y
Cromosoma (genotipo)

d(j,y) = cantidad de genes diferentes = 9

Figura 3-14. Ejemplo del cálculo de d(j,y).

82
Filtro adaptivo

Luego del proceso de evaluación descripto, cada individuo posee asociado un


valor de fitness que es consistente con su grado de proximidad a las características de la
respuesta del filtro nominal.

3. Selección: La selección de los individuos para la siguiente generación se


efectúa utilizando el método de la ruleta giratoria [25], [31], el cual hace posible que
aquellos con valores de aptitud más altos presenten mayores probabilidades de ser
seleccionados. De esta manera, se traslada consistentemente la diferenciación entre los
individuos alcanzada en el proceso de asignación del fitness a las probabilidades de
selección de cada uno.

4. Cruce: La operación de cruce se efectúa utilizando el operador de cruce en


tres puntos o el operador de cruce en un punto [25], [30], [31] de manera adaptiva, de
acuerdo a las características de la población actual.
Las primeras generaciones del GA corresponden a la fase de exploración del
espacio de búsqueda, durante la cual es conveniente un alto intercambio de información
entre los cromosomas con el propósito de explorar la mayor cantidad posible de
caminos de búsqueda. Por este motivo, en esta etapa es utilizado el operador de cruce
en tres puntos, cuyo funcionamiento clásico se describe en el Apéndice 1. No obstante,
es necesario destacar que la generación de los puntos de cruce no es efectuada de la
manera tradicional, sino que en este caso particular se genera de manera aleatoria un
punto de cruce para los genes que representan los valores negativos de ganancia de los
IA, otro para los genes que representan los valores positivos de ganancia de los IA y el
tercer y último punto de cruce para los genes que representan las capacidades. De esta
manera, al garantizar el intercambio de información entre cromosomas en los tres tipos
de genes, se proporcionan más oportunidades para diversificar la búsqueda. La Figura
3-15 muestra, a modo de ejemplo, la aplicación del operador mencionado sobre dos
cromosomas.

Luego de varias generaciones durante las cuales el GA permanece en la etapa de


exploración, es esperable que mejore la calidad de las configuraciones de filtro que
encuentra en cada generación. Para el filtro de alto orden el parámetro que permite
apreciar esta mejora es el ERM en cada una de las bandas. De esta manera, cuando el

83
Filtro adaptivo

GA detecta que alguna de las configuraciones de filtro generadas posee ERM que se
aproximan en cierto grado a los errores máximos tolerables (Ek) definidos para cada
banda, inicia una fase de explotación. La misma tiene como propósito encontrar una
solución dentro de algunos de los subespacios de búsqueda en los que el GA se
encuentra explorando actualmente. Para alcanzar este objetivo, se propone cambiar el
operador de cruce y empezar a utilizar el operador de cruce en un solo punto (este
operador es explicado en el Apéndice 1). Este cambio contribuye a facilitar la tarea de
explotación que debe efectuar el GA en esta etapa, mediante la disminución del
intercambio de información entre cromosomas.

Si luego del transcurso de cierta cantidad de generaciones consecutivas el


algoritmo no encuentra una solución que cumpla con las especificaciones, comienza a
utilizar nuevamente el operador de cruce en tres puntos de la manera descripta en el
párrafo anterior, iniciando una nueva fase de exploración.

Ganancias negativas Ganancias positivas Capacidades

Punto de cruce 1 Punto de cruce 2 Punto de cruce 3

Padre 1 2 1 2 7 1 3 9 2 1 4 4 3 120 23 7 12 68 98 112 6

Padre 2 9 4 2 1 8 7 2 3 2 6 1 8 12 2 78 110 44 32 100 65

Hijo 1 2 1 2 1 8 7 2 3 1 4 4 8 120 23 7 12 44 32 100 65

Hijo 2 9 4 2 7 1 3 9 2 2 6 1 3 12 2 78 110 68 98 112 6

Figura 3-15. Aplicación del operador de cruce en tres puntos.

5. Mutación: El operador de mutación se aplica utilizando el método de


mutación aleatorio uniforme [25] (el funcionamiento del mismo se detalla en el
Apéndice 1). La probabilidad de aplicación de este operador varía de manera adaptiva
entre dos valores definidos. Esta variación complementa la utilización de los dos
operadores de cruce descripta anteriormente, con el propósito de hacer más eficientes
las fases de exploración y explotación del GA. Durante las primeras generaciones y aún
si el GA cambia a la estrategia de cruce en un solo punto, es utilizada una probabilidad
de mutación inicial Pmi que se caracteriza por tener asociado un valor bajo. Solamente
en el caso en el cual se deba retomar la estrategia de cruce en tres puntos por no haber
84
Filtro adaptivo

encontrado una solución mediante el operador de cruce en un punto, se aplica una


probabilidad de mutación alta pma. Esta probabilidad se aplica solamente en una
generación con el propósito de introducir nuevos genes en algunos cromosomas que
permitan reorientar la búsqueda. En las siguientes generaciones es adoptada
nuevamente Pmi.

6. Finalización: El criterio de parada consiste en encontrar una solución que


cumpla con los criterios de performance definidos, o bien alcanzar un determinado
número de generaciones.

7. Solución: La configuración de filtro que resulta ser la solución


proporcionada por el GA depende de la manera en la cual finaliza la ejecución. Si el
mismo se detiene porque se satisfacen los criterios de performance por al menos un
individuo, la solución está representada por el individuo con el fitness más alto de la
generación actual. Si por el contrario, el motivo de finalización de la ejecución de GA es
haber alcanzado el número máximo de generaciones, se considera como solución
aquella configuración de filtro representada por el individuo con el fitness más alto
considerando todas las generaciones transcurridas.

En el Apéndice 3 se muestra el código Matlab desarrollado para implementar el


bloque de inicialización de la población, la función sharing, y los operadores genéticos,
los cuales comprenden los bloques de selección, cruce y mutación.

3.4.2. Parámetros del GA


El algoritmo se implementa utilizando como parámetros una población inicial
de 200 individuos, probabilidad de cruce de 1, probabilidad inicial de mutación (pmi) de
0.1, probabilidad alta de mutación (pma) de 0.4. Por otro lado, el valor de la constante de
distancia σ utilizada en la función sharing (ecuación 16) es 3. Todos los valores han sido
seleccionados a partir de experimentos donde se consideraron diferentes alternativas
para cada parámetro.

El valor de la constante B utilizada en la función fitness (ecuación 9) es 100 y


los valores asignados a los pesos utilizados en la misma son w1=0.4, w2=0.3, w3=0.15 y

85
Filtro adaptivo

w4=0.15. Estos valores fueron obtenidos después de realizar experimentos con


diferentes combinaciones de pesos, considerando el grado de importancia asignado al
error en cada banda. La combinación de pesos que provee la mejor performance fue
seleccionada.

Con fines demostrativos, se establece el valor del error máximo tolerable en


cada banda (ecuación 10), de la siguiente manera: E1=±10%, E2=±5%, E3=±15% y
E4=±20%. El GA se detiene cuando alcanza 200 generaciones, o bien cuando
encuentra una solución cuyos ERM no superan el error máximo tolerable definido para
cada banda.

3.5. Consideraciones prácticas de TRAM


TRAM se utiliza en dos aspectos claves de la estrategia de EHW, tales como la
determinación del inicio de la reconfiguración y la evaluación intrínseca de los
individuos. Por esta razón, se debe establecer la viabilidad de su implementación. La
utilización de TRAM de una manera diferente a la convencional requiere la revisión de
algunos aspectos de implementación adicionales, los que se abordan a continuación.

3.5.1. Determinación del tiempo de medición de la respuesta


transitoria
Durante la ejecución del GA se realiza una búsqueda en un espacio compuesto
por todos los valores posibles de ganancias y capacitores. Como se mencionó en la
sección 3.4.1, las posibles soluciones (individuos generados en cada iteración del GA) se
evalúan programando el filtro y midiendo sus respuestas transitorias. Como
consecuencia de la búsqueda heurística en un espacio tan amplio, aparecen individuos
con respuestas muy variadas. Por este motivo, para aplicar TRAM se requiere establecer
el tiempo de adquisición de datos adecuado para todos los casos que puedan
presentarse. Este tiempo debe permitir una determinación con errores bajos de los
parámetros funcionales de cada etapa bicuadrática. La elección es una solución de
compromiso entre dos requerimientos, por un lado medir adecuadamente todas las
respuestas posibles de las etapas mencionadas (tiempos largos asegurarían esta
condición) y por otro reducir el tiempo de test.

86
Filtro adaptivo

El tiempo de medición se establece usando un enfoque estadístico basado en


una simulación Montecarlo en Matlab. Para ello, se considera una muestra de filtros
bicuadráticos pasabajos de tamaño 100.000. Se emplean en este análisis los valores
nominales de los parámetros programables del filtro. En la Tabla 3-1 se muestra una
caracterización de los resultados obtenidos en la simulación Montecarlo efectuada, con
respecto a los parámetros Ts y Tp de la respuesta al escalón (Figura 3-5).

Tabla 3-1. Caracterización de Ts y Tp mediante Montecarlo.

Ts (ms) Tp (ms)
Máximo 0.1624 0.2730
Mínimo 1.52E-06 4.21E-07
Promedio 0.0638 0.0270

Como puede observarse en la tabla, los valores máximos de Ts y Tp son


ampliamente superiores al promedio y al mínimo. En este punto, es necesario
profundizar el análisis de los resultados obtenidos para conocer la distribución de los
valores de estos parámetros. Para ello, se muestran en la Figura 3-16 los histogramas
correspondientes a la distribución de los valores adoptados por Ts y Tp, en la
simulación Montecarlo efectuada.

6000

5000

4000
Frecuencia

3000

2000

1000

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18
Ts (ms)

(a) Valores obtenidos de Ts.

87
Filtro adaptivo

4
x 10
2.5

1.5
Frecuencia

0.5

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Tp (ms)

(b) Valores obtenidos de Tp.


Figura 3-16. Histogramas correspondientes a la simulación Montecarlo.

En la figura es posible apreciar que valores de Ts y Tp mayores a 0.15ms


ocurren con muy baja frecuencia. Se estima que el tiempo de test mínimo que asegura
que las posibles respuestas se puedan medir adecuadamente es menor a 0.15ms en el
99.0% de la población (con un intervalo de confianza de 95%).

No obstante, se debe tener en cuenta que los valores de los capacitores y


ganancias pueden degradarse durante la operación en campo del sistema, situación que
conduce a que la respuesta del filtro se aparte de la nominal y en consecuencia la
distribución de los tiempos varíe. Por este motivo, se decide tomar conservadoramente
0.3ms como tiempo de medición.

3.5.2. Estimación de los errores en la determinación de la función de


transferencia
La utilización de un ADC para la medición de la respuesta transitoria introduce
errores en la determinación de los parámetros funcionales del filtro debido a los efectos
de la discretización en tiempo y amplitud. Estos errores dependen de la frecuencia de
muestreo del conversor y de su resolución, y deben ser estimados para verificar la
viabilidad de reconstrucción de la función del filtro. Para nuestro caso de estudio, se
adopta un conversor de 14 bits con 10MHz de frecuencia de muestreo. La elección de
estas especificaciones tiene en cuenta los resultados de la simulación Montecarlo de los
posibles filtros, detallada en la sección 3.5.1. Para esto se consideran los valores de Tp

88
Filtro adaptivo

mínimos (que determinan la frecuencia de muestreo) y la tensión mínima que puede


medir el ADC (que define la resolución).

Para estudiar la distribución de los errores se modela el filtro a nivel función de


transferencia y el conversor en Matlab-Simulink. En la Figura 3-17 se muestra el
esquema de simulación.

Figura 3-17. Esquema de simulación de errores debido al ADC.

El experimento de simulación es controlado por Matlab, que corre un análisis


Montecarlo. Para cada iteración de este análisis, entrega al modelo Simulink los
parámetros programables del filtro (valores de ganancia de los IA y de capacidades) y
corre una simulación para obtener la respuesta transitoria.

La mencionada respuesta transitoria es la entrada del modelo del ADC, cuya


salida (denominada salida discretizada en la figura) está representada por una matriz que
contiene para cada tiempo de muestreo el correspondiente valor asignado a la respuesta
transitoria por el conversor. A partir de estos datos deben determinarse los valores
estimados de los parámetros. A continuación, se detalla la manera en que los mismos
fueron determinados:

 Vp: corresponde al máximo valor asignado por el conversor a la respuesta


transitoria.
 Tp: como consecuencia de la discretización puede ocurrir que exista más de un
tiempo de muestreo para el valor de Vp. Por este motivo, con el propósito de
disminuir el error asociado en la estimación de este parámetro, su valor es obtenido

89
Filtro adaptivo

a partir del promedio de los tiempos de muestreo en los que el conversor entrega el
valor máximo Vp.
 Vs: su valor se obtiene a través del promedio de los valores asignados por el
conversor a la respuesta transitoria en el último 0.1ms.

A partir de la determinación de estos valores es posible efectuar el cálculo del


valor estimado de los parámetros funcionales del filtro (AVDC, ζ y ωn), los cuales pueden
ser luego contrastados contra los parámetros funcionales reales para obtener los errores
relativos correspondientes.
No obstante, deben tenerse en cuenta dos aspectos importantes:

1. La aplicación de TRAM mediante la medición de Tp, Vp y Vs permite la


determinación de la función de transferencia del filtro sólo si la respuesta es
subamortiguada, ya que de lo contrario (en respuestas sobreamortiguadas)
no es posible el cálculo de Tp y Vp porque no se producen
sobreelongaciones o sobrepicos en dicha respuesta.

2. Por otro lado, la determinación de OS a partir de Vp y Vs presenta errores


relativos crecientes a medida que OS disminuye.

Por las razones expuestas, en esta aplicación de TRAM deben hacerse las
siguientes restricciones:

1. En primer lugar, y a los fines de descartar configuraciones con respuesta


sobreamortiguada, se asume que si Tp se encuentra dentro de los últimos
0.1ms, el sistema es sobreamortiguado. Esta consideración se basa en los
resultados de la simulación Montecarlo de la sección anterior, que establece
que filtros con Tp mayores que 0.2ms tienen muy baja probabilidad de
ocurrencia.

2. Por otro lado, y para limitar el error en la determinación de OS, se considera


que sobrepicos inferiores a 10 veces el mínimo valor de tensión que es
capaz de discriminar el ADC no podrán ser medidos adecuadamente. Por

90
Filtro adaptivo

este motivo, tampoco estos filtros son tenidos en cuenta como posibles
soluciones al problema.

El experimento de simulación realizado considera para el conversor una tensión


máxima de 5V. De esta manera, teniendo en cuenta la resolución del conversor
seleccionado (14 bits), es posible discriminar hasta una tensión mínima de 3.05 10-4V.
Por otro lado, el valor de la entrada en escalón (U) es 0.5. Dada la tensión máxima
definida para el conversor, los valores de ganancia de los IA han debido ser restringidos
a valores más pequeños para evitar la saturación del mismo. Por este motivo, se
consideran para las ganancias positivas los valores 0.5, 1, 1.5 y 2; y para las ganancias
negativas los valores -0.5, -1, -1.5 y -2.

La Tabla 3-2 muestra una caracterización de los valores de AVDC, ωn y ζ,


estimados a partir de la salida del ADC. Se puede observar que, debido a las
limitaciones impuestas por los valores de tensiones a medir, el valor máximo que se
obtiene para el parámetro ζ, al que denominamos ζmax, es 0.90.

Tabla 3-2. Caracterización de los valores estimados mediante medición

Ganancia
ζ ωn (rad/s)
(AVDC)
Máximo 4.00 0.90 3.63E+06
Mínimo 0.25 0.03 4.34E+04
Promedio 1.15 0.39 1.90E+05

La Tabla 3-3 muestra los errores (relativos al valor obtenido del modelo
matemático del filtro) cometidos en la determinación de los parámetros de la tabla
anterior. De esta última se observa que el máximo error es inferior al 4% para todos los
parámetros estimados. Se considera entonces que mediante TRAM es posible
caracterizar adecuadamente la función de transferencia de los filtros que serán
utilizados posteriormente por el GA.

Tabla 3-3. Errores cometidos en la determinación de los parámetros funcionales de los filtros.

Error relativo Error relativo Error relativo


en AVDC (%) en ζ (%) en ωn (%)
Máximo 9.77E-02 3.17 2.79
Mínimo 3.04E-06 1.13E-06 5.58E-06
Promedio 2.17E-02 1.02 0.11

91
Filtro adaptivo

Es necesario destacar que se han realizado además simulaciones Montecarlo


considerando otras resoluciones para el conversor (12 bits y 16 bits) con el propósito de
verificar experimentalmente la factibilidad de la elección efectuada. No obstante, se
comprobó que una resolución de 14 bits es la más adecuada para el caso considerado
debido a que es la que permite el menor error en la estimación de los parámetros
funcionales del filtro.

3.6. Validación del esquema de adaptación


El esquema de adaptación se valida mediante procedimientos de inyección de
fallas, los que están aceptados en la comunidad para el tratamiento de problemas
similares [27, 28]. Para implementar un experimento que incluya inyección y simulación
de fallas se requieren dos elementos: un modelo de simulación del sistema bajo test y un
modelo de falla compatible. En nuestro experimento de validación se ha adoptado la
función de transferencia de las secciones bicuadráticas como modelo de simulación
(ecuación 1). La adopción de este modelo permite reducir el normalmente elevado
costo computacional de las campañas de inyección de fallas.

Como se mencionó anteriormente, la asignación de aptitud de cada individuo se


realiza mediante una interacción del GA con TRAM. En la simulación, esto se logra
mediante la valuación de la función de transferencia con los valores de ganancias y
capacidades que corresponden a los individuos de la generación actual.

Si las condiciones de simulación responden al modo normal de funcionamiento,


entonces los valores de los componentes que representan a un individuo son los
nominales. Para simular condiciones de falla, se alteran los valores de los componentes
de acuerdo a cuatro modelos diferentes. El Modelo de falla 1 desvía todos los
capacitores del filtro de octavo orden en el mismo porcentaje al mismo tiempo, el
Modelo de falla 2 desvía sólo un banco de capacitores, el Modelo de falla 3 desvía todas
las ganancias del filtro de alto orden en un porcentaje y el Modelo de falla 4 altera solo
los valores de una ganancia a la vez. Para todos los casos, se consideran desviaciones en
los parámetros circuitales de -40% a +40% del valor nominal, en pasos de 10%.

92
Filtro adaptivo

Por otro lado, con el propósito de replicar los resultados de la aplicación de


TRAM, el GA no debe considerar las secciones bicuadráticas con valor de ζ mayor a
ζmax. Por este motivo, cuando el mismo detecta secciones bicuadráticas con esta
característica las reemplaza por la sección bicuadrática que presentó mayor valor de ζ en
la generación anterior. Cuando se trata de la población inicial, las secciones
bicuadráticas son reemplazadas por otras generadas aleatoriamente que presenten ζ
menor a ζmax.

Teniendo en cuenta que en cada etapa bicuadrática se emplean dos capacitores


(que pueden programarse adoptando uno de 128 valores posibles) y tres IA (cuyas
ganancias pueden adoptar uno de cuatro valores posibles, de acuerdo a la restricción
formulada en la sección 3.5.2), el GA debe trabajar con un espacio total de búsqueda de
1.20 E+24 alternativas posibles de configuración de filtros.

Debido a la naturaleza estocástica del GA, se realizan 50 simulaciones para


caracterizar cada condición asumida (normal o con fallas). Cada una de ellas difiere en
la semilla utilizada para el generador de números aleatorios que define la población
inicial.

3.7. Resultados de simulación

3.7.1. Operación libre de fallas


Con el propósito de efectuar una evaluación inicial del desempeño del GA, es
efectuada la simulación en condiciones normales, es decir, sin la presencia de fallas. El
parámetro que mejor permite caracterizar el grado de satisfacción de una solución
arrojada por el algoritmo en este caso de estudio, es el ERM alcanzado en cada una de
las bandas para dicha solución.

La Figura 3-18 muestra el ERM correspondiente a la banda de paso, para cada


solución encontrada en cada una de las 50 corridas del GA. En la misma puede
apreciarse que el error nunca supera el error máximo tolerable definido para esta banda
(|E1|=10%).

93
Filtro adaptivo

10%
9%
ERM (Error Relativo en Magnitud)

8%
7%
6%
5%
4%
3%
2%
1%
0%
0 5 10 15 20 25 30 35 40 45 50
N° de corrida

Figura 3-18. ERM obtenido por el GA en la banda de paso, bajo operación libre de fallas.

El ERM correspondiente al punto de corte, para cada solución encontrada por


el GA en las simulaciones efectuadas, es visualizado en la Figura 3-19. Es posible
observar que el error máximo tolerable definido para este punto (|E2|= 5%) no es
superado en ninguna de las configuraciones de filtro propuestas por el GA, en las
corridas efectuadas.

5%
ERM (Error Relativo en Magnitud)

4%

3%

2%

1%

0%
0 5 10 15 20 25 30 35 40 45 50
N° de corrida

Figura 3-19. ERM obtenido por el GA en el punto de corte, bajo operación libre de fallas.

94
Filtro adaptivo

La Figura 3-20 visualiza el ERM alcanzado en la banda de transición. En todos


los casos, el error se encuentra por debajo del error máximo tolerable definido para
dicha banda (|E3|=15%).
15%
ERM (Error Relativo en Magnitud)

12%

9%

6%

3%

0%
0 5 10 15 20 25 30 35 40 45 50
N° de corrida

Figura 3-20. ERM obtenido por el GA en la banda de transición, bajo operación libre de fallas.

En la Figura 3-21 se muestra el ERM obtenido en la banda de atenuación.


Puede apreciarse que también en esta banda el error máximo tolerable (|E4|=20%) es
respetado por las soluciones encontradas por el GA.

20%
18%
ERM (Error Relativo en Magnitud)

16%
14%
12%
10%
8%
6%
4%
2%
0%
0 5 10 15 20 25 30 35 40 45 50
N° de corrida

Figura 3-21. ERM obtenido por el GA en la banda de atenuación, bajo operación libre de fallas.

La Tabla 3-4 muestra la caracterización del ERM en cada una de las bandas. En
la misma se consideran los errores relativos al valor nominal, en las bandas de paso,
transición, atenuación y el punto de corte. A partir de la tabla es posible comprobar de

95
Filtro adaptivo

manera numérica que el ERM máximo en cada banda efectivamente no supera al


establecido en las especificaciones. Por otro lado, el mínimo y el promedio del ERM
son considerablemente más bajos.

Tabla 3-4. Caracterización de los errores relativos en condiciones normales.

Máximo (%) Mínimo (%) Promedio (%)


Banda de Paso 9.86 0.82 5.41
Punto de Corte 4.94 0.28 2.69
Banda de Transición 14.95 1.70 10.36
Banda de Atenuación 19.91 0.06 12.00

Otro de los aspectos importantes que permiten evaluar la performance del GA


es el referido a la cantidad de generaciones empleadas por el mismo para encontrar una
solución que satisfaga los criterios de desempeño propuestos. La Figura 3-22 muestra el
número de generaciones alcanzado en cada corrida del GA. Como puede observarse, el
algoritmo no utiliza en ningún caso la cantidad máxima de generaciones (200).

100

90

80
Cantidad de Generaciones

70

60

50

40

30

20

10

0
0 5 10 15 20 25 30 35 40 45 50
N° de corrida

Figura 3-22. Cantidad de generaciones empleadas en cada corrida del GA.

La

Tabla 3-5 muestra la cantidad máxima de generaciones alcanzada, el mínimo y el


promedio. Puede apreciarse una diferencia importante entre el valor máximo y el
mínimo, que se debe a la naturaleza estocástica del algoritmo [34]. No obstante, el valor
promedio es considerablemente más bajo que el máximo obtenido, lo cual puede
verificarse observando la Figura 3-22.

96
Filtro adaptivo

Tabla 3-5. Cantidad de generaciones empleadas por el GA en condiciones normales.

Máximo Mínimo Promedio


Generaciones 90 5 25.48

En la descripción de las características del GA se mencionó la utilización de dos


estrategias de cruce, cuyo uso se alterna de manera adaptiva persiguiendo como
objetivo mejorar la eficiencia en la exploración y explotación del espacio de búsqueda.
En la Figura 3-23 se muestra la evolución del ERM a través de las generaciones en la
banda de paso, en el punto de corte, en la banda de transición y en la banda de
atenuación, respectivamente, en una corrida del algoritmo seleccionada al azar [40]. En
la misma, el GA utilizó 30 generaciones para encontrar una solución adecuada.

80% 60%

70%
50%
60%
40%
50%
ERM
ERM

40% 30%

30%
20%
20%
10%
10%

0% 0%
1 4 7 10 13 16 19 22 25 28 1 4 7 10 13 16 19 22 25 28
Generación Generación
(a) Banda de paso. (b) Punto de corte.

70% 120%

60% 100%
50%
80%
40%
ERM

ERM

60%
30%
40%
20%

10% 20%

0% 0%
1 4 7 10 13 16 19 22 25 28 1 4 7 10 13 16 19 22 25 28
Generación Generación
(c) Banda de Transición. (d) Banda de Atenuación.

Figura 3-23. Evolución del ERM en cada banda, para una corrida del GA.

97
Filtro adaptivo

Como puede apreciarse en la figura, los errores relativos sufren variaciones


importantes durante el trascurso de las primeras generaciones, debido a que el GA se
encuentra en la fase de exploración. En particular, se observa que a partir de la generación
24 los ERM de las cuatro bandas logran acercarse a los errores tolerables definidos para
cada una, con lo cual se inicia la fase de explotación, que está caracterizada por el cambio
de la estrategia de cruce. Es posible observar en la figura que a partir de la generación
24, los ERM comienzan a tener variaciones cada vez menores hasta que en la
generación 30 logran alcanzar los criterios de performance definidos.

Para completar el análisis, en la Figura 3-24 se muestra el máximo fitness


obtenido en cada generación para la mencionada corrida del GA [35], [36], [37], [38],
[39]. Aquí puede apreciarse que el fitness se incrementa considerablemente a partir de la
generación 24, presentando algunas variaciones hasta que en la generación 30 alcanza el
valor más alto para esa corrida.

7E+04

6E+04

5E+04
Fitness Máximo

4E+04

3E+04

2E+04

1E+04

0E+00
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Generación

Figura 3-24. Evolución del fitness máximo de cada generación en una corrida del GA.

A modo de ejemplo, la Figura 3-25 muestra la respuesta en frecuencia de los


dos peores casos de los filtros encontrados por el GA en las 50 corridas efectuadas,
junto con el filtro nominal (referencia). En la figura, los dos filtros evolucionados que
presentaron mayor error en las corridas efectuadas, presentan una respuesta que cumple
con las especificaciones en las cuatro bandas. En particular, la respuesta del filtro
referenciado como “peor diseño 1” presenta un ERM de 9.86% en la banda de paso,
4.94% en el punto de corte, 11.91% en la banda de transición y 14.73% en la banda de

98
Filtro adaptivo

atenuación. Por otro lado, la respuesta correspondiente al filtro denominado “peor


diseño 2”, proporciona un ERM de 8.48% en la banda de paso, 1.62% en el punto de
corte, 7.42% en la banda de transición y 11.45% en la banda de atenuación.

0 filtro nominal
peor diseño 1
peor diseño 2
Magnitud Hn (dB)

-50

-100

-150 3 4 5 6
10 10 10 10
Frecuencia (Hz)

Figura 3-25. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados que
presentaron mayor error, en condiciones normales de funcionamiento.

También resulta interesante tener conocimiento acerca de cuáles son los valores
de capacitores y/o de ganancias de los IA que el GA utiliza en las soluciones que
proporciona. Esta información puede resultar útil para observar la diversidad de los
valores que conforman las soluciones y determinar si los mismos se encuentran
concentrados en algunos intervalos de valores particulares dentro de los posibles. Si los
valores obtenidos se concentraran sólo en determinados intervalos, podría ocurrir que
no existieran soluciones que cumplan con las especificaciones ante algunos escenarios
de falla (por ejemplo, fallas paramétricas con desviaciones significativas), con lo cual no
sería posible evaluar el desempeño del GA en tal situación.

Por este motivo, a continuación se muestran histogramas que consideran los


valores de los capacitores utilizados por el algoritmo en las soluciones alcanzadas en las
50 corridas realizadas. Para posibilitar un análisis más completo de dichos valores, se
muestra en la Figura 3-26 un histograma para cada capacitor perteneciente al filtro de
octavo orden.

99
Frecuencia Frecuencia Frecuencia

0
1
2
3
4
5
6
7
8
9

100
0,5
1,5
2,5
3,5
4,5

0
1
2
3
4
0,5
1,5
2,5
3,5
4,5

0
1
2
3
4
1,07
1,07 6,92 1,07
6,92 9,62 6,92
9,62 9,62
12,39
12,39 12,39
14,22
14,22 14,22
16,44
Filtro adaptivo

16,44 16,44
18,28
18,28 18,28
20,1 20,1
20,1
22,33 22,33
22,33
25,08 25,08 25,08
28,11 28,11 28,11
33,84 33,84 33,84
37,86 37,86 37,86
40,57

(e) Capacitor C13.


(a) Capacitor C11.
40,57

(c) Capacitor C12.


40,57
42,79 42,79 42,79

Valores de capacitores
44,61

Valores de capacitores
44,61 44,61

Valores de capacitores
46,79 46,79 46,79
48,63 48,63 48,63
50,81 50,81 50,81
53,14 53,14 53,14
55,74 55,74 55,74
59,78 59,78 59,78

Frecuencia Frecuencia Frecuencia


0
2
4
6
8

0
1
2
3
4
5
6
10
12

0,5
1,5
2,5
3,5

0
1
2
3
1,07 1,07 1,07
6,92 6,92 7,34
9,62 9,62 10,54
12,39 12,39 13,21
14,22 14,22
16,44 15,45
16,44
18,28 18,28 17,87
20,1 20,1 20,1
22,33 22,33 22,74
25,08 25,08 25,88
28,11 28,11 31,63
33,84 33,84
37,86 37,06
37,86
40,57 40,08

(f) Capacitor C23.


40,57

(d) Capacitor C22.


(b) Capacitor C21.

42,79 42,79 42,79

Valores de capacitores
Valores de capacitores

Valores de capacitores
44,61 44,61 45
46,79 46,79 47,22
48,63 48,63
49,5
50,81 50,81
53,14 53,14 52,22
55,74 55,74 55,35
59,78 59,78 59,78
Filtro adaptivo

7 16

6 14
12
5
10

Frecuencia
Frecuencia

4
8
3
6
2 4
1 2

0 0

1,07
6,92
9,62

20,1
12,39
14,22
16,44
18,28

22,33
25,08
28,11
33,84
37,86
40,57
42,79
44,61
46,79
48,63
50,81
53,14
55,74
59,78
1,07
6,92
9,62

20,1
12,39
14,22
16,44
18,28

22,33
25,08
28,11
33,84
37,86
40,57
42,79
44,61
46,79
48,63
50,81
53,14
55,74
59,78
Valores de capacitores Valores de capacitores
(g) Capacitor C14. (h) Capacitor C24.
Figura 3-26. Histogramas correspondientes a los capacitores.

Como puede observarse en los histogramas de la figura, en las configuraciones


de filtro proporcionadas como solución por el GA en las corridas efectuadas, se
observa que los capacitores adoptan diferentes valores abarcando todo el rango de
valores posibles. En consecuencia, no es posible asociar un capacitor con un
determinado subrango de valores. No obstante, puede apreciarse que los capacitores
C21, C12 y C24 presentan el valor máximo de capacitancia (61.59 pF) en gran cantidad
de casos, con respecto a los demás valores que pueden adoptar.

Además, ha sido posible observar en las soluciones proporcionadas por el GA,


en las 50 corridas efectuadas, que en el 78% de los casos por lo menos uno de los ocho
capacitores que conforman el filtro de octavo orden, adopta el valor máximo de
capacitancia. En los demás casos, al menos uno de los capacitores adopta valores
iguales o superiores a 46.82 pF. Esta característica observada permite estimar que la
consideración de fallas paramétricas con desviaciones muy significativas en todos los
capacitores del filtro de alto orden, podría constituirse en un escenario de falla para el
cual no puedan proporcionarse (por las limitaciones del dispositivo ispPAC10)
configuraciones de filtros que permitan cumplir con las especificaciones.

Por otro lado, la Figura 3-27 muestra los histogramas que consideran los valores
de ganancia positivos adoptados por los IA en las soluciones alcanzadas por el GA, en
las corridas efectuadas.

101
Filtro adaptivo

25 25

20 20

15 15

Frecuencia
Frecuencia

10 10

5 5

0 0
0,5 1 1,5 2 0,5 1 1,5 2
Valores de ganancia de los IA Valores de ganancia de los IA
(a) Amplificador de entrada IA211. (b) Amplificador de entrada IA213.

20 20
18 18
16 16
14 14
12 12
Frecuencia

10
Frecuencia

10
8
8
6
6
4
4
2
2
0
0 0,5 1 1,5 2
0,5 1 1,5 2
Valores de ganancia de los IA Valores de ganancia de los IA
(c) Amplificador de entrada IA212. (d) Amplificador de entrada IA214.

Figura 3-27. Histogramas correspondientes a los amplificadores de entrada que adoptan valores
de ganancia positivos.

Los histogramas muestran que no existen valores de ganancia que no


intervengan en alguna de las soluciones proporcionadas por el GA.

La Figura 3-28 muestra los histogramas que consideran los valores de ganancia
negativos adoptados por los IA en las soluciones proporcionadas por el GA, en las 50
corridas realizadas.

Como puede apreciarse en los histogramas de la figura, todos los valores de


ganancia negativos intervienen por lo menos en una de las soluciones proporcionadas
por el GA en las corridas realizadas.

102
Filtro adaptivo

18 20
16 18
14 16
14
12
Frecuencia

Frecuencia
12
10
10
8
8
6
6
4 4
2 2
0 0
-2 -1,5 -1 -0,5 -2 -1,5 -1 -0,5
Valores de ganancia de los IA Valores de ganancia de los IA
(a) Amplificador de entrada IA111. (b) Amplificador de entrada IA121.

16 25
14

12 20

10
15
Frecuencia

Frecuencia

6 10

4
5
2

0 0
-2 -1,5 -1 -0,5 -2 -1,5 -1 -0,5
Valores de ganancia de los IA Valores de ganancia de los IA
(c) Amplificador de entrada IA112. (d) Amplificador de entrada IA122.

30 25

25
20
20
15
Frecuencia

Frecuencia

15
10
10

5 5

0 0
-2 -1,5 -1 -0,5 -2 -1,5 -1 -0,5
Valores de ganancia de los IA Valores de ganancia de los IA
(e) Amplificador de entrada IA113. (f) Amplificador de entrada IA123.

103
Filtro adaptivo

18 25
16
14 20

12
15
10

Frecuencia
Frecuencia

8
10
6
4 5
2
0 0
-2 -1,5 -1 -0,5 -2 -1,5 -1 -0,5
Valores de ganancia de los IA Valores de ganancia de los IA
(g) Amplificador de entrada IA114. (h) Amplificador de entrada IA124.

Figura 3-28. Histogramas correspondientes a los amplificadores de entrada que adoptan valores
de ganancia negativos.

3.7.2. Operación bajo condición de falla

3.7.2.1. Modelo de Falla 1


Los resultados obtenidos en las simulaciones efectuadas bajo este modelo de
falla se visualizan en la Figura 3-29, en la cual se considera el ERM alcanzado por el GA
en cada una de las bandas, para las corridas efectuadas.

10% 5%
9%
8% 4%
7%
6% 3%
ERM

ERM

5%
4% 2%
3%
2% 1%
1%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(a) Banda de paso. (b) Punto de corte.

104
Filtro adaptivo

15% 20%
18%
12% 16%
14%
9% 12%
ERM

10%

ERM
6% 8%
6%
3% 4%
2%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(c) Banda de transición. (d) Banda de atenuación.

Figura 3-29. ERM obtenido por el GA en cada banda, para el Modelo de Falla 1.

La figura muestra que en todas las bandas los errores relativos no superan los
errores tolerables máximos definidos. Esto significa que aún bajo la presencia de
desviaciones significativas en los valores de sus ocho capacitores, el filtro de alto orden
puede continuar funcionando de acuerdo a las especificaciones, debido a que el GA
encuentra siempre una configuración apropiada para el mismo.

En la Tabla 3-6 se caracteriza el ERM obtenido en cada una de las bandas.


Comparando los resultados obtenidos con los correspondientes a la operación en
condiciones normales (Tabla 3-4), cuando hay fallas el error máximo perteneciente a la
banda de paso se incrementa levemente, mientras que en las demás bandas disminuye o
se mantiene constante. El error mínimo se incrementa a excepción del punto de corte,
en el cual disminuye levemente. Por otro lado, el promedio presenta variaciones muy
pequeñas, disminuyendo en el punto de corte y en la banda de transición, y aumentando
en las otras dos bandas.

Tabla 3-6. Caracterización de los errores relativos considerando el Modelo de Falla 1.

Máximo Mínimo Promedio


Banda de Paso 9.97% 3.37% 6.85%
Punto de Corte 4.94% 0.22% 2.57%
Banda de Transición 14.90% 4.97% 9.97%
Banda de Atenuación 19.34% 5.29% 12.09%

Por otro lado, en la Tabla 3-7 se muestran los resultados obtenidos en cuanto a
cantidad de generaciones. Ante la presencia de las fallas consideradas en este modelo, el

105
Filtro adaptivo

GA continúa encontrando soluciones apropiadas manteniendo constante la cantidad


máxima y mínima de generaciones con respecto a la operación sin fallas. No obstante,
el promedio de generaciones experimenta un leve incremento.

Tabla 3-7. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 1.

Máximo Mínimo Promedio


Generaciones 87 5 30

Por otro lado, la Figura 3-30 muestra la respuesta en frecuencia de los dos peores
casos de los filtros encontrados por el GA en las corridas efectuadas bajo este modelo
de falla, junto con el filtro nominal (referencia).

0 filtro nominal
peor caso 1
peor caso 2
Magnitud Hn (dB)

-50

-100

-150 3 4 5 6
10 10 10 10
Frecuencia (Hz)

Figura 3-30. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados que
presentaron mayor error, bajo el Modelo de Falla 1.

En la figura, los dos filtros evolucionados que presentaron mayor error en las
corridas efectuadas, presentan una respuesta que satisface las especificaciones en las
cuatro bandas. Particularmente, la respuesta del filtro referenciado como “peor caso 1”
presenta un ERM de 9.21% en la banda de paso, 4.94% en el punto de corte, 9.55% en
la banda de transición y 6.47% en la banda de atenuación. Por otro lado, la respuesta
correspondiente al filtro denominado “peor caso 2”, proporciona un ERM de 9.97% en
la banda de paso, 1.29% en el punto de corte, 8.99% en la banda de transición y 5.29%
en la banda de atenuación.

106
Filtro adaptivo

3.7.2.2. Modelo de Falla 2


Los resultados obtenidos bajo este modelo de falla con relación a los errores
relativos se visualizan en la Figura 3-31, en la cual se considera el ERM alcanzado en
cada corrida para la banda de paso, el punto de corte, la banda de transición y la banda
de atenuación.

10% 5%
9%
8% 4%
7%
6% 3%
5%

ERM
ERM

4% 2%
3%
2% 1%
1%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(a) Banda de paso. (b) Punto de corte.

15% 20%
18%
12% 16%
14%
9% 12%
10%
ERM
ERM

6% 8%
6%
3% 4%
2%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(c) Banda de Transición. (d) Banda de atenuación.
Figura 3-31. ERM obtenido por el GA en cada banda, para el Modelo de Falla 2.

En la figura, se aprecia que ante cada desviación considerada en los valores de


uno de los capacitores del filtro de alto orden, el GA puede encontrar una
configuración de filtro que permite mantener los errores relativos de cada banda dentro
de las especificaciones definidas.

En la Tabla 3-8 se resumen los ERM alcanzados en cada una de las bandas. Si
los mismos se comparan con los obtenidos bajo operación normal, puede observarse

107
Filtro adaptivo

que ante la presencia de fallas el error máximo disminuye en todas las bandas. El
promedio del error también presenta este comportamiento, a excepción de la banda de
paso en la cual aumenta levemente. Por otro lado, el error mínimo disminuye en la
banda de transición, mientras que en las demás bandas se incrementa.

Tabla 3-8. Caracterización de los errores relativos considerando el Modelo de Falla 2.

Máximo Mínimo Promedio


Banda de Paso 8.83% 2.72% 6.18%
Punto de Corte 4.34% 0.37% 2.60%
Banda de Transición 14.71% 0.54% 9.80%
Banda de Atenuación 18.21% 0.76% 9.79%

La Tabla 3-9 muestra los resultados obtenidos con referencia a la cantidad de


generaciones. Puede observarse, con respecto a la operación libre de fallas, que se
presenta un incremento. No obstante, la cantidad máxima de generaciones alcanzada
apenas supera la mitad del número máximo de generaciones definido para el GA.

Tabla 3-9. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 2.

Máximo Mínimo Promedio


Generaciones 106 8 39.78

En la Figura 3-32 se visualiza la respuesta en frecuencia de los dos peores casos de


los filtros encontrados por el GA en las corridas efectuadas bajo el Modelo de Falla 2,
junto con el filtro nominal (referencia).

0 filtro nominal
peor diseño 1
peor diseño 2
Magnitud Hn (dB)

-50

-100

-150 3 4 5 6
10 10 10 10
Frecuencia (Hz)

Figura 3-32. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados que
presentaron mayor error, bajo el Modelo de Falla 2.

108
Filtro adaptivo

En la figura, es posible observar que los dos filtros evolucionados que presentaron
mayor error en las corridas efectuadas, presentan una respuesta que cumple con las
especificaciones en las cuatro bandas. En particular, la respuesta del filtro referenciado
como “peor diseño 1” presenta un ERM de 8.83% en la banda de paso, 2.12% en el
punto de corte, 8.27% en la banda de transición y 0.76% en la banda de atenuación. Por
otro lado, la respuesta correspondiente al filtro denominado “peor diseño 2”,
proporciona un ERM de 6.19% en la banda de paso, 1.84% en el punto de corte,
11.54% en la banda de transición y 10.60% en la banda de atenuación.

3.7.2.3. Modelo de Falla 3


En la Figura 3-33 se muestran los ERM obtenidos en cada corrida, en la banda
de paso, en el punto de corte, en la banda de transición y en la banda de atenuación,
para cada porcentaje de desviación en los valores nominales de ganancias de los IA
considerados.

En la figura es posible observar que a pesar de presentarse desviaciones


significativas en los valores de ganancia de todos los IA, el GA continúa encontrando
configuraciones de filtros que responden a las especificaciones en las cuatro bandas
consideradas.

10% 5%
9%
8% 4%
7%
6% 3%
5%
ERM
ERM

4% 2%
3%
2% 1%
1%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(a) Banda de paso. (b) Punto de corte.

109
Filtro adaptivo

15% 20%
18%
12% 16%
14%
9% 12%
10%
ERM

ERM
6% 8%
6%
3% 4%
2%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(c) Banda de transición. (d) Banda de atenuación.
Figura 3-33. ERM obtenido por el GA en cada banda, para el Modelo de Falla 3.

La Tabla 3-10 muestra una caracterización de los errores relativos obtenidos en


cada banda. En comparación con la operación bajo condiciones normales, puede
notarse que ante la presencia de las fallas direccionadas en este modelo se observa una
disminución en los errores máximos, a excepción de la banda de paso en donde éste se
incrementa levemente. Por otro lado, los errores mínimos disminuyen en la banda de
transición y se incrementan en las demás bandas. Con referencia al error promedio, el
mismo sólo se incrementa en la banda de paso, mientras que en las otras tres bandas
disminuye.

Tabla 3-10. Caracterización de los errores relativos considerando el Modelo de Falla 3.

Máximo Mínimo Promedio


Banda de Paso 9.96% 2.00% 7.00%
Punto de Corte 3.67% 1.16% 2.51%
Banda de Transición 14.78% 0.17% 9.77%
Banda de Atenuación 14.70% 5.74% 9.06%

Los datos relacionados a la cantidad de generaciones se visualizan en la Tabla


3-11. Con respecto a la operación normal, se aprecia una disminución en la cantidad de
generaciones máxima y mínima, y un incremento en el valor promedio.

Tabla 3-11. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 3.

Máximo Mínimo Promedio


Generaciones 76 4 35.56

110
Filtro adaptivo

Por otro lado, la Figura 3-34 muestra la respuesta en frecuencia de los dos peores
casos de los filtros encontrados por el GA en las corridas efectuadas bajo este modelo
de falla, junto con el filtro nominal.

0 filtro nominal
peor caso 1
peor caso 2
Magnitud Hn (dB)

-50

-100

-150 3 4 5 6
10 10 10 10
Frecuencia (Hz)

Figura 3-34. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados que
presentaron mayor error, bajo el Modelo de Falla 3.

Es posible apreciar en la figura que los dos filtros evolucionados que


presentaron mayor error en las corridas efectuadas, presentan una respuesta que
satisface las especificaciones en las cuatro bandas. Particularmente, la respuesta del
filtro referenciado como “peor caso 1” presenta un ERM de 9.73% en la banda de
paso, 1.16% en el punto de corte, 11.35% en la banda de transición y 6.83% en la banda
de atenuación. Por otro lado, la respuesta correspondiente al filtro denominado “peor
caso 2”, proporciona un ERM de 9.96% en la banda de paso, 3.54% en el punto de
corte, 10.16% en la banda de transición y 10.27% en la banda de atenuación.

3.7.2.4. Modelo de Falla 4


El ERM obtenido por el GA en cada una de las cuatro bandas se muestra en la
Figura 3-35.

Observando la figura, es posible apreciar que para todas las desviaciones


consideradas en los valores de ganancia de uno de los IA, el GA siempre encuentra
soluciones cuyos ERM son inferiores a los errores máximos tolerables definidos para
cada banda.

111
Filtro adaptivo

10% 5%
9%
8% 4%
7%
6% 3%
5%

ERM
ERM

4% 2%
3%
2% 1%
1%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(a) Banda de paso. (b) Punto de corte.

15% 20%
18%
12% 16%
14%
9% 12%
10%
ERM

ERM

6% 8%
6%
3% 4%
2%
0% 0%
-50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50% -50% -40% -30% -20% -10% 0% 10% 20% 30% 40% 50%
Porcentaje de desviación Porcentaje de desviación
(c) Banda de transición. (d) Banda de atenuación.
Figura 3-35. ERM obtenido por el GA en cada banda, para el Modelo de Falla 4.

En la Tabla 3-12 se caracterizan los ERM obtenidos para cada banda en las
simulaciones realizadas. En comparación con los obtenidos bajo condiciones normales,
se observa que ante la presencia de las fallas direccionadas en este modelo, el error
máximo y el error promedio disminuyen en todas las bandas. Con respecto al error
mínimo, éste disminuye en el punto de corte y en la banda de transición, mientras que
se incrementa en las bandas restantes.

Tabla 3-12. Caracterización de los errores relativos considerando el Modelo de Falla 4.

Máximo Mínimo Promedio


Banda de Paso 9.26% 1.94% 4.21%
Punto de Corte 4.84% 0.16% 2.24%
Banda de Transición 14.22% 1.64% 8.44%
Banda de Atenuación 18.99% 0.52% 7.98%

112
Filtro adaptivo

Además, se muestran en la Tabla 3-13 los resultados relacionados con la


cantidad de generaciones. Ante la presencia de fallas, se aprecia un incremento en el
valor mínimo y máximo, mientras que el valor promedio disminuye.

Tabla 3-13. Cantidad de generaciones empleadas por el GA para el Modelo de Falla 4.

Máximo Mínimo Promedio


Generaciones 98 8 24.30

Por otro lado, la Figura 3-36 muestra la respuesta en frecuencia de los dos peores
casos de los filtros encontrados por el GA en las corridas efectuadas bajo este modelo
de falla, junto con el filtro nominal (referencia).

0 filtro nominal
peor caso 1
peor caso 2
Magnitud Hn (dB)

-50

-100

-150 3 4 5 6
10 10 10 10
Frecuencia (Hz)

Figura 3-36. Respuesta en frecuencia del filtro nominal y de los filtros evolucionados que
presentaron mayor error, bajo el Modelo de Falla 4.

En la figura, es posible observar que los dos filtros evolucionados que presentaron
mayor error en las corridas efectuadas, presentan una respuesta que cumple con las
especificaciones en las cuatro bandas. En particular, la respuesta del filtro referenciado
como “peor caso 1” presenta un ERM de 9.26% en la banda de paso, 1.20% en el
punto de corte, 4.74% en la banda de transición y 3.05% en la banda de atenuación. Por
otro lado, la respuesta correspondiente al filtro denominado “peor caso 2”, proporciona
un ERM de 7.33% en la banda de paso, 2.59% en el punto de corte, 11.54% en la
banda de transición y 1.30% en la banda de atenuación.

113
Filtro adaptivo

3.8. Conclusiones
Se presentó en este capítulo un filtro adaptivo de octavo orden, basado en un
esquema de tolerancia a fallas adaptiva. La aplicación de estrategias de EHW en filtros
de este orden no había sido abordada antes, tanto en el EHW orientado al diseño como
en el hardware adaptivo.

En este trabajo, el esfuerzo se centraliza por un lado en proponer una estrategia


de test para determinar la presencia de fallas en el filtro y demostrar su viabilidad para
este caso particular. Para ello es considerado TRAM, método que también es utilizado
para efectuar la evaluación de los individuos, posibilitando que la misma sea intrínseca.
Esto aporta al trabajo importantes ventajas, como poder evaluar la respuesta real del
dispositivo y considerar componentes con degradaciones en las posibles soluciones que
el GA genera.

Por otro lado, se plantea la evaluación de la capacidad del GA propuesto para


encontrar soluciones bajo condiciones de falla, destacando que el espacio de búsqueda
total con el que el mismo debe trabajar es considerablemente grande. El GA presentado
posee varias características particulares, entre las cuales pueden mencionarse la
aplicación de dos estrategias de cruce y probabilidades de mutación de manera adaptiva,
de acuerdo a las características actuales de la población.

De acuerdo a los experimentos realizados TRAM resulta ser confiable para la


determinación de la función de transferencia del filtro si se realizan las restricciones
practicadas en este trabajo. Las evaluaciones realizadas demuestran que, si se eliminan
los filtros con valores de sobrepico menores a un mínimo y aquellos con
sobreamortiguamiento mayor a cierto valor establecido, los resultados presentan errores
tolerables para la aplicación en curso.

En lo referente al GA, el desempeño del mismo es evaluado utilizando cuatro


modelos de fallas, siendo los resultados satisfactorios y con errores por debajo de lo
tolerado en todos los casos, lo que demuestra la viabilidad del esquema propuesto.

114
Filtro adaptivo

3.9. Referencias
[1] A. Laknaur, H. Wang, A methodology to perform online self-testing for field-programmable analog arrays, IEEE
Transactions on Instrumentation and measurement, Volumen 54, Número 5, pp 1751-1760,
Octubre 2005. ISSN: 0018-9456. DOI: 10.1109/TIM.2005.855096.
[2] L. Sekanina, Evolvable computing by means of evolvable components. Natural Computing, 3(3), pp. 253-292,
2004.
[3] J. Torresen, An evolvable hardware tutorial. In Field Programmable Logic and Application (pp. 821-
830). Springer Berlin Heidelberg, 2004.
[4] P. C. Haddow, A. M. Tyrrell, Challenges of evolvable hardware: past, present and the path to a promising
future. Genetic Programming and Evolvable Machines, 12(3), pp. 183-215, 2011.
[5] J. Calvano, V. Alves, M. Lubaszeswski, Fault detection methodology for second order filters using compact test
vectors transient analysis, in Proceedings 3rd. International Workshop on Design of Mixed-Mode
Integrated Circuits and Applications, pp. 18-24, 1999.
[6] J. Chen, S. Kher, A. Soman, Distributed Fault Detection of Wireless Sensor Networks, Proc. 2006 workshop
on Dependability issues in wireless ad hoc networks and sensor networks, 2006.
[7] M. Lovay, G. Peretti, E. Romero, C. Marqués, Fault-tolerant Filter based on an Evolvable Hardware
Technique: a case study. Simposio Argentino de Tecnología 2012 (41° JAIIO), Facultad de Informática,
Universidad Nacional de La Plata, agosto de 2012.
[8] M. Lovay, Filtro adaptivo basado en dispositivos programables. V Jornadas de Ciencia y Tecnología (Cytal
2012), Facultad Regional Villa María, Universidad Tecnológica Nacional, agosto de 2012.
[9] M. Lovay, G. Peretti, E. Romero, C. Marqués, Comparación experimental de algoritmos genéticos en un filtro
tolerante a fallas. 3º Congreso de Microelectrónica Aplicada (uEA 2012), Facultad de Ciencias Exactas,
Ingeniería y Agrimensura, Universidad Nacional de Rosario, setiembre de 2012.
[10] M. Lovay, G. Peretti, E. Romero, C. Marqués, Application of a Genetic Algorithm in a Fault-tolerant Filter.
Aceptado en el Simposio Argentino de Tecnología 2013 (42° JAIIO), Facultad de Matemática,
Astronomía y Física, Universidad Nacional Córdoba, setiembre de 2013.
[11] M. Lovay, G. Peretti, E. Romero, C. Marqués, Tolerancia a fallas en un filtro de alto orden mediante una
estrategia de hardware evolutivo. Aceptado para el 4º Congreso de Microelectrónica Aplicada (uEA 2013),
Facultad Regional Bahía Blanca, Universidad Tecnológica Nacional, setiembre de 2013.
[12] R. Salvador, A. Otero, J. Mora, E. de la Torre, L. Sekanina, T. Riesgo, Fault tolerance analysis and self-
healing strategy of autonomous, evolvable hardware systems. In Reconfigurable Computing and FPGAs
(ReConFig), 2011 International Conference on IEEE, pp. 164-169, November 2011.
[13] E. Benkhelifa, A. Pipe, G. Dragffy, M. Nibouche, Towards evolving fault tolerant biologically inspired
hardware using evolutionary algorithms. In Evolutionary Computation, 2007. CEC 2007. IEEE Congress,
pp. 1548-1554, September 2007.
[14] Nota de aplicación. ispPAC10 biquad filter implementation, Lattice Semiconductor Corporation.
Septiembre 2000.
[15] Pac-Designer Software User Manual, Lattice Semiconductor Corporation, 2011.
[16] Nota de aplicación. Designing high-order filters with the ispPAC10. Lattice Semiconductor Corporation.
Julio 2002.

115
Filtro adaptivo

[17] J. Calvano, V. Alves, M. Lubaszeswski, Fault detection methodology and BIST method for 2nd
order Butterworth, Chebyshev and Bessel approximations. Proceedings 18th IEEE VLSI Test
Symposium, pp. 319-324, 2000
[18] J. Peralta, G. Peretti, E. Romero, C. Marqués, A new performance characterization of transient analysis
method. International Journal of Electronics, Communications and Computer Engineering, 3:12-19,
2009.
[19] J. Peralta, M. Lovay, G. Peretti, E. Romero, C. Marqués, Evaluación de la capacidad del test basado en
transitorio para detectar fallas de degradación, Mecánica Computacional Vol. XXVIII, pp. 2943-2953,
November 2009.
[20] J. Peralta, G. Peretti, E. Romero, C. Marqués, Evaluation of circuit test strategies using statistical fault models:
a case study, Mecánica Computacional, vol. 26, pp. 2007-2015, Spanish, 2007.
[21] J. Peralta, G. Peretti, E. Romero, G. Demarco, C. Marqués, Quality Assessment of Transient Response
Analysis Method for Detecting Radiation-Induced Faults, International Journal of Quality, Statistics, and
Reliability, Volume 2011, 2011.
[22] J. Peralta, G. Peretti, A. Laprovitta, E. Romero, C. Marqués, Evaluation of the transient analysis method
ability for detecting deviation faults in space environments, Argentine School of Micro-Nanoelectronics
Technology and Applications (EAMTA), 2011.
[23] T. Balen, J. Calvano, M. Lubaszewski, M. Renovell, Buil-in self-test of field programmable analog arrays
based on transient response analysis. J. Electron Test. Volumen 23. Número 6, pp. 497-512. Diciembre
2007. ISSN: 1573-0727. DOI: 10.1007/s10836-007-5004-8.
[24] B. Kuo. "Sistemas de control automático". Séptima Edición. pp. 387-398. México. 1996.pp. 387-398.
[25] El-Ghazali Talbi. “Metaheuristics From Design to Implementation”. Wiley. pp. 208-345. USA.
ISBN: 978-0-470-27858-1. Año 2009.
[26] K. Deb. "Multi-Objective Optimization using Evolutionary Algorithms", Wiley, pp. 49-60. Kanpur,
India. ISBN: 978-0-470-74361-4. Año 2009.
[27] C. Coello Coello, G. Lamont, D. Van Veldhuizen, Evolutionary Algorithms for solving Multi-Objective
Problems. Springer, Segunda Edición, pp. 31-51. USA. ISBN: 978-0-387-33254-3. Año 2007.
[28] J. Branke, K. Deb, K. Miettinen, Multiobjective optimization: interactive and evolutionary
approaches. Springer, 2008.
[29] Y. Collette, P. Siarry, Multiobjective optimization: principles and case studies. Springer, 2003.
[30] X. Yu, M. Gen, Introduction to Evolutionary Algorithms. Springer, 2010.
[31] D. Goldberg, Genetic Algorithm. Search, optimization and machine learning, Addison-Wesley, 1989.
[32] J. Hereford, Fault-tolerant sensor systems using evolvable hardware, IEEE Trans. Instrum. Meas, vol. 55, pp.
846-853, June 2006.
[33] M. Lovay, G. Peretti, E. Romero, C. Marqués, An adaptive amplifier system for wireless sensor network
applications. Journal of Electrical and Computer Engineering. Vol. 2012, Article ID 762927, 14 pages.
ISSN: 2090-0155 (Online). DOI: 10.1155/2012/762927, 2012.
[34] M. Hartmann, P. C. Haddow, Evolution of fault-tolerant and noise-robust digital designs. In Computers and
Digital Techniques, IEE Proceedings, Vol. 151, No. 4, pp. 287-294, IET, July 2004.
[35] C. A. C. Coello, A. D. Christiansen, A. H. Aguirre, Use of evolutionary techniques to automate the design of
combinational circuits. International Journal of Smart Engineering System Design, 2, pp. 299-314, 2000.

116
Filtro adaptivo

[36] P. R. Fernando, S. Katkoori, D. Keymeulen, R. Zebulum, A. Stoica,Customizable FPGA IP core


implementation of a general-purpose genetic algorithm engine. Evolutionary Computation, IEEE Transactions
on, 14(1), pp.133-149, 2010.
[37] E. Stomeo, T Kalganova, C. Lambert, Generalized disjunction decomposition for evolvable hardware. Systems,
Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions on, 36(5), pp. 1024-1043, 2006.
[38] C. Manovit, C. Aporntewan, P. Chongstitvatana, Synthesis of synchronous sequential logic circuits from partial
input/output sequences. In Evolvable Systems: From Biology to Hardware, pp. 98-105, Springer Berlin
Heidelberg, 1998.
[39] N. Raichman, R. Segev, E. Ben-Jacob, Evolvable hardware: genetic search in a physical realm. Physica A:
Statistical Mechanics and its Applications, 326(1), 265-285, 2003.
[40] J. C. Gallagher, S. Vigraham, G. Kramer, A family of compact genetic algorithms for intrinsic evolvable
hardware. Evolutionary Computation, IEEE Transactions on, 8(2), pp. 111-126, 2004.

117
118
4. Amplificador adaptivo

4.1. Introducción

Las WSN normalmente están constituidas por una colección de nodos que
disponen de capacidades de procesamiento y comunicación de datos, enlaces de
radiofrecuencia y los circuitos electrónicos necesarios para la adecuación y conversión
de las señales provenientes de sensores de diferentes tipos [1]. Generalmente, una
computadora central recibe los datos de los nodos y realiza funciones adicionales que
dependen de la naturaleza del sistema. Las aplicaciones de las redes de sensores
inalámbricas son diversas, pudiéndose señalar las redes de sensores industriales,
monitoreo del ambiente, domótica y atención médica [2].

Los microcontroladores actuales se convierten en excelentes candidatos para


implementar los nodos de un WSN. Éstos ofrecen beneficios como bajo costo, bajo
consumo de energía, capacidad para realizar tareas de procesamiento de datos en los
nodos y potentes interfaces de comunicación. Además, algunos µCs modernos proveen
una amplia gama de secciones analógicas y digitales configurables que permiten la
adaptación del nodo a un extenso rango de aplicaciones.

Cuando los nodos operan en ambientes hostiles, diversos agentes pueden


contribuir a deteriorar su desempeño. Si la aplicación es crítica, una operación confiable
del nodo puede requerir características de operación segura, adaptación a cambios en el
entorno, o la capacidad para compensar degradaciones en sus propios circuitos. Para
alcanzar este propósito, es necesario abordar dos aspectos relacionados: la detección de
degradaciones y la adaptación del circuito.

Dado que los nodos de un WSN habitualmente presentan restricciones


relacionadas al consumo, las estrategias de test que se empleen para la detección de
fallas en campo deben minimizar la sobreasignación de recursos de hardware. Las
metodologías de autotest basadas en software (SBST, Software-Based Self Test)
aparecen como muy buenos candidatos para estas aplicaciones. En general logran bajas
sobreasignaciones circuitales con una mínima degradación de desempeño [3].

119
Amplificador adaptivo

SBST se apoya en la existencia de al menos un núcleo de procesamiento en el


sistema para realizar el test de los recursos analógicos y digitales del nodo [4], [5].
Obviamente, es necesario disponer de otros recursos como temporizadores,
conversores de datos, referencias de tensión, entre otros, para poder implementar el
test. Sin embargo, debe destacarse que estos recursos están habitualmente presentes en
los microcontroladores actuales.

Por otro lado, para lograr características adaptivas de algunos circuitos críticos
del nodo, pueden utilizarse estrategias de EHW. Particularmente, pueden aplicarse las
estrategias comprendidas en la categoría de tolerancia a fallas adaptiva, mencionadas en
el Capítulo 1. Estas últimas ofrecen una alternativa a los esquemas tradicionales de
tolerancia a fallas [6], [7], [8].

En esta Tesis, el esfuerzo se focaliza en dotar de capacidades de adaptación ante


degradaciones a un amplificador de ganancia programable. Se asume que el nodo WSN
requiere de este amplificador para adaptación de señales. Para alcanzar este objetivo, se
propone una estrategia SBST para la determinación de las ganancias de los
amplificadores involucrados en el esquema y se desarrolla una metodología de
adaptación basada en EHW.

Los resultados preliminares obtenidos, donde se demuestra que es posible


mantener la funcionalidad del amplificador para diferentes condiciones de falla, han
sido presentados en [9], [10], [11]. Resultados más consolidados fueron presentados en
[12].

4.2. Descripción del Sistema

4.2.1. El amplificador de ganancia programable (PGA)


El amplificador adaptivo se implementa en un dispositivo PSoC1 de Cypress
[13], [14]. Las características y propiedades de esta plataforma reconfigurable han sido
descriptas en el Capítulo 1.

120
Amplificador adaptivo

En este dispositivo, el módulo de usuario PGA implementa un amplificador no


inversor basado en un amplificador operacional con ganancia programable por el
usuario. En la Figura 4-1(a) se visualiza un diagrama del PGA mencionado.

Entrada Salida

+
-
Entrada +
RtapMux EXGAIN
Fh X
-
R

R
Salida
X R
Eh
R
Rb
R

Bloque_CT Ra R
Bloque_SC X
VSS
Dh
AGND Ganancia 1h 1

0h R
Referencia 1
R

(a) (b)

Figura 4-1. (a) Diagrama del PGA. (b) Configuración de resistencias

Este amplificador, implementado en un bloque CT, tiene alta impedancia de


entrada, gran ancho de banda y referencia seleccionable. La ganancia del PGA se
establece mediante la programación de un multiplexor analógico que selecciona puntos
intermedios de un arreglo de resistencias situado en el camino de realimentación del
amplificador operacional (Ra y Rb en la Figura 4-1 (a)). La Figura 4-1(b) muestra en
detalle la configuración de las resistencias y las señales RtapMux y EXGAIN, las cuales
permiten seleccionar un punto intermedio del arreglo. Para ganancias mayores o iguales
que uno, la parte superior del arreglo de resistencias se conecta a la salida del
amplificador operacional mientras que el multiplexor conecta un punto intermedio a la
entrada inversora del amplificador operacional. Bajo esta condición el voltaje de salida
(Vo) es:

( )( ⁄ ) (1)

121
Amplificador adaptivo

Para ganancias menores que uno, el amplificador operacional se configura como


seguidor de voltaje y la salida del módulo de usuario se conecta a la salida del
multiplexor. El valor de salida del amplificador se obtiene mediante la siguiente
expresión:

( - )( ) (2)

En (1) y (2), Vin es el voltaje en la entrada del PGA y V GND es el voltaje de


referencia. El usuario puede especificar la referencia empleando una de las siguientes
opciones: un valor fijo derivado a partir de un intervalo de referencia, una fracción de la
tensión de alimentación, masa analógica o una entrada externa. Hay 36 valores
programables para la ganancia del PGA, comprendidos entre 0.0208 y 48 [15].

Como puede apreciarse en la Figura 4-2, el bloque CT permite una


configuración que conecta a la parte superior de la matriz de resistencias el valor VDD,
y a la parte inferior el valor VSS, mientras dirige a la salida el valor de voltaje del
multiplexor. Mediante una configuración apropiada de las señales EXGAIN y
RtapMux, es posible chequear todos los valores disponibles del arreglo de resistencias.
Esta configuración es usada en el modo test, como se explicará en la sección 4.3.

Ganancia

SALIDA
Vin
+

VDD
-
RtopMux
Matriz de resistencias

Ganancia

EXGAIN

RtapMux
RobtMux+

VSS

Figura 4-2. Configuración del bloque CT para testear la matriz de resistencias (diagrama
simplificado).

122
Amplificador adaptivo

4.2.2. El amplificador adaptivo


Se asume que cada nodo de la red inalámbrica de sensado requiere un
amplificador adaptivo. Para implementar el amplificador se propone el uso de PGAs
conectados en cascada. El uso de PGAs es frecuente en sistemas que requieren una
interfaz analógica para el acondicionamiento de la señal. Particularmente, un amplio
rango de aplicaciones emplea PGAs de PSoC con este propósito [16], [17], [18], [19].
Este aspecto permite divisar una gran variedad de posibilidades de aplicación para el
sistema presentado, aunque los bloques analógicos no presenten las mismas
características de alta performance que podrían presentar dispositivos analógicos de
propósito específico.

En este trabajo se utilizan cuatro amplificadores en la cadena (PGA1, PGA2,


PGA3 y PGA4), uno por cada columna del array analógico de PSoC. La Figura 4-3
muestra un diagrama del sistema amplificador donde se visualizan los cuatro PGAs
embebidos en los arreglos PSoC. Esta configuración presenta un amplio rango de
valores alternativos para establecer la ganancia objetivo que contribuye a alcanzar una
mejor autoadaptación. No obstante, la conexión en cascada puede reducir el ancho de
banda total a valores inferiores a los especificados por el usuario. Por esta razón, se
considera que el sistema posee una ganancia que debe ser mantenida a pesar de la
presencia de fallas, mientras que su ancho de banda debe ser mayor al requerido por la
aplicación.

Una estrategia SBST chequea durante los tiempos inactivos del sistema las
ganancias disponibles de cada amplificador y determina si es necesaria una
reconfiguración del sistema. Además, varias rutinas se ejecutan en el nodo para
controlar el funcionamiento general del sistema, incluyendo la comunicación con la
computadora central, en la cual se ejecuta el GA que encuentra los valores para permitir
la reconfiguración del sistema. Los valores evolucionados de ganancia son cargados
nuevamente en el hardware para continuar el funcionamiento normal.

123
Amplificador adaptivo

Núcleo CPU M8C Nodo WSN PSoC


Memoria

Recursos del
Algoritmos de comunicación, evaluación y control
Sistema
SBST

Bus de datos y control

Amplificador analógico

Puerto Puerto Módulo


Sensor PGA1 PGA2 PGA3 PGA4
E/S E/S RF Tx/Rx

Computadora central

Algoritmo de
Procesamiento
reconfiguración Módulo de
de datos de
basado en un comunicación
reconfiguración
GA

Figura 4-3. Diagrama del sistema amplificador.

4.3. Test de las resistencias de los PGAs

La estrategia de test que se propone emplear en este trabajo utiliza el núcleo de


procesamiento, los recursos analógicos del chip y la característica de reconfiguración
dinámica del dispositivo PSoC. Esta aproximación SBST elimina la necesidad de
incorporar hardware adicional específico para test y no requiere la participación de la
computadora central. Consecuentemente, la estrategia, de bajo costo, puede ser usada
sin restricciones para chequear matrices de resistencias de los bloques CT de cualquier
sistema basado en PSoC1.

La característica de reconfiguración dinámica de PSoC es una potente función


que permite al diseñador programar múltiples configuraciones de hardware y
dinámicamente cambiarlas mientras el dispositivo está en funcionamiento [20]. De esta
manera, el sistema amplificador emplea una configuración de hardware, mientras que el
hardware de test utiliza otra. El procesador carga a partir de la memoria del programa el
setup de cada configuración en tiempo de ejecución. La configuración en modo normal
presenta sólo los PGAs conectados en cascada, mientras que aquella en modo test

124
Amplificador adaptivo

dispone las conexiones de los PGAs de manera de poder tener acceso a las matrices de
resistencias (Figura 4-2). Adicionalmente, son empleados otros módulos que son
necesarios para el proceso de test, por ejemplo ADCs.

En el modo de test, además de cargar la configuración de hardware de test, el


procesador ejecuta una rutina embebida que adquiere datos y realiza los cálculos
requeridos. Al final del proceso de test, la rutina de test envía a la computadora central
los parámetros que caracterizan las relaciones de las resistencias para los cuatro PGA.

La configuración de test se muestra en la Figura 4-4. El bloque CT (donde está


ubicado cada PGA) es configurado para chequear la matriz de resistencias (Figura 4-2).
Un conversor analógico a digital de 12 bits (ADC12) adquiere todos los valores de
voltaje de la matriz de resistencias. Se emplea un conversor por cada columna de
recursos analógicos utilizada. La rutina de test programa estos valores mediante el seteo
de los registros RtapMux y EXGAIN. La combinación de RtapMux y EXGAIN usada
durante el test y los valores nominales de los voltajes de salida del multiplexor (Vref) se
muestran en la Tabla 4-1. También se presentan los valores de ganancia que el PGA
adopta (que también dependen del valor de ganancia de la señal) para las
correspondientes relaciones en la matriz de resistencias.

ACB00 ACB01 ACB02 ACB03

PGA1 PGA2 PGA3 PGA4


AGND In AGND In AGND In AGND In
Vss Ref Vss Ref Vss Ref Vss Ref

ADC12_1 ADC12_2 ADC12_3 ADC12_4

ASD20 ASD21 ASD22 ASD23

buf0 buf1 buf2 buf3

Figura 4-4. Configuración del hardware de test.

A partir de las mediciones de los valores de los voltajes, es posible establecer


todas las relaciones programadas de Ra y Rb (Figura 4-1) y determinar si las mismas se

125
Amplificador adaptivo

encuentran dentro de los límites especificados por el usuario. Debido a que las
relaciones entre resistencias determinan los valores de ganancia de los PGA, la rutina
indirectamente chequea la exactitud de estos valores, evitando el uso de estímulos de
test. Si las ganancias se encuentran fuera de los límites permitidos por las necesidades
de la aplicación (incluyendo los errores de medición), se considera que el sistema
presenta fallas y un proceso de reconfiguración se inicia en la computadora central.

Es necesario destacar que, con el fin de considerar que todo el nodo es


confiable, se supone que el test de las otras partes del mismo se resuelve, por ejemplo,
con técnicas y estrategias como las que se presentan en [21] y [22].

Tabla 4-1. Condiciones de test y valores esperados de Vref en la matriz de resistencias.

RtapMux Valor nominal Valor de Valor de


Condición
(valores EXGAIN para Vref ganancia PGA ganancia PGA
de test hexadecimales) (Unidades Vdd) (ganancia ≥1) (ganancia ≤1)
1 0 1 0.0208 48.000 0.0208
2 1 1 0.0417 24.000 0.0417
3 0 0 0.0625 16.000 0.0625
4 1 0 0.1250 8.000 0.1250
5 2 0 0.1875 5.333 0.1875
6 3 0 0.2500 4.000 0.2500
7 4 0 0.3125 3.200 0.3125
8 5 0 0.3750 2.667 0.3750
9 6 0 0.4375 2.286 0.4375
10 7 0 0.5000 2.000 0.5000
11 8 0 0.5625 1.778 0.5625
12 9 0 0.6250 1.600 0.6250
13 A 0 0.6875 1.455 0.6875
14 B 0 0.7500 1.333 0.7500
15 C 0 0.8125 1.231 0.8125
16 D 0 0.8750 1.143 0.8750
17 E 0 0.9375 1.067 0.9375
18 F 0 1.0000 1.000 1.0000

4.4. Algoritmo Genético


El GA debe evolucionar los valores de ganancia de los cuatro amplificadores
operacionales con el propósito de mantener la ganancia objetivo del sistema dentro de
las especificaciones y el ancho de banda tan grande como sea posible. Dadas las
126
Amplificador adaptivo

características del problema de optimización que se plantea en este capítulo, el GA


formulado para responder a las mismas presenta importantes diferencias con respecto
al descripto en el Capítulo 3. A continuación se describen los aspectos más importantes
referidos a la implementación del mismo.

4.4.1. Implementación
El algoritmo desarrollado mantiene la estructura básica de un GA clásico [23]
(presentada en el Capítulo 1), con la adición de una etapa de reparación que se lleva a
cabo luego del proceso de mutación. La Figura 4-5 muestra, mediante un diagrama de
flujo, los procesos llevados a cabo por el GA.

Operadores genéticos

1. Inicializar
2. Evaluación 3. Selección 4. Cruce 5. Mutación
Población

No 7. Criterio
6.
de parada
Reparación
cumplido?

Si

8. Solución

Figura 4-5. Diagrama de flujo del GA desarrollado.

A continuación, se describe la implementación de cada bloque del diagrama,


para el caso de estudio propuesto.

1. Inicializar población: El GA comienza generando mediante el método de


generación aleatoria uniforme una población inicial de individuos. En este caso
particular, cada individuo (fenotipo) representa los valores de ganancia
correspondientes a cada uno de los cuatro PGAs (G1 para PGA1, G2 para PGA2, G3
para PGA3 y G4 para PGA4).

127
Amplificador adaptivo

Como se mencionó en la sección 4.2.1, existen 36 valores programables para la


ganancia de los PGAs. Para cada amplificador, el GA mantiene estos valores
(ordenados de manera ascendente) en vectores (VPGA1, VPGA2, VPGA3 y VPGA4).

Los cuatro valores de ganancia que caracterizan a un individuo se representan


en el cromosoma (genotipo) mediante cuatro genes. En la Figura 4-6 se visualiza la
estructura del mismo. Como puede apreciarse en la figura, cada gen codifica la posición
(i, j, k o l) del correspondiente valor de ganancia en el vector que almacena los valores
posibles de ganancia de los PGAs (VPGA1, VPGA2, VPGA3 y VPGA4).

En este caso es utilizada la técnica de codificación binaria [23]. En el Apéndice 1


se proporcionan detalles de esta técnica de codificación. Cada gen emplea 6 bits, por lo
que el cromosoma tiene una longitud total de 24 bits.

Fenotipo
G1=VPGA1(i) G2=VPGA2(j) G3=VPGA3(k) G4=VPGA4(l)

i j k l

Gen 1 Gen 2 Gen 3 Gen 4


Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Cromosoma - Genotipo

Figura 4-6. Estructura del cromosoma utilizado por el GA.

En la figura puede observarse que, por ejemplo, el Gen 1 es utilizado para


representar el valor de ganancia G1 correspondiente al PGA1, no obstante, el valor que
este gen codifica es el de i, que es la posición ocupada por el valor de ganancia G1 en el
vector VPGA1.

2. Evaluación: El GA debe resolver en este caso de estudio un MOP.


Específicamente, existen dos objetivos que deben ser alcanzados, uno referido a
mantener la ganancia del sistema dentro de las especificaciones, y el otro, relacionado a
mantener el ancho de banda tan grande como sea posible. En esta Tesis, se considera
que la ganancia es el objetivo más importante, lo que hace posible la aplicación de los
métodos de optimización a priori para resolver el problema [24], [25], [26]. El método
utilizado es el método de Restricciones-ɛ [24], [25], [26], [27], [28], el cual constituye

128
Amplificador adaptivo

una de las estrategias empleadas en el problema de optimización del filtro adaptivo,


descripto en el Capítulo 3. La aplicación del mismo implica plantear la función objetivo
en base al objetivo más importante (el relacionado a la ganancia total) y formular el
objetivo restante (el asociado al ancho de banda del sistema) como una restricción. De
esta manera, el MOP que el GA debe resolver se reduce a encontrar los valores de
ganancia para los cuatro PGA (G1 para PGA1, G2 para PGA2, G3 para PGA3 y G4 para
PGA4) que permitan alcanzar la siguiente condición:

(| |) (3)

En (3), Atar es la ganancia objetivo y ε es el ancho de banda (BW) mínimo


tolerable del sistema. Los valores disponibles para cada PGA son obtenidos por la
estrategia SBST presentada en la sección 4.3.

El valor del ancho de banda del amplificador adaptivo corresponde a la solución


positiva real de la ecuación (4) [29]. Para formular la misma cada PGA es modelado
como un sistema de primer orden, de acuerdo a lo reportado por el fabricante.

4  BW  2 
 1  
k 1   pk
   2 .
 
(4)

En (4), pk es el polo correspondiente al k-ésimo PGA. Su valor se calcula de


acuerdo a la siguiente expresión:

⁄ , (
(5)

En (5), GBWP es el producto ganancia ancho de banda reportado por el


fabricante y Gk es la ganancia del k-ésimo amplificador.

129
Amplificador adaptivo

De esta manera, la ecuación de la función fitness f que permite evaluar a cada


individuo mediante la asignación de un valor de aptitud, se muestra a continuación:

| |, (6)

Como puede apreciarse, esta función es formulada para obtener un máximo,


por lo cual es agregada una constante B evitar la presencia de números negativos en la
misma.

Con el propósito de aplicar las restricciones, el GA aplica una técnica de


premiación que incrementa el valor de fitness de aquellos individuos que presentan una
ganancia total dentro de las especificaciones y un BW mayor o igual a ε. La estrategia de
premiación considera el BW de estos individuos para efectuar el incremento del fitness,
de manera que aquellos con mayor BW presentan un valor de fitness mayor (Hf), de
acuerdo a la siguiente expresión:

( )
(7)

Por otro lado, el GA utiliza una técnica de penalización que disminuye el valor
de fitness de los individuos con BW inferior a ε, aun cuando los mismos presentan un
valor de ganancia dentro de las especificaciones. Consecuentemente, estos individuos
adoptan un valor de fitness más bajo (Lf), de acuerdo a la siguiente expresión:

( )
(8)

El proceso de evaluación descripto permite la asignación de un valor de fitness


a cada individuo.

3. Selección: La selección de los individuos para la siguiente generación se


efectúa utilizando el método de la ruleta giratoria [23], [24], el cual hace posible que
aquellos con valores de aptitud más altos presenten mayores probabilidades de ser
seleccionados.

130
Amplificador adaptivo

4. Cruce: La operación de cruce entre los individuos seleccionados se lleva a


cabo aplicando en cada generación el operador de cruce en un punto [23], [24].

5. Mutación: Esta operación se lleva a cabo utilizando el operador de inversión


que es el más común cuando se emplea codificación binaria [23], [24]. En el Apéndice 1
se explica el funcionamiento del mismo.

6. Reparación: Esta operación se inserta en el proceso evolutivo llevado a cabo


por el GA para solucionar el problema de los genes ilegales. Este tipo de genes surge
como consecuencia de la técnica de codificación utilizada. Como se mencionó en la
descripción del Bloque 1 del GA, utilizando codificación binaria se emplean seis bits
para poder representar la cantidad de valores posibles (36) de ganancia de los PGA. En
consecuencia, la estrategia de codificación puede caracterizar hasta 64 valores (26), con
lo cual restan 28 valores (26 – 36 = 28) que no pueden ser considerados por el GA.
Estos valores reciben el nombre de genes ilegales [29], [31].

Por este motivo, en cada generación el GA debe detectar la existencia de estos


genes en los individuos que genera con el propósito de repararlos. En la literatura se
han propuesto métodos de reparación para solucionar el mencionado problema. Entre
estos métodos, pueden mencionarse aquellos que efectúan la reparación mediante el
reemplazo de los genes ilegales por otros generados aleatoriamente, o los que realizan el
reemplazo directamente asignando a estos genes el valor posible más alto (dentro del
rango de valores posibles que pueda adoptar el gen) [29], [31]. Ambos métodos han
sido considerados y su desempeño ha sido evaluado para este caso de estudio en
particular. No obstante, también se desarrolló una estrategia de reparación focalizada en
el problema planteado con el propósito de disminuir el efecto negativo de la reparación
en la performance del GA.

Debe destacarse que la cantidad posible de genes ilegales en este caso es elevada
con respecto a la cantidad de valores permitidos, lo que provoca que el proceso de
reparación sea utilizado con frecuencia por el algoritmo. La utilización de un método de
reparación no apropiado puede ocasionar que el GA desvíe considerablemente su
búsqueda en cada generación y necesite mayor cantidad de generaciones para converger
o que no llegue a encontrar una solución adecuada.

131
Amplificador adaptivo

La estrategia de reparación que se propone efectúa un reemplazo de los genes


ilegales por alguno de los 36 valores posibles. La asignación de estos valores no es
aleatoria, sino que se realiza de manera que, a medida que los genes ilegales poseen
valores más grandes (más alejados de 36 y más cercanos a 64) los mismos son
reemplazados por valores también mayores, dentro de los 36 valores permitidos (más
cercanos a 36). Por el contrario, si las soluciones ilegales tienen valores que apenas
sobrepasan el 36, adoptarán los valores permitidos más pequeños.

De esta manera, se convierte cada gen ilegal en un nuevo gen denominado gen
reparado (Gr), de acuerdo a la siguiente expresión:

( ) (9)

En (9), DistGi representa la distancia entre el gen ilegal Gi (el cual adopta
valores entre 37 y 64) y el valor 36 que es el último valor permitido.

Por otro lado, Coefr es el coeficiente de reemplazo, el cual debe ser incorporado
debido a que la cantidad de genes ilegales posibles es menor a la cantidad de valores
permitidos posibles. En consecuencia, no se puede asignar directamente el valor de
DistGi al gen reparado Gr, porque quedarían valores permitidos que nunca
intervendrían en el reemplazo. Por este motivo, se incorpora a (9) el valor Coef r con el
propósito de que todos los valores permitidos puedan intervenir en el proceso de
reparación. El coeficiente adopta en este caso el valor 1.29, el cual surge de la siguiente
expresión:
(11)

La estrategia de reparación propuesta arrojó mejores resultados que los


obtenidos utilizando las otras dos técnicas de reparación mencionadas.

7. Finalización: El criterio de parada consiste en encontrar una solución que


cumpla con los criterios de performance definidos, o bien alcanzar un determinado
número de generaciones.

8. Solución: La combinación de valores de ganancia que resulta ser la solución


proporcionada por el GA depende de la manera en la cual el mismo finaliza su

132
Amplificador adaptivo

ejecución. Cuando el GA se detiene porque existe al menos un individuo que cumple


con las especificaciones, la solución está representada por el individuo con el fitness
más alto de la generación actual. Si por el contrario, el motivo de finalización de la
ejecución del GA es haber alcanzado el número máximo de generaciones, se considera
como solución aquella combinación de valores de ganancia representada por el
individuo con el fitness más alto, considerando todas las generaciones transcurridas.

En el Apéndice 3 se muestra el código Matlab desarrollado para implementar


los operadores genéticos, los cuales comprenden los bloques de Selección, Cruce y
Mutación.

4.4.2. Parámetros del GA


El GA se implementa considerando como parámetros una población inicial de
30 individuos, probabilidad de cruce de 0.5, probabilidad de mutación de 0.3 y cantidad
máxima de generaciones de 25. Estos valores han sido seleccionados a partir de
experimentos realizados considerando diferentes alternativas para cada parámetro.

Con el propósito de evaluar la habilidad del GA para encontrar una solución


aceptable en diferentes escenarios, se propusieron tres valores diferentes para la
ganancia objetivo (Atar): 2, 8 y 15. Además, con fines demostrativos se estableció para el
BW mínimo tolerable (ε) el valor 4E+06 rad/s (636 kHz).

4.5. Modelos de falla e inyección de fallas


La performance del esquema adaptivo presentado en este capítulo es evaluada
mediante inyección de fallas. Para ello es necesario definir un modelo de falla. Como se
trata de un sistema reconfigurable, se han adoptado modelos de falla similares a los
utilizados en [32], [33], [34], [35].

Si el PGA es correctamente diseñado, el amplificador operacional puede


presentar amplias desviaciones en sus parámetros sin efectos en su rendimiento de lazo
cerrado. Por este motivo, se considera que la principal causa de fallas en la ganancia de
los PGAs obedece a degradaciones en las resistencias que establecen la ganancia. En

133
Amplificador adaptivo

cada PGA se consideran cuatro modelos de falla diferentes para la ganancia


determinada a partir de las resistencias Ra y Rb (Figura 4-1(a)).

Los denominados Modelo de Falla 1, Modelo de Falla 2 y Modelo de Falla 3


son catastróficos. El Modelo de Falla 1 asume que no es posible establecer un valor de
ganancia en un PGA debido a una falla stuck-open en uno de los interruptores que
configuran el PGA. El Modelo de Falla 2 considera que no es posible establecer dos
valores de ganancia. Este modelo supone que una falla stuck-open en uno de los
interruptores que conectan las resistencias (Figura 4-1(b)) puede conducir a dos valores
diferentes de ganancia no disponibles para los PGA. Estos dos valores de ganancia
presentan el mismo valor para las señales EXGAIN y RtapMux pero difieren en el
valor de la señal Gain, la cual determina si la ganancia del PGA es menor o mayor a
uno (sección 4.2.1). El Modelo de Falla 3 considera una falla stuck-on en un
interruptor, el cual está siempre en estado cerrado. Finalmente, el Modelo de Falla 4 es
paramétrico y asume que hay una desviación en los valores de ganancia. Este modelo
considera fallas paramétricas presentes en la matriz de resistencias.

Debido a que los PGAs se encuentran embebidos en los dispositivos PSoC, no


es posible la inyección de fallas directamente en el hardware. Por esta razón se ha
adoptado una aproximación diferente. Para inyectar una falla utilizando el Modelo de
Falla 1, ha sido eliminado del espacio de búsqueda usado por el GA el valor de ganancia
que se considera que presenta fallas. Cuando el Modelo de Falla 2 es utilizado, se
remueven los valores de ganancia que presentan la misma combinación de EXGAIN y
RtapMux. La inyección de fallas del Modelo de Falla 3 requiere considerar la ubicación
del interruptor que presenta la falla stuck-on y establecer el valor de ganancia bajo esta
condición. Por ejemplo, la Figura 4-7 muestra un stuck-on en el interruptor que
establece un valor de ganancia de 16 (EXGAIN=0, RtapMux=0, condición de test 3,
en la Tabla 4-1). Si ante esta falla es programado un valor de ganancia de 24
(EXGAIN=1, RtapMux=1, condición de test 2 en la Tabla 4-1), entonces un valor de
ganancia de 23.5 es obtenido en su lugar. Este proceso se repite para todas las
condiciones de test descriptas en la Tabla 4-1. Para inyectar fallas utilizando el Modelo
de Falla 4, se alteran los valores de ganancia en el espacio de búsqueda. Particularmente,
se considera que el PGA presenta una desviación en sus valores de ganancia en un
porcentaje de sus valores nominales de ± 10%, ±20%, ±30%, ±40% y ±50%.

134
Amplificador adaptivo

Entrada
Salida

+
-
RtapMux EXGAIN

3R
Eh x

3R

Stuck-on en Número total de


interruptor resistencias=48

0h 3R
0

1h 1 R

0h 1 R

Figura 4-7. Ejemplo de inyección de falla stuck-on.

4.6. Resultados experimentales

4.6.1. Resultados del test


La rutina de test ha sido escrita en assembler. Los experimentos fueron
realizados en una placa CY3210-PSoCEval1 que provee el hardware necesario para
evaluar el dispositivo PSoC1, CY8C29466-24PXI. Con el propósito de simplificar los
experimentos se implementó en el dispositivo un módulo de comunicación con la
computadora central a través de una interface serial RS-232.

La Tabla 4-2 muestra el valor medio de las observaciones realizadas de los


puntos intermedios de la matriz de resistencias para las condiciones de test
consideradas. Es posible apreciar que los valores son muy cercanos a los reportados
como ideales en la Tabla 4-1, observándose errores más altos para las condiciones de
test 1 a 4. El error relativo al valor nominal es siempre inferior a 5%, con excepción del
PGA3 para la condición de test 1. En este caso, el error se eleva a 7%.

Tabla 4-2. Resultados del test en la matriz de resistencias.

135
Amplificador adaptivo

Condición PGA1 Vref PGA2 Vref PGA3 Vref PGA4 Vref


de test (unidades VDD) (unidades VDD) (unidades VDD) (unidades VDD)
1 0.0199 0.0215 0.0223 0.0211
2 0.0407 0.0423 0.0430 0.0411
3 0.0615 0.0634 0.0641 0.0604
4 0.1238 0.1258 0.1267 0.1255
5 0.1861 0.1882 0.1893 0.1867
6 0.2488 0.2508 0.2520 0.2499
7 0.3114 0.3132 0.3143 0.3125
8 0.3741 0.3756 0.3767 0.3742
9 0.4366 0.4380 0.4391 0.4373
10 0.4992 0.5006 0.5012 0.4993
11 0.5617 0.5633 0.5636 0.5634
12 0.6239 0.6254 0.6257 0.6253
13 0.6867 0.6880 0.6881 0.6860
14 0.7492 0.7504 0.7505 0.7504
15 0.8120 0.8131 0.8129 0.8120
16 0.8745 0.8752 0.8750 0.8745
17 0.9370 0.9376 0.9374 0.9376
18 1.0000 1.0000 1.0000 1.0000

4.6.2. Operación libre de fallas


En una primera instancia se consideró una situación libre de fallas, por lo que
todos los valores de ganancia están disponibles para el algoritmo. Para poder observar
como el seteo de la población inicial afecta los resultados, la semilla fue cambiada en
cada corrida del GA.

Se efectuaron 50 corridas del GA para cada uno de los valores propuestos para
la ganancia objetivo (15, 8 y 2). La distribución de los resultados obtenidos puede
observarse en los diagramas de dispersión de la Figura 4-8 (se muestra un diagrama de
dispersión para cada ganancia objetivo propuesta). En los mismos, cada punto es una
solución al problema de optimización cambiando la semilla, y se muestra el error
relativo en la ganancia y el ancho de banda obtenido, para la ganancia objetivo
considerada.

136
Amplificador adaptivo

6,5E+06 7,5E+06

7,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,0E+06
6,5E+06
5,5E+06 6,0E+06

5,5E+06
5,0E+06
5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia
(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura 4-8. Error relativo en la ganancia vs. ancho de banda, bajo operación libre de fallas.

En todos los casos los errores relativos se encuentran en el rango [-4.98%,


4.83%]. El menor BW obtenido para todas las ganancias evaluadas es 4.06E+6 rad/s, el
cual supera el BW mínimo tolerable (ɛ).

La Tabla 4-3 muestra una caracterización del error relativo para los tres valores
de ganancia considerados. Como medida de tendencia central se adoptó la mediana
debido a que la distribución de los datos es no normal. Se presentan también el máximo
y el mínimo como medidas de dispersión. Es posible observar que el error relativo en la
ganancia es inferior al requerido (±5%) en todos los casos. Además, la mediana del
error relativo se acerca a cero para todas las ganancias objetivo.

137
Amplificador adaptivo

Tabla 4-3. Caracterización del error relativo en la ganancia bajo condición libre de fallas.

Error relativo en la ganancia (%)


Ganancia objetivo
Mediana Mínimo Máximo
15 0.24 -4.93 4.77
8 -0.31 -4.85 4.69
2 0.07 -4.98 4.83

En la Tabla 4-4 se visualiza una caracterización del BW obtenido en las


soluciones encontradas por el GA en las corridas efectuadas, para cada una de las tres
ganancias consideradas. Puede apreciarse que efectivamente el BW mínimo obtenido
supera a ɛ en todos los casos. Además, se observa que la mediana y el máximo
presentan valores más altos a medida que el valor de ganancia es más pequeño.

Tabla 4-4. Caracterización del BW bajo condición libre de fallas.

Ancho de banda (rad/s)


Ganancia objetivo
Mediana Mínimo Máximo
15 4.94E+06 4.06E+06 6.27E+06
8 5.61E+06 4.25E+06 7.07E+06
2 7.29E+06 4.14E+06 9.96E+06

Por otro lado, en la Figura 4-9 se muestra la cantidad de generaciones empleada


por el GA en cada una de las corridas, considerando cada una de las ganancias objetivo
propuestas.

La figura permite apreciar que en cada una de las corridas el algoritmo no


alcanza la cantidad máxima de generaciones definida, debido a que siempre encuentra
antes una solución que satisface las especificaciones.

En la Tabla 4-5 se muestran los resultados obtenidos en cuanto a la cantidad de


generaciones empleada por el GA. Para las tres ganancias objetivo consideradas el GA
encuentra una solución aceptable utilizando como mínimo 1 generación. Por otro lado,
la mediana y el máximo disminuyen a medida que el valor de la ganancia objetivo
disminuye.

138
Amplificador adaptivo

25
25

Cantidad de generaciones
Cantidad de generaciones
20
20

15 15

10 10

5 5

0 0
0 10 20 30 40 50 0 10 20 30 40 50
N° de corrida N° de corrida

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

25
Cantidad de generaciones

20

15

10

0
0 10 20 30 40 50
N° de corrida
(c) Ganancia objetivo: 2.

Figura 4-9. Cantidad de generaciones empleadas en cada corrida del GA.

Tabla 4-5. Caracterización de la cantidad de generaciones empleadas por el GA.

Cantidad de generaciones
Ganancia objetivo
Mediana Mínimo Máximo
15 5 1 23
8 4.5 1 19
2 2 1 11

Con el propósito de observar el grado de diversidad existente en las soluciones


propuestas por el GA para cada una de las ganancias objetivo consideradas, se

139
Amplificador adaptivo

visualizan a continuación histogramas que muestran para cada PGA los valores de
ganancia que participan en dichas soluciones.

La Figura 4-10 muestra los histogramas para la ganancia objetivo 15,


considerando cada uno de los PGA.

6 9
8
5
7
4 6
5

Frecuencia
Frecuencia

3
4
2 3
2
1
1
0 0
0,6867
0,0199
0,0615
0,1861
0,3114
0,4366
0,5617

0,8120
0,9370
1,0000
1,1435
1,3348
1,6028
2,0032
2,6731
4,0193
8,0775

1,3326
0,0215
0,0634
0,1882
0,3132
0,4380
0,5633
0,6880
0,8131
0,9376
1,0000
1,1426

1,5990
1,9976
2,6624
3,9872
7,9491
24,5700

23,6407
Valores de ganancia Valores de ganancia
(a) PGA1. (b) PGA2.

8
10 7

8 6
5
6
Frecuencia

4
Frecuencia

4 3
2
2
1
0 0
0,0223
0,0641
0,1893
0,3143
0,4391
0,5636
0,6881
0,8129
0,9374
1,0000
1,1429
1,3324
1,5982
1,9952
2,6546
3,9683
7,8927
23,2558

1,3326
0,0211
0,0604
0,1867
0,3125
0,4373
0,5634
0,6860
0,8120
0,9376
1,0000
1,1435

1,5992
2,0028
2,6724
4,0016
7,9681
24,3309

Valores de ganancia Valores de ganancia


(c) PGA3. (d) PGA4.

Figura 4-10. Histogramas correspondientes a cada PGA, para la ganancia objetivo 15.

A partir de los histogramas presentados es posible observar que para la ganancia


objetivo 15, los valores de ganancia empleados por el GA en las soluciones
proporcionadas se encuentran en el rango [0.5617, 5.3735], predominando dentro de
este intervalo el uso de los valores más altos.

La Figura 4-11 muestra los histogramas obtenidos para la ganancia objetivo 8,


considerando en cada uno de ellos el PGA1, PGA2, PGA3 y PGA4.

140
Amplificador adaptivo

8 10
7 9
8
6
7
5 6

Frecuencia
Frecuencia

4 5
3 4
3
2
2
1 1
0 0
0,9370

2,0032

0,0634
0,0199
0,0615
0,1861
0,3114
0,4366
0,5617
0,6867
0,8120

1,0000
1,1435
1,3348
1,6028

2,6731
4,0193
8,0775

0,0215

0,1882
0,3132
0,4380
0,5633
0,6880
0,8131
0,9376
1,0000
1,1426
1,3326
1,5990
1,9976
2,6624
3,9872
7,9491
24,5700

23,6407
Valores de ganancia Valores de ganancia
(a) PGA1. (b) PGA2.

9
10
9 8
8 7
7 6
6
Frecuencia

5
Frecuencia

5
4
4
3
3
2 2
1 1
0 0
1,0000

2,6546
0,0223
0,0641
0,1893
0,3143
0,4391
0,5636
0,6881
0,8129
0,9374

1,1429
1,3324
1,5982
1,9952

3,9683
7,8927
23,2558

0,0604

0,5634

1,0000
0,0211

0,1867
0,3125
0,4373

0,6860
0,8120
0,9376

1,1435
1,3326
1,5992
2,0028
2,6724
4,0016
7,9681
24,3309
Valores de ganancia Valores de ganancia
(c) PGA3. (d) PGA4.

Figura 4-11. Histogramas correspondientes a cada PGA, para la ganancia objetivo 8.

Los histogramas muestran que el intervalo de valores de ganancia que


intervienen en las soluciones proporcionadas por el GA para la ganancia objetivo 8 es
[0.2499, 5.3735]. Se observa un rango más amplio con respecto al obtenido
considerando como ganancia objetivo el valor 15, debido a que aparecen en algunas
soluciones valores de ganancia más pequeños. No obstante, los valores más altos
dentro del rango mencionado, son los más utilizados, a excepción del valor superior del
intervalo (5.3735) que es utilizado sólo una vez por dos de los PGA.

En la Figura 4-12 se visualizan los histogramas correspondientes a cada PGA


para el valor de ganancia objetivo 2.

141
Amplificador adaptivo

5 4
4,5
4
3
3,5
Frecuencia

Frecuencia
3
2,5 2
2
1,5
1
1
0,5
0 0
1,1435

2,0032

8,0775
0,0199
0,0615
0,1861
0,3114
0,4366
0,5617
0,6867
0,8120
0,9370
1,0000

1,3348
1,6028

2,6731
4,0193

1,3326
0,0215
0,0634
0,1882
0,3132
0,4380
0,5633
0,6880
0,8131
0,9376
1,0000
1,1426

1,5990
1,9976
2,6624
3,9872
7,9491
24,5700

23,6407
Valores de ganancia Valores de ganancia
(a) PGA1. (b) PGA2.

5 8
4,5 7
4
6
3,5
3 5
Frecuencia

Frecuencia

2,5 4
2 3
1,5
2
1
0,5 1
0 0
1,3326
0,0223
0,0641
0,1893
0,3143
0,4391
0,5636
0,6881
0,8129
0,9374
1,0000
1,1429
1,3324
1,5982
1,9952
2,6546
3,9683
7,8927

0,0211
0,0604
0,1867
0,3125
0,4373
0,5634
0,6860
0,8120
0,9376
1,0000
1,1435

1,5992
2,0028
2,6724
4,0016
7,9681
23,2558

24,3309
Valores de ganancia Valores de ganancia
(c) PGA3. (d) PGA4.

Figura 4-12. Histogramas correspondientes a cada PGA, para la ganancia objetivo 2.

A partir de los histogramas, es posible apreciar que cuando la ganancia


disminuye, el rango de valores de ganancia empleados por el GA aumenta debido a que
algunas soluciones utilizan valores más pequeños de ganancia. El rango obtenido es
[0.1255; 5.3562]. A diferencia de los casos anteriores, se observa que los valores
utilizados ya no se encuentran concentrados en los valores más altos del intervalo, sino
que están más distribuidos en el mismo.

Analizando los histogramas presentados de manera conjunta, se observa que los


tres valores más pequeños de ganancia de cada PGA y los cuatro valores más grandes,
no son propuestos por el GA en ninguna de las soluciones encontradas bajo las
corridas efectuadas. Esta característica se debe a los valores considerados para la
ganancia objetivo en las simulaciones efectuadas. Además, es posible observar que
existe gran diversidad en los valores de ganancia que el GA propone para cada PGA, lo

142
Amplificador adaptivo

que permite estimar que ante la presencia de fallas que impidan la programación de
alguno de los valores de ganancia o impliquen desviaciones en sus valores nominales, el
GA pueda continuar encontrando soluciones que permitan cumplir con las
especificaciones.

4.6.3. Operación bajo condición de falla

4.6.3.1. Modelo de Falla 1

En la Figura 4-13 se reportan mediante diagramas de dispersión los resultados


obtenidos para las ganancias objetivo 15, 8 y 2, en la inyección de fallas utilizando el
Modelo de Falla 1. Se presentan en este capítulo los resultados correspondientes a fallas
inyectadas en el PGA1, situación para la cual se observó el peor desempeño en las
simulaciones efectuadas. Los resultados pertenecientes a fallas inyectadas en los demás
PGAs se muestran en el Apéndice 4.

En cada diagrama de dispersión de la figura se muestra el error relativo en la


ganancia contra el ancho de banda obtenido, para cada ganancia objetivo propuesta.
Cada punto es una solución al problema de optimización considerando que se ha
eliminado del espacio de búsqueda usado por el GA uno de los valores de ganancia que
puede adoptar el PGA1.

6,5E+06 8,0E+06

7,5E+06
Ancho de Banda (rad/seg)

Ancho de banda (rad/seg)

6,0E+06
7,0E+06

5,5E+06 6,5E+06

6,0E+06
5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06
4,0E+06 4,0E+06
-5% -3% -1% 1% 3% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

143
Amplificador adaptivo

1,1E+07

1,0E+07

Ancho de banda (rad/seg)


9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(b) Ganancia objetivo: 2.

Figura 4-13. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 1.

Es posible observar que el error en la ganancia es inferior a ±5% para todas las
ganancias objetivo, mientras que el ancho de banda supera al BW mínimo tolerable.

En la Tabla 4-6 se caracterizan los resultados obtenidos en la inyección de fallas


utilizando el Modelo de Falla 1, para los cuatro PGAs. En la misma, los resultados
fueron agrupados por valor de ganancia. Comparando los resultados obtenidos con
respecto a los correspondientes a la operación libre de fallas (

Tabla 4-3), puede observarse que cuando hay fallas el sistema presenta como
peor caso un incremento de 0.41% en el rango de error para la ganancia 8. Por otro
lado, la mediana del error relativo decrementa para las tres ganancias, lo cual indica
posibles cambios en la distribución del error. En todos los experimentos, el GA es
capaz de alcanzar la ganancia objetivo, con errores para todas las ganancias en el rango
[-4.99%, 4.96%].

Tabla 4-6. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 1.

Error relativo en la ganancia (%)


Ganancia objetivo
Mediana Mínimo Máximo
15 -0.46 -4.92 4.75
8 -0.83 -4.98 4.96
2 -0.40 -4.99 4.84

144
Amplificador adaptivo

Con referencia al BW alcanzado por las soluciones proporcionadas por el GA,


se muestra en la Tabla 4-7 una caracterización del mismo. Con respecto a la operación
libre de fallas (Tabla 4-4) se observa que aún bajo la presencia de las fallas direccionadas
por este modelo de falla, la mediana y el máximo BW se incrementan en los tres casos,
mientras que el BW mínimo se incrementa para la ganancia objetivo 2 y disminuye
levemente para las otras dos ganancias.

Tabla 4-7. Caracterización del BW bajo el Modelo de Falla 1.

Ancho de banda (rad/s)


Ganancia objetivo
Mediana Mínimo Máximo
15 5.25E+06 4.03E+06 6.40E+06
8 5.83E+06 4.06E+06 7.40E+06
2 7.45E+06 4.37E+06 1.06E+07

La Tabla 4-8 permite efectuar un análisis con respecto a la cantidad de


generaciones empleadas por el GA en las simulaciones efectuadas bajo la presente
condición de falla. Para ello, en la misma se muestra para cada ganancia objetivo la
mediana, el mínimo y el máximo. Si se comparan estos resultados con los obtenidos
bajo operación sin fallas (

Tabla 4-5), puede observarse que ante la presencia de fallas la mediana presenta
variaciones para las tres ganancias, mientras que el mínimo se mantiene constante. Por
otro lado, el máximo se incrementa en todos los casos, no obstante, el mismo no supera
la cantidad máxima de generaciones definida.

Tabla 4-8. Caracterización de la cantidad de generaciones empleadas por el GA bajo el Modelo


de Falla 1.

Cantidad de generaciones
Ganancia objetivo
Mediana Mínimo Máximo
15 5 1 25
8 3 1 25
2 3 1 22

4.6.3.2. Modelo de Falla 2

145
Amplificador adaptivo

La Figura 4-14 muestra los resultados obtenidos bajo el Modelo de Falla 2 en el


PGA3. Los mismos corresponden al peor caso presentado en el proceso de inyección
de fallas con el modelo mencionado. Los resultados pertenecientes a fallas inyectadas
en los demás PGAs se muestran en el Apéndice 4.

En la figura, para cada ganancia objetivo se muestra un diagrama de dispersión,


en el cual cada punto representa el error relativo en la ganancia contra el BW obtenido
en una solución propuesta por el GA, cuando se remueven del espacio de búsqueda dos
de los valores de ganancia que puede adoptar el PGA3.

6,5E+06 8,0E+06

7,5E+06
Ancho de banada (rad/seg)

Ancho de banada (rad/seg)

6,0E+06
7,0E+06

5,5E+06 6,5E+06

6,0E+06
5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banada (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(a) Ganancia objetivo: 2.

Figura 4-14. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 2.

146
Amplificador adaptivo

Es posible observar en los diagramas presentados que el error relativo en la


ganancia no supera en ningún caso el ±5% y que el BW obtenido es siempre mayor al
BW mínimo tolerable.

La Tabla 4-9 muestra una caracterización de los resultados de la simulación de


fallas usando el Modelo de Falla 2, con referencia al error relativo en la ganancia.
Comparando estos resultados con los obtenidos bajo operación libre de fallas (

Tabla 4-3), es posible apreciar que cuando hay fallas el sistema presenta como
peor caso un incremento de 0.29% en el rango de error para la ganancia 8. La mediana
del error relativo se incrementa para las ganancias 8 y 15, mientras disminuye para la
ganancia 2. En todos los experimentos, el GA es capaz de alcanzar la ganancia objetivo,
con errores para todas las ganancias en el rango [-4.96%, 4.99%].

Tabla 4-9. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 2.

Error relativo en la ganancia (%)


Ganancia objetivo
Mediana Mínimo Máximo
15 0.28 -4.84 4.99
8 0.15 -4.85 4.97
2 -0.76 -4.96 4.99

Con referencia al BW obtenido, el menor valor alcanzado es 4.13E+06 rad/s,


que resulta ser mayor que el BW mínimo requerido. La Tabla 4-10 presenta una
caracterización del BW alcanzado para cada ganancia objetivo. Es posible apreciar que
con respecto a la operación normal, ante la presencia de fallas la mediana y el máximo
se incrementan, mientras que el mínimo aumenta para las ganancias 15 y 2,
disminuyendo para la ganancia 8.

Tabla 4-10. Caracterización del BW bajo el Modelo de Falla 2.

Ancho de banda (rad/s)


Ganancia objetivo
Mediana Mínimo Máximo
15 5.30E+06 4.13E+06 6.39E+06
8 5.84E+06 4.13E+06 7.44E+06

147
Amplificador adaptivo

2 7.33E+06 4.35E+06 1.06E+07

La cantidad máxima, mínima y la mediana de generaciones alcanzada bajo el


Modelo de Falla 2 para cada ganancia objetivo se visualizan en la Tabla 4-11. Puede
observarse con respecto a la operación normal que si bien se incrementa el número
máximo de generaciones empleado en dos de los casos, este valor no supera la cantidad
máxima de generaciones definida para el GA. Por otro lado, el mínimo de generaciones
no varía, mientras que la mediana aumenta para las tres ganancias consideradas.

Tabla 4-11. Caracterización de la cantidad de generaciones empleadas por el GA bajo el Modelo


de Falla 2.

Cantidad de generaciones
Ganancia objetivo
Mediana Mínimo Máximo
15 6 1 25
8 4 1 19
2 3 1 18

4.6.3.3. Modelo de Falla 3

La Figura 4-15 muestra los resultados obtenidos usando el Modelo de Falla 3 en


el PGA3. Se reportan en la misma los resultados correspondientes al PGA3 debido a
que el mismo presentó el peor caso en el proceso de inyección de fallas. En los
diagramas de la figura, cada punto representa el error relativo en la ganancia contra el
BW obtenido para cada solución proporcionada por el GA cuando el Modelo de Falla 3
es inyectado en el PGA.

Como puede observarse, el error en la ganancia es inferior a ±5% para todas las
ganancias objetivo, mientras que el ancho de banda supera al BW mínimo tolerable.

En la

Tabla 4-12 se encuentran caracterizados los errores relativos en la ganancia para


cada una de las ganancias objetivo propuestas. El GA es capaz de alcanzar la ganancia
objetivo con errores en todos los casos que están comprendidos en el rango [-4.99%,

148
Amplificador adaptivo

4.99%]. La comparación de estos resultados con los obtenidos bajo operación libre de
fallas (

Tabla 4-3) muestra que ante la presencia de las fallas consideradas en este
modelo de falla se manifiesta en el peor caso un incremento de 0.29% en el rango de
error para la ganancia 8. La mediana del error relativo decrementa para las ganancias 2 y
15, mientras que para la ganancia 8, aumenta.

6,5E+06 8,0E+06

7,5E+06
Ancho de banda (rad/seg)

6,0E+06

Ancho de banda (rad/seg)


7,0E+06

5,5E+06 6,5E+06

6,0E+06
5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia
(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia
(c) Ganancia objetivo: 2.
Figura 4-15. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 3.

Tabla 4-12. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 3.

149
Amplificador adaptivo

Error relativo en la ganancia (%)


Ganancia objetivo
Mediana Mínimo Máximo
15 -0.05 -4.99 4.99
8 -0.06 -4.98 4.80
2 -0.51 -4.90 4.90

Con referencia al BW alcanzado en las soluciones encontradas por el GA, puede


observarse que en todos los casos el mismo es mayor al BW mínimo tolerable. En la
Tabla 4-13 se presenta una caracterización del BW obtenido. Es posible apreciar que
con respecto a la operación normal, ante la presencia de las fallas direccionadas por el
Modelo de Falla 3, el mínimo se incrementa para las ganancias 15 y 8, disminuyendo
para la ganancia 2. Por otro lado, la mediana aumenta para las ganancias 8 y 2,
decrementándose para la ganancia 15. El BW máximo, en cambio, se incrementa en
todos los casos.

Tabla 4-13. Caracterización del BW bajo el Modelo de Falla 3.

Ancho de banda (rad/s)


Ganancia objetivo
Mediana Mínimo Máximo
15 5.17E+06 4.32E+06 6.30E+06
8 5.37E+06 4.23E+06 7.45E+06
2 7.15E+06 4.22E+06 1.06E+07

Con referencia a la cantidad de generaciones empleadas por el GA, en la Tabla


4-14 se muestran los valores mínimos, máximos y la mediana para cada valor de
ganancia objetivo. Es posible apreciar que la cantidad mínima se mantiene
prácticamente constante, mientras que la mediana disminuye para la ganancia 15 y se
incrementa sensiblemente para las otras dos ganancias. Por otro lado, la cantidad
máxima de generaciones se incrementa o se mantiene constante (para la ganancia 15),
pero en ningún caso supera el número máximo de generaciones establecido.

Tabla 4-14. Caracterización de la cantidad de generaciones empleadas por el GA bajo el Modelo


de Falla 3.

Cantidad de generaciones
Ganancia objetivo
Mediana Mínimo Máximo

150
Amplificador adaptivo

15 4 2 23
8 5 1 24
2 3 1 13

4.6.3.4. Modelo de Falla 4

En la Figura 4-16 se muestran los resultados de simulación de fallas de


desviación para el PGA2, el cual representa el peor caso. Para cada ganancia objetivo
propuesta se muestra un diagrama con los errores relativos en la ganancia y el BW
obtenido, para cada valor de desviación en la misma.

6,0E+06 7,5E+06
5,8E+06 7,0E+06
Ancho de banda (rad/seg)

5,6E+06
Ancho de banda (rad/seg)

5,4E+06 6,5E+06

5,2E+06 6,0E+06
5,0E+06
5,5E+06
4,8E+06
4,6E+06 5,0E+06
4,4E+06
4,5E+06
4,2E+06
4,0E+06 4,0E+06
-5% -3% -1% 1% 3% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia
(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia
(c) Ganancia objetivo: 2.

Figura 4-16. Error relativo en la ganancia vs. ancho de banda, bajo el Modelo de Falla 4.

151
Amplificador adaptivo

A partir de los resultados de la simulación se observa que el GA es capaz de


alcanzar la ganancia objetivo con errores en todos los casos en el rango [-4.94%, 4.57%]
y ancho de banda mayor a 4.08E+06 rad/s.

La Tabla 4-15 resume los efectos del Modelo de Falla 4 en el error relativo en la
ganancia, correspondiente a las soluciones proporcionadas por el GA. Comparando los
resultados obtenidos bajo condición libre de fallas (

Tabla 4-3) y con fallas, se observa que cuando hay fallas se presenta una
disminución en el error relativo para todas las ganancias, a pesar de la presencia de fallas
de desviación relativamente altas. La mediana del error relativo se incrementa para la
ganancia 15 mientras para las otras dos ganancias decrementa, lo cual sugiere cambios
en la distribución del error entre la operación normal y con falla.

Tabla 4-15. Caracterización del error relativo en la ganancia bajo el Modelo de Falla 4.

Error relativo en la ganancia (%)


Ganancia objetivo
Mediana Mínimo Máximo
15 0.72 -4.81 4.56
8 -1.58 -4.79 4.57
2 -0.95 -4.94 4.39

En la Tabla 4-16 se muestra una caracterización del BW obtenido bajo este


modelo. Es posible observar que a pesar de la presencia de fallas se manifiesta en todos
los casos un incremento de la mediana y del máximo. Por otro lado, el mínimo aumenta
para las ganancias 15 y 8, permaneciendo constante para la ganancia objetivo 2,
superando en todos los casos el BW mínimo requerido.

Tabla 4-16. Caracterización del BW bajo el Modelo de Falla 4.

Ancho de banda (rad/s)


Ganancia objetivo
Mediana Mínimo Máximo
15 5.15E+06 4.08E+06 6.31E+06
8 6.09E+06 4.30E+06 7.27E+06
2 7.56E+06 4.14E+06 1.05E+07

152
Amplificador adaptivo

Los resultados relacionados con la cantidad de generaciones empleada por el


GA se muestran en la Tabla 4-17. En la misma puede apreciarse que bajo este modelo
de falla la cantidad mínima de generaciones se mantiene constante, mientras que la
mediana disminuye para las ganancias 15 y 8, incrementándose levemente para la
ganancia 2. Con respecto al máximo número de generaciones alcanzado, el mismo se
incrementa en una unidad en el peor caso sin llegar a superar la cantidad de
generaciones máxima definida.

Tabla 4-17. Caracterización de la cantidad de generaciones empleadas por el GA bajo el Modelo


de Falla 4.

Cantidad de generaciones
Ganancia objetivo
Mediana Mínimo Máximo
15 3 1 24
8 4 1 16
2 3 1 11

4.7. Comparación con el método de búsqueda exhaustiva


Para una mejor caracterización de la eficiencia del GA se realizó una
comparación del mismo con el método de búsqueda exhaustiva (ESM, Exhaustive
Search Method). Este método se basa en la enumeración sistemática de todas las
soluciones posibles para determinar cuál es la que resuelve mejor el problema planteado
[36].

La comparación se realizó considerando dos parámetros: cantidad de


evaluaciones de la función objetivo (EFO) y tiempo de ejecución del GA. Tanto el GA
como ESM fueron implementados en Matlab.

El GA realiza como máximo 750 EFO (tamaño de la población x cantidad de


generaciones), mientras que ESM efectúa 1.679.616 EFO (ecuación 6) para encontrar la
mejor solución bajo operación libre de fallas y bajo los Modelos de Falla 3 y 4. Para el
Modelo de Falla 1 este método realiza 1.632.960 evaluaciones y para el Modelo de Falla
2 efectúa 1.586.304 evaluaciones.

La Tabla 4-18 muestra una comparación entre el desempeño del GA y ESM en


cuanto al tiempo de ejecución. El tiempo de ejecución del GA mostrado corresponde al

153
Amplificador adaptivo

máximo valor del tiempo de ejecución obtenido en el peor caso (ganancia 8 para el
Modelo de Falla 3 y ganancia 15 para los otros modelos de falla). En la condición más
desfavorable (Modelo de Falla 1), el GA es 482.81 veces más rápido que ESM. En la
mejor condición (libre de fallas), el GA es 641.40 veces más rápido que ESM.

Tabla 4-18. Comparación de desempeño entre ESM y GA.

Tiempo de ejecución máximo (seg.)


Método Condición libre Modelo de Modelo de Modelo de Modelo de
de fallas Falla 1 Falla 2 Falla 3 Falla 4
GA 0.324 0.404 0.395 0.388 0.371
ESM 202.94 195.20 192.57 202.94 202.94

Con respecto al BW, se compararon los resultados obtenidos por el GA y ESM


bajo condición normal y con fallas, observándose que los BW obtenidos a partir del
GA son menores a los obtenidos mediante ESM, con una mediana entre 17.19% y
31.23% más baja. No obstante, es necesario destacar que estos valores son obtenidos
en un tiempo y con una cantidad de evaluaciones de la función objetivo, que resultan
considerablemente inferiores.

4.8. Conclusiones
En este capítulo se ha presentado un amplificador adaptivo implementado con
amplificadores de ganancia programable en un dispositivo PSoC que es parte de un
nodo sensor en una red inalámbrica de sensado. La aplicación de estrategias de EHW
en este tipo de plataformas reconfigurables no había sido abordada antes.

El sistema está compuesto por un esquema SBST que chequea todas las
ganancias disponibles en el amplificador y por un GA que se ejecuta en una
computadora externa con el propósito de reconfigurar los recursos del chip. Con
referencia al esquema SBST, esta es la primera aplicación del mismo como parte de una
estrategia de EHW. Con respecto al GA, el mismo tiene características diferentes a las
del algoritmo descripto en el Capítulo 3, debido a que en este caso de estudio el
problema de optimización es distinto. No obstante, el GA desarrollado resulta ser

154
Amplificador adaptivo

robusto para los tipos de fallas considerados. Los resultados de las simulaciones
efectuadas muestran que el sistema mantiene la ganancia objetivo y el BW dentro de las
especificaciones, a pesar de la presencia de fallas catastróficas y de desviación. Además,
el algoritmo resulta ser considerablemente más eficiente que el método de búsqueda
exhaustiva.

4.9. Referencias
[1] J. Chen, S. Kher, A. Soman, Distributed Fault Detection of Wireless Sensor Networks, in Proceedings of the
2006 workshop on Dependability issues in wireless ad hoc networks and sensor networks, pp. 65-72,
2006.
[2] A. Flammini, P. Ferrari, D. Marioli, E. Sisinni, A. Taroni, Wired and wireless sensor networks for industrial
applications, Microelectron J., vol. 40, no.9, pp.1322-1336, 2009.
[3] R. Zhang, Z. Zilic, K. Radecka, Energy efficient software-based self-test for wireless sensor network nodes, in
Proceedings 24th IEEE VLSI Test Symposium, pp. 191-196, 2006.
[4] A. Krstic, L. Wei-Cheng, C. Kwang-Ting, L. Chen, S. Dey, Embedded software-based self-test for
programmable core-based designs, IEEE Des. Test Comput., vol. 19, no.4, pp. 18-27, 2002.
[5] M. Psarakis, D. Gizopoulus, E. Sanchez, M. Sonza Reorda, Microprocessor software-based self-testing,
IEEE Des. Test Comput., vol. 27, no. 3, pp. 4-8, 2010.
[6] R. Salem Zebulum, M. Pacheco, M. Vellasco, Evolutionary electronics: automatic design of electronic circuits
and systems by genetic algorithms, CRC Press, 2002.
[7] Q. Ji, Y. Wang, M. Xie, J. Cui, Research on fault-tolerance of analog circuits based on evolvable hardware, in
Proceedings 7th international conference on Evolvable systems: from biology to hardware, pp. 100-
108, 2007.
[8] P. Haddow, M. Hartmann, A. Djupdal, Addressing the metric challenge: evolved versus traditional fault tolerant
circuits, in Proceedings Second NASA/ESA Conference on Adaptive Hardware and Systems, pp.
431-438, 2007.
[9] M. Lovay, A. Arregui, J. Gonella, G. Peretti, E. Romero, M. Lubaszewski, Fault tolerant amplifier system
using evolvable hardware, IEEE Argentine School of Micro-Nanoelectronics, Technology and
Applications (EAMTA 2010), IEEE Catalog Number: CFP1054E-CDR, ISBN: 978-987-1620-14-2,
Pág. 50-55, Noviembre de 2010, Montevideo, Uruguay.
[10] M. Lovay, G. Peretti, E. Romero, C. Marqués, Fault tolerance in an amplifier system implemented in
reconfigurable system on chip platform, 2º Congreso de Microelectrónica Aplicada (uEA 2011), Facultad de
Ingeniería, Universidad Nacional de La Plata, setiembre de 2011.
[11] M. Lovay, G. Peretti, E. Romero, C. Marqués, Adaptive Amplifier System for Sensor Network Applications,
Simposio Argentino de Tecnología 2011 (40° JAIIO), Facultad Regional Córdoba, Universidad
Tecnológica Nacional, agosto de 2011.
[12] M. Lovay, G. Peretti, E. Romero, C. Marqués, An Adaptive Amplifier System for Wireless Sensor Network
Applications, Journal of Electrical and Computer Engineering, vol. 2012, Article ID 762927, 14 pages,
2012.

155
Amplificador adaptivo

[13] PSoC® Programmable system-on-chip technical reference manual, Cypress Semiconductor


Corporation, 2008.
[14] D. Seuine, Just add sensor. Integrating analog and digital signal conditioning in a programmable system on chip, in
Vol. 1 Proceedings of IEEE Sensors, pp. 665-668, 2002.
[15] Programmable gain amplifier data sheet, Cypress Semiconductor Corporation, 2009.
[16] L. Bissi, P. Pacidi, A. Scorzoni, Offset voltage evaluation of analog blocks in a configurable mixed architecture for
smart capacitive sensor applications, Sensors and actuators A, vol. 140, pp. 162-167, 2007.
[17] V. Mattoli, A. Mondini, K. Razeeb, B. O’Flynn, F. Murphy, S. Bellis, G. Coilodi, A. Manes, P.
Pennacchia, B. Mazzolai, P. Dario, Development of a programmable sensor interface for wireless network nodes,
in Proceedings of IEE International Workshop on Intelligent Environments, pp. 1-6, 2005.
[18] Y. Chin, F. Chu, S. Huang, H. Yang, Based on PSoC Electric Angle Meter, in Proceedings 2011 First
International Conference on Robot, Vision and Signal Processing, pp 256-259, 2011.
[19] M. Hrgeti, I. Krois, M. Cifrek, Accuracy Analysis of Dissolved Oxygen Measurement System Realized with
Cypress PSoC Configurable Mixed Signal Array, in Proceedings of the IEEE International Symposium
on Industrial Electronics, vol. 3, pp. 1105-1110, 2005.
[20] A. Doboli, P. Kane, D. Van Ess, Dynamic reconfiguration in a PSoC device, in Proceedings International
Conference on Field-Programmable Technology, pp. 361-363, 2009.
[21] B. Mihajlovic, Z. Zilic, K. Radecka, Infrastructure for testing nodes of a wireless sensor network, Handbook of
research on developments and trends in wireless sensor networks: from principle to practice, IGI
Global, 2010.
[22] K. Virk, J. Madsen, Functional testing of wireless sensor node designs, in Proceedings 4th International
Conference on Innovations in Information Technology, pp. 123-127, 2007.
[23] D. Goldberg, Genetic Algorithm. Search, optimization and machine learning, Addison-Wesley, 1989.
[24] El-Ghazali Talbi, Metaheuristics From Design to Implementation. Wiley, pp. 208-345, USA, ISBN: 978-0-
470-27858-1, 2009.
[25] K. Deb, Multi-Objective Optimization using Evolutionary Algorithms, Wiley, pp. 49-60. Kanpur, India.
ISBN: 978-0-470-74361-4, 2009.
[26] C. Coello Coello, G. Lamont, D. Van Veldhuizen, Evolutionary Algorithms for solving Multi-Objective
Problems, Springer, Segunda Edición, pp. 31-51. USA. ISBN: 978-0-387-33254-3, 2007.
[27] J. Branke, K. Deb, K. Miettinen, Multiobjective optimization: interactive and evolutionary approaches, Springer,
2008.
[28] Y. Collette, P. Siarry, Multiobjective optimization: principles and case studies, Springer, 2003.
[29] F. Centurelli, P. Monsurro, A. Trifiletti, Power-constrained bandwidth optimization in cascaded open-loop
amplifiers, in Proceedings 18th European Conference on Circuit Theory and Design, pp. 65-654,
2007.
[30] C. Reeves, J. Rowe, Genetic algorithms: principles and perspective. A guide to GA theory, Kluwer Academic
Publishers, 2002.
[31] M. Gen, R. Cheng, Genetic Algorithms and Engineering Optimization, Willey, 2000.
[32] A. Laknaur, H. Wang, A methodology to perform online self-testing for field-programmable analog arrays circuits,
IEEE Trans. Inst. and Meas., vol. 54, no. 5, pp. 1751-1760, 2005.
[33] T. Balen, J. Andrade, F. Azais, M. Lubaszewski, M. Renovell, Applying the Oscillation Test Strategy to
FPAA’s Configurable Analog Blocks, J. Electron. Test, vol. 21, no. 2, pp. 135-146, 2005.

156
Amplificador adaptivo

[34] T. Balen, J. Calvano, M. Lubaszewski, M. Renovell, Built-in self-test of field programmable analog arrays
based on transient response analysis, J. Electron Test., vol. 23, no. 6, pp. 497-512, 2007.
[35] G. Pereira, J. Andrade, T. Balen, M. Lubaszewski, F. Azais, M. Renovell, Testing the interconnect
networks and I/O resources of field programmable analog arrays, in Proceedings 23rd IEEE VLSI Test
Symposium, pp. 389-394, 2005.
[36] K. Price K., R. Storn, L. Lampinen, Differential evolution: a practical approach to global optimization,
Springer, 2005.

157
158
5. Conclusiones y trabajos futuros

5.1. Conclusiones

Los principales aportes de esta Tesis se relacionan con la aplicación de


estrategias de EHW. Particularmente, se pretende proporcionar características de
adaptación a un filtro de alto orden y a un sistema amplificador, ante la presencia de
fallas. En ambos casos se considera como posible entorno de aplicación a los sistemas
WSN.

Con referencia al filtro adaptivo de alto orden, se destaca que es la primera vez que
se presenta un esquema de EHW considerando un filtro de alto orden. El esquema
propuesto resulta ser completo debido a que no solamente contempla la
reconfiguración del circuito ante la presencia de fallas, sino que también considera el
mecanismo de detección de fallas y la viabilidad de su implementación. Para este último
propósito se utiliza TRAM, que es un método de test desarrollado para filtros
compuestos por secciones de segundo orden. La aplicación de esta estrategia de test se
propone de una manera novedosa.

De acuerdo a los experimentos realizados TRAM resulta ser confiable para la


determinación de la función de transferencia del filtro si se realizan ciertas restricciones,
las cuales han sido enunciadas y establecidas en este trabajo.

Por otro lado, el uso de TRAM, tal como se desarrolla en esta Tesis requiere
ante la presencia de fallas solamente conocer que existe una desviación en la respuesta
del filtro de octavo orden respecto de la nominal. En esta situación, no se conocen los
valores actuales con los que pueden programarse los parámetros configurables del filtro
(la presencia de fallas puede haber provocado una desviación en los valores que pueden
adoptar todos o algunos de estos parámetros).

El esquema de EHW propuesto utiliza un GA para buscar una configuración


que permita al filtro mantener su respuesta dentro de ciertas especificaciones
preestablecidas. El hecho de que el GA no tenga información, debido a las razones
enunciadas en el párrafo anterior, acerca de cuáles son los componentes que presentan

159
Conclusiones y trabajos futuros

fallas, requiere de una evaluación intrínseca. Para ello, se propone nuevamente la


aplicación de TRAM, esta vez con un propósito distinto al de test, ya que se considera
su utilización para poder establecer la función de transferencia total de cada individuo
generado por el GA y evaluar su aptitud de acuerdo a la proximidad de su respuesta con
respecto a la nominal en las cuatro bandas definidas. Este proceso aporta al trabajo las
ventajas propias de la evaluación intrínseca, como la posibilidad de evaluar la respuesta
real del dispositivo con cada individuo generado y poder considerar en el proceso
evolutivo y como parte de la solución componentes con degradaciones.

El GA desarrollado presenta varios aspectos especiales. Entre ellos, pueden


mencionarse como más relevantes los siguientes:

 Utiliza una estrategia de codificación entera para construir los cromosomas.


Esta estrategia resulta más conveniente que la técnica de codificación
binaria, la cual demanda en este caso particular un cromosoma con una
longitud considerablemente grande.

 Emplea dos métodos a priori para resolver el problema de optimización


multiobjetivo planteado.

 Usa dos estrategias de cruce y probabilidades de mutación de manera


adaptiva, de acuerdo a las características que presenta la población en cada
generación.

El desempeño del GA ha sido evaluado utilizando cuatro modelos de fallas,


siendo los resultados satisfactorios y con errores por debajo de lo tolerado en todos los
casos, demostrando la viabilidad del esquema propuesto.

Además, es necesario destacar, con referencia a la plataforma ispPAC10, sobre


la cual se asume la implementación del filtro, que la elección de la misma se efectuó
considerando que se trata de una tecnología madura. Bajo este escenario, los resultados
obtenidos demuestran que el GA encuentra siempre soluciones que permiten la
reconfiguración del filtro bajo las condiciones de falla consideradas. Estos resultados
permiten prever que utilizando tecnologías más recientes, las cuales proporcionan una
mayor cantidad de valores programables de componentes, el GA podría encontrar

160
Conclusiones y trabajos futuros

soluciones satisfactorias más fácilmente, permitiendo, además de un desempeño


seguramente superior del mismo, la consideración de fallas que impliquen
degradaciones aún mayores en los valores de los componentes programables.

Por otro lado, con referencia al amplificador adaptivo, el mismo es implementado


en un dispositivo PSoC, siendo la primera vez que se utiliza este tipo de plataformas
reconfigurables en el desarrollo de estrategias de EHW.

Se considera que el sistema posee una ganancia que debe ser mantenida a pesar
de la presencia de fallas, mientras que su ancho de banda debe ser mayor al requerido
por la aplicación. El esquema de EHW presentado para cumplir con estos
requerimientos aborda, al igual que el esquema propuesto para el caso del filtro
adaptivo, los dos aspectos clásicos que deben ser considerados cuando se propone la
aplicación de EHW para proporcionar características de adaptación: detección de la
falla y recuperación de la misma. Por este motivo, el esquema propuesto está
compuesto por una estrategia SBST que chequea durante los tiempos inactivos todas
las ganancias disponibles en el amplificador, y por un GA que se ejecuta en una
computadora externa con el propósito de reconfigurar los recursos del chip, cuando se
detectan fallas.

Con referencia al esquema SBST, esta es la primera aplicación del mismo como
parte de una estrategia de EHW. Este método de test presenta como característica
atractiva la posibilidad de ser aplicado sin restricciones, debido a que no es necesaria la
incorporación de hardware adicional específico para test y no se requiere la
participación de la computadora central.

Con respecto al GA desarrollado para este esquema de EHW, el mismo debe


evolucionar los valores de ganancia de cada uno de los cuatro PGA que conforman el
amplificador adaptivo. Se presentan varias diferencias con respecto al GA
correspondiente al caso de estudio del filtro adaptivo. Las más relevantes se enuncian
brevemente a continuación:

 En este caso ha sido utilizada la técnica de codificación binaria. La longitud


del cromosoma es de 24 bits, valor que resulta ampliamente aceptable para
este tipo de codificación.

161
Conclusiones y trabajos futuros

 El problema de optimización planteado es resuelto mediante la utilización


de uno de los métodos de optimización a priori.

 Ha sido incorporada una técnica de reparación de genes ilegales, adaptada


especialmente a las características del problema planteado.

Los resultados de las simulaciones efectuadas muestran que el sistema mantiene


la ganancia objetivo y el BW dentro de las especificaciones, a pesar de la presencia de
fallas catastróficas y de desviación. Además, el GA resulta ser considerablemente más
eficiente que el método de búsqueda exhaustiva.

5.2. Trabajos futuros


Con referencia al GA, el mismo ha proporcionado resultados satisfactorios en
los dos casos de estudio planteados. Se han efectuado diferentes experimentos
considerando distintas alternativas en cuanto a valores de los parámetros configurables
del algoritmo, estrategias de codificación, operadores de cruce y de mutación, métodos
de reparación, entre otros. Con referencia al método de selección, en ambos casos se
eligió el método de selección proporcional o de ruleta giratoria por considerarlo el más
apropiado para los problemas planteados, en los cuales era necesario transformar de
manera proporcional y consistente los valores de fitness de cada individuo
(diferenciados mediante penalizaciones y premiaciones) en su respectiva probabilidad
de selección. No obstante, se plantea como trabajo futuro la implementación en el GA
de otros métodos de selección con el propósito de evaluar su desempeño.

Con referencia a las plataformas reconfigurables utilizadas está prevista la


implementación del filtro adaptivo de alto orden, considerado en el Capítulo 3, en una
plataforma más reciente (por ejemplo, PSoC) con respecto a la considerada en esta
Tesis, con el propósito de comprobar las estimaciones realizadas con referencia al GA,
el cual debería encontrar soluciones más fácilmente, debido a la presencia de mayor
cantidad de valores posibles para los parámetros configurables.

162
Conclusiones y trabajos futuros

Además, en los dos esquemas de EHW propuestos se ha planteado la evolución


de valores de parámetros configurables (ganancias de amplificadores de entrada y
capacidades en el caso del filtro adaptivo, y ganancias de los PGA en el amplificador
adaptivo) por parte del GA. En trabajos futuros se prevé efectuar también la evolución
del conexionado, lo cual proporcionaría mayor flexibilidad y robustez a los circuitos
evolucionados, posibilitando que los mismos puedan soportar tipos de fallas más
complejos.

163
164
Apéndice 1. Algoritmos Genéticos: aspectos de
implementación

A continuación se detallan los principales aspectos que deben ser considerados


en el diseño e implementación de un GA [1], [2], [3], [4], [5], [6], [7].

A1.1. Representación

Uno de los elementos más importantes que intervienen en el desarrollo de un


GA son los relacionados a la forma de representación utilizada para codificar las
soluciones potenciales. La estrategia de codificación convencional con la cual han
surgido los GA es la codificación binaria (a través de 0 y 1). Esta técnica continúa siendo
utilizada actualmente, aunque en algunos casos, dependiendo de las características del
problema planteado, puede que la longitud del cromosoma aumente considerablemente,
afectando el desempeño del GA en cuanto a tiempos de ejecución. No obstante, es
necesario destacar que la utilización de una representación binaria implica una
reducción considerable en la implementación del algoritmo. Al utilizar una
representación como ésta, los métodos presentes en el mismo pueden ser ejecutados
mediante operadores booleanos simples como: AND, OR y NOT [7].

Otras alternativas de representación que pueden adoptarse son la codificación


entera y la codificación real [1], [2], [4], entre otras. En la codificación entera, se utilizan valores
discretos comprendidos en un alfabeto de valores enteros con una longitud fija. Por
otro lado, la codificación real se basa en la utilización de valores reales para conformar el
cromosoma, siendo muy utilizada en los problemas de optimización continuos.

En la Figura A1-1 se muestran ejemplos de cromosomas generados mediante


los tres tipos de codificación mencionados.

165
Apéndice 1

1 0 0 1 1 1 0 0 1 0
Cromosoma con codificación binaria

8 11 23 25 10 9 11 18 15 20
Cromosoma con codificación entera

1.5 0.3 1.2 3.1 8.4 0.9 7.5 0.8 0.8 1.3
Cromosoma con codificación real

Figura A1-1. Ejemplos de cromosomas con diferentes técnicas de codificación

De esta manera, mediante la técnica de codificación que se considere más


apropiada para el problema de optimización planteado, es posible representar las
soluciones potenciales en cromosomas, los cuales son luego sometidos al proceso
evolutivo característico del GA. En la literatura, las posibles soluciones, las cuales se
caracterizan por los valores de una o más variables propias del problema planteado, son
denominadas fenotipos. Por otro lado, los cromosomas son denominados genotipos, y
están formados por genes que representan mediante la técnica de codificación elegida,
los valores de las variables que conforman el fenotipo [2]. En la Figura A1-2 se muestra
una representación gráfica de los elementos mencionados.

Fenotipo
Variable 1 Variable 2 Variable 3 ... Variable N

Gen 1 Gen 2 Gen 3 … Gen N


Cromosoma - Genotipo

Figura A1-2. Representación de fenotipo y genotipo.

A1.2. Población

Con referencia a la población de individuos utilizada por el GA, existen dos


elementos que deben tenerse en cuenta:

Tamaño de la población: El tamaño adecuado de la población depende de la


complejidad del problema. En todos los casos, mientras más grande es la población
más fácil resulta para el GA realizar la exploración del espacio de búsqueda. No

166
Apéndice 1

obstante, el costo computacional también se eleva debido a que debe evaluarse una
cantidad mayor de individuos en cada generación. Por este motivo, el tamaño de la
población debe ajustarse con el propósito de alcanzar un equilibrio entre el costo
computacional requerido por el GA y la calidad de las soluciones que el mismo
encuentra.

Inicialización de la población: Cuando se genera la población inicial de


individuos, el principal criterio que debe considerarse es el referido a la diversidad.
Cuando el mismo es ignorado, puede ocurrir una convergencia prematura del GA,
debido a que algunas regiones del espacio de búsqueda no llegan a ser exploradas. En
consecuencia, el GA puede finalizar su ejecución encontrando un óptimo local.

Las estrategias que pueden utilizarse para inicializar la población pueden


clasificarse en tres categorías: generación aleatoria uniforme, generación aleatoria no
uniforme e inicialización heurística. A continuación, se explica el funcionamiento de
cada una [4].

1. Generación aleatoria uniforme: Es la estrategia más utilizada en los GA. En


la misma, cada gen de un individuo se inicializa con un valor generado
de forma aleatoriamente uniforme, en el rango de valores posibles.

2. Generación aleatoria no uniforme: En esta estrategia determinados valores de


genes se generan con una frecuencia menor con respecto a otros.

3. Inicialización heurística: Esta técnica considera que los individuos son


inicializados a partir de heurísticas. La inicialización heurística tiende a
generar una población con individuos semejantes, perjudicando la
diversidad, por lo que suele complementarse con el uso de métodos
aleatorios.

167
Apéndice 1

A1.3. Decodificación del cromosoma y evaluación

La función objetivo o función fitness f formula el objetivo a alcanzar y, por lo


tanto, es específica de cada problema. Una definición poco adecuada de esta función
puede provocar que el GA finalice su ejecución sin encontrar una solución satisfactoria.

La función fitness permite evaluar a cada solución del espacio de búsqueda


mediante la asignación de un valor real que describe la calidad o aptitud de la solución.
Proporciona un valor absoluto que permite un ordenamiento completo de todas las
soluciones del espacio de búsqueda. Por este motivo, la formulación de esta función
siempre se hace considerando el valor de los fenotipos. No obstante, como se
mencionó anteriormente, el GA codifica las posibles soluciones (fenotipos) mediante
cromosomas. En consecuencia, en el momento de la evaluación es necesario efectuar la
decodificación de cada cromosoma o genotipo para obtener el fenotipo.

A1.4. Estrategias de selección


El mecanismo de selección es uno de los principales componentes de un GA.
El principio fundamental de los métodos de selección se basa en considerar que los
individuos más aptos tienen más probabilidades de ser elegidos para ser padres. Esta
presión en la selección tiene como propósito dirigir la búsqueda hacia las mejores
soluciones.

No obstante, los individuos con menos aptitud no deben descartarse, sino que
deben tener también alguna probabilidad de ser seleccionados, debido a que los mismos
pueden ayudar a generar material genético útil.

Los individuos son seleccionados para intervenir en el proceso de cruce, de


acuerdo a su valor de aptitud o fitness, utilizando una de las siguientes estrategias:
método proporcional o de la ruleta giratoria, selección por torneo y selección aleatoria o
uniforme, entre otros. En los siguientes párrafos se exponen las características más
relevantes de cada método.

168
Apéndice 1

1. Método proporcional o de la ruleta giratoria: es la estrategia de selección más


común, la cual asigna a cada individuo una probabilidad de selección proporcional a
su valor de fitness [1], [2], [5]. De esta manera, si f(y) es el fitness de un individuo y,
en una población de tamaño n, su probabilidad de ser seleccionado es:
( )
( ) (1)
∑ ()

Para realizar la selección se considera una ruleta que permite asignar cada individuo
a una porción de la misma. La selección de m individuos se efectúa mediante m
giros independientes de la ruleta.

La porción asignada a cada individuo es proporcional a su valor de fitness, lo cual


implica que aquellos individuos más aptos tienen asignadas porciones más grandes
y, por lo tanto, presentan más probabilidades de ser elegidos. La Figura A1-3
muestra de manera gráfica el funcionamiento de este método.

Individuos: 1 2 3 4 5 6 7
Fitness: 1 1 1 1.5 1.5 3 3

5
6
4

3
7
2
1

Figura A1-3. Método proporcional o de ruleta giratoria

2. Selección por torneo: Esta estrategia consiste en seleccionar de manera aleatoria k


individuos. El parámetro k se denomina tamaño del grupo. Un torneo es aplicado,
entonces, a los k miembros del grupo para elegir el mejor. Para seleccionar m
individuos, el procedimiento de torneo es efectuado m veces [1], [3], [6]. La Figura
A1-4 muestra de manera gráfica el funcionamiento de esta estrategia de selección.

169
Apéndice 1

f=6
f=2
Selección Selección
aleatoria f=9
f=4 del mejor
f=1
4 f=9
f=9 f=4
f=7 f=7
f=9 Individuo
seleccionado
Grupo (k=3)
Población

Figura A1-4. Estrategia de selección por torneo.

3. Selección aleatoria o uniforme: Este método reduce la selección a una búsqueda


aleatoria. Cada individuo tiene la misma probabilidad de ser seleccionado,
independientemente de su grado de aptitud [1], [2]. En muchas ocasiones, este
método puede utilizarse como complemento de los otros métodos de selección.

A1.5. Estrategias de reproducción

La estrategia de reproducción está referida a la utilización de dos operadores


genéticos, cruce y mutación, con el propósito de generar nuevos individuos (hijos). Las
características de estos operadores dependen de la estrategia de codificación utilizada. A
continuación, se explican los más utilizados.

A1.5.1. Operadores de cruce


Cuando los individuos son representados en el cromosoma mediante
codificación binaria, las alternativas más utilizadas en cuanto a operadores de cruce son:
cruce en un punto, cruce en dos puntos, cruce en tres puntos, cruce en n-puntos y cruce uniforme.

El operador de cruce básico es el cruce en un punto, el cual ha sido luego


modificado para permitir las variantes de cruce en 2, 3 y n puntos [1], [2]. Estos operadores
fueron inicialmente propuestos para representaciones binarias, no obstante, también
pueden ser utilizados con técnicas de codificación entera y real.

170
Apéndice 1

En el operador de cruce en un punto, una posición de cruce k es seleccionada


aleatoriamente y dos hijos son creados mediante el intercambio de información a partir
de la posición de cruce k, entre dos padres.

La extensión de este operador a dos, tres y n puntos de cruce, hace referencia a la


utilización de progresivamente más posiciones k de cruce, las cuales continúan siendo
generadas de manera aleatoria. En las Figura A1-5 yFigura A1-6 se esquematiza a modo
de ejemplo, el funcionamiento del operador de cruce en un punto con codificación
binaria y el operador de cruce en tres puntos con codificación entera, respectivamente.

Punto de cruce

Padre 1 1 0 0 1 1 1 0 0 1 0
Padre 2 0 1 1 1 0 0 1 0 0 1

Hijo 1 1 0 0 1 1 1 1 0 0 1
Hijo 2 0 1 1 1 0 0 0 0 1 0

Figura A1-5. Operador de cruce en un punto (con codificación binaria).

Puntos de cruce

Padre 1 9 1 5 8 1 2 3 9 1 4
Padre 2 7 1 4 9 5 1 6 6 5 3

Hijo 1 9 1 4 9 5 2 3 9 1 3
Hijo 2 7 1 5 8 1 1 6 6 5 4

Figura A1-6. Operador de cruce en tres puntos (con codificación entera).

Por otro lado, cuando se utiliza el operador de cruce uniforme [1], [2] cada gen en
el hijo se obtiene copiando el correspondiente gen a partir de uno u otro de los padres,
de acuerdo a una máscara de cruce binaria generada aleatoriamente, la cual presenta la
misma longitud que los cromosomas. La Figura A1-7 visualiza el funcionamiento de

171
Apéndice 1

este operador para generar dos hijos a partir de dos padres. Para generar el primer hijo
(en la figura, hijo 1), cuando en la máscara de cruce hay un “1” el gen se copia desde el
primer padre, cuando hay un “0” el gen se copia a partir del segundo padre. Por el
contrario, para generar el segundo hijo (hijo 2), cuando en la máscara de cruce hay un
“1” el gen se copia desde el segundo padre, cuando hay un “0” el gen se copia a partir
del primer padre. Para cada par de padres se genera una nueva máscara de cruce.

Padre 1 1 0 0 1 1 1 0 0 1 0
Padre 2 0 1 1 1 0 0 1 0 0 1

Máscara 1 1 0 0 1 0 1 1 1 0

Hijo 1 1 0 1 1 1 0 0 0 1 1
Hijo 2 0 1 0 1 0 1 1 0 0 0

Figura A1-7. Operador de cruce uniforme.

Cuando se utilizan técnicas de codificación real pueden ser utilizados otros


operadores de cruce, además de los mencionados. Los mismos han sido desarrollados
específicamente para este tipo de representación. Entre ellos pueden mencionarse: cruce
intermedio, cruce geométrico, cruce simple (SPX), cruce binario simulado (SBX), entre otros [1].
Estos operadores de cruce generan nuevos individuos mediante operaciones aritméticas
practicadas sobre los genes de los cromosomas padres.

Los operadores de cruce son aplicados en cada generación del GA con una
determinada probabilidad, denominada comúnmente probabilidad de cruce. La misma
puede adoptar valores entre 0 y 1, aunque dentro de este intervalo se aconseja el uso de
valores medios a grandes (entre 0.3 y 1) [2].

A1.5.2. Operadores de mutación


Con referencia al operador de mutación, la elección del mismo también se
encuentra condicionada por la estrategia de representación utilizada. Si se trata de
codificación binaria, el operador más común es el denominado operador de inversión, el
cual efectúa la mutación mediante la inversión del bit a mutar. La Figura A1-8 ilustra
este concepto.

172
Apéndice 1

bit a mutar
Cromosoma (antes de la mutación) 1 0 0 1 1 1 0 0 1 0

Cromosoma (después de la mutación) 1 0 0 1 1 0 0 0 1 0

Figura A1-8. Mutación mediante el operador de inversión (codificación binaria).

Por otro lado, cuando se utiliza codificación entera o real, el operador de


inversión no puede ser aplicado. En consecuencia, han sido desarrollados operadores
de mutación específicos para estas dos alternativas de codificación. En los mismos, la
mutación se efectúa alterando el valor de los genes (g), generalmente, de acuerdo a la
siguiente expresión:

(2)

donde M es una variable aleatoria, cuyo valor puede ser generado de diferentes formas,
cada una de las cuales conduce a un operador de mutación distinto. Entre ellos, puede
mencionarse el operador de mutación aleatorio uniforme, el cual genera de manera aleatoria y
con probabilidad uniforme el valor de M dentro de un intervalo [a, b] definido por el
usuario, donde generalmente a es igual a –b. Otros operadores de mutación que pueden
destacarse son: el operador de mutación con distribución normal (determina el valor de M en
base a una distribución normal o gaussiana) y el operador de mutación polinomial (utiliza una
distribución de probabilidad polinomial) [1].

También para la mutación existe un parámetro básico, denominado en este


caso, probabilidad de mutación, que define con qué frecuencia se debe realizar esta
operación. Los valores que puede adoptar el mismo varían entre 0 y 1, no obstante, es
aconsejable el uso de valores pequeños para evitar que el GA se convierta en una
búsqueda aleatoria.

A1.6. Referencias
[1] El-Ghazali Talbi, Metaheuristics From Design to Implementation, Wiley, USA. ISBN: 978-0-470-27858-1,
2009.
[2] S.N. Sivanandam, S.N. Deepa, Introduction to Genetic Algorithms, Springer, USA, 2008.

173
Apéndice 1

[3] X. Yu, M. Gen, Introduction to Evolutionary Algorithms, Springer, 2010.


[4] D. Goldberg, Genetic Algorithm. Search, optimization and machine learning, Addison-Wesley, 1989.
[5] Z. Michalewics, Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1996.
[6] M. Gen, R. Cheng, Genetic Algorithms & Engineering Optimization, Wiley, 2000.
[7] M. Mitchell, An introduction to Genetic Algorithms, Massachusetts Institute of Tecnology, 1996.

174
Apéndice 2. Optimización Multiobjetivo:
conceptos básicos

A2.1. Problema de optimización multiobjetivo

Un problema de optimización multiobjetivo (MOP, multiobjective optimization


problem) es aquél en el cual deben maximizarse o minimizarse más de una función
objetivo. El mismo puede definirse como [1], [2], [3], [4], [5]:

( ) ( ) ( ) ( )
{ (1)

donde n (n≥2) es el número de objetivos, x=(x1, x2, …, xk) es el vector que representa
las variables de decisión, y S representa el conjunto de soluciones posibles o factibles.
F(x)= f1(x), f2(x),…, fn(x) es el vector de objetivos que debe ser optimizado.

Cuando se trabaja con MOP, generalmente no existen soluciones que permitan


optimizar todos los objetivos al mismo tiempo, debido a que se produce un conflicto
entre los mismos, ya que no es posible optimizar uno de ellos sin deteriorar al menos
otro objetivo. No existe una única solución para el problema sino un conjunto de
soluciones que representan el compromiso entre los diferentes objetivos en conflicto.

En algunos casos es deseable que el GA obtenga todo el conjunto de soluciones


para después el decisor efectuar la elección acerca de cuál o cuáles son las más
apropiadas para resolver el MOP dado. Este tipo de problemas de optimización suele
ser clasificado como un MOP a posteriori [1], [2], [3].

Por otro lado, en otras situaciones es posible establecer algunos criterios de


orden entre los objetivos. El criterio de orden más común es la importancia asignada a
cada objetivo, la cual permite establecer un orden de prioridad entre los mismos. Para
resolver los problemas que presentan estas características es posible utilizar métodos de
optimización a priori, los cuales permiten introducir en la búsqueda estos criterios de
prioridad permitiendo enfocar la misma en el subespacio de soluciones donde dichos
criterios son respetados [1], [2], [3]. Estos métodos trabajan, generalmente,

175
Apéndice 2

transformando el MOP en un problema de optimización con un único objetivo,


permitiendo la utilización de GA tradicionales para efectuar la resolución. Existen
varios métodos de optimización que pueden ser considerados como métodos a priori,
entre ellos, pueden mencionarse el método de suma ponderada (WSM, Weighted Sum
Method) y el método de restricciones-ɛ (CM, ɛ-Constraint Method). A continuación, se
proporciona una descripción de ambos métodos, debido a que los mismos han sido
utilizados para resolver los MOP planteados en la presente Tesis.

Método de suma ponderada

Es uno de los métodos más utilizados. El mismo consiste en utilizar una


función de agregación para transformar un MOP en un problema con un único
objetivo, mediante la combinación de las diferentes funciones objetivo fi en una sola
función objetivo f, generalmente de manera lineal:
max/min ( ) ∑ ( ), (2)

donde wi [0…1] y ∑ .

En (2), los valores de wi se denominan pesos y representan el grado de


importancia concedido a cada objetivo. Las soluciones que pueden encontrarse
empleando este método dependen fundamentalmente de los valores que se eligen para
cada uno de los pesos.

Método de restricciones-ɛ

Este método se basa en optimizar sólo un objetivo fk (el más importante), sujeto
a restricciones en los demás objetivos fj. De esta forma, aquellos objetivos a los que se
les ha asignado un nivel de importancia inferior al objetivo fk, son transformados en
restricciones. El problema de optimización puede formularse, entonces, de la siguiente
manera:

max/min f(x)= fk(x) (3)

s. a.: fj(x) ≤ εj, j=1,…,n,

176
Apéndice 2

donde el vector ε= (ε1,…, εn) representa los límites superiores establecidos para cada
objetivo.

A2.2. Referencias
[1] El-Ghazali Talbi, Metaheuristics From Design to Implementation, Wiley, USA. ISBN: 978-0-470-27858-1,
2009.
[2] K. Deb, Multi-Objective Optimization using Evolutionary Algorithms, Wiley, Kanpur, India. ISBN: 978-0-
470-74361-4, 2009.
[3] C. Coello Coello, G. Lamont, D. Van Veldhuizen, Evolutionary Algorithms for solving Multi-Objective
Problems, Springer, Segunda Edición, USA. ISBN: 978-0-387-33254-3, 2007.
[4] J. Branke, K. Deb, K. Miettinen, Multiobjective optimization: interactive and evolutionary approaches. Springer,
2008.
[5] Y. Collette, P. Siarry, Multiobjective optimization: principles and case studies, Springer, 2003.

177
178
Apéndice 3. Código Matlab para algunas
operaciones del GA

A3.1. Caso de estudio del filtro adaptivo

A3.1.1. Generación de la población inicial


El GA utiliza el método de generación aleatoria uniforme para crear la
población inicial de cromosomas. Para ello, se utiliza la función “rand” de Matlab,
utilizando para el generador de números aleatorios una semilla que se origina en
función de la hora actual del sistema. En la matriz que almacena la población inicial de
cromosomas (individuo) cada fila representa un cromosoma. Para cada cromosoma se
implementa la estructura descripta en el Capítulo 3, en la cual se establece que los ocho
primeros genes representan los valores de ganancias negativas de los IA (existen cuatro
valores posibles para cada una de estas ganancias), los siguientes cuatro genes
representan las ganancias negativas de los IA (los cuales pueden adoptar entre cuatro
valores posibles) y los doce valores restantes codifican las capacidades (que pueden
variar entre 128 valores posibles). La Figura A3-1 muestra el código Matlab que
implementa el proceso descripto.

A3.1.2. Selección
El GA genera aleatoriamente una matriz denominada ProbabIndividualCruce
que contiene la probabilidad de cruce de cada individuo. Luego, transfiere a PobCruce
aquellos individuos con probabilidad de cruce menor o igual a la probabilidad de cruce
definida para el GA (ProbabGACruce). Finalmente, el algoritmo calcula la cantidad de
parejas. En la Figura A3-2, puede apreciarse el código Matlab perteneciente a las
operaciones descriptas.

179
Apéndice 3

%_________________________________________________________________________

Individuo=zeros(tamañoPoblacion,cantGenes); %La matriz Individuo es


%inicializada en cero.

rand('state',sum(100*clock));

% Se generan los genes que representan los valores de ganancias negativas


% de los IA.
% cantGanN es la cantidad de estos genes en el cromosoma.

Individuo(:,1:cantGanN)=fix(1 + (4.999-1)*rand(tamañoPoblacion,cantGanN));

% Se generan los genes que representan los valores de ganancias negativas


%de los IA.
% cantGanP es la cantidad de estos genes en el cromosoma.

Individuo(:,1:cantGanP)=fix(1 + (4.999-1)*rand(tamañoPoblacion,cantGanP));

% Se generan los genes que representan los valores de capacidades.


% cantCap es la cantidad de estos genes en el cromosoma.

Individuo(:,cantGan+1:cantGenes) = fix(1 + (128.999-1)*rand(tam,cantCap));


%_________________________________________________________________________

Figura A3-1. Código Matlab para el proceso de generación de la población inicial.

%__________________________________________________________________________
Ruleta = rand(1,tamañoPoblacion);%Matriz de números aleatorios para
%aplicar el método de la ruleta.

%Para cada elemento de “Ruleta” se determina el rango de selección.


for i=1: tamañoPoblacion;
p=1;
while RangoFitness(1,p)< Ruleta(1,i)% RangoFitness contiene el rango de
p=p+1; % selección de cada individuo en la
end; % población.
PobRuleta(i,:)= Individuo(p,:); % El individuo correspondiente es
end; % transferido a la matiz PobRuleta.

ProbabIndividualCruce = rand(1, tamañoPoblacion);% Números aleatorios para


% la selección.

%Los individuos con probabilidad de cruce menor o igual a ProbabGACruce


%son transferidos a PobCruce.
j=1;
for i=1: tamañoPoblacion;
if ProbabIndividualCruce (1,i)<= ProbabGACruce% ProbabGACruce contiene
PobCruce (j,:)= PobRuleta (i,:); % la probabilidad de
xpos(j)= i; % de cruce definida para
j=j+1; % el GA.
end;
end;
j=j-1;
cantParejas = fix(j/2); % Cálculo de la cantidad de parejas.
%__________________________________________________________________________

Figura A3-2. Código Matlab para la operación de selección.

180
Apéndice 3

A3.1.3. Cruce
El GA comienza aplicando el operador de cruce en tres puntos (la variable
“cerca” adopta el valor 0), pero en el transcurso de las generaciones puede utilizar el
operador de cruce en un punto (entonces, la variable “cerca” adopta el valor 1),
dependiendo de las características de la población actual. Si el GA encuentra al menos
un cromosoma que representa una posible solución cuyos errores relativos en cada una
de las bandas son inferiores o iguales al doble de los errores permitidos en cada banda
(referenciados como Ei en la ecuación (10) del capítulo 3), utiliza el operador de cruce
en un punto, de lo contrario, continúa utilizando el operador de cruce en tres puntos.

Para ello, si “cerca”=0 se determina de manera aleatoria un punto de cruce para


cada pareja. Por el contrario, si “cerca”=1 el GA determina aleatoriamente tres puntos
de cruce para cada pareja de padres. En este caso, el GA determina un punto de cruce
entre los genes que representan valores de ganancia negativos, otro para los que
representan valores positivos de ganancia y el último para los genes que representan
capacidades.

Luego, el algoritmo realiza la operación de cruce correspondiente y almacena los


nuevos individuos en la matriz Hijos. Por último, el GA inserta estos individuos y
aquellos que no intervinieron en el cruce en NuevaPoblación. Las Figura A3-3 yFigura
A3-4 visualizan el código Matlab correspondiente al proceso descripto.

A3.1.4. Mutación
El GA calcula la cantidad total de genes de la población. Aleatoriamente genera
una matriz RandMut que es la probabilidad de mutación para cada gen. Los genes con
probabilidad menor o igual a la probabilidad de mutación definida para el GA son
mutados después del cálculo de su localización en la matriz NuevaPoblacion (fila y
columna). El proceso de mutación se efectúa utilizando el operador de mutación
aleatorio uniforme, por lo que es necesario generar de manera aleatoria el valor de M, el
cual luego es utilizado para alterar el valor del gen a mutar. La Figura A3-5 muestra el
código Matlab para las operaciones descriptas.

181
Apéndice 3

%____________________________________________________________________

%La variable booleana “cerca” adopta el valor 1 solo cuando el GA


%encuentra al menos un cromosoma cuyos errores en cada una de las
%bandas son menores o iguales al doble de los errores permitidos,
%representados por Ei en la ecuación (10) del Capítulo 3. El valor de
%“cerca” determina el operador de cruce a utilizar.

if cerca==0 % Debe usarse el operador de cruce en tres puntos.

%Se determinan los tres puntos de cruce para cada pareja.

PuntoCruceGN=round(1+((cantGanN-1)*rand(1,cantParejas)));
PuntoCruceGP=round(1+((cantGanP-1)*rand(1,cantParejas)));
PuntoCruceCap=round(1+((cantCap-1)*rand(1,cantParejas)));

for i=1:2:(cantParejas*2);
z=z+1;

% cruce a partir de PobCruce(i,:) y PobCruce(i+1,:)


Hijos(i,1:cantGanN)=[PobCruce(i,1:PuntoCruceGN(1,z)),
PobCruce (i+1,PuntoCruceGN(1,z)
+1:cantGanN)];

Hijos(i+1,1:cantGanN)=[PobCruce (i+1,1:PuntoCruceGN(1,z)),
PobCruce (i,PuntoCruceGN(1,z)
+1:cantGanN)];

Hijos(i,cantGanN+1:cantGanN+cantGanP)=[PobCruce(i,
cantGanN+1:PuntoCruceGP(1,z)
+cantGanN),PobCruce(i+1,
PuntoCruceGP(1,z)+cantGanN+1:
cantGanN+cantGanP)];

Hijos(i+1,cantGanN+1:cantGanN+cantGanP)=[PobCruce(i+1,
cantGanN+1:
PuntoCruceGP(1,z)+cantGanN),
PobCruce(i,PuntoCruceGP(1,z)
+cantGanN+1:
cantGanN+cantGanP)];

Hijos(i,cantGanN+cantGanP+1:cantGenes)=[PobCruce(i,cantGanN+
cantGanP+1:PuntoCruceCap,z)+
cantGanN+cantGanP),
PobCruce(i+1,PuntoCruceCap(1,z)+
cantGanN+cantGanP+1:cantGenes)];

Hijos(i+1,cantGanN+cantGanP+1:cantGenes)=[PobCruce(i+1,
cantGanN+
cantGanP+1:PuntoCruceCap(1,z)+
cantGanN+cantGanP),
PobCruce(i,PuntoCruceCap(1,z)+
cantGanN+cantGanP+1:cantGenes)
];
end;
%____________________________________________________________________

Figura A3-3. Código Matlab para la operación de cruce.

182
Apéndice 3

%_______________________________________________________________________

else % debe usarse el operador de cruce en un punto.

%Se determina el punto de cruce para cada pareja.


PuntoCruce= round(1+((cantGenes-1)*rand(1,cantParejas)));
for i=1:2:(cparejas*2);
z=z+1;
% cruce a partir de PobCruce(i,:) y PobCruce(i+1,:)
Hijos(i,:)=[PobCruce(i,1:PuntoCruce(1,z)),
PobCruce(i+1,PuntoCruce(1,z)+1:cantGenes)];

Hijos(i+1,:)=[PobCruce(i+1,1:PuntoCruce(1,z)),
PobCruce(i,PuntoCruce(1,z)+1:cantGenes)];
end;
end;

% Inserción de los nuevos individuos en la población.


señal =0;
for i=1: tamañoPoblación;
for j=1: cantParejas*2;
if i== xpos(j) % Determina si la posición
señal =1; % "i" corresponde a los nuevos
p=j; % individuos.
end;
end;
if señal ==1
NuevaPob(i,:)= Hijos(p,:); % Transferencia de un nuevo individuo.
señal =0;
else
NuevaPob(i,:)=PobRuleta(i,:); % Transferencia de un individuo
end; % no involucrado en el cruce.
end;
%________________________________________________________________________

Figura A3-4. Código Matlab para la operación de cruce (continuación).

A3.1.5. Función Sharing


Para aplicar la función sharing el GA debe calcular en primera instancia el valor
de la función de distancia d para cada individuo y con respecto a los demás. Para ello, el
mismo efectúa la comparación de los genes correspondientes entre el individuo y y cada
individuo j, calculando la cantidad de genes diferentes entre ambos y asignando este
valor a la función d. Luego, el GA utiliza el valor de d para calcular el valor de la
función sharing sh, teniendo en cuenta la constante de distancia σ (constDistSharing).
Posteriormente, la suma de los valores obtenidos de sh es utilizada para degradar el
valor de fitness del individuo y. La Figura A3-6 visualiza el código Matlab
correspondiente al proceso descripto.

183
Apéndice 3

%__________________________________________________________________________

totalGenes= tamañoPoblacion*cantGenes;% Total de genes de la población.


RandMut= rand(1,totalGenes); % Probabilidad de mutación de cada bit.
j=0;
% posmut almacena la posición de aquellos genes con probabilidad de
% mutación menor a ProbabMutacionGA.
for i=1:totalGenes;
if RandMut(1,i)< ProbabMutacionGA % ProbabMutacionGA contiene la
j=j+1; % probabilidad de mutación
posmut(j)=i; % definida para el GA.
end;
end;
if j>0 % Existe mutación.
% Para cada gen a ser mutado se determina su localización (fila y columna)
% en la matriz NuevaPoblacion.
for i=1:j;
c=posmut(i)/cantGenes;
if c==fix(c)
fila=c;
columna=cantGenes;
else
columna=posmut(i)-fix(c)*cantGenes;
fila=fix(c)+1;
end;
% La mutación es realizada.
M =-1 + (1-(-1))*rand; % se determina aleatoriamente un valor real
% para M (entre -1 y 1).
% Se altera el valor del gen usando M.
NuevaPoblacion(fila,columna)= NuevaPoblacion(fila,columna
(NuevaPoblacion(fila,columna)*M);
end;
end;
%_________________________________________________________________________

Figura A3-5. Código Matlab para la operación de mutación.

%__________________________________________________________________________

for y=1:tamañopoblacion
for j=1:tamañopoblacion
d=0;
if y~=j
for gen=1:cantGenes % Comparación de genes para
if Individuo(y,gen)~=Individuo(j,gen)% determinar el valor de la
d=d+1; % función de distancia d.
end;
end;
if d>constDistSharing %constDistSharing: constante de distancia σ
sh(y,j)=0; % Cálculo del valor
else % de la función
sh(y,j)=1-(d/constDistSharing); % Sharing sh.
end;
end;
end;
sumash= sum(sh(y,:)); % Cálculo del nuevo fitness del
if sumash>0 fit(y)=fit(y)/sumash; % individuo a partir de la aplicación
end; % de la función sh.
end;
%__________________________________________________________________________

Figura A3-6. Código Matlab de la función sharing.

184
Apéndice 3

A3.2. Caso de estudio del Amplificador Adaptivo

A3.2.1. Selección
El GA genera aleatoriamente una matriz denominada ProbabIndividualCruce
que contiene la probabilidad de cruce de cada individuo. Luego, transfiere a PobCruce
aquellos individuos con probabilidad de cruce menor o igual a la probabilidad de cruce
definida para el GA (ProbabGACruce). Finalmente, el algoritmo calcula la cantidad de
parejas. En la Figura A3-7, puede apreciarse el código Matlab perteneciente a las
operaciones descriptas.

%__________________________________________________________________________
Ruleta = rand(1,tamañoPoblacion);%Matriz de números aleatorios para
%aplicar el método de la ruleta.

%Para cada elemento de “Ruleta” se determina el rango de selección.


for i=1: tamañoPoblacion;
p=1;
while RangoFitness(1,p)< Ruleta(1,i)% RangoFitness contiene el rango de
p=p+1; % selección de cada individuo en la
end; % población.
PobRuleta(i,:)= Individuo(p,:); % El individuo correspondiente es
end; % transferido a la matiz PobRuleta.

ProbabIndividualCruce = rand(1, tamañoPoblacion);% Números aleatorios para


% la selección.

%Los individuos con probabilidad de cruce menor o igual a ProbabGACruce


%son transferidos a PobCruce.
j=1;
for i=1: tamañoPoblacion;
if ProbabIndividualCruce (1,i)<= ProbabGACruce% ProbabGACruce contiene
PobCruce (j,:)= PobRuleta (i,:); % la probabilidad de
xpos(j)= i; % de cruce definida para
j=j+1; % el GA.
end;
end;
j=j-1;
cantParejas = fix(j/2); % Cálculo de la cantidad de parejas.
%__________________________________________________________________________

Figura A3-7. Código Matlab para la operación de selección.

A3.2.2. Cruce
El GA efectúa la operación de cruce mediante el operador de cruce en un punto
(con codificación binaria). Para ello, determina aleatoriamente el punto de cruce para
cada pareja de padres. Luego, el algoritmo realiza la operación de cruce y almacena los

185
Apéndice 3

nuevos individuos en la matriz Hijos. Por último, el GA inserta estos individuos y


aquellos que no intervinieron en el cruce en NuevaPoblación. La Figura A3-8 visualiza
el código Matlab correspondiente al proceso descripto.

%_________________________________________________________________________

% L es la longitud del cromosoma.


puntoCruce=round(1+((L-1)*rand(1,cantParejas))); % Punto de cruce para cada
% pareja.
z=0;
for i=1:2:(cantParejas*2);
z=z+1;
% Cruce a partir de PobCruce(i,:) y PobCruce(i+1,:)

Hijos(i,1:L)=[PobCruce(i,1:puntoCruce(1,z)),PobCruce(i+1,puntoCruce(1,z)+1:
L)];

Hijos(i+1,1:L)=[PobCruce(i+1,1:puntoCruce(1,z)),PobCruce(i,puntoCruce(1,z)+
1:L)];
end;

% Inserción de los nuevos individuos en la población.


señal =0;
for i=1: tamañoPoblación;
for j=1: cantParejas*2;
if i== xpos(j) % Determina si la posición
señal =1; % "i" corresponde a los nuevos
p=j; % individuos.
end;
end;
if señal ==1
NuevaPob(i,:)= Hijos(p,:); % Transferencia de un nuevo individuo.
señal =0;
else
NuevaPob(i,:)=PobRuleta(i,:); % Transferencia de un individuo
end; % no involucrado en el cruce.
end;
%__________________________________________________________________________

Figura A3-8. Código Matlab para la operación de cruce.

A3.2.3. Mutación
El GA calcula la cantidad total de bits de la población. Aleatoriamente genera
una matriz RandMut que es la probabilidad de mutación para cada bit. Los bits con
probabilidad menor o igual a la probabilidad de mutación definida para el GA son
mutados después del cálculo de su localización en la matriz NuevaPoblacion (fila y
columna). La Figura A3-9 muestra el código Matlab para las operaciones descriptas.

186
Apéndice 3

%___________________________________________________________________________
totalBits= tamañoPoblacion*L; % Total bits de la población.
RandMut= rand(1,totalBits); % Probabilidad de mutación de cada bit.
j=0;
% posmut almacena la posición de aquellos bits con probabilidad de mutación
% menor a ProbabMutacionGA.
for i=1:totalBits;
if RandMut(1,i)< ProbabMutacionGA % ProbabMutacionGA contiene la
j=j+1; % probabilidad de mutación
posmut(j)=i; % definida para el GA.
end;
end;
if j>0 % Existe mutación.
% Para cada bit a ser mutado se determina su localización (fila y columna)
% en la matriz NuevaPoblacion.
for i=1:j;
c=posmut(i)/L;
if c==fix(c)
fila=c;
columna=L;
else
columna=posmut(i)-fix(c)*L;
fila=fix(c)+1;
end;
% La mutación es realizada.
if NuevaPoblacion(fila,columna)==1
NuevaPoblacion(fila,columna)='0'; .
else
NuevaPoblacion(fila,columna)='1';
end;
end;
end;
%___________________________________________________________________________

Figura A3-9. Código Matlab para la operación de mutación.

187
188
Apéndice 4. Amplificador adaptivo: Resultados
restantes bajo condiciones de falla

A continuación, se reporta el resto de los resultados obtenidos bajo los cuatro


modelos de falla adoptados en el caso de estudio del amplificador adaptivo (Capítulo 4),
considerando cada una de las ganancias objetivo propuestas. En todos los casos, es
posible observar que el error relativo en la ganancia nunca supera el ±5% y el ancho de
banda siempre es superior a ɛ.

A4.1. Modelo de Falla 1


7,0E+06 7,5E+06

6,5E+06 7,0E+06
Ancho de banda (rad/seg)
Ancho de banda (rad/seg)

6,5E+06
6,0E+06
6,0E+06
5,5E+06
5,5E+06
5,0E+06
5,0E+06
4,5E+06 4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-1. Error relativo en la ganancia vs. ancho de banda, para el PGA2.

189
Apéndice 4

7,0E+06 7,5E+06

6,5E+06 7,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,5E+06
6,0E+06
6,0E+06
5,5E+06
5,5E+06
5,0E+06
5,0E+06
4,5E+06 4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-2. Error relativo en la ganancia vs. ancho de banda, para el PGA3.

190
Apéndice 4

6,5E+06 7,5E+06

7,0E+06
6,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,5E+06
5,5E+06 6,0E+06

5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-3. Error relativo en la ganancia vs. ancho de banda, para el PGA4.

191
Apéndice 4

A4.2. Modelo de Falla 2

7,0E+06 7,5E+06

6,5E+06 7,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,5E+06
6,0E+06
6,0E+06
5,5E+06
5,5E+06
5,0E+06
5,0E+06
4,5E+06 4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-4. Error relativo en la ganancia vs. ancho de banda, para el PGA1.

192
Apéndice 4

7,0E+06 7,0E+06

6,5E+06 6,5E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,0E+06 6,0E+06

5,5E+06 5,5E+06

5,0E+06 5,0E+06

4,5E+06 4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-5. Error relativo en la ganancia vs. ancho de banda, para el PGA2.

193
Apéndice 4

6,5E+06 7,5E+06

7,0E+06
6,0E+06
6,5E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


5,5E+06 6,0E+06

5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% -3% -1% 1% 3% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-6. Error relativo en la ganancia vs. ancho de banda, para el PGA4.

194
Apéndice 4

A4.3. Modelo de Falla 3

7,0E+06 8,0E+06

7,5E+06
6,5E+06
Ancho de banda (rad/seg)

7,0E+06

Ancho de banda (rad/seg)


6,0E+06
6,5E+06

5,5E+06 6,0E+06

5,5E+06
5,0E+06
5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.


Figura A4-7. Error relativo en la ganancia vs. ancho de banda, para el PGA1.

195
Apéndice 4

6,0E+06 8,0E+06
5,8E+06 7,5E+06
5,6E+06
7,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


5,4E+06
5,2E+06 6,5E+06

5,0E+06 6,0E+06
4,8E+06 5,5E+06
4,6E+06
5,0E+06
4,4E+06
4,2E+06 4,5E+06

4,0E+06 4,0E+06
-5% -3% -1% 1% 3% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-8. Error relativo en la ganancia vs. ancho de banda, para el PGA2.

196
Apéndice 4

6,5E+06 8,0E+06

7,5E+06
6,0E+06
7,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


5,5E+06 6,5E+06

6,0E+06
5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% -3% -1% 1% 3% 5% -5% -3% -1% 1% 3% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% -3% -1% 1% 3% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.


Figura A4-9. Error relativo en la ganancia vs. ancho de banda, para el PGA4.

197
Apéndice 4

A4.4. Modelo de Falla 4

6,5E+06 7,5E+06

7,0E+06
6,0E+06
6,5E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


5,5E+06 6,0E+06

5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07

9,0E+06
Ancho de banda (rad/seg)

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-10. Error relativo en la ganancia vs. ancho de banda, para el PGA1.

198
Apéndice 4

6,5E+06 7,5E+06

7,0E+06
6,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,5E+06
5,5E+06 6,0E+06

5,0E+06 5,5E+06

5,0E+06
4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-11. Error relativo en la ganancia vs. ancho de banda, para el PGA3.

199
Apéndice 4

6,5E+06 7,0E+06

6,5E+06
6,0E+06
Ancho de banda (rad/seg)

Ancho de banda (rad/seg)


6,0E+06
5,5E+06
5,5E+06
5,0E+06
5,0E+06

4,5E+06
4,5E+06

4,0E+06 4,0E+06
-5% 0% 5% -5% 0% 5%
Error relativo en la ganancia Error relativo en la ganancia

(a) Ganancia objetivo: 15. (b) Ganancia objetivo: 8.

1,1E+07

1,0E+07
Ancho de banda (rad/seg)

9,0E+06

8,0E+06

7,0E+06

6,0E+06

5,0E+06

4,0E+06
-5% 0% 5%
Error relativo en la ganancia

(c) Ganancia objetivo: 2.

Figura A4-12. Error relativo en la ganancia vs. ancho de banda, para el PGA4.

200

Вам также может понравиться