AUTOMAT Lab Taller Practico Diseno y Simulacion de Control Con Mydaq

March 25, 2018 | Author: Rocio Deidamia Puppi Herrera | Category: Computer Program, Matrix (Mathematics), Data Acquisition, Control System, Software


Comments



Description

Taller Práctico: Diseño y Simulación de Control con NI myDAQDerechos de Autor © 2011 National Instruments Corporation. Todos los derechos reservados. Bajo las leyes de autor, esta publicación no deberá ser reproducida o transmitida en ninguna forma, electrónica o mecánica, incluyendo fotocopia, grabación, almacenando en un sistema de recuperación de información o trasladar completo o en partes sin el consentimiento por escrito de National Instruments Corporation. National Instruments respeta la propiedad intelectual de otros y pedimos a nuestros usuarios hacer lo mismo. El software de NI está protegido por derechos de autor y otras leyes de propiedad intelectual. En donde el software de NI sea usado para reproducir software u otros materiales pertenecientes a otros, usted podrá usar el software sólo para reproducir materiales que usted posiblemente reproduzca de acuerdo a los términos de cualquier licencia aplicable u otra restricción legal. Marca Registrada National Instruments, NI, ni.com y LabVIEW son marcas registradas de National Instruments Corporation. Refiérase a los términos de uso en ni.com/legal para más información acerca de marcas registradas de National Instruments. Otros nombres de productos y compañías mencionados aquí son marcas registradas de sus respectivas compañías. Los Miembros de National Instrumets del Programa de Miembros de Alianza son entidades de negocio independientes de National Instruments y no tienen sociedad de la agencia o relación conjunta con National Instruments. Patentes Para patentes referentes a Productos/tecnología de National Instruments diríjase a la localidad apropiada Help»Patents en su software, el archivo patents.txt en su media de reproducción o en National Instruments Patent Notice en ni.com/patents. Derechos Reservados © 2011 National Instruments Corporation. Todos los derechos reservados. Ejercicio 1. Identificación de Sistemas En este ejercicio aprenderemos a usar LabVIEW para poder obtener la definición matemática de nuestro sistema de demostración. Usaremos los bloques del System Identification Toolkit para hacer la identificación paramétrica de un motor de DC. La base de la identificación paramétrica de cualquier sistema es comparar las características de entrada (o excitación) de la planta con su característica de salida (o respuesta). Se cuenta con un sistema de demostración didáctico, construido con componentes simples y de bajo costo. Conectar este dispositivo a nuestra tarjeta NI MyDAQ, nos permitirá construir un controlador de velocidad para los motores de corriente directa. El sistema consta principalmente de un motor de corriente directa, y además, se incorporó un optointerruptor que nos ayudará a medir la velocidad de giro del motor. El dispositivo también tiene un sistema electrónico de potencia que alimenta a la planta y que conecta a todo el sistema con el conector de la NI MyDAQ. Este panel de conectores nos permite conectar el sistema con nuestra tarjeta. El sistema electrónico de potencia ya tiene conectadas las señales que nos interesan medir. La primera parte del ejercicio consta en generar una señal de excitación aleatoria para nuestra planta. Los sistemas de control se suelen modelar en el dominio de la frecuencia por lo que la teoría de identificación de sistemas recomienda usar señales binarias aleatorias. Esto es, poder verificar el comportamiento de la planta ante una cierta amplitud y con una frecuencia variable (barrido de frecuencias). Una vez generada la señal de excitación, la mandaremos por la salida analógica A0 de la tarjeta NI MyDAQ. Asegúrate de que los dos interruptores del dispositivo estén apuntando hacia el circuito 1 (C1) Posteriormente, realizaremos la adquisición de datos de esa señal de excitación y de la respuesta que detecta el motor. Una vez que adquirimos estas señales, pasaremos a usar los bloques Express del System Identification Toolkit de LabVIEW para hacer la identificación paramétrica. Finalmente, usando los bloques del Control Design Toolkit de LabVIEW crearemos la representación de estado y función de transferencia de nuestra planta. Nota: Este curso fue diseñado para mostrar cómo usar los Toolkits de LabVIEW en la creación de sistemas de control por lo que no ahondamos mucho en la utilización LabVIEW. A lo largo de la realización de los ejercicios de este seminario, algunas interfaces gráficas del panel frontal y ciertos códigos del diagrama de bloques ya están hechos para ti y sólo tendrás que completar el código como se te indicará en los ejercicios. Sigue estas instrucciones: 1. Abre LabVIEW si no se encuentra abierto dando clic en el ícono del programa o con la ruta de acceso del menú de inicio en Windows: Start > All Programs > National Intruments > LabVIEW 2011> LabVIEW. 2. Abre el archivo que se encuentra en el escritorio en la carpeta LabVIEW Control Design HandsOn\Exercises\Ejercicio1 – Identificación de Sistemas. 3. El panel frontal ya contiene la base de lo que será la interfaz gráfica de este programa y el diagrama de bloques contiene ya algunos controles así como un ciclo While, dos estructuras CASE y la creación de la tarea que se encargarán de transmitir las diferentes señales de control a la tarjeta DAQ y posteriormente al circuito del motor. 4. Ahora, conecta el control Stop a la terminal de la condición para el ciclo While. Para hacer esto, conecta primero este control a la terminal condicional de la estructura CASE interna (tanto para el caso verdadero como para el falso). Observa la ilustración: Después, cámbiate a la pestaña FALSE de la estructura CASE exterior y conecta el control STOP a la terminal como se muestra a continuación: 5. Para generar nuestra señal aleatoria de excitación, dentro del ciclo while en la parte superior, coloca un ciclo For que encontrarás bajo Programming > Structures > For Loop. Asegúrate de que la estructura CASE interior quede localizada dentro de este nuevo ciclo FOR. Observa la figura. En la terminal STOP, a un costado de la estructura FOR que acabas de colocar, deshabilita la opción de autoindexado como lo indica la siguiente imagen: 6. Da clic derecho en la terminal “N” del ciclo For para definir el número de iteraciones a realizar. Elige la opción Create Constant del submenu que aparece. Fija su valor en 1000. 7. Las iteraciones pares generarán un pulso en alto y las iteraciones impares generarán un pulso en bajo generando así la señal binaria que buscamos. Cerca de la terminal de iteración del ciclo For y dentro de la estructura CASE interior coloca un bloque Quotient & Remainder que encontraras bajo Programming > Numeric > Quotient & Remainder. Conecta la terminal “i” del número de iteración del ciclo a la terminal “x” del bloque que acabas de colocar. crea las constantes par el . Coloca un bloque de comparación Equal to 0? que encontrarás bajo Programming > Comparison > Equal to 0? Conecta la terminal “R” del bloque Quotient & Remainder al bloque Equal to 0? 10. Coloca un bloque Select que encontraras bajo Programming > Comparison > Select. Con esto podremos determinar si la iteración es par o impar. Da clic derecho sobre la terminal “y” del bloque Quotient & Remainder y elige la opción Create > Constant del submenu que aparece. Fija el valor de la constante en 2.8. Además.} 9. Conecta la salida del bloque Equal to 0? a este bloque. Ahora definiremos el periodo de espera de cada estado de la señal (alto y bajo). Así terminamos de definir la amplitud de nuestra señal aleatoria. Si es necesario. 12.valor de True (fija un valor de 5) y para el valor de False (fija un valor de 0). 11. Para esto. Ahora coloca un bloque Multiply seguido de un bloque Round to Nearest antes del bloque Wait. Estos dos bloques los encontrarás bajo Programming > Numeric > Multiply/Round to Nearest. . coloca dentro del ciclo For un bloque Wait que encontrarás bajo Programming > Timing > Wait (ms). modifica el tamaño de las estructuras. Realiza las conexiones que se muestran en la imagen incluyendo la conexión del valor de salida del bloque Select a la terminal “data” del bloque DAQmx Write. crea una constante y fija su valor en 5. En la terminal “y” del bloque Multiply. coloca fuera del ciclo For en el lado derecho un bloque DAQmx Stop Task que encontrarás bajo Measurement I/O > NI-DAQmx > DAQmx Stop Task. Ahora. 16. 15. 17. En la esquina superior izquierda se encuentran los bloques de DAQmx Create Channel y DAQmx Start Task los cuales. pon un bloque Random Number que encontrarás bajo Programming > Numeric > Random Number y conéctalo a la terminal “x” del bloque Multiply. Con esto terminamos de definir nuestra señal binaria aleatoria que servirá de excitación para nuestra planta. . el valor máximo de cada estado (alto o bajo) de la señal binaria aleatoria no podrá ser de más de 5ms. Ahora coloca dentro del ciclo For un bloque DAQmx Write que encontrarás bajo Measurement I/O > NI-DAQmx > DAQmx Write. 14. De esta forma. Ahora usaremos los bloques de DAQmx para poder mandar esta señal binaria aleatoria por la salida analógica AO0. Después de conectar los bloques que colocaste. respectivamente permiten la habilitación de los canales donde la señal será enviada así como el inicio de la asignación de las tareas a estos canales.13. Esto se debe a que el ciclo For indexa (crea un arreglo) los valores de salida del ciclo. Para resolver este problema. haz clic derecho y selecciona Create < Constant. puede que la salida de la tarea de escritura en el puerto muestre una X roja en el cable que lo conecta con el bloque DAQmx Stop Task. En la estructura CASE. . Esto indica que los cables no están bien conectados. da clic derecho en el nodo de conexión entre el ciclo For y el bloque DAQmx Stop Task y da clic en la opción Disable Indexing. y dale el valor de 0. cámbiate al caso true y justo en el cuadro blanco formado al realizar la conexión entre el DAQmx write y el select.Nota: Al realizar las conexiones. Permite que se inicialice el asistente y realiza las siguientes configuraciones: Acquire Signals > Analog Input > Voltage. ahora debemos realizar la adquisición de esta misma señal y de la respuesta de la planta. usaremos una opción alternativa a los bloques de NI-DAQmx que es usar el bloque Express DAQ Assistant. elige las entradas “ai0” y “ai1” del DevX(NIMyDAQ) y da clic en Finish. Coloca un bloque DAQmx Write que encontrarás bajo Measurement I/O > NI-DAQmx > DAQmx Write. En la ventana que se abre. En la parte superior de la estructura Case. da clic en el combo box y elige la opción “False”. En la terminal de “Data” crea una constante de valor 0. Esto nos permitirá hacer el código que se ejecutará en caso de que el botón “Obtener Modelo” no esté siendo presionado. Regresa a la opción “True” de la estructura Case. Lo que queremos que suceda mientras el botón no es presionado es que la señal de excitación de la planta sea 0. 19. Por lo tanto. Este sirve para que la señal de excitación y la adquisición de los datos sólo se realice cuando se presione el botón “Obtener Modelo” que aparece en el panel frontal y que se muestra en el diagrama de bloques como un control booleano llamado “OK Button”. Coloca un bloque DAQ Assistant que encontrarás bajo Express > Input > DAQ Assistant. dejando la tecla Ctrl presionada.18. dentro del recuadro “Channel Setings” en la pestaña . Para realizar la adquisición de datos. mandaremos constantemente el valor 0 por la salida analógica 0 (ao0). Pero primero observamos la estructura Case alrededor de todo el código que acabamos de hacer. Agrega un bloque DAQmx Stop Task que encontrarás bajo Measurement I/O > NI-DAQmx > DAQmx Stop Task. 20. Ya que generamos la señal de excitación. da clic en OK. Al canal “ai0” llámalo “Estímulo” y al canal “ai1” llámalo “Respuesta”. Importante: Esta opción puede o no ser necesaria y depende de la conexión del motor. En la opción de “Custom Scalling” >> “Create New” damos la opción Linear y damos nombre a nuestra escala. Si tu función de transferencia al final del ejercicio resulta negativa.000 y cambia el valor de “Rate (Hz)” a 5k. modifica el valor de “Simples to Read” a 40. quita esta escala para resolver el problema. 21. Da clic sobre el botón “Hide Details” y en la opción “Terminal Configuration” elige Differential En el recuadro “Timing Settings” deja la opción “N Samples” como modo de adquisición. Agregaremos una escala debido a la naturaleza en la que se presenta la señal de respuesta.“Configuration” da clic en el botón “Show Details >>”. Cambia el nombre de los canales dando clic derecho sobre cada canal y eligiendo la opción “Rename”. En la pantalla siguiente ponemos en el parámetro de slope la constante -1 y damos OK. . Al terminar. Permite que se abra el asistente y realiza las siguientes configuraciones: dentro del recuadro “Select Model Type” elige State-Space. Ahora si comenzaremos a utilizar los bloques del System Identification Toolkit de LabVIEW para poder hacer la identificación paramétrica de nuestra planta. Conecta la salida del bloque DAQ Assistant al bloque Split Signals. en el recuadro “Select Model Dims” elige SISO. en el recuadro “Select Data Type” elige Waveform. en el recuadro “Set Model Orders” elige 2 bajo “Number of States”. coloca un bloque Split Signals que encontrarás bajo Express > Signal Manipulation > Split Signals. Este VI nos ayudará a calcular un modelo de espacio-estado de orden 2 de nuestra planta. al finalizar da clic en OK. . 23.22. expande el bloque Split Signals hacia abajo y verás la nueva terminal de salida. Coloca un bloque Model Estimation que encontrarás bajo Control Design & Simulation > System ID > Parametric > SI Model Estimation. Para obtener las dos señales. Para poder obtener por separado las dos señales de la adquisición de datos. Ya que terminamos de hacer estos pasos podemos conectar a estos dos bloques del toolkit de identificación de sistemas las señales de la adquisición de datos. Dado que la primera señal que pedimos adquirir es la señal llamada “Estímulo”. Conecta la segunda señal (de arriba hacia abajo) del bloque Split Signals a las terminales “Response Signal” de los mismos bloques. al finalizar da clic en OK. .24. ahí mismo elige como orden del numerador 1 y como orden del denominador 2. Ahora colocaremos un bloque TF Estimation que encontrarás bajo Control Design & Simulation > System ID > Parametric > SI Transfer Function Estimation. Permite que se abra el asistente y realiza las siguientes configuraciones: dentro de la pestaña “Input Info” elige Waveform. 25. Conecta esta señal a las terminales “Stimulus Signal” de los bloques de estimación paramétrica. dentro de la pestaña “Model Settings” elige Continuous. esa será la señal que saldrá por la parte superior del bloque Split Signals. Expande el bloque Unbundle by Name hacia abajo hasta que aparezcan las terminales “A”. Coloca un bloque Unbundle by Name que encontrarás en Programming > Cluster & Variant > Unbundle by Name.26. Dado que los valores de los coeficientes son un tipo de dato de arreglo. tenemos que pasarlo a tipo de dato matriz que reconoce el bloque que arma una representación de espacio-estado. Coloca un bloque Array to Matriz a cada una de las terminales del bloque Unbundle by Name que encontrarás en Programming > Array > Array to Matrix. Primero armaremos la representación de espacio-estado. tenemos que armar la representación de espacio-estado y la función de transferencia con el Control Design Toolkit de LabVIEW. . Conecta este bloque a la terminal de salida “Model Coeficients” del bloque Estimate State-Space Model. 27. Para poder hacer esto. “B” y “C”. Ahora mandaremos imprimir al panel frontal los modelos de la planta calculados por el System Identification Toolkit de LabVIEW. coloca un bloque Draw State-Space Equation que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Draw State-Space Equation. La matriz C presenta la particularidad de que sale del modelo como un vector vertical. Ahora ya tenemos todo para construir la representación de espacio-estado con los bloques del Control Design Toolkit de LabVIEW. 30. Coloca un bloque Construct State-Space Model que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Cunstruct State-Space Model. Coloca un bloque Transpose Matrix que encontrarás bajo Mathematics > Linear Algebra > Transpose Matrix. Conecta este bloque a la representación de espacio-estado que creamos y también conecta la salida de este bloque al indicador llamado “Ecuación de Estado” que teníamos en el programa desde el principio. B y C transpuesta al bloque que acabas de colocar. 29. Cuando armamos la representación de espacio-estado. Conecta la terminal de la matriz C a este bloque para trasponer el vector.28. Para poder imprimir la representación de espacio-estado que acabamos de crear. necesitamos que esta matriz entre como un vector horizontal por lo que es necesario trasponer esta matriz. . Conecta las terminales de las matrices A. Conecta este bloque a la representación de función de transferencia que creamos y también conecta la salida de este bloque al indicador llamado “Función de Transferencia” que teníamos en el programa desde el principio. Coloca un bloque Unbundle by Name que encontrarás en Programming > Cluster & Variant > Unbundle by Name. 32. Para poder imprimir la representación de función de transferencia que acabamos de crear. coloca un bloque Draw Transfer Function Equation que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Draw Transfer Function Equation.31. 33. Coloca un bloque Construct Transfer Function Model que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Cunstruct Transfer Function Model. . Pasaremos a construir ahora la representación de función de transferencia siguiendo pasos similares a la representación de espacio estado. Expande el bloque Unbundle by Name hacia abajo hasta que aparezcan las terminales “Numerator” y “Denominator”. Conecta este bloque a la terminal de salida “Model Coeficients” del bloque TF Estimation. Conecta las terminales “Numerator” y “Denominatior” al bloque que acabas de colocar. Conecta la terminal “System Model” de este bloque a la terminal “System Model Out” del bloque Transfer Function Estimation. Conecta este bloque a la representación de ZPK que creamos y también conecta la salida de este bloque al indicador llamado “FT en forma ZPK” que teníamos en el programa desde el principio. 35. Coloca un bloque Save System Model to File que encontrarás bajo Control Design & Simulation > System ID > Management > Save System Model to File . guardaremos el modelo de función de transferencia. Esto creará un browser para poder definir la localización del archivo .34. coloca un bloque Draw Zero-Pole-Gain Equation que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Draw Zero-Pole-Gain Equation. Para poder imprimir la representación que acabamos de crear. Da clic derecho sobre la terminal “File Path” del bloque Save System Model to File y elige Create > Control. Como nombre de este control. podemos obtener otras representaciones similares. A partir de la representación de función de transferencia que acabamos de crear. Crearemos una representación de función de transferencia pero en forma factorizada o forma Zero-Pole-Gain. 36. Dado que nos interesa poder usar el modelo calculado por el System Identification Toolkit de LabVIEW en futuros ejercicios del seminario. Conecta la terminal de entrada de este bloque al cable rosa que sale del bloque Construct Transfer Function Model hacia el bloque Draw Transfer Function Equation. teclea “Guardar Modelo en:”. Coloca justo sobre el bloque Draw Transfer Function Equation un bloque Convert to Zero-Pole-Gain Model que encontrarás bajo Control Design & Simulation > Control Design > Model Conversion > CD Convert to Zero-Pole-Gain Model. 015.015. Teclea el nombre “ModPlanta” que será el nombre del archivo por default. da doble clic sobre el valor máximo de la escala en Y y cambia su valor a 0.que contendrá la información del modelo. De igual manera en el eje de las “x” inhabilita la opción “Auto-scale X” y pon como valor mínimo 0 y como máximo 0. 37. También incluiremos una gráfica que nos permita ver tanto la señal de estímulo como la respuesta de la planta. Pasa al panel frontal y agrega un indicador gráfico de tipo Waveform Graph que encontrarás bajo Modern > Graph > Waveform Graph en la paleta de controles. . da doble clic sobre el valor mínimo de la escala en Y y cambia su valor a -0. Coloca el indicador gráfico como se muestra en la imagen y realiza las siguientes configuraciones: da clic derecho sobre el eje de las “y” e inhabilita la opción “Auto-scale Y”. Finalmente da clic derecho sobre la terminal “Default Name” y elige la opción Create > Constant.15 Puedes aprovechar para acomodar el control “File Path” que llamamos “Guardar Modelo en:” como se muestra en la imagen. El código final del programa se debe de ver como en la siguiente imagen. . Pasa al diagrama de bloques y conecta la terminal del indicador gráfico directamente a la salida del bloque DAQ Assistant antes de que el cable azul llegue al bloque Split Signal. Ese cable azul contiene las dos señales y basta con conectarlo directamente al indicador gráfico para poder visualizar las dos señales al mismo tiempo.38. guarda el archivo dando clic sobre la opción Save que encontrarás en el panel frontal desde el menú File > Save. Navega hasta donde guardaste el modelo y elige el archivo ModPlanta. Cuando vuelvas a ejecutar el programa. obtén varias veces el modelo de la planta y compara cada resultado con el anterior. Ejecuta el programa dando clic sobre el icono que contiene una flecha blanca en la barra de herramientas del panel frontal.sim. Esto se debe a que la señal aleatoria es diferente cada vez que pides obtener el modelo de la planta. Nota: Cuando ejecutes el programa. ejecuta una vez el programa. Nota: Si deseas que solo te pida la dirección donde deseas guardar el modelo calculado una vez. Cada vez que aprietes el botón “Obtener Modelo” se ejecutará el código en la estructura Case con valor “True” y se te pedirá que indiques la dirección sonde deseas guardar el archivo que contiene la información del modelo obtenido. .39. ya no se te pedirá que indiques la dirección nuevamente. Presiona el botón “Salir” para detener el programa. detenlo y da clic sobre el icono del browser. Finalmente. Fin Ejercicio 1. También esto se puede ver afectado por interferencias de fricción en el acoplamiento mecánico entre los dos motores. Notarás que hay cambios en los modelos que obtienes. estacionaria y harmónica. Repetimos que el objetivo de este curso es aprender a usar los toolkits de LabVIEW que nos permiten construir sistemas de control y no así mostrar las bases de programación en LabVIEW. Observa detenidamente la interfaz gráfica que se proporciona en el panel frontal. elige la opción “Respuesta Transitoria”. Coloca un bloque Construct Zero-Pole-Gain Model que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Cunstruct Zero-Pole-Gain Model. “Polos” y “Gain” a las terminales correspondientes del bloque que acabas de colocar. coloca un bloque Draw Zero-Pole-Gain Equation que encontrarás bajo Control Design & . Navega por las pestañas de la interfaz. 4. En esta parte del código empezaremos a construir nuestro análisis en el dominio del tiempo de nuestro sistema. para esto. 3. Ya que construimos el modelo. Con los conocimientos suficientes de programación en LabVIEW armar una interfaz gráfica de esta calidad no es complicado. ahora colocaremos su ecuación en el panel frontal. Análisis de Sistemas Continuos En este ejercicio aprenderemos a analizar sistemas de control continuos definidos matemáticamente en el dominio de la frecuencia. Sigue estas instrucciones: 1. ceros y ganancia) podemos usar el Control Design Toolkit de LabVIEW para hacer análisis de respuesta transitoria. Conecta las terminales que vienen de fuera de la estructura Case “Ceros”. Usaremos una interfaz gráfica muy poderosa desarrollada en LabVIEW y que sirve como ejemplo de lo que podríamos llegar a desarrollar en este lenguaje de programación con la cual podemos agregar definiciones de diferentes modelos así como importar con esta interfaz el modelo que guardamos de nuestra planta en el ejercicio anterior.Ejercicio 2a. 2. 5. en el combo box de la estructura Case. Navega por las opciones de la estructura case conectada al indicador de las pestañas (Tab Control). Abre LabVIEW si no se encuentra abierto dando clic en el ícono del programa o con la ruta de acceso del menú de inicio en Windows: Start > All Programs > National Intruments > LabVIEW 2011> LabVIEW. Ahora pasa al diagrama de bloques y observa el código de esta interfaz. En el diagrama de bloques. Una vez que tenemos definido un sistema (polos. Abre el archivo que se encuentra en el escritorio en la carpeta de LabVIEW Control Design HandsOn\Exercises\Ejercicio 2a – Análisis de Sistemas. Pasa al panel frontal y acomoda el indicador “G(s):” en la parte superior izquierda dentro de la pestaña “Respuesta Transitoria”. colócalo en la posición correcta. 6. .Simulation > Control Design > Model Construction > CD Draw Zero-Pole-Gain Equation. pasa al diagrama de bloques y dando clic derecho sobre el indicador “G(s):” elige la opción “Find Indicador”. Una vez que hayas ubicado el indicador. Da clic derecho en la terminal de salida de este bloque y elige la opción Create > Indicator. Nota: Puede que el indicador no aparezca dentro de la pestaña “Respuesta Transitoria” automáticamente. Modifica el nombre del indicador dando doble clic sobre la etiqueta “Equation” y llamándolo “G(s):”. Conecta este bloque a la representación de ZPK que creamos. Si no encuentras el indicador. Elige la opción Visible Ítems > Plot Legend para quitar la leyenda superior del indicador gráfico. En el diagrama de bloques. Coloca el indicador gráfico dentro de la pestaña “Respuesta Transitoria”. Da clic derecho sobre la terminal de salida “Step Response Graph” del bloque Step Response y elige la opción Create > Indicator. 8. .7. coloca un bloque Step Response que encontrarás bajo Control Design & Simulation > Control Design > Time Response > CD Step Response. Podemos hacer ahora un análisis de la respuesta del sistema a un escalón unitario. Conecta a la terminal “State-Space Model” (nombre de la terminal que aparece por default) de este bloque la salida del modelo ZPK que construimos. Pasa al panel frontal y da clic derecho sobre el indicador gráfico. Da clic derecho sobre la terminal de salida “Stability” y elige la opción Create > Indicator. Conecta a este bloque la salida del modelo ZPK que construimos. 10. Podemos obtener directamente una cadena de texto que nos indique si el sistema es estable o inestable. Agregaremos también el coeficiente de amortiguamiento del sistema así como su frecuencia natural.9. Pasa al panel frontal y coloca el indicador enumerado “Stability” dentro del pequeño recuadro que se tiene dentro de la pestaña “Respuesta Transitoria”. Ahora agregaremos algunos datos importantes del análisis de nuestro sistema. Coloca un bloque Stability que encontrarás bajo Control Design & Simulation > Control Design > Dynamic Characteristics > CD Stability. 11. Coloca un bloque Camping Ratio and Natural Frequency que encontrarás bajo Control Design & Simulation > Control Design > Dynamic Characteristics > CD . 12. Crea un indicador para las terminales de salida “Damping Ratios” y “Natural Frequencies”.Damping Ratio and Natural Frequency. Tu panel frontal se debe de ver como la siguiente imagen. . Conecta a la terminal de entrada de este bloque la salida del modelo ZPK que creamos. Pasa al panel frontal y coloca los dos indicadores dentro del recuadro de la pestaña “Respuesta Transitoria”. Dado que estos indicadores son de tipo arreglo. los puedes colapsar para que solo se vea un renglón del arreglo. Este separador lo encuentras bajo Modern > Containers > Tab Control de la paleta de controles. dando doble clic sobre el nombre de las pestañas.13. Ahora pasa al diagrama de bloques y dentro del combo box de la estructura case elige la opción “Respuesta Harmónica”. 16. “Polos” y “Gain” al bloque que acabas de colocar. Pasa al panel frontal. Ahora pasaremos a hacer el análisis del comportamiento harmónico (o de la frecuencia) de nuestro sistema. Crearemos un separador de pestañas dentro de la pestaña “Respuesta Harmónica”. Para poder agregar más pestañas. . En esta pestaña pondremos los diagramas de Bode de nuestro sistema. Ahora. Agranda el separador de pestañas a que abarque todo el espacio de la pestaña “Respuesta Harmónica”. En el panel frontal. Llama a las dos pestañas siguientes “Nichols” y “Márgenes de Estabilidad”. 15. da clic derecho sobre alguna de las pestañas y elige la opción “Add Page After”. Conecta las terminales de la estructura Case “Ceros”. Crea de nuevo un modelo de tipo ZPK colocando un bloque bloque Construct Zero-Pole-Gain Model que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Cunstruct Zero-Pole-Gain Model. Agrega dos pestañas más para tener en total 4 pestañas. A la segunda pestaña llámala “Nyquist”. selecciona la pestaña “Respuesta Harmónica”. 14. cambia el nombre de la primera pestaña a “Bode”. .17. Pasa ahora al diagrama de bloques donde colocaras una pequeña estructura Case dentro de la estructura Case que ya había desde el principio y bajo la opción “Respuesta Harmónica” Conecta a la terminal “?” de la estructura Case el indicador del separador de pestañas “Tab Control 2”. Dentro de la estructura Case coloca un bloque Bode que encontrarás bajo Control Design & Simulation > Control Design > Frequency Response > CD Bode. Conecta a este bloque la salida del modelo ZPK que creamos anteriormente bajo el caso “Respuesta Harmónica”. elige la opción “Bode”. Crea un indicador gráfico para las terminales de salida del bloque Bode “Bode Magnitude” y “Bode Phase” dando clic derecho sobre la terminal y eligiendo la opción Create > Indicator. 18. Dentro del combo box de la estructura Case. Conecta a la terminal de entrada de este bloque la salida del modelo ZPK que creamos. Ubica los dos indicadores gráficos que corresponden al diagrama de bode para la magnitud y la fase. 20. Dentro del combo box de la nueva estructura Case.19. Haz estos indicadores gráficos más pequeños para que los dos quepan dentro de la pestaña llamada “Bode” como se muestra en la imagen. Dentro de la estructura coloca un bloque Nyquist que encontrarás bajo Control Design & Simulation > Control Design > Frequency Response > CD Nyquist. Pasa al panel frontal. Ahora crea un indicador dando clic derecho a la terminal de salida del bloque Nyquist llamada “Nyquist Plot”. . elige la opción “Nyquist”. 22. Ahora si. Para poder hacerlo. coloca un bloque Nichols dentro del caso con el mismo nombre. 23. ahora agregaremos un bloque Nichols para poder visualizar el diagrama de Nichols que relaciona la frecuencia con la magnitud del sistema. Pasa al panel frontal y coloca el indicador “Nyquist Plot” dentro de la pestaña Nyquist. Puedes expandir el indicador para que abarque toda el área de la pestaña.21. Este bloque lo encontrarás bajo Control Design & Simulation > Control Design > Frequency Response > CD Nichols. necesitamos agregar el caso Nichols dentro de nuestra estructura Case. Da clic derecho sobre la estructura case y elige la opción “Add Case After”. En el diagrama de bloques. Repite de nuevo esta operación para tener el caso “Márgenes de Estabilidad”. Automáticamente se crea el caso “Nichols”. Puedes agrandar el indicador para que abarque todo el espacio de esta pestaña. 24. coloca este indicador dentro de la pestaña “Nichols”. En el panel frontal. . Conecta el bloque a la salida del modelo ZPK que habíamos creado y crea el indicador para la terminal “Nichols Plot”. Ajusta el tamaño de estos indicadores para poderlos acomodar dentro de la pestaña. Estos gráficos indican hasta que ganancia y fase es estable e sistema. 26. coloca un bloque Gain and Phase Margin que encontrarás bajo Control Design & Simulation > Control Design > Frequency Response > CD Gain and Phase Margin. Tu panel frontal se debe de ver como la siguiente imagen. coloca los dos indicadores dentro de la pestaña “Márgenes de Estabilidad”. De regreso al diagrama de bloques. . dentro del caso Márgenes de Estabilidad. En el panel frontal.25. Conecta el bloque al modelo ZPK y crea un indicador para las terminales de salida “Magnitude Plot” y “Phase Plot”. en lugar de agregar la definición de un sistema (su ganancia.47 y en la imaginaria 0. Navega por las diferentes pestañas del análisis transitorio y del análisis harmónico para ver los resultados del análisis. Vuelve a ejecutar el programa. 31. Finalmente.93. Presiona el botón “Stop” para detener la ejecución del programa.sim y verás que el modelo se agrega automáticamente a la interfaz gráfica.27. Fin Ejercicio 2a. Navega por las diferentes pestañas del análisis transitorio y del análisis harmónico para ver los resultados del análisis. pero ahora. Realiza el mismo proceso para agregar un polo en (0.88). polos y ceros) da clic sobre el botón “Importar Modelo”. Agregaremos un cero por lo que en la parte real teclea -3. Cuando quites polos o ceros complejos.0) y (-4.75 y presiona el botón “Actualizar”. Analizaremos un sistema que propondremos a través de la interfaz gráfica.22. Pasa a la pestaña “Función de Transferencia” y ejecuta el programa. Sube la ganancia a 2. Navega hasta la dirección donde guardaste el archivo que contiene la información del modelo obtenido en el ejercicio 1. guarda el archivo dando clic sobre la opción Save que encontrarás en el panel frontal desde el menú File > Save. Si cometes un error. .±0. 30. Da clic al botón “Agregar”. puedes seleccionar el polo o cero que hayas agregado y luego presiona el botón “Borrar” para poder quitar ese polo o cero. 32. Selecciona el archivo ModPlanta. 29. 28. recuerda quitar los dos conjugados para que no haya conflicto con la función de transferencia. En realidad no hay diferencia entre este ejercicio y el ejercicio anterior. define el tiempo de muestreo primero. En todos los casos. La única especificación que cambia en todos los casos es que hay que definir el tiempo de muestreo de la función de transferencia que estamos utilizando. Antes de agregar una función de transferencia en la interfaz gráfica de la pestaña “Función de Transferencia”. guarda el archivo dando clic sobre la opción Save que encontrarás en el panel frontal desde el menú File > Save. 4. 2. . en la carpeta de LabVIEW Control Design HandsOn\Exercises\Ejercicio 2b – Análisis de Sistemas. Automáticamente. La única diferencia es que cuando creamos un modelo (ZPK por ejemplo) tenemos que definir el tiempo de muestreo de la función de transferencia. Fin Ejercicio 2b. Finalmente. Análisis de Sistemas Discretos (opcional) En este ejercicio aprenderemos a analizar sistemas de control discretos definidos matemáticamente en el dominio de la variable z. sigue exactamente las mismas instrucciones que en el ejercicio anterior. Realiza los mismos dos ejemplos (el sistema de control que proponemos e importar el modelo que tenemos del ejercicio 1) ejecutando el programa cuando haya terminado de construir el código. Sigue estas instrucciones: 1. se detecta entonces que es un sistema discreto y se pasa la función de transferencia al dominio de la variable z. A partir de este punto. Abre LabVIEW si no se encuentra abierto dando clic en el ícono del programa o con la ruta de acceso del menú de inicio en Windows: Start > All Programs > National Intruments > LabVIEW 2011> LabVIEW. conecta la terminal del control “Tiempo de Muestreo (s)” a la terminal “Sampling Time” del bloque Construct Zero-PoleGain Model. Abre el archivo que se encuentra en el escritorio. se usan los mismos bloques. 5. 3. Observa las diferencias en la estabilidad del sistema dado que ahora es discreto. La facilidad que encontramos con el Control Design Toolkit de LabVIEW es que para modelar sistemas discretos y poderlos analizar.Ejercicio 2b. al momento de crear un modelo ZPK. las funciones de transferencia de la planta. En este ejercicio solo agregaremos el código de la estructura Case para poder construir la estructura del controlador PID primero usando los bloques del Control Design Toolkit y luego usando los bloques del Simulation Toolkit de LabVIEW. del bloque derivador y del bloque integrador ya están construidas. Coloca un bloque Parallel que encontrarás bajo Control Design & Simulation > Control Design > Model Interconection > CD Parallel. del bloque proporcional. Conecta las terminales “Model 1” y “Model 2” de este bloque a las salidas de los modelos de los bloques proporcional y derivador. Compararemos la facilidad de uso de los bloques del Control Design Toolkit y del Simulation Toolkit para simular y hacer la síntesis de nuestro controlador PID. Abre el archivo que se encuentra en el escritorio en la carpeta de LabVIEW Control Design HandsOn\Exercises\Ejercicio 3 – Diseño de PID. derivativa e integral para conseguir el mejor desempeño posible. Primero conectaremos en paralelo los bloques proporcional y derivador. Abre LabVIEW si no se encuentra abierto dando clic en el ícono del programa o con la ruta de acceso del menú de inicio en Windows: Start > All Programs > National Intruments > LabVIEW 2011 > LabVIEW. Como podemos ver. Modificaremos en tiempo real los valores de las ganancias proporcional.Ejercicio 3. Además. En sí. Diseño de un Controlador PID En este ejercicio mostraremos cómo podemos sintetizar de una manera sencilla los parámetros de un controlador PID. 2. veremos cómo responde nuestro sistema ante diferentes ganancias del controlador PID. 4. aprenderemos a usar el Simulation Toolkit de LabVIEW para construir diagramas de bloques y ver la respuesta de nuestro sistema. . Sigue estas instrucciones: 1. El ejercicio contiene una interfaz gráfica sencilla que muestra la estructura del controlador en un diagrama de bloques mostrando la función de transferencia de cada parte del controlador. 3. Pasa al diagrama de bloques y en el combo box de la estructura Case elige la opción “Control Design Toolkit”. Ahora tenemos que unir estas funciones de transferencia para armar el controlador. 6. Coloca un bloque Parallel que encontrarás bajo Control Design & Simulation > Control Design > Model Interconection > CD Parallel. . Conecta las terminales “Model 1” y “Model 2” de este bloque a la salidas del modelo en paralelo que creamos en el paso anterior y el modelo del bloque integral. Ahora conectaremos el paralelo de los bloques que formal al controlador PID en serie con el modelo de la planta que se importa directo del archivo en el que guardamos la información de nuestra planta.5. Conecta las terminales “Model 1” y “Model 2” de este bloque a la salida del bloque paralelo de los componentes del PID y la salida del modelo de la planta que calculamos en el ejercicio 1. Coloca un bloque Series que encontrarás bajo Control Design & Simulation > Control Design > Model Interconection > CD Series. El siguiente paso es conectar el modelo en paralelo entre el bloque proporcional y derivador en paralelo con el bloque integral. Coloca un bloque Step Response que encontrarás bajo Control Design & Simulation > Control Design > Time Response > CD Step Response.7. Una vez conectado en serie la planta y los bloques del controlador PID tenemos que cerrar el lazo para poder tener presente la retroalimentación del sistema según el diagrama de la interfaz gráfica. Conecta a la terminal “State-Space Model” (nombre de la terminal que aparece por default) de este bloque la salida del modelo . 9. El interés ahora es ver que pasa ante un escalón unitario con la respuesta de nuestro sistema. Hemos terminado de generar nuestro modelo representado en la interfaz gráfica. Conecta a la terminal “Model 1” de este bloque la salida de la conexión en serie de la planta y el PID. Da clic derecho sobre la terminal “Gain” de este bloque y crea una constante de valor 1 eligiendo la opción Create > Constant. Coloca un bloque Feedback que encontrarás bajo Control Design & Simulation > Control Design > Model Interconection > CD Feedback. Conecta la salida de este bloque a la terminal “Model 2” del bloque Feedback. Coloca un bloque Construct Zero-Pole-Gain Model que encontrarás bajo Control Design & Simulation > Control Design > Model Construction > CD Cunstruct Zero-Pole-Gain Model. En la terminal “Model 2” conectaremos un modelo que crearemos en el siguiente paso que en realidad no es más que un modelo de valor 1 que cierre el lazo. 8. . Puedes expandir el indicador de manera que abarque todo el espacio de la pestaña. Da clic derecho sobre el eje de las “y” y selecciona la opción “Auto-scale Y”. Da doble clic sobre el valor mínimo en el eje de las “y” y teclea 0. Esto desactivará la auto-escala.0. Da clic derecho sobre la terminal de salida “Step Response Graph” del bloque Step Response y elige la opción Create > Indicator. Da doble clic sobre el valor máximo en el eje de las “y” y teclea 1.20) en ese orden. 10. Da clic derecho sobre la terminal “Time Info” y crea las constantes de esta terminal. Verifica que los valores de esta terminal sean (0.generado en el bloque Feedback que construimos. Pasa al panel frontal y coloca el indicador gráfico en la pestaña “Control Design Toolkit”.1. Da clic derecho sobre el indicador gráfico y elige la opción Visible Ítems > Plot Legend para desactivar la leyenda del indicador.001. Coloca un bloque Simulation Loop que encontrarás bajo Control Design & Simulation > Simulation > Simulation Loop. ODE Solver: Runge-Kutta 23 (variable). 12. En el combo box de la estructura Case. Final Time: 20. Relative Tolerance: 0.001 y Absolute Tolerante: 1E-7. Coloca dentro del Simulation Loop. Minimum Step Size: 1E-10. Maximum Step Size: 1. un bloque Step Signal que encontrarás bajo Control Design & Simulation > Simulation > Signal Generation > Step Signal. . elige “Simulation Toolkit”.11. Expande este loop de manera que abarque todo el interior de la estructura Case. Pasa de nuevo al diagrama de bloques. Ahora usaremos el Simulation Toolkit de LabVIEW para construir la misma estructura del PID con la planta pero de una manera más sencilla. Ahora colocaremos la interfaz que nos permite usar los bloques de este toolkit. 13. Da doble clic sobre la lengüeta del lado superior izquierdo del Simulation Loop y realiza las siguientes configuraciones: Initial Time: 0. . 16. 15. Coloca junto al bloque Step Signal un bloque Sumation que encontrarás bajo Control Design & Simulation > Simulation > Signal Arithmetic > Sumation. final value: 1 y step time: 0. Junto a este bloque coloca un bloque Derivative y un bloque Integrator que encontrarás bajo Control Design & Simulation > Simulation > Continuous Linear Systems > Derivative/Integrator.14. Da doble clic sobre el bloque Step Signal y realiza las siguientes configuraciones: inicial value: 0. Da doble clic sobre este bloque y realiza las siguientes configuraciones: Icon Shape: Rectangle. Coloca tres bloques Multiply que encontrarás bajo Programming > Numeric > Multiply. Inputs: 3. da clic sobre la terminal negativa hasta que aparezca un signo “+” y haz lo mismo con la terminal que aparece con un círculo rojo cruzado.17. . 18. Coloca uno a lado del derivador. uno al lado del integrador y el tercero arriba del bloque del derivador. Coloca de nuevo un bloque Sumation que encontrarás bajo Control Design & Simulation > Simulation > Signal Arithmetic > Sumation. Expande este bloque hasta tener dos entradas. . 20. Coloca un bloque Build Array que encontrarás bajo Programming > Array > Build Array.19. Realiza las conexiones como se muestra en la siguiente imagen. Coloca un bloque SimTime Waveform que encontrarás bajo Control Design & Simulation > Simulation > Graph Utilities > SimTime Waveform. Coloca junto al último bloque Sumation un bloque Transfer Function que encontrarás bajo Control Design & Simulation > Simulation > Continuous Linear Systems > Transfer Function. Lo que estamos haciendo es crear un arreglo de la salida del sistema con la señal de entrada para poderlas graficar las dos en un solo indicador gráfico. Da doble clic sobre este bloque y realiza la siguiente configuración: Parameter Source: Terminal. 21. del derivador y del integral así como la función de transferencia de la planta para poder tener nuestro sistema armado. Conecta la terminal “Kd” al segundo bloque Multiply.5 segundos). Coloca un bloque Wait que encontrarás bajo Programming > Timing > Wait (ms).22. Conecta la terminal “Ki” al tercer bloque Multiply. Da clic derecho sobre su terminal del lado izquierdo y crea una constante de valor 1500 (1. Conecta la terminal “Kp” de la estructura Case al primer bloque Multiply (de arriba hacia abajo). Ahora solo nos resta conectar los valores de las ganancias del proporcional. Finalmente conecta el cable rosa que trael el modelo de la planta directamente a la terminal “Transfer Function” del bloque Transfer Function. 23. Dado que el Simulation Toolkit de LabVIEW genera los cálculos de la simulación de un golpe (no genera dato por dato sino que realiza todos los cálculos antes de entregar el resultado) pondremos un bloque Wait para que los datos se muestren durante un cierto tiempo antes de que se vuelvan a realizar los cálculos y se actualicen los valores. . 1.24. En el panel frontal. Da clic derecho sobre el indicador gráfico y elige la opción Visible Ítems > Plot Legend para desactivar la leyenda del indicador. . Pasa al panel frontal y coloca el indicador gráfico que aparece dentro de la pestaña “Simulation Toolkit”. Puedes expandir el indicador de manera que abarque todo el espacio de la pestaña. Navega hasta la dirección del archivo ModPlanta. da clic sobre el icono del browser para importar el modelo obtenido en el ejercicio 1. Da doble clic sobre el valor mínimo en el eje de las “y” y teclea 0. Da doble clic sobre el valor máximo en el eje de las “y” y teclea 1. Da clic derecho sobre el eje de las “y” y selecciona la opción “Auto-scale Y”. 25.sim y selecciónalo. Esto desactivará la auto-escala. 05. Esto se debe a que los algoritmos de resolución de ecuaciones diferenciales son distintos y con diferentes parámetros.5.5. 28. Da clic en el botón “Stop” para detener el programa.26. Finalmente. Los valores recomendados para las ganancias del controlador PID son: Kp=2. 27. puede ser que el Simulation Toolkit marque un error al tratar de resolver las ecuaciones diferenciales que se programaron en forma de diagrama de bloques dentro del Simulation Loop. Ki=7. Kd=0. Ejecuta el programa. guarda el archivo dando clic sobre la opción Save que encontrarás en el panel frontal desde el menú File > Save. Incluso. Fin Ejercicio 3. Cambia los valores de las ganancias del controlador y observa la respuesta del sistema. Puedes cotejar los resultados de los dos: el Control Design Toolkit y del Simulation Toolkit. Nota: Puede ser que haya leves diferencias entre los resultados de los dos toolkits. . Abre el archivo que se encuentra en la ruta C:\Hands On\Seminars\LabVIEW Control Design HandsOn\Exercises\Ejercicio 4 – Implementa PID. Implementación de un Controlador PID En este ejercicio. 5. En la segunda entrada daremos clic derecho Create > Constant y le damos el valor de 1. Colocamos la función de comparación “mayor que” que se encuentra en Programming > Comparison > Greater? . tres ciclos while y una estructura case. Abre LabVIEW si no se encuentra abierto dando clic en el ícono del programa o con la ruta de acceso del menú de inicio en Windows: Start > All Programs > National Intruments > LabVIEW 2011> LabVIEW. 4. conectaremos nuestro sistema de demostración a la tarjeta NI MyDAQ e implementaremos directamente un controlador PID por software. La desventaja que tiene este tipo de control es que puede ser lento dependiendo de la velocidad de procesamiento de la computadora. La ventaja de este tipo de controlador por software es que en tiempo real se está generando una señal de control para la planta sin necesidad de crear un PID físico (con amplificadores operacionales por ejemplo) conectado a nuestra planta.Ejercicio 4. en la primera entrada conectaremos la salida de datos del bloque de la lectura analógica del ciclo while. Sigue estas instrucciones: 1. Lo que haremos es medir cuantas veces por segundo pasa la muesca del círculo en el acoplamiento por el opto interruptor y así calcularemos la velocidad. Notarás que en el ejercicio se encuentran algunas estructuras ya hechas: funciones de DAQ para le lectura y escritura de datos. Empezaremos a trabajar en el segundo ciclo while. 3. Comenzaremos a armar nuestra medición de la velocidad del motor usando el sensor opto interruptor. el derivador y el integrador. 2. El controlador por software hace los cálculos en la computadora y produce la señal de control deseada según los parámetros de las ganancias del proporcional. . Agregamos la función de Numeric Compound que se encuentra en Programming > Numeric > Compound Arithmetic. Conéctalo de la siguiente manera: 8. que se encuentra en Programming > Structures > Case Structure. creamos una constante booleana FALSE – Programming > Boolean > False Constant. Le damos clic derecho Change Mode > AND.6. Conectaremos la salida de nuestro Compound Arithmetic a la entrada de condición de la estructura Case. Coloca el otro Shift Register en el otro extremo del ciclo While. Conectamos la salida del operador “Mayor que” a la primera entrada del Numeric Compound. 7. . Afuera del segundo ciclo while. Da clic sobre el contorno del ciclo While donde se encuentra la entrada booleana y elige la opción “Replace with Shift Register”. y a su vez a la segunda entrada del Numeric Compound. Agregaremos una estructura Case dentro del ciclo While. Conectamos ésta al ciclo while. 9. De las opciones que aparecen. Copia el Sub VI y agrega la copia dentro del Case Structure en la opción de TRUE. La otra entrada del OR la conectaremos después. La actividad que realiza el VI depende de la función descrita en la etiqueta que tenga como entrada. Crea otra constante y en este caso selecciona la opción Add. En nuestro programa. 10. Da clic derecho en la parte izquierda del Sub VI y elije Create Constant. Agrega una función OR que se encuentra en Programming > Boolean > OR y conéctalo a la estructura. selecciona la opción de Reset. haremos uso de un Sub VI llamado CUENTA. Agregaremos una estructura Unbundle by Name que se encuentra en Programming > Clusters > Unbundle by Name y lígalo al cable de error de la función de lectura de DAQ. Coloca el Sub VI Cuenta junto al ciclo While y conéctalo. como se muestra en la siguiente figura: 11. Conecta la entrada y salida de error. Su objetivo es el de ir contando la cantidad de cambios que detecta el opto interruptor y regresar este valor en un momento determinado. . Crea constantes dando clic derecho en las funciones Create > Constant y conéctalas de la siguiente manera: . Cuando salga el cuadro de texto selecciona 0. Cuando se da una variación de 0 a cualquier valor arriba de 1V.12. Dentro de la estructura CASE en el caso TRUE.1 (segundos). 14. agrega dos copias del sub VI Cuenta. Conecta la salida del “Time has Elapsed?” a la condición de la estructura CASE. Utiliza la función de división y multiplicación que encontraras en Programming > Numeric > Multiply/Divide. Crea una constante en cada uno de ellas. Conecta los dos Sub VIs por medio de un cable de error. 13. este cambio se registrará en el sub VI cuenta. que nos ayudará a calcular las revoluciones por segundo utilizando el resultado de los cambios medidos. Ahora trabajaremos en el ciclo de abajo. Coloca la función Elapsed Time que se encuentra dentro de Programming > Timing > Elapsed Time. y colócalo dentro del ciclo. El ciclo que trabajamos se encarga de la parte de adquisición de los cambios detectados en el opto interruptor debido a las muescas del encoder. uno con la opción RETURN y el otro RESET. La terminal de paro del ciclo lo dejaremos sin conectar por el momento. Crearemos un indicador de las revoluciones por segundo dando clic derecho en el cable Create > Indicator.15.” Agregaremos una constante de valor 0 en Programming > Numeric > DBL Numeric.1s se cuenten cuántos cambios detectó el opto interruptor. Haz las conexiones siguientes: 17. y lo dividimos por las 4 muescas del encoder (1 vuelta representa que se detecten los cambios en las cuatro muescas) y lo multiplicamos 10 para obtener revoluciones por segundo. nombralo Rev/sec . Agregaremos un Shift Register a este ciclo dando clic derecho en el borde “Shift Register. 16. Al hacer esto hacemos que cada 0. sólo pasaremos el valor tal cual se lee del shift register. Pasa al caso false. En el control de Output Range establece los valores de Output Low como 0. Da click derecho en el indicador. .1 para la parte derivativa. Create > Local Variable. Crea una variable local de este indicador.vi . 20.18. Da click derecho en la variable local que creamos y da click en Change to Read. Da click derecho en las entradas Output Range y PID Gains y en ambos casos elige la opción Create > Control. Esta variable irá conectado a la entrada Process Variable de la función PID. Colócalo en el primer ciclo while del programa 19.9 como Output High (controlaremos la velocidad del motor por medio del ciclo de trabajo por lo que aquí establecemos que la salida del controlador PID será de 20 al 90%). Agrega la función de PID que se encuentra en Control Design and Simulation > PID > PID. Pasa al panel frontal (CTRL + E ) y acomoda tus nuevos controles. 0.002 para la parte integral y 0. Establece las ganancias de 20 para la parte proporcional. conecta el control de Speed Control a la entrada Setpoint de la función PID.2 y 0. Pasaremos a trabajar en el primer ciclo. Agrega una función de escritura de DAQ: Measurement I/O > NI DAQmx > Write.1 24. Agrega una función de multiplicación Numeric > Multiply.1) que se encuentra en Programming > Boolean > Boolean to (0. .21. Agrega una función de temporización Programming > Timing > Wait Until Next ms y conecta una constante de 0. Usaremos la función Greater? que se encuentra en Programming > Comparison > Greater? Utiliza en la primer entrada la salida de la multiplicación y en la segunda el índice del ciclo FOR. Agregaremos la función Boolean to (0. Agrega dos shift registers al ciclo FOR y realiza las siguientes conexiones: 23. Agrega un ciclo FOR Programming > Structures > FOR. 22. Da click en la función y elige Digital > Single Channel > Single Sample > Boolean (1 line).1). y ésta a su vez a la salida Output. En la Count Terminal del ciclo crea una constante de 10. La salida de la comparación irá al dato de entrada de la función de escritura de DAQ. 25. Da clic derecho a la condición de stop del ciclo y elige Create > Control. Para esto agregaremos la función Merge Signals que se encuentra en Express > Signal Manipulation > Merge Signals. Esto te creará un botón de stop. 26. Crea dos variables locales dando click derecho Create > Local Variable. Graficaremos en cada momento tanto el setpoint definido por el usuario como la respuesta del sistema. El programa completo se debe ver de la siguiente manera: . Da click en cada una de ellas y elige Change to Read y agrégalas (una en el segundo ciclo while en la entrada del OR. y el segundo en el tercer ciclo directamente en la condición de paro). Expande la función para que tenga dos entradas y la primera conecta el control de Speed Control y en la segunda la variable de rev/sec. Nota: Es posible que tengas que ajustar los parámetros de tu sistema PID para obtener mejores respuestas. y haz comparaciones acerca de su funcionamiento. Nota: Asegúrate que los interruptores en el dispositivo de demostración estén apuntando hacia el circuito 2 (C2). . Asegúrate de que la línea digital sea por la línea 3 y la adquisición de la señal analógica se haga por el canal 1.27. Fin Ejercicio 4. Utiliza los valores obtenidos en los ejercicios anteriores. Sólo cambia estas opciones para el correcto funcionamiento del programa. Puede que el número del dispositivo no coincida con el ejemplo.
Copyright © 2024 DOKUMEN.SITE Inc.