• No se han encontrado resultados

Control de velocidad y posición de un Motor DC

N/A
N/A
Protected

Academic year: 2021

Share "Control de velocidad y posición de un Motor DC"

Copied!
56
0
0

Texto completo

(1)

UNIVERSIDAD NACIONAL DE INGENIERIA

UNIVERSIDAD NACIONAL DE INGENIERIA

CONTROL DE VELOCIDAD

CONTROL DE VELOCIDAD

Y

Y

POSICIÓN

POSICIÓN

DE

DE

UN

UN

MOTOR

MOTOR

Integrantes:

Integrantes:



Cueva Olivos, John Paul

Cueva Olivos, John Paul



Sandoval Monzón, Héctor David

Sandoval Monzón, Héctor David



Zevallos Gutiérrez, Rómulo

Zevallos Gutiérrez, Rómulo

Profesor:

Profesor:

M.Sc. Ricardo Rodríguez Bustinza

M.Sc. Ricardo Rodríguez Bustinza

Ciclo Académico:

Ciclo Académico:

2011-1

2011-1

(2)

INTRODUCCION

INTRODUCCION

En la actualidad, la ingeniería de control se ha convertido en una herramienta cada vez m

En la actualidad, la ingeniería de control se ha convertido en una herramienta cada vez m ás útilás útil en la industria. Debido a la alta gama de soluciones que puede ofrecernos, es imprescindible en la industria. Debido a la alta gama de soluciones que puede ofrecernos, es imprescindible conocer los principales tipos de controles.

conocer los principales tipos de controles.

Como ya hemos visto en ciclos anteriores, los cursos de control clásico y control moderno nos Como ya hemos visto en ciclos anteriores, los cursos de control clásico y control moderno nos formaron una base muy sólida de control, pero que pocas veces se tuvo la oportunidad de formaron una base muy sólida de control, pero que pocas veces se tuvo la oportunidad de experimentar y observarlos físicamente.

experimentar y observarlos físicamente.

Como se ha visto a lo largo del ciclo, el diseño de controladores digitales es muy similar a los Como se ha visto a lo largo del ciclo, el diseño de controladores digitales es muy similar a los controladores analógicos, con la gran diferencia de que la discretizacion nos permite controladores analógicos, con la gran diferencia de que la discretizacion nos permite implementar diferentes tipos de algoritmos en sistemas embebidos como microcontroladores, implementar diferentes tipos de algoritmos en sistemas embebidos como microcontroladores, dsp

dsp’s’s, ordenadores, etc. con cambios casi imperceptibles en la electrónica, ya que el cambiar el, ordenadores, etc. con cambios casi imperceptibles en la electrónica, ya que el cambiar el

tipo de controlador implicara solo un cambio del software. tipo de controlador implicara solo un cambio del software.

En el siguiente trabajo realizaremos el control de velocidad y posición de un motor. Ambos, En el siguiente trabajo realizaremos el control de velocidad y posición de un motor. Ambos, controles muy importantes en la industria.

controles muy importantes en la industria.

La aplicación del control de velocidad de un motor la podemos apreciar cuando por ejemplo La aplicación 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 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, variables. Supongamos el caso de una faja que transporta botellas de gaseosa, como sabemos, a veces la faja estará totalmente vacía y otras veces transportara 10, 20 o 100 botellas, el a veces la faja estará totalmente vacía y otras veces transportara 10, 20 o 100 botellas, el aumento de numero de botellas en la faja, ocasionara la disminución de la velocidad. Es en aumento de numero de botellas en la faja, ocasionara la disminución de la velocidad. Es en esta parte en la que entra a tallar el control de velocidad del motor que gobierna la faja, 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

procurando que esta mantenga siempre la misma velocidad para un correcto para un correcto funcionamiento.funcionamiento. Por otro lado la aplicación del control de posición de un motor es muy utilizada actualmente Por otro lado la aplicación del control de posición de un motor es muy utilizada actualmente en robótica. Tenemos como un caso muy cercano el control de posición de los motores en las en robótica. Tenemos como un caso muy cercano el control de posición de los motores en las articulaciones de un brazo robótico.

(3)

CONTROL DE VELOCIDAD DE UN MOTOR

CONTROL DE VELOCIDAD DE UN MOTOR

Para el control de velocidad del motor hemos utilizado un motor DC con encoder sin caja Para el control de velocidad del motor hemos utilizado un motor DC con encoder sin caja reductora, el cual provenía de una maquina fotocopiadora. Hemos elegido este motor debido reductora, el cual provenía de una maquina fotocopiadora. Hemos elegido este motor debido a sus grande velocidades, ya que queríamos hacer el control de velocidad en un rango de 0 a a sus grande velocidades, ya que queríamos hacer el control de velocidad en un rango de 0 a 1400 RPM.

1400 RPM.

Aunque no conseguimos, la marca exacta del motor para poder obtener sus datos completos Aunque no conseguimos, la marca exacta del motor para poder obtener sus datos completos por medio de su

por medio de su datasheet, algunas de este motor son:datasheet, algunas de este motor son: Descripción

Descripción Valor Valor UnidadesUnidades Voltaje

Voltaje Nominal Nominal 12 12 VoltiosVoltios Corriente

Corriente Nominal Nominal 1.8 1.8 AmperiosAmperios Encoder

Encoder 100 100 ranurasranuras

El motor cuenta con un encoder directamente acoplado al único eje, ya que no tiene caja 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 reductora, de este modo podemos obtener la velocidad del motor con l a frecuencia de de pulsos que nos arroje este encoder.

pulsos que nos arroje este encoder.

CONVERSOR FRECUENCIA-VOLTAJE

CONVERSOR FRECUENCIA-VOLTAJE

Entre los diversos circuitos existentes que nos permiten convertir la frecuencia en voltaje, Entre los diversos circuitos existentes que nos permiten convertir la frecuencia en voltaje, hemos utilizado uno basado en

(4)

Realizamos las pruebas previamente en el simulador de cir

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

Al realizar la simulación para distintas valores de resistencias y condensadores basados en las Al realizar la simulación para distintas valores de resistencias y condensadores basados en las formulas obtenidas en el datasheet del LM331, elegimos finalmente los valores del diseño de formulas obtenidas en el datasheet del LM331, elegimos finalmente los valores del diseño de la figura anterior, obteniendo en la simulación que el circuito respondía bastante rápido, la figura anterior, obteniendo en la simulación que el circuito respondía bastante rápido, llegando a establecer el voltaje de salida en un tiempo de 30ms aproximadamente. Dicha llegando a establecer el voltaje de salida en un tiempo de 30ms aproximadamente. Dicha velocidad de respuesta podía disminuirse aún más reduciendo el valor del capacitor C4, sin velocidad de respuesta podía disminuirse aún más reduciendo el valor del capacitor C4, sin embargo, esta disminución en el tiempo de respuesta traía consigo el aumento de ruido en la embargo, esta disminución en el tiempo de respuesta traía consigo el aumento de ruido en la señal. Motivo por el c

(5)

Como nuestra intención es llevar a través de la DAQ un valor analógico de velocidad hacia la la Como nuestra intención es llevar a través de la DAQ un valor analógico de velocidad hacia la la computadora para ser luego ingresada al controlador, debemos obtener la relación existente computadora para ser luego ingresada al controlador, debemos obtener la relación existente entre la frecuencia que ingresa al conversor frecuencia-voltaje y el voltaje que existe a la entre la frecuencia que ingresa al conversor frecuencia-voltaje y el voltaje que existe a la salida.

salida.

Para ello realizamos pruebas con distintos valores de voltaje de alimentación al motor, con ello Para ello realizamos pruebas con distintos valores de voltaje de alimentación al motor, con ello podíamos generar distintas velocidades del motor, es decir distintas frecuencias del encoder y podíamos 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.

en cada caso medimos los valores arrojados a la salida del conversor frecuencia-voltaje. Los valores obtenidos fueron:

Los valores obtenidos fueron:

Frecuencia

Frecuencia V V out out RPMRPM 504 0.937 302.4 504 0.937 302.4 748 1.104 448.8 748 1.104 448.8 886 1.205 531.6 886 1.205 531.6 1031 1.307 618.6 1031 1.307 618.6 1195 1195 1.418 1.418 717717 1346 1.525 807.6 1346 1.525 807.6 1497 1497 1.63 1.63 898.2898.2 1660 1660 1.752 1.752 996996 1808 1808 1.853 1.853 1084.81084.8 1964 1964 1.95 1.95 1178.41178.4 2126 2126 2.064 2.064 1275.61275.6 2298 2298 2.184 2.184 1378.81378.8 2443 2443 2.264 2.264 1465.81465.8 2586 2586 2.382 2.382 1551.61551.6 2744 2744 2.491 2.491 1646.41646.4 2915 2915 2.594 2.594 17491749 3084 3084 2.716 2.716 1850.41850.4 3322 3322 2.886 2.886 1993.21993.2

Al graficar estos resultados obtuvimos una

Al graficar estos resultados obtuvimos una gráfica bastante lineal (casi perfecta).gráfica bastante lineal (casi perfecta).

y = 870.76x - 518.88 y = 870.76x - 518.88 R² = 0.9999 R² = 0.9999 0 0 500 500 1000 1000 1500 1500 2000 2000 2500 2500 0 1 2 3 4 0 1 2 3 4

RPM vs Vout

RPM vs Vout

RPM vs Vout RPM vs Vout Lineal (RPM vs Vout) Lineal (RPM vs Vout)

(6)

Del grafico anterior podemos apreciar que la relación frecuencia-voltaje es casi 100% lineal y Del grafico anterior podemos apreciar que la relación frecuencia-voltaje es casi 100% lineal y obedece a la ecuación:

obedece a la ecuación: y = 870.76x - 518.88 y = 870.76x - 518.88

Con un error bastante pequeño, ya Con un error bastante pequeño, ya que:que: R² = 0.9999 es decir, casi 1

R² = 0.9999 es decir, casi 1

DISEÑO DE LA FUENTE DE

DISEÑO DE LA FUENTE DE LA TARJETA ELECTRÓNICA

LA TARJETA ELECTRÓNICA

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

siguiente:

DISEÑO DEL CONVERTIDOR ANALÓGICO-MODULADOR DE ANCHO DE PULSO

DISEÑO DEL CONVERTIDOR ANALÓGICO-MODULADOR DE ANCHO DE PULSO

Una vez recibida la señal censada de velocidad por la DAQ, esta la enviara a la PC, donde será Una vez recibida la señal censada de velocidad por la DAQ, esta la enviara a la PC, donde será ingresada al controlador, devolviéndonos una señal analógica de control que para ser enviada ingresada al controlador, devolviéndonos una señal analógica de control que para ser enviada al motor deberá previamente ser convertida a una modulación de ancho de pulso. Es por este al motor deberá previamente ser convertida a una modulación de ancho de pulso. Es por este que será necesario diseñar un convertidor analógico-pwm , el cual en nuestro caso está basado que será necesario diseñar un convertidor analógico-pwm , el cual en nuestro caso está basado en un pic que recibirá por una de sus entradas analógicas la señal de control y previo programa en un pic que recibirá por una de sus entradas analógicas la señal de control y previo programa la convertirá en una señal modulada con un ancho de pulso que será proporcional al valor la convertirá en una señal modulada con un ancho de pulso que será proporcional al valor analógico de la señal de control.

(7)

En este punto es importante recalcar que el PWM debe ser de una frecuencia igual o superior 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 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, diseñamos nuestro los 10KHZ. En nuestro caso siendo un pocos exigentes con las normas, diseñamos nuestro programa para que el

programa para que el pic que genere PWM con una pic que genere PWM con una frecuencia de 20KHz.frecuencia de 20KHz.

DRIVER DE POTENCIA PARA EL MOTOR

DRIVER DE POTENCIA PARA EL MOTOR –

 – PUENTE H

PUENTE H

Debido a que nuestro motor trabajaba siempre con corrientes que no superaban los 2 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, amperios, elegimos el integrado L298 que comprende dos puentes H de 2 amperios cada uno, pudiéndose utilizar ambos en paralelo para

pudiéndose utilizar ambos en paralelo para conseguir un puente H de conseguir un puente H de hasta 4 Amperios.hasta 4 Amperios.

Sin embargo como dijimos antes, nuestro motor no supera los dos amperios, por lo que 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.

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 Es importante recalcar en este punto la importancia de colocar los 4 diodos a la salida del puente H tal com

puente H tal como se indica en o se indica en la figura con el la figura con el fin de contrarrestar fin de contrarrestar los voltajes invelos voltajes inversosrsos generados por la fuerza contra electromotriz en los motores cuando cambian de giro.

generados por la fuerza contra electromotriz en los motores cuando cambian de giro. Es recomendable que estos diodos sean ultrarrápidos para

(8)

DISEÑO DE LA PLACA

DISEÑO DE LA PLACA

Todos los componentes anteriores (Fuente, convertidor voltaje-frecuencia, convertidor Todos los componentes anteriores (Fuente, convertidor voltaje-frecuencia, convertidor Analógico-PWM y puente H) fueron incorporados en nuestra placa para el control de Analógico-PWM y puente H) fueron incorporados en nuestra placa para el control de velocidad, teniendo como resultado la mostrada

velocidad, teniendo como resultado la mostrada en los siguientes gráficos:en los siguientes gráficos:

VISTA TRIDIMENSIONAL DE LA PLACA VISTA TRIDIMENSIONAL DE LA PLACA

(9)

DETALLES DE LA PLACA DE CONTROL DE

(10)

ESQUEMA COMPLETO DE CONEXIÓN

ESQUEMA COMPLETO DE CONEXIÓN

(11)

 ADQUISICIÓN DE LA PLANTA

 ADQUISICIÓN DE LA PLANTA

Después de un adecuado acondicionamiento de la señal se

Después de un adecuado acondicionamiento de la señal se generó el siguiente esquema en

generó el siguiente esquema en

labview (

labview (

“adquisicion.vi” “adquisicion.vi” 

) para la adquisición de los datos de la

) para la adquisición de los datos de la planta:

planta:

Como se puede observar en la figura anterior la data proveniente del convertidor

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

frecuencia voltaje se le aplica un escalamiento debido que para una entrada cero el

convertidor arroja un valor mínimo de

convertidor arroja un valor mínimo de 0,573175. Por esta razón se

0,573175. Por esta razón se desmultiplex

desmultiplexa la

a la señal

señal

proveniente del DAQ Assitant 2 puesto que tiene configurado dos canales:

proveniente del DAQ Assitant 2 puesto que tiene configurado dos canales:

voltage y voltage y  voltage_0

voltage_0

, el canal

, el canal

voltagevoltage

el cual contiene la data proveniente del convertid

el cual contiene la

data proveniente del convertidor es restado

or es restado

por dicho valor y luego de esto es nuevamente multiplexado con

por dicho valor y luego de esto es nuevamente multiplexado con

voltage_0voltage_0

y almacenado

y almacenado

en adqui_LV.lvm y adqui_ML.lvm, los cuales fueron configurados con cabecera y sin

en adqui_LV.lvm y adqui_ML.lvm, los cuales fueron configurados con cabecera y sin

cabeceras

cabeceras respectivamen

respectivamente.

te.

IDENTIFICAC

IDENTIFICACIÓN DE L

IÓN DE LA PLANTA

A PLANTA

LABVIEW

LABVIEW

Usando el archivo adqui_LV.lvm se dispuso a crear un nuevo proyecto

Usando el archivo adqui_LV.lvm se dispuso a crear un nuevo proyecto

idetificado_SE.seproj 

idetificado_SE.seproj 

en signal express acoplado con el toolbox de sistemas de

en signal express acoplado con el toolbox de sistemas de

identificación, para la identificación se utilizó arx 1 1 1, a continuación se puede

identificación, para la identificación se utilizó arx 1 1 1, a continuación se puede

observar la

(12)
(13)

En esta ultima imagen se puede apreciar que despues de ejecutar el proyecto se En esta ultima imagen se puede apreciar que despues de ejecutar el proyecto se generara el archivo

generara el archivo identificado.simidentificado.sim el cual se utiliza en el programael cual se utiliza en el programa

simulacion_modelo.vi 

simulacion_modelo.vi para obetener la funcion de transferencia de la planta. Talespara obetener la funcion de transferencia de la planta. Tales resulatdos se pueden apreciar claramente en la

resulatdos se pueden apreciar claramente en la siguiente imagen:siguiente imagen:

Debido que se utilizó identificación paramétrica ARX[1 1 1] como era obvio se

Debido que se utilizó identificación paramétrica ARX[1 1 1] como era obvio se

obtuvo una función de transferencia de primer orden:

obtuvo una función de transferencia de primer orden:

     

Como se puede ver la planta cuenta con un polo

Como se puede ver la planta cuenta con un polo

  

, el cual se encuentra

, el cual se

encuentra

en el semiplano izquierdo que nos indica que el sistema es

(14)

MATLAB

MATLAB

En esta ocasión se usó el archivo adqui_ML.lvm, para ello se realizó el programa

En esta ocasión se usó el archivo adqui_ML.lvm, para ello se realizó el programa

identi.m

identi.m

, el cual se encarga de crear los vectores (t, x, y) para luego ser usados

, el cual se encarga de crear los vectores (t, x, y) para luego ser usados

mediante el guide de i

mediante el guide de identificación de matlab. El código se muestra a

dentificación de matlab. El código se muestra a continuació

continuación

n

%identi.m

%identi.m

clear

clear allall, close, close allall, clc, clc load

load adqui_ML.lvmadqui_ML.lvm

t=adqui_ML(:,1); t=adqui_ML(:,1); x=adqui_ML(:,4); x=adqui_ML(:,4); y=adqui_ML(:,2); y=adqui_ML(:,2); plot(t,x,

plot(t,x,'g''g',t,y,,t,y,'b''b')) title(

title('Vin vs Vout''Vin vs Vout')) legend(

legend('Vin''Vin',,'Vout''Vout')) grid

grid onon

axis([0 5 -0.5 5.5]) axis([0 5 -0.5 5.5])

Al ejecutar el programa se genera la gráfica que muestra la señal de excitación y la

Al ejecutar el programa se genera la gráfica que muestra la señal de excitación y la

respuesta del sistema

respuesta del sistema

A continuación desde command window ejecutamos ident y realizamos las

A continuación desde command window ejecutamos ident y realizamos las

configuracion

(15)

Después de haber configuramos debemos de obtener el siguiente esquema:

Después de haber configuramos debemos de obtener el siguiente esquema:

Activamos Model output y obtenemos la siguiente grafica

Activamos Model output y obtenemos la siguiente grafica

En la gráfica anterior se puede apreciar que el

En la gráfica anterior se puede apreciar que el modelo identificado con ARX[

modelo identificado con ARX[1 1 1]

1 1 1]

sigue de una manera correcta el

sigue de una manera correcta el comportam

comportamiento de la

iento de la planta con un porcentaje de

planta con un porcentaje de

aproximación de 95.39%.

aproximación de 95.39%.

También se realizó una implementación de identificación en matlab sin usar el

También se realizó una implementación de identificación en matlab sin usar el

guide para ello se realizó el programa

guide para ello se realizó el programa ident_matlab.m

ident_matlab.m, el código se muestra a

, el código se muestra a

continuación:

continuación:

%ident_matlab.m

%ident_matlab.m

clc; close

clc; close allall; clear; clear allall;; % LECUTRA DE LA DATA

% LECUTRA DE LA DATA

% CASO 1: SUBAMORTIGUADO

% CASO 1: SUBAMORTIGUADO

load

(16)

u1=adqui_ML(:,4); u1=adqui_ML(:,4); y1=adqui_ML(:,2); y1=adqui_ML(:,2);

% Cálculo de la cantidad de datos

% Cálculo de la cantidad de datos

% N: número de datos % N: número de datos [N1,nos]=size(u1); [N1,nos]=size(u1); %% ACONDICIONANDO LA SEÑAL %% ACONDICIONANDO LA SEÑAL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Buscando el punto de inicio del flanco de subida

%% Buscando el punto de inicio del flanco de subida

y1=y1-2; y1=y1-2; u1=u1-2; u1=u1-2; i=1; i=1; while

while u1(i)>0u1(i)>0 i=i+1; i=i+1; end end i=i+1; i=i+1; while

while u1(i)<0u1(i)<0 i=i+1; i=i+1; end end punto=i; punto=i; y1=[y1(punto:N1,:)]; y1=[y1(punto:N1,:)]; u1=[u1(punto:N1,:)]; u1=[u1(punto:N1,:)]; [N1,nos]=size(u1); [N1,nos]=size(u1);

% Calculo del máximo de la entrada

% Calculo del máximo de la entrada

max1=0; max1=0; for

for i=1:N1i=1:N1 if if max1<u1(i)max1<u1(i) max1=u1(i); max1=u1(i); end end end end min1=1000; min1=1000; for

for i=1:N1i=1:N1 if if min1>u1(i)min1>u1(i) min1=u1(i); min1=u1(i); end end end end % Valor de corrección % Valor de corrección cor1=-min1; cor1=-min1;

% Corrigiendo las señales

% Corrigiendo las señales

y1=y1+cor1; y1=y1+cor1; u1=u1+cor1; u1=u1+cor1; max1=max1+cor1; max1=max1+cor1; min1=min1+cor1; min1=min1+cor1;

(17)

%% ESTIMACIÓN DE LA FUNCIÓN DE TRANSFERENCIA

%% ESTIMACIÓN DE LA FUNCIÓN DE TRANSFERENCIA

DATAX=[y1 u1]; DATAX=[y1 u1]; figure

figure%%,title('CASO 1: SUBAMORTIGUADO')%%,title('CASO 1: SUBAMORTIGUADO')

datan=iddata(y1,u1,0.001); datan=iddata(y1,u1,0.001); %%idplot(datan); %%idplot(datan); % TOOLKIT IDENT % TOOLKIT IDENT th=arx(datan,[1 1 1]); th=arx(datan,[1 1 1]); %th=armax(datan,[2 2 1 1]); %th=armax(datan,[2 2 1 1]); present(th); present(th); thc=thd2thc(th); thc=thd2thc(th); [numc,denc]=th2tf(thc); [numc,denc]=th2tf(thc); printsys(numc,denc, printsys(numc,denc, 's''s');); Gc1=tf(numc,denc); Gc1=tf(numc,denc); %% GRAFICANDO RESULTADOS %% GRAFICANDO RESULTADOS T=0.001; T=0.001; % DATAS % DATAS tt=0:T:(N1-1)*T; tt=0:T:(N1-1)*T; subplot(211) subplot(211) plot(tt,u1,

plot(tt,u1, 'r''r'),axis([0 3 -0.5 6]),title(),axis([0 3 -0.5 6]),title( 'Entrada''Entrada')) grid

grid onon

subplot(212) subplot(212)

plot(tt,y1),axis([0 3 -0.5 3]),title(

plot(tt,y1),axis([0 3 -0.5 3]),title( 'Salida''Salida')) grid grid onon % COMPARANDO RESULTADOS % COMPARANDO RESULTADOS figure figure % Tiempo contínuo % Tiempo contínuo tc=0:T:0.9; tc=0:T:0.9; u=(max1)*ones(size(tc)); u=(max1)*ones(size(tc)); yc=lsim(Gc1,u,tc); yc=lsim(Gc1,u,tc); plot(tc,yc,

plot(tc,yc, 'k''k'),title(),title('Comparando resultados'Comparando resultados)) hold hold % Tiempo discreto % Tiempo discreto Gd1=tf(th.b,th.a,T); Gd1=tf(th.b,th.a,T); [nd,dd]=tfdata(Gd1, [nd,dd]=tfdata(Gd1, 'v''v');); Gd1=tf(nd,dd); Gd1=tf(nd,dd); tk=0:T:2; tk=0:T:2; Nd1=length(tk); Nd1=length(tk); yd=(max1)*dstep(nd,dd,Nd1); yd=(max1)*dstep(nd,dd,Nd1); stairs(tk,yd, stairs(tk,yd, 'r''r')) plot(tk,y1(1:Nd1), plot(tk,y1(1:Nd1), 'b''b')) axis([0 1 0 2]) axis([0 1 0 2]) grid grid legend(

legend('G_{id}(s)''G_{id}(s)',,'G_{id}(z)''G_{id}(z)',,'Data''Data',4),4) xlabel(

xlabel('\bf tiempo''\bf tiempo')) ylabel(

(18)

Al ejecutar el programa anterior obtenemos:

Al ejecutar el programa anterior obtenemos:

Además se visualizan

Además se visualizan los siguientes resultados:

los siguientes resultados:

>>

>>

Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) A(q) = 1 - 0.9889 (+-0.0002845) q^-1

A(q) = 1 - 0.9889 (+-0.0002845) q^-1 B(q) = 0.003841 (+-9.28e-005) q^-1 B(q) = 0.003841 (+-9.28e-005) q^-1 Estimated using ARX on data set datan Estimated using ARX on data set datan

Loss function 4.86336e-005 and FPE 4.8673e-005 Loss function 4.86336e-005 and FPE 4.8673e-005 Sampling interval: 0.001

Sampling interval: 0.001 Created:

Created: 13-Jul-2011 13-Jul-2011 03:36:1003:36:10 Last modified: 13-Jul-2011 03:36:10 Last modified: 13-Jul-2011 03:36:10

num/den = num/den = 3.8622 3.8622 ---s + 11.2095 s + 11.2095 Current plot held Current plot held

(19)

Una vez que ya

Una vez que ya tenemos la planta con la que vamos a

tenemos la planta con la que vamos a trabajar para el control de velocidad,

trabajar para el control de velocidad,

procederemo

procederemos a

s a hallar los respectivos controles.

hallar los respectivos controles.

CALCULOS PREVIOS PARA REALIZAR EL DISEÑO DE LOS

CALCULOS PREVIOS PARA REALIZAR EL DISEÑO DE LOS

CONTROLADORES

CONTROLADORES

Primero debemos cargar la data del modelo real y obtener la función de

Primero debemos cargar la data del modelo real y obtener la función de

transferencia de la planta, se realiza un aproximación de la F.T. utilizando

transferencia de la planta, se realiza un aproximación de la F.T. utilizando

ARX111, pues presenta una buena aproximación (98%) al modelo real.

ARX111, pues presenta una buena aproximación (98%) al modelo real.

%% Cargando la data del modelo real %% Cargando la data del modelo real load

load adqui_ML.lvmadqui_ML.lvm

u1=adqui_ML(:,4); u1=adqui_ML(:,4); y1=adqui_ML(:,2); y1=adqui_ML(:,2); t=adqui_ML(:,1); t=adqui_ML(:,1);

%% Cálculo para obtener la Función de transferencia de la Planta %% Cálculo para obtener la Función de transferencia de la Planta DATAX=[y1 u1]; DATAX=[y1 u1]; datan=iddata(y1,u1,0.001); datan=iddata(y1,u1,0.001); th=arx(data th=arx(datan,[1 1 n,[1 1 1]);1]); present(th); present(th);

% Pasando al Modelo Continuo

% Pasando al Modelo Continuo

thc=thd2thc(th); thc=thd2thc(th); [numc,denc]=th2tf(thc); [numc,denc]=th2tf(thc); printsys(numc,denc, printsys(numc,denc, 's''s');); Gp=tf(numc,denc); Gp=tf(numc,denc);



 



 





 

 

 



Ahora calcularemos los polos deseados, y para ellos consideraremos un

Ahora calcularemos los polos deseados, y para ellos consideraremos un

sobrepaso máximo igual a 20% y un tiempo de establecimiento igual a 0.1s.

sobrepaso máximo igual a 20% y un tiempo de establecimiento igual a 0.1s.

%% Cálculos para obtener los polos deseados %% Cálculos para obtener los polos deseados Mp=0.2; Ts=0.1; Mp=0.2; Ts=0.1; e=solve( e=solve('0.2-exp(-e*pi/sqrt(1-e^2))=0''0.2-exp(-e*pi/sqrt(1-e^2))=0' );); e=sym2poly(e); e=sym2poly(e); e=e(1);

e=e(1); % Coeficiente de Amortiguamiento% Coeficiente de Amortiguamiento

Wn=5/(e*Ts); Wn=5/(e*Ts); sigma=-e*Wn; sigma=-e*Wn; Wd=Wn*sqrt(1-e^2); Wd=Wn*sqrt(1-e^2); Td=2*pi/Wd; Td=2*pi/Wd; T=Td/20;

T=Td/20; % Tiempo de Muestreo% Tiempo de Muestreo

% T=0.001; % T=0.001; n=[Wn^2]; n=[Wn^2]; d=[1 2*e*Wn Wn^2]; d=[1 2*e*Wn Wn^2]; Gr=tf(n,d);

Gr=tf(n,d); % Modelo continuo de referencia% Modelo continuo de referencia

s=pole(Gr);

s=pole(Gr); % Polos continuos deseados% Polos continuos deseados

z=exp(T*s);

(20)

Polos continuos deseados s :

Polos continuos deseados s :

-50.0000 +97.5991i

-50.0000 +97.5991i

-50.0000 -97.5991i

-50.0000 -97.5991i

Polos continuos deseados z:

Polos continuos deseados z:

0.8097 + 0.2631i

0.8097 + 0.2631i

0.8097 - 0.2631i

0.8097 - 0.2631i

Considerando que el tiempo de muestreo (T) es igual a 0.0032189s, entonces se

Considerando que el tiempo de muestreo (T) es igual a 0.0032189s, entonces se

obtiene la si

obtiene la siguiente función de transferencia discreta:

guiente función de transferencia discreta:

%% Modelo Discreto %% Modelo Discreto Gpzz=tf(th.b,th.a,T); Gpzz=tf(th.b,th.a,T); [numpz,denpz]=tfdata(Gpz, [numpz,denpz]=tfdata(Gpz, 'v''v'););





 



 





 

 

 





Obtenemos el Root Locus del sistema en lazo abierto.

Obtenemos el Root Locus del sistema en lazo abierto.

%% Root locus de la planta %% Root locus de la planta figure figure rlocus(Gpzz), zgrid rlocus(Gpzz), zgrid axis([-1 1 -1 1]) axis([-1 1 -1 1]) hold hold plot(real(z(1)),imag(z(1)),

plot(real(z(1)),imag(z(1)), 'r*''r*',real(z(2)),imag(z(2)),,real(z(2)),imag(z(2)), 'r*''r*')) title(

(21)

CONTROLADOR CONTINUO PROPORCIONAL-INTEGRAL (PI)

CONTROLADOR CONTINUO PROPORCIONAL-INTEGRAL (PI)

Realizaremos el diseño del controlador PI, primeramente calculando las

Realizaremos el diseño del controlador PI, primeramente calculando las

variables K y a del controlador:

variables K y a del controlador:



 

  

%% DISEÑO DEL CONTROLADOR PI %% DISEÑO DEL CONTROLADOR PI % Polos de la Planta % Polos de la Planta [P [P Z]=pzmap(GpZ]=pzmap(Gp);); % Polos Deseados % Polos Deseados pd=s(1) pd=s(1)

% Calculando la magnitud correspondiente a los polos

% Calculando la magnitud correspondiente a los polos

d1=pd-P(1); d1=pd-P(1); d2=pd-0; d2=pd-0;

% Calculando los ángulos de fase

% Calculando los ángulos de fase

theta1=atan(imag(d1)/real(d1))*180/pi+180; theta1=atan(imag(d1)/real(d1))*180/pi+180; theta2=atan(imag(d2)/real(d2))*180/pi+180; theta2=atan(imag(d2)/real(d2))*180/pi+180;

% Ahora hallamos el ángulo de fase correspondiente al cero

% Ahora hallamos el ángulo de fase correspondiente al cero

integrador

integrador

thetaz=180+theta1+theta2; thetaz=180+theta1+theta2; % Cálculo del valor del cero

% Cálculo del valor del cero

a=-real(pd)+imag(pd)/(tan(thetaz*pi/180)) a=-real(pd)+imag(pd)/(tan(thetaz*pi/180)) d3=pd+a;

d3=pd+a; % Magnitud correspondiente al cero% Magnitud correspondiente al cero

% Cálculo de la ganancia K % Cálculo de la ganancia K n1=norm(d1); n1=norm(d1); n2=norm(d2); n2=norm(d2); n3=norm(d3); n3=norm(d3); Kg=numc(2);

Kg=numc(2); % Ganacia Estática% Ganacia Estática

K=(1*n1*n2)/(n3*Kg) K=(1*n1*n2)/(n3*Kg) Gc=tf(K*[1 a],[1 0]);

Gc=tf(K*[1 a],[1 0]); % Controlador PI continuo% Controlador PI continuo

S=series(Gc,Gp); S=series(Gc,Gp); F=S/(1+S); F=S/(1+S);

a=

a= 135.4187

135.4187

K=

K= 22.9688

22.9688

      

REDISEÑO DEL CONTROLADOR PI, PARA OBTENER EL

REDISEÑO DEL CONTROLADOR PI, PARA OBTENER EL

CONTROLADOR PI DISCRETO

CONTROLADOR PI DISCRETO

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

tk=0:T:0.4;

% Rediseno del Controlador Continuo (Controlador Discreto)

% Rediseno del Controlador Continuo (Controlador Discreto)

y=step(F,tk); y=step(F,tk);

%

%

---syscz1=c2d(Gc,T,

syscz1=c2d(Gc,T, 'zoh''zoh'))

syspz1=feedback(syscz1*Gpz,1); syspz1=feedback(syscz1*Gpz,1); y1=step(syspz1,tk);

(22)

%

%

--syscz2=c2d(Gc,T,

syscz2=c2d(Gc,T, 'tustin''tustin')) syspz2=feedback(syscz2*Gpz,1); syspz2=feedback(syscz2*Gpz,1); y2=step(syspz2,tk); y2=step(syspz2,tk); % % --Wc=100; Wc=100; syscz3=c2d(Gc,T,

syscz3=c2d(Gc,T, 'prewarp''prewarp',Wc),Wc) syspz3=feedback(syscz3*Gpz,1); syspz3=feedback(syscz3*Gpz,1); y3=step(syspz3,tk); y3=step(syspz3,tk); % % --% Ploteo % Ploteo figure figure plot(tk,y,

plot(tk,y, 'k''k'); hold); hold onon

stairs(tk,y1,

stairs(tk,y1,'b''b'); hold); hold onon

stairs(tk,y2,

stairs(tk,y2,'r''r'); hold); hold onon

stairs(tk,y3,

stairs(tk,y3,'g''g');); legend(

legend('Rpta Continua''Rpta Continua',,'Rpta ZOH''Rpta ZOH',,'Rpta Tustin''Rpta Tustin',,'Rpta Wc''Rpta Wc',4),4)

Aproximación por ZOH

Aproximación por ZOH



      

  

Aproximación por Tustin

Aproximación por Tustin



      

  

Aproximación por Tustin con Predesvío

Aproximación por Tustin con Predesvío



      

(23)

Si se hubiera diseñado con un tiempo de muestro (T) igual a 0.001s, se tendría

Si se hubiera diseñado con un tiempo de muestro (T) igual a 0.001s, se tendría

mejoras en las

mejoras en las respuestas.

respuestas.

ROOT LOCUS DE LA PLANTA CONTROLADA

ROOT LOCUS DE LA PLANTA CONTROLADA

%% Root Locus de la planta controlada

%% Root Locus de la planta controlada

Gcz=syscz1; Gcz=syscz1; L=series(Gcz,Gpz); L=series(Gcz,Gpz); figure figure rlocus(L), zgrid rlocus(L), zgrid axis([-1 1 -1 1]) axis([-1 1 -1 1]) hold hold plot(real(z(1)),imag(z(1)),

plot(real(z(1)),imag(z(1)), 'r*''r*',real(z(2)),imag(z(2)),,real(z(2)),imag(z(2)), 'r*''r*')) title(

(24)

CONTROLADOR DISCRETO PROPORCIONAL-INTEGRAL (PI)

CONTROLADOR DISCRETO PROPORCIONAL-INTEGRAL (PI)

Realizaremos el diseño del controlador PI discreto, inicialmente calcularemos

Realizaremos el diseño del controlador PI discreto, inicialmente calcularemos

las variables Kc y a del controlador:

las variables Kc y a del controlador:



 

  

%% DISEÑO DEL CONTROLADOR PI DISCRETO

%% DISEÑO DEL CONTROLADOR PI DISCRETO

% Polos Discretos de la Planta

% Polos Discretos de la Planta

[P Z]=pzmap(Gpz);

[P Z]=pzmap(Gpz);

% Polo Discreto Deseado

% Polo Discreto Deseado

pdz=z(1);

pdz=z(1);

% Calculando la magnitud correspondiente a los polos

% Calculando la magnitud correspondiente a los polos

d1=pdz-1;

d1=pdz-1;

(25)

d2=pdz-P(1);

d2=pdz-P(1);

% Calculando los ángulos de fase

% Calculando los ángulos de fase

theta1=atan(imag(d1)/real(d1))*180/pi+180;

theta1=atan(imag(d1)/real(d1))*180/pi+180;

theta2=atan(imag(d2)/real(d2))*180/pi+180;

theta2=atan(imag(d2)/real(d2))*180/pi+180;

% Ahora hallamos el ángulo de fase correspondiente al cero

% Ahora hallamos el ángulo de fase correspondiente al cero

thetaz=180+theta1+theta2;

thetaz=180+theta1+theta2;

% Cálculo del valor del cero

% Cálculo del valor del cero

a=real(pdz)-imag(pdz)/(tan(thetaz*pi/180))

a=real(pdz)-imag(pdz)/(tan(thetaz*pi/180))

d3=pdz-a;

d3=pdz-a;

% Magnitud correspondiente al cero

% Magnitud correspondiente al cero

% Cálculo de la ganancia K

% Cálculo de la ganancia K

n1=norm(d1);

n1=norm(d1);

n2=norm(d2);

n2=norm(d2);

n3=norm(d3);

n3=norm(d3);

Kg=numpz(2);

Kg=numpz(2);

% Ganacia Estática

% Ganacia Estática

Kc=(1*n1*n2)/(n3*Kg)

Kc=(1*n1*n2)/(n3*Kg)

a =0.7147

a =0.7147

K c=96.1121

K c=96.1121

 



 

 

 











 

 

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU

RESPUESTA A UNA ENTRADA ESCALÓN

RESPUESTA A UNA ENTRADA ESCALÓN

%% Root Locus de la planta controlada

%% Root Locus de la planta controlada

Gcz=zpk([a],[1],Kc,T)

Gcz=zpk([a],[1],Kc,T)

L=series(Gcz,Gpz);

L=series(Gcz,Gpz);

figure

figure

rlocus(L), zgrid

rlocus(L), zgrid

axis([-1 1 -1 1])

axis([-1 1 -1 1])

hold

hold

plot(real(z(1)),imag(z(1)),

plot(real(z(1)),imag(z(1)), 'r*'

'r*'

,real(z(2)),imag(z(2)),

,real(z(2)),imag(z(2)),'r*'

'r*'

)

)

title(

(26)

%% Respuesta al step de control discreto PI

%% Respuesta al step de control discreto PI

t=0:T:0.2;

t=0:T:0.2;

sys1=feedback(L,1,-1);

sys1=feedback(L,1,-1);

yd1=step(sys1,t);

yd1=step(sys1,t);

figure

figure

plot(t,yd1,

plot(t,yd1,'b+'

'b+'

), grid

), grid

title(

title('Respuesta al step control PI'

'Respuesta al step control PI'

)

)

xlabel(

xlabel('Tiempo (seg)'

'Tiempo (seg)'

)

)

CONTROLADOR PID DISCRETO

CONTROLADOR PID DISCRETO

Realizaremos el diseño del controlado PID discreto, para esto tomaremos un cero en

Realizaremos el diseño del controlado PID discreto, para esto tomaremos un cero en

0.6, luego calcularemos las variables Kc y

0.6, luego calcularemos las variables Kc y a del controlador:

a del controlador:



 



 

     

          

     

      

      

%% DISEÑO DEL CONTROLADOR PID DISCRETO

%% DISEÑO DEL CONTROLADOR PID DISCRETO

% Polos Discretos de la Planta

% Polos Discretos de la Planta

[P Z]=pzmap(Gpz);

[P Z]=pzmap(Gpz);

% Polo Discrteo Deseado

% Polo Discrteo Deseado

pdz=z(1);

pdz=z(1);

% Calculando la magnitud correspondiente a los polos

% Calculando la magnitud correspondiente a los polos

d1=pdz-1;

d1=pdz-1;

d2=pdz-P(1);

d2=pdz-P(1);

d3=pdz-0;

d3=pdz-0;

d4=pdz-0.6;

d4=pdz-0.6;

% Calculando los ángulos de fase

% Calculando los ángulos de fase

theta1=atan(imag(d1)/real(d1))*180/pi+180;

theta1=atan(imag(d1)/real(d1))*180/pi+180;

(27)

theta2=atan(imag(d2)/real(d2))*180/pi+180;

theta2=atan(imag(d2)/real(d2))*180/pi+180;

theta3=atan(imag(d3)/real(d3))*180/pi;

theta3=atan(imag(d3)/real(d3))*180/pi;

alpha1=atan(imag(d4)/real(d4))*180/pi;

alpha1=atan(imag(d4)/real(d4))*180/pi;

% Ahora hallamos el ángulo de fase correspondiente al cero

% Ahora hallamos el ángulo de fase correspondiente al cero

integrador

integrador

alpha2=180+theta1+theta2+theta3-alpha1;

alpha2=180+theta1+theta2+theta3-alpha1;

% Cálculo del valor del cero

% Cálculo del valor del cero

a=real(pdz)-imag(pdz)/(tan(alpha2*pi/180))

a=real(pdz)-imag(pdz)/(tan(alpha2*pi/180))

d5=pdz-a;

d5=pdz-a;

% Magnitud correspondiente al cero

% Magnitud correspondiente al cero

% Cálculo de la ganancia K

% Cálculo de la ganancia K

n1=norm(d1);

n1=norm(d1);

n2=norm(d2);

n2=norm(d2);

n4=norm(d3);

n4=norm(d3);

n3=norm(d4);

n3=norm(d4);

n5=norm(d5);

n5=norm(d5);

Kg=numpz(2);

Kg=numpz(2);

% Ganacia Estática

% Ganacia Estática

Kc=(1*n1*n2*n3)/(n4*n5*Kg)

Kc=(1*n1*n2*n3)/(n4*n5*Kg)

a =0.4567

a =0.4567

Kc =24.1315

Kc =24.1315



 







 

     

     

 

 

 











      

      

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU

ROOT LOCUS DE LA PLANTA DISCRETA CONTROLADA Y SU

RESPUESTA A UNA ENTRADA ESCALÓN

RESPUESTA A UNA ENTRADA ESCALÓN

%% Root Locus de la planta controlada

%% Root Locus de la planta controlada

Gcz=zpk([0.6 a],[1 0],Kc,T)

Gcz=zpk([0.6 a],[1 0],Kc,T)

L=series(Gcz,Gpz);

L=series(Gcz,Gpz);

figure

figure

rlocus(L), zgrid

rlocus(L), zgrid

axis([-1 1 -1 1])

axis([-1 1 -1 1])

hold

hold

plot(real(z(1)),imag(z(1)),

plot(real(z(1)),imag(z(1)), 'r*'

'r*'

,real(z(2)),imag(z(2)),

,real(z(2)),imag(z(2)),'r*'

'r*'

)

)

title(

(28)

%% Respuesta al step de control PID

%% Respuesta al step de control PID

t=0:T:1;

t=0:T:1;

sys1=feedback(L,1,-1)

sys1=feedback(L,1,-1)

yd1=step(sys1,t);

yd1=step(sys1,t);

figure

figure

plot(t,yd2,

plot(t,yd2,'b+'

'b+'

), grid

), grid

title(

title('Respuesta al step control PID'

'Respuesta al step control PID'

)

)

xlabel(

(29)

La forma del controlador PID Académico es:

La forma del controlador PID Académico es:



 

 



 

 

 

   

   

   

   

 

  

 

    

  



Siendo

Siendo

el factor de sintonía para el filtro cuyo valor esta en el rango [0,1]

el factor de sintonía para el filtro cuyo valor esta en el rango [0,1]

El control PID digitalizado toma la forma

El control PID digitalizado toma la forma





 



 

 

 

 

   

   



      

      





 



 







 

 

 

 



 







 

 

 

 

 







      

      

Entonces:

Entonces:

 

Kp =14.8967

Kp =14.8967

 

Ti =0.00914

Ti =0.00914

 

Td =0.001428

Td =0.001428

(30)

CONTROL PID EN TIEMPO REAL DE LA VELOCIDAD DE UN MOTOR

CONTROL PID EN TIEMPO REAL DE LA VELOCIDAD DE UN MOTOR

DC USANDO LA INTERFAZ DE LABVIEW

DC USANDO LA INTERFAZ DE LABVIEW

Para la implementación en tiempo real se utilizó un control PID el cual se

Para la implementación en tiempo real se utilizó un control PID el cual se

implementó en labview y se muestra a continuación.

implementó en labview y se muestra a continuación.

(31)

DIAGRAMA DE BLOQUES

DIAGRAMA DE BLOQUES

Como se puede observar en el diagrama de bloques se realiza un

Como se puede observar en el diagrama de bloques se realiza un

escalamiento tanto a la señal de referencia como a la señal proveniente del

escalamiento tanto a la señal de referencia como a la señal proveniente del

convertidor frecuencia-voltaje de acuerdo a la recta encontrada al inicio de

convertidor frecuencia-voltaje de acuerdo a la recta encontrada al inicio de

las pruebas la cual nos arrojaba una relación igual a:

las pruebas la cual nos arrojaba una relación igual a:





 

 





 

 





 

 









Y viceversa

Y viceversa





 





 

 











(32)

CONTROL

CONTROL DE

DE POSICIÓN

POSICIÓN DE

DE UN

UN MOTOR

MOTOR

Para el control de posición de un motor, el procedimiento será muy parecido, con la

Para el control de posición de un motor, el procedimiento será muy parecido, con la

salvedad que esta vez lo que queremos controlar es la posición, esto dificulta un poco la

salvedad que esta vez lo que queremos controlar es la posición, esto dificulta un poco la

tarea, ya que para ello deberemos contar con un sensor de posición, es

tarea, ya que para ello deberemos contar con un sensor de posición, es decir, algún circuito

decir, algún circuito

electrónico que en todo momento pueda proporcionarnos la posición de un motor.

electrónico que en todo momento pueda proporcionarnos la posición de un motor.

Además, el motor cuya posición queremos controlar debe ser un motor con reductor, esto

Además, el motor cuya posición queremos controlar debe ser un motor con reductor, esto

debido a que un motor sin reductor al ser mucho más veloz nos ocasionaría grandes

debido a que un motor sin reductor al ser mucho más veloz nos ocasionaría grandes

problemas al momento de controlarlo.

problemas al momento de controlarlo.

Por este motivo para el siguiente control utilizaremos un motor con reductor y por tanto

Por este motivo para el siguiente control utilizaremos un motor con reductor y por tanto

mas lento que el anterior.

mas lento que el anterior.

El motor que hemos elegido es el

El motor que hemos elegido es el Matushita modelo: GMX-6MPO13A

Matushita modelo: GMX-6MPO13A, el cual esta

, el cual esta

provisto de un encoder

(33)

Este motor tiene un encoder de 100 ranuras y no esta acoplado directamente al eje final,

Este motor tiene un encoder de 100 ranuras y no esta acoplado directamente al eje final,

sobre el cual se controlara la posición, si no mas

sobre el cual se controlara la posición, si no mas bien sobre el eje principal del motor.

bien sobre el eje principal del motor.

Este encoder

Este encoder es

es de modelo E

de modelo EM1 & HEDS y

M1 & HEDS y cuenta con 5

cuenta con 5 pines, los cual se d

pines, los cual se detallan en su

etallan en su

hoja de datos y se puede visualizar en el si

hoja de datos y se puede visualizar en el siguiente grafico.

guiente grafico.

SENSOR DE POSICIÓN

SENSOR DE POSICIÓN

Como se puede apreciar en el grafico anterior los 5 pines del encoder de

Como se puede apreciar en el grafico anterior los 5 pines del encoder de este motor son:

este motor son:

1.

1. GND (tierra)

GND (tierra)

2.

2. Index (Canal de indexación o índice)

Index (Canal de indexación o índice)

3.

3. Canal A del encoder

Canal A del encoder

4.

4. Alimentacion del encoder de 5V

Alimentacion del encoder de 5V

5.

5. Canal B del

Canal B del encoder.

encoder.

Los canales A y B son los encargados de enviar trenes de pulsos de onda cuadrada

Los canales A y B son los encargados de enviar trenes de pulsos de onda cuadrada

desfasados 90 grados,

(34)

Si bien es cierto, para el control de velocidad fue solo necesario utilizar uno de estos

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 posición necesitamos leer

canales para poder medir la velocidad, en el caso del control de posición necesitamos leer

las señales de ambos canales, ya que con los dos podemos determinara además el sentido

las señales de ambos canales, ya que con los dos podemos determinara además el sentido

de giro.

de giro.

El ángulo girado lo podremos obtener contando los pulsos de uno de los canales.

El ángulo girado lo podremos obtener contando los pulsos de uno de los canales.

El sentido de giro lo

El sentido de giro lo podremos obtener utilizand

podremos obtener utilizando ambas señales e

o ambas señales e ingresándolas a

ingresándolas a

un FLIP FLOP de tipo D, la primera se ingresara a la entrada D del flip flop, y la

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).

segunda a la entrada de reloj (clock).

La conexión se ilustra en el siguiente gráfico y es muy fácil deducir el

La conexión se ilustra en el siguiente gráfico y es muy fácil deducir el

funcionamiento de esto considerando que cuando el motor gire en un sentido 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

canal A estará adelantado 90 grados con respecto al canal B, y cuando gire en

sentido contrario será mas bien el canal B el

sentido contrario será mas bien el canal B el que se encuentre adelantado.

que se encuentre adelantado.

Esto produce una señal de salida igual a “1” cuando el motor gire en un sentido y Esto produce una señal de salida igual a “1” cuando el motor gire en un sentido y

una señal

una señal

de salida igual a “0” cuando gire en el sentido de salida igual a “0” cuando gire en el sentido contrario.contrario.

El pic recibirá entonces el número de pulsos y el sentido en que se producen cada

El pic recibirá entonces el número de pulsos y el sentido en que se producen cada

uno de ellos, logrando con esto definir el ángulo en que se encuentra posicionado.

uno de ellos, logrando con esto definir el ángulo en que se encuentra posicionado.

Posteriormente deberá transforma el valor del angulo en una señal analógica para

Posteriormente deberá transforma el valor del angulo en una señal analógica para

enviársela a la DAQ.

enviársela a la DAQ.

Entre las distintas posibilidades que existen para dotar al pic de una salida

Entre las distintas posibilidades que existen para dotar al pic de una salida

analógica nos decidimos por utilizar un R-2R ladder (Escalera R-2R), la cual nos

analógica nos decidimos por utilizar un R-2R ladder (Escalera R-2R), la cual nos

brinda una salida analógica proporcional al numero binario que coloquemos en la

brinda una salida analógica proporcional al numero binario que coloquemos en la

salida de uno o mas de los puertos del PIC.

(35)

En nuestro caso hemos utilizado 10 bits de resolución, pudiendo con ello tener una

En nuestro caso hemos utilizado 10 bits de resolución, pudiendo con ello tener una

salida analógica lo mas compatible posible con la DAQ USB6008, ya que esta

salida analógica lo mas compatible posible con la DAQ USB6008, ya que esta

también cuenta con una entrada analógica de 10 bits.

también cuenta con una entrada analógica de 10 bits.

ESQUEMÁTICO DEL SENSOR DE POSICIÓN

(36)

DISEÑO DE LA PLACA

DISEÑO DE LA PLACA

VISTA TRIDIMENSIONAL DE LA PLACA

VISTA TRIDIMENSIONAL DE LA PLACA

(37)

CONEXIÓN DE AMBAS PLACAS PARA EL CONTROL DE POSICIÓN

CONEXIÓN DE AMBAS PLACAS PARA EL CONTROL DE POSICIÓN

(38)

CONTROL PID EN TIEMPO REAL DE LA POSICIÓN DE UN MOTOR

CONTROL PID EN TIEMPO REAL DE LA POSICIÓN DE UN MOTOR

DC USANDO LA INTERFAZ DE LABVIEW

DC USANDO LA INTERFAZ DE LABVIEW

A continuación se muestra el

(39)

En esta sección se muestra el diagrama de bloques:

En esta sección se muestra el diagrama de bloques:

(40)

NOTA:

NOTA:

Es importante explicar la parte final

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

del esquema anterior que se observa en la siguiente

la siguiente

figura:

figura:

Como sabemos la señal

Como sabemos la señal de control pued

de control puede

e variar de -5V a +5V,sin emb

variar de -5V a +5V,sin embargo, el pic solo

argo, el pic solo

puede recibir señales positivas, por esta razón, el esquema anterior trata de transformar el

puede recibir señales positivas, por esta razón, 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

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

salida es debido a que es en este rango en que trabaja la escalera R-2R y

este rango en que trabaja la escalera R-2R y no en el esperado

no en el esperado

de 0-5V

(41)

CONTROL DIFUSO DE MOTOR DC

CONTROL DIFUSO DE MOTOR DC

En esta parte del informe diseñaremos el Control Difuso tipo base line para controlar la

En esta parte del informe diseñaremos el Control Difuso tipo base line para controlar la

posición angular del motor DC

posición angular del motor DC

``

Fig.

Fig. FLC

FLC en

en un

un lazo

lazo realimentado

realimentado

En nuestro caso la

En nuestro caso la planta representa la función de transferencia del motor identificada

planta representa la función de transferencia del motor identificada

mediante el Workbench de Labview. En

mediante el Workbench de Labview. En nuestro caso sería:

nuestro caso sería:

     

Para el proceso de fuzzyficacion usaremos

Para el proceso de fuzzyficacion usaremos funciones de pertenenc

funciones de pertenencia triangulares.

ia triangulares.

DISEÑO DEL CONTROLADOR TIPO BASE LINE PARA EL MOTOR DC

DISEÑO DEL CONTROLADOR TIPO BASE LINE PARA EL MOTOR DC

Funciones de Pertenencia

Funciones de Pertenencia

ENTRADA

(42)

SALIDA

SALIDA

BASE DE REGLAS DIFUSAS

BASE DE REGLAS DIFUSAS

NB

NM

NS

ZO

PS

PM

PB

NB

NM

NS

ZO

PS

PM

PB

Error

Error

-1

-1

-0.24

-0.24

-0.038

-0.038

0

0

0.038

0.038

0.24

0.24

11

Salida

Salida

-1

-1

-0.24

-0.24

-0.18

-0.18

0

0

0.18

0.18

0.24

0.24

11

Donde se pueden obtener las

Donde se pueden obtener las siguientes reglas.

siguientes reglas.

R1: IF e is

R1: IF e is NB

NB AND THEN u is

AND THEN u is NB

NB

R2: IF e is

R2: IF e is NM

NM AND

AND THEN u is

THEN u is NM

NM

R3 : IF e is

R3 : IF e is NS

NS AND THEN u is

AND THEN u is NS

NS

R4 : IF e is

R4 : IF e is ZO

ZO AND THEN u is

AND THEN u is ZO

ZO

R5 : IF e is

R5 : IF e is PS

PS AND THEN u is

AND THEN u is PS

PS

R6 : IF e is

R6 : IF e is PM

PM AND THEN u is

AND THEN u is PM

PM

R7 : IF e is

(43)

Fig. Grafico que relaciona las entradas y las salidas

Fig. Grafico que relaciona las entradas y las salidas

GRAFICO DEL CONTROL TIPO BASE LINE EN LABVIEW:

GRAFICO DEL CONTROL TIPO BASE LINE EN LABVIEW:

Fig. Control Tipo Base Line en LabView

Fig. Control Tipo Base Line en LabView

(44)

Fig. Respuesta del controlador a una

Fig. Respuesta del controlador a una referencia

referencia

La grafica representa la

La grafica representa la respuesta a una entrada escalón de

respuesta a una entrada escalón de referencia. Podemos apreciar

referencia. Podemos apreciar

que el control no es muy eficiente ya que

que el control no es muy eficiente ya que para entradas de referencia muy eleva

para entradas de referencia muy elevadas la

das la

señal de control se pierde.

señal de control se pierde.

Control PID Difuso Lineal para el control de Posición

Control PID Difuso Lineal para el control de Posición del motor DC

del motor DC

La forma del controlador PID tradicional es

La forma del controlador PID tradicional es



       

      

   

   

   

   

 

  

 

   

  

(45)

Donde: E representa el error y CE el cambio del error que van a entrar a las reglas difusas.

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

GE y GCE representan las ganancias para el error y cambio

el error y cambio del error respectivamente. GIE

del error respectivamente. GIE

representa la ganancia de la integral del error y GU la ganancia de

representa la ganancia de la integral del error y GU la ganancia de la señal de control.

la señal de control.

Los valores para las ganancias se calculan a partir del diseño del controlador y están dados

Los valores para las ganancias se calculan a partir del diseño del controlador y están dados

por:

por:

               

De donde los valores podemos despejar las ganancias:

De donde los valores podemos despejar las ganancias:

              

Los valores de Kp, Ti y Td serán los mismos que se calcularon para diseñar el controlador

Los valores de Kp, Ti y Td serán los mismos que se calcularon para diseñar el controlador

digital.

digital.

Kp=14.8967 Kp=14.8967 Ti=0.00914 Ti=0.00914 Td=0.001428 Td=0.001428

De donde reemplazando en las ecuaciones y para un GC=100 se obtiene

De donde reemplazando en las ecuaciones y para un GC=100 se obtiene

(46)

FUNCIONES DE PERTENENCIA

FUNCIONES DE PERTENENCIA

ENTRADA

ENTRADA

El rango empleado para la señal de error y

El rango empleado para la señal de error y el cambia de error será de

el cambia de error será de [-5,5]

[-5,5]

Fig. Funciones de

Fig. Funciones de pertenen

pertenencia del error

cia del error

Fig. Funciones de

Fig. Funciones de pertenencia del cambio del error

pertenencia del cambio del error

SALIDA

SALIDA

La señal de control

La señal de control será limitada en el rang

será limitada en el rango de

o de [-5,5]

[-5,5]

Fig. Funciones de pertenencia de la salida

Fig. Funciones de pertenencia de la salida

(47)

BASE DE REGLAS DIFUSAS

BASE DE REGLAS DIFUSAS

La base de reglas difusas es

La base de reglas difusas es dada en la siguiente tabla.

dada en la siguiente tabla.

CE

CE

NB NS ZE PS PB

NB NS ZE PS PB

E

E

NB NB NB NS NS ZE

NB NB NB NS NS ZE

NS NB NS NS ZE NS

NS NB NS NS ZE NS

ZE NS NS ZE NS NS

ZE NS NS ZE NS NS

PS NS ZE NS NS NB

PS NS ZE NS NS NB

PB ZE NS NS NB NB

PB ZE NS NS NB NB

Tabla de reglas

Tabla de reglas

La tabla genera las 25 reglas para el

La tabla genera las 25 reglas para el control FLC:

control FLC:

R1: IF e is

R1: IF e is NB

NB AND ce is

AND ce is NB

NB THEN u is

THEN u is NB

NB

R2: IF e is

R2: IF e is NB

NB AND ce is

AND ce is NS

NS THEN u is

THEN u is NB

NB

R3 : IF e is

R3 : IF e is NB

NB AND ce is

AND ce is ZE

ZE THEN u is

THEN u is NS

NS

R4 : IF e is

R4 : IF e is NB

NB AND ce is

AND ce is PS

PS THEN u is

THEN u is NS

NS

R5 : IF e is

R5 : IF e is NB

NB AND ce is

AND ce is PB

PB THEN u is

THEN u is ZE

ZE

R6 : IF e is

R6 : IF e is NS

NS AND ce is

AND ce is NB

NB THEN u is

THEN u is NB

NB

R7 : IF e is

R7 : IF e is NS

NS AND ce is

AND ce is NS

NS THEN u is

THEN u is NS

NS

R8 : IF e is

R8 : IF e is NS

NS AND ce is

AND ce is ZE

ZE THEN u is

THEN u is NS

NS

R9 : IF e is

R9 : IF e is NS

NS AND ce is

AND ce is PS

PS THEN u is

THEN u is ZE

ZE

R10: IF e is

R10: IF e is NS

NS AND ce is

AND ce is PB

PB THEN u is

THEN u is PS

PS

R11: IF e is

R11: IF e is ZE

ZE AND ce is

AND ce is NB

NB THEN u is

THEN u is NS

NS

R12 : IF e is

R12 : IF e is ZE

ZE AND ce is

AND ce is NS

NS THEN u is

THEN u is NS

NS

R13 : IF e is

R13 : IF e is ZE

ZE AND ce is

AND ce is ZE

ZE THEN u is

THEN u is ZE

ZE

R14 : IF e is

R14 : IF e is ZE

ZE AND ce is

AND ce is PS

PS THEN u is

THEN u is PS

PS

R15 : IF e is

R15 : IF e is ZE

ZE AND ce is

AND ce is PB

PB THEN u is

THEN u is PS

PS

R16 : IF e is

R16 : IF e is PS

PS AND ce is

AND ce is NB

NB THEN u is

THEN u is NS

NS

R17 : IF e is

R17 : IF e is PS

PS AND ce is

AND ce is NS

NS THEN u is

THEN u is ZE

ZE

R18 : IF e is

(48)

R19: IF e is

R19: IF e is PS

PS AND ce is

AND ce is PS

PS THEN u is

THEN u is PS

PS

R20: IF e is

R20: IF e is PS

PS AND ce is

AND ce is PB

PB THEN u is

THEN u is PB

PB

R21 : IF e is

R21 : IF e is PB

PB AND ce is

AND ce is NB

NB THEN u is

THEN u is ZE

ZE

R22 : IF e is

R22 : IF e is PB

PB AND ce is

AND ce is NS

NS THEN u is

THEN u is PS

PS

R23 : IF e is

R23 : IF e is PB

PB AND ce is

AND ce is ZE

ZE THEN u is

THEN u is PS

PS

R24 : IF e is

R24 : IF e is PB

PB AND ce is

AND ce is PS

PS THEN u is

THEN u is PB

PB

R25 : IF e is

R25 : IF e is PB

PB AND ce is

AND ce is PB

PB THEN u is

THEN u is PB

PB

GRAFICO DEL CONTROL EN LABVIEW:

GRAFICO DEL CONTROL EN LABVIEW:

Fig.

Referencias

Documento similar

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

Como resultado final se creó una base de datos automatizada para el control de la literatura docente que tendrá un impacto positivo, ya que se logrará rapidez

Figura 12. Este circuito se puede modificar mediante compuertas lógicas, de manera que una entrada controle la conmutación y la otra, la dirección de rotación.. Circuito H

Su fácil control de posición, par y velocidad la han convertido en una de las mejores opciones en aplicaciones de control, este tipo de motores sencillos son muy utilizados a menudo

El presente proyecto tiene la finalidad de controlar un motor trifásico, en la plataforma de Labview se desarrollará un in instrumento virtual con los botones para el control,

conformidad del producto con los requisitos, la organización debe asegurarse de controlar tales procesos. El tipo y grado de control a aplicar sobre dichos procesos

En el caso del sistema PE, para conocer la posici´on de la esfera sobre el plano de vidrio, se consider´ o como lazo de retroalimentaci´ on al sistema de visi´on, por lo que el