Está en la página 1de 12

PRÁCTICA DE LABORATORIO

CARRERA: INGENIERIA ELÉCTRONICA ASIGNATURA: INFORMATICA INDUSTRIAL.


NRO. PRÁCTICA:1 TÍTULO PRÁCTICA: Control de un motor de pasos con un grupo de
perceptrones.
OBJETIVO:
GENERAL
 Entrenar dos neuronas por medio de un perceptrón.
ESPECÍFICO
1. La primera se entrena para decidir la dirección (giro izquierda o derecha) en base de dos sensores
de luz.
2. La segunda se entrena para decidir la velocidad a la que va a girar el sistema de acuerdo con la
combinación de dos interruptores.
ACTIVIDADES DESARROLLADAS
1. Marco Teorico.
1.1 PERCEPTRÓN
Es un tipo de red neuronal artificial, que consiste en una sumatoria de señales en la entrada, que están
multiplicadas por unos valores aleatorios de pesos sinápticos. Si la suma de las señales de entrada
multiplicadas por los pesos es mayor o igual que un patrón previamente establecido, la salida del perceptrón
es igual a 1. Caso contrario, la salida es igual a 0 [1]. En la siguiente figura se presenta una topología simple
del perceptrón:

Fig. 1. Estructura simple de un perceptrón [1].

En la figura 1, se puede observar que la parte sombreada del cuerpo de la neurona es un sumador de los
estímulos externos (entradas X pesos), mientras que la parte no sombreada corresponde a una función 𝑓(𝑧), que
es llamada función de activación que utiliza la sumatoria para determinar el tipo de salida de la red neuronal.

1.2 FRONTERA DE DECISIÓN EN EL PERCEPTRÓN

Una de las características del perceptrón, es que puede clasificar conjuntos de datos que son linealmente
separables por un hiperplano. En dos dimensiones, los datos se separan unos de otros mediante una línea recta
llamada frontera de decisión, tal como se muestra en la siguiente figura:

Resolución CS N° 076-04-2016-04-20
Fig. 2. Clasificación de datos usando un perceptrón [1].

En la figura 2, se observa como el perceptrón clasifica dos tipos de datos A y B, todo esto, una vez que la red
haya sido entrenada por medio del algoritmo de aprendizaje del perceptrón.

1.3 ALGORITMO DE ENTRENAMIENTO DEL PERCEPTRÓN

El aprendizaje supervisado que utiliza esta neurona se basa en un algoritmo de entrenamiento cuya función es
lograr que la neurona aprenda, por medio de la variación de los valores del bias (b) y los pesos sinápticos (Wn)
de las entradas (P).
A continuación, se presenta el algoritmo de entrenamiento del perceptrón que corresponde a un aprendizaje por
corrección de error, el mismo que fue visto en clases [2]:

1. Fijar valores aleatorios al vector W de pesos sinápticos iniciales.


2. Evaluar un patrón de aprendizaje (P1) en la red.
3. Calcular la salida de la neurona de acuerdo a la función de activación: 𝑎 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑊 𝑇 ∗ 𝑃 +
𝑏)
4. Calcular el error, valor esperado menos el valor calculado: 𝑒 = 𝑡 − 𝑎
5. Modificar los pesos sinápticos: 𝑊𝑁 = 𝑊0 + 𝑒 ∗ 𝑃
6. Evaluar el siguiente patrón de aprendizaje.
7. Repetir desde el punto 3, hasta que el error sea cero para todos los patrones de entrenamiento.

1.4 MOTOR A PASOS.

El motor paso a paso conocido también como motor de pasos es un dispositivo electromecánico que
convierte una serie de impulsos eléctricos en desplazamientos angulares discretos, lo que significa que
es capaz de girar una cantidad de grados (paso o medio paso) dependiendo de sus entradas de control.
El motor paso a paso se comporta de la misma manera que un conversor digital-analógico (D/A) y puede
ser gobernado por impulsos procedentes de sistemas digitales. Este motor presenta las ventajas de tener
precisión y repetitividad en cuanto al posicionamiento. Entre sus principales aplicaciones destacan
los robots, drones, radiocontrol, impresoras digitales, automatización, fotocomponedoras, preprensa, etc. [3]

Resolución CS N° 076-04-2016-04-20
Fig. 3. Motor a pasos [3].

2. DESARROLLO
Para la implementación se siguió el siguiente proceso:

ALGORITMO DE ENTRENAMIENTO Y FRONTERA DE DECISIÓN:


El programa se manda a ejecutar, pero no sin antes dar los valores aleatorios iniciales de pesos sinápticos y
bias, los cuales se presentan en la Tabla 1:

W1 1
W2 1
B 0.5
Tabla1. Valores de pesos y bias iniciales.

Procesando valores mediante código tendremos:

W1 1
W2 1
B 0.5
Tabla2. Valores de pesos y bias finales.

Resolución CS N° 076-04-2016-04-20
IMPLEMENTACIÓN FÍSICA DEL PERCEPTRÓN
El esquema de funcionamiento del perceptrón es el siguiente:

Fig. 5. Esquema del perceptron.

El esquema de la figura 9, me permite visualizar todos los componentes que actúan en el perceptrón, y permite obtener de mejor
manera el tipo de amplificadores de la implementación física del perceptrón.

Para este esquema se tiene:


𝑎=𝑓(𝑋1∗𝑊2+𝑋3∗𝑊3+𝑏)
Primera entrada:
Para esta entrada, se multiplica la entrada 1 por el peso sináptico 1. La ganancia de esta etapa es de W1=-0.0555, por lo tanto,
se usa un amplificador inversor.

Fig. 6. Esquema amplificador inversor

Los cálculos de la etapa son:


𝐴𝑣=−𝑅𝑓1/𝑅𝑖𝑛
−0.0555=−𝑅𝑓1/1 𝐾Ω
𝑹𝒇𝟏=𝟓𝟓.𝟓 𝛀.
Segunda entrada:
Para esta entrada, se multiplica la entrada 2 por el peso sináptico 2. La ganancia de esta etapa es de W2=-0.1024, por lo tanto,
se usa también un amplificador inversor.
Los cálculos para la etapa son:
𝐴𝑣=−𝑅𝑓2/𝑅𝑖𝑛
−0.1024=−𝑅𝑓2/1 𝐾Ω
𝑹𝒇𝟐=𝟏𝟎𝟐.𝟒 𝛀

Bias: La señal del bias se acopla directamente al sumador, y su valor se obtiene de un potenciómetro o trimmer.
Resolución CS N° 076-04-2016-04-20
Sumatoria:
En esta etapa, se usa una configuración de un amplificador sumador no inversor para que no altere la polaridad de las señales
de origen.

Fig. 6. Esquema amplificador sumador no inversor.


Todas las resistencias deben tener el mismo valor para que la señal en la salida no sea amplificada. En nuestro caso, se
colocaron resistencias de 10 K Ω.

Función de activación:
En esta etapa se implementó un comparador de ventana con referencia en 0 voltios. Esto representa la función de activación
hardlim, en el cual, si la señal de salida del amplificador sumador es mayor a la referencia de 0 voltios, la salida del
comparador me da un valor positivo de umbral. Mientras que, si la señal de salida del amplificador sumador es menor a la
referencia de 0 voltios, la salida del comparador me da un valor negativo de umbral.

Fig. 7. Esquema amplificador operacional como comparador.

A la salida del comparador se implementa una etapa de activación de un led, mediante un transistor 3904 con alimentación en
el colector de +5V.

A continuación, se presenta el esquema del perceptrón implementado en Proteus:

Resolución CS N° 076-04-2016-04-20
Fig. 8. Esquema perceptron simulado en proteus.

E. RESULTADOS DEL PERCEPTRÓN IMPLEMENTADO.


Una vez armado el circuito de la Figura 13, se procede a verificar su funcionamiento mediante la frontera de decisión
proporcionada por el programa de Matlab.
Se debe hacer que el valor de P1 sea igual a cero, e ir moviendo, mediante un trimmer, el valor de P2 hasta que se acerque a la
frontera de decisión, en el cual el led debe estar en un estado de encendido y apagado.

Fig. 9. Punto en la frontera de decisión cuando P1=0.

Resolución CS N° 076-04-2016-04-20
Se nota en la Figura 14 que, el punto negro se coloca en P1=0, y en ese punto el valor de P2 es de aproximadamente 3.77. Los
valores debajo de 3.77 me indican que el led está encendido, mientras que en los valores por encima de 3.77, el led está
apagado.
Físicamente, en el circuito se midió mediante multímetro el valor de P1 igual a cero, entonces se procedió a mover el valor de
voltaje de P2 mediante un trimmer, dando como resultado que led parpadee en un valor aproximado de P2=4.1.

F. RECONFIGURACIÓN DEL PERCEPTRÓN


Se proporciona al perceptrón otros patrones de entrenamiento, así mismo, mediante un archivo txt. La gráfica de estos
patrones se indica en la siguiente figura:

Fig. 10. Nuevos patrones de entrenamiento para el perceptron.

Se puede ver que existen valores de voltaje negativo, por lo que se configuran las fuentes para que me den esos valores.
El programa hecho anteriormente se manda a ejecutar, pero no sin antes dar los valores aleatorios iniciales de pesos sinápticos
y bias, los cuales se presentan en la Tabla 3:

W1 1
W2 -0.8
B 0
Tabla2. Valores de pesos y bias para los nuevos patrones.

Resolución CS N° 076-04-2016-04-20
Fig. 11. Gráfico de línea de frontera y datos adquiridos para los nuevos patrones.

Se puede ver en la figura 17, una vez que el error es cero, la recta de frontera clasifica de una forma correcta los dos tipos de
datos proporcionados por el archivo txt, lo cual me indica también que el algoritmo ya ha calculado los valores finales de
pesos sinápticos y bias, esto se muestra en la siguiente figura:

W1 0.3
W2 0.02
B -0.1
Tabla4. Valores de pesos y bias para los nuevos patrones.
Para la fase de implementación, como W1 y W2 son valores positivos, y el bias negativo. Se usa un amplificador sumador
inversor, en el cual las entradas W1 y W2 son dadas por los dos amplificadores inversores con valores negativos de W1(-0.3) y
W2(-0.02), y el valor del bias se debe cambiar de polaridad (+0.1), ya que entra directamente al sumador inversor.
Los cálculos son similares a los descritos previamente, en la sección D, por lo tanto:

Primera entrada:
Para esta entrada, se multiplica la entrada 1 por el peso sináptico 1. La ganancia de esta etapa es de W1=-0.3, por lo tanto, se
usa el mismo amplificador inversor.
Los cálculos de la etapa son:
𝐴𝑣=−𝑅𝑓1/𝑅𝑖𝑛
−0.3=−𝑅𝑓1/1 𝐾Ω
𝑹𝒇𝟏=𝟑𝟎𝟎 𝛀
Segunda entrada:
Para esta entrada, se multiplica la entrada 2 por el peso sináptico 2. La ganancia de esta etapa es de W2=-0.02.
Los cálculos para la etapa son:
𝐴𝑣=−𝑅𝑓2/𝑅𝑖𝑛
−0.02=−𝑅𝑓21 𝐾Ω
𝑹𝒇𝟐=𝟐𝟎 𝛀
RESULTADOS DEL PERCEPTRÓN CON LOS NUEVOS PATRONES

Se procede a verificar el funcionamiento mediante la frontera de decisión proporcionada por el programa de Matlab.
En este caso, se debe hacer que el valor de P2=-1, e ir moviendo, mediante un trimmer, el valor de P1 hasta que se acerque a la
frontera de decisión, en el cual el led debe estar en un estado de encendido y apagado.

Resolución CS N° 076-04-2016-04-20
Fig. 13 Punto en la frontera de decisión cuando P2-1V

Se nota en la Figura 19 que, el punto negro se coloca en P2=-1, y en ese punto el valor de P1 es de 0.4. Los valores debajo de
0.4 me indican que el led está apagado, mientras que en los valores por encima de 0.4, el led está encendido.

INVERSION DE GIRO Y VELOCIDAD.


Luego de optimizadas y rectificadas las variables del perceptron se establcio un código para el mando de un punte H para
inversión de giro y determinación de velocidad en función de las señales del perceptron, para esto tendremos los siguientes
parámetros definidos en Arduino:

Fig. 14 Codigo de Arduino para inversión de giro y velocidad.

Para la implementación en la parte física tendremos el siguiente esquema con el motor:

Resolución CS N° 076-04-2016-04-20
Fig. 14 Armado del circuito inversión de giro y velocidad.

3.RECURSOS
Para la simulación se utilizó los siguientes elementos:
 Protoboard
 Arduino
 Resistencias.
 Cables.
 Condensadores
Software utilizado:
 Matlab.
4.BIBLIOGRAFIA

[1] Inteligencia artificial con aplicaciones a la


ingeniería. Pedro Ponce Cruz. ISBN: 978842671.
2100. Marcombo.

[2] Perceptron, señales y decisión, disponible en : “www.arqelectronics.com/perceptron”

[3] Motor a pasos, tipos y funcionamiento, disponible en: “https://es.wikipedia.org/wiki/Motor_paso_a_paso”

CONCLUSIONES:

La herramienta de Matlab es de gran ayuda para programar este algoritmo de entrenamiento, ya que me facilita
los cálculos y me entrega una frontera de decisión, algo que sería muy difícil y largo realizarlo a mano.

La reconfiguración del perceptron es de vital importancia para la efectividad requerida en el circuito, tomando en
cuenta los valores de bias y pesos sinápticos.

Resolución CS N° 076-04-2016-04-20
RECOMENDACIONES:

Se pudo comprobar que se deben usar seguidores de tensión para acoplar las impedancias de las diferentes etapas
en el circuito, ya que al no usarlas se presentaban fallos en los voltajes de salida de cada etapa, por lo tanto, la
salida final no era la esperada.

Nombre de estudiante: _FABIAN ORTIZ–

Firma de estudiante: _______________________________

Nombre de estudiante: _JUAN FEIJOO –

Firma de estudiante: _______________________________

ANEXO 1. (CIRCUITO FISICO)

ANEXO 2. (Codigo perceptron Matlab)

clc
syms x y
a=load ('datos.txt');
figure; hold on;
pos=find(a(:,3)==0);
neg=find(a(:,3)==1);
plot(a(pos, 1), a(pos, 2), 'r+','LineWidth',2,'MarkerSize', 7);
Resolución CS N° 076-04-2016-04-20
plot(a(neg, 1), a(neg, 2), 'ko','MarkerFaceColor','k','MarkerSize', 7);
grid on;
legend ('Positivo','Negativo')
hold off;
P1=a(:,1);
P2=a(:,2);
T=a(:,3);
%% RED NEURONAL
N=4; % # muestras
P=[P1';P2';ones(1,N)]; %Matriz de ingreso
t=T'; % Matriz de salida transpuesta
Wo=[3; 3; 3]; %Pesos y bias
Wt=Wo'; %Matriz de pesos y bias transpuesta
[m,n]=size(P); %Dimenciones de la matriz P

for i=1:100 %iteraciones

for j=1:1:n %itera de acuerdo a las columnas


a=hardlim(Wt*P);
e=t-a;
Wt=Wt + (e(:,j)*P(:,j)');
end

if e==0;

break
end
end
w=Wt';
disp('Pesos y bias')
disp(w);
%%Datos y frontera de decision
hold on
h=ezplot((w(1)*x)+(w(2)*y)+w(3));
title('FRONTERA Y DATOS')
xlim([-1 1.5])
ylim([-1 1.5])
xlabel('')
ylabel('')

Resolución CS N° 076-04-2016-04-20