Академический Документы
Профессиональный Документы
Культура Документы
1 Grado de Libertad
Con Motor Brushless
Interfases y Microcontroladores
Presentan:
Garcia Sánchez Eber Emmanuel
Mijangos Correa Alejandro
INTRODUCCION
Nuestro proyecto tiene como finalidad el desarrollar un prototipo integral, con base en los
conocimientos asimilados a lo largo de la trayectoria académica, que permita realizar el
Control Proporcional Integral Derivativo de un sistema de control a lazo cerrado, para el
control de posición en un balancín.
INDICE
INTRODUCCION 2
MARCO TEORICO 3
CONTROL PID 3
MICROPROCESADORES 4
MICROCONTROLADORES 4
ARQUITECTURA HARVARD 5
CONVERTIDOR ANALÓGICO-DIGITAL 5
MODULACIÓN POR ANCHO DE PULSOS (PWM) 6
DESARROLLO 7
CODIGO DE PROGRAMACION MPLAB 7
2
MARCO TEORICO
Control PID
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.
Cp(s) = Kp
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.
La señal de control u(t) tiene un valor diferente de cero cuando la señal 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.
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.
3
control derivativa nunca se utiliza por sı sola, debido a que solo es eficaz durante periodos
transitorios.
Microprocesadores
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso
(UCP), también llamada procesador, de un computador. La UCP está́ formada por la
Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.
Las patitas de un microprocesador sacan al exterior las líneas de sus buses de direcciones,
datos y control, para permitir conectarle con la Memoria y los Módulos de E/S y configurar
un computador implementado por varios circuitos integrados.
Microcontroladores
Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la
mayor parte de los elementos que configuran un controlador.
4
Un microcontrolador dispone normalmente de los siguientes componentes:
Arquitectura Harvard
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von
Neumann, en el momento presente se impone la arquitectura Harvard.
La arquitectura Harvard dispone de dos memorias independientes una, que contiene solo
instrucciones y otra, solo datos. Ambas disponen de sus respectivos sistemas de buses de
acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en
ambas memorias. Los microcontroladores PIC responden a la arquitectura Harvard.
Convertidor Analógico-Digital
La salida de los sensores, que permiten al equipo electrónico interaccionar con el entorno,
es normalmente una señal analógica, continua en el tiempo. En consecuencia, esta
información debe convertirse a binaria (cada dato analógico decimal codificado a una
palabra formada por unos y ceros) con el fin de adaptarla a los circuitos procesadores y de
presentación.
5
La conversión a digital se realiza en dos fases: cuantificación y codificación. Durante la
primera se muestrea la entrada y a cada valor analógico obtenido se asigna un valor o
estado, que depende del número de bits del CAD. El valor cuantificado se codifica en
binario en una palabra digital, cuyo número de bits depende de las líneas de salida del
CAD. Estos dos procesos determinan el diseño del circuito integrado.
La principal desventaja que presentan los circuitos PWM es la posibilidad de que haya
interferencias generadas por radiofrecuencia. Estas pueden minimizarse ubicando el
controlador cerca de la carga y realizando un filtrado de la fuente de alimentación.
Para un sistema digital, es relativamente fácil medir cuánto dura una onda cuadrada. Sin
embargo, si no se tiene un conversor analógico digital no se puede obtener información de
un valor analógico, ya que sólo se puede detectar si hay una determinada tensión, 0 o 5
voltios por ejemplo (valores digitales de 0 y 1), con una cierta tolerancia, pero no puede
medirse un valor analógico. Sin embargo, el PWM en conjunción con un oscilador digital,
un contador y una puerta AND como puerta de paso, podrían fácilmente implementar un
ADC.
6
DESARROLLO
// CONFIG1
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can
be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // RE3/MCLR pin function select bit (RE3/MCLR pin
function is MCLR)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is
disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection
is disabled)
#pragma config BOREN = OFF // Brown Out Reset Selection bits (BOR disabled)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock
Monitor is enabled)
#pragma config LVP = OFF // Low Voltage Programming Enable bit (RB3 pin has
digital I/O, HV on MCLR must be used for programming)
7
// CONFIG2
#pragma config BOR4V = BOR40V // Brown-out Reset Selection bit (Brown-out Reset
set to 4.0V)
#pragma config WRT = OFF // Flash Program Memory Self Write Enable bits (Write
protection off)
#include <xc.h>
#define _XTAL_FREQ 4000000
void configuracion(void)
{
//PWM
TRISCbits.TRISC1=0;
PR2=0xFF;
CCP2CONbits.CCP2M3=1;
CCP2CONbits.CCP2M2=1;
CCPR2L=0b11000000;
CCP2CONbits.DC2B1=0;
CCP2CONbits.DC2B0=0;
PIR1bits.TMR2IF=0;
T2CONbits.T2CKPS1=1;
T2CONbits.T2CKPS0=0;
T2CONbits.TMR2ON=1;
//ADC
ANSEL=0xFF;
ANSELH=0x00;
TRISA=0xff;
TRISB=0x00;
TRISD=0x00;
8
ADCS1=1;
ADCS0=0;
CHS3=0;
CHS2=0;
CHS1=0;
CHS0=1;
ADIE=0;
ADON=1;
ADFM=0;
VCFG1=0;
VCFG0=0;
}
void main(void) {
configuracion();
CCPR2L=50;
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
9
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
CCPR2L=60;
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
while(1)
{
ADCON0bits.GO=1;
PORTB=ADRESH;
while(ADCON0bits.GO==1){
//SENSOR
y=ADRESH;// posicion actual
e = ref-y;// error en el presente
//CONTROLADOR
P=Kp*e;//control proporcional
I=Ki*Ts*(e+e_1);// control integral
D=Kd*((e-e_1)/Ts);//contrtol derivativo
//SE—AL DE CONTROL
u=P+I+D;// accion de control
e_1=e;//;// error para el instante anterior
10
}
while(PIR1bits.TMR2IF==0)
TRISCbits.TRISC1=0;
}
return;
}
11