4.1 introduccion

42
8 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.

Upload: others

Post on 17-Jul-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4.1 INTRODUCCION

8

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.

Page 2: 4.1 INTRODUCCION

9

F Pi v ot e

Ba r r a

ang ul o

Pi e z a ba s e

LA PLANTA DE POSICION 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.

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 stintas configuraciones

mecánicas entre las cuales se puede mencionar la del P 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

Page 3: 4.1 INTRODUCCION

10

mo t o r :M2

Bar r a g ui a

So po r t e

mo t o r : M1

Ba nda t r a ns mi s i o n

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 .

Fig.4.2 Planta de Posición y Velocidad: PPV (sistema p ndulo Invertido simple con base móvil)

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 ).

4.1.1 MODELADO DE LA PLANTA DE POSICION 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

Page 4: 4.1 INTRODUCCION

11

mg

- N

mo ' '

X

F bx '

X'

mx ' '

P

- P

N

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

P y 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:

Ec.4.1

Haciendo lo mismo para el péndulo

2cos Ec.4.2

FNxbxM

senmlmlxmN

=++

−+=

&&&

&&&&& qqqq

Page 5: 4.1 INTRODUCCION

12

FsenmlmlxbxmM

xmmlmgsenNPsen

INlPlsen

xmlmglsenmlI

umlxbxmM

xmlmglmlI

=−+++

+=−+

=−

−=++

=−++

=−+

qqqq

qqqqq

qqq

qqq

f

ff

2cos)(

coscos

cos

cos)( 2

)(

)( 2

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

Posteriormente se suman las fuerzas que actúan perpendiculares al péndulo

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

Ec.4.5

Al combinar la ecuación 4.4 con la 4.5 se obtiene la ecuación dinámica del sistema

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 obtienen las siguientes ecuaciones:

Ec.4.7

Ec.4.8

Donde representa la señal de control o fuerza aplicada)

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

&&&&&&

&&&&

&&

&&&&

&&&&&

&&&&

u

4.1.2 DISEÑO DE UN CONTROLADOR PARA EL PPV

Page 6: 4.1 INTRODUCCION

13

22 )()()()(

)()()()()( 22

)()()()(

32

4

2

)]())([( 22

],,,[),,,( 4321

2

2

2

22

2

22

2

2

)(

0)(

0

0)(

)(

)(0

1000

0)()(

)(0

0010

0

0

0100

0001

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

Ec.4.10

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:

Ec.4.11

Donde:

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:

Ec.4.13

Ec.4.14

Ec.4.15

Se pueden obtener las siguientes matrices de estado:

ssmlXsmglssmlI

sUssmlsbXssXmM

sq

bmgls

q

mglmMs

q

mlIbs

sq

m

sU

s

mlmlImMq

DuCxy

BuAxx

xxxxxx

u

MmlmMI

ml

MmlmMI

mlIx

x

MmlmMI

mMmgl

MmlmMI

mlb

MmlmMI

glm

MmlmMI

bmlIx

x

ux

x

y

=Φ−Φ+

=Φ+++

−+

−+

+=

Φ

−++=

+=

+=

ΦΦ=

++

+++

+

ΦΦ

+++

++−

++++−

=

ΦΦ

+

ΦΦ

=

&

&&

&

&

&&

&&&

&

&

&

Page 7: 4.1 INTRODUCCION

14

Φ+Φ++= && 43211

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].

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.

bbxbxbF

Page 8: 4.1 INTRODUCCION

15

4.2 REDES NEURONALES ARTIFICIALES

Redes Neuronales Artificiales

RNA´s

Neurona Biológica

neurona

neurona biológica

cuerpo de la neurona núcleo o soma

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 (RNA’s).

Las 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.

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 , 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 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 contiene el .

Page 9: 4.1 INTRODUCCION

16

El 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 son las conexiones de entrada de la neurona.

Por su parte el es la "salida" de la neurona y se utiliza para enviar impulsos o

señales a otras células nerviosas. Cuando el esta cerca de sus células destino se

divide en muchas ramificaciones que forman 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

soma

dendritas

axón

axón

sinapsis

Page 10: 4.1 INTRODUCCION

17

Características del Cerebro Humano

neurona biológica

neurona artificial

simular el modelo de la RNA a nivel

software.

Modelo de la Neurona Biológica

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 generando lo que ahora se

conoce como , dicha emulación actualmente se puede realizar a nivel

software o hardware , en este trabajo se opto por

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 neurona

En la figura 4.6 se muestra una posible clasificación de los métodos empleados en la

implementación de RNA s.

Page 11: 4.1 INTRODUCCION

18

MATRI S DE PROCESADORES

TARJETASCOPROCESADORES

PC SERI ECONVENCI ONAL

FLEXI BI LI DAD

NEUROCOMPUTADORAS

ANALOG

NEUROCOMPUTADORASDE USO GENERAL

NEURO CHI PS

PC PARALELOCONVENCI ONAL

SI MULADORES SOFTWAREPARA PC USO GENERAL

DI GI TALMI XTOSA/ D

EFI CI ENCI A

NEUROCOMPUTADORASDE USO ESPECI FI CO

NEURO CHI PS

La flexibilidad

eficiencia

4.2.1 BREVE HISTORIA DE LAS RNA´S

se refiere a las facilidades que ofrece el sistema para modificar el

modelo de RNA.

la 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) .

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 .

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 .

Page 12: 4.1 INTRODUCCION

19

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 .

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

4.2.2 CARACTERÍSTICAS DE LAS RNA´S

Page 13: 4.1 INTRODUCCION

20

∑=

+=n

iii ywu

1

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.

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

Ec.4.17

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.

q

o

o

pe s o2

pe s on

b

u

s a l i da de l a ne ur o nae nt r a da

a l ane ur o na

umbral

( umbr al )

EN

TR

AD

AS o

pe s o1

4.2.3 NEURONA ARTIFICIAL

Fig.4.7 Modelo McCullon-Pitts de una neurona

Page 14: 4.1 INTRODUCCION

21

∑=

∏=

n

iii yw

n

iii yw

iii yw

0

0

)(max

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

Las funciones de entrada más empleadas y conocidas son :

a) sumatoria del producto de los valores de entrada por sus respectivos pesos.

Ec.4.18

b) Productoria de las entradas pesadas (producto de todos los valores de entrada,

multiplicados por sus correspondientes pesos).

Ec.4.19

c) Máximo de las entradas pesadas. Solo considera el val r de entrada más fuerte,

Ec.4.20

W1

o o

o o

o o

o o

o

Funci on de ent rada

Wn

Y1

u

Yn

Func i on de act i vac i on

Func i on de s al i da

Nu c l e o d e n e u r o n a

Fig.4.8 Modelo de Neurona artificial Genenral

Page 15: 4.1 INTRODUCCION

22

∑=

−n

jijj wy

0

2)(

d) Distancia euclidiana.

Ec.4.21

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 para la unidad y es

f (Yin) = 1, i f Yin = ? e ls e , 0

Si el peso en un 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.

camino es positivo

Page 16: 4.1 INTRODUCCION

23

El threshold es fijo para cualquier entrada inhibitoria no cero que impedir a la neurona

se dispare.

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 neuronal como controlador

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 :

4.2.4 Diseño de un Neurocontrolador

Red Neuronal como Polinomio Multivariable

Page 17: 4.1 INTRODUCCION

24

Agrupando términos.

Fig.4.10 Red con sigmoide logistic

Estructuras de Control Neuronal

a) Esquema de control adaptivo

Page 18: 4.1 INTRODUCCION

25

b) Control optimo

c) Esquema de control modelo referencia

Fig.4.11 Configuración de sistemas de control con red uronal

Page 19: 4.1 INTRODUCCION

26

P P V

C I R C U I T O D EM E D I D AP O S I C I O N Y V E L O C I D A D

T A R J E T A D E A D Q U I S I C I O N D E D A T O S

P C :M AT L A BL a b VI E W

P U E N T E H

FUENTE DEALIMENTACION-12V; 12V;+5V

PLANTA DE POSI CI ON YVELOCI DAD

I NTERFAZ DE POTENCI A

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

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.

Page 20: 4.1 INTRODUCCION

27

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.

Page 21: 4.1 INTRODUCCION

28

{ }=

[ ][ ][ ][ ]{ }±±±±±±=

NyyyP

NN yyyyyyP

...21

2,1,2,21,22,11,1 ........

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:

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:

Ec.4.23

La salida que se obtendrá será de tal forma que la pri 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

4.3.1.1 ESTRUCTURA DE LOS DATOS

Page 22: 4.1 INTRODUCCION

29

funcionamiento de la RNA será como si cada una de las secuencias se presentara a

distintas RNA´s ejecutándose en paralelo.

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.

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 Manager de la GUInntool.

4.3.2 RED MADALINE

4.3.2.1 CREACION DE UNA RNA TIPO MADALINE MEDIANTE LA

GUInntool

Page 23: 4.1 INTRODUCCION

30

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 Crea te New Ne twork

Page 24: 4.1 INTRODUCCION

31

La ventana Create New Network permite introducir los p etros necesarios

dependiendo del tipo de RNA a crear. Los parámetros a 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 Crea te New Ne twork 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

Page 25: 4.1 INTRODUCCION

32

∑ ++−=N

jij bituwu )1(*)1(

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.

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:

Ec.4.24

Donde:

R es la cantidad de entradas a la RNA

t es el ciclo actual de muestreo, t-1 seria el ciclo anterior.

4.3.2.2 FILTRO LINEAL DE RESPUESTA A IMPULSOS FINITOS

Page 26: 4.1 INTRODUCCION

33

4.3.3 RNA TIPO BP

4.3.3.1 CREACION DE UNA RNA TIPO BP MEDIANTE LA GUInntool

Fig. 4.17 Ventana desplegada para crear una RNA tipo BP de pre alimentación.

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

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.

Page 27: 4.1 INTRODUCCION

34

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

. 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

MSEREGy SSE

Page 28: 4.1 INTRODUCCION

35

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ú Trai

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).

Page 29: 4.1 INTRODUCCION

36

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 lab Descripc ión

RAI NGD 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

Page 30: 4.1 INTRODUCCION

37

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

Page 31: 4.1 INTRODUCCION

38

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

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

4.3.5 EXPORTANDO DATOS A LA VENTANA DE TRABAJO DE MATLAB

Page 32: 4.1 INTRODUCCION

39

LIMPIAR LA VENTANA NETWORK / DATA MANAGER

IMPORTANDO DATOS DESDE EL ESPACIO DE TRABAJO DE MATLAB

4.3.6 SIMULINK

3.2.1 USO DEL BLOQUE TAPPED DELAY

Tapped Delay Simulink Library Browser

ibreríaDiscrete

Sample time

Order output vector starting whit

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.

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.

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.

El bloque puede encontrarse en la ventana

dentro de la l , 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

:, 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 :. Las dos

opciones posibles son Oldest que ordena los elementos del vector de salida c menzando

Page 33: 4.1 INTRODUCCION

40

con la el valor más antiguo de la señal y finalizando on el más actual y New 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 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

.

es t

current input in output vector

Page 34: 4.1 INTRODUCCION

41

4.3.3 REAL TIME WORKSHOP

4.3.7.1 DESARROLLO DE UNA APLICACIÓN EN RTW

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

Simulink. 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.

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 Parameterla 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 .

Page 35: 4.1 INTRODUCCION

42

a j us t e de pa r a me t r o sde c onf i gur a c i o n

g e ne nr a r c o di g oy un pr o gr a ma de e j e c uc i o n

Si

I de nt i f i c a c i o n de r e que r i mi e nt o spa r a l a s o pc i o ne s de c onf i g ur ac i o nde l a a pl i c ac i o n

f i n

s i

Ve r i f i c ar e l pr og r ama de e j e c uc i o n

l Gua r da n l os v al o r e s de c onf i gur ac i o n

¿ Es c o r r e c t o e l c o di g o ?

l os r e s ul t a dos e mi t anl a s i mul ac i o n

Ge ne r ar c o di go

No

Ej e c uc ui on de l a a pl i c ac i o n

No

Se r e qui e r e a j us t a r l ac onf i g ur ac i o n

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.

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

Page 36: 4.1 INTRODUCCION

43

aplicaciones realizadas en Simulin 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ú Real-

Page 37: 4.1 INTRODUCCION

44

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.

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

Simulink 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

Simulink (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,

4.3.8 REAL TIME WINDOWS TARGET

Page 38: 4.1 INTRODUCCION

45

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.

Page 39: 4.1 INTRODUCCION

46

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.

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

4.3.8.1 TARJETA DE ADQUISICION DE DATOS

Page 40: 4.1 INTRODUCCION

47

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] .

La interfaz entre la tarjeta de adquisición de datos y el motor de c.c. del 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 .

4.3.9 INTERFAZ DE POTENCIA

Page 41: 4.1 INTRODUCCION

48

RV2

13

2S1RV1

13

2

R1

MG1

MOTOR SERVO

1 2

JH11

1

JH3

11

S2

JH41

1

JH2

11

Q1

D1

R3

R2

Q3

TI P31

10K

120

+

TI P32

10K

-LM741

A -+

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

la base móvil la señal S2.

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

Page 42: 4.1 INTRODUCCION

49

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