Reporte Proyecto Final

50
CENTRO UNIVERSITARIO DE LA COSTA SUR DEPARTAMENTO DE INGENIERIAS INGENIERIA MECATRONICA Servoactuadores DISEÑO E IMPLEMENTACION DE UN SISTEMA DE CONTROL DIGITAL PARA UN MOTOR DE DC CON CONTROLADOR PIDPROFESOR: Dr. Alfredo Chávez Plascencia Luis Felipe Sandoval Castillo Luis Jorge Pelayo Torres Julio Cesar Arechiga Guerrero Damian Ramírez Navarro Edmundo Daniel Guzmán Meza Néstor Corona Velasco AUTLAN DE NAVARRO, 14 DE DICIEMBRE DEL 2009

Transcript of Reporte Proyecto Final

Page 1: Reporte Proyecto Final

CENTRO UNIVERSITARIO DE LA COSTA SUR

DEPARTAMENTO DE INGENIERIAS

INGENIERIA MECATRONICA

Servoactuadores

“DISEÑO E IMPLEMENTACION DE UN SISTEMA DE CONTROL

DIGITAL PARA UN MOTOR DE DC CON CONTROLADOR PID”

PROFESOR: Dr. Alfredo Chávez Plascencia

Luis Felipe Sandoval Castillo

Luis Jorge Pelayo Torres

Julio Cesar Arechiga Guerrero

Damian Ramírez Navarro

Edmundo Daniel Guzmán Meza

Néstor Corona Velasco

AUTLAN DE NAVARRO, 14 DE DICIEMBRE DEL 2009

Page 2: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

2

TABLA DE CONTENIDOS

Prefacio ----------------------------------------------------------------- 3

Introducción ------------------------------------------------------------ 5

Marco Teórico --------------------------------------------------------- 6

Modelo Matemático -------------------------------------------------- 8

Simulación en Simulink --------------------------------------------- 11

Implementacion -------------------------------------------------------17

Apéndice A: Controlador PID-------------------------------------- 38

Apéndice B: Modulación por Ancho de Pulsos PWM ------- 41

Apéndice C: Transformada de Laplace------------------------- 42

Apéndice D: Función de Transferencia ------------------------ 44

Apéndice E: PIC 16F877A ---------------------------------------- 46

Apéndice F: Puente H ---------------------------------------------- 47

Conclusión ----------------- ------------------------------------------- 49

Bibliografía ------------------------------------------------------------- 50

Page 3: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

3

PREFACIO

Este proyecto tratamos de hacer autómata este pequeño robot pro medio de un

micro-controlador y entre otros dispositivos que son necesarios para su movilidad

y su etapa de potencia o de alimentación. Esto no se trata solo de una física y

eléctrica si no también necesitamos saber acerca de todas las variables que

intervienen, así como son el momento de torque del motor, de inercia, las

ganancias del PID, así como la reducción de error en este dispositivo. Es

necesario saber también acerca de la programación y del software para ello lo cual

son MPLAB y el lenguaje C ya que es necesario hacerlo en un lenguaje de alto

nivel para hacer las funciones necesarias las cuales son: derivativas e integrativas

de las señales que necesitan controlarse. También es necesario saber las

funciones de transferencia de este circuito para poder realizar su modelo

matemático del mismo.

Es necesario que el lector tenga por lo menos conocimientos básicos sobre

integrales, diferenciales y funciones de transferencia así como conocimientos

sobre lenguaje c.

Las complicaciones más frecuentes acerca de este proyecto recaen en la

obtención de los dispositivo y así como es la configuración del micro-controlador

(PIC). Es necesario recalcar que se necesita el grabador para poder insertar el

programa.

Page 4: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

4

OBJETIVO GENERAL

Diseñar e implementar un sistema de control digital de velocidad para un motor

DC, utilizando el microcontrolador PIC16F877A y un control.

OBJETIVOS ESPECIFICOS

Reconocimiento y Análisis del sistema

Establecer el modelo matemático del sistema

Simular el sistema modelado diseñando el controlador PID para una

respuesta especifica

Implementación del sistema a un robot

Page 5: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

5

INTRODUCCION

Uno de los objetivos para el proyecto que se quiere realizar el lograr mantener la

velocidad del motor DC, para que así, el error de estado estacionario de la

velocidad del motor sea cero; además se desea que el error de estado

estacionario debido a una perturbación también sea nulo.

Otro requerimiento es que el motor mantenga la velocidad. En este caso, se desea

disminuir el tiempo de establecimiento para que sea mínimo y tenga un sobrepaso

considerable. Para lograr esto, dispondremos de un microcontrolador PIC que

incorpora todas las funciones necesarias para realizar el diseño y control.

La eficiencia del sistema va ligada a los parámetros de la planta, debido a que

nuestro sistema es retroalimentado, es necesario diseñar un controlador digital de

tal forma que el sistema se estabilice y se llegue a tener la velocidad deseada y en

el menor tiempo posible.

La retroalimentación se hará por medio de un encoder incremental acoplado al eje

de los motores, el cual enviara constantemente códigos digitales al

microcontrolador indicándole la velocidad. Ante estos códigos el microcontrolador

tomara una decisión relacionando la velocidad actual con el Set Point o valor de

referencia, enviando pulso digitales a un integrado (SN754410NE) para hacer girar

el motor a la velocidad deseada y en el sentido indicado.

Requerimientos

Algebra

Calculo

Conocimientos básicos en electrónica digital

Programación en lenguaje C

Limitaciones

Para la realización de este proyecto existe una limitación muy grande puesto que

los conocimientos que tenemos en electrónica digital son muy pobres y nos cuesta

mucho comprender la parte electrónica.

Page 6: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

6

MARCO TEORICO

Motores de Corriente Directa (DC)

Se utilizan en casos en los que es de importancia el poder regular continuamente la velocidad del eje y en aquellos casos en los que se necesita de un toque de arranque elevado.

Además, utilizan en aquellos casos en los que es imprescindible utilizar corriente continua, como es el caso de trenes y automóviles eléctricos, motores para utilizar en el arranque y en los controles de automóviles, motores accionados a pilas o baterías, etc.

Para funcionar, el motor de corriente continúa o directa precisa de dos circuitos eléctricos distintos: el circuito de campo magnético y el circuito de la armadura.

El campo (básicamente un imán o un electroimán) permite la transformación de energía eléctrica recibida por la armadura en energía mecánica entregada a través del eje. La energía eléctrica que recibe el campo se consume totalmente en la resistencia externa con la cual se regula la corriente del campo magnético. Es decir ninguna parte de la energía eléctrica recibida por el circuito del campo, es transformada en energía mecánica. El campo magnético actúa como una especie de catalizador que permite la transformación de energía en la armadura.

La armadura consiste en un grupo de bobinados alojados en el rotor y en un ingenioso dispositivo denominado colector mediante el cual se recibe corriente continua desde una fuente exterior y se convierte la correspondiente energía eléctrica en energía mecánica que se entrega a través del eje del motor. En la transformación se pierde un pequeño porcentaje de energía en los carbones del colector, en el cobre de los bobinados, en el hierro (por corrientes parásitas e histéresis), en los rodamientos del eje y la fricción del rotor por el aire.

Page 7: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

7

Conceptos Relacionados Con El Control

Señal de salida: es la variable que se desea controlar (posición, velocidad, presión, temperatura, etc.). También se denomina variable controlada. Señal de referencia: es el valor que se desea que alcance la señal de salida. Error: es la diferencia entre la señal de referencia y la señal de salida real. Señal de control: es la señal que produce el controlador para modificar la variable controlada de tal forma que se disminuya, o elimine, el error. Señal análoga: es una señal continua en el tiempo. Señal digital: es una señal que solo toma valores de 1 y 0. El PC solo envía y/o recibe señales digitales. Conversor análogo/digital: es un dispositivo que convierte una señal analógica en una señal digital (1 y 0). Conversor digital/análogo: es un dispositivo que convierte una señal digital en una señal analógica (corriente o voltaje). Planta: es el elemento físico que se desea controlar. Planta puede ser: un motor, un horno, un sistema de disparo, un sistema de navegación, un tanque de combustible, etc. Perturbación: es una señal que tiende a afectar la salida del sistema, desviándola del valor deseado.

Sensor: es un dispositivo que convierte el valor de una magnitud física (presión, flujo, temperatura, etc.) en una señal eléctrica codificada ya sea en forma analógica o digital. También es llamado transductor. Los sensores, o transductores, analógicos envían, por lo regular, señales normalizadas de 0 a 5 voltios, 0 a 10 voltios o 4 a 20 mA.

Sistema de control en lazo cerrado: es aquel en el cual continuamente se está monitoreando la señal de salida para compararla con la señal de referencia y calcular la señal de error, la cual a su vez es aplicada al controlador para generar la señal de control y tratar de llevar la señal de salida al valor deseado. También es llamado control realimentado.

Sistema de control en lazo abierto: en estos sistemas de control la señal de salida no es monitoreada para generar una señal de control.

Page 8: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

8

Modelo Matemático De La Planta

Diagrama esquemático de un motor DC

Considerando que nuestro motor tiene un eje rígido, por medio de sus ecuaciones

eléctricas y matemáticas, al relacionarlas, podemos obtener el modelo del motor

en el cual la entrada es el voltaje aplicado y la salida es la velocidad rotacional del

eje, para esto es necesario conocer los diferentes parámetros de los que se

encuentra compuesto:

𝐽 = momento de inercia del rotor

𝑏 = coeficiente de amortiguamiento del sistema mecánico

𝐾 = 𝐾𝑒 = 𝐾𝑡 = constante de fuerza electromotriz

𝑅 = resistencia eléctrica

𝐿 = inductancia eléctrica

𝑉 = fuente de tensión (entrada)

𝑊 = velocidad rotacional del eje (salida)

Sistema de Ecuaciones

El par de torsión del motor está relacionado con la corriente 𝑖, de la armadura, por

𝐾 de par constante:

𝑇 = 𝐾𝑖 (1)

La tensión generada, 𝑒𝑎 , es relativa a la velocidad angular:

𝑒𝑎 = 𝐾𝑊𝑚 = 𝐾𝑑𝜃

𝑑𝑡 (2)

Del diagrama del sistema podemos escribir las siguientes ecuaciones basadas en

las leyes de Kirchoff.

Page 9: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

9

𝐽 𝑑2𝜃

𝑑𝑡2 + 𝑏𝑑𝜃

𝑑𝑡= 𝐾𝑖 (3)

𝐿 𝑑𝑖

𝑑𝑡 + 𝑅𝑖 = 𝑉 − 𝐾

𝑑𝜃

𝑑𝑡 (4)

Función de Transferencia

Usando la transformada de Laplace, las ecuaciones (3) y (4) se pueden escribir de

la siguiente manera:

𝐽𝑠2𝜃 𝑠 + 𝑏𝑠 𝜃 𝑠 = 𝐾𝐼(𝑠) (5)

𝐿𝑠𝐼 𝑠 + 𝑅𝐼 𝑠 = 𝑉 𝑠 − 𝐾𝑠𝜃(𝑠) (6)

Donde 𝑠 denota el operador de Laplace. De (6) podemos expresar que

𝐼 𝑠 = 𝑉 𝑠 − 𝐾𝑠𝜃 (𝑠)

𝑅+𝐿𝑠 (7)

Y sustituir en (5) para obtener

𝐽𝑠2 𝜃 𝑠 + 𝑏𝑠𝜃 𝑠 = 𝐾(𝑉 𝑠 − 𝑘𝑠𝜃 (𝑠))

𝑅+𝐿𝑠 (8)

Esta es la ecuación para el motor de corriente directa del diagrama de bloques

que se muestra a continuación

Page 10: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

10

Figura.1 Sistema de circuito cerrado que representa el modelo matemático

de un motor de Corriente Continua.

De la ecuación (8) la función de transferencia de la tensión de entrada, V(s), al

ángulo es la siguiente:

𝐺𝑎 𝑠 = 𝜃(𝑠)

𝑉(𝑠)=

𝐾

𝑠[ 𝑅+𝐿𝑠 𝐽𝑠+𝑏 +𝐾2] (9)

Y de la figura anterior podemos obtener la función de transferencia de nuestra

planta.

𝐺𝑣 𝑠 = 𝜔(𝑠)

𝑉(𝑠)=

𝐾

[ 𝑅+𝐿𝑠 𝐽𝑠+𝑏 +𝐾2] (10)

ϴ(s)

1/(Js+b) 1/s

K

1/(Ls+R) K

V(s)

𝜔(𝑠) T(s) I(s)

Page 11: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

11

EXPERIMENTOS

Simulación En Simulink (Matlab)

Una vez obtenido el modelo matemático pasaremos a ver la simulación echa en

Simulink.

Puesto que Simulink es un entorno gráfico de Matlab decidimos realizar la

simulación del proyecto en este entorno, ya que todas las partes que componen el

sistema de control lo podemos dividir en bloques y esto facilitara su estudio y

observación.

En la siguiente imagen se muestra como se estructura todo nuestro sistema

de control del motor dc utilizado en este proyecto el cual consta de una función de

transferencia y un controlador PID.

La función de transferencia está representada mediante un bloque el cual

recibe la señal modelada de salida de nuestro controlador PID. A la salida de esta

tenemos una señal de entrada o excitación la cual sirve para retro alimentar

nuestro circuito. En la siguiente gráfica se muestra nuestra la gráfica resultante de

Page 12: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

12

todo nuestro proceso de control en la cual podemos visual dos señales la primera

(color rosa) es nuestra señal de referencia que en este caso es de 6 Volts y la

segunda (color amarillo) viene siendo la señal de error que emite nuestra función

de transferencia.

En a las siguiente dos gráficas a preciaremos por separado como se

visualizan estas dos señales, en la primera se observa la señal de referencia y en

la segunda la de error.

Page 13: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

13

Volviendo a nuestro diagrama de control encontramos que nuestra función

de transferencia es alimentada por el controlador el cual recibe la señal de

referencia sumada a su vez por la emitida por la función de transferencia. El

controlador está compuesto por un subsistema el cual está compuesto por una

serie de ganancias de las cuales la ganancia proporcional ( kp ) es la parte

proporcional y consiste en el producto entre la señal de error y la constante

proporcional como para que hagan que el error en estado estacionario sea casi

Page 14: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

14

nulo, la ganancia derivativa ( kd ) se manifiesta cuando hay un cambio en el valor

absoluto del error; (si el error es constante, solamente actúan los modos

proporcional e integral), y por último la ganancia intregrativa ( ki ) esta tiene como

propósito disminuir y eliminar el error en estado estacionario, provocado por el

modo proporcional; por ultimo estas tres señal resultantes de nuestras ganancias

son sumadas y generan una sola señal modelada la cual viene siendo la salida de

nuestro controlador.

Para calcular los valores de nuestras ganancias existen dos maneras

utilizando el método de Nichols Bode el cual consiste en un sistema realimentado

compuesto principalmente por seis elementos, cada elemento está representado

por una ecuación, combinando estas ecuaciones se obtiene la relación de mando

o función del sistema. Pero debido a la complejidad del método decidimos utilizar

uno más sencillo de utilizar se aplica manual mente, ya que consiste un poner

todos nuestras ganancias en un valor inicial (en nuestro caso 0), e ir las variando

hasta que nuestra señal de error sea lo más semejante posible a la de referencia.

En nuestro caso nuestras ganancias nos quedaron con los siguientes valores; kp =

10000, kd = 2500 y ki = 5000.

La estructura de nuestro subsistema la podemos apreciar en la imagen que

se visualiza a continuación. Como podemos observar aquí se muestran nuestras

tres ganancias, nuestra propiedad derivativa, la integradora y como se suman

nuestras tres señales resultantes para formar y sola.

Page 15: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

15

Por último en la gráfica que se muestra a continuación se puede observar la

señal modulada resultante de sumar nuestra ganancia proporcional, la derivativa y

la integradora.

Si recordamos todos los sistemas de control mencionamos que consta

básicamente de seis parámetros, para determinar los valores de estos parámetros

realizamos los siguientes procedimientos. Como primera instancia tenemos el

motor gira a una velocidad N = 320 rpm, una corriente i = 0.008 A, produce una

resistencia R = 0.750, una inductancia L = 0.375; todos estos valores fueron

obtenidos de las especificaciones del motor, y a este le suministrados una fuente

de voltaje Vt = 6 Volts. Ahora ya teniendo estos datos ya solo nos queda

determinas los parámetro K que es una constante de torque y el amortiguamiento

b.

Ahora bien para determinar K tenemos:

𝑊𝑀 =𝑉𝑡

𝐾=

2 ∗ 𝜋 ∗ 𝑁

60

Entonces

𝑤𝑚 =2 ∗ 𝜋 ∗ 320

60

Sustituyendo los valores

Page 16: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

16

𝑤𝑚 =2010.624

60

Haciendo los cálculos correspondientes

𝑤𝑚 = 33.5104

Teniendo la velocidad angular ahora si podemos determinar k

𝐾 = 𝑉𝑡

𝑤𝑚

Sustituyendo los valores

𝐾 = 6

33.5104

𝐾 = 0.1790

Determinado el valor de k lo que procede es obtener el de b

0 = 𝐾𝑖 − 𝑏𝑤𝑚

𝑏 = 𝐾𝑖

𝑤𝑚

Sustituyendo los valores

𝑏 = 0.1790 ∗ 0.008

33.51

Haciendo los cálculos correspondiente

𝑏 = 0.00004273

Bien ahora ya tenemos todos nuestros parámetros definidos de la siguiente

manera:

Vt = 6 Volts

R = 0.750 Ω

L = 0.375 henrio

J = 0.01

K = 0.1790

b = 0.00004273

Page 17: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

17

Implementacion

El proyecto se fundamenta en el diseño de un controlador de velocidad de un

motor DC basado en un PIC 16F877A, en el cual se programaran, las siguientes

aplicaciones:

MP-Lab

MPLAB es una herramienta para escribir y desarrollar código en lenguaje

ensamblador para los microcontroladores PIC. MPLAB incorpora todas las

herramientas necesarias para la realización de cualquier proyecto, ya que además

de un editor de textos cuenta con un simulador en el que se puede ejecutar el

código paso a paso para ver así su evolución y el estado en el que se encuentran

sus registros en cada momento.

A continuación un pequeña introducción.

Hacemos click en Siguiente, luego se mostrará una ventana donde debemos

escoger el PIC que se vaya a usar, en la lista que aparece seleccionamos

PIC16F877 y damos click en Siguiente.

Page 18: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

18

El siguiente paso es definir el programa de lenguaje que será usado. En nuestro

caso el lenguaje es C así que seleccionamos la

opción mostrada en la siguiente imagen y de nuevo hacemos click en Siguiente.

Page 19: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

19

En la siguiente ventana tenemos que darle un nombre al proyecto y escoger el

directorio en el que se guardará. Es recomendable que la ruta de la carpeta

donde se guarda el proyecto no sea muy

larga ya que al compilarlo MPLAB marca un error, es por eso que en

el ejemplo la ruta escogida

se encuentra cerca de la raíz del disco duro, así que recomiendo

crear una carpeta directamente en el disco

“C:\” o en cualquiera que se use, pero que sea en la raíz del disco. Para este caso

la ruta escogida fue C:\Users\Luis-Felipe\Desktop\MyProject\Contorlador pero

sientan la libertad de escoger cualquier otro nombre para la carpeta.

Una vez dado el nombre al proyecto al hacer click en Siguiente se abrirá una

nueva ventana que nos pedirá agregar archivos existentes al proyecto, como aún

no hemos escrito ningún archivo simplemente damos click en Siguiente y para

terminar en la última ventana hacemos click en Finalizar.

Page 20: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

20

Ya que creamos el proyecto y habiendo dado click a Finalizar en la ventana

anterior debemos ver la ventana del MPLAB más o menos con este aspecto.

Y ahora si empieza lo bueno, una vez creado el proyecto es hora de crear un

archivo y empezar a escribir el código. Lo que hacemos es crear un nuevo archivo

Page 21: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

21

y guardarlo con extensión .c en la carpeta donde tenemos nuestro proyecto, para

crear un archivo damos click en File -> New, después y antes de escribir en el

archivo hacemos click en File -> Save As. En la ventana que se abra le damos un

nombre a nuestro archivo y nos aseguramos de que el tipo de archivo

seleccionado sea en C.

Ahora el archivo creado tiene extensión .c pero para el proyecto eso no nos sirve,

tenemos que agregar el archivo al proyecto y después comenzar a trabajar en el

así que en la ventana del proyecto hacemos click derecho en Source Files y

después seleccionamos Add File.

Page 22: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

22

Posteriormente se abrirá una ventana donde debemos seleccionar el archivo que

queremos agregar al proyecto. Por defecto se abrirá la carpeta del proyecto que

acabamos de crear así que seleccionamos el archivo (en este caso controlador.c)

y hacemos click en Abrir. Hecho eso la ventana del proyecto debe verse así:

Page 23: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

23

Editando el código

Una vez agregado el archivo .c al proyecto pasamos a la etapa de editar el código

en lenguaje de Alto Nivel C y salvamos el archivo.

Page 24: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

24

Compilando el Código

Una vez escrito el programa pasamos a compilarlo para esto usaremos el

compilador CCS C Compiler; la razón por la que se opto por este compilador fue

que los demás compiladores no se pudo hacer que interactúan de forma eficiente

por la situación de que varios de esos compiladores son solo de versión de prueba

y no incluyen todas las librerías necesarias para una compilación satisfactoria.

A continuación se explicara paso a paso como se hace la compilación del

archivo.c

Del menú Project elegimos la opción Select Languaje Toolsuite y elegimos el

compilador CCS C Compiler for pic 10/12/14/16/18/24 dsPIC30/ dsPIC33

Seguidamente seleccionamos el archivo.c con click derecho y seleccionamos la

opción Compile

Y en el Output nos apareceré el mensaje de error o de satisfacción

Page 25: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

25

Error

Buena Compilación

Y listo el código queda compilado y listo para ser cargado en el PIC.

Page 26: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

26

Cargar el programa al PIC

Para esto necesitamos de un grabador, en este caso vamos a utilizar el Picstart

Plus, lo habilitamos en MPLAB

Este software también necesita un hardware

Posteriormente activamos el programador en el menú Programmer>Enable, y

cargamos el programa al PIC Programmer>Program.

Page 27: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

27

Controlador PID:

/******************************************** * robot_pid.c * * * * v. 1.0 * * * * Este programa controla la * * velocidad de dos motores * * usando un control PID * * * * * *********************************************/ // Definiciones PIC #include <16f877.h> #device ADC=8 #include <stdlib.h> #fuses HS,NOPROTECT #use delay(clock=12000000) #use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7) #org 0x1FFF, 0x1FFF void loader16F877(void) // Definicion de Constantes #define CNT_T2 3 #define NUM_TIMES_T2 64*CNT_T2 #define NUM_SECOND 80/CNT_T2 #define SIZE_DATA 50 #define ADELANTE 0x0a // Constantes de acondicionamiento motor izquierdo #define Kci 0.2 #define Kci1 Kci*2.7 #define Kci2 Kci*2.2 #define Kci3 Kci*2.0 #define Kci4 Kci*1.6 #define Kci5 Kci*1.2 // Constantes de acondicionamiento motor derecho #define Kcd 0.18 #define Kcd1 Kcd*2.7 #define Kcd2 Kcd*2.2 #define Kcd3 Kcd*2.0 #define Kcd4 Kcd*1.6 #define Kcd5 Kcd*1.2 // Constantes del control PID #define Kp 0.7 //1.7 #define Ki 0.0 //0.35 #define Kd 0.000 //0.005 //Variables Globales long CntRight=0,CntLeft=0;

Page 28: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

28

int flag=0; long wi=0,wd=0; float fCntRight,fCntLeft; // Control PID mv_pid() long rni=0,rnd=0; float frni=0.0,frnd=0.0; float ewi=0,ewd=0; static float prev_rni=0,prev_rnd=0,prev_ewi=0,prev_ewd=0; static float prev2_ewi=0,prev2_ewd=0; float cntder,cntizq; //Acondiciona los valores de las entradas (encoders) if(wd<=62)cntder=wd*Kcd1; else if(wd<125)cntder=wd*Kcd2; else if(wd<250)cntder=wd*Kcd3; else if(wd<350)cntder=wd*Kcd4; else cntder=wd*Kcd5; if(wi<=62)cntizq=wi*Kci1; else if(wi<125)cntizq=wi*Kci2; else if(wi<250)cntizq=wi*Kci3; else if(wi<350)cntizq=wi*Kci4; else cntizq=wi*Kci5; cntizq=cntizq/1024.0; cntder=cntder/1024.0; // Calcula el error ewd=cntder-fCntRight; ewi=cntizq-fCntLeft; // Calcula el control para cada motor frni= prev_rni + Kp*(ewi-prev_ewi)+ Ki*(ewi-prev_ewi)+ Kd*(ewi-2*prev_ewi+prev2_ewi); frnd= prev_rnd + Kp*(ewd-prev_ewd)+ Ki*(ewd-prev_ewd)+ Kd*(ewd-2*prev_ewd+prev2_ewd); // Guarda valores para la siguiente iteracion prev_rni=frni; prev_rnd=frnd; prev_ewi=ewi; prev_ewd=ewd; //Acondiciona los valores de las salidas if(frni<0)frni=0; else if(frni>1.0)frni=1.0; if(frnd<0)frnd=0; else if(frnd>1.0)rnd=1.0; rni=2048.0*frni; rnd=2048.0*frnd; // Coloca los valores para generar los PWM set_pwm1_duty(rni); set_pwm2_duty(rnd);

Page 29: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

29

// Rutina para la interrupcion del TIMER2. #INT_TIMER2 void wave_timer2() static long k=0; static int i=0; k++; if(k>NUM_TIMES_T2) k=0; CntLeft=get_timer0(); CntRight=get_timer1(); fCntRight=CntRight/1024.0; fCntLeft=CntLeft/1024.0; // Muestra los datos if(flag==1) i++; if(i > SIZE_DATA)flag=0; printf("%f %f\n\r",fCntLeft,fCntRight); else i=0; // Ejecuta el algoritmo de control PID mv_pid(); // Inicializan los contadores de los temporizadores de nuevo set_timer0(0); set_timer1(0); /* Inicializa puertos */ inicializa_puertos() // Se inicializan los pines para generar los pwms setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); // Se indica la dirrecion de los motores output_d(ADELANTE); // Inicializa interrupciones y temporizadores inicializa_interrupciones() // Se inicializan los temporizadores 0 y 1 como encoders set_timer1(0); setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1); set_timer0(0); setup_timer_0(RTCC_DIV_1|RTCC_EXT_L_TO_H); // Se inicializa el temporizador 2 para generar el PWM setup_timer_2(T2_DIV_BY_1, 127, 10); // Se habilitan las salidas enable_interrupts(INT_TIMER2); enable_interrupts(GLOBAL);

Page 30: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

30

/* Programa principal */ void main() char linea[5]; inicializa_interrupciones(); inicializa_puertos(); while(TRUE) // lee las velocidades de los motores gets(linea); wi=atol(linea); flag=1; gets(linea); wd=atol(linea); flag=1;

Page 31: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

31

Generación de Modulación por Ancho de Pulso “PWM”:

#include <16f877.h> #device ADC=8 #include <stdlib.h> #fuses HS,NOPROTECT #use delay(clock=12000000) #use rs232(baud=19200,xmit=PIN_C6, rcv=PIN_C7) #org 0x1F00, 0x1FFF void loader16F877(void) // Inicializa puertos inicializa_puertos() setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); // Inicializa interrupciones inicializa_temporizadores() // The cycle time will be (1/clock)*4*t2div*(period+1) // In this program clock=10000000 and period=127 (below) setup_timer_2(T2_DIV_BY_1, 127, 10); // Se indica el ancho del periodo positivo del PWM mv(long duty) // Se indica la direccion de movimiento de las llantas output_d(0x0a); // Se indican los tiempos del pwm set_pwm1_duty(duty); set_pwm2_duty(duty); // Programa principal void main() char linea[20]; long duty; // Se inicializan las interrupciones inicializa_temporizadores(); // Se inicializan los puertos inicializa_puertos(); // Loop infinito while(TRUE) // Se lee el valor del periodo positivo printf("\n\r-> "); gets(linea); duty=atol(linea); // Actualiza el ciclo de trabajo mv(duty);

Page 32: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

32

Conversor analógico digital ADC Converter

#include<16f877.h> #include<reg.h> #fuses HS, NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP #use delay(clock=12000000) void inicia_AD(void); void selecciona_AD(unsigned num); void arranca_AD(void); void leer_AD(void); main() unsigned canal; unsigned long resultado; inicia_AD(); //llamamos a la función inicia_AD while(1) canal=0b00000001; //indicamos el canal de entrada selecciona_AD(canal); //llamamos a la función selecciona_AD dandole como parametro el canal arranca_AD(); //llamamos a dicha función resultado=leer_AD(); //leer_AD nos devuelve el valor de la conversión y lo guarda en resultado //Conversor Analógico Digital del PIC16F877 void inicia_AD(void) ADCON0=0b10000001; //Fosc/32 ; channel 0 ADCON1=0b10000101; // 4 ultimos bits dependiendo de la tabla 1 void selecciona_AD(unsigned num) char aux; aux=ADCON0 & 0b11000111; //pongo a 0 el canal de conversion ADCON0=aux | (num<<3); //activamos el canal que se pasa void arranca_AD(void) ADGO=1; //ponemos en marcha el conversor void leer_AD(void) char alto,bajo; long total; while (ADGO); //aquí esperamos a que acabe de convertir

Page 33: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

33

bajo= ADRESL; alto = ADRESH; total= (long)alto<<8 | bajo; //Hacemos una or de bajo y de alto convertido a long y desplazado 8 bits. return(total);

Page 34: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

34

RUTINA PARA ROBOT SEGUIDOR DE LINEA

Código propuesto para que el robot siga una línea.

#include "16f877.h"

#include<reg.h>

#fuses HS, NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP #use delay(clock=20000000)

void timer0(char j);

void PWM(unsigned char,unsigned char);

static void interrupt isr(void);

unsigned char siga=1,cont=0;;

void main()

unsigned char i,BAND=0;

unsigned char conta;

TRISA=0x1F;

TRISB=0x00;

OPTION=0x02;

GIE=1;

T0IE=1;

DIR1=ADELANTE; DIR2=ADELANTE; /* CONTINUA*/

PWM1=PWM2=TRUE;

FRENO1=FRENO2=FALSE;/*SIN FRENO*/

while(1)

if (SENSOR1==TRUE & SENSOR2==TRUE) /* 2 SENSORES EN LA LINEA */

PWM(90,90);

if (SENSOR1==FALSE & SENSOR2==TRUE) /* SENSORES EN LA ORILLA*/

PWM(90,45);

BAND=0;

Page 35: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

35

if (SENSOR1==TRUE & SENSOR2==FALSE) /* SENSORES AFUERA*/

PWM(45,90);

BAND=1;

if (SENSOR1==FALSE & SENSOR2==FALSE)/* SENSORES AFUERA*/

if(BAND==1)

PWM(20,70);

else if(BAND==0)

PWM(70,20);

void timer0(char x)

TMR0=x;

while(siga);

siga=1;

static void interrupt isr(void)

if(T0IF==1)

siga=0;

T0IF=0;

void PWM(unsigned char x, unsigned char y)

unsigned char i;

PWM1=PWM2=TRUE;

if(x<y)

for(i=0;i<x;i++)

timer0(0XFF);

PWM1=FALSE;

for(i=0;i<y-x;i++)

Page 36: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

36

timer0(0XFF);

PWM2=FALSE;

for(i=0;i<100-y;i++)

timer0(0XFF);

if(y<x)

for(i=0;i<y;i++)

timer0(0XFF);

PWM2=FALSE;

for(i=0;i<x-y;i++)

timer0(0XFF);

PWM1=FALSE;

for(i=0;i<100-x;i++)

timer0(0XFF);

if(x==y)

for(i=0;i<x;i++)

timer0(0XFF);

PWM1=PWM2=FALSE;

for(i=0;i<100-y;i++)

timer0(0XFF);

Page 37: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

37

Implementacion Física

Para la implementación física se requiere obtener los siguientes componentes:

2 Motores de Dc de metal con caja reductora

1 LS293 o su equivalente SN754410NE (Puente H)

2 Sensores ópticos reflectivos (CNY70)

1 PIC16F877A

1 Grabador de PICS (Picstart Plus)

1 Display doble 7 segmentos

1 Cristal de 12 MHz

Otros componentes

1 Protoboard

1 Pila de 9v

Para esta parte se pretendía analizar la forma en cómo tendrían que ir

acomodados todos los componentes para el correcto funcionamiento del robot. Al

iniciar con esta parte del proyecto nos encontramos con un sinfín de dudas que

nos fue difícil resolverlas. Es por esta razón que esta sección del reporte queda

pendiente.

Page 38: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

38

Apéndice A

Controlador PID En este sección veremos la familia de controladores PID, que mostraron ser robustos en muchas aplicaciones y son los que más se utilizan en la industria. La estructura de un controlador PID es simple, aunque su simpleza es también su debilidad, dado que limita el rango de plantas donde pueden controlar en forma satisfactoria (existe un grupo de plantas inestables que no pueden estabilizadas con ningún miembro de la familia PID). En esta sección estudiaremos los enfoques tradicionales al diseño de controladores PID. Estructura del PID Consideremos un lazo de control de una entrada y una salida (SISO) de un grado de libertad:

Los miembros de la familia de controladores PID, incluyen tres acciones: proporcional (P), integral (I) y derivativa (D). Estos controladores son los denominados P, I, PI, PD y PID.

P: acción de control proporcional, da una salida del controlador que es

proporcional al error, es decir: u(t) = KP*e(t),que descrita desde su función transferencia queda:

𝐶𝑝 𝑠 = 𝐾𝑝 donde Kp es una ganancia proporcional ajustable. Un controlador proporcional puede controlar cualquier planta estable, pero posee desempeño limitado y error en régimen permanente.

I: acción de control integral: da una salida del controlador que es

proporcional al error acumulado, lo que implica que es un modo de controlar lento.

𝑢 𝑡 = 𝐾𝑡 𝑒 𝑡 𝑡

0𝑑𝑡 𝐶𝑡 𝑠 =

𝐾𝑡

𝑠

Page 39: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

39

La señal de control u(t) tiene un valor diferente de cero cuando la señal de error e(t) es cero. Por lo que se concluye que dada una referencia constante, o perturbaciones, el error en régimen permanente es cero.

PI: acción de control proporcional-integral, se define mediante:

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 + 𝐾𝑝

𝑇𝑖 𝑒 𝑡

𝑡

0

𝑑𝑡

donde Ti se denomina tiempo integral y es quien ajusta la acción integral. La función de transferencia resulta:

𝐶𝑃𝐼 𝑠 = 𝐾𝑝 1 +1

𝑇𝑖𝑠

Con un control proporcional, es necesario que exista error para tener una acción de control distinta de cero. Con acción integral, un error pequeño positivo siempre nos dará una acción de control creciente, y si fuera negativa la señal de control será decreciente. Este razonamiento sencillo nos muestra que el error en régimen permanente será siempre cero. Muchos controladores industriales tienen solo acción PI. Se puede demostrar que un control PI es adecuado para todos los procesos donde la dinámica es esencialmente de primer orden. Lo que puede demostrarse en forma sencilla, por ejemplo, mediante un ensayo al escalón.

PD: acción de control proporcional-derivativa, se define mediante:

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 + 𝐾𝑝𝑇𝑑 𝑑𝑒(𝑡)

𝑑𝑡

donde Td es una constante de denominada tiempo derivativo. Esta acción tiene carácter de previsión, lo que hace mas rápida la acción de control, aunque tiene la desventaja importante que amplifica las señales de ruido y puede provocar saturación en el actuador. La acción de control derivativa nunca se utiliza por sí sola, debido a que solo es eficaz durante períodos transitorios. La función transferencia de un controlador PD resulta:

𝐶𝑃𝐷 𝑠 = 𝐾𝑝 + 𝑠𝐾𝑝𝑇𝑑 Cuando una acción de control derivativa se agrega a un controlador proporcional, permite obtener un controlador de alta sensibilidad, es decir que responde a la

Page 40: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

40

velocidad del cambio del error y produce una corrección significativa antes de que la magnitud del error se vuelva demasiado grande. Aunque el control derivativo no afecta en forma directa al error ea estado estacionario, añade amortiguamiento al sistema y, por tanto, permite un valor más grande que la ganancia K, lo cual provoca una mejora en la precisión en estado estable.

PID: acción de control proporcional-integral-derivativa, esta acción

combinada reúne las ventajas de cada una de las tres acciones de control individuales. La ecuación de un controlador con esta acción combinada se obtiene mediante:

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 + 𝐾𝑝

𝑇𝑖 𝑒 𝑡

𝑡

0

𝑑𝑡 + 𝐾𝑝𝑇𝑑 𝑑𝑒(𝑡)

𝑑𝑡

Y su función de transferencia resulta:

𝐶𝑃𝐼𝐷 = 𝐾𝑝 (1 + 1

𝑇𝑖𝑠 + 𝑇𝑑𝑠)

Page 41: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

41

Apéndice B

Modulación por ancho de pulsos PWM

Fig.: una señal de onda cuadrada de amplitud acotada (ymin,ymax) mostrando el ciclo de trabajo D.

La modulación por ancho de pulsos (MAP o PWM, siglas del inglés Pulse-Width Modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una sinusoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.

El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período. Expresado matemáticamente:

D es el ciclo de trabajo τ es el tiempo en que la función es positiva (ancho del pulso) T es el período de la función

La construcción típica de un circuito PWM se lleva a cabo mediante un comparador con dos entradas y una salida. Una de las entradas se conecta a un oscilador de onda dientes de sierra, mientras que la otra queda disponible para la señal moduladora. En la salida la frecuencia es generalmente igual a la de la señal dientes de sierra, y el ciclo de trabajo está en función de la portadora.

La principal desventaja que presentan los circuitos PWM es la posibilidad de que haya interferencias generadas por radiofrecuencia. Éstas pueden minimizarse ubicando el controlador cerca de la carga y realizando un filtrado de la fuente de alimentación.

Page 42: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

42

Apéndice C Transformada de Laplace

La Transformada de Laplace es una técnica Matemática que forma parte de ciertas transformadas integrales como la transformada de Fourier, la transformada de Hilbert, y la transformada de Mellin entre otras. Estas transformadas están definidas por medio de una integral impropia y cambian una función en una variable de entrada en otra función en otra variable. La transformada de Laplace puede ser usada para resolver Ecuaciones Diferenciales Lineales y Ecuaciones Integrales. Aunque se pueden resolver algún tipo de ED con coeficientes variables, en general se aplica a problemas con coeficientes constantes. Un requisito adicional es el conocimiento de las condiciones iniciales a la misma ED. Su mayor ventaja sale a relucir cuando la función en la variable independiente que aparece en la ED es una función seccionada.

Cuando se resuelven ED usando la técnica de la transformada, se cambia una ecuación diferencial en un problema algebraico. La metodología consiste en aplicar la transformada a la ED y posteriormente usar las propiedades de la transformada. El problema de ahora consiste en encontrar una función en la variable independiente tenga una cierta expresión como transformada.

Definición de la Transformada Sea f una función definida para , la transformada de Laplace de f(t) se define como:

cuando tal integral converge Notas

1. La letra s representa una nueva variable, que para el proceso de integracion se considera constante

2. La transformada de Laplace convierte una funcion en t en una funcion en la variable s

3. Condiciones para la existencia de la transformada de una función: 1. De orden exponencial 2. Continua a trozos

Page 43: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

43

Definición de la Transformada Inversa La Transformada inversa de una función en s, digamos F(s) es una función de t cuya transformada es precisamente F(s), es decir

si es que acaso

Esta definición obliga a que se cumpla:

y

Page 44: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

44

Apéndice D

Función de Transferencia

Una función de transferencia es un modelo matemático que a través de un cociente relaciona la respuesta de un sistema (modelada) a una señal de entrada o excitación (también modelada).

El cociente formado por los modelos de la señal de salida respecto de la señal de entrada, permite encontrar los ceros y los polos, respectivamente. Y que representan las raíces en las que cada uno de los modelos del cociente se iguala a cero. Es decir, representa la región frontera a la que no debe llegar ya sea la respuesta del sistema o la excitación al mismo; ya que de lo contrario llegará ya sea a la región nula o se irá al infinito, respectivamente.

Considerando la temporalidad; es decir, que la excitación al sistema tarda un tiempo en generar sus efectos en el sistema en cuestión y que éste tarda otro tiempo en dar respuesta. Esta condición es vista a través de un proceso de convolución, formado por la excitación de entrada convolucionada con el sistema considerado, dando como resultado, la respuesta dentro de un intervalo de tiempo. Ahora, en ese sentido (el de la convolución), se tiene que observar que la función de transferencia está formada por la deconvolución entre la señal de entrada con el sistema. Dando como resultado la descripción externa de la operación del sistema considerado. De forma que el proceso de contar con la función de transferencia del sistema a través de la deconvolución, se logra de forma matrcial o vectorial, considerando la pseudoinversa de la matriz o vector de entrada multiplicado por el vector de salida, para describir el comportamiento del sistema dentro de un intervalo dado. Pareciera un proceso complicado, aunque solo baste ver que la convolución discreta es representada por un producto de una vector o matriz fija respecto de una matriz o vector móvil, o que en forma tradicional se observa como una sumatoria.

Uno de los primeros matemáticos en describir estos modelos fue Laplace, a través de su transformación matemática.

Por definición una función de transferencia se puede determinar según la expresión:

donde H (s) es la función de transferencia (también notada como G (s) ); Y (s) es la transformada de Laplace de la respuesta y U (s) es la transformada de Laplace de la señal de entrada.

Page 45: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

45

La función de transferencia también puede considerarse como la respuesta de un sistema inicialmente inerte a un impulso como señal de entrada:

La salida o respuesta en frecuencia del sistema se halla entonces de

y la respuesta como función del tiempo se halla con la transformada de Laplace inversa de Y(s):

Cualquier sistema físico (mecánico, eléctrico, etc.) se puede traducir a una serie de valores matemáticos a través de los cuales se conoce el comportamiento de estos sistemas frente a valores concretos.

Por ejemplo, en análisis de circuitos eléctricos, la función de transferencia se representa como:

Page 46: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

46

Apéndice E PIC 16F877A El microcontrolador PIC16F877A de Microchip pertenece a una gran familia de microcontroladores de 8 bits (bus de datos) que tienen las siguientes características generales que los distinguen de otras familias: - Arquitectura Harvard - Tecnología RISC - Tecnología CMOS Estas características se conjugan para lograr un dispositivo altamente eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de ejecución. Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones:

Variantes principales Los microcontroladores que produce Microchip cubren una amplio rango de dispositivos cuyas características pueden variar como sigue: - Empaquetado (desde 8 patitas hasta 68 patitas) - Tecnología de la memoria incluída (EPROM, ROM, Flash) - Voltajes de operación (desde 2.5 v. Hasta 6v) - Frecuencia de operación (Hasta 20 Mhz)

Page 47: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

47

Apéndice F

Puente H

Un Puente H o Puente en H es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Los puentes H están disponibles como circuitos integrados, pero también pueden construirse a partir de componentes discretos.

Estructura de un puente H (marcado en rojo)

Los 2 estados básicos del circuito.

El término "puente H" proviene de la típica representación gráfica del circuito. Un puente H se construye con 4 interruptores (mecánicos o mediante transistores). Cuando los interruptores S1 y S4 (ver primera figura) están cerrados (y S2 y S3 abiertos) se aplica una tensión positiva en el motor, haciéndolo girar en un sentido. Abriendo los interruptores S1 y S4 (y cerrando S2 y S3), el voltaje se invierte, permitiendo el giro en sentido inverso del motor.

Con la nomenclatura que estamos usando, los interruptores S1 y S2 nunca podrán estar cerrados al mismo tiempo, porque esto cortocircuitaría la fuente de tensión. Lo mismo sucede con S3 y S4.

Page 48: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

48

Aplicaciones

Como hemos dicho el puente H se usa para invertir el giro de un motor, pero también puede usarse para frenarlo (de manera brusca), al hacer un corto entre las bornbas del motor, o incluso puede usarse para permitir que el motor frene bajo su propia inercia, cuando desconectamos el motor de la fuente que lo alimenta. En el siguiente cuadro se resumen las diferentes acciones.

S1 S2 S3 S4 Resultado

1 0 0 1 El motor gira en avance

0 1 1 0 El motor gira en retroceso

0 0 0 0 El motor se detiene bajo su inercia

0 1 0 1 El motor frena (fast-stop)

Page 49: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

49

CONCLUSION

En este proyecto pudimos aprender los verdadero fundamentos matemáticos que

son necesarios para poder entender un como es controlado un robot autómata y

cual son las variables que necesitan ser controladas tanto mecánicamente como

lógica y eléctricamente uno de los mayores problemas acerca de este proyecto fue

el poder grabarlo y llevar a cabo todas sus operaciones pertinentes, así como fue

la obtención de los dispositivos los cuales son bastante escasos y generalmente

son manejados por empresas no muy comerciales.

Una de las cosas que pudimos observar es que realmente se necesita un lenguaje

de alto nivel para poder hacer las operaciones necesarias ya que en lenguajes

más bajos como ensamblador se tornarían bastante difíciles.

Nos dimos cuenta también acerca de los errores que podían tener nuestro circuito

y de que muchas cosas podrían salir mal, como por ejemplo; desde el grabador

hasta las señales de referencia y de erros hasta el programa en sí. Se necesita ser

bastante cuidadoso en el manejo y la conexión de estos dispositivos ya que son

afectados por simple estática.

En general es un buen proyecto pero es lo bastante pesado como para pensar en

que se necesita tiempo y dedicación.

Page 50: Reporte Proyecto Final

Universidad de Guadalajara Ingeniería Mecatrónica

50

BIBLIOGRAFIA

Ingeniería de control moderno OGATA tercera edición

Control Automático de procesos Teoría y Práctica Carlos A. Smith University of South Florida Armando B. Corripio Louisiana State University

Wikipedia.com

www.fi.uba.ar/laboratorios/lscm/hidraulica3.pdf

http://www.monografias.com/trabajos11/valvus/valvus.shtml

F. Franklin. Feedback Control of Dynamic Systems. Addison Wesley, 1994. W. P. Aung.

Analysis on Modeling and Simulink of DC Motor and its Driving System Used for Wheeled Mobile Robot. World Academy of Science, 2007

http://www.societyofrobots.com/actuators_dcmotors.shtml

http://www.societyofrobots.com/programming_differentialdrive.shtml