punto 2 práctica 2

8
4.2. Análisis de respuesta transitoria y modelado experimental del motor LEGO En esta parte se realizó la modelación de la respuesta de un motor LEGO, para obtener tres funciones de transferencia, la primera de manera gráfica con los datos obtenidos de la velocidad del motor, la segunda a partir de un método de modelado diferente a los trabajados en la guía y la tercera mediante la herramienta ident de matlab, para la identificación de sistemas. Finalmente se procede a realizar la comparación de las tres funciones de transferencia y evaluar cual es la que se parece más a la respuesta real. 1. Mediante el archivo de texto “salida” que registra la velocidad angular de un motor, el cual fue creado por medio del programa registrolevel, el cual está programado con el siguiente código. long u=100; float vel; long dt; long prev_tick; long prev_deg = 0; byte fileHandle; string s; short bytesWritten; string write; string speed_meter(){ dt = CurrentTick() - prev_tick; long deg = MotorRotationCount(OUT_A) - prev_deg; vel = deg * 1000.0 / dt; prev_deg = MotorRotationCount(OUT_A); prev_tick = CurrentTick(); return FormatNum("Vel: %5.2f g/s", vel); }

Upload: victor-alfonso-gomez-matallana

Post on 12-Dec-2015

226 views

Category:

Documents


3 download

DESCRIPTION

h

TRANSCRIPT

Page 1: Punto 2 Práctica 2

4.2. Análisis de respuesta transitoria y modelado experimental del motor LEGO

En esta parte se realizó la modelación de la respuesta de un motor LEGO, para obtener tres funciones de transferencia, la primera de manera gráfica con los datos obtenidos de la velocidad del motor, la segunda a partir de un método de modelado diferente a los trabajados en la guía y la tercera mediante la herramienta ident de matlab, para la identificación de sistemas. Finalmente se procede a realizar la comparación de las tres funciones de transferencia y evaluar cual es la que se parece más a la respuesta real.

1. Mediante el archivo de texto “salida” que registra la velocidad angular de un motor, el cual fue creado por medio del programa registrolevel, el cual está programado con el siguiente código.

long u=100;float vel;long dt;long prev_tick;long prev_deg = 0;

byte fileHandle;string s;short bytesWritten;string write;

string speed_meter(){ dt = CurrentTick() - prev_tick; long deg = MotorRotationCount(OUT_A) - prev_deg; vel = deg * 1000.0 / dt; prev_deg = MotorRotationCount(OUT_A); prev_tick = CurrentTick(); return FormatNum("Vel: %5.2f g/s", vel);}

task main(){ DeleteFile("salida.txt"); CreateFile("salida.txt", 20000, fileHandle); while(!ButtonPressed(BTNCENTER, false)){ TextOut(0,LCD_LINE1,speed_meter()); OnFwd(OUT_A,u); TextOut(0, LCD_LINE2, StrCat("PWM: ",NumToStr(u))); s = NumToStr(vel); write = StrCat(s," ");

Page 2: Punto 2 Práctica 2

WriteLnString(fileHandle,write, bytesWritten); Wait(20); ClearScreen(); } CloseFile(fileHandle);}

Se graficó mediante matlab la curva de reacción del motor LEGO, la cual es mostrada en la figura.

Figura. Curva de reacción del motor LEGO mediante matlab.

El vector de tiempo fue construido con base al código y al archivo “salida”, ya que el código guarda un dato cada 20 milisegundos, generando así en el archivo “salida” 663 datos. Siendo así, el tiempo total de la simulación es 13,26 segundos, tal como se muestra en la gráfica. En esta se observa que se presentan variaciones en la salida, las cuales pueden ser originadas por ruido que ingresa al sistema, sin embargo estas variaciones se presentan alrededor de un valor de estado estacionario. Teniendo en cuenta es valor promedio de estas variaciones se pueden hallar las características dinámicas y estáticas del sistema, para así obtener la función e transferencia. Estas características se obtienen de manera visual en base a la gráfica y se muestran en la tabla.

Parámetro ValorK (ganancia) 909

t s (tiempo de establecimiento) 0.24τ 0.06

Donde el tiempo t s se obtiene al dato número 12 y por 20 milisegundos, la ganancia es el valor en estado estacionario partiendo del hecho que la entrada es de valor unitario, y el τ se halló con el

Page 3: Punto 2 Práctica 2

valor de 4τ=tiempo de establecimiento. Con los parámetros definidos se procede a definir la función de transferencia, la cual es de la forma:

G (s )= kτs+1

Ahora se procede a graficar la respuesta dada por la función de transferencia hallada y compararla con la respuesta original, como se muestra en la figura:

Figura. Respuesta obtenida con los datos (azul) y respuesta de la función de transferencia deducida (rojo).

Como se observa en la figura, la respuesta de la función de transferencia deducida se superpone a la respuesta obtenida por los datos del programa, a diferencia que la estimación suprime las variaciones introducidas por el ruido en el sistema.

2. Se requiere investigar y describir un método para el modelado de sistemas diferente a los presentados en clase, para obtener una nueva función de transferencia de la respuesta del motor LEGO. Se encontró el método de regresión exponencial, el cual se conoce técnicamente como el método de identificación a respuesta paso de modelos de primer orden con tiempo muerto.

Page 4: Punto 2 Práctica 2

El método consiste en que se tiene una función de primer orden con o sin tiempo muerto definido de la siguiente manera:

y (t )=K∗A∗u (t−t o )[1−e−( t−t o)τ ]

Denominando a y(t) como la variable de desviación de salida, t oel tiempo de retardo y k como la ganancia estática del sistema, la cual se encuentra definida como:

K=limt →∞

y (t )

A=y∞A

Donde A es el valor de amplitud de la señal paso. Efectuando la transformación de y(t),se expresa como:

ln ( y∞− y ( t )y∞ )= toτ − tτ

Tomando a y como el punto más lejano y con ayuda de Excel se puede hacer el cálculo del logaritmo, el cual se muestra en la siguiente tabla:

Page 5: Punto 2 Práctica 2

Y graficando el logaritmo con respecto al tiempo , se halla la tendencia lineal del sistema:

Figura. Gráfica de la función logarítmica en Excel.

Con el valor de la línea de tendencia:

ln ( y∞− y ( t )y∞ )=−4.2552 t

Comparando con la ecuación de la transformación realizada a y(t), se puede identificar el τ de la siguiente forma:

−1τ

=−4.2552→τ= 14.2552

=0,235

Ya que:

t o=0→t oτ=0

Obteniéndose la función de transferencia de la forma:

Glog (s )= 954 .540,235 s+1

3. Utilizando la herramienta ident, y siguiendo los mismos pasos que se siguieron en el punto 1, se obtiene que los parámetros para esta función de transferencia son:

Parámetro ValorK 921.5164

Page 6: Punto 2 Práctica 2

T 3.6224

Con estos parámetros, se obtiene la función de transferencia de la forma:

G Ident (s )= 921.51641+3.6224 s

Para la cual se obtuvo una respuesta de la siguiente manera:

Figura. Respuesta obtenida a través de la herramienta ident de matlab, mostrando la señal del archivo (negro) y la señal de la función de transferencia calculada (rojo).

4. Se realiza una gráfica con las tres respuestas al sistema, la cual es mostrada en la figura.

Page 7: Punto 2 Práctica 2

Donde la respuesta en rojo corresponde a la respuesta de la función de transferencia del numeral 1, la respuesta en morado corresponde a la respuesta por el método logarítmico del numeral 2 y la respuesta en verde corresponde a la respuesta de la función de transferencia hallada por medio de la herramienta ident en el numeral 3. Como se puede observar hay un error en el τ de las funciones de transferencia, y donde más se observa es en la hallada por la herramienta ident, esto se debe a que el archivo que genera el programa registrolevel no tiene el tiempo en el cual se registró cada dato, por lo cual la herramienta ident construye su propio vector de tiempo. La respuesta más aproximada a la real corresponde a la primera función de transferencia ya que el vector de tiempo con el que se trabajó corresponde al procesamiento real del Bricx.