Realizar Control PID con LabVIEW

1.- PRESENTACIÓN.

La finalidad de esta práctica es la de implementar un instrumento virtual (IV) que realice el modo de control PID (proporcional-integral-derivativo). Son varios los objetivos a conseguir.


2.- OBJETIVOS.

Al finalizar esta práctica deberá ser capaz de:

-          Crear sub-instrumentos virtuales (sub-IV) editando el icono y su conector.
-          Utilizar las estructuras de datos elementales que incorpora LabVIEW.
-          Implementar un control clásico PID.
-          Controlar el tiempo de ejecución de las instrucciones.

3.- FUNDAMENTOS TEÓRICOS.

Un controlador que satisfaga el modo de control analógico Proporcional-Integral-Derivativo (PID) se caracteriza por una salida del controlador p(t) relacionada con la señal de error ep(t) mediante la expresión

donde Kp no tiene dimensiones, KI se da en s-1 y KD en s. También se utiliza en muchas ocasiones los tiempos integral TI y derivativo TD, los cuales vienen relacionados mediante expresiones inversas de KI y KD respectivamente

 A la hora de implementar mediante software los términos integral y derivativo ha de tenerse en cuenta que dichos términos se han de representar de forma discreta mediante instrucciones del software propio que se utilice. El término integral se aproxima teniendo en cuenta el método numérico trapezoidal de integración (figura 1). 


De la figura 1, es posible aproximar el término integral (área sombreada) mediante la función


Por otra parte, la acción derivativa puede aproximarse mediante la regla de la diferencia finita (véase la figura 2).



El término derivativo se aproxima, por tanto mediante la expresión


Las expresiones (3) y (4) serán consideradas más adelante para implementar mediante LabView los modos integral y derivativo.

4.-DESCRIPCIÓN DE LA PRÁCTICA.

En este caso se trata de diseñar un IV que realice el clásico algoritmo de control PID (proporcional-integral-derivativo). La práctica consta de 5 ejercicios. Los tres primeros van encaminados al diseño de IV que materialicen por separado los modos proporcional, integral y derivativo. El cuarto de ellos implementará el tiempo que debe transcurrir entre muestra y muestra de las variables involucradas en el controlador PID, y el quinto y último englobará los 4 anteriores bajo el nombre PID. Dichos sub-IV configurarán un solo IV independiente que podrá ser utilizado en cualquier momento para controlar el sistema que se desee. El estudiante aprenderá también a editar el icono de un sub-IV configurando los conectores de entrada y de salida que interesen.

5.- ACTIVIDADES Y DESARROLLO EXPERIMENTAL.

Ejercicio 1: Edición de un sub-IV para implementar el modo proporcional.
Ejercicio 2: Edición de un sub-IV para implementar el modo integral.
Ejercicio 3: Edición de un sub-IV para implementar el modo derivativo.
Ejercicio 4: Edición de un sub-IV que implemente el tiempo entre muestras.
Ejercicio 5: Edición de un sub-IV para implementar el modo PID.

Ejercicio 1: Edición de un sub-IV para implementar el modo proporcional.


Edición de un IV que realice la acción proporcional del algoritmo PID.


Panel frontal
1. Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 3. Dicho panel está formado por iconos de dos tipos: indicadores y controles. El primero está nombrado mediante la etiqueta “Acción proporcional”. Los segundos se llaman “Error” y “Kp


Deberá hacerse uso del botón derecho del ratón para acceder al desplegable general. En la siguiente tabla se especifican las acciones a seguir para cada uno de los iconos.


Indicadores






Acción


Acción proporcional
Botón derecho del ratón
ControlsÆNumericÆNumeric Indicator.
Cambiar la etiqueta
“Numeric”             por
“Acción proporcional”.


Controles






Acción


Error
Botón derecho del ratón
ControlsÆNumericÆControl
Pinchar 2 veces en la etiqueta “Numeric” y cambiarla por
“Error”.

Kp
Botón derecho del ratón
ControlsÆNumericÆControl
Pinchar 2 veces en la etiqueta “Numeric” y cambiarla por “Kp”.


Mediante el uso conjunto de las teclas “Ctrl” i “E” será posible cambiar del Panel de Control al Diagrama de Bloques y viceversa. Obsérvese que este no está vacío, sino por el contrario, aparecen los iconos que se han creado antes en el panel frontal.

Con el botón derecho del ratón y situándose en cada uno de los iconos seleccionar para los tres la opción “View as icon”, ello permitirá reducir el tamaño de los iconos por comodidad.


Diagrama de bloques

1. El objetivo es crear el siguiente diagrama de bloques (figura 4). Se salvará como un IV que realizará la acción proporcional del algoritmo PID.


Para ello: 

  1. Seleccionar      un        bloque             de        multiplicación            localizado       en Functions-Numeric-Multiply Cablear los elementos de acuerdo a la figura 4.
  2.  A continuación, esta sencilla operación se configurará como un sub-IV editando su icono y definiendo los conectores externos asociados. El aspecto final del nuevo IV deberá ser algo parecido a: 
Edición del icono:

Se abrirá un pequeño editor de gráficos. Se trata de eliminar todo lo que se encuentra dentro del marco, editar un nuevo marco de color azul y únicamente las letras Kp, tal y como se muestra en la figura adjunta.




Definición de conectores:

Para ello es necesario cambiar al panel frontal. Ahora con el ratón situado sobre el area del icono y con el botón derecho del ratón realízense las siguientes acciones:
“Show Connector”, “Disconnect All Terminals” y después “Patterns”. Seleccionar el que tenga 2 entradas y 1 salida (véase la figura adjunta). Obsérvese que ahora si se lleva el cursor del ratón al icono aquel cambiará al modo “cableado”. Es el momento de asignar los 3 conectores a los 3 iconos que aparecen en el panel frontal. Para ello ha de pincharse secuencialmente el conector y el icono del panel frontal que se desea asignar a dicho conector. En particular han de realizarse las siguientes asignaciones (figura 5): 





Por último Salvar este IV bajo el nombre “Proporcional” en el directorio que interese.

Ejercicio 2: Edición de un sub-IV para implementar el modo integral


Edición de un IV que realice la acción integral del algoritmo PID.


Panel frontal

1. Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 6. En este caso se tiene 3 controles numéricos, 1 indicador numérico y un control booleano.


Deberá hacerse uso del botón derecho del ratón para acceder al desplegable general. En la siguiente tabla se especifican las acciones a seguir para cada uno de los iconos.



Indicadores







Acción



Acción integral
Botón derecho del ratón
ControlsÆNumericÆNumeric
Indicator.
Cambiar etiqueta
la




“Numeric” “Acción
integral”.
por



Controles







Acción



Error
Botón derecho del ratón
ControlsÆNumericÆControl
Cambiar etiqueta
la




“Numeric” “Error”.
por

KI
Botón derecho del ratón
ControlsÆNumericÆControl
Cambiar etiqueta
la




“Numeric” por “KI”.
por

Dt
Botón derecho del ratón
ControlsÆNumericÆControl
Cambiar etiqueta
la




“Numeric” por “Dt”.
por

En rango?
Botón derecho del ratón
ControlsÆBooleanÆPush Button
Cambiar etiqueta
la




“Boolean”              por  “En rango?”.


Mediante el uso conjunto de las teclas “Ctrl” i “E” será posible cambiar del Panel de Control al diagrama de bloques y viceversa. 
Con el botón derecho del ratón y situándose en cada uno de los iconos que aparecen, seleccionar para cada uno de ellos la opción “View as icon”, ello permitirá reducir el tamaño de los iconos por comodidad.

Diagrama de bloques

1. El objetivo es crear el siguiente el diagrama de bloques (figura 7). Se salvará como un IV que realizará la acción integral del algoritmo PID.


Para ello:  
a. Seleccionar la estructura repetitiva While Loop localizada en FunctionsÆStructures ÆWhile Loop. La estructura While Loop cuando aparece en pantalla presenta un índice de repetición (es el cuadrado azul “i”) y un icono rojo de finalización. El bucle repetitivo While se ejecuta mientras el icono rojo sea evaluado a “Verdadero”. Situarse con el cursor del ratón sobre el icono rojo y realizar las siguientes selecciones pulsando el botón derecho “Continue if True” y “Create Constant”. 

b.                  Los elementos restantes a implementar deberán introducirse en el interior del bucle. Dichos elementos están ubicados en:
Functions-Numeric-Add.
Functions-Numeric-Divide.

Functions-Numeric-Compound Arithmetic-Botón derecho-Change Mode-Multiply.
Functions-Comparison-Select.


c.  Los indicadores que aparecen sobre el bucle a derecha e izquierda son los llamados registros de desplazamiento. Su misión es la de incorporar en la iteración siguiente los valores obtenidos en la iteración anterior. Para que aparezcan, hay que situar el cursor derecho del ratón sobre el borde del bucle y mediante su botón derecho seleccionar “Add Shift Register”.

d. Con todo ello cablear los diferentes elementos según la figura 7 salvando el IV bajo el nombre “Integral”.

A continuación, se configurará como un sub-IV editando su icono y definiendo los conectores externos asociados. El aspecto final del nuevo IV deberá ser algo parecido a:






Para ello deberá pincharse 2 veces con el cursor del ratón en el icono superior derecho de la ventana del instrumento virtual (figura adjunta).






Edición del icono:

Se abrirá un pequeño editor de gráficos. Se trata de eliminar todo lo que se encuentra dentro del marco, editar un nuevo marco de color rojo y únicamente las letras KI, tal y como se muestra en la figura adjunta.

Definición de conectores:

Para ello es necesario cambiar al panel frontal. Ahora con el ratón situado en el area del icono y con el botón derecho del ratón realízense las siguientes acciones:
“Disconnect All Terminals” y después “Patterns”. Seleccionar el que tenga 4 entradas y 1 salida (véase la figura adjunta). Obsérvese que ahora si se lleva el cursor del ratón al icono aquel cambiará al modo “cableado”. Es el momento de asignar los 5 conectores a los 5 iconos que aparecen en el panel frontal. Para ello ha de pincharse secuencialmente el conector y el icono del panel frontal que se desea asignar a dicho conector. En particular han de realizarse las siguientes asignaciones (figura 8):



Salvar este IV bajo el nombre “Integral” en el directorio que interese.


Ejercicio 3: Edición de un sub-IV para implementar el modo derivativo


Edición de un IV que realize la acción derivativa del algoritmo PID.


Panel frontal

1. Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 9. En este caso se tiene 3 controles numéricos, 1 indicador numérico y un control booleano.





Deberá hacerse uso del botón derecho del ratón para acceder al desplegable general. En la siguiente tabla se especifican las acciones a seguir para cada uno de los iconos.

Indicadores






Acción


Acción derivativa
Botón derecho del ratón
Controls-Numeric-Numeric Indicator.
Cambiar             la
etiqueta
“Numeric”      por
“Acción derivativa”.


Controles






Acción


Valor anterior
Botón derecho del ratón
Controls-Numeric-Control
Cambiar                la
etiqueta
“Numeric”         por
“Valor anterior”.

Dt
Botón derecho del ratón
Controls-Numeric-Control
Cambiar etiqueta
la




“Numeric” por “Dt”.
por

Kd
Botón derecho del ratón
Controls-Numeric-Control
Cambiar etiqueta
la




“Numeric” por “Kd”.
por


Mediante el uso conjunto de las teclas “Ctrl” i “E” será posible cambiar del Panel de Control al diagrama de bloques y viceversa. 

Con el botón derecho del ratón y situándose en cada uno de los iconos que aparecen, seleccionar para cada uno de ellos la opción “View as icon”, ello permitirá reducir el tamaño de los iconos por comodidad.

Diagrama de bloques

1. El objetivo es crear el siguiente el diagrama de bloques (figura 10). Se salvará como un IV que realizará la acción derivativa del algoritmo PID.




Para ello:


a.
 Seleccionar la estructura repetitiva While Loop localizada en FunctionsÆStructures ÆWhile Loop. La estructura While Loop cuando aparece en pantalla presenta un índice de repetición (es el cuadrado azul “i”) y un icono rojo de finalización. El bucle repetitivo While se ejecuta mientras el icono rojo sea evaluado a “Verdadero”. Situarse con el cursor del ratón sobre el icono rojo y realizar las siguientes selecciones pulsando el botón derecho “Continue if True” y “Create Constant”. 

Los elementos restantes a implementar deberán introducirse en el interior del bucle. Dichos elementos están ubicados en:

Functions-Numeric-Substract. 



Functions-Numeric-Divide. 



Functions-Numeric-Multiply. 


Functions-Comparison-Less?.  


Functions-Comparison-Select.




a. Implementar así mismo los registros de desplazamiento que aparecen sobre el bucle de iteración. Para que aparezcan, hay que situar el cursor derecho del ratón sobre el borde del bucle y mediante su botón derecho seleccionar “Add Shift Register”.

b. Con todo ello cablear los diferentes elementos según la figura 10 salvando el IV bajo el nombre “Derivativa”.

A continuación, se configurará como un sub-IV editando su icono y definiendo los conectores externos asociados. El aspecto final del nuevo IV deberá ser algo parecido a:




Para ello deberá pincharse 2 veces con el cursor del ratón en el icono superior derecho de la ventana del instrumento virtual (figura adjunta).






Edición del icono:


Se abrirá un pequeño editor de gráficos. Se trata de eliminar todo lo que se encuentra dentro del marco, editar un nuevo marco de color verde y únicamente las letras Kd, tal y como se muestra en la figura adjunta.

Definición de conectores:


Para ello es necesario cambiar al panel frontal. Ahora con el ratón situado en el area del icono y con el botón derecho del ratón realízense las siguientes acciones: “Disconnect All Terminals” y después “Patterns”. Seleccionar el que tenga 3 entradas y 1 salida (véase la figura adjunta). Obsérvese que ahora si se lleva el cursor del ratón al icono aquel cambiará al modo “cableado”. Es el momento de asignar los 4 conectores a los 4 iconos que aparecen en el panel frontal. Para ello ha de pincharse secuencialmente el conector y el icono del panel frontal que se desea asignar a dicho conector. En particular han de realizarse las siguientes asignaciones (figura 11):



Salvar este IV bajo el nombre “Derivativa” en el directorio que interese.

Ejercicio 4: Edición de un sub-IV que implemente el tiempo entre muestras


Edición de un IV que implemente el tiempo entre muestras


Panel frontal

1. Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 12. En este caso sólo se tiene un indicador numérico.




Deberá hacerse uso del botón derecho del ratón para acceder al desplegable general. En la siguiente tabla se especifican las acciones a seguir para este icono.

Indicadores







Acción



Dt
Botón derecho del ratón
ControlsÆNumericÆNumeric
Indicator.
Cambiar etiqueta
la




“Numeric” “Dt”.
por


Mediante el uso conjunto de las teclas “Ctrl” i “E” será posible cambiar del Panel de Control al diagrama de bloques y viceversa.

Con el botón derecho del ratón y situándose en cada uno de los iconos que aparecen, seleccionar para cada uno de ellos la opción “View as icon”, ello permitirá reducir el tamaño de los iconos por comodidad.

Diagrama de bloques

1. El objetivo es crear el siguiente el diagrama de bloques (figura 13). Se salvará como un IV que determinará el espaciado temporal entre muestras.




Para ello:


a. 
Seleccionar la estructura repetitiva While Loop localizada en Functions-Structures-While Loop. La estructura While Loop cuando aparece en pantalla presenta un índice de repetición (es el cuadrado azul “i”) y un icono rojo de finalización. El bucle repetitivo While se ejecuta mientras el icono rojo sea evaluado a “Verdadero”. Situarse con el cursor del ratón sobre el icono rojo y realizar las siguientes selecciones pulsando el botón derecho “Continue if True” y “Create Constant”. 

b.                  Los elementos restantes a implementar deberán introducirse en el interior del bucle. Dichos elementos están ubicados en:


Functions
-Numeric-Substract.

Functions-Numeric-Divide.
Functions-Numeric-Multiply.

Functions-Comparison-Less?.

Functions-Comparison-Select.

Functions-Timing-Tick Count (ms).


c.  Implementar así mismo el registro de desplazamiento que aparece sobre el bucle de iteración. Para que aparezca, hay que situar el cursor derecho del ratón sobre el borde del bucle y mediante su botón derecho seleccionar “Add Shift Register”.

d. Con todo ello cablear los diferentes elementos según la figura 13 salvando el IV bajo el nombre “Tiempo”.

A continuación, se configurará como un sub-IV editando su icono y definiendo los conectores externos asociados. El aspecto final del nuevo IV deberá ser algo parecido a:





Para ello deberá pincharse 2 veces con el cursor del ratón en el icono superior derecho de la ventana del instrumento virtual (figura adjunta).






Edición del icono:

Se abrirá un pequeño editor de gráficos. Se trata de eliminar todo lo que se encuentra dentro del marco, editar un nuevo marco de color negro y únicamente las letras T, tal y como se muestra en la figura adjunta.

Definición de conectores:

Para ello es necesario cambiar al panel frontal. Ahora con el ratón situado en el area del icono y con el botón derecho del ratón realízense las siguientes acciones: “Disconnect All Terminals” y después “Patterns”. Seleccionar el que tenga 1 salida (véase la figura adjunta). Obsérvese que ahora si se lleva el cursor del ratón al icono aquel cambiará al modo “cableado”. Es el momento de asignar 1 conector al icono que aparece en el panel frontal. Para ello ha de pincharse secuencialmente el conector y el icono del panel frontal que se desea asignar a dicho conector. En particular han de realizarse las siguientes asignaciones (figura 14):


Salvar este IV bajo el nombre “Tiempo” en el directorio que interese.



Ejercicio 5: Edición de un sub-IV para implementar el modo PID.


Edición de un IV que implemente el modo completo PID


Panel frontal

1. Abrir un instrumento virtual en blanco y crear el panel frontal de la figura 15. Dicho panel está formado por iconos de tres tipos: indicadores, controles y “waveform chart”



Deberá hacerse uso del botón derecho del ratón para acceder al desplegable general. En la siguiente tabla se especifican las acciones a seguir para este icono.

Indicadores






Acción


Salida PID (%)
Botón derecho del ratón
ControlsÆNumericÆNumeric
Indicator.
Cambiar                la
etiqueta
“Numeric”         por
“Salida PID (%)”.

T
Botón derecho del ratón
ControlsÆNumericÆNumeric
Indicator.
Cambiar                la
etiqueta
“Numeric”         por
“T”.


Controles







Acción



Kp
Botón derecho del ratón
ControlsÆNumericÆVertical Point
Cambiar etiqueta “Numeric” “Kp”.
la por
Cursor en zona del controlÆ Botón derechoÆVisible ItemsÆDigital Display
Kd
Botón derecho del ratón
ControlsÆNumericÆVertical Point
Cambiar etiqueta “Numeric” “Kd”.
la por
Cursor en zona del controlÆ Botón derechoÆVisible ItemsÆDigital Display
KI
Botón derecho del ratón
ControlsÆNumericÆVertical Point
Cambiar etiqueta “Numeric” “KI”.
la por
Cursor en zona del controlÆ Botón derechoÆVisible ItemsÆDigital Display
SP
Botón derecho del ratón
ControlsÆNumericÆVertical Point
Cambiar etiqueta
“Numeric” por “SP”.
la por
Cursor en zona del controlÆ Botón derechoÆVisible ItemsÆDigital Display
PV
Botón derecho del ratón
ControlsÆNumericÆVertical Point
Cambiar etiqueta
“Numeric” por “PV”.
la por
Cursor en zona del controlÆ Botón derechoÆVisible ItemsÆDigital Display
Límite superior
Botón derecho del ratón
ControlsÆNumericÆNumeric Control
Cambiar etiqueta
“Numeric” por              “Límite superior”.
la por

Límite inferior
Botón derecho del ratón
ControlsÆNumericÆNumeric Control
Cambiar              la etiqueta
“Numeric”              por por              “Límite inferio”.

Salida PID
Botón derecho del ratón
ControlsÆGraphÆWaveform Chart
Cambiar              la etiqueta
“Waveform
Chart”                 por
“Salida PID”.
Pinchar 2 veces en “Plot 0”. Cambiar por “Salida PID”.



Mediante el uso conjunto de las teclas “Ctrl” i “E” será posible cambiar del Panel de Control al diagrama de bloques y viceversa.

Con el botón derecho del ratón y situándose en cada uno de los iconos que aparecen, seleccionar para cada uno de ellos la opción “View as icon”, ello permitirá reducir el tamaño de los iconos por comodidad.

Diagrama de bloques

1. El objetivo es crear el siguiente el diagrama de bloques (figura 16). Se salvará como un IV que determinará el espaciado temporal entre muestras.




Para ello:


a. 
Seleccionar la estructura repetitiva While Loop localizada en FunctionsÆStructures ÆWhile Loop. La estructura While Loop cuando aparece en pantalla presenta un índice de repetición (es el cuadrado azul “i”) y un icono rojo de finalización. El bucle repetitivo While se ejecuta mientras el icono rojo sea evaluado a “Verdadero”. Situarse con el cursor del ratón sobre el icono rojo y realizar las siguientes selecciones pulsando el botón derecho “Continue if True” y “Create Constant”. 

b. Los elementos restantes a implementar deberán introducirse en el interior del bucle. Dichos elementos están ubicados en:


Functions
-Numeric-Substract.

Functions-Numeric-Compound Arithmetic.

Functions-Comparison-In Range and Coerce.


Functions-Select a VI-Buscar la carpeta donde esté guardado el IV Proporcional.


Functions-Select a VI-Buscar la carpeta donde esté guardado el IV Integral. 


Functions-Select a VI-Buscar la carpeta donde esté guardado el IV Derivativa.


Functions-Select a VI-Buscar la carpeta donde esté guardado el IV Tiempo.


c.  Implementar así mismo el registro de desplazamiento que aparece sobre el bucle de iteración. Para que aparezca, hay que situar el cursor derecho del ratón sobre el borde del bucle y mediante su botón derecho seleccionar “Add Shift Register”.

d.  Con todo ello cablear los diferentes elementos según la figura 16 salvando el IV bajo el nombre “PID básico”.

A continuación, se configurará como un sub-IV editando su icono y definiendo los conectores externos asociados. El aspecto final del nuevo IV deberá ser algo parecido a:





Para ello deberá pincharse 2 veces con el cursor del ratón en el icono superior derecho de la ventana del instrumento virtual (figura adjunta)






Edición ícono

Se abrirá un pequeño editor de gráficos. Se trata de eliminar todo lo que se encuentra dentro del marco, editar un nuevo marco de color negro y únicamente las letras PID, tal y como se muestra en la figura adjunta.

Definición de conectores:

Para ello es necesario cambiar al panel frontal. Ahora con el ratón situado en el area del icono y con el botón derecho del ratón realízense las siguientes acciones: “Disconnect All Terminals” y después “Patterns”. Seleccionar el que tenga 6 entradas y 1 salida (véase la figura adjunta). Obsérvese que ahora si se lleva el cursor del ratón al icono aquel cambiará al modo “cableado”. Es el momento de asignar un conector a cada  icono que aparece en el panel frontal. Para ello ha de pincharse secuencialmente el conector y el icono del panel frontal que se desea asignar a dicho conector. En particular han de realizarse las siguientes asignaciones (figura 17): 



Salvar este IV bajo el nombre “PID básico” en el directorio que interese.

Ahora solo resta la ejecución del Programa, el dato PV, se sustituye para trabajar con datos reales recogidos en campo a través de una tarjeta de adquisición de datos, proveniente de un sensor o dispositivo adecuado según el diseño del sistema. La salida PID también es la que que se conecta al sistema físico a un actuador o controlador. 

Ajustando los parámetros de KP, KI, KD, T según el modelo matemático del sistema.

CONTACTAME 


Contácteme, dudas, sugerencias y comentarios. Sígueme en:

Google+ Rubén Salas
Twitter @ru_samr


Comentarios

Lo más leído del Blog

Explicación del Estado de la CPU y errores de LED Siemens S7 300

Introducción al PLC

Instrucciones de Bit