Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERIA
ESCUELA DE ELECTRONICA
SANTIAGO - CHILE
2010
NOTA OBTENIDA:
III
Agradecimientos
Con mucho cariño para mis padres que me han apoyado y entregado su
comprensión.
Daniel Toro Z.
Rubén Cárdenas F.
IV
Resumen
Para mostrar una aplicación de las RNA en control se implementó una maqueta
de pruebas (anexo A). Esta consiste en un sistema de almacenamiento de
lı́quido donde el objetivo es mantener un nivel constante. La funcionalidad de
la RNA en la maqueta fue controlar el nivel de liquido.
V
Índice general
Agradecimientos IV
Resumen V
Abstract VI
Índice de figuras XI
Introducción 1
Estado de la técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
VI
1.3.3. Lineal Positiva (Poslin) . . . . . . . . . . . . . . . . . . . . 16
1.4. Separabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5. Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2. Control Neuronal 49
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
VII
2.3.1. La Transformada Z . . . . . . . . . . . . . . . . . . . . . . 56
3.1. Algoritmo BP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
VIII
4.2.2. Aplicación de captura de datos mediante Visual Basic . . 115
5. Conclusiones 126
ANEXOS 128
IX
D.3. Programa sensor de nivel . . . . . . . . . . . . . . . . . . . . . . 160
Bibliografı́a 172
X
Índice de figuras
1.14.Ejemplo de separabilidad. . . . . . . . . . . . . . . . . . . . . . . 21
XI
1.18.Esquema aprendizaje supervisado. . . . . . . . . . . . . . . . . . 26
XII
3.1. Gráfica de mı́nimos locales y globales. . . . . . . . . . . . . . . . 71
XIII
3.18.Gráfica función original y aproximada con nueve neuronas ocultas. 85
XIV
3.40.Curva de respuesta de la red con todas las neuronas. . . . . . . 105
4.3. Curva de salida del control en función del error de entrada. . . . 117
XV
4.9. Curvas de error real y error aproximado. . . . . . . . . . . . . . . 121
XVI
F.2. Esquemático fuente de tensión continua . . . . . . . . . . . . . . 168
XVII
Índice de tablas
XVIII
4.3. Comparación de resultados obtenidos para los controladores P
y PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
XIX
Introducción
Las redes neuronales artificiales son una forma de emular ciertas caracterı́sti-
cas propias del cerebro, como la capacidad de memorizar y de asociar hechos.
Si se examinan con atención aquellos problemas que no pueden expresarse a
través de un algoritmo, se observará que todos ellos tienen una caracterı́stica
en común: la experiencia. El hombre es capaz de resolver estas situaciones
acudiendo a la experiencia adquirida.
1
áreas como son: las finanzas, la electrónica, computación, automatización de
procesos, identificación de sistemas dinámicos, etc.
2
Estado de la técnica
El estudio de las redes neuronales artificiales data de principios del siglo XX,
la primera implementación de una red neuronal fue desarrollada por Russell
en 1913 y consistı́a en un sistema hidráulico. Pero fue en la década del 40
donde el estudio de las redes neuronales cobró fuerza con los aportes de
Warren McCulloch y Walter Pitts quienes desarrollaron un modelo matemático
basado en que las neuronas operan mediante impulsos binarios, el cual
introduce el concepto de una función de paso por umbral. Posteriormente
Donald Hebb (1949) desarrollo un procedimiento matemático de aprendizaje
que actualmente lleva su nombre (aprendizaje Hebbiano).
3
extendió el modelo de memoria asociativa lineal y desarrollo un sistema de
aprendizaje competitivo.
Clasificación de patrones.
Fraudes de tarjeta de crédito: diversos bancos y compañı́as de tarjetas
de crédito como American Express, Mellon Bank y First American Bank
utilizan las RNA para detectar fraudes con sus tarjetas de crédito.
4
en plantas quı́micas, la clasificación de anomalı́as en altavoces y la
evaluación del grado de pureza del zumo de naranja.
Control y optimización
Fabricación de celulosa y papel: Siemens ha aplicado redes a la
optimización del proceso de fabricación de celulosa en la planta de
Celulose do Caima en Portugal.
Aplicaciones militares
Guiado automático de misiles: se emplean RNA analógicas para el
guiado automático de misiles y otras aplicaciones militares debido a que
las RNA presentan enormes ventajas cuando se requiere una rápida
toma de decisiones.
5
acciones enemigas.
Otras aplicaciones
Predicción: en este campo las redes neuronales proporcionan un
excelente resultado, por ejemplo, en la predicción de consumo eléctrico,
gas y flujo de rı́os.
6
Objetivos
Objetivo General
Objetivos Especı́ficos
7
Capı́tulo 1
Fundamentos de Redes
Neuronales
8
ramificaciones
terminales
Las neuronas son un tipo de células del sistema nervioso cuya principal
caracterı́stica es la excitabilidad de su membrana plasmática.
Definición 1.1.1
Dendritas: Son un gran número de ramificaciones de entrada, que propagan
los impulsos electroquı́micos al interior de la neurona.
Definición 1.1.2
Axón: Fibra larga que propaga un impulso electroquı́mico desde el cuerpo de
la célula o núcleo al resto de las neuronas a través de sus terminales.
Definición 1.1.3
Sinapsis: Corresponde a la conexión de dos neuronas, una neurona envı́a la
información a través del axón y otra neurona recibe la información a través de la
dendrita, de esta forma el proceso de sinapsis se convierte en un amplificador
o reductor de la señal.
9
Definición 1.1.4
Soma: Es el cuerpo celular de la neurona.
Definición 1.1.5
Núcleo: Almacena la información de las señales de entrada.
En resumen, se puede decir que las neuronas cumplen con las siguientes
funciones:
10
Na +
-60mV K+
+ -
Ca +
+ -
-
+ -
+ -
-
+ -
+
50mV
Potencial deAcción
1ms
t(ms)
Periodo Refractario
11
1.2. Redes Neuronales Artificiales (RNA)
x1 w1
Funciónde
Activación
x2 w2 y
Señalesde
f( )
Salida
Entrada
. . Sumador
. .
. .
xn wn
PesosSinápticos
Definición 1.2.1
Entradas (Xi ): Provienen del exterior o de las neuronas a las que está conec-
tada, éstas pueden tomar valores binarios o continuos.
Definición 1.2.2
Pesos sinápticos (Wi ): Son las intensidades de la sinapsis que conectan dos
neuronas, amplificando o reduciendo la señal de entrada para ser evaluada en
la función de activación.
12
Definición 1.2.3
Función de activación (f ): Produce la señal de salida de la neurona, esto
lo hace en función de la suma ponderada de las entradas con los pesos
sinápticos.
Definición 1.2.4
Función de salida (y): Proporciona la salida global, al igual que la entrada,
ésta puede tomar valores binarios o continuos.
y = f (w1 x1 + w2 x2 + ... + wn xn )
(1.1)
n
!
X
y=f Wi Xi
i=1
Definición 1.2.5
Capa de entrada: Es aquella que está compuesta por neuronas que reciben
datos del entorno. Estas no actúan como neuronas propiamente tal, sino que
se encargan de recibir los patrones de entrada y propagar esas señales a las
neuronas de la capa siguiente.
Definición 1.2.6
Capas ocultas: Son aquellas que no tienen contacto con el medio exterior, sus
elementos pueden tener diferentes conexiones.
13
Definición 1.2.7
Capa de salida: Es aquella cuyas neuronas proporcionan la respuesta de la
red neuronal.
Señal Señal
Entrada Salida
. . .
. . .
. . .
Esta función permite que la neurona clasifique las entradas en dos categorı́as
diferentes. La salida de esta función puede ser una constante positiva o cero.
Esta función posee una discontinuidad en un punto que imposibilita de derivada
en dicho punto.
14
1 si p ≥ 0
a= (1.2)
0 si p < 0
0.9
0.8
0.6
0.5
0.4
0.3
0.2
0.1
0
−10 −8 −6 −4 −2 0 2 4 6 8 10
p
1 si p ≥ 0
a= (1.3)
−1 si p < 0
0.8
0.6
Funcion de Activacion (a)
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−10 −8 −6 −4 −2 0 2 4 6 8 10
p
15
1.3.3. Lineal Positiva (Poslin)
0 si p < 0
a= (1.4)
p si p ≥ 0
10
7
Funcion de Activacion (a)
0
−10 −8 −6 −4 −2 0 2 4 6 8 10
p
a=p (1.5)
16
10
−2
−4
−6
−8
−10
−10 −8 −6 −4 −2 0 2 4 6 8 10
p
0 si p < 0
a= p si 0 ≤ p ≤ 1 (1.6)
1 si p > 1
0.9
0.8
Funcion de Activacion (a)
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−4 −3 −2 −1 0 1 2 3 4
p
17
1.3.6. Lineal Saturado Simétrico (Satlins)
−1 si p < −1
a= p si −1 ≤ p ≤ 1 (1.7)
1 si p > 1
0.8
0.6
Funcion de Activacion (a)
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−4 −3 −2 −1 0 1 2 3 4
p
Esta función toma los valores de entrada, los cuales pueden tomar cualquier
valor p ∈ R, y restringe la salida a valores entre cero y uno.
1
a= (1.8)
1 + e−p
18
1
0.9
0.8
0.6
0.5
0.4
0.3
0.2
0.1
0
−4 −3 −2 −1 0 1 2 3 4
p
ep − e−p
a= (1.9)
ep + e−p
0.8
0.6
Funcion de Activacion (a)
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−4 −3 −2 −1 0 1 2 3 4
p
19
Relación
Nombre Icono Función
Entrada/Salida
a=0p<0
Limitador Fuerte Hardlim
a=1p≥1
a=0p<0
Lineal Positiva Poslin
a=pp≥0
a=0p<0
Lineal Positiva a=p0≤p≤1 Satlin
a=1p>1
a = 0 p < −1
Lineal Positiva
a = p −1 ≤ p ≤ 1 Satlins
Simétrico
a = +1 p > 1
Sigmoidal 1
a= Logsig
Logaritmico 1 + e−p
Tangente
ep − e−p
Sigmoidal a= Tansig
ep + e−p
Hiperbólica
1.4. Separabilidad
20
separadas por hiperplanos, lo que implica que puede resolver problemas que
sean linealmente separables. Se dice que dos conjuntos de puntos A y B
en un espacio n-dimensional son linealmente separables si existen n + 1
números reales (W1 , ..., Wn+1 ) tales que cada punto (X1 , ..., Xn ) ∈ A satisface
Pn Pn
i=1 wi xi ≥ wn+1 , y que cada punto (X1 , ..., Xn ) ∈ B satisface i=1 wi xi <
wn+1.
Con una neurona con dos entradas es posible separar un plano en dos
regiones mediante una recta que pasa por el origen, como se muestra en
la figura (1.14). Utilizando la función de activación Hardlim se obtendrán dos
posibles valores de salida 1 ó 0, lo que permite discriminar si un valor pertenece
o no a una determinada región.
x2
x1 w1
X
X
X
y X
f( )
X x1
w2 X
x2
y = f (w1 x1 + w2 x2 ) (1.10)
p = w1 x1 + w2 x2 (1.11)
1 si w1 x1 + w2 x2 ≥ 0
y= (1.12)
0 si w1 x1 + w2 x2 < 0
21
Situando x1 y x2 sobre los ejes de abscisas y ordenadas en el plano se obtiene:
w1 x1 + w2 x2 = 0 (1.13)
w1
x2 = − x1 (1.14)
w2
x2
X
X
X
X
X
X
x1
Para poder solucionar esto, es necesario desplazar la recta que pasa por
el origen. Esto se consigue introduciendo el parámetro denominado bias o
umbral b, donde este parámetro es una constante que desplaza la recta desde
el origen. De esta forma la salida de la neurona queda determinada por la
siguiente ecuación.
y = f (w1x1 + w2 x2 + ... + wn xn + b)
(1.15)
n
!
X
y=f Wi Xi + b
i=1
22
x1 w1
b
Funciónde
Activación
x2 w2 y
Señalesde
f( )
Salida
Entrada
. . Sumador
. .
. .
xn wn
PesosSinápticos
y = f (w1 x1 + w2 x2 + b) (1.16)
p = w1 x1 + w2 x2 + b (1.17)
1 si w1 x1 + w2 x2 ≥ −b
y= (1.18)
0 si w1 x1 + w2 x2 < −b
w1 x1 + w2 x2 = −b (1.19)
La recta que permite separar estos patrones esta definida por la siguiente
ecuación.
w1 b
x2 = − x1 − (1.20)
w2 w2
23
La separación de las dos regiones queda ilustrada en la figura (1.17).
x1 w1 x2
y
f( ) X
X
w2 X
X
x2
X
X
b
x1
Formas de
Regiones de Problema de la Clases con
Estructuras Regiones más
Decisión XOR Mezcladas
Generales
1Capa
Medio plano A B
A
limitado por un
B
B A
hiperplano
2Capas
Regiones A B
A
Cerradas o
B
B A
Convexas
Complegidad
3Capas
Arbitraria A B
A
Limitada por el
B
B A
Número de
Neuronas
24
1.5. Aprendizaje
Donde
25
actual anterior
wji = wji + ∆wji (1.22)
Patrón de Salida
Salida Obtenida
Red Neuronal
En este tipo de aprendizaje se suelen considerar tres formas, que dan lugar a
los siguientes aprendizajes supervisados:
3. Aprendizaje estocástico.
26
1. Aprendizaje por corrección de error
Siendo:
3. Aprendizaje estocástico
27
1.5.2. Aprendizaje no Supervisado o Autoorganizado
Ajuste
Patrón de Entrada
Salida Obtenida
Red Neuronal
1. Aprendizaje hebbiano.
1. Aprendizaje hebbiano
28
La competición ente neuronas se realiza en todas las capas de la red,
existiendo en estas neuronas conexiones recurrentes de autoexcitación y
conexiones de inhibición por parte de neuronas vecinas. Si el aprendizaje
es cooperativo, estas conexiones con las vecinas serán de excitación.
ciales
29
resultado de esta suma es comparado con un valor umbral.
x1 w1
x2 w2 y
w3
x3
b
n
!
X
y=f Wi Xi + b (1.24)
i=1
El hiperplano que separa las regiones está definido por los pesos sinápticos y
desplazado por el umbral de la función de activación.
Para un perceptrón con dos entradas, se puede obtener una recta definida por
la siguiente ecuación que generara dos regiones, tal como se muestra en la
figura (1.21).
30
w1 x1 + w2 x2 + b = 0 (1.25)
x2
X 1
0
X
X
x1
31
si Y = S entonces los pesos se mantienen
Error = S − Y (1.26)
32
Inicializar Pesos y
Ganancias
Se Presentan Patrones
de Entrenamiento
Se Calcula la Salida
Si
Y=S
No
Error = S- Y
Wnuevo = Want+Error*X
No
Todos los Pesos
y Umbrales
Actualizados
Si
Existe un gran número de lı́neas rectas que pueden separar los patrones
de una categorı́a de los patrones de otra. Para lograr el hiperplano final
es necesario presentar los patrones de entrenamiento en forma iterativa y
desarrollar el algoritmo, hasta que los pesos se ajusten.
33
x1 x2 s
0 0 0
0 1 1
1 0 1
1 1 1
x2
X 1
0
X (1,0) X (1,1)
(0,0) (0,1)
X
x1
Para el desarrollo de este sistema se utiliza una neurona con dos entradas
que corresponden a las entradas binarias de la función, posteriormente se
llevarán a cabo los pasos mencionados en el algoritmo de aprendizaje, esto
es inicializar los pesos sinápticos y el umbral en forma aleatoria.
w1 = 0,5
w2 = 0,3
b = 0,5
34
x2
X 1
0
X (1,0) X (1,1)
(0,0) (0,1)
X
x1
Para corregir este problema los pesos y el umbral deberán ser actualizados
según las ecuaciones (1.28) y (1.27).
35
Una vez finalizado el proceso de aprendizaje, los valores obtenidos para los
pesos y el umbral son los siguientes:
w1 = 1,5
w2 = 1,3
b = −0,5
x2
x1 w 1 = 1.5 X 1
0
y
X (1,0) X (1,1)
w 2 = 1.3
x2
b = -0.5
(0,0) (0,1)
X
x1
1,5 (−0,5)
x2 = − x1 −
1,3 1,3
36
x2
X 1
0
X (1,0) (1,1)
(0,0) (0,1)
X
x1
Las limitaciones de las redes de una sola capa hicieron que se plantearse la
necesidad de implementar redes en las que se aumentase el número de capas,
es decir, introducir capas intermediarias o capas ocultas.
x2
X 1
0
X (1,0) (1,1)
(0,0) (0,1)
X
x1
37
entrada hacia las neuronas de la capa de salida. Cada sensor de entrada
está conectado con las neuronas de la segunda capa, y cada neurona
de la segunda capa está conectada con las neuronas de la tercera capa,
ası́ sucesivamente. Las neuronas de la capa de salida están conectadas
solamente con las neuronas de la última capa oculta. De esta manera se logra
implementar cualquier función con el grado de precisión deseado.
Señal Señal
Entrada Salida
. . .
. . .
. . .
n2 n1 n0
! !
wmk xm + u1m + u2k + u3j
X X X
yi = f wji f wkj f (1.29)
j=1 k=1 m=1
38
Las funciones de activación más utilizadas son la función sigmoidal y la
función tangente hiperbólica. Dichas funciones poseen como imagen un rango
continuo de valores dentro de los intervalos [0,1] y [-1,1] respectivamente.
a1i = xi (1.30)
Para (i = 1, 2, ..., n1 )
39
Donde X = (x1 , x2 , ..., xn ) representa el patrón de entrada a la red
nX
c−1
nc−1
am m−1 m−1
um
X
yi = i =f wji aj + i
(1.32)
j=1
40
u 11
w 11
x1 v1 u3
w 12
y
w 21
x2 v2
w 22
u 22
a11 = x1
a12 = x2
41
señales de error se transmiten hacia atrás, partiendo de la capa de salida,
hacia todos los nodos de la capa intermedia que contribuyan directamente
a la salida. Sin embargo, las unidades de la capa intermedia sólo reciben
una fracción de la señal total de error, basándose aproximadamente en la
contribución relativa que haya aportado la unidad a la salida original.
N
1 X
E= e(n) (1.33)
N n=1
nc
1X
e(n) = (si (n) − yi (n))2 (1.34)
2 i=1
Siendo Y = (y1 , y2 , ..., ync ) el vector de salida de la red y S = (s1 , s2 , ..., snc ) el
vector de salida deseada por el patrón n.
∂e(n)
∆p wj = −α (1.35)
∂wj
∂e(n) ∂e(n) ∂y
= (1.36)
∂wj ∂y ∂wj
∂e(n)
= −(s(n) − y(n)) (1.37)
∂y
42
∂y
= xj (1.38)
∂wj
∂e(n)
w(n) = w(n − 1) − α (1.40)
∂w
43
Los pasos anteriores se representan mediante el diagrama de flujo mostrado
en la figura (1.30).
Inicializar Pesos y
Umbrales
Se Evalúa un patron de
Entrenamiento X(n),S(n)
Se Evalúa el Error
Cuadrático Medio
Regla Delta
Generalizada para los
Pesos y Umbrales
No Se Propagaron
todos los
Patrones
Si
Se evalùa el Error de
Entrenamiento E
Se Realizaron No
los m ciclos
de aprendizaje
Si
44
1.6.2.3.1. Actualización de pesos de la capa de salida
Las salidas deseadas Si (n) para la red son constantes que no dependen del
m−1
peso. El peso wji solo afecta a la neurona de salida i, yi (n) tenemos que:
nX
∂yi (n) m−1
m−1 m−1
m−1 = f ′
wji aj + um
i
am−1 (n)
j (1.43)
∂wji j=1
nX
m−1
∂e(n) m m−1
m−1 = δi (n)aj (n) (1.45)
∂wji
45
m−1
Finalmente, reemplazando la derivada del error e(n) respecto al peso wji
obtenida en la ecuación (1.45) se obtiene la ley para modificar dicho peso:
m−1 m−1
wji (n) = wji (n − 1) − αδim (n)am−1
j (n) (1.46)
um m m
i (n) = ui (n − 1) + αδi (n) (1.47)
m−2
Sea wkj (n) el peso de la conexión de la neurona k de la capa m − 2
a la neurona j de la capa m − 1, con el método de descenso de gradiente
dicho peso es:
m−2
Para este caso el peso wkj (n) influyen todas las salidas de la red, por tanto
la derivada del error e(n) respecto de dicho peso viene dada por las suma de
las derivadas para cada una de las salidas de la red:
nm
∂e(n) X ∂yi (n)
m−2 = − (si (n) − yi (n)) m−2 (1.49)
∂wkj j=1 ∂wkj
m−2
Para calcular la derivada de la salida yi (n) respecto al peso wkj (n) se tiene
que:
46
nm−1 m−1
∂yi (n) m m−1 ∂aj (n)
′
X m−1 m−1
m−2 = f wji aj + ui wji m−2 (1.50)
∂wkj j=1 ∂wkj
nm m−1
∂e(n) m m−1 ∂aj
X
m−2 = δi (n)w ji m−2 (1.51)
∂wkj i=1 ∂wkj
nX
∂am−1 m−2
!
j m−2 m−2
m−2 = f
′
wkj ak + um−1
j am−2
k (n) (1.52)
∂wkj k=1
nX
m−2
! nm
δjm−1 (n) = f ′ m−2 m−2
ak + um−1 δim (n)wji
m−1
X
wkj j (1.53)
k=1 i=1
∂e(n) m−1
m−2 = δi (n)akm−2 (n) (1.54)
∂wkj
m−2
La ley de aprendizaje para modificar el peso wkj (n) viene dada por:
m−2 m−2
wkj (n) = wkj (n − 1) + αδjm−1 (n)am−2
k (n) (1.55)
c c
wkj (n) = wkj (n − 1) + αδjc+1 (n)ack (n) (1.56)
47
nc
! nc+1
δjc+1(n) = f ′ c c c
δic+2 (n)wji
c
X X
wkj ak + uj (1.57)
k=1 i=1
48
Capı́tulo 2
Control Neuronal
2.1. Introducción
49
técnicas basadas en lógica difusa, redes neuronales, etc. En las siguientes
secciones se describen los sistemas de control clásico, control digital y
neuronal.
Detector de Planta o
Controlador
Error Proceso
Elemento de
Medida
50
de entrada y la señal medida a la salida, con el objetivo de corregir el
error o desviación que pudiera existir.
Sistemas Lineales
Son aquellos que pueden describirse mediante ecuaciones diferenciales
lineales. La propiedad más importante es que admiten el principio de
superposición. Esta propiedad puede utilizarse para determinar de un
modo experimental si un sistema es o no lineal.
Sistemas No Lineales
Estos sistemas se caracterizan por utilizar ecuaciones diferenciales
no lineales. La mayorı́a de los sistemas son linealizables a tramos
(circunstancia que se utiliza para poder caracterizar un sistema no lineal
como uno lineal en un entorno determinado).
ao y (n) +a1 y (n−1) +a2 y (n−2) +...+an y = bo x(m) +b1 x(m−1) +b2 x(m−2) +...+bm x (2.1)
51
donde:
(n) dn y
y = n; (n ≥ m) (2.2)
dt
X(s) Y(s)
SLIT
52
c(t) = ct (t) + css (t) (2.4)
donde:
ct (t) : Respuesta Transitoria.
css (t) : Respuesta Permanente.
53
2.2.5.1. Control Proporcional (P)
54
siendo la función de transferencia del controlador:
U(s) 1
= Kp 1 + (2.10)
E(s) Ti s
se define mediante:
de(t)
u(t) = Kp e(t) + Kp Td (2.11)
dt
U(s)
= Kp (1 + Td s) (2.12)
E(s)
Esta acción combinada reúne las ventajas de cada una de las tres acciones de
control individuales. La ecuación de un controlador con esta acción combinada
se obtiene mediante:
Kp t de(t)
Z
u(t) = Kp e(t) + e(t)dt + Kp Td (2.13)
Ti 0 dt
55
su función de transferencia es:
U(s) 1
= Kp 1 + + Td s (2.14)
E(s) Ti s
2.3.1. La Transformada Z
56
Para una secuencia de números x(k), la transformada z se define como
∞
X
X(z) = Z[x(k)] = x(k)z −k (2.16)
k=0
de(t)
D(t) = Kp Td (2.17)
dt
e(k) − e(k − 1)
D(k) = Kp Td (2.18)
T
Kp t
Z
I(t) = e(t)dt (2.19)
Ti 0
T k−1
X
I(k) = Kp e(i) (2.20)
Ti i=0
U(s) 1
P ID(s) = = Kp 1 + + Td s (2.22)
E(s) Ti s
57
Reemplazando la ecuación anterior en el PID análogo se obtiene la siguiente
expresión:
a0 + a1 z −1 + a2 z −2
G(z) = (2.24)
1 − z −1
Donde:
T 2Tv
a0 = k 1 + + (2.25)
2Tn T
T 4Tv
a1 = k − (2.26)
Tn T
T 2Tv
a2 = k + −1 (2.27)
2Tn T
58
Tipo de
Regu- G(s) G(z) (Transformación bilineal)
lador
a0 + a1 z −1
G(z) =
1 + z −1
PD G(s) = k(1 + sTz )
2Tz 2Tz
a0 = k 1 + ; a1 = k 1 −
T T
1 1 + Tn s a0 + a1 z −1
G(s) = k 1 + = G(z) =
sTn sTi 1 − z −1
PI
Tn T T
Ti = a0 = k 1 + ; a1 = k −1
k 2Tn 2Tn
1 a0 + a1 z −1 + a2 z −2
G(s) = k 1 + + sTv G(z) =
sTn 1 − z −1
PID (1 + Tn s)(1 + Tv s) T 2Tv T 4Tv
G(s) ≈ a0 = k 1 + + ; a1 = k −
TsTi 2Tn T Tn T
Tn T 2Tv
Ti = a0 = k + −1
k 2Tn T
Las redes neuronales tienen caracterı́sticas que las hacen muy interesantes
en el modelado de sistemas dinámicos, estos son una combinación de
elementos relacionados entre si que actúan para alcanzar un determinado
objetivo, como la capacidad de aproximar funciones no lineales con precisiones
59
arbitrariamente pequeñas y la posibilidad de permitir el diseño de controladores
utilizando diversas metodologı́as.
60
Son dinámicos si incluyen conexiones recurrentes, o permanentes si no
las incluyen.
61
NN : indica que el problema de optimización se basa en una red neuronal
(neural network).
minw : representa la minimización de la función objetivo.
Donde:
up : señal de entrada a la red.
yp : Salida a la planta
yn : Salida de la red neuronal
w : Pesos sinápticos de la red neuronal
62
F : Función que mide el rendimiento del proceso
Una vez desarrollado el modelo del proceso utilizando una red neuronal, se
puede desarrollar un controlador basado en este modelo.
up yp
Planta
Entrenamiento
Red Neuronal
yn
Donde:
up : entradas a la planta
yn : salida red neuronal
yp : salida de la planta y entrada a la red neuronal.
63
up yp
Planta
Entrenamiento
Red Neuronal
yn
Las redes neuronales pueden ser utilizadas para estimar los parámetros de
sintonización o ajuste de un controlador existente conocido previamente. Este
procedimiento se conoce como autosintonización. En la ecuación (2.31) se
formula el problema de la optimización del controlador.
Donde:
η : Parámetros objetivos del controlador
ηn : Parámetros predichos por la red neuronal
Entrenamiento
Red Neuronal
r yp
Modelo o
Controlador
uc Proceso
+
-
64
2.4.2. Control Directo
Donde
uc : entrada al controlador.
yc : salida de un controlador existente.
yn : salida red neuronal.
uc yc
Controlador
Entrenamiento
Red Neuronal
yn
65
2.4.2.2. Diseño de un control neuronal libre de modelo
Donde:
r : señal de referencia.
y : valores esperados.
yp : Salida de la planta.
un : salida de la red neuronal.
N : red neuronal en función de los pesos w.
Entrenamiento
r yn yp
Red Neuronal Planta
+
-
Este tipo de control neuronal, a diferencia del caso anterior, tiene como
principal caracterı́stica el basarse en el modelo de la planta. Esto tiene como
66
ventaja que cualquier falla que pueda ocurrir en el diseño del control no
afectará directamente a la planta real sino que ocurrirá en un modelo de la
planta. Esto se representa según la ecuación (2.34)
Donde:
y : valores esperados.
ym : Es la salida del modelo.
Si no se tiene el modelo del proceso se puede utilizar otra red neuronal para
modelar la dinámica de la planta. Una vez obtenido el modelo este puede ser
usado para el diseño del controlador.
Entrenamiento
r un ym
Red Neuronal Modelo
+
-
67
Una familia se agrupa por modelos que:
Donde:
y : valores esperados.
ymj : Es la salida del modelo.
mj : Es el j-ésimo miembro de la familia M.
M : conjuntos de modelos.
Entrenamiento
r un ymj
Red Neuronal Modelos
+
-
68
Capı́tulo 3
3.1. Algoritmo BP
Una red debe entrenarse hasta antes del punto en el cual pierde su capacidad
de generalizar, para evitar pasar de este punto se utilizan tres conjuntos de
69
vectores durante el entrenamiento, estos conjuntos se definen a continuación:
Definición 3.1.1
Conjunto de entrenamiento: Conjunto de datos entrada/salida al que se
aplicarán los algoritmos de aprendizaje supervisado para el correcto ajuste
de los parámetros de la red.
Definición 3.1.2
Conjunto de validación: Conjunto de datos entrada/salida no contenidos en
el conjunto de entrenamiento que puede utilizarse para realizar un seguimiento
del rendimiento de la red mientras se realiza el entrenamiento. El error de la red
sobre este conjunto de datos puede utilizarse para detener el entrenamiento
en el momento oportuno y evitar problemas de sobreentrenamiento.
Definición 3.1.3
Conjunto de test: Conjunto de datos de entrada/salida que se utiliza para
verificar el rendimiento de la red una vez concluido el proceso de aprendizaje.
70
se observa el comportamiento de el error en función del peso W, mostrando
tanto mı́nimos locales como globales.
Error
Mínimo Local
Mínimo Local
Mínimo Global
Modo Incremental
En modo incremental los pesos y bias son actualizados para cada una de las
entradas aplicadas. La función de error se considera de la siguiente forma:
m
1X
e= (Yj − Yjm )2 (3.1)
2 j=1
Modo Batch
71
N X m
1 X
E= (Yij − Yjm )2 (3.2)
N i=1 j=1
Utilizando una red multicapa con el número suficiente de neuronas en una sola
capa oculta que tienen como función de transferencia una función sigmoidal
y con una función de transferencia lineal en la neurona de salida se puede
aproximar cualquier función continua f de Rn en R con el grado de precisión
deseado. El resultado clásico que motivó la aplicación de las redes neuronales
como aproximadores universales de funciones fue el teorema de Kolmogorov
establecido en 1957.
72
Los siguientes comandos se utilizaron para el ejemplo de la creación de una
red neuronal multicapa:
[net,tr,Y,E,Pf,Af] = train(net,P,T,Pi,Ai,VV,TV)
net: red neuronal.
P: Entradas.
T: Salidas (targets).
Pi: Condiciones iniciales de retardo de las entradas (cero por defecto).
Ai: Condiciones iniciales de retardo de las capas (cero por defecto).
VV: Estructura de los vectores de validación.
TV: Estructura de los vectores de test.
73
Pf: Condiciones finales de retardo de las entradas.
Af: Condiciones finales de retardo de las capas.
[y,Pf,Af,E,perf] = sim(net,P,Pi,Ai,T)
net: Red neuronal.
P: Entradas.
Pi,Ai: Condiciones iniciales de los retardos.
T: Salidas (targets).
Y: Salidas de la red.
Pf,Af: Condiciones finales de los retardos.
E: Errores de la red.
Perf: Comportamiento de la red.
h = 1 − e−t (3.3)
74
1
0.9
0.8
0.7
0.6
Altura
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7
Tiempo
75
Topologı́a Error Final
21 0.001000
31 0.001000
41 0.004331
51 0.001000
61 0.002196
71 0.001000
81 0.001865
91 0.001050
10 1 0.001000
76
Topologı́a Error Final
21 0.001000
31 0.004355
41 0.001000
51 0.003520
61 0.002035
71 0.001000
81 0.001000
91 0.001000
10 1 0.001741
−2
10
Error cuadrático
−3
10
−4
10
0 1000 2000 3000 4000 5000 6000
Épocas
Figura 3.3: Comportamiento del Error en función de las épocas para dos neuronas
ocultas.
77
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.4: Gráfica función original y aproximada con dos neuronas ocultas.
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Épocas
Figura 3.5: Comportamiento del Error en función de las épocas para tres neuronas
ocultas.
78
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.6: Gráfica función original y aproximada con tres neuronas ocultas.
1
10
Entrenamiento
Validación
Test
Objetivo
0
10
Error cuadrático
−1
10
−2
10
−3
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Épocas
Figura 3.7: Comportamiento del Error en función de las épocas para cuatro neuronas
ocultas.
79
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.8: Gráfica función original y aproximada con cuatro neuronas ocultas.
1
10
Entrenamiento
Validación
Test
Objetivo
0
10
Error cuadrático
−1
10
−2
10
−3
10
0 500 1000 1500 2000 2500 3000 3500 4000
Épocas
Figura 3.9: Comportamiento del Error en función de las épocas para cinco neuronas
ocultas.
80
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.10: Gráfica función original y aproximada con cinco neuronas ocultas.
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Épocas
Figura 3.11: Comportamiento del Error en función de las épocas para seis neuronas
ocultas.
81
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.12: Gráfica función original y aproximada con seis neuronas ocultas.
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Épocas
Figura 3.13: Comportamiento del Error en función de las épocas para siete neuronas
ocultas.
82
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.14: Gráfica función original y aproximada con siete neuronas ocultas.
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Épocas
Figura 3.15: Comportamiento del Error en función de las épocas ocho neuronas
ocultas.
83
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.16: Gráfica función original y aproximada con ocho neuronas ocultas.
1
10
Entrenamiento
Validación
Test
Objetivo
0
10
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Épocas
Figura 3.17: Comportamiento del Error en función de las épocas para nueve neuronas
ocultas.
84
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.18: Gráfica función original y aproximada con nueve neuronas ocultas.
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Épocas
Figura 3.19: Comportamiento del Error en función de las épocas para diez neuronas
ocultas.
85
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
Figura 3.20: Gráfica función original y aproximada con diez neuronas ocultas.
86
−3
x 10
4.5
3.5
Error Final
2.5
1.5
0.5
2 3 4 5 6 7 8 9 10
Numero de Neuronas
0.9
0.8
0.7
0.6
Altura
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7
Tiempo
87
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
88
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
1.4
1.2
0.8
Altura
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Tiempo
En las figuras (3.22) a (3.27) se observa que en las primeras 2000 épocas de
entrenamiento la aproximación de la función no logra acercarse al patrón de
la función original. A medida que aumentan las épocas de entrenamiento los
valores de los pesos se van ajustando por lo que la función aproximada se va
acercando cada vez más a la función original. Después de las 4000 épocas de
entrenamiento se logra observar que la aproximación es cada vez mejor.
89
3.3. Variaciones del Algoritmo Backpropagation
Algunas funciones de Matlab que utilizan esta técnica son las siguientes:
90
un valor mayor al establecido por el parámetro max perf inc, normal-
mente ajustado en 1.04, los nuevos pesos y bias son descartados, man-
teniéndose los valores anteriores y disminuyendo la taza de aprendizaje
ponderándola por un valor ajustado normalmente en 0.7. Si el nuevo error
es menor que el error anterior la taza de aprendizaje es incrementada. Su
gran desventaja es que los pesos iniciales varı́an muy poco aunque se
encuentren distantes de los valores de convergencia.
91
Como la función de error tiene la forma de suma de cuadrados la matriz
Hessiana se puede aproximar como:
H = JT J (3.4)
g = JT e (3.5)
donde J es la matriz del jacobiano que contiene la primera derivada del error
de la red con respecto a los pesos y bias y e es el vector de error de la red.
h i−1
Wk+1 = Wk − J T J + µI JT e (3.6)
92
h = e−t sen(t) (3.7)
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
93
Topologı́a t ent épocas Error Final
21 11.344 2000 0.015300
51 11.953 2000 0.027190
10 1 14.125 2000 0.015679
30 1 22.922 2000 0.021577
50 1 0.437 11 0.693716
231 13.656 2000 0.012931
531 14.203 2000 0.022976
10 3 1 17.609 2000 0.017187
30 3 1 26.547 2000 0.017609
50 3 1 37.312 2000 0.018660
271 15.812 2000 0.012717
571 0.438 23 0.289880
10 7 1 18.984 2000 0.019546
30 7 1 0.547 19 0.212684
50 7 1 0.625 20 0.341578
2 20 1 0.375 11 1.179927
5 20 1 22.797 2000 0.014929
10 20 1 0.437 12 0.863646
30 20 1 0.516 13 0.659896
50 20 1 0.578 13 1.796927
2 40 1 32.172 2000 0.013486
5 40 1 33.078 2000 0.018043
10 40 1 0.484 9 9.075659
30 40 1 0.500 9 18.186717
50 40 1 0.562 9 5.998508
94
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Épocas
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
95
Topologı́a t ent épocas Error Final
21 0.766 123 0.017304
51 0.782 111 0.019866
10 1 0.828 97 0.018244
30 1 2.266 180 0.021790
50 1 1.593 80 0.053244
231 0.906 109 0.018961
531 1.078 124 0.022699
10 3 1 1.063 112 0.019871
30 3 1 1.610 106 0.009644
50 3 1 2.266 110 0.009567
271 0.953 100 0.009785
571 0.985 97 0.021488
10 7 1 1.125 101 0.024108
30 7 1 1.922 117 0.011988
50 7 1 2.156 101 0.013162
2 20 1 1.110 85 0.029025
5 20 1 1.235 91 0.033128
10 20 1 1.375 92 0.013879
30 20 1 1.781 90 0.028890
50 20 1 2.265 91 0.021883
2 40 1 1.313 71 0.016171
5 40 1 1.328 67 0.026092
10 40 1 1.515 74 0.035228
30 40 1 2.094 79 0.038184
50 40 1 2.313 69 0.031216
96
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 20 40 60 80 100 120
Épocas
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
97
Topologı́a t ent épocas Error Final
21 0.968 164 0.013900
51 0.359 26 0.043445
10 1 1.156 144 0.014808
30 1 1.828 139 0.013348
50 1 2.125 117 0.022896
231 0.578 48 0.032652
531 0.453 31 0.086013
10 3 1 1.562 174 0.010141
30 3 1 2.234 155 0.009667
50 3 1 0.969 38 0.020143
271 0.391 19 0.073785
571 0.406 23 0.126897
10 7 1 1.563 150 0.008605
30 7 1 2.188 147 0.009832
50 7 1 3.187 158 0.012527
2 20 1 1.500 130 0.007488
5 20 1 1.828 138 0.014039
10 20 1 2.000 133 0.015547
30 20 1 2.453 124 0.005489
50 20 1 3.578 145 0.006534
2 40 1 0.438 11 0.300600
5 40 1 2.172 119 0.017663
10 40 1 2.672 137 0.018818
30 40 1 3.016 121 0.011462
50 40 1 4.235 135 0.010314
98
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
Error cuadrático
−2
10
−3
10
−4
10
0 20 40 60 80 100 120 140
Épocas
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
99
Topologı́a t ent épocas Error Final
21 0.421 34 0.012846
51 1.031 149 0.003303
10 1 1.218 155 0.003100
30 1 10.562 833 0.000192
50 1 6.156 344 0.000100
231 7.797 1137 0.004471
531 14.734 2000 0.004666
10 3 1 1.922 197 0.000126
30 3 1 3.625 248 0.000152
50 3 1 1.797 82 0.000099
271 6.360 799 0.001940
571 13.235 1538 0.000100
10 7 1 1.453 130 0.000099
30 7 1 1.750 110 0.000100
50 7 1 2.109 99 0.000096
2 20 1 0.968 74 0.010678
5 20 1 2.750 221 0.000585
10 20 1 2.453 178 0.000099
30 20 1 1.094 48 0.000099
50 20 1 1.672 61 0.000099
2 40 1 32.156 2000 0.000150
5 40 1 4.125 226 0.000100
10 40 1 1.828 83 0.000098
30 40 1 2.157 78 0.000100
50 40 1 2.437 72 0.000100
100
0
10
Entrenamiento
Validación
Test
Objetivo
−1
10
−2
10
Error cuadrático
−3
10
−4
10
−5
10
0 10 20 30 40 50 60 70 80 90 100
Épocas
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
101
Topologı́a t ent épocas Error Final
21 3.328 462 0.003239
51 2.125 233 0.000100
10 1 2.813 255 0.000100
30 1 0.406 5 0.000023
50 1 0.390 3 0.000011
231 0.765 61 0.003094
531 0.438 18 0.006133
10 3 1 0.875 45 0.000093
30 3 1 0.766 12 0.000038
50 3 1 30.453 318 0.002073
271 6.140 521 0.000099
571 0.515 17 0.000082
10 7 1 2.344 89 0.000097
30 7 1 2.625 22 0.000066
50 7 1 2.031 6 0.000050
2 20 1 1.266 50 0.000096
5 20 1 3.437 85 0.000019
10 20 1 1.891 18 0.000043
30 20 1 5.812 7 0.000063
50 20 1 12.063 5 0.000034
2 40 1 2.719 53 0.000098
5 40 1 1.312 9 0.000059
10 40 1 2.922 8 0.000091
30 40 1 25.125 7 0.000053
50 40 1 75.312 6 0.000064
102
2
10
Entrenamiento
Validación
1 Test
10 Objetivo
0
10
−1
10
Error cuadrático
−2
10
−3
10
−4
10
−5
10
−6
10
0 0.5 1 1.5 2 2.5 3
Épocas
0.8
0.6
0.4
Altura
0.2
−0.2
−0.4
0 2 4 6 8 10 12 14 16 18 20
Tiempo
103
algoritmo que mejor permitió la aproximación de la función fue el de Levenberg-
Marquardt, trainlm. También mostró un tiempo de convergencia mucho menor
que el resto de las algoritmos, alcanzando el mı́nimo esperado en un número
mucho menor de iteraciones, pero requiriendo un poder de computo más
elevado.
104
Figura 3.39: Diagrama de bloques para demostración de memoria distribuida.
0.8
0.6
0.4
0.2
−0.2
−0.4
0 10 20 30 40 50 60
105
1
0.8
0.6
0.4
0.2
−0.2
−0.4
0 10 20 30 40 50 60
−1
0 10 20 30 40 50 60
106
obtiene esta totalmente alejado de lo esperado.
8
−1
0 10 20 30 40 50 60
10
−10
−20
−30
−40
−50
−60
0 10 20 30 40 50 60
0.8
0.6
0.4
0.2
−0.2
−0.4
0 10 20 30 40 50 60
Figura 3.45: Curva de respuesta de la red sin las neurona tres y nueve.
107
En la figura (3.43) se vuelve a conectar la cuarta neurona y se desconecta la
sexta, dando como resultado una aproximación com el mismo comportamiento
que la función original, pero desplazada del eje.
108
que modelara solo el comportamiento Proporcional del control, por lo tanto, se
obtendrá una aproximación de un controlador P.
1.2
1.1
1
Señal de Control
0.9
0.8
0.7
0.6
0.5
0.4
−1 0 1 2 3 4 5 6
Señal de Error
109
aproximar este tipo de función no es necesario una gran cantidad de neuronas
ocultas, por lo que se eligió una red con las caracterı́sticas mostradas en la
tabla (4.1):
Parámetro Valor
Entrada Error
Neuronas ocultas 2
Neuronas salida 1
Función activación capa oculta Logsig
Función activación capa salida Purelin
Algoritmo de entrenamiento Trainlm
Épocas entrenamiento 1000
Error objetivo 0.00001
1.1
1
Señal de Control
0.9
0.8
0.7
0.6
0.5
0.4
−1 0 1 2 3 4 5 6
Señal de Error
110
Capa de Entrada Capa Oculta Capa de Salida
Señal de Error Señal de Control
Logsig W 21=-0.7606
W 11=-0.5297
x b11=2.3749 y
Purelin
W 12=-0.4737 b 21=1.4298
W 22=-3.4313
Logsig
b 12=-2.3680
111
40
Control PI
Control Neuronal
35
30
25
Altura
20
15
10
0
0 200 400 600 800 1000 1200
Tiempo
Figura 3.51: Respuestas para un sistema ideal aplicando control P y control neuronal.
40
Control PI
Control Neuronal
35
30
25
Altura
20
15
10
0
0 200 400 600 800 1000 1200
Tiempo
Figura 3.52: Respuestas para un sistema con ruido aplicando control P y control
neuronal.
112
Capı́tulo 4
Implementación de Redes
Neuronales
nivel
113
Sensorultrasónico
Controlador
digital
114
riormente ser procesados en Matlab. Todos los datos rescatados formaron el
conjunto de entrenamiento para la red.
115
4.2.3. Procesamiento de los datos capturados en Matlab
Una vez que se tuvo el archivo de texto con los datos del controlador
proporcional se exportaron a Matlab mediante la instrucción textread cuya
sintaxis es la siguiente:
Donde:
Neuronal
116
200
190
180
170
Salida control
160
150
140
130
120
0 0.5 1 1.5 2 2.5 3
Error
Figura 4.3: Curva de salida del control en función del error de entrada.
176
174
172
Salida control
170
168
166
164
162
1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2
Error
117
obteniendo el siguiente resultado.
Error real
200 Error aproximado
180
Salida control
160
140
120
100
80
−1 −0.5 0 0.5 1 1.5 2 2.5 3
Error
Parámetro Valor
Entrada Error
Neuronas ocultas 2
Neuronas salida 1
Función activación capa oculta Logsig
Función activación capa salida Purelin
Algoritmo de entrenamiento Trainlm
Épocas entrenamiento 3000
Error objetivo 0.001
118
original y la respuesta entregada por la red. Esta aproximación es la esperada.
220
Salida P digital
200 Salida P neuronal
180
Salida control
160
140
120
100
80
−1 −0.5 0 0.5 1 1.5 2 2.5 3
Error
Con los siguientes comandos se pueden ver los parámetros de la red, tanto
pesos sinápticos como bias.
119
Con los parámetros de la red entregados por Matlab fue posible desarrollar
una red neuronal con un microcontrolador ya que este posee las funciones
matemáticas necesarias.
20
Control P
Red Neuronal
15
Altura
10
0
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Tiempo
120
4.4. Modelado del controlador PI con una Red
Neuronal
200
190
180
Salida Controlador
170
140
130
120
110
300
200
3
100
2
0
1
Sumatoria Error −100
−200 0
Error
−300 −1
121
En la tabla (4.2) se resumen los parámetros utilizados para la creación y
entrenamiento de la red neuronal del controlador PI.
Parámetro Valor
Entrada uno Error
Entrada dos Suma de error
Neuronas ocultas 5
Neuronas salida 1
Función activación capa oculta Logsig
Función activación capa salida Purelin
Algoritmo de entrenamiento Trainlm
Épocas entrenamiento 1000
Error objetivo 0.01
Figura 4.10: Esquema de la red neuronal para modelado del controlador PI.
122
en el anexo (D.2.4)
200
190
180
Salida Controlador
170
160
130
120
110
300
200
3
100
2
0
Sumatoria Error −100 1
−200 0 Error
−300 −1
30
25
20
Altura (cm)
15
10
0
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Tiempo (seg)
123
En las figuras (4.13) y (4.14) se muestran el tiempo de elevación, tiempo
máximo, sobreoscilación y error final para el controlador PI digital y el PI
basado en redes neuronales.
35
30
↑
so
↓
25 ↓
↑ e
Altura (cm) 20
15
10 ← tm →
5
← tv →
0
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Tiempo (seg)
30
↑
so
25
↓
20
Altura (cm)
15
10 ← tm →
5
← tv →
0
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Tiempo (seg)
Donde:
tv : tiempo de elevación.
tm : tiempo en alcanzar la máxima amplitud.
so: sobreoscilación.
e: error
124
neuronal alcanzó el valor máximo en un menor tiempo que el PI digital, también
alcanzo una menor sobre oscilación y un menor error final aproximándose al
nivel de referencia por lo que el control PI neuronal funcionó correctamente en
una planta real.
125
Capı́tulo 5
Conclusiones
126
red, rescatándose el tiempo de entrenamiento y el error final del entrenamiento.
Esto permitió comprender las diferencias que existe entre cada uno de ellos,
obteniéndose los mejores resultados con el algoritmo Trainlm, por lo que re-
sultó ser el más adecuado para la aproximación de las funciones propúestas.
127
ANEXOS
128
ANEXO A
Construcción Maqueta
Electroválvula proporcional.
Electroválvula on-off.
Tuberı́as de PVC.
etc.
129
Caracterı́sticas de los elementos seleccionados
Bomba centrı́fuga
Modelo TPM-06
Cap. Max. [L/min] 31
Cabezal max. [m] 31
Altura max. De Succión. [m] 9
Potencia [HP] 0.5
Diam. Bomba [1”] 1”x 1”
Peso Neto [Kg] 5.3
Dimensión Gen. [Mm] 265 x 120 x155
30
25
20
Altura [Mts]
15
10
0
0 5 10 15 20 25 30 35
Caudal [Lts/min]
130
Electroválvula proporcional
131
Tensión Sin generador de señales: 24V ± 10 %,
tensión ca rectificada de onda completa
Con generador de señales: 21 - 30 V cc
Señal de control Sin generador de señales: 300 - 600 mA
Con generador de señales: 4 - 20 mA o 0 - 10 V
Potencia bobina Máx. 20 W
Aislamiento del bobinado 400Ωk para la señal de control de 0 - 10V. 250 Ω
para la señal de control de 4-20mA
Resistencia de la bobinado 23,5Ω a una temperatura ambiente de 20 ◦ C
Aislamiento del bobinado Clase H de conformidad con el IEC 85
Conexión Sin generador de señales: Caja de terminales
Con generador de señales: 3 cables núcleo de 2 m
Protección de la bobina, IEC 529 IP 67
Temperatura ambiente - 25 a +50 ◦ C
Régimen de trabajo Continuo
90
80
70
Apertura [0−100%]
60
50
40
30
20
10
0
0 2 4 6 8 10 12 14 16 18 20
Corriente [mA]
132
Dispositivo de Medida
www.parallax.com
PARALLAX
0.84''
PING ))) 0.74''
(21.3mm)
(18.8mm)
SIG
G ND
5V
0.1''
(2.5mm)
0.1'' (2.5mm)
133
Mediante pruebas realizadas al sensor se encontró que la señal de
respuesta del ancho del pulso en función de la distancia es la mostrada
en la figura (A.4).
4000
Datos Rales
Curva Aproximada
3500
3000
2500
Pulso [us]
Ancho
2000
1500
1000
500
0
10 20 30 40 50 60
Distancia [cm]
• Microcontrolador PIC16F873
• Regulador LM317
• Regulador 7805
• MAX 232
134
escalamiento es entregado al DAC0808 para ser amplificado posterior-
mente con el LM741.
• Regulador LM317
• Regulador 7805
Este circuito se alimenta con una señal de ±15V olts, y por medio de los
reguladores 7805 y LM317 incorporados en el circuito se alimentan el
DAC0808 y la señal de referencia de este respectivamente.
135
Como se mencionó en los puntos anteriores los voltajes de alimentación
de los circuitos de medida y generador de corriente son de ±15V olts,
los ventiladores y el relé son alimentados con 12V olts, mientras que la
electroválvula proporcional se necesita 24V olts. También fue necesario
incluir 5V olts para la alimentación de los circuitos de control.
• Regulador 7805
• Regulador 7812
• Regulador 7815
• Regulador 7824
• Regulador LM337
Tuberı́as y Estanques
136
fue diseñado en su parte superior con una forma cilı́ndrica y su parte
inferior cónica, con el fin de obtener un completo desagüe del estanque.
Modificaciones en la planta
11
10.5
10
9.5
Altura [cm]
8.5
7.5
6.5
0 500 1000 1500 2000 2500 3000 3500 4000
Tiempo [seg]
137
Altura v/s Tiempo
22.6
22.4
22.2
22
21.8
Altura [cm]
21.6
21.4
21.2
21
20.8
20.6
0 500 1000 1500 2000 2500 3000 3500 4000
Tiempo [seg]
Entrada de
agua
Pe Pi
138
P = P0 + ρgh (A.1)
donde:
Entrada de
agua
Pi
..................
Con este cambio logramos que la presión del flujo entrante no se vea afectada
por la presión absoluta, como consecuencia se logró que la respuesta dinámica
en la planta sea la deseada.
139
ANEXO B
rango de salida
K= (B.1)
rango de entrada
20 mA − 4 mA mA
K= = 0,08 (B.2)
200 psi − 0 psi psi
140
Modelo Empı́rico Planta
Modelo estanque
45
40
30
Altura [cm]
25
20
15
10
0
0 20 40 60 80 100 124.9625 140 160
Caudal [cm3/seg]
35.5
35
34.5
Altura [cm]
34
33.5
33
32.5
32
0 500 1000 1500 2000 2500 3000 3500 4000
Tiempo [seg]
141
de la curva mostrada en la figura (B.2), ya que la construcción de la planta
no coincide en su totalidad con el modelo teórico presentado en [16], que
corresponde a un estanque totalmente cilı́ndrico. La figura (B.3) muestra el
esquema del estanque utilizado.
Qe
Qs
t
h(t) = k(1 − e− τ ) + c (B.3)
t
h(t) = 3,063(1 − e− 654,45 ) + 32,3 (B.4)
142
Actuador Sensor
Escala-entrada 4-20 mA 0-47 cm
Rango-entrada 16 mA 47 cm
Escala-salida 0-268 cm3 /seg 0-5 volt
Rango-entrada 268 cm3 /seg 5 volt
3,063
G(s) = (B.5)
654,45s + 1
3
268 cm
seg cm3
KActuador = = 16,75 (B.6)
16 mA seg ∗ mA
5 volt volt
KSensor = = 0,1064 (B.7)
47 cm cm
143
ANEXO C
Diseño de Controlador
Para el diseño del controlador se decide utilizar el método postulado por Dalhin,
debido al buen desempeño que tiene éste en plantas de primer orden sin
tiempo muerto.
!
1
C(s) = Kp 1+ (C.1)
Ti s
Kt = Ks−1
!
τp τp s + 1
PI = ∗ (C.2)
K ∗ Ks ∗ Kp ∗ τt τp s
144
Kc = τp /(K ∗ Ks ∗ Kp ∗ τt ) (C.3)
τi = τp (C.4)
donde:
Kp es la ganancia de la planta.
Kc = 0,2073
τi = 654,45seg
!
1
C(s) = 0,2073 1 + (C.5)
654,45s
2 z−1
Aplicando la transformada bilineal (s = Ts z+1
) a la ecuación (C.1), esta queda
como:
145
Ts Ts
1+ 2Ti
z+ −1+ 2Ti
C(z) = (C.6)
z−1
!
0,2075z − 0,2073
C(z) = (C.7)
z−1
146
ANEXO D
Programas Utilizados
Los siguientes códigos son los utilizados en el capitulo tres para la de-
mostración de la aproximación de funciones mediante una red neuronal.
147
%Se crean los vectores de Entrenamiento , Validacion , Test
for i =1:50
E_en ( i ) = x ( i *2)
I_en ( i ) = y ( i *2)
end
for i =1:25
E_va ( i ) = x ( i *4 -3)
I_va ( i ) = y ( i *4 -3)
E_te ( i ) = x ( i *4 -1)
I_te ( i ) = y ( i *4 -1)
end
VV . P = E_va
VV . T = I_va
TV . P = E_te ;
TV . T = I_te ;
figure
salida = sim ( net , E_te )
plot ( E_en , I_en , ’b ’ , E_te , salida , ’r - - ’)
xlabel ( ’ Tiempo ’ ) ; ylabel ( ’ Altura ’)
148
grid
eval ([ ’ print - depsc ImgA ’ , num2str ( i ) ])
plot ( nn , err , ’ o ’ , ’ M a r k e r E d g e C o l o r ’ , ’k ’ , ’ M a r k e r F a c e C o l o r ’ , ’ b ’)
grid
ylabel ( ’ Error Final ’) ; xlabel ( ’ Numero de Neuronas ’)
print - depsc nnerror
%save ( ’ C :\ Documents and Settings \ Rubén \ Escritori o \ Tesis \ redes matlab \ Ejemplo 1
cap 3\ prueba 1\ nnerror . eps ’)
clear all
x = linspace (0 ,20 ,600)
y = exp ( - x /2) .* sin (2* x )
plot (x , y )
xlabel ( ’ Tiempo ’) ; ylabel ( ’ Altura ’)
grid
print - depsc Ejemplo2C 3
p= ’\ ’
close
149
for i =1:300
E_en ( i ) = x ( i *2)
I_en ( i ) = y ( i *2)
end
for i =1:150
E_va ( i ) = x ( i *4 -3)
I_va ( i ) = y ( i *4 -3)
E_te ( i ) = x ( i *4 -1)
I_te ( i ) = y ( i *4 -1)
end
VV . P = E_va
VV . T = I_va
TV . P = E_te ;
TV . T = I_te ;
vcapa = [ 2 5 1 0 3 0 5 0 ; 0 3 7 2 0 4 0 ] ’
cont =1;
150
end
%Creacion de la red
net = newff ([ min ( x ) max (x ) ] , topo , fun , algoritmo ) ;
net . trainPara m . epochs =2000;
net . trainpara m . goal =0.0001;
net = init ( net ) ;
tic ;
[ net , tr ]= train ( net , E_en , I_en ,[] ,[] , VV , TV ) ;
t_entr = toc ;
iter = tr . epoch ( length ( tr . epoch ) ) ;
rend = tr . perf ( length ( tr . perf ) ) ;
ren ( cont ) = tr . perf ( length ( tr . perf ) ) ;
cont = cont +1;
figure
salida = sim ( net , E_te )
plot ( E_en , I_en , ’ b ’ , E_te , salida , ’r - - ’ )
xlabel ( ’ Tiempo ’) ; ylabel ( ’ Altura ’)
grid
eval ([ ’ print - depsc Img ’ , algoritmo , num2str ( col1 ) , num2str ( col2 ) ])
goal =[]
for j =1: length ( tr . epoch )
goal ( j ) =0.0001
end
151
fprintf ( fid , ’ \ t & %2.3 f & %d & %2.6 f %c %c %chline ’ , t_entr , iter ,
rend ,p ,p , p ) ;
fclose ( fid ) ;
end
end
end
%Funcion a Aproximar
clear
x =(0:0.5:6 0 )
y= sin ( x ) .* exp ( - x /4)
plot (x , y )
grid
%E n t r e n a m i e n t o
net = newff ([ -30 70] ,[10 1] ,{ ’ logsig ’ , ’ purelin ’} , ’ trainlm ’)
net . trainPara m . epochs =3000;
net . trainPara m . goal =1 e -7;
net = train ( net ,x , y ) ;
%simulacio n
redes = sim ( net , x )
plot (x ,y ,x , redes , ’r : ’)
grid
%Valores Finales
net . IW {1 ,1}
net . LW {2}
net . b {1}
net . b {2}
WI = net . IW {1 ,1}
WL = net . LW {2}
BI = net . b {1}
BL = net . b {2}
152
fprintf ( fid , ’ \ n ’ ) ;
for i =1:10
fprintf ( fid , ’u( %d ) *( %2.4 f ) + ’ ,i , WL ( i ) ) ;
end
fprintf ( fid , ’ ( %2.4 f ) ’ , BL ) ;
fclose ( fid ) ;
%Comparaci o n
xx = Xent ’
yy = Ysal ’
plot (x ,y , xx , yy , ’r - - ’)
grid
for i =1:500
E_en ( i ) = ent ( i *2)
I_en ( i ) = sal ( i *2)
end
for i =1:250
E_va ( i ) = ent ( i *4 -3)
I_va ( i ) = sal ( i *4 -3)
E_te ( i ) = ent ( i *4 -1)
I_te ( i ) = sal ( i *4 -1)
end
VV . P = E_va
VV . T = I_va
TV . P = E_te ;
TV . T = I_te ;
net = newff ([ min ( ent ) max ( ent ) ] ,[2 1] ,{ ’ logsig ’ ’ purelin ’ } , ’ trainlm ’ , ’ learngd ’ , ’
mse ’) ;
net . trainPara m . epochs =1000;
net . trainpara m . goal =0.000001 ;
153
xlabel ( ’ Se~
n al de Error ’)
ylabel ( ’ Se~
n al de Control ’ )
grid
legend ( ’ Control PI ’ , ’ Control Neuronal ’) ;
print - depsc PID_Copia
net . IW {1 ,1}
net . LW {2 ,1}
net . b {1 ,1}
net . b {2 ,1}
err = err ’
sal = sal ’
print - depsc e r r o r _ P _ z o o m
EE = linspace ( -1 ,3 ,100)
yy = (25.9* EE +124.5)
print - depsc e r r o r _ P _ a p r o x
154
net = newff ([0 25] ,[2 1] ,{ ’ logsig ’ , ’ purelin ’} , ’ trainlm ’ , ’ learngd ’ , ’ mse ’) ;
net . trainPara m . epochs =1000;
net . trainpara m . goal =1 e -3;
net = train ( net , EE , yy ) ;
figure
y= sim ( net , EE )
plot ( EE , yy , EE ,y , ’r . ’)
grid
xlabel ( ’ Error ’)
ylabel ( ’ Salida control ’)
legend ( ’ Salida P digital ’ , ’ Salida P neuronal ’) ;
print - depsc c o m p a r a c i o n _ P
net . IW {1 ,1}
net . LW {2 ,1}
net . b {1 ,1}
net . b {2}
err = err ’
sal = sal ’
print - depsc E r r o r _ P I A c u m u l a d o
155
plot3 ( err , erra , sal )
grid
hold on
plot3 ( errx , erra , sal , ’r ’)
zlabel ( ’ Salida Controlad o r ’)
xlabel ( ’ Error ’)
ylabel ( ’ Sumatoria Error ’)
legend ( ’ Error real ’ , ’ Error aproximad o ’)
net = newff ([ -1 3; -230 300] ,[5 1] ,{ ’ logsig ’ , ’ purelin ’} , ’ trainlm ’ , ’ learngd ’ , ’ mse ’)
;
net . trainPara m . epochs =1000;
net . trainpara m . goal =0.01;
[ net , tr ] = train ( net , ent , sal ) ;
print - depsc P I A c u m u l a d o _ r e d
WI = net . IW {1 ,1}
BI = net . b {1 ,1}
WL = net . LW {2 ,1}
BL = net . b {2}
fprintf ( fid , ’ \ n ’ ) ;
for i =1:5
fprintf ( fid , ’H %d *( %2.6 f ) + ’ ,i , WL ( i ) ) ;
end
156
fprintf ( fid , ’ ( %2.6 f ) ’ , BL ) ;
fclose ( fid ) ;
main ( VOID ) {
int sal ;
Float nivel_cm = 0;
Float voltaje , Refer =25;
Float H1 , H2 , H3 , H4 , H5 , H6 , EF , Error ;
Float W21 =1.408 , W22 = -207.8276 , W23 =23.839 , W24 = -0.0694 , W25 = -349.2927 , W26 =1.741;
Float B11 =0 , B12 =0 , B2 =131.5523;
float EF1 ;
s e t u p _ c o u n t e r s ( RTCC_INTERNAL , R T C C _ D I V _ 2 5 6 ) ;
s e t u p _ a d c _ p o r t s ( ALL_ANALO G ) ;
setup_adc ( a d c _ c l o c k _ i n t e r n a l ) ;
set_tris_c (0 x00 ) ;
set_tris_e (0 x00 ) ;
LCD_INIT () ;
while ( TRUE ) {
s e t _ a d c _ c h a n n e l (0) ;
voltaje = read_adc () ;
nivel_cm = 9.451* voltaje *5/255;
error = Refer - nivel_cm ;
157
sal = EF ;
lcd_gotoxy (1 ,1) ;
printf ( lcd_putc , " S : %2.1 f R : %2.1 f " , nivel_cm , Refer ) ;
lcd_gotoxy (1 ,2) ;
printf ( lcd_putc , " sal : %u " , sal ) ;
output_c ( sal ) ;
output_hi g h ( PIN_E0 ) ;
delay_ms (15) ;
output_low ( PIN_E0 ) ;
delay_ms (1024) ;
}
}
main ( VOID ) {
int sal ;
158
Float nivel_cm = 0;
Float voltaje , Refer =0;
Float H1 , H2 , H3 , H4 , H5 , EF , Error =0 , Serror =0;
s e t u p _ c o u n t e r s ( RTCC_INTERNAL , R T C C _ D I V _ 2 5 6 ) ;
setup_adc_ports( RA0_ANALOG_RA3_RA2_REF );
setup_adc ( A D C _ C L O C K _ I N T E R N A L ) ;
Refer = (25*5) ;
Refer = ( Refer /48) ;
set_tris_c (0 x00 ) ;
set_tris_e (0 x00 ) ;
LCD_INIT () ;
while ( TRUE )
{
s e t _ a d c _ c h a n n e l (0) ;
voltaje = read_adc () ;
nivel_cm = voltaje *5/255;
Serror = Serror + Error ;
Error = Refer - nivel_cm ;
sal = EF ;
if ( EF >=0 xff ) {
sal =0 xff ;
}
if ( EF <=0) {
sal =0;
}
lcd_gotoxy (1 ,1) ;
printf ( lcd_putc , " N : %2.1 f S: %u " , nivel_cm , sal ) ;
lcd_gotoxy (1 ,2) ;
printf ( lcd_putc , " E : %2.1 f R : %2.1 f " , error , Refer ) ;
159
printf ( " %f %u \ n \ r " , error , sal ) ;
output_c ( sal ) ;
output_hi g h ( PIN_E0 ) ;
delay_ms (15) ;
output_low ( PIN_E0 ) ;
delay_ms (1000) ;
}
}
byte conta ;
int16 bajada =0;
int16 bajaori [10];
int16 bajater [10];
# int_ccp1
void sube () {
set_timer1 (0) ;
}
# int_ccp2
void baja () {
bajada = get_timer1 () ;
}
void ultra () {
set_tris_c (0 x00 ) ;
puertac =0 x0F ;
delay_us (10) ;
puertac =0 x00 ;
set_tris_c (0 x0F ) ;
}
main () {
int16 centi =0;
float cenlcd =0;
160
int SAL =0;
int i , j ;
float sum , desmax , desmin , prom ;
set_tris_b (0 x00 ) ;
setup_ccp1 ( C C P _ C A P T U R E _ R E ) ; // Configura CCP1 para capturas del TMR1
// con flancos de bajada en RC2
setup_ccp2 ( C C P _ C A P T U R E _ F E ) ; // Configura CCP2 para capturas del TMR1
s e t u p _ t i m e r _ 1 ( T1_intern al ) ;
e n a b l e _ i n t e r r u p t s ( INT_CCP1 ) ;
e n a b l e _ i n t e r r u p t s ( INT_CCP2 ) ; // Habilita la i n t e r r u p c i ó n por captura de
CCP2 ( PIN RC1 )
e n a b l e _ i n t e r r u p t s ( GLOBAL ) ;
while ( true ) {
sum = 0;
for ( i =1; i <=10; i ++)
{
ultra () ;
delay_ms (5) ;
bajaori [ i ] = bajada ;
sum = sum + bajada ;
}
j =0;
prom = sum /10;
desmax = prom + 2;
desmin = prom - 2;
for ( i =1; i <10; i ++)
{
if ( bajaori [ i ] > desmin && bajaori [ i ] < desmax )
{
j ++;
bajater [ j ] = bajaori [ i ];
}
}
prom = 0;
sum = 0;
for ( i =1; i <= j ; j ++)
{
sum = sum + bajater [ i ];
}
prom = sum /( j ) ;
delay_ms (900) ;
if ( bajada > 995)
cenlcd = prom * 0 . 0 1 7 2 2 1 1 8 8 ;
else
cenlcd =( prom *0.01732 - 0.9263) ;
161
centi = cenlcd *10;
SAL = (( cenlcd *255) /65) ;
puertab = SAL ;
printf ( " %04 lu - %04 lu " , bajada , centi ) ;
}
}
162
ANEXO E
Esquemáticos de circuitos
utilizados
Ent 15Vdc
Alimentación DAC
LM7805
1 2
GND
IN OUT
7
I_1
12 DB7 6
I_2 0
11 DB6 OUT
I_3
10 DB5 3 2 1
V-
I_4
9 DB4 OUT - OS1
I_5
8 DB3 LM317
I_6
7 DB2 4 3 2
4
I_7
6 DB1 REF OUT IN
ADJ
R4
I_8 DB0 10k
AGND
10k D1
1
5
D1N4009
10k
5k
Ent -15Vdc
163
Figura E.2: Esquemático circuito normalizador de señal de sensor ultrasónico
U3 U4
LM7805C LM317K
Alimentación DAC 10k
2 1 3 2
GND
ADJ
OUT IN 15 volt DC OUT IN 15 volt DC
Alimentación MAX
10u 10u 15 volt DC
1
+ +
Alimentación PIC
5k
P1
1 U1
U2
6 11 2
Datos 2 MAX232 12 RC0/T1OSO/T1CKI RA0/AN0 3 0 0
7 12 13 13 RC1/T1OSI/CCP2 RA1/AN1 4 1k 220
R1OUT R1IN RC2/CCP1 RA2/AN2/VREF-
hacia 3 9 8 14 5
7
8 R2OUT R2IN 15 RC3/SCK/SCL RA3/AN3/VREF+ 6 U6
RC4/SDI/SDA RA4/T0CKI U5
un PC 4 14 11 16 7 3 5
V+
T1OUT T1IN RC5/SDO RA5/SS/AN4 + OS2
9 7 10 17 DAC8
5 T2OUT T2IN 18 RC6/TX/CK 21 13 6
4 1 RC7/RX/DT RB0/INT 22 12 DB7 OUT Salida
C2+ C1+ 10 RB1 23 11 DB6 3 2 1 0-10 volt
V-
164
4
C2- C1- RB5 27 7 DB2 15
V+
V-
OSC1/CLKIN 9
2 5k
1 5
MCLR/VPP/THV
1u + 1u 20 3
VDD
+
-15 volt DC
PIC16F873 5k
+ 10u
0
Figura E.3: Esquemático fuente de tensión continua
GND
GND
GND
1 2
IN OUT
GND
D12
D1N4148
3
R1
3
C9 C9 C9 C9 C9 C9 C9 C9
1k
2200U 2200U 2200U 2200U 2200U 2200U 2200U 2200U
C9
TX 2200U
165
Ls1
V1
Lp
0
Ls2
0
VAMPL = 220 C9
FREQ = 50 C9 C9
2200U 2200U 2200U
R1
1k
3
GND
D12 1 2
IN OUT
D1N4148
U15
LM7805C
ANEXO F
Planos de Conexiones
166
Figura F.1: Esquemático circuito normalizador de señal de sensor ultrasónico
167
Figura F.2: Esquemático fuente de tensión continua
168
Figura F.3: Esquemático generador de corriente 0-20 mA
169
ANEXO G
170
a) b) c)
171
Bibliografı́a
[5] Mark Beale y Martin Hagan Howard Demuth. Neural Network Toolbox.
The MathWorks, Inc, 2008.
172
[11] José O. Cuza Freyre y Mónica Mulet Hing Miguel A. Torres Alberto, Marı́a
E. Pardo Gómez. Control de una Torre de Destilación Mediante un
Controlador Neuronal. Universidad de oriente, 2004.
[12] J.G. Khor M. McCormick M.N. Cirstea, A. Dinu. Neural and fuzzy logic
control of drives and power systems. 2002.
[13] Hung T. Nguyen. A first cousre in fuzzy and neural control. 2003.
173
[24] James A.Freeman y David A. Skapura. Redes Neuronales, algoritmos,
aplicaciones y técnicas de programación. Addison-Wesley, 1993.
174