Académique Documents
Professionnel Documents
Culture Documents
DEPARTAMENTO DE INGENIERIAS
INGENIERIA MECATRONICA
Servoactuadores
Universidad de Guadalajara 2
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 3
Ingeniería Mecatrónica
OBJETIVO GENERAL
OBJETIVOS ESPECIFICOS
Universidad de Guadalajara 4
Ingeniería Mecatrónica
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.
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.
Universidad de Guadalajara 5
Ingeniería Mecatrónica
MARCO TEORICO
Motores de Corriente Directa (DC)
Universidad de Guadalajara 6
Ingeniería Mecatrónica
Conceptos Relacionados Con El Control
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.
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.
Universidad de Guadalajara 7
Ingeniería Mecatrónica
Modelo Matemático De La Planta
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:
Sistema de Ecuaciones
El par de torsión del motor está relacionado con la corriente 𝑖, de la armadura, por
𝐾 de par constante:
𝑇 = 𝐾𝑖 (1)
𝑑𝜃
𝑒𝑎 = 𝐾𝑊𝑚 = 𝐾 (2)
𝑑𝑡
Del diagrama del sistema podemos escribir las siguientes ecuaciones basadas en
las leyes de Kirchoff.
Universidad de Guadalajara 8
Ingeniería Mecatrónica
𝑑 2𝜃 𝑑𝜃
𝐽 +𝑏 = 𝐾𝑖 (3)
𝑑𝑡2 𝑑𝑡
𝑑𝑖 𝑑𝜃
𝐿 + 𝑅𝑖 = 𝑉 − 𝐾 (4)
𝑑𝑡 𝑑𝑡
Función de Transferencia
𝐽𝑠 2 𝜃 𝑠 + 𝑏𝑠 𝜃 𝑠 = 𝐾𝐼(𝑠) (5)
𝐿𝑠𝐼 𝑠 + 𝑅𝐼 𝑠 = 𝑉 𝑠 − 𝐾𝑠𝜃(𝑠) (6)
Donde 𝑠 denota el operador de Laplace. De (6) podemos expresar que
𝑉 𝑠 − 𝐾𝑠𝜃 (𝑠)
𝐼 𝑠 = (7)
𝑅+𝐿𝑠
Y sustituir en (5) para obtener
Universidad de Guadalajara 9
Ingeniería Mecatrónica
T(s) 𝜔(𝑠) ϴ(s)
V(s) I(s)
𝜃 (𝑠) 𝐾
𝐺𝑎 𝑠 = = (9)
𝑉(𝑠) {𝑠[ 𝑅+𝐿𝑠 𝐽𝑠 +𝑏 +𝐾 2 ]}
𝜔 (𝑠) 𝐾
𝐺𝑣 𝑠 = = (10)
𝑉(𝑠) {[ 𝑅+𝐿𝑠 𝐽𝑠 +𝑏 +𝐾 2 ]}
Universidad de Guadalajara 10
Ingeniería Mecatrónica
EXPERIMENTOS
Universidad de Guadalajara 11
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 12
Ingeniería Mecatrónica
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
Universidad de Guadalajara 13
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 14
Ingeniería Mecatrónica
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.
𝑉𝑡 2∗𝜋∗𝑁
𝑊𝑀 = =
𝐾 60
Entonces
2 ∗ 𝜋 ∗ 320
𝑤𝑚 =
60
Sustituyendo los valores
Universidad de Guadalajara 15
Ingeniería Mecatrónica
2010.624
𝑤𝑚 =
60
Haciendo los cálculos correspondientes
𝑤𝑚 = 33.5104
𝑉𝑡
𝐾=
𝑤𝑚
6
𝐾=
33.5104
𝐾 = 0.1790
0 = 𝐾𝑖 − 𝑏𝑤𝑚
𝐾𝑖
𝑏=
𝑤𝑚
0.1790 ∗ 0.008
𝑏=
33.51
Haciendo los cálculos correspondiente
𝑏 = 0.00004273
Vt = 6 Volts
R = 0.750 Ω
L = 0.375 henrio
J = 0.01
K = 0.1790
b = 0.00004273
Universidad de Guadalajara 16
Ingeniería Mecatrónica
Implementacion
MP-Lab
Universidad de Guadalajara 17
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 18
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 19
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 20
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 21
Ingeniería Mecatrónica
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í:
Universidad de Guadalajara 22
Ingeniería Mecatrónica
Editando el código
Universidad de Guadalajara 23
Ingeniería Mecatrónica
Compilando el Código
Universidad de Guadalajara 24
Ingeniería Mecatrónica
Error
Buena Compilación
Universidad de Guadalajara 25
Ingeniería Mecatrónica
Cargar el programa al PIC
Universidad de Guadalajara 26
Ingeniería Mecatrónica
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;
Universidad de Guadalajara 27
Ingeniería Mecatrónica
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);
Universidad de Guadalajara 28
Ingeniería Mecatrónica
}
// 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);
Universidad de Guadalajara 29
Ingeniería Mecatrónica
}
/* 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;
}
}
Universidad de Guadalajara 30
Ingeniería Mecatrónica
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);
}
}
Universidad de Guadalajara 31
Ingeniería Mecatrónica
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
Universidad de Guadalajara 32
Ingeniería Mecatrónica
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);
}
Universidad de Guadalajara 33
Ingeniería Mecatrónica
RUTINA PARA ROBOT SEGUIDOR DE LINEA
#include "16f877.h"
#include<reg.h>
void main()
{
unsigned char i,BAND=0;
unsigned char conta;
TRISA=0x1F;
TRISB=0x00;
OPTION=0x02;
GIE=1;
T0IE=1;
while(1)
{
if (SENSOR1==TRUE & SENSOR2==TRUE) /* 2 SENSORES EN LA LINEA */
{
PWM(90,90);
}
Universidad de Guadalajara 34
Ingeniería Mecatrónica
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);
}
}
}
}
Universidad de Guadalajara 36
Ingeniería Mecatrónica
Implementacion Física
Universidad de Guadalajara 37
Ingeniería Mecatrónica
Apéndice A
Controlador PID
Universidad de Guadalajara 38
Ingeniería Mecatrónica
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.
𝐾𝑝 𝑡
𝑢 𝑡 = 𝐾𝑝 𝑒 𝑡 + 𝑒 𝑡 𝑑𝑡
𝑇𝑖 0
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.
𝐶𝑃𝐷 𝑠 = 𝐾𝑝 + 𝑠𝐾𝑝 𝑇𝑑
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
Universidad de Guadalajara 39
Ingeniería Mecatrónica
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.
𝐾𝑝 𝑡
𝑑𝑒(𝑡)
𝑢 𝑡 = 𝐾𝑝 𝑒 𝑡 + 𝑒 𝑡 𝑑𝑡 + 𝐾𝑝 𝑇𝑑
𝑇𝑖 0 𝑑𝑡
Y su función de transferencia resulta:
1
𝐶𝑃𝐼𝐷 = 𝐾𝑝 (1 + + 𝑇𝑑 𝑠)
𝑇𝑖 𝑠
Universidad de Guadalajara 40
Ingeniería Mecatrónica
Apéndice B
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.
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
Universidad de Guadalajara 41
Ingeniería Mecatrónica
Apéndice C
Transformada de Laplace
Definición de la Transformada
Sea f una función definida para , la transformada de Laplace de f(t) se
define como:
Notas
Universidad de Guadalajara 42
Ingeniería Mecatrónica
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
Universidad de Guadalajara 43
Ingeniería Mecatrónica
Apéndice D
Función de Transferencia
Uno de los primeros matemáticos en describir estos modelos fue Laplace, a través
de su transformación matemática.
Universidad de Guadalajara 44
Ingeniería Mecatrónica
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:
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.
Universidad de Guadalajara 45
Ingeniería Mecatrónica
Apéndice E
PIC 16F877A
- Arquitectura Harvard
- Tecnología RISC
- Tecnología CMOS
Variantes principales
Los microcontroladores que produce Microchip cubren una amplio rango de
dispositivos cuyas características pueden variar como sigue:
Universidad de Guadalajara 46
Ingeniería Mecatrónica
Apéndice F
Puente H
Universidad de Guadalajara 47
Ingeniería Mecatrónica
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
Universidad de Guadalajara 48
Ingeniería Mecatrónica
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.
Universidad de Guadalajara 49
Ingeniería Mecatrónica
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
Universidad de Guadalajara 50
Ingeniería Mecatrónica