Você está na página 1de 52

Taller Prctico:

Diseo y Simulacin de Control con


NI myDAQ
Derechos de Autor
2011 National Instruments Corporation. Todos los derechos reservados.
Bajo las leyes de autor, esta publicacin no deber ser reproducida o transmitida en ninguna forma, electrnica o mecnica,
incluyendo fotocopia, grabacin, almacenando en un sistema de recuperacin de informacin 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 slo para reproducir materiales que
usted posiblemente reproduzca de acuerdo a los trminos de cualquier licencia aplicable u otra restriccin legal.
Marca Registrada
National Instruments, NI, ni.com y LabVIEW son marcas registradas de National Instruments Corporation. Refirase a los
trminos de uso en ni.com/legal para ms informacin acerca de marcas registradas de National Instruments.
Otros nombres de productos y compaas mencionados aqu son marcas registradas de sus respectivas compaas.
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 relacin conjunta con National Instruments.
Patentes
Para patentes referentes a Productos/tecnologa de National Instruments dirjase a la localidad apropiada HelpPatents en su
software, el archivo patents.txt en su media de reproduccin o en National Instruments Patent Notice en ni.com/patents.
Derechos Reservados
2011 National Instruments Corporation. Todos los derechos reservados.

Ejercicio 1. Identificacin de Sistemas


En este ejercicio aprenderemos a usar LabVIEW para poder obtener la definicin matemtica de
nuestro sistema de demostracin. Usaremos los bloques del System Identification Toolkit para
hacer la identificacin paramtrica de un motor de DC. La base de la identificacin paramtrica de
cualquier sistema es comparar las caractersticas de entrada (o excitacin) de la planta con su
caracterstica de salida (o respuesta).
Se cuenta con un sistema de demostracin didctico, 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 adems, se incorpor un optointerruptor que nos ayudar a medir la velocidad de giro del motor.
El dispositivo tambin tiene un sistema electrnico 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 electrnico de potencia ya tiene conectadas las
seales que nos interesan medir.
La primera parte del ejercicio consta en generar una seal de excitacin aleatoria para nuestra
planta. Los sistemas de control se suelen modelar en el dominio de la frecuencia por lo que la teora
de identificacin de sistemas recomienda usar seales 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 seal de excitacin, la mandaremos por la salida analgica A0 de la tarjeta NI
MyDAQ. Asegrate de que los dos interruptores del dispositivo estn apuntando hacia el
circuito 1 (C1)
Posteriormente, realizaremos la adquisicin de datos de esa seal de excitacin y de la respuesta
que detecta el motor. Una vez que adquirimos estas seales, pasaremos a usar los bloques Express
del System Identification Toolkit de LabVIEW para hacer la identificacin paramtrica.
Finalmente, usando los bloques del Control Design Toolkit de LabVIEW crearemos la
representacin de estado y funcin de transferencia de nuestra planta.
Nota: Este curso fue diseado para mostrar cmo usar los Toolkits de LabVIEW en la creacin de
sistemas de control por lo que no ahondamos mucho en la utilizacin LabVIEW. A lo largo de la
realizacin de los ejercicios de este seminario, algunas interfaces grficas del panel frontal y ciertos
cdigos del diagrama de bloques ya estn hechos para ti y slo tendrs que completar el cdigo
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 Identificacin de Sistemas.
3. El panel frontal ya contiene la base de lo que ser la interfaz grfica de este programa y el
diagrama de bloques contiene ya algunos controles as como un ciclo While, dos
estructuras CASE y la creacin de la tarea que se encargarn de transmitir las diferentes
seales de control a la tarjeta DAQ y posteriormente al circuito del motor.

4. Ahora, conecta el control Stop a la terminal de la condicin 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 ilustracin:

Despus, cmbiate a la pestaa FALSE de la estructura CASE exterior y conecta el control STOP a la
terminal como se muestra a continuacin:

5. Para generar nuestra seal aleatoria de excitacin, dentro del ciclo while en la parte
superior, coloca un ciclo For que encontrars bajo Programming > Structures > For
Loop. Asegrate 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


opcin de autoindexado como lo indica la siguiente imagen:

6. Da clic derecho en la terminal N del ciclo For para definir el nmero de iteraciones a
realizar. Elige la opcin Create Constant del submenu que aparece. Fija su valor en 1000.

7. Las iteraciones pares generarn un pulso en alto y las iteraciones impares generarn un
pulso en bajo generando as la seal binaria que buscamos. Cerca de la terminal de
iteracin 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 nmero de iteracin del ciclo a la terminal x del bloque que
acabas de colocar.

8. Da clic derecho sobre la terminal y del bloque Quotient & Remainder y elige la opcin
Create > Constant del submenu que aparece. Fija el valor de la constante en 2. Con esto
podremos determinar si la iteracin es par o impar.}
9. Coloca un bloque de comparacin Equal to 0? que encontrars 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.
Conecta la salida del bloque Equal to 0? a este bloque. Adems, crea las constantes par el

valor de True (fija un valor de 5) y para el valor de False (fija un valor de 0). As
terminamos de definir la amplitud de nuestra seal aleatoria.

11. Ahora definiremos el periodo de espera de cada estado de la seal (alto y bajo). Para esto,
coloca dentro del ciclo For un bloque Wait que encontrars bajo Programming > Timing
> Wait (ms). Si es necesario, modifica el tamao de las estructuras.
12. Ahora coloca un bloque Multiply seguido de un bloque Round to Nearest antes del bloque
Wait. Estos dos bloques los encontrars bajo Programming > Numeric >
Multiply/Round to Nearest.

13. Despus de conectar los bloques que colocaste, pon un bloque Random Number que
encontrars bajo Programming > Numeric > Random Number y conctalo a la terminal
x del bloque Multiply.
14. En la terminal y del bloque Multiply, crea una constante y fija su valor en 5. De esta
forma, el valor mximo de cada estado (alto o bajo) de la seal binaria aleatoria no podr
ser de ms de 5ms. Con esto terminamos de definir nuestra seal binaria aleatoria que
servir de excitacin para nuestra planta.

15. Ahora usaremos los bloques de DAQmx para poder mandar esta seal binaria aleatoria por
la salida analgica AO0. En la esquina superior izquierda se encuentran los bloques de
DAQmx Create Channel y DAQmx Start Task los cuales, respectivamente permiten la
habilitacin de los canales donde la seal ser enviada as como el inicio de la asignacin
de las tareas a estos canales.
16. Ahora coloca dentro del ciclo For un bloque DAQmx Write que encontrars bajo
Measurement I/O > NI-DAQmx > DAQmx Write.
17. Ahora, coloca fuera del ciclo For en el lado derecho un bloque DAQmx Stop Task que
encontrars bajo Measurement I/O > NI-DAQmx > DAQmx Stop Task. Realiza las
conexiones que se muestran en la imagen incluyendo la conexin del valor de salida del
bloque Select a la terminal data del bloque DAQmx Write.

Nota: Al realizar las conexiones, 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. Esto indica que los cables no
estn bien conectados. Esto se debe a que el ciclo For indexa (crea un arreglo) los valores de salida
del ciclo. Para resolver este problema, da clic derecho en el nodo de conexin entre el ciclo For y el
bloque DAQmx Stop Task y da clic en la opcin Disable Indexing.

En la estructura CASE, cmbiate al caso true y justo en el cuadro blanco formado al realizar la
conexin entre el DAQmx write y el select, haz clic derecho y selecciona Create < Constant, y dale
el valor de 0.

18. Ya que generamos la seal de excitacin, ahora debemos realizar la adquisicin de esta
misma seal y de la respuesta de la planta. Pero primero observamos la estructura Case
alrededor de todo el cdigo que acabamos de hacer. Este sirve para que la seal de
excitacin y la adquisicin de los datos slo se realice cuando se presione el botn
Obtener Modelo que aparece en el panel frontal y que se muestra en el diagrama de
bloques como un control booleano llamado OK Button.
19. En la parte superior de la estructura Case, da clic en el combo box y elige la opcin False.
Esto nos permitir hacer el cdigo que se ejecutar en caso de que el botn Obtener
Modelo no est siendo presionado. Lo que queremos que suceda mientras el botn no es
presionado es que la seal de excitacin de la planta sea 0. Por lo tanto, mandaremos
constantemente el valor 0 por la salida analgica 0 (ao0). Coloca un bloque DAQmx Write
que encontrars bajo Measurement I/O > NI-DAQmx > DAQmx Write. En la terminal de
Data crea una constante de valor 0. Agrega un bloque DAQmx Stop Task que encontrars
bajo Measurement I/O > NI-DAQmx > DAQmx Stop Task.

20. Regresa a la opcin True de la estructura Case. Para realizar la adquisicin de datos,
usaremos una opcin alternativa a los bloques de NI-DAQmx que es usar el bloque Express
DAQ Assistant. Coloca un bloque DAQ Assistant que encontrars bajo Express > Input >
DAQ Assistant. Permite que se inicialice el asistente y realiza las siguientes
configuraciones: Acquire Signals > Analog Input > Voltage, dejando la tecla Ctrl
presionada, elige las entradas ai0 y ai1 del DevX(NIMyDAQ) y da clic en Finish. En la
ventana que se abre, dentro del recuadro Channel Setings en la pestaa

Configuration da clic en el botn Show Details >>. Cambia el nombre de los canales
dando clic derecho sobre cada canal y eligiendo la opcin Rename. Al canal ai0 llmalo
Estmulo y al canal ai1 llmalo Respuesta. Da clic sobre el botn Hide Details y en
la opcin Terminal Configuration elige Differential En el recuadro Timing Settings
deja la opcin N Samples como modo de adquisicin, modifica el valor de Simples to
Read a 40,000 y cambia el valor de Rate (Hz) a 5k. Al terminar, da clic en OK.

21. Agregaremos una escala debido a la naturaleza en la que se presenta la seal de respuesta.
En la opcin de Custom Scalling >> Create New damos la opcin Linear y damos
nombre a nuestra escala. En la pantalla siguiente ponemos en el parmetro de slope la
constante -1 y damos OK. Importante: Esta opcin puede o no ser necesaria y depende
de la conexin del motor. Si tu funcin de transferencia al final del ejercicio resulta
negativa, quita esta escala para resolver el problema.

22. Para poder obtener por separado las dos seales de la adquisicin de datos, coloca un
bloque Split Signals que encontrars bajo Express > Signal Manipulation > Split Signals.
Conecta la salida del bloque DAQ Assistant al bloque Split Signals. Para obtener las dos
seales, expande el bloque Split Signals hacia abajo y vers la nueva terminal de salida.

23. Ahora si comenzaremos a utilizar los bloques del System Identification Toolkit de
LabVIEW para poder hacer la identificacin paramtrica de nuestra planta. Coloca un
bloque Model Estimation que encontrars bajo Control Design & Simulation > System ID
> Parametric > SI Model Estimation. Permite que se abra el asistente y realiza las
siguientes configuraciones: dentro del recuadro Select Model Type elige State-Space,
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, al
finalizar da clic en OK. Este VI nos ayudar a calcular un modelo de espacio-estado de
orden 2 de nuestra planta.

24. Ahora colocaremos un bloque TF Estimation que encontrars 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 pestaa Input
Info elige Waveform, dentro de la pestaa Model Settings elige Continuous, ah
mismo elige como orden del numerador 1 y como orden del denominador 2, al finalizar da
clic en OK.

25. Ya que terminamos de hacer estos pasos podemos conectar a estos dos bloques del toolkit
de identificacin de sistemas las seales de la adquisicin de datos. Dado que la primera
seal que pedimos adquirir es la seal llamada Estmulo, esa ser la seal que saldr por
la parte superior del bloque Split Signals. Conecta esta seal a las terminales Stimulus
Signal de los bloques de estimacin paramtrica. Conecta la segunda seal (de arriba
hacia abajo) del bloque Split Signals a las terminales Response Signal de los mismos
bloques.

26. Ahora mandaremos imprimir al panel frontal los modelos de la planta calculados por el
System Identification Toolkit de LabVIEW. Para poder hacer esto, tenemos que armar la
representacin de espacio-estado y la funcin de transferencia con el Control Design
Toolkit de LabVIEW. Primero armaremos la representacin de espacio-estado. Coloca un
bloque Unbundle by Name que encontrars en Programming > Cluster & Variant >
Unbundle by Name. Conecta este bloque a la terminal de salida Model Coeficients del
bloque Estimate State-Space Model. Expande el bloque Unbundle by Name hacia abajo
hasta que aparezcan las terminales A, B y C.

27. 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 representacin de
espacio-estado. Coloca un bloque Array to Matriz a cada una de las terminales del bloque
Unbundle by Name que encontrars en Programming > Array > Array to Matrix.

28. La matriz C presenta la particularidad de que sale del modelo como un vector vertical.
Cuando armamos la representacin de espacio-estado, necesitamos que esta matriz entre
como un vector horizontal por lo que es necesario trasponer esta matriz. Coloca un bloque
Transpose Matrix que encontrars bajo Mathematics > Linear Algebra > Transpose
Matrix. Conecta la terminal de la matriz C a este bloque para trasponer el vector.
29. Ahora ya tenemos todo para construir la representacin de espacio-estado con los bloques
del Control Design Toolkit de LabVIEW. Coloca un bloque Construct State-Space Model que
encontrars bajo Control Design & Simulation > Control Design > Model Construction
> CD Cunstruct State-Space Model. Conecta las terminales de las matrices A, B y C
transpuesta al bloque que acabas de colocar.

30. Para poder imprimir la representacin de espacio-estado que acabamos de crear, coloca un
bloque Draw State-Space Equation que encontrars bajo Control Design & Simulation >
Control Design > Model Construction > CD Draw State-Space Equation. Conecta este
bloque a la representacin de espacio-estado que creamos y tambin conecta la salida de
este bloque al indicador llamado Ecuacin de Estado que tenamos en el programa
desde el principio.

31. Pasaremos a construir ahora la representacin de funcin de transferencia siguiendo pasos


similares a la representacin de espacio estado. Coloca un bloque Unbundle by Name que
encontrars en Programming > Cluster & Variant > Unbundle by Name. Conecta este
bloque a la terminal de salida Model Coeficients del bloque TF Estimation. Expande el
bloque Unbundle by Name hacia abajo hasta que aparezcan las terminales Numerator y
Denominator.

32. Coloca un bloque Construct Transfer Function Model que encontrars bajo Control Design
& Simulation > Control Design > Model Construction > CD Cunstruct Transfer
Function Model. Conecta las terminales Numerator y Denominatior al bloque que
acabas de colocar.
33. Para poder imprimir la representacin de funcin de transferencia que acabamos de crear,
coloca un bloque Draw Transfer Function Equation que encontrars bajo Control Design
& Simulation > Control Design > Model Construction > CD Draw Transfer Function
Equation. Conecta este bloque a la representacin de funcin de transferencia que
creamos y tambin conecta la salida de este bloque al indicador llamado Funcin de
Transferencia que tenamos en el programa desde el principio.

34. A partir de la representacin de funcin de transferencia que acabamos de crear, podemos


obtener otras representaciones similares. Crearemos una representacin de funcin de
transferencia pero en forma factorizada o forma Zero-Pole-Gain. Coloca justo sobre el
bloque Draw Transfer Function Equation un bloque Convert to Zero-Pole-Gain Model que
encontrars bajo Control Design & Simulation > Control Design > Model Conversion >
CD Convert to Zero-Pole-Gain Model. 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.
35. Para poder imprimir la representacin que acabamos de crear, coloca un bloque Draw
Zero-Pole-Gain Equation que encontrars bajo Control Design & Simulation > Control
Design > Model Construction > CD Draw Zero-Pole-Gain Equation. Conecta este bloque
a la representacin de ZPK que creamos y tambin conecta la salida de este bloque al
indicador llamado FT en forma ZPK que tenamos en el programa desde el principio.

36. Dado que nos interesa poder usar el modelo calculado por el System Identification Toolkit
de LabVIEW en futuros ejercicios del seminario, guardaremos el modelo de funcin de
transferencia. Coloca un bloque Save System Model to File que encontrars bajo Control
Design & Simulation > System ID > Management > Save System Model to File. Conecta
la terminal System Model de este bloque a la terminal System Model Out del bloque
Transfer Function Estimation. Da clic derecho sobre la terminal File Path del bloque
Save System Model to File y elige Create > Control. Como nombre de este control, teclea
Guardar Modelo en:. Esto crear un browser para poder definir la localizacin del archivo

que contendr la informacin del modelo. Finalmente da clic derecho sobre la terminal
Default Name y elige la opcin Create > Constant. Teclea el nombre ModPlanta que
ser el nombre del archivo por default.

37. Tambin incluiremos una grfica que nos permita ver tanto la seal de estmulo como la
respuesta de la planta. Pasa al panel frontal y agrega un indicador grfico de tipo
Waveform Graph que encontrars bajo Modern > Graph > Waveform Graph en la paleta
de controles. Coloca el indicador grfico como se muestra en la imagen y realiza las
siguientes configuraciones: da clic derecho sobre el eje de las y e inhabilita la opcin
Auto-scale Y, da doble clic sobre el valor mximo de la escala en Y y cambia su valor a
0.015, da doble clic sobre el valor mnimo de la escala en Y y cambia su valor a -0.015. De
igual manera en el eje de las x inhabilita la opcin Auto-scale X y pon como valor
mnimo 0 y como mximo 0.15 Puedes aprovechar para acomodar el control File Path
que llamamos Guardar Modelo en: como se muestra en la imagen.

38. Pasa al diagrama de bloques y conecta la terminal del indicador grfico 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 seales y basta con conectarlo directamente al indicador grfico
para poder visualizar las dos seales al mismo tiempo. El cdigo final del programa se debe
de ver como en la siguiente imagen.

39. Finalmente, guarda el archivo dando clic sobre la opcin Save que encontrars en el panel
frontal desde el men File > Save. Ejecuta el programa dando clic sobre el icono que
contiene una flecha blanca en la barra de herramientas del panel frontal. Cada vez que
aprietes el botn Obtener Modelo se ejecutar el cdigo en la estructura Case con valor
True y se te pedir que indiques la direccin sonde deseas guardar el archivo que
contiene la informacin del modelo obtenido. Presiona el botn Salir para detener el
programa.
Nota: Cuando ejecutes el programa, obtn varias veces el modelo de la planta y compara cada
resultado con el anterior. Notars que hay cambios en los modelos que obtienes. Esto se debe a
que la seal aleatoria es diferente cada vez que pides obtener el modelo de la planta. Tambin
esto se puede ver afectado por interferencias de friccin en el acoplamiento mecnico entre los
dos motores.
Nota: Si deseas que solo te pida la direccin donde deseas guardar el modelo calculado una vez,
ejecuta una vez el programa, detenlo y da clic sobre el icono del browser. Navega hasta donde
guardaste el modelo y elige el archivo ModPlanta.sim. Cuando vuelvas a ejecutar el programa, ya
no se te pedir que indiques la direccin nuevamente.

Fin Ejercicio 1.

Ejercicio 2a. Anlisis de Sistemas Continuos


En este ejercicio aprenderemos a analizar sistemas de control continuos definidos matemticamente
en el dominio de la frecuencia. Una vez que tenemos definido un sistema (polos, ceros y ganancia)
podemos usar el Control Design Toolkit de LabVIEW para hacer anlisis de respuesta transitoria,
estacionaria y harmnica. Usaremos una interfaz grfica muy poderosa desarrollada en LabVIEW y
que sirve como ejemplo de lo que podramos llegar a desarrollar en este lenguaje de programacin
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.
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 de LabVIEW Control Design
HandsOn\Exercises\Ejercicio 2a Anlisis de Sistemas.
3. Observa detenidamente la interfaz grfica que se proporciona en el panel frontal. Navega por
las pestaas de la interfaz. Ahora pasa al diagrama de bloques y observa el cdigo de esta
interfaz. Navega por las opciones de la estructura case conectada al indicador de las pestaas
(Tab Control). 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
programacin en LabVIEW. Con los conocimientos suficientes de programacin en LabVIEW
armar una interfaz grfica de esta calidad no es complicado.
4. En el diagrama de bloques, en el combo box de la estructura Case, elige la opcin Respuesta
Transitoria. En esta parte del cdigo empezaremos a construir nuestro anlisis en el
dominio del tiempo de nuestro sistema. Coloca un bloque Construct Zero-Pole-Gain Model
que encontrars bajo Control Design & Simulation > Control Design > Model
Construction > CD Cunstruct Zero-Pole-Gain Model. Conecta las terminales que vienen de
fuera de la estructura Case Ceros, Polos y Gain a las terminales correspondientes del
bloque que acabas de colocar.

5. Ya que construimos el modelo, ahora colocaremos su ecuacin en el panel frontal, para esto,
coloca un bloque Draw Zero-Pole-Gain Equation que encontrars bajo Control Design &

Simulation > Control Design > Model Construction > CD Draw Zero-Pole-Gain Equation.
Conecta este bloque a la representacin de ZPK que creamos. Da clic derecho en la terminal
de salida de este bloque y elige la opcin Create > Indicator. Modifica el nombre del
indicador dando doble clic sobre la etiqueta Equation y llamndolo G(s):.

6. Pasa al panel frontal y acomoda el indicador G(s): en la parte superior izquierda dentro de
la pestaa Respuesta Transitoria.

Nota: Puede que el indicador no aparezca dentro de la pestaa Respuesta Transitoria


automticamente. Si no encuentras el indicador, pasa al diagrama de bloques y dando clic
derecho sobre el indicador G(s): elige la opcin Find Indicador. Una vez que hayas ubicado
el indicador, colcalo en la posicin correcta.

7. Podemos hacer ahora un anlisis de la respuesta del sistema a un escaln unitario. En el


diagrama de bloques, coloca un bloque Step Response que encontrars bajo Control Design
& Simulation > Control Design > Time Response > CD Step Response. 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. Da clic derecho sobre la terminal de salida
Step Response Graph del bloque Step Response y elige la opcin Create > Indicator.

8. Pasa al panel frontal y da clic derecho sobre el indicador grfico. Elige la opcin Visible
tems > Plot Legend para quitar la leyenda superior del indicador grfico. Coloca el
indicador grfico dentro de la pestaa Respuesta Transitoria.

9. Ahora agregaremos algunos datos importantes del anlisis de nuestro sistema. Podemos
obtener directamente una cadena de texto que nos indique si el sistema es estable o
inestable. Coloca un bloque Stability que encontrars bajo Control Design & Simulation >
Control Design > Dynamic Characteristics > CD Stability. Conecta a este bloque la salida
del modelo ZPK que construimos. Da clic derecho sobre la terminal de salida Stability y
elige la opcin Create > Indicator.

10. Pasa al panel frontal y coloca el indicador enumerado Stability dentro del pequeo
recuadro que se tiene dentro de la pestaa Respuesta Transitoria.
11. Agregaremos tambin el coeficiente de amortiguamiento del sistema as como su frecuencia
natural. Coloca un bloque Camping Ratio and Natural Frequency que encontrars bajo
Control Design & Simulation > Control Design > Dynamic Characteristics > CD

Damping Ratio and Natural Frequency. Conecta a la terminal de entrada de este bloque la
salida del modelo ZPK que creamos. Crea un indicador para las terminales de salida
Damping Ratios y Natural Frequencies.

12. Pasa al panel frontal y coloca los dos indicadores dentro del recuadro de la pestaa
Respuesta Transitoria. Dado que estos indicadores son de tipo arreglo, los puedes
colapsar para que solo se vea un rengln del arreglo. Tu panel frontal se debe de ver como la
siguiente imagen.

13. Ahora pasaremos a hacer el anlisis del comportamiento harmnico (o de la frecuencia) de


nuestro sistema. En el panel frontal, selecciona la pestaa Respuesta Harmnica. Ahora
pasa al diagrama de bloques y dentro del combo box de la estructura case elige la opcin
Respuesta Harmnica.
14. Crea de nuevo un modelo de tipo ZPK colocando un bloque bloque Construct Zero-Pole-Gain
Model que encontrars bajo Control Design & Simulation > Control Design > Model
Construction > CD Cunstruct Zero-Pole-Gain Model. Conecta las terminales de la
estructura Case Ceros, Polos y Gain al bloque que acabas de colocar.
15. Pasa al panel frontal. Crearemos un separador de pestaas dentro de la pestaa Respuesta
Harmnica. Este separador lo encuentras bajo Modern > Containers > Tab Control de la
paleta de controles.

16. Agranda el separador de pestaas a que abarque todo el espacio de la pestaa Respuesta
Harmnica. Ahora, dando doble clic sobre el nombre de las pestaas, cambia el nombre de
la primera pestaa a Bode. En esta pestaa pondremos los diagramas de Bode de nuestro
sistema. A la segunda pestaa llmala Nyquist. Para poder agregar ms pestaas, da clic
derecho sobre alguna de las pestaas y elige la opcin Add Page After. Agrega dos
pestaas ms para tener en total 4 pestaas. Llama a las dos pestaas siguientes Nichols y
Mrgenes de Estabilidad.

17. Pasa ahora al diagrama de bloques donde colocaras una pequea estructura Case dentro de
la estructura Case que ya haba desde el principio y bajo la opcin Respuesta Harmnica
Conecta a la terminal ? de la estructura Case el indicador del separador de pestaas Tab
Control 2.

18. Dentro del combo box de la estructura Case, elige la opcin Bode. Dentro de la estructura
Case coloca un bloque Bode que encontrars 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 Harmnica. Crea un indicador grfico
para las terminales de salida del bloque Bode Bode Magnitude y Bode Phase dando clic
derecho sobre la terminal y eligiendo la opcin Create > Indicator.

19. Pasa al panel frontal. Ubica los dos indicadores grficos que corresponden al diagrama de
bode para la magnitud y la fase. Haz estos indicadores grficos ms pequeos para que los
dos quepan dentro de la pestaa llamada Bode como se muestra en la imagen.

20. Dentro del combo box de la nueva estructura Case, elige la opcin Nyquist. Dentro de la
estructura coloca un bloque Nyquist que encontrars bajo Control Design & Simulation >
Control Design > Frequency Response > CD Nyquist. Conecta a la terminal de entrada de
este bloque la salida del modelo ZPK que creamos. Ahora crea un indicador dando clic
derecho a la terminal de salida del bloque Nyquist llamada Nyquist Plot.

21. Pasa al panel frontal y coloca el indicador Nyquist Plot dentro de la pestaa Nyquist.
Puedes agrandar el indicador para que abarque todo el espacio de esta pestaa.
22. En el diagrama de bloques, ahora agregaremos un bloque Nichols para poder visualizar el
diagrama de Nichols que relaciona la frecuencia con la magnitud del sistema. Para poder
hacerlo, necesitamos agregar el caso Nichols dentro de nuestra estructura Case. Da clic
derecho sobre la estructura case y elige la opcin Add Case After. Automticamente se
crea el caso Nichols. Repite de nuevo esta operacin para tener el caso Mrgenes de
Estabilidad.
23. Ahora si, coloca un bloque Nichols dentro del caso con el mismo nombre. Este bloque lo
encontrars bajo Control Design & Simulation > Control Design > Frequency Response >
CD Nichols. Conecta el bloque a la salida del modelo ZPK que habamos creado y crea el
indicador para la terminal Nichols Plot.

24. En el panel frontal, coloca este indicador dentro de la pestaa Nichols. Puedes expandir el
indicador para que abarque toda el rea de la pestaa.

25. De regreso al diagrama de bloques, dentro del caso Mrgenes de Estabilidad, coloca un
bloque Gain and Phase Margin que encontrars bajo Control Design & Simulation >
Control Design > Frequency Response > CD Gain and Phase Margin. Conecta el bloque al
modelo ZPK y crea un indicador para las terminales de salida Magnitude Plot y Phase
Plot.

26. En el panel frontal, coloca los dos indicadores dentro de la pestaa Mrgenes de
Estabilidad. Estos grficos indican hasta que ganancia y fase es estable e sistema. Ajusta el
tamao de estos indicadores para poderlos acomodar dentro de la pestaa. Tu panel frontal
se debe de ver como la siguiente imagen.

27. Pasa a la pestaa Funcin de Transferencia y ejecuta el programa. Analizaremos un


sistema que propondremos a travs de la interfaz grfica. Sube la ganancia a 2.75 y presiona
el botn Actualizar. Agregaremos un cero por lo que en la parte real teclea -3.47 y en la
imaginaria 0. Da clic al botn Agregar. Realiza el mismo proceso para agregar un polo en (0.93,0) y (-4.22,0.88). Si cometes un error, puedes seleccionar el polo o cero que hayas
agregado y luego presiona el botn Borrar para poder quitar ese polo o cero. Cuando
quites polos o ceros complejos, recuerda quitar los dos conjugados para que no haya
conflicto con la funcin de transferencia.
28. Navega por las diferentes pestaas del anlisis transitorio y del anlisis harmnico para ver
los resultados del anlisis.
29. Presiona el botn Stop para detener la ejecucin del programa.
30. Vuelve a ejecutar el programa, pero ahora, en lugar de agregar la definicin de un sistema (su
ganancia, polos y ceros) da clic sobre el botn Importar Modelo. Navega hasta la direccin
donde guardaste el archivo que contiene la informacin del modelo obtenido en el ejercicio
1. Selecciona el archivo ModPlanta.sim y vers que el modelo se agrega automticamente a la
interfaz grfica.
31. Navega por las diferentes pestaas del anlisis transitorio y del anlisis harmnico para ver
los resultados del anlisis.
32. Finalmente, guarda el archivo dando clic sobre la opcin Save que encontrars en el panel
frontal desde el men File > Save.

Fin Ejercicio 2a.

Ejercicio 2b. Anlisis de Sistemas Discretos (opcional)


En este ejercicio aprenderemos a analizar sistemas de control discretos definidos matemticamente
en el dominio de la variable z. En realidad no hay diferencia entre este ejercicio y el ejercicio
anterior. La nica especificacin que cambia en todos los casos es que hay que definir el tiempo de
muestreo de la funcin de transferencia que estamos utilizando.
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 de LabVIEW Control Design
HandsOn\Exercises\Ejercicio 2b Anlisis de Sistemas.
3. A partir de este punto, sigue exactamente las mismas instrucciones que en el ejercicio
anterior. La facilidad que encontramos con el Control Design Toolkit de LabVIEW es que para
modelar sistemas discretos y poderlos analizar, se usan los mismos bloques. La nica
diferencia es que cuando creamos un modelo (ZPK por ejemplo) tenemos que definir el
tiempo de muestreo de la funcin de transferencia. Automticamente, se detecta entonces
que es un sistema discreto y se pasa la funcin de transferencia al dominio de la variable z.
En todos los casos, al momento de crear un modelo ZPK, conecta la terminal del control
Tiempo de Muestreo (s) a la terminal Sampling Time del bloque Construct Zero-PoleGain Model. Antes de agregar una funcin de transferencia en la interfaz grfica de la pestaa
Funcin de Transferencia, define el tiempo de muestreo primero.
4. 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 cdigo. Observa las diferencias en la estabilidad del sistema dado que ahora es
discreto.
5. Finalmente, guarda el archivo dando clic sobre la opcin Save que encontrars en el panel
frontal desde el men File > Save.

Fin Ejercicio 2b.

Ejercicio 3. Diseo de un Controlador PID


En este ejercicio mostraremos cmo podemos sintetizar de una manera sencilla los parmetros de
un controlador PID. En s, veremos cmo responde nuestro sistema ante diferentes ganancias del
controlador PID. El ejercicio contiene una interfaz grfica sencilla que muestra la estructura del
controlador en un diagrama de bloques mostrando la funcin de transferencia de cada parte del
controlador. Modificaremos en tiempo real los valores de las ganancias proporcional, derivativa e
integral para conseguir el mejor desempeo posible. Adems, aprenderemos a usar el Simulation
Toolkit de LabVIEW para construir diagramas de bloques y ver la respuesta de nuestro sistema.
Compararemos la facilidad de uso de los bloques del Control Design Toolkit y del Simulation Toolkit
para simular y hacer la sntesis de nuestro controlador PID.
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 de LabVIEW Control Design
HandsOn\Exercises\Ejercicio 3 Diseo de PID.
3. En este ejercicio solo agregaremos el cdigo 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. Pasa al diagrama de bloques y
en el combo box de la estructura Case elige la opcin Control Design Toolkit.
4. Como podemos ver, las funciones de transferencia de la planta, del bloque proporcional, del
bloque derivador y del bloque integrador ya estn construidas. Ahora tenemos que unir
estas funciones de transferencia para armar el controlador. Primero conectaremos en
paralelo los bloques proporcional y derivador. Coloca un bloque Parallel que encontrars
bajo Control Design & Simulation > Control Design > Model Interconection > CD
Parallel. Conecta las terminales Model 1 y Model 2 de este bloque a las salidas de los
modelos de los bloques proporcional y derivador.

5. El siguiente paso es conectar el modelo en paralelo entre el bloque proporcional y derivador


en paralelo con el bloque integral. Coloca un bloque Parallel que encontrars 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.

6. 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 informacin
de nuestra planta. Coloca un bloque Series que encontrars bajo Control Design &
Simulation > Control Design > Model Interconection > CD Series. 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.

7. Una vez conectado en serie la planta y los bloques del controlador PID tenemos que cerrar el
lazo para poder tener presente la retroalimentacin del sistema segn el diagrama de la
interfaz grfica. Coloca un bloque Feedback que encontrars bajo Control Design &
Simulation > Control Design > Model Interconection > CD Feedback. Conecta a la
terminal Model 1 de este bloque la salida de la conexin en serie de la planta y el PID. En la
terminal Model 2 conectaremos un modelo que crearemos en el siguiente paso que en
realidad no es ms que un modelo de valor 1 que cierre el lazo.

8. Coloca un bloque Construct Zero-Pole-Gain Model que encontrars bajo Control Design &
Simulation > Control Design > Model Construction > CD Cunstruct Zero-Pole-Gain
Model. Da clic derecho sobre la terminal Gain de este bloque y crea una constante de valor
1 eligiendo la opcin Create > Constant. Conecta la salida de este bloque a la terminal
Model 2 del bloque Feedback.

9. Hemos terminado de generar nuestro modelo representado en la interfaz grfica. El inters


ahora es ver que pasa ante un escaln unitario con la respuesta de nuestro sistema. Coloca
un bloque Step Response que encontrars bajo Control Design & Simulation > Control
Design > Time Response > CD Step Response. Conecta a la terminal State-Space Model
(nombre de la terminal que aparece por default) de este bloque la salida del modelo

generado en el bloque Feedback que construimos. Da clic derecho sobre la terminal Time
Info y crea las constantes de esta terminal. Verifica que los valores de esta terminal sean
(0,0.001,20) en ese orden. Da clic derecho sobre la terminal de salida Step Response
Graph del bloque Step Response y elige la opcin Create > Indicator.

10. Pasa al panel frontal y coloca el indicador grfico en la pestaa Control Design Toolkit.
Puedes expandir el indicador de manera que abarque todo el espacio de la pestaa. Da clic
derecho sobre el indicador grfico y elige la opcin Visible tems > Plot Legend para
desactivar la leyenda del indicador. Da clic derecho sobre el eje de las y y selecciona la
opcin Auto-scale Y. Esto desactivar la auto-escala. Da doble clic sobre el valor mximo
en el eje de las y y teclea 1.1. Da doble clic sobre el valor mnimo en el eje de las y y teclea
0.

11. 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 ms sencilla. En
el combo box de la estructura Case, elige Simulation Toolkit. Ahora colocaremos la
interfaz que nos permite usar los bloques de este toolkit. Coloca un bloque Simulation Loop
que encontrars bajo Control Design & Simulation > Simulation > Simulation Loop.
Expande este loop de manera que abarque todo el interior de la estructura Case.
12. Da doble clic sobre la lengeta del lado superior izquierdo del Simulation Loop y realiza las
siguientes configuraciones: Initial Time: 0, Final Time: 20, ODE Solver: Runge-Kutta 23
(variable), Minimum Step Size: 1E-10, Maximum Step Size: 1, Relative Tolerance: 0.001 y
Absolute Tolerante: 1E-7.

13. Coloca dentro del Simulation Loop, un bloque Step Signal que encontrars bajo Control
Design & Simulation > Simulation > Signal Generation > Step Signal.

14. Da doble clic sobre el bloque Step Signal y realiza las siguientes configuraciones: inicial
value: 0, final value: 1 y step time: 0.

15. Coloca junto al bloque Step Signal un bloque Sumation que encontrars bajo Control Design
& Simulation > Simulation > Signal Arithmetic > Sumation.
16. Junto a este bloque coloca un bloque Derivative y un bloque Integrator que encontrars bajo
Control Design & Simulation > Simulation > Continuous Linear Systems >
Derivative/Integrator.

17. Coloca tres bloques Multiply que encontrars bajo Programming > Numeric > Multiply.
Coloca uno a lado del derivador, uno al lado del integrador y el tercero arriba del bloque del
derivador.
18. Coloca de nuevo un bloque Sumation que encontrars bajo Control Design & Simulation >
Simulation > Signal Arithmetic > Sumation. Da doble clic sobre este bloque y realiza las
siguientes configuraciones: Icon Shape: Rectangle, Inputs: 3, da clic sobre la terminal
negativa hasta que aparezca un signo + y haz lo mismo con la terminal que aparece con un
crculo rojo cruzado.

19. Coloca junto al ltimo bloque Sumation un bloque Transfer Function que encontrars bajo
Control Design & Simulation > Simulation > Continuous Linear Systems > Transfer
Function. Da doble clic sobre este bloque y realiza la siguiente configuracin: Parameter
Source: Terminal.

20. Coloca un bloque Build Array que encontrars bajo Programming > Array > Build Array.
Expande este bloque hasta tener dos entradas. Lo que estamos haciendo es crear un arreglo
de la salida del sistema con la seal de entrada para poderlas graficar las dos en un solo
indicador grfico.

21. Coloca un bloque SimTime Waveform que encontrars bajo Control Design & Simulation >
Simulation > Graph Utilities > SimTime Waveform. Realiza las conexiones como se
muestra en la siguiente imagen.

22. Ahora solo nos resta conectar los valores de las ganancias del proporcional, del derivador y
del integral as como la funcin de transferencia de la planta para poder tener nuestro
sistema armado. Conecta la terminal Kp de la estructura Case al primer bloque Multiply
(de arriba hacia abajo). Conecta la terminal Kd al segundo bloque Multiply. Conecta la
terminal Ki al tercer bloque Multiply. 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 clculos de la simulacin de un golpe
(no genera dato por dato sino que realiza todos los clculos 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 clculos y se actualicen los valores. Coloca un bloque Wait
que encontrars bajo Programming > Timing > Wait (ms). Da clic derecho sobre su
terminal del lado izquierdo y crea una constante de valor 1500 (1.5 segundos).

24. Pasa al panel frontal y coloca el indicador grfico que aparece dentro de la pestaa
Simulation Toolkit. Puedes expandir el indicador de manera que abarque todo el espacio
de la pestaa. Da clic derecho sobre el indicador grfico y elige la opcin Visible tems >
Plot Legend para desactivar la leyenda del indicador. Da clic derecho sobre el eje de las y y
selecciona la opcin Auto-scale Y. Esto desactivar la auto-escala. Da doble clic sobre el
valor mximo en el eje de las y y teclea 1.1. Da doble clic sobre el valor mnimo en el eje de
las y y teclea 0.

25. En el panel frontal, da clic sobre el icono del browser para importar el modelo obtenido en el
ejercicio 1. Navega hasta la direccin del archivo ModPlanta.sim y seleccinalo.

26. Ejecuta el programa. 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. Da clic en el botn Stop para detener el programa.
Nota: Puede ser que haya leves diferencias entre los resultados de los dos toolkits. Incluso,
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.
Esto se debe a que los algoritmos de resolucin de ecuaciones diferenciales son distintos y con
diferentes parmetros.
27. Los valores recomendados para las ganancias del controlador PID son: Kp=2.5, Kd=0.05,
Ki=7.5.
28. Finalmente, guarda el archivo dando clic sobre la opcin Save que encontrars en el panel
frontal desde el men File > Save.

Fin Ejercicio 3.

Ejercicio 4. Implementacin de un Controlador PID


En este ejercicio, conectaremos nuestro sistema de demostracin a la tarjeta NI MyDAQ e
implementaremos directamente un controlador PID por software. La ventaja de este tipo de
controlador por software es que en tiempo real se est generando una seal de control para la planta
sin necesidad de crear un PID fsico (con amplificadores operacionales por ejemplo) conectado a
nuestra planta. El controlador por software hace los clculos en la computadora y produce la seal
de control deseada segn los parmetros de las ganancias del proporcional, el derivador y el
integrador. La desventaja que tiene este tipo de control es que puede ser lento dependiendo de la
velocidad de procesamiento de la computadora.
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 la ruta C:\Hands On\Seminars\LabVIEW Control Design
HandsOn\Exercises\Ejercicio 4 Implementa PID.
3. Notars que en el ejercicio se encuentran algunas estructuras ya hechas: funciones de DAQ
para le lectura y escritura de datos, tres ciclos while y una estructura case.

4. Comenzaremos a armar nuestra medicin de la velocidad del motor usando el sensor opto
interruptor. Lo que haremos es medir cuantas veces por segundo pasa la muesca del crculo
en el acoplamiento por el opto interruptor y as calcularemos la velocidad.
5. Empezaremos a trabajar en el segundo ciclo while. Colocamos la funcin de comparacin
mayor que que se encuentra en Programming > Comparison > Greater? ; en la primera
entrada conectaremos la salida de datos del bloque de la lectura analgica del ciclo while. En
la segunda entrada daremos clic derecho Create > Constant y le damos el valor de 1.

6. Agregamos la funcin de Numeric Compound que se encuentra en Programming >


Numeric > Compound Arithmetic. Le damos clic derecho Change Mode > AND.
Conectamos la salida del operador Mayor que a la primera entrada del Numeric Compound.
Afuera del segundo ciclo while, creamos una constante booleana FALSE Programming >
Boolean > False Constant. Conectamos sta al ciclo while, y a su vez a la segunda entrada
del Numeric Compound.

7. Da clic sobre el contorno del ciclo While donde se encuentra la entrada booleana y elige la
opcin Replace with Shift Register. Coloca el otro Shift Register en el otro extremo del
ciclo While. Conctalo de la siguiente manera:

8. Agregaremos una estructura Case dentro del ciclo While, que se encuentra en Programming
> Structures > Case Structure. Conectaremos la salida de nuestro Compound Arithmetic a
la entrada de condicin de la estructura Case.

9. En nuestro programa, haremos uso de un Sub VI llamado CUENTA. Su objetivo es el de ir


contando la cantidad de cambios que detecta el opto interruptor y regresar este valor en un
momento determinado. La actividad que realiza el VI depende de la funcin descrita en la
etiqueta que tenga como entrada. Coloca el Sub VI Cuenta junto al ciclo While y conctalo. Da
clic derecho en la parte izquierda del Sub VI y elije Create Constant.

10. De las opciones que aparecen, selecciona la opcin de Reset. Copia el Sub VI y agrega la copia
dentro del Case Structure en la opcin de TRUE. Crea otra constante y en este caso selecciona
la opcin Add. Conecta la entrada y salida de error, como se muestra en la siguiente figura:

11. Agregaremos una estructura Unbundle by Name que se encuentra en Programming >
Clusters > Unbundle by Name y lgalo al cable de error de la funcin de lectura de DAQ.
Agrega una funcin OR que se encuentra en Programming > Boolean > OR y conctalo a la
estructura. La otra entrada del OR la conectaremos despus.

12. El ciclo que trabajamos se encarga de la parte de adquisicin de los cambios detectados en el
opto interruptor debido a las muescas del encoder. Cuando se da una variacin de 0 a
cualquier valor arriba de 1V, este cambio se registrar en el sub VI cuenta. Ahora
trabajaremos en el ciclo de abajo, que nos ayudar a calcular las revoluciones por segundo
utilizando el resultado de los cambios medidos. Coloca la funcin Elapsed Time que se
encuentra dentro de Programming > Timing > Elapsed Time, y colcalo dentro del ciclo.
Cuando salga el cuadro de texto selecciona 0.1 (segundos). Conecta la salida del Time has
Elapsed? a la condicin de la estructura CASE.

13. Dentro de la estructura CASE en el caso TRUE, agrega dos copias del sub VI Cuenta. Crea una
constante en cada uno de ellas; uno con la opcin RETURN y el otro RESET. Conecta los dos
Sub VIs por medio de un cable de error.

14. Utiliza la funcin de divisin y multiplicacin que encontraras en Programming > Numeric
> Multiply/Divide. Crea constantes dando clic derecho en las funciones Create > Constant
y conctalas de la siguiente manera:

15. Al hacer esto hacemos que cada 0.1s se cuenten cuntos cambios detect el opto interruptor,
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. Agregaremos un Shift Register a este ciclo dando clic derecho en el borde Shift
Register. Agregaremos una constante de valor 0 en Programming > Numeric > DBL
Numeric.

16. Pasa al caso false, slo pasaremos el valor tal cual se lee del shift register. Haz las conexiones
siguientes:

17. 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, nombralo Rev/sec

18. Crea una variable local de este indicador. Da click derecho en el indicador, Create > Local
Variable. Colcalo en el primer ciclo while del programa

19. Pasaremos a trabajar en el primer ciclo. Agrega la funcin de PID que se encuentra en
Control Design and Simulation > PID > PID.vi , conecta el control de Speed Control a la
entrada Setpoint de la funcin PID. Da click derecho en la variable local que creamos y da
click en Change to Read. Esta variable ir conectado a la entrada Process Variable de la
funcin PID.

20. Da click derecho en las entradas Output Range y PID Gains y en ambos casos elige la opcin
Create > Control. Pasa al panel frontal (CTRL + E ) y acomoda tus nuevos controles. En el
control de Output Range establece los valores de Output Low como 0.2 y 0.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%). Establece las ganancias
de 20 para la parte proporcional, 0.002 para la parte integral y 0.1 para la parte derivativa.

21. Agrega un ciclo FOR Programming > Structures > FOR. En la Count Terminal del ciclo crea
una constante de 10.

22. Agrega una funcin de multiplicacin Numeric > Multiply. Agrega dos shift registers al ciclo
FOR y realiza las siguientes conexiones:

23. Agrega una funcin de escritura de DAQ: Measurement I/O > NI DAQmx > Write. Da click
en la funcin y elige Digital > Single Channel > Single Sample > Boolean (1 line). Agrega
una funcin de temporizacin Programming > Timing > Wait Until Next ms y conecta una
constante de 0.1

24. Usaremos la funcin Greater? que se encuentra en Programming > Comparison >
Greater? Utiliza en la primer entrada la salida de la multiplicacin y en la segunda el ndice
del ciclo FOR. La salida de la comparacin ir al dato de entrada de la funcin de escritura de
DAQ. Agregaremos la funcin Boolean to (0,1) que se encuentra en Programming >
Boolean > Boolean to (0,1), y sta a su vez a la salida Output.

25. Graficaremos en cada momento tanto el setpoint definido por el usuario como la respuesta
del sistema. Para esto agregaremos la funcin Merge Signals que se encuentra en Express >
Signal Manipulation > Merge Signals. Expande la funcin para que tenga dos entradas y la
primera conecta el control de Speed Control y en la segunda la variable de rev/sec.

26. Da clic derecho a la condicin de stop del ciclo y elige Create > Control. Esto te crear un
botn de stop. Crea dos variables locales dando click derecho Create > Local Variable. Da
click en cada una de ellas y elige Change to Read y agrgalas (una en el segundo ciclo while
en la entrada del OR, y el segundo en el tercer ciclo directamente en la condicin de paro). El
programa completo se debe ver de la siguiente manera:

27. Puede que el nmero del dispositivo no coincida con el ejemplo. Slo cambia estas opciones
para el correcto funcionamiento del programa. Asegrate de que la lnea digital sea por la
lnea 3 y la adquisicin de la seal analgica se haga por el canal 1.
Nota: Asegrate que los interruptores en el dispositivo de demostracin estn apuntando
hacia el circuito 2 (C2).
Nota: Es posible que tengas que ajustar los parmetros de tu sistema PID para obtener mejores
respuestas. Utiliza los valores obtenidos en los ejercicios anteriores, y haz comparaciones acerca de
su funcionamiento.

Fin Ejercicio 4.

Você também pode gostar