Sunteți pe pagina 1din 56

1

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

UNIVERSIDAD NACIONAL DE INGENIERIA

CONTROL DE VELOCIDAD Y POSICIN DE UN MOTOR


Integrantes: Cueva Olivos, John Paul Sandoval Monzn, Hctor David Zevallos Gutirrez, Rmulo Profesor: M.Sc. Ricardo Rodrguez Bustinza Ciclo Acadmico: 2011-1
CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC 1

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

INTRODUCCION

En la actualidad, la ingeniera de control se ha convertido en una herramienta cada vez ms til en la industria. Debido a la alta gama de soluciones que puede ofrecernos, es imprescindible conocer los principales tipos de controles. Como ya hemos visto en ciclos anteriores, los cursos de control clsico y control moderno nos formaron una base muy slida de control, pero que pocas veces se tuvo la oportunidad de experimentar y observarlos fsicamente. Como se ha visto a lo largo del ciclo, el diseo de controladores digitales es muy similar a los controladores analgicos, con la gran diferencia de que la discretizacion nos permite implementar diferentes tipos de algoritmos en sistemas embebidos como microcontroladores, dsps, ordenadores, etc. con cambios casi imperceptibles en la electrnica, ya que el cambiar el tipo de controlador implicara solo un cambio del software. En el siguiente trabajo realizaremos el control de velocidad y posicin de un motor. Ambos, controles muy importantes en la industria. La aplicacin del control de velocidad de un motor la podemos apreciar cuando por ejemplo observamos una faja transportadora de botellas, la cual est sometida a soportar cargas variables. Supongamos el caso de una faja que transporta botellas de gaseosa, como sabemos, a veces la faja estar totalmente vaca y otras veces transportara 10, 20 o 100 botellas, el aumento de numero de botellas en la faja, ocasionara la disminucin de la velocidad. Es en esta parte en la que entra a tallar el control de velocidad del motor que gobierna la faja, procurando que esta mantenga siempre la misma velocidad para un correcto funcionamiento. Por otro lado la aplicacin del control de posicin de un motor es muy utilizada actualmente en robtica. Tenemos como un caso muy cercano el control de posicin de los motores en las articulaciones de un brazo robtico.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL DE VELOCIDAD DE UN MOTOR


Para el control de velocidad del motor hemos utilizado un motor DC con encoder sin caja reductora, el cual provena de una maquina fotocopiadora. Hemos elegido este motor debido a sus grande velocidades, ya que queramos hacer el control de velocidad en un rango de 0 a 1400 RPM. Aunque no conseguimos, la marca exacta del motor para poder obtener sus datos completos por medio de su datasheet, algunas de este motor son: Descripcin Voltaje Nominal Corriente Nominal Encoder Valor 12 1.8 100 Unidades Voltios Amperios ranuras

El motor cuenta con un encoder directamente acoplado al nico eje, ya que no tiene caja reductora, de este modo podemos obtener la velocidad del motor con l a frecuencia de de pulsos que nos arroje este encoder.

CONVERSOR FRECUENCIA-VOLTAJE
Entre los diversos circuitos existentes que nos permiten convertir la frecuencia en voltaje, hemos utilizado uno basado en el circuito integrado LM331, cuya conexin es la siguiente:

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Realizamos las pruebas previamente en el simulador de circuitos de Proteus-Isis:

Al realizar la simulacin para distintas valores de resistencias y condensadores basados en las formulas obtenidas en el datasheet del LM331, elegimos finalmente los valores del diseo de la figura anterior, obteniendo en la simulacin que el circuito responda bastante rpido, llegando a establecer el voltaje de salida en un tiempo de 30ms aproximadamente. Dicha velocidad de respuesta poda disminuirse an ms reduciendo el valor del capacitor C4, sin embargo, esta disminucin en el tiempo de respuesta traa consigo el aumento de ruido en la seal. Motivo por el cual los valores elegidos en el esquema eran los ms ptimos.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Como nuestra intencin es llevar a travs de la DAQ un valor analgico de velocidad hacia la la computadora para ser luego ingresada al controlador, debemos obtener la relacin existente entre la frecuencia que ingresa al conversor frecuencia-voltaje y el voltaje que existe a la salida. Para ello realizamos pruebas con distintos valores de voltaje de alimentacin al motor, con ello podamos generar distintas velocidades del motor, es decir distintas frecuencias del encoder y en cada caso medimos los valores arrojados a la salida del conversor frecuencia-voltaje. Los valores obtenidos fueron: Frecuencia 504 748 886 1031 1195 1346 1497 1660 1808 1964 2126 2298 2443 2586 2744 2915 3084 3322 V out 0.937 1.104 1.205 1.307 1.418 1.525 1.63 1.752 1.853 1.95 2.064 2.184 2.264 2.382 2.491 2.594 2.716 2.886 RPM 302.4 448.8 531.6 618.6 717 807.6 898.2 996 1084.8 1178.4 1275.6 1378.8 1465.8 1551.6 1646.4 1749 1850.4 1993.2

Al graficar estos resultados obtuvimos una grfica bastante lineal (casi perfecta).

RPM vs Vout
2500 2000 1500

y = 870.76x - 518.88 R = 0.9999

RPM vs Vout 1000 500 0 0 1 2 3 4 Lineal (RPM vs Vout)

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Del grafico anterior podemos apreciar que la relacin frecuencia-voltaje es casi 100% lineal y obedece a la ecuacin: y = 870.76x - 518.88 Con un error bastante pequeo, ya que: R = 0.9999 es decir, casi 1

DISEO DE LA FUENTE DE LA TARJETA ELECTRNICA


Otros componentes que requerimos en la parte electrnica, es una fuente que pueda aumentar a las diferentes partes electrnicas utilizadas. En nuestro caso dicha fuentes es la siguiente:

DISEO DEL CONVERTIDOR ANALGICO-MODULADOR DE ANCHO DE PULSO


Una vez recibida la seal censada de velocidad por la DAQ, esta la enviara a la PC, donde ser ingresada al controlador, devolvindonos una seal analgica de control que para ser enviada al motor deber previamente ser convertida a una modulacin de ancho de pulso. Es por este que ser necesario disear un convertidor analgico-pwm , el cual en nuestro caso est basado en un pic que recibir por una de sus entradas analgicas la seal de control y previo programa la convertir en una seal modulada con un ancho de pulso que ser proporcional al valor analgico de la seal de control.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

En este punto es importante recalcar que el PWM debe ser de una frecuencia igual o superior a los 20khz para no entrar en el rango audible humano, sin embargo ser suficiente que supere los 10KHZ. En nuestro caso siendo un pocos exigentes con las normas, diseamos nuestro programa para que el pic que genere PWM con una frecuencia de 20KHz.

DRIVER DE POTENCIA PARA EL MOTOR PUENTE H


Debido a que nuestro motor trabajaba siempre con corrientes que no superaban los 2 amperios, elegimos el integrado L298 que comprende dos puentes H de 2 amperios cada uno, pudindose utilizar ambos en paralelo para conseguir un puente H de hasta 4 Amperios. Sin embargo como dijimos antes, nuestro motor no supera los dos amperios, por lo que decidimos utilizar solo uno de los puentes H incorporados en este integrado. Es importante recalcar en este punto la importancia de colocar los 4 diodos a la salida del puente H tal como se indica en la figura con el fin de contrarrestar los voltajes inversos generados por la fuerza contra electromotriz en los motores cuando cambian de giro. Es recomendable que estos diodos sean ultrarrpidos para una descarga rpida de las bobinas.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

DISEO DE LA PLACA
Todos los componentes anteriores (Fuente, convertidor voltaje-frecuencia, convertidor Analgico-PWM y puente H) fueron incorporados en nuestra placa para el control de velocidad, teniendo como resultado la mostrada en los siguientes grficos:

VISTA TRIDIMENSIONAL DE LA PLACA

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

DETALLES DE LA PLACA DE CONTROL DE VELOCIDAD

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

10

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

ESQUEMA COMPLETO DE CONEXIN

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

10

11

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

ADQUISICIN DE LA PLANTA
Despus de un adecuado acondicionamiento de la seal se gener el siguiente esquema en labview (adquisicion.vi) para la adquisicin de los datos de la planta:

Como se puede observar en la figura anterior la data proveniente del convertidor frecuencia voltaje se le aplica un escalamiento debido que para una entrada cero el convertidor arroja un valor mnimo de 0,573175. Por esta razn se desmultiplexa la seal proveniente del DAQ Assitant 2 puesto que tiene configurado dos canales: voltage y voltage_0, el canal voltage el cual contiene la data proveniente del convertidor es restado por dicho valor y luego de esto es nuevamente multiplexado con voltage_0 y almacenado en adqui_LV.lvm y adqui_ML.lvm, los cuales fueron configurados con cabecera y sin cabeceras respectivamente.

IDENTIFICACIN DE LA PLANTA LABVIEW


Usando el archivo adqui_LV.lvm se dispuso a crear un nuevo proyecto idetificado_SE.seproj en signal express acoplado con el toolbox de sistemas de identificacin, para la identificacin se utiliz arx 1 1 1, a continuacin se puede observar la configuracin utilizada.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

11

12

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

12

13

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

En esta ultima imagen se puede apreciar que despues de ejecutar el proyecto se generara el archivo identificado.sim el cual se utiliza en el programa simulacion_modelo.vi para obetener la funcion de transferencia de la planta. Tales resulatdos se pueden apreciar claramente en la siguiente imagen:

Debido que se utiliz identificacin paramtrica ARX[1 1 1] como era obvio se obtuvo una funcin de transferencia de primer orden:

Como se puede ver la planta cuenta con un polo , el cual se encuentra en el semiplano izquierdo que nos indica que el sistema es estable. CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC 13

14

UNIVERSIDAD NACIONAL DE INGENIERIA MATLAB

MT 228 CONTROL DIGITAL

En esta ocasin se us el archivo adqui_ML.lvm, para ello se realiz el programa identi.m, el cual se encarga de crear los vectores (t, x, y) para luego ser usados mediante el guide de identificacin de matlab. El cdigo se muestra a continuacin
%identi.m clear all, close all, clc load adqui_ML.lvm t=adqui_ML(:,1); x=adqui_ML(:,4); y=adqui_ML(:,2); plot(t,x,'g',t,y,'b') title('Vin vs Vout') legend('Vin','Vout') grid on axis([0 5 -0.5 5.5])

Al ejecutar el programa se genera la grfica que muestra la seal de excitacin y la respuesta del sistema

A continuacin desde command window ejecutamos ident y realizamos las configuraciones para la identificacin

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

14

15

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Despus de haber configuramos debemos de obtener el siguiente esquema:

Activamos Model output y obtenemos la siguiente grafica

En la grfica anterior se puede apreciar que el modelo identificado con ARX[1 1 1] sigue de una manera correcta el comportamiento de la planta con un porcentaje de aproximacin de 95.39%. Tambin se realiz una implementacin de identificacin en matlab sin usar el guide para ello se realiz el programa ident_matlab.m, el cdigo se muestra a continuacin:
%ident_matlab.m clc; close all; clear all; % LECUTRA DE LA DATA % CASO 1: SUBAMORTIGUADO load adqui_ML.lvm

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

15

16

UNIVERSIDAD NACIONAL DE INGENIERIA


u1=adqui_ML(:,4); y1=adqui_ML(:,2); % Clculo de la cantidad de datos % N: nmero de datos [N1,nos]=size(u1);

MT 228 CONTROL DIGITAL

%% ACONDICIONANDO LA SEAL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Buscando el punto de inicio del flanco de subida y1=y1-2; u1=u1-2; i=1; while u1(i)>0 i=i+1; end i=i+1; while u1(i)<0 i=i+1; end punto=i; y1=[y1(punto:N1,:)]; u1=[u1(punto:N1,:)]; [N1,nos]=size(u1); % Calculo del mximo de la entrada max1=0; for i=1:N1 if max1<u1(i) max1=u1(i); end end min1=1000; for i=1:N1 if min1>u1(i) min1=u1(i); end end % Valor de correccin cor1=-min1; % Corrigiendo las seales y1=y1+cor1; u1=u1+cor1; max1=max1+cor1; min1=min1+cor1;

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

16

17

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

%% ESTIMACIN DE LA FUNCIN DE TRANSFERENCIA DATAX=[y1 u1]; figure%%,title('CASO 1: SUBAMORTIGUADO') datan=iddata(y1,u1,0.001); %%idplot(datan); % TOOLKIT IDENT th=arx(datan,[1 1 1]); %th=armax(datan,[2 2 1 1]); present(th); thc=thd2thc(th); [numc,denc]=th2tf(thc); printsys(numc,denc,'s'); Gc1=tf(numc,denc); %% GRAFICANDO RESULTADOS T=0.001; % DATAS tt=0:T:(N1-1)*T; subplot(211) plot(tt,u1,'r'),axis([0 3 -0.5 6]),title('Entrada') grid on subplot(212) plot(tt,y1),axis([0 3 -0.5 3]),title('Salida') grid on % COMPARANDO RESULTADOS figure % Tiempo contnuo tc=0:T:0.9; u=(max1)*ones(size(tc)); yc=lsim(Gc1,u,tc); plot(tc,yc,'k'),title('Comparando resultados) hold % Tiempo discreto Gd1=tf(th.b,th.a,T); [nd,dd]=tfdata(Gd1,'v'); Gd1=tf(nd,dd); tk=0:T:2; Nd1=length(tk); yd=(max1)*dstep(nd,dd,Nd1); stairs(tk,yd,'r') plot(tk,y1(1:Nd1),'b') axis([0 1 0 2]) grid legend('G_{id}(s)','G_{id}(z)','Data',4) xlabel('\bf tiempo') ylabel('\bf Amplitud')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

17

18

UNIVERSIDAD NACIONAL DE INGENIERIA


Al ejecutar el programa anterior obtenemos:

MT 228 CONTROL DIGITAL

Adems se visualizan los siguientes resultados: >>


Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) A(q) = 1 - 0.9889 (+-0.0002845) q^-1 B(q) = 0.003841 (+-9.28e-005) q^-1 Estimated using ARX on data set datan Loss function 4.86336e-005 and FPE 4.8673e-005 Sampling interval: 0.001 Created: 13-Jul-2011 03:36:10 Last modified: 13-Jul-2011 03:36:10 num/den = 3.8622 ----------s + 11.2095 Current plot held

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

18

19

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Una vez que ya tenemos la planta con la que vamos a trabajar para el control de velocidad, procederemos a hallar los respectivos controles.

CALCULOS PREVIOS PARA REALIZAR EL DISEO DE LOS CONTROLADORES


Primero debemos cargar la data del modelo real y obtener la funcin de transferencia de la planta, se realiza un aproximacin de la F.T. utilizando ARX111, pues presenta una buena aproximacin (98%) al modelo real.
%% Cargando la data del modelo real load adqui_ML.lvm u1=adqui_ML(:,4); y1=adqui_ML(:,2); t=adqui_ML(:,1); %% Clculo para obtener la Funcin de transferencia de la Planta DATAX=[y1 u1]; datan=iddata(y1,u1,0.001); th=arx(datan,[1 1 1]); present(th); % Pasando al Modelo Continuo thc=thd2thc(th); [numc,denc]=th2tf(thc); printsys(numc,denc,'s'); Gp=tf(numc,denc);

Ahora calcularemos los polos deseados, y para ellos consideraremos un sobrepaso mximo igual a 20% y un tiempo de establecimiento igual a 0.1s.
%% Clculos para obtener los polos deseados Mp=0.2; Ts=0.1; e=solve('0.2-exp(-e*pi/sqrt(1-e^2))=0'); e=sym2poly(e); e=e(1); % Coeficiente de Amortiguamiento Wn=5/(e*Ts); sigma=-e*Wn; Wd=Wn*sqrt(1-e^2); Td=2*pi/Wd; T=Td/20; % Tiempo de Muestreo % T=0.001; n=[Wn^2]; d=[1 2*e*Wn Wn^2]; Gr=tf(n,d); % Modelo continuo de referencia s=pole(Gr); % Polos continuos deseados z=exp(T*s); % Polos discretos deseados

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

19

20

UNIVERSIDAD NACIONAL DE INGENIERIA


Polos continuos deseados s : -50.0000 +97.5991i -50.0000 -97.5991i

MT 228 CONTROL DIGITAL

Polos continuos deseados z: 0.8097 + 0.2631i 0.8097 - 0.2631i

Considerando que el tiempo de muestreo (T) es igual a 0.0032189s, entonces se obtiene la siguiente funcin de transferencia discreta:
%% Modelo Discreto Gpzz=tf(th.b,th.a,T); [numpz,denpz]=tfdata(Gpz,'v');

Obtenemos el Root Locus del sistema en lazo abierto.


%% Root locus de la planta figure rlocus(Gpzz), zgrid axis([-1 1 -1 1]) hold plot(real(z(1)),imag(z(1)),'r*',real(z(2)),imag(z(2)),'r*') title('Root Locus Gpz Lazo Abierto')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

20

21

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROLADOR CONTINUO PROPORCIONAL-INTEGRAL (PI)


Realizaremos el diseo del controlador PI, primeramente calculando las variables K y a del controlador:
%% DISEO DEL CONTROLADOR PI % Polos de la Planta [P Z]=pzmap(Gp); % Polos Deseados pd=s(1) % Calculando la magnitud correspondiente a los polos d1=pd-P(1); d2=pd-0; % Calculando los ngulos de fase theta1=atan(imag(d1)/real(d1))*180/pi+180; theta2=atan(imag(d2)/real(d2))*180/pi+180; % Ahora hallamos el ngulo de fase correspondiente al cero integrador thetaz=180+theta1+theta2; % Clculo del valor del cero a=-real(pd)+imag(pd)/(tan(thetaz*pi/180)) d3=pd+a; % Magnitud correspondiente al cero % Clculo de la ganancia K n1=norm(d1); n2=norm(d2); n3=norm(d3); Kg=numc(2); % Ganacia Esttica K=(1*n1*n2)/(n3*Kg) Gc=tf(K*[1 a],[1 0]); % Controlador PI continuo S=series(Gc,Gp); F=S/(1+S);

a= 135.4187 K= 22.9688

REDISEO DEL CONTROLADOR CONTROLADOR PI DISCRETO


%% Rediseno del controlador PI tk=0:T:0.4;

PI,

PARA

OBTENER

EL

% Rediseno del Controlador Continuo (Controlador Discreto) y=step(F,tk); % -------------------------------------------------------------syscz1=c2d(Gc,T,'zoh') syspz1=feedback(syscz1*Gpz,1); y1=step(syspz1,tk);

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

21

22

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

% --------------------------------------------------------------syscz2=c2d(Gc,T,'tustin') syspz2=feedback(syscz2*Gpz,1); y2=step(syspz2,tk); % --------------------------------------------------------------Wc=100; syscz3=c2d(Gc,T,'prewarp',Wc) syspz3=feedback(syscz3*Gpz,1); y3=step(syspz3,tk); % --------------------------------------------------------------% Ploteo figure plot(tk,y,'k'); hold on stairs(tk,y1,'b'); hold on stairs(tk,y2,'r'); hold on stairs(tk,y3,'g'); legend('Rpta Continua','Rpta ZOH','Rpta Tustin','Rpta Wc',4)

Aproximacin por ZOH

Aproximacin por Tustin

Aproximacin por Tustin con Predesvo

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

22

23

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Si se hubiera diseado con un tiempo de muestro (T) igual a 0.001s, se tendra mejoras en las respuestas.

ROOT LOCUS DE LA PLANTA CONTROLADA


%% Root Locus de la planta controlada Gcz=syscz1; L=series(Gcz,Gpz); figure rlocus(L), zgrid axis([-1 1 -1 1]) hold plot(real(z(1)),imag(z(1)),'r*',real(z(2)),imag(z(2)),'r*') title('Root Locus Lazo cerrado control PI por aproximacion ZOH')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

23

24

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROLADOR DISCRETO PROPORCIONAL-INTEGRAL (PI)


Realizaremos el diseo del controlador PI discreto, inicialmente calcularemos las variables Kc y a del controlador:
%% DISEO DEL CONTROLADOR PI DISCRETO % Polos Discretos de la Planta [P Z]=pzmap(Gpz); % Polo Discreto Deseado pdz=z(1); % Calculando la magnitud correspondiente a los polos d1=pdz-1; CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC 24

25

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

d2=pdz-P(1); % Calculando los ngulos de fase theta1=atan(imag(d1)/real(d1))*180/pi+180; theta2=atan(imag(d2)/real(d2))*180/pi+180; % Ahora hallamos el ngulo de fase correspondiente al cero thetaz=180+theta1+theta2; % Clculo del valor del cero a=real(pdz)-imag(pdz)/(tan(thetaz*pi/180)) d3=pdz-a; % Magnitud correspondiente al cero % Clculo de la ganancia K n1=norm(d1); n2=norm(d2); n3=norm(d3); Kg=numpz(2); % Ganacia Esttica Kc=(1*n1*n2)/(n3*Kg)

a =0.7147 K c=96.1121

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU RESPUESTA A UNA ENTRADA ESCALN


%% Root Locus de la planta controlada Gcz=zpk([a],[1],Kc,T) L=series(Gcz,Gpz); figure rlocus(L), zgrid axis([-1 1 -1 1]) hold plot(real(z(1)),imag(z(1)),'r*',real(z(2)),imag(z(2)),'r*') title('Root Locus Lazo cerrado control PI')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

25

26

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

%% Respuesta al step de control discreto PI t=0:T:0.2; sys1=feedback(L,1,-1); yd1=step(sys1,t); figure plot(t,yd1,'b+'), grid title('Respuesta al step control PI') xlabel('Tiempo (seg)')

CONTROLADOR PID DISCRETO


Realizaremos el diseo del controlado PID discreto, para esto tomaremos un cero en 0.6, luego calcularemos las variables Kc y a del controlador:

%% DISEO DEL CONTROLADOR PID DISCRETO % Polos Discretos de la Planta [P Z]=pzmap(Gpz); % Polo Discrteo Deseado pdz=z(1); % Calculando la magnitud correspondiente a los polos d1=pdz-1; d2=pdz-P(1); d3=pdz-0; d4=pdz-0.6; % Calculando los ngulos de fase theta1=atan(imag(d1)/real(d1))*180/pi+180; CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC 26

27

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

theta2=atan(imag(d2)/real(d2))*180/pi+180; theta3=atan(imag(d3)/real(d3))*180/pi; alpha1=atan(imag(d4)/real(d4))*180/pi; % Ahora hallamos el ngulo de fase correspondiente al cero integrador alpha2=180+theta1+theta2+theta3-alpha1; % Clculo del valor del cero a=real(pdz)-imag(pdz)/(tan(alpha2*pi/180)) d5=pdz-a; % Magnitud correspondiente al cero

% Clculo de la ganancia K n1=norm(d1); n2=norm(d2); n4=norm(d3); n3=norm(d4); n5=norm(d5); Kg=numpz(2); % Ganacia Esttica Kc=(1*n1*n2*n3)/(n4*n5*Kg)

a =0.4567 Kc =24.1315

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU RESPUESTA A UNA ENTRADA ESCALN

%% Root Locus de la planta controlada Gcz=zpk([0.6 a],[1 0],Kc,T) L=series(Gcz,Gpz); figure rlocus(L), zgrid axis([-1 1 -1 1]) hold plot(real(z(1)),imag(z(1)),'r*',real(z(2)),imag(z(2)),'r*') title('Root Locus Lazo cerrado control PID')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

27

28

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

%% Respuesta al step de control PID t=0:T:1; sys1=feedback(L,1,-1) yd1=step(sys1,t); figure plot(t,yd2,'b+'), grid title('Respuesta al step control PID') xlabel('Tiempo (seg)')

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

28

29

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

La forma del controlador PID Acadmico es:

Siendo

el factor de sintona para el filtro cuyo valor esta en el rango [0,1]

El control PID digitalizado toma la forma

Entonces: Kp =14.8967 Ti =0.00914 Td =0.001428

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

29

30

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL PID EN TIEMPO REAL DE LA VELOCIDAD DE UN MOTOR DC USANDO LA INTERFAZ DE LABVIEW


Para la implementacin en tiempo real se utiliz un control PID el cual se implement en labview y se muestra a continuacin. PANEL FRONTAL:

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

30

31

UNIVERSIDAD NACIONAL DE INGENIERIA DIAGRAMA DE BLOQUES

MT 228 CONTROL DIGITAL

Como se puede observar en el diagrama de bloques se realiza un escalamiento tanto a la seal de referencia como a la seal proveniente del convertidor frecuencia-voltaje de acuerdo a la recta encontrada al inicio de las pruebas la cual nos arrojaba una relacin igual a:

Y viceversa

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

31

32

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL DE POSICIN DE UN MOTOR


Para el control de posicin de un motor, el procedimiento ser muy parecido, con la salvedad que esta vez lo que queremos controlar es la posicin, esto dificulta un poco la tarea, ya que para ello deberemos contar con un sensor de posicin, es decir, algn circuito electrnico que en todo momento pueda proporcionarnos la posicin de un motor. Adems, el motor cuya posicin queremos controlar debe ser un motor con reductor, esto debido a que un motor sin reductor al ser mucho ms veloz nos ocasionara grandes problemas al momento de controlarlo. Por este motivo para el siguiente control utilizaremos un motor con reductor y por tanto mas lento que el anterior. El motor que hemos elegido es el Matushita modelo: GMX-6MPO13A, el cual esta provisto de un encoder

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

32

33

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Este motor tiene un encoder de 100 ranuras y no esta acoplado directamente al eje final, sobre el cual se controlara la posicin, si no mas bien sobre el eje principal del motor. Este encoder es de modelo EM1 & HEDS y cuenta con 5 pines, los cual se detallan en su hoja de datos y se puede visualizar en el siguiente grafico.

SENSOR DE POSICIN
Como se puede apreciar en el grafico anterior los 5 pines del encoder de este motor son: 1. GND (tierra) 2. Index (Canal de indexacin o ndice) 3. Canal A del encoder 4. Alimentacion del encoder de 5V 5. Canal B del encoder. Los canales A y B son los encargados de enviar trenes de pulsos de onda cuadrada desfasados 90 grados, cuyo nmero de pulsos ser proporcional al giro angular del motor.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

33

34

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Si bien es cierto, para el control de velocidad fue solo necesario utilizar uno de estos canales para poder medir la velocidad, en el caso del control de posicin necesitamos leer las seales de ambos canales, ya que con los dos podemos determinara adems el sentido de giro. El ngulo girado lo podremos obtener contando los pulsos de uno de los canales. El sentido de giro lo podremos obtener utilizando ambas seales e ingresndolas a un FLIP FLOP de tipo D, la primera se ingresara a la entrada D del flip flop, y la segunda a la entrada de reloj (clock). La conexin se ilustra en el siguiente grfico y es muy fcil deducir el funcionamiento de esto considerando que cuando el motor gire en un sentido el canal A estar adelantado 90 grados con respecto al canal B, y cuando gire en sentido contrario ser mas bien el canal B el que se encuentre adelantado. Esto produce una seal de salida igual a 1 cuando el motor gire en un sentido y una seal de salida igual a 0 cuando gire en el sentido contrario.

El pic recibir entonces el nmero de pulsos y el sentido en que se producen cada uno de ellos, logrando con esto definir el ngulo en que se encuentra posicionado. Posteriormente deber transforma el valor del angulo en una seal analgica para envirsela a la DAQ. Entre las distintas posibilidades que existen para dotar al pic de una salida analgica nos decidimos por utilizar un R-2R ladder (Escalera R-2R), la cual nos brinda una salida analgica proporcional al numero binario que coloquemos en la salida de uno o mas de los puertos del PIC.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

34

35

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

En nuestro caso hemos utilizado 10 bits de resolucin, pudiendo con ello tener una salida analgica lo mas compatible posible con la DAQ USB6008, ya que esta tambin cuenta con una entrada analgica de 10 bits. ESQUEMTICO DEL SENSOR DE POSICIN

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

35

36

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

DISEO DE LA PLACA

VISTA TRIDIMENSIONAL DE LA PLACA

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

36

37

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONEXIN DE AMBAS PLACAS PARA EL CONTROL DE POSICIN

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

37

38

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL PID EN TIEMPO REAL DE LA POSICIN DE UN MOTOR DC USANDO LA INTERFAZ DE LABVIEW


A continuacin se muestra el panel frontal utilizado para el control posicin:

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

38

39

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

En esta seccin se muestra el diagrama de bloques:

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

39

40
NOTA:

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Es importante explicar la parte final del esquema anterior que se observa en la siguiente figura:

Como sabemos la seal de control puede variar de -5V a +5V,sin embargo, el pic solo puede recibir seales positivas, por esta razn, el esquema anterior trata de transformar el rango de -5V a +5V a un nuevo rango de 0-5V. El saturador de 0.2 a 4.7V colocado a la salida es debido a que es en este rango en que trabaja la escalera R-2R y no en el esperado de 0-5V

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

40

41

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONTROL DIFUSO DE MOTOR DC


En esta parte del informe disearemos el Control Difuso tipo base line para controlar la posicin angular del motor DC

` Fig. FLC en un lazo realimentado En nuestro caso la planta representa la funcin de transferencia del motor identificada mediante el Workbench de Labview. En nuestro caso sera:

Para el proceso de fuzzyficacion usaremos funciones de pertenencia triangulares.

DISEO DEL CONTROLADOR TIPO BASE LINE PARA EL MOTOR DC


Funciones de Pertenencia ENTRADA

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

41

42
SALIDA

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

BASE DE REGLAS DIFUSAS


Error Salida NB -1 -1 NM -0.24 -0.24 NS -0.038 -0.18 ZO 0 0 PS 0.038 0.18 PM 0.24 0.24 PB 1 1

Donde se pueden obtener las siguientes reglas.

R1: IF e is NB AND THEN u is NB R2: IF e is NM AND THEN u is NM R3 : IF e is NS AND THEN u is NS R4 : IF e is ZO AND THEN u is ZO R5 : IF e is PS AND THEN u is PS R6 : IF e is PM AND THEN u is PM R7 : IF e is PB AND THEN u is PB

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

42

43

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Fig. Grafico que relaciona las entradas y las salidas

GRAFICO DEL CONTROL TIPO BASE LINE EN LABVIEW:

Fig. Control Tipo Base Line en LabView

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

43

44

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Fig. Respuesta del controlador a una referencia

La grafica representa la respuesta a una entrada escaln de referencia. Podemos apreciar que el control no es muy eficiente ya que para entradas de referencia muy elevadas la seal de control se pierde.

Control PID Difuso Lineal para el control de Posicin del motor DC

La forma del controlador PID tradicional es

Para el diseo del controlador difuzo usaremos la siguiente forma:

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

44

45

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

Donde: E representa el error y CE el cambio del error que van a entrar a las reglas difusas. GE y GCE representan las ganancias para el error y cambio del error respectivamente. GIE representa la ganancia de la integral del error y GU la ganancia de la seal de control. Los valores para las ganancias se calculan a partir del diseo del controlador y estn dados por:

De donde los valores podemos despejar las ganancias:

Los valores de Kp, Ti y Td sern los mismos que se calcularon para disear el controlador digital. Kp=14.8967 Ti=0.00914 Td=0.001428 De donde reemplazando en las ecuaciones y para un GC=100 se obtiene

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

45

46

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

FUNCIONES DE PERTENENCIA ENTRADA El rango empleado para la seal de error y el cambia de error ser de [-5,5]

Fig. Funciones de pertenencia del error

Fig. Funciones de pertenencia del cambio del error

SALIDA La seal de control ser limitada en el rango de [-5,5]

Fig. Funciones de pertenencia de la salida

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

46

47

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

BASE DE REGLAS DIFUSAS La base de reglas difusas es dada en la siguiente tabla.

NB NS ZE PS PB

CE NB NS ZE NB NB NS NB NS NS NS NS ZE NS ZE NS ZE NS NS Tabla de reglas

PS PB NS ZE ZE NS NS NS NS NB NB NB

La tabla genera las 25 reglas para el control FLC: R1: IF e is NB AND ce is NB THEN u is NB R2: IF e is NB AND ce is NS THEN u is NB R3 : IF e is NB AND ce is ZE THEN u is NS R4 : IF e is NB AND ce is PS THEN u is NS R5 : IF e is NB AND ce is PB THEN u is ZE R6 : IF e is NS AND ce is NB THEN u is NB R7 : IF e is NS AND ce is NS THEN u is NS R8 : IF e is NS AND ce is ZE THEN u is NS R9 : IF e is NS AND ce is PS THEN u is ZE R10: IF e is NS AND ce is PB THEN u is PS R11: IF e is ZE AND ce is NB THEN u is NS R12 : IF e is ZE AND ce is NS THEN u is NS R13 : IF e is ZE AND ce is ZE THEN u is ZE R14 : IF e is ZE AND ce is PS THEN u is PS R15 : IF e is ZE AND ce is PB THEN u is PS R16 : IF e is PS AND ce is NB THEN u is NS R17 : IF e is PS AND ce is NS THEN u is ZE R18 : IF e is PS AND ce is ZE THEN u is PS

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

47

48

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

R19: IF e is PS AND ce is PS THEN u is PS R20: IF e is PS AND ce is PB THEN u is PB R21 : IF e is PB AND ce is NB THEN u is ZE R22 : IF e is PB AND ce is NS THEN u is PS R23 : IF e is PB AND ce is ZE THEN u is PS R24 : IF e is PB AND ce is PS THEN u is PB R25 : IF e is PB AND ce is PB THEN u is PB

GRAFICO DEL CONTROL EN LABVIEW:

Fig. Diseo del controlador en Labview

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

48

49

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

SINTONIZACIN DEL CONTROL PID Y FLC

Fig. sintonizacion del control pid y flc

Fig. Respuesta del Controlador Fuzzy y PID

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

49

50

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

La figura representa la respuesta del controlador PID y el controlador Fuzzy aplicado al Motor DC a diferentes seales de referencia. En la grfica se puede apreciar como los dos tipos de controladores generan una respuesta satisfactoria. El controlador PID da una respuesta mejor que el controlador Fuzzy PD+I pero esto no desacredita el grado de control que le da al motor DC

CONTROL DE POSICIN PARA EL MOTOR DC EN TIEMPO REAL Para controlar la posicin angular del motor DC se utilizaron las mismas reglas que el control PID.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

50

51

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

PRESENTACION EN LABVIEW

Fig. Front Panel Control de Posicion Fuzzy

La respuesta en tiempo real para el control de posicin del motor DC se apreci en la sustentacin del laboratorio.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

51

52

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

IDENTIFICACION DE LOS PARAMETROS DEL MOTOR


clc; close all; clear all; load adqui_ML.lvm DATA=adqui_ML; t=DATA(:,1); y=DATA(:,2); plot(t,y);

y2=y(3574:1:5000); t2=t(3574:1:5000); N=length(t2); figure plot(t2,y2)

%eliminando offset ymin=min(y2); tmin=min(t2); y3=y2-ymin*ones(N,1); t3=t2-tmin*ones(N,1); figure plot(t3,y3) A=median(y3(N-100:N)); x_data=t3(40:180); y_data=log(A-y3(40:180)); %Mejor pendiente figure plot(x_data, y_data); % % Calculando Pendiente t_min=0.05; t_max=0.16; xi=t_min:0.001:t_max; yi=interp1(x_data,y_data,xi,'linear'); figure plot(x_data,y_data,'r'),title('Calculo de mejor pendiente'); xlabel('t(s)'),ylabel('V(voltaje)'), hold on plot(xi,yi,'.k')

title(''),xlabel('t(s)'),ylabel('voltaje');

%calculando p1=m

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

52

53

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

p1=(yi(1)-yi(length(yi)))/(t_max-t_min) %calculando de B: B(t)=(y(t)-A)/exp(-p1*t)

B=(y3-A)./exp(-p1*t3); figure plot(t3,B,'k.');title('Grafica de B(t)=y(t)-A/exp(-p1*t)'); hold on plot([0

1], [median(B(2:5)) median(B(2:5))],'b:')

B2=median(B(10:100)) %calculo C=-(A+B) C=-(A+B2) %calculo P2 p2=-(B2/C)*p1 % %Calculo de ganancia k=A*p1*p2 %Funcion de Transferencia experimental Gexp=tf(k,conv([1 p1],[1 p2])) Gexp2=zpk(Gexp)

t4=0:0.001:1.5; yexp=step(Gexp,t4); figure plot(t4,yexp,'b');title('Gexperimental'), ylabel('Voltaje'),xlabel('t(s)'); hold on plot(t3,y3,'r'); legend('G_{experimental}','G_{data}',4);

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

53

54

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

SINTONIZACION POR ZIEGLER NICHOLDS


clc; close all; clear all; %Funcion de Transferencia Identificada

% Parametros Numerador y denominador % % n=3138; d=[1 96.51 767.7];

%Funcion de Transferencia con retardo %ret=0.01 SYS=tf(n,d); Gp=tf(n,d); t=0:0.0001:1; y=step(SYS,t); plot(t,y,'b','LineWidth',2) xlabel('\bf t') h1=ylabel('\bf y(t)'); set(h1,'Rotation',pi/2) axis([0 1 0 1]) t1=0:0.0001:1; y=step(SYS,t1);

save Data_motor.text y -ascii %t=t1-t1(1) %y=y-y(1) N=length(t1); %Inicia elalgoritmo busca maxima pendiente Pmax=0; imax=0; for i=1:N-1 P=(y(i+1)-y(i))/(y(i+1)-t1(i)); if P>Pmax Pmax=P; imax=i, end end ymax=[ y(imax) y(imax+1)]; tmax=[t1(imax) t1(imax+1)];

%Hallando los parametros K,L,T k=median(y(N-3:N)); %trazando recta de mayor pendiente

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

54

55

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

P=polyfit(tmax,ymax,1); R=polyval(P,t1);

%Calculo del parametro L L=roots(P);

%Calculo del parametro T Taux=roots(P-[0 k]) T=Taux-L

figure plot(t1,y,'b','LineWidth',2) hold plot(t1,y,'r--','LineWidth',2) axis([0 1 0 1]) h=title('\bf Curva Teorica del motorDC'); set(h,'FontName','Courier','FontSize',14) xlabel('\bf t(seg)') ylabel('\bf Amplitud') grid disp('K L T') disp([k L T]) %Control Ziegler-N Tc=4*L; m=k*L/T; a=k*L/T Kc=2/(m*L) Kp=0.6/a; Ti=T; Td=0.5*L

%Controlador Paralelo Kp=Kp Ki=Kp/Ti Kd=Kp*Td

%Ganancia del controlador Gc=tf([Kd Kp Ki])

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

55

56

UNIVERSIDAD NACIONAL DE INGENIERIA

MT 228 CONTROL DIGITAL

CONCLUSIONES

Se logro implementar un control de posicin del motor DC en el cual Se logro Observar que las reglas en el control PID dan una mejor respuesta que las obtenidas por el controlador Tipo Base Line Al aumentar el nmero de reglas se mejora la linealidad del sistema pero tambin aumenta su complejidad del mismo. La respuesta del control Difuso PD+I es relativamente ms lenta que la de un PID, eso se pudo observar en las simulaciones realizadas en simulador de LabView pero eso no desacredita su buen desempeo.

RECOMENDACIONES:
Se debe tener en cuenta el rango que se va a emplear a la hora de disear las reglas, ya que un rango reducido en la ganancia del error limitara Se debe utilizar un nmero adecuado de reglas para mejorar la seal de salida de la planta El diseo del control PID juega un rol muy importante a la hora de disear el controlador Fuzzy PD+I por la relacin que guardan sus parmetros.

CONTROL DE VELOCIDAD Y POSICION DE UN MOTOR DC

56

S-ar putea să vă placă și