9
Resumen. En este reporte se describe la metodología para la realización de la estimación de parámetros de un motor de CD de voltaje de operación de 0 a 90V en el software MATLAB. Primero se realizó la adquisición de los datos de velocidad contra tiempo para tres voltajes de alimentación distintos, 50V, 70V y 90V, a través de un instrumento virtual en el software LabVIEW con ayuda de un sensor de velocidad de efecto Hall. Posteriormente, fueron estimados los parámetros del motor de CD mediante la herramienta de estimación de parámetros de MATLAB exportando los datos obtenidos con LabVIEW. Al final, se obtuvo un valor promedio para cada uno de los parámetros estimados J, R, L y Km. Introducción. Un motor de cd puede ser representado mediante un circuito equivalente como el que se muestra en la figura 1. De este circuito se derivan distintos parámetros necesarios para describir el comportamiento del motor, como lo son la inercia del rotor del motor o J, la inductancia del devanado de la armadura o L, la resistencia del devanado o R, las constantes contra electromotriz y de torque o Km (si se manejan unidades del SI poseen el mismo valor) y el coeficiente de fricción o b. Figura 1. Circuito equivalente de un motor de cd. Existen distintas formas de realizar la estimación de los parámetros, ya sea mediante mediciones directas de cada uno de ellos o bien mediante la ayuda de un software de adquisición de datos y cálculo numérico. MATLAB posee una herramienta útil para realizar esta tarea de parametrización, que con ayuda de un diagrama de bloques en Simulink, requiere solamente de una gráfica que describa el comportamiento de la velocidad del motor respecto al tiempo. Desarrollo La estimación de los parámetros del motor fue realizada con la herramienta “Parameter Estimation” en Simulink de MATLAB. Para la estimación, son necesarios datos reales y para ello se realizaron tres pruebas, a 50V, 70V y 90V respectivamente, donde se

Parametrización con MATLAB motor de CD.docx

Embed Size (px)

Citation preview

Page 1: Parametrización con MATLAB motor de CD.docx

Resumen.

En este reporte se describe la metodología para la realización de la estimación de parámetros de un motor de CD de voltaje de operación de 0 a 90V en el software MATLAB. Primero se realizó la adquisición de los datos de velocidad contra tiempo para tres voltajes de alimentación distintos, 50V, 70V y 90V, a través de un instrumento virtual en el software LabVIEW con ayuda de un sensor de velocidad de efecto Hall. Posteriormente, fueron estimados los parámetros del motor de CD mediante la herramienta de estimación de parámetros de MATLAB exportando los datos obtenidos con LabVIEW. Al final, se obtuvo un valor promedio para cada uno de los parámetros estimados J, R, L y Km.

Introducción.

Un motor de cd puede ser representado mediante un circuito equivalente como el que se muestra en la figura 1. De este circuito se derivan distintos parámetros necesarios para describir el comportamiento del motor, como lo son la inercia del rotor del motor o J, la inductancia del devanado de la armadura o L, la resistencia del devanado o R, las constantes contra electromotriz y de torque o Km (si se manejan unidades del SI poseen el mismo valor) y el coeficiente de fricción o b.

Figura 1. Circuito equivalente de un motor de cd.

Existen distintas formas de realizar la estimación de los parámetros, ya sea mediante mediciones directas de cada uno de ellos o bien mediante la ayuda de un software de adquisición de datos y cálculo numérico. MATLAB posee una herramienta útil para realizar esta tarea de parametrización, que

con ayuda de un diagrama de bloques en Simulink, requiere solamente de una gráfica que describa el comportamiento de la velocidad del motor respecto al tiempo.

Desarrollo

La estimación de los parámetros del motor fue realizada con la herramienta “Parameter Estimation” en Simulink de MATLAB. Para la estimación, son necesarios datos reales y para ello se realizaron tres pruebas, a 50V, 70V y 90V respectivamente, donde se encendía el motor y mediante el instrumento virtual en LabVIEW se observaba el comportamiento de la velocidad en rad/s contra el tiempo. Los datos de la gráfica del instrumento virtual fueron exportados al portapapeles, como se observa en la figura 2.

Figura 2. Método para exportar datos de una gráfica de LabVIEW al portapapeles.

Posteriormente, dichos datos fueron importados a MATLAB mediante una pequeña línea de código (ver figura 3). El primer renglón consta de una variable “A” que toma el valor de la instrucción “importdata (pastespecial)”; esta última instrucción se encarga de pasar los datos del portapapeles al espacio de trabajo de MATLAB. El segundo renglón del código grafica los datos importados mediante la función “plot”, como se aprecia en la figura 4; los argumentos de esta función son la estructura de los datos o “A” y la variable de los datos o “data”. La variable “data” contiene los 100 datos tomados de tiempo contra velocidad en dos columnas, siendo la segunda columna la de interés; por ello se

Page 2: Parametrización con MATLAB motor de CD.docx

colocan los argumentos 1:101,2 dentro de la variable.

Figura 3. Código utilizado para importar a MATLAB y graficar los datos del portapapeles.

Figura 4. Gráfica de datos importados desde LabVIEW (prueba con 50V).

La simulación del motor de CD se realizó con Simulink (ver figura 5). En esta simulación, se incluyen los elementos más importantes que se muestran en el video de estimación de parámetros [1]. Estos elementos son un bloque de motor de CD o “DC Motor”, una fuente de voltaje CD o “DC Voltage Source”, un sensor de movimiento rotatorio o “Ideal Rotational Motion Sensor”, dos referencias, una eléctrica y otra mecánica, un bloque para leer los datos reales encontrados en la variable A.data desde el espacio de trabajo o “From Workspace ” y una gráfica o “Scope” para comparar los datos de la simulación con los datos reales de velocidad con respecto al tiempo. Los dos bloques restantes, “Solver Configuration ” y “PS Simulink Converter” son necesarios para que la simulación se realice satisfactoriamente.

Figura 5. Diagrama de bloques en Simulink para la simulación del motor de cd.

El bloque de la fuente de alimentación fue configurado con los tres voltajes empleados en la prueba real: 50V, 70V y 90V, como se muestra en la figura 6. El bloque de sensor de movimiento rotacional se puede configurar para trabajar en radianes por segundo o revoluciones por minuto (ver figura 7). En el caso de la simulación realizada, se configuró para rad/s.

Figura 6. Configuración del voltaje de alimentación en la simulación.

Figura 7. Configuración del sensor de movimiento rotacional.

La configuración del bloque del motor de CD se realizó mediante un archivo .m, como se muestra en la figura 8. Este archivo se divide en dos partes; la primer parte son asignaciones de valores aleatorios a los parámetros a estimar. Las siguientes líneas de código son propiamente la asignación de esos valores a los parámetros del bloque del

2

Page 3: Parametrización con MATLAB motor de CD.docx

motor con la instrucción “set_param”. Esta instrucción posee tres argumentos: La dirección del parámetro a modificar, el nombre del parámetro dado por Simulink y la variable del código cuyo valor se quiere que tenga el parámetro señalado. La dirección del parámetro a modificar debe incluir el nombre del programa en Simulink y el nombre del bloque donde se encuentra el parámetro. Por ejemplo, el programa se llama “motorcd” y el bloque a modificar sus parámetros es “DC Motor”.

Figura 8. Código utilizado para configurar el bloque de motor de cd en Simulink.

Al simular cada uno de los casos en donde se varió el voltaje de alimentación del motor se obtuvieron las gráficas de las figuras 9, 10 y 11. Los datos reales fueron cargados manualmente antes de realizar la prueba a distintos voltajes.

Figura 9. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados a un voltaje de entrada de 50V.

Figura 10. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados a un voltaje de entrada de 70V.

Figura 11. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados a un voltaje de entrada de 90V.

Para ingresar a la herramienta de estimación de parámetros dentro del espacio de trabajo de Simulink hay que ir a Tools -> Parameter Stimation…. La ventana principal de la herramienta de estimación de parámetros (ver figura 12) se compone de un árbol del proyecto, ubicado de lado izquierdo y la ventana de cada una de las partes del programa de lado derecho. Dentro del árbol del proyecto se observan cuatro ramas principales: Los datos transitorios a utilizar en la estimación o “Transient Data”, variables a estimar o “Variables”, los resultados de la estimación o “Estimation” y la validación de los resultados o “Validation”.

3

Page 4: Parametrización con MATLAB motor de CD.docx

Figura 12. Ventana principal de la herramienta de estimación de parámetros.

Los datos reales medidos desde el encoder fueron ingresados en Transient Data -> New Data -> Output Data. Como se observa en la figura 13, en el recuadro de “Data” se escribió la dirección de la variable donde se almacenaron los datos desde LabVIEW. En esta parte de datos transitorios también existe la opción de graficar los datos importados, en el botón llamado “Plot Data”.

Figura 13. Importación de los datos reales desde el espacio de trabajo a la estimación.

Al ingresar en la rama de “Variables” aparece una pestaña llamada “Estimated Parameters” y en la parte inferior de ésta un botón llamado “Add”. Al presionar dicho botón, aparecerá una ventana donde se podrán seleccionar los parámetros a estimar (ver figura 14). Una vez indicadas las variables, es posible cambiar el rango entre el cual se encontrará su nuevo valor una vez hecha la estimación. Por ello, en las tres estimaciones hechas los valores mínimos para los parámetros fueron colocados en cero y los máximos en +Inf.

Figura 14. Selección de los parámetros a estimar desde la rama de variables.

Dentro de la rama de “Estimation” se debe de crear una nueva estimación. La ventana de nueva estimación o “New Estimation” se compone de cuatro pestañas: Grupos de datos (Data Sets), parámetros (Parameters), estados (States) y estimación (Estimation). En la figura 15 se observa la pestaña de grupos de datos, en donde se seleccionan los datos que van a ser utilizados en la estimación, es decir, los datos registrados con el encoder, guardados previamente en el grupo de datos “New Data”.

Figura 15. Selección de los datos importados a utilizar en la estimación.

Al ingresar en la pestaña de “Parameters” se muestran en una tabla todos los parámetros seleccionados anteriormente en la rama de variables (ver figura 16). Al marcar el recuadro de la columna con el nombre de “Estimate” dichos parámetros seleccionados se tomarán en cuenta para la estimación. Como se observa en la figura anterior, el

4

Page 5: Parametrización con MATLAB motor de CD.docx

parámetro “b” no fue seleccionado para entrar en el proceso de estimación.

Figura 16. Elección de los parámetros del motor a ser tomados en cuenta para una nueva estimación.

Para comenzar con la estimación, se debe de ir a la pestaña de “Estimation”, tal y como se muestra en la figura 17. La estimación se puede realizar por medio de distintos métodos, configurables mediante la opción “Estimation Options”. En esta parametrización se utilizará el método seleccionado por default, llamado “Nonlinear least squares”. Al seleccionar el botón “Start “ se comienza con el proceso. Para observar de mejor forma el proceso, se debe de tener la ventana de gráficos de Simulink abierta o “Scope”. De forma gradual se verán las distintas estimaciones hasta que MATLAB encuentre un comportamiento lo más parecido entre las dos gráficas o hasta que se detenga la estimación manualmente. Las figuras 18, 19 y 20 son las gráficas de las tres estimaciones a una entrada de 50V, 70V y 90V respectivamente. La señal de color amarillo representa los datos reales y la señal de color morado la simulación del modelo del motor de cd con los parámetros estimados.

Figura 17. Ventana de la herramienta colocada en la parte de “Estimation”.

Figura 18. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los parámetros estimados a 50V de entrada.

Figura 19. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los parámetros estimados a 70V de entrada.

5

Page 6: Parametrización con MATLAB motor de CD.docx

Figura 20. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los parámetros estimados a 90V de entrada.

Resultados

Una vez finalizada cada una de las estimaciones se debe de regresar a la pestaña de estimaciones para observar los nuevos valores de los parámetros. Solamente se obtuvieron valores nuevos para los valores de J, R, L, y Km (ver figura 21). Por último, se obtuvo un promedio entre los tres valores de cada uno de los cuatro parámetros del motor, los cuales se muestran en la tabla 1.

Figura 21. Resultados de cada una de las tres estimaciones para 50V, 70V y 90V de arriba hacia abajo respectivamente.

Parámetro Valor PromedioJ 0.3591066Km 0.4126

L 0.069198R 0.732583b 0Tabla1. Valores promedio de los parámetros del motor de cd después de las tres estimaciones.

Para ver el comportamiento de los valores estimados, se realizaron de nueva cuenta tres simulaciones distintas con los datos reales y el modelo del motor de cd a 50V, 70V y 90V (ver figuras 22, 23 y 24). Debido a que el comportamiento entre las dos señales fue muy similar en las tres gráficas, no fue necesario realizar otra estimación de parámetros.

Figura 22. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los valores promedio a 50V de entrada.

Figura 23. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los valores promedio a 70V de entrada.

6

Page 7: Parametrización con MATLAB motor de CD.docx

Figura 24. Gráfica de rad/s respecto al tiempo de los datos reales y los datos simulados con los valores promedio a 90V de entrada.

Referencias:

1- “Estimating Parameters of a DC Motor”, MATLAB, 2013. http://www.youtube.com/watch?v=ywpuYde8avE

7