Documente Academic
Documente Profesional
Documente Cultură
Laboratorio #4
Universidad Nacional de Ingeniera
Facultad de Ingeniera Mecnica
Autores:
Garca Portocarrero, Williams
Hernndez Nez, Luis Alonso
Novoa Oliveros, Erland Fernando
Ramos Vilcas, Boris Maynard
Control Digital
Laboratorio4: Control de un motor DC
TABLA DE CONTENIDO
ELECTRONICA ..................................................................................................................................... 2
1) ELECTRONICA PARA LA ADQUISICIN DE DATOS ......................................................... 2
2) ELECTRONICA PARA GENERACIN DE LA SEAL ........................................................... 3
3) CONEXIONES Y ADQUISICION DE DATOS ........................................................................... 5
Identificacin del Sistema ....................................................................................................................... 7
CONTROL PID .................................................................................................................................... 10
Objetivos: ......................................................................................................................................... 10
Obtencin del Controlador ............................................................................................................... 10
Simulacin en LabVIEW.................................................................................................................. 15
Implementacin del control .............................................................................................................. 16
Observaciones y conclusiones: ......................................................................................................... 18
CONTROL DEADBEAT ..................................................................................................................... 19
Objetivos: ......................................................................................................................................... 19
Obtencin del Controlador ............................................................................................................... 19
Simulacin en LabView ................................................................................................................... 21
Implementacin del Control ............................................................................................................. 24
Conclusiones:.................................................................................................................................... 25
Comentarios sobre la comparacin de controladores............................................................................ 26
Referencias:........................................................................................................................................... 26
Anexos: Controlador fuzzy PID ............................................................................................................ 26
Control Digital
Control de un motor DC
ELECTRONICA
Para variar la seal de control al motor y recibir los datos del encoder se diseara circuitos respectivos
para solo generar y recibir seales anlogas.
Fig. Motor DC
1) ELECTRONICA PARA LA ADQUISICIN DE DATOS
Para la adquisicin de datos del encoder se diseara u convertidor frecuencia voltaje.
El encoder en cuestin nos generar 3 KHz para la velocidad medida mxima. Se usara el
integrado LM331 de modo frecuencia voltaje, al que nos genere un voltaje mximo de 4.7 voltios
con un offset despreciable de modo que sea nuestro rango de entrada.
En la figura siguiente se muestra el circuito diseado para estas caractersticas:
15 V
RT
10k
6.8k
65k
CT
10nF
U1
10k
VCC
CMIN
FOUT
R-C
REFI
THR
Vo
IOUT
GND
RL
fin
4
LM331
330k
1uF
470pF
Control Digital
El circuito anterior funciona con perfeccin con cualquier microcontrolador, sin embargo en
funcionamiento con la DAQ el rango disminuir y el offset aumentara, error propio de los elementos
pasivos utilizados unidos con la DAQ. Para superar este problema se diseo un seguidor emisivo, con
un OPAM 741, tal que adquiramos el mismo rango de voltaje.
10k
Vi
3
6
Vo
4
1
5
UA741
Programacin PIC
#include <C:\Program Files (x86)\PICC\Devices\16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device adc=8
#use delay(clock=4M)
#include "lcd.c"
Control Digital
int8 AD_read=0;
void CCP_Init()
{
setup_timer_2(T2_DIV_BY_1,0xff,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(0);
}
void AD_Init()
{
set_tris_a(0x0F);
setup_adc(ADC_CLOCK_DIV_32);
setup_adc_ports(AN0);
}
void MCU_Init()
{
CCP_Init();
AD_Init();
}
void main(void)
{
MCU_Init();
set_adc_channel(0);
delay_us(50);
while(TRUE)
{
AD_read=read_adc();
set_pwm1_duty(AD_read);
}
}
La seal PWM generada entrar a un puente H que har variar la velocidad del motor por medio de
variacin de la alimentacin de este.
V
Q2
Q1
TIP127
Q7
D1
Q5
R8
TIP127
D2
1N4007
2N3904
1N4007
330
2N3904
R5
R1
470
10k
R9
R10
47
470
R2
3k
Q4
R6
Q3
10k
TIP122
Q8
V1
5V
R4
Q6
330
2N3904
D3
D4
1N4007
1N4007
TIP122
2N3904
R7
R3
10k
10k
Fig. Puente H
4
Control Digital
Laboratorio4: Control de un motor DC
En la siguiente tabla se muestra algunos datos adquiridos con alimentacin variable (entrada anloga
del PIC variable que luego har alimentacin variable al motor) para escalar la velocidad y ver si las
caractersticas de la seal medida.
Numero de ranuras del encoder : 100
5
Control Digital
ENCODER (Khz)
3,03
2,77
2,44
2,13
1,82
1,47
0,46
0,149
0
EJE (Hz)
30,3
27,7
24,4
21,3
18,2
14,7
4,6
1,49
0
EJE(RMP)
1818
1662
1464
1278
1092
882
276
89,4
0
En la siguiente grafica se muestra la linealidad del convertidor y se muestra que no hay offset lo que
nos favorece para el control.
3.5
y = 0.6466x + 0.005
R = 0.9999
3.03
2.77
2.5
2.44
2.13
2
1.82
1.5
1.47
1
0.5
0.46
0
0
0.149
0.5
1.5
2.5
3.5
4.5
Para la seal de salida se considerar la lectura del PIC (8 bits), pues es este el que har variar la
alimentacin del motor, entonces:
Control Digital
Laboratorio4: Control de un motor DC
Se obtuvo la misma respuesta con los dos algoritmos, lo que verifica la implementacin de este.
Obtuvimos la siguiente funcin de transferencia:
Control Digital
Laboratorio4: Control de un motor DC
Control Digital
Laboratorio4: Control de un motor DC
Conclusin:
A la luz de lo observado en el workbench podemos decir que nuestro modelo es bastante aproximado,
razn por la que consideramos que nuestros controladores diseados para ese modelo funcionarn en
la planta real. Adems es importante notar que el programar el algoritmo RLS en cdigo mathscript y
en bloques simples de LabVIEW nos permite validar el resultado del mismo algoritmo implementado
en bloques, dado que ya sabemos que el cdigo es correcto.
Control Digital
Laboratorio4: Control de un motor DC
CONTROL PID
Objetivos:
Obtener el controlador PID para el control de la velocidad del motor DC
Simular el control por 2 mtodos:
o Con ToolBox de Control (utilizando la funcin de transferencia del controlador y la
planta).
o Sin ToolBox de Control (utilizando la ley de control y la planta discretizada, ambos
expresados en ecuaciones recursivas).
Implementar el control por los 2 mtodos anteriores.
Dnde: R es mxima pendiente de la curva, L es el tiempo donde la lnea tangente cruza al eje de
tiempos, como se muestra en la figura anterior.
Con ello hallamos los parmetros del Kp, Ti y Td con las siguientes ecuaciones:
10
Control Digital
Laboratorio4: Control de un motor DC
Programacin en MATLAB:
clear all; clc; close all;
%-------------------------------------------------------------------------%
MODELO DE LA PLANTA
%-------------------------------------------------------------------------%Funcion de transferencia
Gp=tf(2.69,[1 2.75]);
Tadq=0.001;%tiempo de muestreo con que se adquiri la data
t=0:Tadq:1.965;
load salida1.lvm
y=salida1(:,2);
%-------------------------------------------------------------------------%
DISEO POR ZIEGLER Y NICHOLS
%-------------------------------------------------------------------------% Rastreo del punto de inflexin
Pmax=0;
imax=0;
for i=1:length(t)-1
P=(y(i+1)-y(i))/(t(i+1)-t(i));
if P>Pmax
Pmax=P;
imax=i;
end
end
ymax=[y(imax) y(imax+1)];
tmax=[t(imax) t(imax+1)];
%Generamos la recta que pasa por el punto de inflexin
P=polyfit(tmax,ymax,1);
R=polyval(P,t); %valores de la recta
%Ploteo la curva de reaccin
figure(1)
plot(t,y,'k','LineWidth',2)
hold
plot(t,R,'r--','LineWidth',2)
axis([0 2 0 5])
title('\bf Curva de Reaccin')
xlabel('\bf t(seg)')
ylabel('\bf Amplitud')
grid
R=P(1);
L=roots(P);
K=median(y(length(y)-3:length(y)));
T=roots(P-[0 K]);
T=T-L;
disp('K L T')
disp([K L T])
Kp=1.2/(R*L);
Ki=0.5*Kp/L;
Kd=0.5*L*Kp;
%Funcin de transferencia del controlador
Gc=tf([Kd Kp Ki],[1 0]);
%-------------------------------------------------------------------------Loop=series(Gc,Gp);
FLC=Loop/(1+Loop);
%FT en lazo cerrado
%-------------------------------------------------------------------------%
REDISEO
11
Control Digital
Laboratorio4: Control de un motor DC
%-------------------------------------------------------------------------Ts=(L+T)/40.0;
%Periodo de muestreo=rising time/10
Gpz=c2d(Gp,Ts,'zoh');
tk=0:Ts:1.965;
%-------------------------------------------------------------------------%
CONTROL CONTINUO
%-------------------------------------------------------------------------syspz1=feedback(Gc*Gp,1);
y1=step(syspz1,tk);
%-------------------------------------------------------------------------%
USANDO MATCHED
%-------------------------------------------------------------------------syscz3=c2d(Gc,Ts,'matched');
syspz3=feedback(syscz3*Gpz,1);
y3=step(syspz3,tk);
%-------------------------------------------------------------------------%
USANDO TUSTIN
%-------------------------------------------------------------------------Gti=tf(Ki,[1 0]);
Gtd=tf([Kd 0],1);
syscz4i=c2d(Gti,Ts,'tustin');
%syscz4d=c2d(Gtd,Ts,'tustin');
syscz4=Kp+syscz4i;
syspz4=feedback(syscz4*Gpz,1);
y4=step(syspz4,tk);
%-------------------------------------------------------------------------%
PLOTEO CONTINUO
%-------------------------------------------------------------------------figure(2)
plot(tk,y1,'b','LineWidth',2)
title('Controlador Continuo')
xlabel('t');
ylabel('Amplitude');
grid on
%-------------------------------------------------------------------------%
PLOTEO MATCHED
%-------------------------------------------------------------------------figure(3)
plot(tk,y3,'c','LineWidth',2)
title('Controlador MATCHED')
xlabel('t');
ylabel('Amplitude');
grid on
%-------------------------------------------------------------------------%
PLOTEO TUSTIN
%-------------------------------------------------------------------------figure(4)
plot(tk,y4,'r','LineWidth',2)
title('Controlador TUSTIN')
xlabel('t');
ylabel('Amplitude');
grid on
%-------------------------------------------------------------------------%
TODO JUNTO
%-------------------------------------------------------------------------figure(5)
hold on
plot(tk,y1,'b','LineWidth',2)
12
Control Digital
Laboratorio4: Control de un motor DC
plot(tk,y3,'c','LineWidth',2)
grid on
xlabel('t');
ylabel('Amplitude');
legend('Controlador Continuo', 'Controlador Matched');
%-------------------------------------------------------------------------%
ROOT LOCUS
%-------------------------------------------------------------------------figure(6)
rlocus(FLC);
Grficas Obtenidas
13
Control Digital
Laboratorio4: Control de un motor DC
Control Digital
Ki=4.2342
Kd=0.0295
Simulacin en LabVIEW
Se realiz con el siguiente programa:
15
Control Digital
Laboratorio4: Control de un motor DC
16
Control Digital
Laboratorio4: Control de un motor DC
Importante:
Los resultados experimentales obtenidos no son mostrados ya que la calificacin de ello fue
presencial.
17
Control Digital
Laboratorio4: Control de un motor DC
Observaciones y conclusiones:
El control PID sintonizado por Ziegler y Nichols normalmente genera un sobreimpulso
considerable. En nuestro caso ello no fue tan notorio, el sobreimpulso fue solo de 10%.
Al aplicar el mtodo de Ziegler y Nichols sobre la data adquirida es importante primero
filtrar la data, de lo contrario el ruido presente en algn punto podra hacer que el algoritmo
mediante el que se halla la pendiente mxima falle.
En la simulacin en matlab se obtuvo una respuesta del controlador rediseado por el
mtodo de Matched bastante buena; no obstante, en primera instancia se prefiri el
rediseo por Tustin.
Luego de varias pruebas experimentales intentamos rediseando por Tustin el control PI y
aparte usando el mtodo Backward para la parte derivativa. Esto puede observarse
claramente en nuestros bloques del VI para simulacin.
Finalmente, creo que es importante hacer notorio el hecho de que al disminuir mucho el
tiempo de muestreo, la seal de control suele volverse oscilatoria respecto de un punto y
esto genera sonidos extraos en el motor probablemente dandolo. Este comentario sobre
la experimentacin nos hizo comprobar a nosotros los estudiantes el rol crucial que cumple
la seleccin apropiada del tiempo de muestreo para un sistema de control digital.
18
Control Digital
Laboratorio4: Control de un motor DC
CONTROL DEADBEAT
Objetivos:
Obtener el controlador Deadbeat para el control de la velocidad del motor DC
Simular el control por 2 mtodos:
o Con ToolBox de Control (utilizando la funcin de transferencia del controlador y la
planta).
o Sin ToolBox de Control (utilizando la ley de control y la planta discretizada, ambos
expresados en ecuaciones recursivas).
Implementar el control por los 2 mtodos anteriores.
Para una rpida obtencin de dicho controlador, se utiliz el siguiente programa en MATLAB.
Control Digital
Laboratorio4: Control de un motor DC
En el Scope observamos 3 graficas: La seal de control, las seales de entrada y salida, y el error,
respectivamente.
Es visible que la respuesta a un escaln de amplitud 5 es buena, ya que se tiene un corto tiempo
de establecimiento y no existe sobreimpulso ni error de estado estacionario. Es por ello que se
eligi este controlador Deadbeat, el cual est diseado para T=0.1seg.
Sin embargo, observamos que la seal de control llega a un poco ms de 20, es por ello que como
siguiente paso se hizo una simulacin en LabView, en la cual se satur la seal de control entre 0
y 5 (ya que se trabajar con una DAQ). Con lo cual se comprobar que dicha restriccin afectar
muy poco en el control.
20
Control Digital
Laboratorio4: Control de un motor DC
Simulacin en LabView
Se hizo simulacin siguiendo dos mtodos, los cuales tambin se aplic para el control
implementado. En ambos se us un saturador, para notar cmo afecta en el control.
1er Mtodo: Con ToolBox de Control
21
Control Digital
Laboratorio4: Control de un motor DC
22
Control Digital
Laboratorio4: Control de un motor DC
Donde:
El SubVI Planta, es la planta discretizada por ZOH y luego expresado como ecuacin
recursiva.
23
Control Digital
Laboratorio4: Control de un motor DC
24
Control Digital
Laboratorio4: Control de un motor DC
Importante:
Los resultados en el control de la planta real fueron mejores respecto a los de obtenidos en
simulacin, ya que la respuesta era sobreamortiguada y con un tiempo de estabilizacin de 1
a 3 segundos y un error de estado estacionario despreciable
Los resultados experimentales obtenidos no son mostrados ya que la calificacin de ello fue
presencial.
Conclusiones:
El Controlador DeadBeat, se obtuvo de manera rpida utilizando el programa en Matlab
mostrado, y se eligi un tiempo de muestreo adecuado para tener una buena respuesta.
Se simul usando el toolbox y sin l (por diferencias finitas), notando que las respuestas en
estado transitorio son totalmente distintas, esto es debido a que para el software operar con
diferencias finitas es menos pesado y hace que la respuesta sea ms rpida respecto a la
simulacin con el toolbox.
Los resultados experimentales fueron mostrados el da de la evaluacin presencial, en los
cuales se mostr que el control en la planta experimental fue mucho mejor respecto a lo
obtenido en simulacin.
25
Control Digital
Laboratorio4: Control de un motor DC
26
Control Digital
Laboratorio4: Control de un motor DC
Se tiene una combinacin de veinticinco reglas, usando el algoritmo de Mandani las primeras 5 son:
Programa de Labview
Valores de sintona:
27
Control Digital
Laboratorio4: Control de un motor DC
Panel Frontal
Fig. x.5
Uso del programa:
Fig. x.6
Vemos que la seal puede ser muy lenta o mala pero eso es parte de la velocidad para procesar los
grficos de la computadora.
Adquiriendo los datos y graficndolos con ayuda de MATLAB obtenemos, la grafica ms precisa de
lo que sucede.
28