Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
1. DESCRIPCION
En esta practica obtendremos la funcion de transferencia del motor DC lego NXT con el que hemos trabaja-
do en la practica 1 con base en mediciones experimentales. Para esto usaremos 2 metodos: (i) La respuesta del
sistema a una senal binaria pseudoaleatoria (PRBS); y, (ii) la respuesta a un pulso; junto con la herramienta
de identificacion de sistemas de MATLAB.
2. OBJETIVOS
Obtener la funcion de transferencia de un sistema usando metodos experimentales.
Evaluar la calidad de prediccion del modelo de funcion de transferencia obtenido en relacion con los
datos experimentales.
Aplicar tecnicas de identificacion de sistemas usando herramientas de software.
Disenar Controladores con base en los modelos realizados.
3. CONCEPTOS IMPORTANTES
Motor DC de iman permanente
El motor DC de iman permanente es basicamente un transductor de torque que convierte energa electrica
en energa mecanica y se puede representar mediante el diagrama del circuito equivalente de la Figura 1 [1, p.
202].
En motores DC, la armadura del motor es modelada como un circuito con una resistencia Ra conectada
en serie con una inductancia La , y una fuente de voltaje eb que representa la fuerza contra-electromotriz en la
armadura cuando el rotor gira.
Las variables y parametros del motor se definen de la siguiente forma (ver Figura 1):
1
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
Al aplicar la tension u(t) en los terminales de la armadura del motor, se desarrolla un torque en el eje del
motor que es directamente proporcional a la corriente de armadura, segun la siguiente ecuacion:
De forma similar, la variacion de flujo magnetico induce la tension ei (t), de acuerdo con la siguiente ecuacion:
(s) Kt
= 2
. (3)
Up (s) s(La Jm s + (Ra Jm + Bm La )s + (Kt Kt + Ra Bm ))
(t) = (t),
2
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
(s) = s(s),
Obtenemos la funcion de transferencia de la entrada de tension up (t) a la velocidad angular del motor (t)
eliminando el integrador en la ecuacion 3, siendo esta dada por:
(s) Kv
= 2
. (4)
Up (s) La Jm s + (Ra Jm + Bm La )s + (Kv Kt + Ra Bm )
La estructura descrita por la ecuaciones 3 y 4 constituyen la base para obtener los modelos de esta practica.
4. PREGUNTAS PRELIMINARES
Responda las siguientes preguntas antes de iniciar el desarrollo experimental.
1. Obtenga la funcion de transferencia dada por la ecuacion 3, usando leyes fundamentales de forma similar
al taller de la primera semana.
2. Investigue que es una secuencia binaria pseudoaleatoria (PRBS) y como se utiliza en identificacion de
sistemas.
Ra = 6.85 La = 0.0047H
Kv = 0.46 Kt = 0.31
Bm = 0.0011 Jm = 0.001
Simule la respuesta del motor en angulo y velocidad ante una onda cuadrada con periodo de 2 segundos,
con amplitud mnima de -80 y maxima de 80. Puede usar diagramas de bloques en simulink o el comando
lsim.
4. Simule la respuesta del motor en angulo y velocidad ante una entrada de tipo PRBS, con tiempo de
muestreo de 10ms, con amplitud mnima de -80 y maxima de 80. Simule para un factor de repeticion
de 1 y uno de 20. Indique las diferencias. Puede usar el siguiente codigo para la generacion de la senal
PRBS (para esto busque en la ayuda de Matlab el funcionamiento de las funciones idinput y lsim y las
caractersticas que deben tener las variables de entrada, por ejemplo, tf_vel corresponde a una funcin
de transferencia que debe ser definida previamente):
rango = [ 8 0 , 8 0 ] ;
banda = [ 0 1 / 2 0 ] ;
usim = i d i n p u t ( 2 5 6 0 , p r b s , banda , rango ) ;
t = ( 0 : l e n g t h ( usim ) 1) 0 . 0 1 ;
[ y , t ]= l s i m ( t f v e l , usim , t ) ;
plot ( t , y)
3
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
%% a p l i c a r a l motor y s a l v a r d a t o s d e l e x p e r i m e n t o
p o r t = COMX ;
baudios = 2000000;
h = 1 5 ; %tiempo de muestreo en m i l i s e g u n d o s , debe c o i n c i d i r con e l de
arduino
h s e g = h / 1 0 0 0 ; % tiempo de muestro en s e g u n d o s
tadq = 1 0 ; % tiempo de a d q u i s i c i o n en segundos , puede s e r c u a l q u i e r v a l o r
[ ang , u , Yd , Ym, Ys , T ] = a d q u i r i r d a t o s ( port , baudios , tadq , h ) ;
%% d e f i n i e n d o d a t o s para e l t o o l b o x de i d e n t i f i c a c i n
p l o t (T, ang , T, u ) ;
d a t o s p r b s = i d d a t a ( ang , u , h s e g ) ;
save ( datosprbs , datosprbs ) ;
Tenga en cuenta con que nombre almacena los datos obtenidos del motor. En caso de presentar problemas
con la adquisicion de datos considere desconectar la tarjeta, reconectarla y volver a programarla antes
de correr nuevamente el codigo. Si los errores persisten considere aumentar el tiempo de muestreo tanto
del codigo en Matlab (h) como en Arduino (deltaT).
2. Realice un experimento aplicando una senal cuadrada con periodo de 2 segundos, maximo valor de 80 %
y mnimo valor de 80 % en porcentaje de PWM (vea el archivo escalon.ino). Para esto puede usar el
siguiente listado de comandos:
%% a p l i c a r a l motor y s a l v a r d a t o s d e l e x p e r i m e n t o
p o r t = COMX ;
baudios = 2000000;
h = 1 5 ; %tiempo de muestreo en m i l i s e g u n d o s , debe c o i n c i d i r con e l de
arduino
h s e g = h / 1 0 0 0 ; % tiempo de muestro en s e g u n d o s
tadq = 1 0 ; % tiempo de a d q u i s i c i o n en segundos , puede s e r c u a l q u i e r v a l o r
[ ang , u , Yd , Ym, Ys , T ] = a d q u i r i r d a t o s ( port , baudios , tadq , h ) ;
%% d e f i n i e n d o d a t o s para e l t o o l b o x de i d e n t i f i c a c i n
p l o t (T, ang , T, u ) ;
d a t o s e s c a l o n = i d d a t a ( ang , u , h s e g ) ;
save ( datosescalon , datosescalon ) ;
4
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
(t) (t h)
(t) (5)
h
Obtenga los datos de velocidad angular a partir de los experimentos 1 y 2, aplicando la ecuacion 5. Para
esto puede usar el siguiente codigo:
%% d e f i n i e n d o d a t o s de v e l o c i d a d
h = 1 5 ; %tiempo de muestreo en m i l i s e g u n d o s , debe c o i n c i d i r con e l de
arduino
h s e g = h / 1 0 0 0 ; % tiempo de muestro en s e g u n d o s
u = u ( 1 : end 1) ;
t = t ( 1 : end 1) ;
v e l = d i f f ( ang ) / h s e g ;
plot ( t , vel )
d a t o s v e l o c i d a d = i d d a t a ( d i f f ( ang ) / hseg , u , h s e g ) ;
save ( datosprbsvel , datosprbsvel ) ;
Tenga en cuenta que los valores correspondientes a u y a ang corresponden a los datos almacenados en los
archivos correspondientes a los numerales anteriores. Otra forma de hacer esto puede ser directamente
desde el motor usando el archivo identarduinovel.m.
Tomando como datos de trabajo la derivada de los datos obtenidos en el experimento 1, use la aplicacion
de identificacion para obtener los siguientes modelos:
a) Un modelo con un polo, sin ceros y sin retardo
b) Un modelo con 2 polos, sin ceros y sin retardo
Compare los modelos usando como dato de validacion los datos de velocidad obtenidos al derivar los
datos del experimento 2.
5. A partir de los datos de velocidad obtenidos tras derivar numericamente el experimento 2, grafique un
periodo de la entrada y la salida a la senal cuadrada (esta es la respuesta al escalon) y a partir de la
grafica obtenga un modelo de primer orden de la forma dada por la ecuacion
Y (s) k
G(s) = = (6)
U (s) s + 1
5
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
1
0.98
0.95
0.865
0.632
Amplitud
0
0 2 Tiempo (seconds)
3 4
Tiempo
salidaee
k= (7)
entradaee
es la constante de tiempo del sistema y es el tiempo que tarda la respuesta en llegar al 63.2 % de su
valor final, tal y como se muestra en la figura 2).
6. Importe el modelo anterior en la aplicacion de identificacion y compare su modelo con los modelos
obtenidos en el numeral 4.
Luego, en la ventana ident ubique la pestana llamada Estimate... y seleccione la opcion Process models...,
e inmediatamente se va a abrir una ventana llamada Process Models, en donde se podran seleccionar diferentes
funciones de transferencia (primer, segundo o tercer orden) con el fin de que Matlab realice una estimacion del
modelo seleccionado a partir de los datos experimentales cargados. Este paso se puede observar en las Figuras
3 y 4.
6
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
7
Universidad Nacional De Colombia
Laboratorio de Control
Facultad De Ingeniera
2016493
Departamento De Ingeniera Electrica Y Electronica
2017-II
En la ventana Process Models (ver Figura 4), seleccione diferentes modelos matematicos cambiando el
numero de polos y adicionando ceros. Para cada modelo seleccionado realice la identificacion del modelo ma-
tematico dando clic en el boton Estimate.
Una vez se estimen modelos, estos van apareciendo en la ventana ident representados como pequenas
imagenes tal como se observa en la Figura 5 (izquierda). Si se desea observar la funcion de transferencia
obtenida, basta con dar clic derecho sobre cada modelo estimado y se abrira una ventana que detalla el
modelo obtenido. Si se desea observar el porcentaje de ajuste de cada modelo estimado comparado con los
datos experimentales, puede activar la opcion Model output y podra observar una grafica que provee esta
informacion (ver Figura 5 derecha).
Referencias
[1] M. F. Golnaraghi and Benjamin C. Kuo. Automatic control systems. Wiley, Hoboken, NJ, 9th edition,
2010.