Download marco teorico

Document related concepts

Perceptrón multicapa wikipedia , lookup

ART (RNA) wikipedia , lookup

Red neuronal artificial wikipedia , lookup

RNA de base radial wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Transcript
IV.- MARCO TEORICO
4.1 INTRODUCCION
Las redes Neuronales artificiales ( RNA) , también conocido como red con aprendizaje
conexionista y procesamiento de distribución paralela, está encontrando aplicaciones en
diversas áreas: muchas ramas de ingeniería, ciencias de la salud, ciencias cognoscitivas,
la arqueología, las finanzas, etc. En estos campos, hay dos categorías de problemas que
se han resuelto con éxito usando la metodología de la
Ellos son el reconocimiento
de patrones provenientes de diferentes datos, la identificación de parámetros de sistemas
y el control (conocido/desconocido) de sistemas dinámicos. Hasta la fecha existe un
creciente interés en los sistemas de control que incluyen redes neuronales artificiales
como elementos de control, por lo que se han implementado un importante número de
soluciones. Las aplicaciones exitosas más relevantes i luyen desde elementos que
operan como identificadores hasta aquellos que trabajan como controladores de
optimización utilizando modelos del proceso .
Hoy en día la inteligencia artificial está siendo usad
n la industria, por ejemplo En
control de calidad, para la identificación de material s defectuosos. Identificar fisuras en
piezas mecánicas mediante fotografía.
El estudio de los neurocontroladores ha sido utilizado en sistemas de control,
debido a que una red neuronal tiene la capacidad de aproximar cualquier función no
lineal, como lo demuestra el teorema de Funahashi. Ent nces, se puede entrenar a una
red neuronal para que se comporte como un controlador no lineal. Es así que nacen los
Neurocontroladores, que es la aproximación de un contr
no lineal, por lo que su
análisis es muy similar a cuando tenemos sistemas de c ntrol no lineales.
Lo importante del diseño de un neurocontrolador es que podemos usarlos para
diversas áreas de Sistemas de control , entre ellas en la robótica, en la automatización.
Los neurocontroladores no están ajenos a esta innovaci n tecnológica, actualmente se
están haciendo pruebas de neurocontroladores para ser incorporados a la industria como
solución a problemas más complejos que requieran de la optimización.
8
LA PLANTA
DE POS ICION Y VELOCIDAD (PPV)
Y REDES
NEURONALES ARTIFICIALES
La planta de posición y velocidad denominado PPV es un dispositivo mecánico
compuesto básicamente por una barra que oscila libreme e en un plano,
soportada por uno de sus extremos en el cual puede pivotear libremente ests
algunas veces lo denominamos péndulo invertido . La barra del péndulo puede
estar montada sobre una base ya sea móvil o estática, ver figura 2.1.
ang ul o
Ba r r a
F
Pi v o t e
Pi e z a
ba s e
Fig.4.1 Representación de la planta PPV (Péndulo invertido)
Para mantener en equilibrio un Péndulo Invertido en su posición vertical se
puede aplicar una fuerza de control al sistema mediant
mecánicas entre las cuales se puede mencionar la del P
stintas configuraciones
ulo Invertido Simple
de base móvil [1-4], el Péndulo Invertido Simple de Base Estática [5-7] y el
Péndulo de Furuta [8 -10].
En este trabajo se emplea un péndulo de la forma “ Pendulo Invertido simple de
base móvil” (figura 2.2) por las ventajas económicas y de manufac ura que
presenta su implementación. En dicho prototipo la fuerza aplicada a la base
móvil se realiza a través de una banda de transmisión
cionada por un motor
eléctrico de corriente continua. El movimiento de la base móvi está limitado a
un solo eje por medio de una barra guía y una superficie de soporte.
El Sistema Pendulo simple
denominado Planta de posición y velocidad
denominado “PPV” es un sistema no lineal (las ecuaciones que representan
dicho sistema son de naturaleza no lineal), inestable el péndulo puede volcarse
en cualquier momento y en cualquier dirección) y sub-actuado ya que el péndulo
no recibe directamente ninguna señal de control (la señal de control es aplicada a
9
la base móvil), sin embargo puede ser modelado como un sistema lineal en torno
a la posición de equilibrio para facilitar la implementación del controlador .
Bar r a g ui a
Ba nda
t r a ns mi s i o n
mo t o r : M1
mo t o r :
M2
So po r t e
Fig.4.2 Planta de Posición y Velocidad: PPV (sistema p ndulo Invertido
simple con base móvil)
4.1.1 MODELADO DE LA PLANTA DE POS ICION Y VELOCIDAD
En la literatura existe una gran cantidad de métodos q
permiten
obtener el modelo matemático de un PPV [1, 5, 7, 8, 10, 12, 14-18], en
nuestro caso el
desarrollo del modelo matemático tomara como base la
metodología empleada en el sitio web de The University
Michigan [17], y se
apoya en los diagramas de cuerpo libre mostrados en la figura 2.3, en dicha
figura se considera una fuerza externa, que actúa sobr la base móvil, esta es la
señal de control. Se determinan las ecuaciones dinámicas que modelan el
sistema, y posteriormente se linealizan en torno al punto en el cual el ángulo del
péndulo ? = p (asumiendo que el péndulo no se mueve más que unos poc s
grados a ambos lados
de la vertical, a la cual se le ha asignado el ángulo p ).
10
P
N
mx ' '
bx '
F
mg
mo ' '
-N
-P
X
X'
Fig.4.3 Diagrama de cuerpo libre para el Sistema Pend o simple
En el desarrollo del modelo matemático se consideran las siguientes variables y
constantes del sistema, los cuales deben expresarse en un sistema de unidades
coherente:
M
Masa del carro
m
Masa del péndulo
b
Fricción entre la base móvil y la superficie de despla amiento
l
Longitud del pivote al centro de gravedad del péndulo
I
Inercia del péndulo
F
Fuerza aplicada al carro
x
Posición de carro
?
Ángulo del péndulo desde la vertical superior
Py N
Componentes de la fuerza de reacción en el punto de pi
teo
Sumando las fuerzas que actúan sobre el carro en dirección horizontal, se obtiene la
siguiente ecuación de movimiento:
M x&& + bx& + N = F
Ec.4.1
Haciendo lo mismo para el péndulo
N = m&x& + mlq&& cos q − mlq& 2 senq
Ec.4.2
11
Si se sustituye el valor de N definido en la ecuación 4.2 dentro de la ecuación 4.1, se
obtiene la primera ecuación de movimiento del sistema ompleto:
Ec. 4.3
( M + m) &x& + bx& + mlq&& cosq − mlq& 2 senq = F
Posteriormente se suman las fuerzas que actúan perpendiculares al péndulo
Psenq + N cosq − mgsen q = ml q&& + m&x& cosq
Ec.4.4
Para aislar los términos P y N de la ecuación anterior se suman los momentos alrededor
del centro de gravedad del péndulo para obtener la ecuación siguiente
Plsen q − Nl cos q = Iq&&
Ec.4.5
Al combinar la ecuación 4.4 con la 4.5 se obtiene la ecuación dinámica del sistema
( I + ml 2 )q&& + mglsenq = − ml&x& cosq
Ec.4.6
Como se menciono anteriormente, las ecuaciones obtenid s son no lineales y es
necesario linealizarlas en torno a un ángulo ?=p. Asumiendo que ?= p+ø (donde ø
representa un ángulo pequeño desde la vertical y que 1 + sen(? )˜ 1?
, sen(? )˜ -ø y
cos(? )˜ -1)). Por lo tanto, cos(?) = -1,sin(? ) =-ø, y (d? /dt)2 = 0. Después de linealizar
se ob tienen las siguientes ecuaciones:
( I + ml 2 )f&& − mglf = ml&x&
Ec.4.7
( M + m) &x& + bx& − mlf&& = u
Ec.4.8
Donde u representa la señal de control o fuerza aplicada)
4.1.2 DISEÑO DE UN CONTROLADOR PARA EL PPV
La primera solución al problema de control del sistema Péndulo Invertido fue descrita
por James K. Roberge . Una vez obtenidas las ecuaciones representativas del sistema se
pueden emplear distintos métodos de control para equilibrar el sistema, algunos de ellos
trabajan en el dominio de la frecuencia por lo que es
cesario obtener la Transformada
12
de Laplace de las ecuaciones del sistema (suponiendo condiciones iniciales nulas), lo
que da como resultado variables en el dominio de la variables (X(s),U(s) y F (s) ):
Ec.4.9
( I + ml 2 ) Φ ( s ) s − mglΦ ( s ) = mlX ( s ) s 2
Ec.4.10
( M + m) X ( s ) s 2 + bX ( s ) + mlΦ ( s ) s 2 = U ( s )
Algunos de estos métodos están limitados a que los controladores solo analizan una
señal como salida a controlar del sistema. Si consideramos el ángulo ? como la salida a
observar del sistema, obtendríamos la siguiente función de transferencia:
m 2
s
Φ (s )
q
=
U ( s)
b( I + ml 2 ) 3 (M + m)mgl
bmgl
s4 +
s −
s −
s
q
q
q
Ec.4.11
Donde:
q = [( M + m)( I + ml 2 ) − ( ml 2 )]
Ec.4.12
Para salvar esta limitación de tener una sola salida controlable podría diseñarse el
controlador empleando variables de estado en la expresión de las ecuaciones dinámicas
,tomando como base la siguiente representación general :
Y considerando el vector X compuesto de las siguientes variables:
x& = Ax + Bu
Ec.4.13
y = Cx + Du
&]
( x1 , x 2 , x 3 , x 4 ) = [ x , x& , Φ , Φ
Ec.4.14
Ec.4.15
Se pueden obtener las siguientes matrices de estado:
1
0
 x&  
− ( I + ml 2 )b
 &x&  0
2
  =  I (M + m) + Mml
&
0
Φ 0
− mlb
Φ
 0
&
&
   I (M + m) + Mml 2

0
m 2 gl 2
I ( M + m ) Mml 2
0
mgl ( M + m )
I ( M + m ) + Mml 2
0
0


 x  

I + ml 2
0  &  
2 
x
   +  I ( M + m ) + Mml u
1 Φ 
0

ml





&
0 Φ
2

 I ( M + m ) + Mml 
x 
1
0
0
0

  x&  0
y =
+  u

 0 0 1 0 Φ 0
& 
Φ
13
Al tener una representación matricial con variables de estado es posible diseñar
controladores empleando distintas técnicas de control: mediante el ajuste de polos,
empleando una entrada de referencia, empleando realime ación de estado o mediante
un observador, etc. [1, 2, 6]. Estas técnicas de control permiten esta
izar más de un
parámetro del sistema. El éxito en la estabilización del sistema PIS, mediante el
controlador creado con alguna de estas técnicas, dependerá en gran parte de lo cercano
que sea el modelo obtenido en relación a la dinámica actual del sistema. Podemos decir
que un control tradicional, en los casos que se conocen sus ecuaciones dinámicas
presentaría la forma general de la siguiente ecuación [16].
&
F1 = b1 x + b2 x& + b3Φ + b4 Φ
Ec.4.16
En la cual se asume que la fuerza de control es una función lineal
las cuatro variables
de estado y además con coeficientes constantes.
En los dos métodos mencionados es necesario contar con suficiente conocimiento del
sistema así como realizar un adecuado desarrollo matemático para obtener un modelo
adecuado. Dado que en ocasiones es difícil y en ocasiones casi imposible obtener la
información necesaria para diseñar un sistema de contr
clásico, se han investigado
otras alternativas, entre ellas podemos mencionar el uso de Redes Neuronales
Artificiales, Lógica Difusa, sistemas híbridos y controles adaptativos.
14
4.2 REDES NEURONALES ARTIFICIALES
El interés por crear máquinas que de alguna forma emul
el comportamiento humano
tiene siglos de antigüedad, ya en el siglo primero de nuestra era se realizaban
mecanismos animados, los de Herón de Alejandría, y en el siglo XVII Jacques de
Vaucason creó el primer mecanismo que podríamos llamar humanoide, aunque no es
sino hasta el siglo XX cuando se presenta una cooperación más activa entre diferentes
ramas de la ciencia que permitieron hacer más viable dicha idea.
Al incrementarse la complejidad de las tareas a realizar por una máquina se vio la
necesidad de desarrollar nuevas técnicas que facilitar n el control de dichos
mecanismos, de esta forma surgió la nueva rama de la c
putación conocida como
computación suave (Soft Computing), la cual pretende e ular el comportamiento
inteligente de los seres vivos con el fin de dotar de inteligencia a máquinas o procesos .
Dentro de la computación suave podemos mencionar las téc
as que emplean: Lógica
Difusa, Algoritmos Genéticos y Redes Neuronales Artificiales (RNA’ s).
Las RNA´s tienen su inspiración en la forma en que se modela el funcionamiento del
cerebro humano. El procesamiento de la información que percibe el cerebro mediante
los sentidos es un mecanismo de procesamiento de datos en forma paralela e involucra
fenómenos electro-químicos.
Neurona Biológica
Se estima que hay 26,000 millones de neuronas en el ce ebro humano y en un ´área de 1
mm2 hay aproximadamente 50.000. Ellas se comunican a través de una red de
conexiones sinápticas teniendo una densidad de aproximadamente 104 sinapsis por
neurona. El tama ño y formas de las neuronas es variable, pero todas poseen las mismas
subdivisiones anatómicas.
El tejido nervioso es el más diferenciado del organismo y está constituido por células
nerviosas, fibras nerviosas y la neuroglia, que está f
da por varias clases de células.
La célula nerviosa se denomina neurona, que es la unidad funcional del sistema
nervioso. Hay neuronas bipolares, con dos prolongaciones de fibras y multipolares, con
numerosas prolongaciones. Pueden ser neuronas sensoriales, motoras y de asociación.
Las partes principales de una neurona biológica pueden observarse en la figura 4 .4. El
tamaño y la forma de las neuronas son variables, pero tienen la mismas subdivisiones
básicas.
El cuerpo de la neurona contiene el núcleo o soma.
15
El soma se encarga de todas las actividades metabólicas de la neurona y recibe la
información de otras neuronas vecinas a través de las conexiones sinápticas.
Las dendritas son las conexiones de entrada de la neurona.
Por su parte el axón es la "salida" de la neurona y se utiliza para enviar impulsos o
señales a otras células nerviosas. Cuando el axón esta cerca de sus células destino se
divide en muchas ramificaciones que forman sinapsis con el soma o axones de otras
células. Esta unión puede ser "inhibidora" o "excitadora" según el transmisor que las
libere .
Fig.4.4. Partes Principales de una neurona
16
Características del Cerebro Humano
El cerebro humano tiene varias características deseables para un sistema artificial, por
ese motivo sirve como patrón para su estudio. Entre las caracter ísticas más
sobresalientes tenemos:
a) Es robusto y tolerante a fallas, diariamente mueren neuronas sin afectar su
desempeño.
b) Es flexible, se ajusta a nuevos ambientes de aprendiza e no hay que programarlo.
c) Puede manejar información difusa, con ruido o inconsistente.
d) Es altamente paralelo.
e) Es pequeño compacto y consume poca energía.
Los desarrollos obtenidos en las últimas décadas en el área de electrónica y
computación ha permitido emular la neurona biológica generando lo que ahora se
conoce como neurona artificial, dicha emulación actualmente se puede realizar a nivel
software o hardware , en este trabajo se opto por simular el modelo de la RNA a nivel
software.
Modelo de la Neurona Biológica
Las redes neuronales son modelos matemáticos que inten an imitar la estructura y
funcionamiento del cerebro humano. Una red neuronal está formada por un conjunto de
elementos simples interconectados, que es capaz de procesar la información disponible
para realizar un aprendedizaje fig.4.5.
Fig.4.5 modelo de una ne urona
En la figura 4.6 se muestra una posible clasificación de los métodos empleados en la
implementación de RNA´s.
17
La flexibilidad se refiere a las facilidades que ofrece el sistema para modificar el
modelo de RNA.
la eficiencia hace referencia al grado de adaptación de la red con la aplicación en
términos de autonomía, velocidad de cálculo y densidad de empaquetamiento (neuronas
artificiales por área) .
EFI CI ENCI A
FLEXI BI LI DAD
NEUROCOMPUTADORAS
NEUROCOMPUTADORAS
DE USO ESPECI FI CO
NEURO CHI PS
MI XTOS
A/ D
ANALOG
NEUROCOMPUTADORAS
DE USO GENERAL
MATRI S DE
PROCESADORES
DI GI TAL
SI MULADORES SOFTWARE
PARA PC USO GENERAL
PC PARALELO
CONVENCI ONAL
PC SERI E
CONVENCI ONAL
TARJ ETAS
COPROCESADORES
NEURO CHI PS
Fig.4.6 Diferentes métodos de implementación de RNa’s
La ventaja que presentan las RNA´s a otros tipos de controladores es que estas aprenden
el funcionamiento deseado mediante ejemplos sin necesidad de un modelado
matemático que represente la tarea a realizar, incluso las RNA´s tienen capacidad de
aproximar funciones no lineales complejas .
4.2.1 BREVE HISTORIA DE LAS RNA´S
La primera acción encaminada a emular las neuronas biológicas se dio en 1943 cuando
Warren McCulloch, un neurofisiólogo, y un matemático,
alter Pitts, escribieron un
documento referente a la manera en la que podían funcionar las neuronas en el cual
consideraron la salida de las neuronas de forma binaria].
Para reforzar este concepto de las neuronas y como trabajan fue escrito un libro por
Donal Hebb, La organización del comportamiento (The Organization
Behavior), el
cual fue escrito en 1949 .
18
Este trabajo resaltó el hecho de que, las rutas de comunicación (sinapsis) de las
neuronas se fortalecen en el grado en que son empleada
esto es, en alguna forma
desarrollaban nuevas habilidades .
En 1957 Jhon Von Neumann sugirió imitar las funciones simples de las neuronas
empleando relevadores de telégrafo o tubos de vacío. En el mismo año, Frank
Rosenblatt, comenzó a trabajar con el Perceptron. Éste era el modelo de una red de
neuronas simple que considera la salida de las neuronas como salida binaria . El
Perceptron, que resulto de estas investigaciones, fue construido en hardware.
Posteriormente Minsky y Papert mostraron las limitaciones que presentaba el
Perceptron ya que por la limitación de su salida binaria solo podía separar un espacio de
muestras en dos clases .
En 1959 Bernard Widrow y Marcian Off de Stanford desar ollaron modelos que ellos
llamaron ADALINE y MADALINE. Estos modelos fueron nomb
os de
esta manera por el uso de múltiples elementos de adaptación lineal (Multiple ADAptive
LINear Elements) y a diferencia del Perceptron incluían un peso de conexión con
entrada constante de1 (sesgo o bias).y empleaba una función de activación bipolar .
Durante las siguientes dos décadas hubo un aletargamie
en el desarrollo de las
RNA´s y a principios de los 80´s se presentaron dos aportaciones que nuevamente
despertaron el interés de los investigadores, uno de ellos fue el trabajo de Hopfield en el
cual aproximaba el funcionamiento de las neuronas desd el punto de vista energético, y
el otro trabajo fue la presentación del algoritmo de a rendizaje de Retro propagación
empleado en una red Perceptron de capas Múltiples, propuesto por Verbos .
4.2.2 CARACTERÍSTICAS DE LAS RNA´S
Las RNA´s tienen características que no se encuentran presentes en el modelo de
computador propuesto por Von Neumann, algunas de estas son .
• Procesamiento Paralelo
• Calculo y representación distribuida
• Habilidad de aprender Socráticamente (por medio de ejemplos)
• Habilidad de generalizar Adaptabilidad
• Tolerancia a fallas
• Las conexiones en la RNA almacenan la información del
rón de
entrenamiento
19
4.2.3 NEURONA ARTIFICIAL
El elemento básico de una RNA es la Neurona Artificial (también conocida como; PE
por sus siglas en Ingles, Process Element, elemento de procesamiento básico ó
procesador elemental).
La neurona artificial o PE propuesto por McCullon y Pitts se puede observar en la figura
4.7 y es una de las más simples.
b ( u mbr a l )
pe s o1
ENTRADAS
pe s o2
s a l i da de l a
ne ur o na
e nt r a da
a la
ne ur o na
u
o
umbral
o
o
pe s o
n
Fig.4.7 Modelo McCullon-Pitts de una neurona
Se presentan varias señales de entrada a la neurona, y cada una de estas señales es
multiplicada por un valor (peso de conexión). En el caso más simple (este caso), estos
productos solo son sumados, y alimentados a través de na función de transferencia de
límites rígidos para finalmente generar un resultado binario. i la entrada a la neurona
es menor al valor de Umbral entonces la salida será 0 en caso contrario será 1. En este
modelo las conexiones de entrada (flechas) modelan los axónes y dendritas de una
neurona biológica, los pesos de conexión a las sinapsis, y l
unción de límites rígidos a
la actividad del soma. Este modelo presenta una gran cantidad de simplificaciones que
no reflejan el verdadero funcionamiento de una neurona biológica. El modelo
matemático de la neurona McCulloc -Pitts está dado por
n
u = ∑ wi yi + q
Ec.4.17
i =1
Donde:
u = Valor de la señal de salida de la neurona, regularme e se considera igual al nivel
de activación de la neurona.
w = Peso de la entrada j.
20
y= Valor de señal de entradaj.
? = Valor de umbral o sesgo de la función.
n = Numero de entradas a la neurona
La implementación de una neurona artificial también es posible mediante estructuras de
redes que utilizan otras funciones de sumatoria o dife entes funciones de transferencia,
el caso general se ve representado en la figura 2.7
o o o o o o o o o
Y1
W1
Func i on de
e nt r ada
Func i on de
ac t i vac i on
Func i on de
s al i da
u
Wn
Yn
Nu c l e o d e n e u r o n a
Fig.4.8 Modelo de Neurona artificial Genenral
Las funciones de entrada más empleadas y conocidas son :
a) sumatoria del producto de los valores de entrada por sus respectivos pesos.
n
∑w y
i
i
Ec.4.18
i=0
b) Productoria de las entradas pesadas (producto de todos los valores de entrada,
multiplicados por sus correspondientes pesos).
n
∏w y
i
i
Ec.4.19
i=0
c) Máximo de las entradas pesadas. Solo considera el val r de entrada más fuerte,
max i ( wi y i )
Ec.4.20
21
d) Distancia euc lidiana.
n
∑=0 ( y
j
− wij ) 2
Ec.4.21
j
Una neurona artificial puede estar activa o inactiva; sto significa que tiene un estado de
activación. Algunas neuronas artificiales pueden encontrarse en un valor de
vación
dentro de un conjunto determinado
La función de activación calcula el estado de activida de una neurona, esta es una
función del valor proporcionado por la función de entrada (valor de salida en función de
entrada). Las funciones de activación más empleadas se mencionan en seguida, y
muestran en la figura 4.8:
McCullock y Pitts (1943) son reconocidos por el diseño de la primera red neuronal.
La activación de una neurona es binaria. Es decir, la neurona se dispara (la activaci´on
es uno) o no dispara (la activaci´on es cero).
Las neuronas son una red de McCulloch-Pitts se conecta directamente por los caminos
de pesos sinápticos.
La función activación pa ra
la un id a d y es
f (Yin) = 1, i f Yin = ?
e ls e , 0
Si el peso en un camino es positivo el camino es excitatorio, en otro caso es inhibitorio.
Todas las conexiones excitadoras en una neurona particular tienen el mismo peso,
aunque diferente conexi´on de pesos que pueden ser entradas a neuronas diferentes.
Cada neurona tiene un threshold fijo. Si la entrada neta en la neurona es mayor que el
threshold, la neurona se dispara.
22
El threshold es fijo para cualquier entrada inhibitoria no cero que impedir a la neurona
se dispare.
4.2.4 Diseño de un Neurocontrolador
Las redes neuronales han sido utilizadas en control por su capacidad de aproximar
cualquier función no lineal, como lo demuestra el teorema de Funahashi. Se puede
entrenar a una red neuronal para que se comporte como un controlador no lineal. Es as í
que nacen los Neurocontroladores. Que es la aproximación de un controlador no lineal,
por lo que su análisis es muy similar a los sistemas de control no lineales fig.4.9
Fig.4.9 Red ne uronal como controlador
Red Neuronal como Polinomio Multivariable
Considere la red mostrada en la Figura. 4.10 La red presenta la función de activación
sigmoide logistic en la capa oculta.
La expansión de la serie de Taylor :
23
Agrupando términos.
Fig.4.10 Red con sigmoide logistic
Estructuras de Control Neuronal
a) Esquema de control adaptivo
24
b) Control optimo
c) Esquema de control modelo referencia
Fig.4.11 Configuración de sistemas de control con red
uronal
25
4.3 DESCRIPCION DEL SISTEMA PPV
En la implementación del sistema se emplea una combina ión de elementos software y
hardware, ver figura 4.12
P C:
M AT L A B
L a b VI E W
FUENTE DE
ALIMENTACION
-12V; 12V;+5V
T AR J E T A D E
AD Q UI SI CIO N
D E D AT O S
I NTERFAZ DE
POTENCI A
PUEN TE H
PLANTA DE
POSI CI ON Y
VELOCI DAD
PPV
CI R CU I T O D E
M E DID A
P O SI CIO N Y
VE L O CI D AD
Fig.4.12 Diagrama del sistema PPV
Para la implementación de las RNA´s empleadas en el control del péndulo invertido se
utiliza la caja de herramientas Neural Networks Toolbox de Matlab 7.0 (en adelante
Matlab 7.0 será nombrado Matlab). La interfaz para la
quisición y envío de datos
desde el software hacia “el mundo real” es la tarjeta de adquisición de datos NIDAQ
PCI 6221 de National Instruments o desde la NIDAQ USB 6008/6009 .La DATA debe
ser procesada y posteriormente evaluada usando las herramientas del software de
simulación de LabVIEW o de Matlab
Debido a las limitaciones de tensión y corriente de salida que maneja la tarjeta de
interfaz es necesario implementar una interfaz de potencia ( puente H), para
proporcionar la tensión y corriente necesaria tanto para el motor de c.c.
26
4.3.1 RNA´S EN MATLAB.
Matlab cuenta con una caja de herramientas (Neural Network Toolboox) que permite
diseñar RNA´s. La implementación en Matlab de una RNA ara funciones de control
puede realizarse de tres formas:
•
Mediante código desde la línea de comandos o desde el spacio de trabajo de
Matlab (workspace),.
•
Utilizando el conjunto de bloques incluidos en el tool ox de Control Systems
de
•
Neural Networks Blockseten Simulink .
Empleando la Interfase Grafica de Usuario (GUI por sus siglas en ingles) de
RNA´s,
la cual se puede desplegar empleando el comandonntool (Neural
Network Toolbox).
Al crear una RNA mediante el espacio de trabajo de Matlab es necesario introducir los
comandos adecuados para obtener la arquitectura deseada en la RNA. Esta forma de
diseñar RNA´s permite personalizar la arquitectura y presenta la ventaja de poder
emplear funciones de entrada, de activación y de salida definidas por el usuario o, una
combinación de las ya implementadas en el propio Matla .
Empleando el conjunto de bloques en Control Systems se puede seleccionar una de las
opciones de RNA´s ya diseñadas para controlar sistemas la desventaja de esta
herramienta es que para la versión de Matlab 7.0 y ant riores no es posible generar el
código necesario para ejecutarla en tiempo real mediante Real Time Workshop o Real
Time Windows Target
Por último, la tercer forma de diseñar una RNA es mediante la GUInntool. Esta
herramienta nos permite crear RNA´s de distintas arqui cturas mediante la selección en
un menú de la arquitectura deseada. Para este trabajo
selecciono la GUInnt ool para
crear las RNA´s empleadas en el control del PIS.
Para información de cómo emplear las primeras dos formas de crear RNA´s en Mat b
se puede consultar el Manual de Usuario de Neural Networks Toolbox .
Cuando se crea una RNA en Matlab, las capas generadas incluyen la combinación de:
pesos, operaciones de multiplicación y suma (en este caso realizadas como un producto
entre vectores(W*P), el sesgo b, y la función de transferencia F . El arreglo de entradas
(el vector P) no se considera parte de la capa, por lo que será necesario crear el vector
correspondiente, si es que se desea emular la RNA crea a. Cuando se emplea la
notación abreviada de RNA´s , las dimensiones de la matriz se muestran debajo de los
elementos matriciales, y se pueden observar en la vista (view) de la RNA creada.
27
4.3.1.1 ESTRUCTURA DE LOS DATOS
Existen dos clases de neuronas las estáticas (no tiene realimentación o retardos de
tiempo) y las dinámicas (contiene retardos de tiempo). Cada una de ellas presenta
requerimientos distintos en el formato de sus datos de entrada. Existen dos tipos básicos
de vectores de entradas: aquellos que son concurrentes (ocurren al mismo tiempo, su
secuencia de tiempo no importa), y aquellos que suceden de forma secuencial con
respecto al tiempo. Para los vectores concurrentes, el orden no importa, p ra los
vectores secuénciales el orden es de gran importancia.
La forma más simple de simular una RNA se presenta cuando la RNA e estática. En
este caso no es necesario tomar precauciones respecto a si el vector de entradas ocurre
en una secuencia de tiempo determinada, y las entradas se pueden tratar como
concurrentes. Además se puede simplificar el problema
umiendo que la RNA tiene
solo un vector de entrada.
Cuando una RNA contiene retardos de tiempo, la entrada a la RNA debe ser
normalmente una secuencia de vectores de entrada que o urren con un determinado
orden de tiempo. Las entradas secuénciales son present
a una RNA como si fueran
elementos de un arreglo de celdas, por ejemplo:
P = {y1
y2
... y N }
Ec.4.22
Al introducir de esta manera la entrada, la RNA produce un arreglo de celdas
conteniendo una secuencia de salidas. Al no
asignar una condición inicial a los
retardos de tiempo empleados en una RNA, Matlab asume que son cero.
En el caso especial que se desee simular la respuesta de la RNA con secuencias distintas
y al mismo tiempo, la RNA se podrá confrontar con un con unto concurrente de
secuencias. En este caso la entrada será un arreglo de celdas, donde cada elemento del
arreglo contiene los elementos de cada secuencia que ocurre al mismo tiempo, por
ejemplo, para dos secuencias distintas:
[
P = {y1, ±1
][
y1, ±2 y 2 , ±1
]
[
y 2 , ±2 [..... ...] y N , ±1
La salida que se obtendrá será de tal forma que la pri
y N , ±2
]}
Ec.4.23
columna de cada matriz
contendrá la secuencia de salida producida por la primera secuencia de entrada, y así
sucesivamente. No existe interacción entre cada secuen
concurrente y el
28
funcionamiento de la RNA será como si cada una de las secuencias se presentara a
distintas RNA´s ejecutándose en paralelo.
4.3.2 RED MADALINE
Cuando se emplea la regla LMS (también conocida como Regla Widrow-Hoff) para
entrenar una RNA tipo Madaline, esta permite aumentar
potencial de la RNA en su
aplicación al poder manipular la colocación de la frontera de decisión en la clasificación
de sus patrones de entrenamiento. En Matlab se emplea dicha regla de aprendizaje por
omisión al crear una RNA Adaline o Madaline (comando en Matlab:learnwh). En la
GUInntool solo es posible crear RNA´s Madaline de una
la capa, esto debido a que
cualquier RNA Madaline compuesta por varias capas lineales siempre pu e ser
sustituida por una RNA equivalente compuesta de una sola capa lineal.
4.3.2.1 CREACION DE UNA RNA TIPO MADALINE MEDIANTE LA
GUInntool
Para acceder a la GUI de RNA´s es necesario introducir el comandonntoo l en el
espacio de trabajo de Matlab, lo que permite acceder a la ventana Administradora de
RNA´s (Network/ Data Manager) mostrada en la figura 4.13.
Fig. 4.13 Ventana Networ k/ Da ta Mana ger de la GUInntool.
29
La GUInntool, permite:
•
Crear una RNA nueva mediante la opción New Network…
•
Crear vectores o matrices mediante la opción New Data. Los datos de los
vectores o
matrices pueden ser ya sea de entradas, salidas desead , valores
para retardos de tiempo empleados en las entradas, valores para los retardos de
tiempo empleados en las capas ocultas o de salida, valores de salidas, o valores
de error.
•
Importar vectores o matrices de datos desde el espacio de trabajo de Matlab o
desde
un archivo almacenado en algún dispositivo de memoria mediante la
opción Import…
•
Exportar datos al espacio de trabajo de Matlab o almacenar estos datos en algún
dispositivo de memoria presente en el sistema utilizando la opción Export…
•
Cuando ya se cuenta con una RNA en el administrador se puede: observar su
diagrama representativo (View), Eliminarla (Delete), inicializar sus pesos
(Initialize…),
• Simular la RNA previamente entrenada (Simulate…), entrenar una RNA creada
o definida en el administrador de RNA´s (Train…) o adaptar (actualizar) los
pesos y sesgos de una RNA´s previamente entrenada (Adapt…)
La opciónSimulate..Toma los valores de un vector de entradas previamente
definido en la ventana Network/Data Manager y genera
alida correspondiente
de la RNA.
Al activar la opción New Network…se despliega la ventana Create New Network
(mostrada en la figura 3.3), la cual permite seleccion r la arquitectura deseada para la
nueva RNA.
Fig. 4.14 Ventana Cr ea te Ne w Ne tw ork
30
La ventana Create New Network permite introducir los p
dependiendo del tipo de RNA a crear. Los parámetros a
etros necesarios
nsiderar en la creación de una
RNA tipo Madaline se pueden observar al seleccionar la opción Linear Layer (design)
contenida en el menú Network Type. Dichos parámetros se pueden observar en la figura
4.15.
En la ventana Create New Network desplegada se puede introducir: el nombre de la
RNA a crear (en el espacio Network Name), los valores para los datos de entradas (en el
espacio Input data), y de salidas deseadas (en el espacio Target data). La introducción
de los datos de entradas y salidas deseadas puede realizarse de manera manual en el
espacio correspondiente o extrayendo estos de algún ve or o matriz de datos
previamente declarado en la ventana Network/Data Manager mediante los menú
desplegables Set to imputy Set to target
Figura 4.15 Ventana Cre a te New Ne t work para una RNA tipo Adaline o Madaline.
El formato del elemento que contenga los datos de entradas y de salidas deseadas
definirá la cantidad de entradas a la RNA y la cantidad de neuronas lineales empleadas
en la capa de salida (cada renglón en el vector o matr
de datos correspondiente
representa una entrada o neurona de salida).
Después de introducir los datos de valores de entrada
de salida deseados se puede
observar la RNA (mediante la opciónView) o crearla y colocar en la ventana
Network/Data Manager(mediante la opciónCreate). En la figura 4.16 se muestra una
RNA tipo Madaline de cuatro entradas y dos neuronas lineales
31
Fig.4.16 Diagrama representativo de una Red lineal creada en la GUIn nto ol.
La GUI tiene su propio espacio de trabajo en la memoria del sistema el cual esta
ubicado fuera del espacio de trabajo de Matlab. Debido a esto, cuando se emplea una
GUI, se deben exportar los resultados de la GUI a la línea de comandos o espacio de
trabajo de Matlab. De la misma manera si se desea emplear algún valor del espacio de
trabajo de Matlab se deben Importar dichos datos.
Una vez que se ha creado una RNA y la ventana Network/ ata Manager se encuentra
activa, se puede, observar la RNA, entrenar, simular y xportar los resultados finales al
espacio de trabajo de Matlab.
4.3.2.2 FILTRO LINEAL DE RESPUESTA A IMPULSOS FINITOS
Para hacer uso pleno de la funcionalidad de una RNA ti
Madaline se requiere emplear
un conjunto de retardos de tiempo (en Matlab Tapped Delay Line, TDL) de tal forma
que se convierta esta RNA en un filtro adaptativo. En
campo del Procesamiento de
Señales a dicho filtro se le conoce como Filtro Lineal de Respuesta a Impulsos Finitos
(FIR por sus siglas en ingles). De esta forma el vecto de entradas a la RNA esta
conformado por el valor de la señal actual yn-1 valores pasados de dicha señal (siendo n
la cantidad de entradas en la RNA tipo Madaline).
La salida de una RNA Madaline modificada de esta forma seria la siguiente:
N
u (1) = ∑ wij * u ( t − i + 1) + b
Ec.4.24
j
Donde:
R es la cantidad de entradas a la RNA
t es el ciclo actual de muestreo, t-1 seria el ciclo anterior.
32
4.3.3 RNA TIPO BP
La RNA tipo BP estándar es una RNA entrenada mediante una generalización de la
Regla de Aprendizaje de Widrow-Hoff y dicha regla de entrenamiento puede aplicarse a
RNA´s de capas múltiples y con funciones de salida no ineales, con la única condición
de que sean diferenciables.
El proceso general para implementar una RNA de este tipo requiere cuatro pasos:
•Adquisición de datos de entrenamiento
•Creación de la red
•Entrenamiento de la red
•Simulación de la respuesta de la red ante nuevas entr das
4.3.3.1 CREACION DE UNA RNA TIPO BP MEDIANTE LA GUInntool
La GUInntool permite crear RNA´s tipo BP con distintas
uitecturas. La arquitectura
de la red BP más empleada es la RNA tipo BP de capas múltiples con pre alimentación
(Feed- Forward Backpropagation), otra de ellas empleada en esta tesis es la RNA BP
con retardos de tiempo.
Para crear una RNA tipo BP de capas múltiples con prealimentación es necesario
seleccionar la opción Feed-forward backprop del menú Network Type en la ventana
Create New Network. Al realizar esta acción se desplie
la ventana mostrada en la
figura 3.6 la cual muestra los parámetros a introducir con el fin de personalizar la RNA.
Fig. 4.17 Ventana desplegada para crear una RNA tipo BP de pre alimentación .
33
El primer dato a introducir con el fin de personalizar
RNA BP es el nombre que se le
asignara, esto dentro del espacio Network Name:, Matla
le asigna un nombre por
omisión (ejemplo:net work1).
El área Network Type: además de mostrar un menú para la selección de la arquitectura,
cuenta con sub-menús que permiten personalizar la arquitectura seleccionada. El
primero de ellos, Input ranges:, permite definir los limites de los valores en las señales
de entrada. Estos valores pueden ser asignados automáticamente por Matlab, ubicando
los valores máximo y mínimo de un vector previamente declarado como de entradas en
la ventana Network/Data Manager.
La dimensión del vector de entradas debe ser: dos columnas, una para el límite inferior
y otra para el límite superior, y la misma cantidad de renglones como de entradas que se
hayan declarado en el espacio Number of layers:. El numero e nodos en la capa de
entrada será la cantidad introducida en el espacio Number of layers:.
Durante el entrenamiento de una RNA BP los pesos y sesgos son ajustados de forma
interactiva de tal forma que se minimice la función de ejecución de la RNA. La función
de ejecución por omisión para la red con pre alimentación es la del error medio al
cuadrado (MSEpor sus siglas en ingles), esto es: el error cuadrado promedio entre las
salidas de la redu y las salidas deseadas t (ver figura 4.18 en la opción Performance
función:). Otras opciones de funciones de ejecución son
MSEREGy SSE. Esta opción determina la forma en la que los pesos de la RNA son
ajustados, para una descripción de la manera en la que trabajan las opciones MSERE Gy
SSE .
Fig. 4.18 RNA BP personalizada
34
En el entrenamiento de una RNA BP el formato de las en radas puede ser como un solo
vector o una matriz que agrupe un conjunto de vectores de entrada en el cual cada
elemento de entrada ocupa un renglón (conocido como simulación por lotes).
Para entrenar una RNA BP se requiere de vectores que contengan las entradas a la RNA
y los valores correctos de las salidas correspondientes.
Al diseñar una BP se puede seleccionar la función de transferencia a emplear tanto en la
capa oculta como en la de salida.
La selección de función de transferencia a utilizar, s
realiza dentro del espacio
Propiedades de capas (Properties for:) en el menú Transfer Function: (ver figura 4.18).
las posibles opciones son tres: Función Lineal (PURELIN, figura 1.8a), Tangente
Sigmoidea (TANSIG, figura 1.8b) y Sigmoidea Logarítmica (LOGSIG, figura 1.8c).
En el menúProperties for: la capa Layer 1 representa la capa oculta y Layer 2 la capa de
salida de la RNA BP creada. De la misma forma se puede definir el numero de neuronas
en la capa seleccionada dentro del espacio en blanco Number of neurons:.
El algoritmo a emplear para la etapa de entrenamiento
selecciona en el menú Tra i
ning function:(ver figura 4.19), como se menciona anteriormente la RNA BP estándar
es la que emplea una generalización de la Regla de Aprendizaje de Widrow-Hoff (en
este caso la opción TRAINGD) la cual actualiza los pesos y sesgos de la RNA en la
dirección en la cual la función de ejecución (Performance function:) disminuye más
rápidamente.
Existen siete parámetros de entrenamiento asociados con el entrenamiento de gradiente
descendente, ver figura 4.19 .
El parámetrolr (learning rate) es un factor de entrenamiento que multiplica el gradiente
negativo de la función de ejecución, y determina la magnitud de los cambios a realizar
en los pesos y sesgos de la RNA BP.
La opción show determina la cantidad de iteraciones del algoritmo a es de desplegar su
estado actual (se le puede asignar el valor Na N para anular dicho despliegue).
La opción epochs determina la cantidad de iteraciones a realizar antes de parar el
entrenamiento.
El entrenamiento podría parar antes de realizar la cantidad de iteraciones determinadas
en epochs si el valor de la función de ejecución toma un valor menor al del parámetro
goal, si el valor del gradiente es menor al valor introducido e
ingrad, o si el tiempo
de entrenamiento es mayor que el consignado en el espacio time (en segundos).
35
El parámetromax_fail está relacionado con técnicas de optimización del paro de
entrenamiento.
Fig. 4.19 Ventana Training Parameters en la opciónTrain.
Después de haber personalizado la RNA creada se puede eleccionar la opción Create
para generar en la ventana Network/Data Manager el objeto que emula la RNA BP con
los parámetros introducidos. Estando lista para inicializar sus pesos (Initialize…),
entrenarse (Train…), simularse (simulate…) ó actualizarse (adapt…).
En la tabla 41 se muestran los algoritmos de entrenamiento disponible para una RNA
BP.
Func ión Ma t la b
RAI NGD
Descripc ión
Los pesos y sesgos de la RNA se actualizan en la dirección del
gradiente
negativo de la función de ejecución. Respuesta lenta
TRAI NGDM
Los pesos y sesgos de la RNA se actualizan en la dirección del
gradiente negativo de la función de ejecución. Se emplea un nuevo
parámetro (momento) que permite esquivar mínimos locales. De
esta forma la actualización es función del último cambio
realizado y del gradiente
36
4.3.4 ENTRENAMIENTO DE UNA RNA
Para entrenar la RNA creada, primero se debe seleccion
cha RNA en la ventana
Network /Data Manager. Posteriormente se presiona el b ón Train. Al hacer esto se
activa una nueva ventana con el titulo Network:Nombre de la RNA, vea la figura 4.20.
Dicha ventana permite observar datos concernientes al stado de la RNA, tal como
valores de
inicialización, parámetros
de simulación, y su arquitectura. La
teclaTraincontiene opciones que permiten definir los d os de entrada y salida mediante
la ventanaTraining
Info, figura 4.21. En dicha ventana se puede observar en el área de Training Results que
el archivo con los datos de salida y errores tienen in
do al inicio el nombre de la
RNA. Esto permite identificarlos fácilmente si se desea exportarlos al espacio de trabajo
de Matlab.
Fig. 4.20 Ventana con información del proceso de entrenamiento nnntool.
Para definir los parámetros que regirán durante el ent enamiento, tal como numero de
épocas, y error final es necesario dirigirse a la ventana Training Parameters que cuenta
con apartados que permiten definir dichos valores, figura 4.20.
Después de haber definido los parámetros adecuados es
ible activar el botón Train
Network el cual iniciara la ejecución de dicha tarea.
Para verificar que una RNA ha sido entrenada adecuadamente es necesario retornar a la
ventana Network/ Data Manager y seleccionar la opción Simulate… del apartado
Networks Only, dicha opción activara la ventana de la
y en ese momento se
selecciona la opción Simulate…, en la ventana desplegada por esta opción se puede
37
modificar el nombre del archivo que almacena los datos e salida, así como los valores
de entrada y su origen, figura 4.21 . Después de hacer las modificaciones pertinentes se
presiona el botón Simulate network ubicado en la parte inferior derecha.
Fig. 4.21 Ventana para introducir los datos a emplear en la simulación de una RNA
4.3.5 EXPORTANDO DATOS A LA VENTANA DE TRABAJO DE MATLAB
Para exportar los datos generados por una RNA con destino el espacio de trabajo de
Matlab es necesario retornar a la pantalla Network / D
Manager, figura 4.22. Al estar
en la ventana Network / Data Manager se puede seleccionar los datos que se desea sean
exportados al espacio de trabajo de Matlab y seleccionar el botónExp o rtlo cual dará las
opciones Exporto Save from Network / Data Manager, figura 4.22. Si so lo se desea
exportar los datos al espacio de trabajo de Matlab se
cciona la opciónExpo rt. De
otra manera la segunda opciónSa ve almacenara los datos en un archivo MAT.
Fig. 4.22 Ventana para exportar datos desdenntoo l
38
LIMPIAR LA VENTANA NETWORK / DATA MANAGER
Para limpiar la ventana Network/ Data Manager es necesario seleccionar cada una de las
variables presentes en la ventana y activar la opción Delete,. De otra manera será
necesario salir de Matlab, para volver a emplear el comandonntool y generar una
ventana limpia.
IMPORTANDO DATOS DESDE EL ESPACIO DE TRABAJO DE MATLAB
En la ventana Network / Data Manager existe la opción Import la cual permite importar
los datos de una variable ubicada en el espacio de trabajos de Matlab o en un archivo de
unidad disco y generar su variable en la ventana Netwo k / Data Manager, durante este
proceso se le puede asignar un nombre distinto a la variable generada en la ventana
Network/ Data Manager.
4.3.6 SIMULINK
Para crear en S imulink el modelo de una RNA creada en la caja de herramient
ool
y previamente exportarla al espacio de trabajo de Matlab, se emplea el comando
gensim(net,tm) donden et es el nombre de la RNA a la cu l se le desea generar su
modelo y tm es el tiempo de muestreo del bloque a gen ar, el valor por omisión para el
tiempo de muestreo es de -1, esto es muestreo continuo y es aplicable solo cuand la
RNA no contiene retardos de tiempo en alguna de sus cap s.
3.2.1 USO DEL BLOQUE TAPPED DELAY
El bloque Tapped Delay puede encontrarse en la ventana Simulink Library Browser
dentro de la libreríaDiscrete , figura 4.23. Este bloque nos permite retardar una señal
escalar durante múltiples periodos de muestreo y retorna todos los valores
correspondientes a los retardos.
El periodo de tiempo entre cada una de las muestras se introduce mediante el parámetro
Sample time :, ver figura 4.24. La cantidad de retardos de tiempo a aplicar en la señal se
introduce en el espacio Numbers of delays:. El bloque
cibe una entrada escalar y
genera una salida por cada retardo de tiempo. El orden en los elementos del vector de
salida se determina en la lista de opciones Order output vector starting whit:. Las dos
opciones posibles son Oldest que ordena los elementos del vector de salida c menzando
39
con la el valor más antiguo de la señal y finalizando on el más actual y New es t que
los ordena comenzando de forma contraria. Los valores en la salida del bloque para el
primer periodo de muestreo se especifica en el parámet o Initial condition. La opción
Include current input in output vector permite incluir los valores actuales de la señal
en el vector de salida.
Fig. 4.23 Ventana con librerías de bloques en Simulink
Fig. 4.24 Parámetros de ajuste para un bloque de retardos de tiempo
.
40
4.3.3 REAL TIME WORKSHOP
Real-Time Workshop(RTW) es una extensión de capacidades par Simulink y Matlab
que permite compilar y generar automáticamente el código fuente de modelos
desarrollados en
Simu link. De esta manera se pueden crear aplicaciones
software en tiempo real.
Algunos de los principales componentes y objetos que manejaRTW son:
• El Generador de Código Simulink (Simulink Code Generator), el cual
automáticamente genera el código C que representa exactamente al modelo
desarrollado en Simulink
• El Creador de Proceso (Make Process), el Creador de Proceso permite construir
aplicaciones con especificaciones particulares en la compilación y conexión del
código generado.
• Modo Externo de Simulink (Simulink External Mode), permite la comunicación
entre Simulink y un modelo que se este ejecutando en tiempo real. Mediante esta
opción se puede ajustar algunos parámetros de ejecución, de almacenamiento de
datos, y observar el modelo mediante la ventana deSimulin k.
• Soporte de Dispositivos (Targeting Support), mediante
ta herramienta se
pueden emplear una gran variedad de drivers incluidos dentro deRTW que
permiten diseñar aplicaciones para ejecutarse en dispos tivos o plataformas ya
declaradas enRTW. Se puede emplear una gran variedad d
tarjetas de
adquisición de datos de terceros fabricantes.
4.3.7.1 DESARROLLO DE UNA APLICACIÓN EN RTW
La forma en que se desarrolla una aplicación con RTW puede observarse en el
diagrama de flujo en la figura 4.25.
En primer lugar se deben determinar los parámetros ade uados de configuración
referentes a la ejecución del programa, al hardware a emplear, a la optimización
de las tareas y a parámetros deRTW. Para realizar esto se utiliza la ventana
Configuración Parameter la cual se puede acceder en el menú Simulation de
Simulink. La modificación de los parámetros de configuración afectara el
comportamiento de un modelo en la simulación y en la generación de su código.
Para una lista y descripción de las posibles opciones e configuración se puede
consultar el capitulo 2 del manual Getting Started .
41
Después de introducir los parámetros adecuados de configuración es conveniente
ejecutar la aplicación en forma de prueba antes de gen ra el código fuente. En la
ventana del modelo (Simulink) se puede elegir la opción Model Advisor del
menú Tools que permite ejecutar en modo de prueba un modelo y generar un
reporte con los parámetros de configuración así como diagnostico de eficiencia
en sus tareas.
I d e n t i f i c a c i o n de r e q u e r i mi e n t o s
pa r a l a s o p c i o n e s de c on f i g u r ac i o n
de l a a pl i c ac i o n
a j u s t e d e p a r a me t r o s
d e c on f i gu r a c i o n
Ej e c uc u i on de l a a pl i c ac i o n
si
Se r equi er e a j us t a r l a
c on f i g u r ac i o n
Ge n e r ar c o d i go
No
¿ Es c o r r e c t o e l c o d i g o ?
g e n e nr a r c o di g o
y u n p r o gr a ma d e e j e c u c i o n
Ve r i f i c ar e l p r og r ama de e j e c uc i o n
No
l os r e s u l t a d os e mi t an
l a s i mu l ac i o n
Si
l Gu a r d a n l os v al o r e s
d e c on f i gu r ac i o n
fin
Fig. 4.25 Diagrama de flujo para la creación de una aplicación en RT W .
Después de obtener un comportamiento adecuado en la ejecución del modelo se
puede proceder a generar el código del modelo, es probable que se desee solo
generar el código del modelo sin necesidad de generar
archivo ejecutable,
esto se puede realizar mediante la selección de la opc ón Generate code only de
la ventana Configuración Parámetros, en el menú Real-Time Workshop, figura
4.26. De esta forma se puede analizar si la respuesta del
ilado es la
adecuada o si es necesario realizar modificaciones. Si la respuesta es la adecuada
se puede proceder a crear el archivo ejecutable. Para
to se emplea la opción
Build presente en la ventana Configuración Parameter, de esta forma se crean los
archivos necesarios dentro del directorio de trabajo.
a mayoría de las
42
aplicaciones realizadas en Simu lin k requieren modificar el tipo de solucionador
(Solver options: Type) que indica el algoritmo a emplear durante la ejecución de
tareas
Fig. 4.26 Ventana parámetros de configuración para RT W.
Otra forma de verificar los parámetros pero en forma individual para cada uno de los
elementos del modelo es mediante la ventana Model Explorer ubicada en el menúView
en Simulink, ver figura 4.27. Mediante esta ventana se pueden analizar, modificar y
guardar parámetros correspondientes a un modelo deter
nado.
Fig. 4.27 Ventana para explorar modelos deSimulink.
Desde la ventana del modelo creado en Simulink se puede generar el código y su
archivo ejecutable mediante la opción Build Model… (ctrl.+B), en el submenú Real43
Time Workshop del menú desplegable Tools. Durante el proceso de compilación se
crean una gran variedad de archivos temporales y otros requerido
r RTW, estos son
colocados dentro del directorio de trabajo en una carpeta con el nombre del modelo.
Al crear una aplicación particular se requiere especificar el elemento final que la
ejecutara (System Target), RTW cuenta con algunas configuraciones ya definidas de tal
manera que al seleccionar alguna de ellas se realizan os ajustes adecuados en los
elementos a emplear, en este trabajo se utilizara Real-Time Window Target como
ambiente de ejecución del programa a realizar por lo que es necesario seleccionar la
opción rtwintlc del menú RTW
system target file en la ventana Configuración Parameters. Si se desea monitorear o
almacenar en un archivo alguna de las señales generadas durante la ejecución del
programa se puede seleccionar la opción Enable archiving presen e en la ventana
External Data
Archiving del submenú External Model Control Panel… del menútools de Simulink.
Después de generar el archivo de la aplicación en tiempo real es necesario habilitar la
opción External del menú Simulation en Simulink para poder ejecutarlo. Existen
parámetros de los bloques empleados en el modelo que pueden ser actualizados durante
su ejecución, otros requieren parar la aplicación para ser modificados y posteriormente
volver a generar la aplicación de tiempo real (Build) a que son parte de la estructura
del código generado.
4.3.8 REAL TIME WINDOWS TARGET
Real Time Windows Target (RTWT) es una caja de herramientas de Matlab que permite
extender las habilidades de Simulink, de tal forma que los modelos generados en
Simu link puedan ser empleados como interfase grafica entre el usuario y una aplicación
de tiempo real, permitiendo visualizar señales, ajusta parámetros y controlar la
aplicación en tiempo real .
La ventana que nos permite emplear bloques de conexión entre la aplicación software y
el sistema físico empleando RTWT se puede acceder en la ventana de librerías de
Simu link (Simulink Library Browser), figura 4.28, en el submenú Real-Time Windows
Target. En la ventana de bloques de RTWT se puede seleccionar alguna de los canales
de señal disponible en los dispositivos configurados.
tipo de bloque que pueda
utilizarse dependerá del dispositivo seleccionado. Los parámetros de configuración de la
señal seleccionada se pueden modificar en la ventana Block Parameters : Analog Input,
44
figura 4.29. Los parámetros comunes en una gran cantidad de tarjetas son: El tiempo de
muestreo (Sample Time:), que determinara la frecuencia con la que se realizan las
mediciones en las señales de entrada o salida y la uni ad de tiempo que se emplea es el
segundo.
El numero de entrada o salida que se pretende emplear, Input channels:, por si existen
varios canales de entrada o salida en el dispositivo seleccionado. El rango de valores en
las señales de entrada, Input range:. Y el tipo de dat
a la salida del bloque
seleccionado, Block output signal:.
Fig. 4.28 Ventana de la caja de herramientas RTWT
Fig. 4.29 Ventana de configuración para una entrada analógica en RTWT.
45
Block Parameters: se puede dar de alta alguna de las t
as de adquisición de datos
compatible conRTWT, dentro de la opción Install new bo
se puede seleccionar
alguna de las tarjetas de terceros fabricantes, figura 4.30, dentro de este menú se puede
seleccionar la tarjeta .
Fig. 4.30 Selección de tarjeta compatible conRTWT.
4.3.8.1 TARJETA DE ADQUISICION DE DATOS
En la computadora es posible tener dispositivos para la adquisición de datos de forma
sencilla. Estos se pueden instalar a través de los puertos de comunicación estándar
PCI/PXI, USB, RS232, etc. La forma en que convierten estos dispositivos las señales
analógicas a digitales esta basado en el teorema de Nyquist. De acuerdo a este teorema
el periodo de muestreo debe ser el doble de la frecuen ia mayor encontrada en la señal a
examinar para que ésta pueda ser reconstruida posterio
ente sin pérdida de
información. A la mitad de la frecuencia de muestreo se le conoce como frecuencia de
Nyquist. Teóricamente, es posible recuperar informació de una señal cuya frecuencia
sea cercana o menor al valor de la frecuencia de Nyquist .
La tarjeta PCI6014 de National Instruments es una herramienta utilizada para la
adquisición de datos. Puede ser usada, entre otras aplicaciones, como lectora de señales
proveniente de sensores ya que cuenta con 16 entradas
de 16 bits a una
46
frecuencia máxima de muestreo de 200 KHz. Estas y otras características técnicas de la
tarjeta se encuentran en la Tabla 4.2.
La conexión eléctrica entre la tarjeta PCI6014 y el PIS se realizaron empleando un
bloque de conexiones CB-68LPR de National Instruments adecuado para este tipo e
tarjetas ya que cuenta con 68 bornes de conexión. El cable de conexión entre la tarjeta y
el bloque de conexiones fue un cable blindado SH68-68-E
Tabla 4.2 Datos técnicos de la tarjeta PCI 6014 de National Instruments [ 4] .
4.3.9 INTERFAZ DE POTENCIA
La interfaz entre la tarjeta de adquisición de datos y el motor de c.c. de l PPV se realiza
mediante un amplificador de corriente lineal implement do con un amplificador
operacional (CI 1) y transistores BJT (T1 y T2). En el circuito se emplean dos
transistores con características eléctricas idénticas
PNP y el otro NPN) en
configuración emisor-seguidor, con los emisores conectados entre sí (ver figura 4.31).
El motor de c.c. es alimentado a través de los transis ores BJT. Cuando el control del
PIS requiere que el motor gire en un sentido y a ciert velocidad, el amplificador
operacional acopla la señal de la tarjeta 6014 con los transistores de potencia. Estos
amplifican la señal en corriente para mover al motor c n la velocidad y giro adecuado.
El amplificador operacional se realimenta (a través de R2) del voltaje que le llega al
motor para asegurarse que la señal recibida de la tarjeta se transfiera fielmente al motor.
La corriente que proporcionan los transistores al motor son tomados de una fuente de
voltaje adicional. Esta fuente de voltaje proporciona
voltaje de +V=12 V. y –V=-12
V a 3 amperios.
Con la finalidad de mantener un voltaje de alimentación constante en los sensores de
posición S1 y S2 se utilizó un diodo Zener. Como refer cia para la selección del diodo
zener y su resistencia limitadora de corriente R3 se puede consultar a Zbar .
47
4.3.10 SISTEMA PPV
Para convertir el movimiento oscilatorio del péndulo y el movimiento lineal de la base
en una señal eléctrica observable se emplearon dos potenciómetros, RV1 y RV2
respectivamente, tal como se muestra en la figura 4.31.
El potenciómetro es un elemento resistivo con un conta o móvil (cursor) que puede ser
posicionado en cualquier lugar a lo largo del elemento resistivo. La posición deseada se
logra mediante un vástago que está unido por un extremo al cursor y por otro hacia el
mecanismo que lo mueve. La relación posición angular/r sistencia de RV1 y RV2 es
lineal, es decir, la resistencia del potenciómetro est
istribuida de manera uniforme en
toda la carrera que recorre el cursor.
Para que el potenciómetro proporcione una señal de tens ón proporcional a la posición
del cursor éste se conecta como divisor de tensión. La ter inal de uno de los extremos
se conecta al voltaje fijo regulado por R3 y DZ1 y la del otro extremo a tierra. De la
terminal central con respecto a tierra se obtiene el voltaje pr porcional al ángulo de
giro. Para conocer la posición del péndulo se monitorea la señal S1 y para la posición de
R3
1
2
120
D1
R V1
R1
1
TI P3 1
Q1
MG1
R2
1
1
10K
LM7 41
+
-
10K
A
1
JH2
S2
+
1
2
RV2
3
JH1
S1
3
1
1
JH3
1
la base móvil la señal S2.
2
MOTOR SER VO
TI P3 2
Q3
JH4
1
1
Fig.4.31 sistema de PPV con sensor de Posición angular y desplazamiento
El elemento impulsor para desplazar la base móvil del PPV es un motor de corriente
directa de 12 V y 1 A. Para transformar el movimiento giratorio del motor a un
movimiento lineal (y permita el desplazamiento horizontal de la base móvil) se ha
utilizado un engrane y una banda dentada como se puede observar en la figura 4.32. La
48
carrera (longitud de movimiento horizontal) del la base móvil es de 30 cm.
aproximadamente. Esta base se mueve horizontalmente sobre una barra guía para
mantenerse en movimiento en un solo eje.
Fig.4.32
49