Sei sulla pagina 1di 15

c cc

c 
c

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA Y
TECNOLOGÍAS AVANZADAS

     c
     

  

PROFESOR: EL FILIALI BRAHIM

BARRERA RIVERA CITLALLI


MARTÍNEZ PONCE ROBERTO ABRAHAM
XICOTÉNCATL CORDERO GONZALO
4BM3
MAYO 2010
     c
      

 c
 Reconocimiento y Análisis del sistema.

 Establecer el modelo matemático del sistema.

 Simular el sistema modelado diseñando el controlador digital para una respuesta específica.

 Implementación del sistema.

 c c 

Uno de los objetivos para el proyecto que se quiere realizar es lograr posicionar con precisión el
motor D.C, para que así, el error de estado estacionario de la posición 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 alcance muy rápidamente su posición final. 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 en la posición deseada y en el menor tiempo posible.

La retroalimentación se hará por medio de un encoder acoplado al eje del motor, el cual enviará
constantemente códigos digitales al microcontrolador indicándole su posición.

MODELO MATEMÁTICO DE LA PLANTA

Considerando que nuestro motor tiene un eje rígido, por medio de sus ecuaciones eléctricas y
mecánicas, al relacionarlas, podemos obtener el modelo del motor en el cuál la entrada es la
tensión aplicada 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 J.

 Coeficiente de amortiguamiento del sistema mecánico (b).

 Constante de fuerza electromotriz K=Ke=Kt.

 Resistencia eléctrica (R).

 Inductancia eléctrica (L).

j
     c
      

 Entrada (V): Fuente de Tensión.

 Salida (W): velocidad rotacional del eje.

c    c 
El control automático es el mantenimiento de un valor deseado dentro de una cantidad o
condición midiendo el valor existente, comparándolo con el valor deseado, utilizando la diferencia
para proceder a reducirla. En consecuencia, el control automático exige un lazo cerrado de acción
y reacción que funcione sin intervención humana.

MODULACIÓN POR ANCHO DE PULSOS

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.

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.

Algunos parámetros importantes de un PWM son:

GY La relación de amplitudes entre la señal portadora y la moduladora, siendo recomendable


que la última no supere el valor pico de la portadora y esté centrada en el valor medio de
ésta.

GY La relación de frecuencias, donde en general se recomienda que la relación entre la


frecuencia de la portadora y la de señal sea de 10 a 1.

Sin embargo cuando se utilizan servomotores hay que tener cuidado en las marcas comerciales ya
que hay ocasiones en que los valores varían entre 1ms y 2ms y estos valores propician errores.

En la actualidad existen muchos circuitos integrados en los que se implementa la modulación


PWM, además de otros muy particulares para lograr circuitos funcionales que puedan controlar
fuentes conmutadas, controles de motores, controles de elementos termoeléctricos, choppers

O
     c
      

para sensores en ambientes ruidosos y algunas otras aplicaciones. Se distinguen por fabricar este
tipo de integrados compañías como Texas Instruments, National Semiconductor, Maxim, y algunas
otras más.

En los motores: La modulación por ancho de pulsos es una técnica utilizada para regular la
velocidad de giro de los motores eléctricos de inducción o asíncronos. Mantiene el par motor
constante y no supone un desaprovechamiento de la energía eléctrica. Se utiliza tanto en corriente
continua como en alterna, como su nombre lo indica, al controlar: un momento alto (encendido o
alimentado) y un momento bajo (apagado o desconectado), controlado normalmente por
relevadores (baja frecuencia) o MOSFET o tiristores (alta frecuencia).

Otros sistemas para regular la velocidad modifican la tensión eléctrica, con lo que disminuye el par
motor; o interponen una resistencia eléctrica, con lo que se pierde energía en forma de calor en
esta resistencia.

Otra forma de regular el giro del motor es variando el tiempo entre pulsos de duración constante,
lo que se llama modulación por frecuencia de pulsos.

En los motores de corriente alterna también se puede utilizar la variación de frecuencia.

La modulación por ancho de pulsos también se usa para controlar servomotores, los cuales
modifican su posición de acuerdo al ancho del pulso enviado cada un cierto período que depende
de cada servo motor. Esta información puede ser enviada utilizando un microprocesador como el
Z80, o un microcontrolador (por ejemplo, un PIC 16F877A de la empresa Microchip).

ELEMENTOS UTILIZADOS EN ESTE PROYECTO

ÈY c 

!
     c
      

ÈY c 

Un PID (Proporcional Integral


Derivativo) es un mecanismo de
control por realimentación que se
utiliza en sistemas de control
industriales. Un controlador PID
corrige el error entre un valor
medido y el valor que se quiere
obtener calculándolo y luego
sacando una acción correctora que
puede ajustar al proceso acorde. El
algoritmo de cálculo del control
PID se da en tres parámetros distintos: el proporcional, el integral, y el derivativo. El valor
Proporcional determina la reacción del error actual. El Integral genera una corrección proporcional
a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de
seguimiento se reduce a cero. El Derivativo determina la reacción del tiempo en el que el error se
produce. La suma de estas tres acciones es usada para ajustar al proceso vía un elemento de
control como la posición de una válvula de control o la energía suministrada a un calentador, por
ejemplo. Ajustando estas tres constantes en el algoritmo de control del PID, el controlador puede
proveer un control diseñado para lo que requiera el proceso a realizar. La respuesta del
controlador puede ser descrita en términos de respuesta del control ante un error, el grado el cual
el controlador llega al "set point", y el grado de oscilación del sistema. Nótese que el uso del PID
para control no garantiza control óptimo del sistema o la estabilidad del mismo. Algunas
aplicaciones pueden solo requerir de uno o dos modos de los que provee este sistema de control.
Un controlador PID puede ser llamado también PI, PD, P o I en la ausencia de las acciones de
control respectivas. Los controladores PI son particularmente comunes, ya que la acción derivativa
es muy sensible al ruido, y la ausencia del proceso integral puede evitar que se alcance al valor
deseado debido a la acción de control.

ÈY  

Un encoder es un codificador rotatorio, también llamado codificador del eje, suele ser un
dispositivo electromecánico usado para convertir la posición angular de un eje a un código digital,
lo que lo convierte en una clase de transductor.

]
     c
      



Para el desarrollo de este proyecto se realizo el circuito mostrado en la siguiente figura:

Una vista rápida del proyecto a diagrama a bloques:

Se realizo la programación del PIC:

 



#include "C:\Documents and Settings\MART. PONCE\Escritorio\p1\main.h"


#include <LCD.C>

void encoder(void);
void saludo(void);
void main()
{
int pot=0;
float por=0;

ƒ
     c
      

setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,99,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(0);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the
PICWizard
lcd_init();
saludo();
set_adc_channel( 0 ); //Pin RA0
delay_us(30);
pot = read_adc();
set_pwm1_duty (pot);
por=pot*1.0;
por=(por*100/255);
lcd_gotoxy(5,2);
printf(lcd_putc, "%3.1f ",por);
lcd_gotoxy(10,2);
lcd_putc("%");
delay_ms(200);

void encoder(void);

//una vez leido el encoder sabiendo las revoluciones


//nos damos a la tarea del PID
int16 revoluciones;
int16 control; //valor pwm
float a,b,c; //constantes de pid
float temp_limit; //revoluciones a alcanzar
float rt,et,it,dt,yt,ut,ito,eto,it_1,et_1; //variables de ecuaciones
float mas,min;// limites maximo minimo
min=0.0,max=1000.0;
it_1=0.0;
et_1=0.0;
a=0.1243; // cons pid
b=0.0062;
c=0.6215;
temp_limit=500.0; // temp a alcanzar
TRISC=0;
setup_timer_2(t2_div_by_4,249,1);//periodo a pwm
setup_ccp1(ccp_pwm); //modulo ccp a modo pwm
setup_adc_ports(all analog);
setup_adc(adc_clock_internal);
set_adc_channel(0);
while(1){

š
     c
      

valor=read_adc(); //lectura pot


yt=valor*5000.0/1024; //conversion a revoluciones
tr=temp_limit;
et=rt-yt; //calculo error
it=b*et+it0; //calculo termino integral
dt=c*(et-et0); //calculo termino derivativo
ut=it+a*et+dt //calculo salida pid
if(ut>max){
ut=max;}
else{
if(ut<min){
ut=min;}
}
control=ut;
set_pwm1_duty(control);
ito=it;
eto=et
delay_ms(100);
}
}

void saludo(void){
lcd_gotoxy(1,1);
lcd_putc ("Control");
delay_ms(100);

lcd_gotoxy(1,2);
lcd_putc("PWM");
delay_ms(100);

lcd_gotoxy(13,1);
lcd_putc("Revo");
delay_ms(100);
}
void encoder(void){
int16 TFB;
float AP;
int1 nuevopulso=0;
int1 cambio=0;

#int_ext
void funcion_ext_int(){

l
     c
      

if(cambio==0){
set_timer1(0);
ext_int_edge(0,H_TO_L);
cambio=1;
}else{
TFB=get_timer1();
ext_int_edge(0,H_TO_L);
cambio=0;
if(nuevopulso==0){
nuevopulso=1;
}
}
}

Una vez que obtenemos nuestra entrada del sistema, obtenemos el modelo realizando los cálculos
correspondientes:

CÁLCULOS:

ECUACIONES DE ELEMENTOS:

 
R   
 

R   


ECUACIONES DE EQUILIBRIO:

  
   R    
   
R  R  R

°
SUSTITUYENDO LAS ECUACIONES DE ELEMENTOS EN LAS ECUACIONES DE EQUILIBRIO


      



R  


DESEAMOS OBTENER MI/O(ʘ)



     


-Y CAMBIANDO AL DOMINIO DE LA PLACE:

     
  

!"

     
    # $ # $   
!" !"

     %          


!" !"

 


    %      
!" !" !" !"

EN EL DOMINIO DEL TIEMPO ESTO ES:

&  


    ' ( '  ) ( 
!"  & !"  !"

!" &  

 *+ !"
    ' ( ' (
 & 

EN LAPLACE TENEMOS:

!" 

 *+ !"
     %   ' (   ' (

NUESTRA ECUACIÓN DE TRANSFERENCIA QUEDA:

, 

%    - 

DONDE:
!"
,

' (

     c
      


 *+ !"
-' (

PARA LAS CONDICIONES INICIALES DEL SISTEMA SE OBTUVIERON LAS SIGUIENTES CONSTANTES:

Resistencia 50
Corriente 0.1
Bobina 0.15
Tensión 12
Fricción 0.18
Velocidad 130.9
Kf 0.053475936
Ka 235.62
Momento 0.0000018


-Y  !" #$!%$

D=1,2 cm=0,012 m por lo que r=0,006 m; m=50 g=0,05 kg

J = mr2 = (0,05 kg)(0,006 m)2 = 1,8x10-6 [kgm2]

&'()*+,-./

-Y 0$%%$1!

Por la tabla obtuvimos que

&)'

áá
     c
      

-Y   2$2"!%$ 3  % $!": Para la entrada máxima que es con una tensión de
entrada de 12 V el fabricante garantiza 1250 rmp, donde podemos obtener los valores
siguientes valores realizando las operaciones necesarias:

&4)5

Y de la corriente:

c&)'


-Y 6 %$##7

= ʘ; 1250 rpm = 130,9


þ þ
Sabemos que 1 rpm=0.10471976 . .

/01
7&8)'9 2


-Y :0
 
Si Y      YY   3  YYYYY   4Y

56

Tenemos      3  , donde   

:0&))48;498

-Y 6 #:se igualan ecuaciones



R   3  , R     donde resulta


Ka*i = J*dʘ/dt + B*ʘ ; donde J*dʘ/dt =0 y se reduce a Ka*i = B*ʘ y Ka=B*ʘ/i

:&.84.

-Y < <$! por el fabricante sabemos que 

&)'))4=

ÈY NUESTROS VALORES DE
,  Y SON:

A 872666666.7
B 100333.33333333300
C 46666675.67

áj
     c
      

ÈY La función de transferencia queda:

, 789::::::;8
 %
%    -   <44===;====>  ?:::::8@;:8

Realizamos la simulación en MATLAB con SIMULINK:

Una vez simulado en MATLAB en la ventana de configuración de nuestra señal de entrada, ver
ilustración 12, cabíamos el valor del porcentaje de señal que deseamos tener arriba (tiempo
arriba) y obtenemos, para cada una de las combinaciones mostradas, la gráfica de entrada y de
salida, también el valor máximo y mínimo de ambas señales.

áO
     c
      

Para un 90% obtuvimos una grafica como la que se muestra:

˜

˜

˜˜

˜ ˜        

Los valores obtenidos para la sintonización son:

:>&)'.;8

$&.

#&)'4

Para medir las revoluciones que tiene el motor se utilizó un encoder, el cual nos envía una señal a
pulsos el cual lee las vueltas que se generan, este encoder cuenta con 90 ranuras, por lo que al
número de pulsos generados se les dividirá entre 90 para saber el número real.

Esta imagen es un ejemplo de la señal que nos envía el encoder:

á!
     c
      

cc
?


-Y http://es.wikipedia.org/wiki/Revoluciones_por_minuto
-Y www.sapiensman.com/control_automatico
-Y http://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsos
-Y http://es.wikipedia.org/wiki/Proporcional_integral_derivativo
-Y www.engr.usask.ca/classes/EE/391/notes/PIC16F886.pdf

á]

Potrebbero piacerti anche