PWM Con LabView

Control de velocidad de un motor CC: NI Labview U. Mart´ınez Corral, L. Ranero Santisteban, I. Sarramian Olmos Sistemas

Views 278 Downloads 6 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Control de velocidad de un motor CC: NI Labview

U. Mart´ınez Corral, L. Ranero Santisteban, I. Sarramian Olmos Sistemas Digitales en la Medida y Control de Procesos Industriales

SDM I - 2011/2012 Profesora: Ainhoa Etxebarria Egizabal EUITI de BILBAO - UPV/EHU

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Introducci´on Objetivos del proyecto Implementar en Labview 2010 (National Instruments) la l´ogica de adquisici´on, control y actuaci´ on para el control de velocidad en tiempo real de un motor de corriente continua, y la interfaz de usuario para interactuar con el sistema. Hardware disponible PC compatible (Windows XP) Tarjeta de adquisici´ on de la serie M (NI 6221) DC carbon-brush motor IG-22GM (6V) Two channel Hall effect encoder (SA, SB) Reductora

1 53

Puente H de 2A (Digilent PmodHB5TM)

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Tiempor Real Caracter´ıstica condicionante del dise˜ no En el ´ ambito del control se denomina tiempo real al funcionamiento temporalmente determinista de un sistema. Se aplica a todas aquellas plantas donde, adem´ as de c´ omo, es cr´ıtico cu´ ando se realicen las acciones. Podemos decir que se trata de una caracter´ıstica de ciertos sistemas que condiciona la programaci´ on y la especial atenci´ on que se debe prestar a los tiempos relativos de ejecuci´ on y de transferencia. No define una estructura, ni algoritmo espec´ıficos, ni define requerimientos temporales concretos. Siendo as´ı, los sistemas en tiempo real dependen de los requerimientos de la planta, orden´ andose por algunos autores en duro/firme/suave1 en funci´ on de los efectos que puede tener en su funcionamiento un incumplimiento de los l´ımites temporales establecidos. Otros autores2 realizan la ordenaci´ on en funci´ on de la relaci´ on entre el tiempo de ejecuci´ on y el tiempo de muestreo. El sistema a implementar ser´ a firme y de baja velocidad relativa.. 1

http://en.wikipedia.org/wiki/Real-time_computing#Criteria_for_real-time_computing

2

Speed analysis of a digital controller in time critical applications. Pawet Piatek, Wojciech Grega. Journal of Automation, Mobile Robotics & Intelligent Systems. Grupo 8

Control de velocidad: Labview

4/ 71

Diagrama de flujo general

Diagrama de bloques general (Labview)

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Lectura

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Encoder incremental: modos de lectura

Grupo 8

Control de velocidad: Labview

9/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Encoder incremental: resoluci´on Dependiente del n´ umero de orificios y modo de lectura grados → radianes →

360o PPR

 

2π  PPR

n · modo: pulsos por vuelta (PPR) n: n´ umero de orificios

modo: (X)1, (X)2, (X)4

Resoluci´on disponible   grados →

n: 3 modo: (X)4 PPR = 3 · 4 = 12  radianes → Grupo 8

360o 3·4 2π 3·4

 = 30o  = π6 rad

Control de velocidad: Labview



10/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Hardware de lectura: contador La tarjeta de adquisici´on de NI nos ofrece la posibilidad de configurar un contador (en este caso ctr1) como encoder angular, lo cual coincide con el tipo de sensor del motor a utilizar.

Las entradas correspondientes a los dos sensores disponibles (SA y SB) se conectar´an a las entradas asociacadas al contador seleccionado para esta funci´ on espec´ıfica: bornes 42 y 46, respectivamente.

Grupo 8

Control de velocidad: Labview

11/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Configuraci´on del contador: sensor Z

Al no disponer de sensor Z (vuelta completa), y como no vamos a utilizar las funciones asociadas, desactivamos el enable e ignoramos el resto de par´ametros asociados, disponiendo valores constantes indiferentemente.

Grupo 8

Control de velocidad: Labview

12/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Configuraci´on del contador: modo y par´ametros de lectura Indicamos el modo de lectura (X4), de acuerdo con los sensores disponibles y con el fin de obtener la mayor resoluci´ on posible (que supondr´a un mejor control). Leer´emos el n´ umero de ticks (pulsos). Podr´ıamos obtener directamente la conversi´on en grados o radianes, para lo cual se vale del valor de Pulsos Por Revoluci´ on (PPR, en este caso 12). En nuestro caso, no utilizaremos ese par´ametro en este apartado. Grupo 8

Control de velocidad: Labview

13/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Referencias te´oricas Teorema de muestreo de Nyquist-Shannon La reconstrucci´on exacta de una se˜ nal peri´ odica continua en banda base a partir de sus muestras, es matem´aticamente posible si la se˜ nal est´a limitada en banda y la tasa de muestreo es superior al doble de su ancho de banda3 4 . Valores de muestreo en aplicaciones de control En control se utilizan frecuencias que multiplican entre 5 y 15 la frecuencia de Nyquist-Shannon (Fs ). 3 4

http://es.wikipedia.org/wiki/Teorema_de_muestreo_de_Nyquist-Shannon Digital Sampling According to Nyquist and Shannon. Thomas L. Lag¨ o, Jonkoping University, Sweden. Grupo 8

Control de velocidad: Labview

14/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Limitaci´on del encoder Frecuencia de muestreo te´ orica La frecuencia de muestreo te´ orica, la obtendr´ıamos analizando el ancho de banda de la planta de forma experimental (obteniendo Fp ) y estableciendo una frecuencia de muestreo (Fm ) 10 veces mayor (5 m´as que la referencia de Nyquist-Shannon). Fs = 2 · Fp

Fm = 10 · Fp

Fm = 5 · F s

Resoluci´on pobre Debido a la baja resoluci´ on que nos ofrece el encoder, para periodos de muestreo menores a 100ms el error en la lectura hace impracticable el control. Grupo 8

Control de velocidad: Labview

15/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Periodo de muestreo y adquisici´on En el bucle while de mayor prioridad estableceremos un periodo entre iteraciones (100ms), escogiendo el reloj adecuado (1kHz).

Adquisici´on Se ha dispuesto un registro que almacenar´a en cada iteraci´on una u ´nica muestra (el valor del contador -ticks- en formato DBL). De esta forma dispondremos del valor actual y el valor de la iteraci´ on anterior, obteniendo la diferencia mediante el resto de ambos valores. El sentido de giro definir´a si el contador incrementar´a o decrementar´a, y la velocidad en qu´e medida lo har´a. Grupo 8

Control de velocidad: Labview

16/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Riesgos por overflow / underflow Inestabilidad por errores de lectura El contador de la tarjeta de adquisici´ on no dispone de l´ogica de detecci´on de overflow / underflow, por lo que los errores de lectura provocados por estos eventos afectar´an negativamente al control, pudiendo volver inestable el sistema al entrar en oscilaci´on. Detecci´on Deberemos identificar cu´ando se da cualquiera de los dos eventos y realizar los ajustes necesarios en el algoritmo para minimixar en lo posible el efecto de ´estos.

Grupo 8

Control de velocidad: Labview

17/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Identificaci´on de los eventos sent giro act

1 pre

sent giro act

0 pre

50 100 150 200 250 44 94 144 194 244 38

0 50 100 150 200 250 44 94 144 194 244

206 156 106 56 6 212 162 112 62 12 218

0 206 156 106 56 6 212 162 112 62 12

En sentido de giro positivo (1), el valor actual s´ olo es menor al valor previo cuando se da overflow. En sentido de giro negativo (0), a la inversa, el valor actual s´olo es mayor que el valor previo cuando se da underflow. Arranque en sentido negativo Se da un error de lectura en la primera iteraci´ on siempre que el sistema se inicia con sent giro negativo, que impide el control del mismo

Ejemplo para un contador de 8 bits.

Grupo 8

Control de velocidad: Labview

18/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Soluci´on propuesta Detecci´on y correcci´on Se propone una soluci´ on de identificaci´ on de eventos de tipo overflow / underflow y correcci´ on en la interpretaci´on de las lecturas obtenidas, con el objetivo de omitir errores y no perder informaci´on. Tama˜ no del contador Como se expondr´a a continuaci´ on, el u ´nico par´ametro requerido ser´a el tama˜ no en bits del contador, para deducir el valor m´aximo que podr´a expresar (2n − 1), a fin de aplicar las correcciones adecuadas. Grupo 8

Control de velocidad: Labview

19/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Diagrama de flujo general

L´ogica de detecci´on Con el sentido de giro ordenado y los valores actual y previo del contador, se implementan dos comparadores (= , pre. Mediante una puerta AND, una puerta NOR y dos puertas OR, se obtiene como resultado una se˜ nal de dos bits que codifica las cuatro condiciones de funcionamiento del contador: correcto, err´ oneo por overflow, err´ oneo por underflow y parado. Grupo 8

Control de velocidad: Labview

20/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Correcciones a la lectura

CASE gobernado por las salidas de las puertas OR 0: no se ha detectado evento, no se altera la lectura. 1: se ha detectado overflow, se suma 2n − 1 a la lectura. 2: se ha detectado underflow, se resta 2n − 1 a la lectura. 3: el motor est´a parado, se sustituye la lectura por una constante (0). Grupo 8

Control de velocidad: Labview

21/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Cambio de sentido en r´egimen permanente Conflicto con el detector overflow / underflow Como Fm = 10 · Fp , cuando el motor se encuentra girando en un sentido y se ordena un cambio sin variar la consigna de velocidad, durante un periodo transitorio (que equivale a al menos 10 iteraciones) el motor sigue girando en el mismo sentido (reduciendo la velocidad). La l´ ogica de detecci´ on implementada identifica estos estados como err´ oneos, corrigiendo indebidamente las lectura, e induciendo un error en la lectura, que a su vez puede conducir a la inestabilidad del sistema.

Soluci´on propuesta Desactivaremos la l´ ogica de detecci´ on y correci´ on overflow/underflow cuando se d´e una orden de cambio de sentido, y volveremos a activara cuando el motor vuelva a entrar en r´egimen permanente. Grupo 8

Control de velocidad: Labview

22/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Cambio de sentido en r´egimen permanente

Grupo 8

Control de velocidad: Labview

23/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Iteraci´on k

La estructura CASE est´ a en TRUE. La l´ ogica overflow/underflow est´ a activa. sent giroact 6= sent giropre → Se ha ordenado un cambio de sentido. Se DESECHA la correcci´ on y se toma la lectura en bruto. Se registra un FALSE para la siguiente iteraci´ on del CASE.

Grupo 8

Control de velocidad: Labview

24/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Iteraciones k+1 ... k+n-1

La estructura CASE est´ a en FALSE. La l´ ogica overflow/underflow NO est´ a activa. sent giroact = sent giropre → NO se ha ordenado un cambio de sentido. Se toma la lectura en bruto. El sentido de las lecturas del contador NO COINCIDE con sent giro. Se registra un FALSE para la siguiente iteraci´ on del CASE. Grupo 8

Control de velocidad: Labview

25/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

Iteraci´on k+n

La estructura CASE est´ a en FALSE. La l´ ogica overflow/underflow NO est´ a activa. sent giroact = sent giropre → NO se ha ordenado un cambio de sentido. Se toma la lectura en bruto. El sentido de las lecturas del contador COINCIDE con sent giro. Se registra un TRUE para la siguiente iteraci´ on del CASE. Grupo 8

Control de velocidad: Labview

26/ 71

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Actuaci´on

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Balance energ´etico: DC vs PWM

Z 0

T

Vn = 2

Z

T /2

Z

T

Vn + 0

Z 0

T /2

Grupo 8

0

T

3 · Vn = 4

Z

3 4 ·T

Z

T

Vn + 0

Control de velocidad: Labview

0 3 4 ·T

29/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

PWM: resoluci´on Resoluci´on PWM

Resoluci´on

 %Vn → 

1 PPC

∆V →

 · 100

Vn PPC



PPC =

TPWM Tb

Por ejemplo  PPC : 4bits  %Vn → 214 · 100 = 6, 25% TB : 1ms  Vn : 10v ∆V → 10 = 0, 625v 24 Grupo 8

Control de velocidad: Labview

30/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

PWM: frecuencia FPWM , Fb y Fp La planta no deber´a detectar las variaciones en la se˜ nal dentro de un periodo TPWM , no deber´a detenerse en las fracciones en que est´e a nivel bajo, sino que deber´a tomar el periodo completo en su conjunto. FPWM > 2 · Fp Fb > PPC · 2 · Fp El periodo completo como referencia No es suficiente con garantizar Fb > 2 · Fp y deberemos prestar atenci´on a la hora de implementar la frecuencia base de generaci´on de la se˜ nal PWM. Grupo 8

Control de velocidad: Labview

31/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Puente-H: ganancia de potencia mediante transistores

Grupo 8

Control de velocidad: Labview

32/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Puente-H: cuatro estados de funcionamiento

Grupo 8

Control de velocidad: Labview

33/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Puente-H: glitch tipo I

Cuando EN = 1, en la transici´ on de DIR = 0 a DIR = 1, debido al retardo de la puerta NOT salida de las puertas AND no se actualiza al mismo tiempo, provocando que durante unos instantes todos los transistores se encuentren en conducci´ on. Esto conlleva el cortocircuito de todos ellos, con el consiguiente riesgo de que se quemen. Grupo 8

Control de velocidad: Labview

34/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Puente-H: glitch tipo II

Cuando EN = 1, en la transici´ on de DIR = 1 a DIR = 0, debido al retardo de la puerta NOT salida de las puertas AND no se actualiza al mismo tiempo, provocando que durante unos instantes todos los transistores se encuentren en corte. Esto conlleva que no haya diferencia de potencial en los bornes del motor, a pesar de que EN = 1. Grupo 8

Control de velocidad: Labview

35/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Canal f´ısico y Tb Se configuran como salida dos l´ıneas de un puerto digital de la tarjeta DAQ (port0/line0:1, bornes 52 y 17 respectivamente), correspondientes a las se˜ nales EN y DIR, a generar seg´ un los resultados de la l´ ogica de control. Como el encoder nos impide establecer Tm = 10 · Tp , no podemos utilizar TPWM = Tm , lo cual generar´ıa un ciclo completo PWM por periodo de muestreo. En su lugar, establecemos la constante PWMPTs que indica el no de ciclos completos PWM que se generar´ an en Tm . El valor real TPWM depender´ a de los errores inducidos por las limitaciones de c´ omputo: Tm TPWM 6= PWMPTs

Tb (µs) =

Grupo 8

Tm (ms) PWMPTs

PPC

Control de velocidad: Labview

· 1000

36/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Generaci´on PWM punto a punto

clk pwm → Tclk = Tb max pwm : PPC − 1 ref pwm : duty cycle · PPC

Generaci´ on se˜ nal EN En un bucle de alta prioridad con un periodo de iteraci´on Tb se implementa un contador de 1 a PPC y se compara la salida con la constante definida por el duty-cycle5 (0 ÷ 1 , 0 ÷ 100%, 0 ÷ PPC ). Dicha constante s´ olo se comprueba al inicio de cada periodo PWM. 5 THIGH TPWM

Grupo 8

Control de velocidad: Labview

37/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Cambio de sentido: anulaci´on de glitches Soluci´on propuesta Para impedir que los glitches afecten al funcionamiento y evitar el riesgo de quemar el circuito, impediremos que EN est´e activa cuando se cambie el estado de DIR.

Detecci´ on de cambio Se registra el signo del la se˜ nal de control y se comparan al inicio de cada periodo PWM el estado actual y el de la iteraci´on anterior.

Grupo 8

Control de velocidad: Labview

38/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

Cambio de sentido: forzado de EN durante la transici´on Cuando se detecta un cambio en la orden de sentido, se fuerza la escritura del valor FALSE en la l´ınea EN, escribiendo al mismo tiempo el valor DIR de la iteraci´ on anterior (invariable). En la siguiente iteraci´on se vuelve a forzar la escritura del valor FALSE en la l´ınea EN y se escribe al mismo tiempo el nuevo valor de DIR. Se transfiere al registro el nuevo estado de DIR. Si no se han dado m´ as cambios, el bucle vuelve a TRUE y se ejecuta un nuevo periodo PWM.

Grupo 8

Control de velocidad: Labview

39/ 71

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Control

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Controlador: PID Controlador Mecanismo de control por realimentaci´ on que calcula la desviaci´ on o error entre un valor medido y el valor que se quiere obtener, para aplicar una acci´ on ´ correctora que ajuste el proceso6 . Este se compone de un bloque que obtiene la diferencia entre ambas entradas (debidamente normalizadas), y un algoritmo que modifica la se˜ nal resultante (denominada de error). Algoritmo El algoritmo utilizado, cuya denominaci´ on es autoexplicativa, es el Proporcional Integral Derivativo (PID). Realiza las tres acciones por separado sobre la se˜ nal de error y las pondera seg´ un las constantes dadas: Kp , Ki y Kd .

6

http://es.wikipedia.org/wiki/Proporcional_integral_derivativo Grupo 8

Control de velocidad: Labview

42/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Controlador: PID Un bloque integra el c´ alculo de la se˜ nal de error a partir de las variables de referencia y sistema, y aplica el algoritmo con las constantes PID gains. Puesto que el rango de la salida es de 100 y la l´ ogica de actuaci´ on espera un rango cien veces menor, se ha a˜ nadido un divisor a la salida. Tiempo discreto Como nuestro sistema de control est´ a ejecut´ andose en un PC, el PID es discreto, diferente del que se muestra a la derecha (continuo). Sin embargo, el dise˜ no y la velocidad de ejecuci´ on nos permiten asumir que la respuesta ser´ a igual. Tiempo de ejecuci´ on Para poder asumir que el funcionamiento es igual al de un controlador continuo, el tiempo de ejecuci´ on deber´ a ser al menos dos ´ ordenes de magnitud menor que Tm . Grupo 8

Control de velocidad: Labview

43/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Normalizaci´on: formula node Para que el algoritmo de control pueda actuar correctamente la escala de las entradas deber´a ser la misma (generalmente 0 ÷ 1, dicho de otra manera, % con respecto al m´aximo). Fondo de escala Para normalizar las entradas dividiremos la lectura en cada iteraci´on entre el fondo de escala de la variable. Se ha dispuesto un Formula node que normaliza tanto la consigna o variable de referencia como la velocidad angular o variable del sistema.

Grupo 8

Control de velocidad: Labview

44/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Normalizaci´on: consigna o variable de referencia M´ odulo y signo, por separado El usuario controlar´a por separado la velocidad y el sentido de giro, en lugar de disponer de un u ´nico controlador que integre ambas variables. Signo Del bloque de normalizaci´ on obtenemos el m´ odulo del setpoint con signo positivo (spt) y negativo (spf). A partir del selector booleano del panel, mediante un bloque select, haremos llegar una de las dos se˜ nales a la entrada correspondiente del controlador.

Grupo 8

Control de velocidad: Labview

45/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Normalizaci´on: consigna o variable de referencia M´ odulo Lo obtendremos a partir de la velocidad controlada por medio del panel: velocidad en revoluciones por minuto (rpm) de la reductora. Obtendremos el fondo de escala a partir de la velocidad nominal de giro del eje del motor y del ratio de la reductora: consignaPID (k) =

consignarpm (k) consignarpmmax

consignarpmmax = ejerpmmax · ratiored

En nuestro caso  ejerpmmax : 8000 ratiored :

1 53

consignarpmmax ≈ 150



Grupo 8

Control de velocidad: Labview

46/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Controlador Normalizaci´ on

Normalizaci´on: velocidad angular o variable del sistema A partir de la velocidad nominal de giro del eje del motor y teniendo en cuenta el n´ umero de sensores y modo de lectura (con ello Pulsos Por Revoluci´ on), adem´ as de Tm , obtendremos la diferencia te´ orica m´ axima entre dos lecturas del contador:  difcont (k) = lectcont (k) − lectcont (k − 1) difcont (k) variablePID (k) = difcontmax  1 · PPR · Tm (s) difcontmax = ejerpmmax · 60 1 En nuestro caso  8000 · 12 ticks ejerpmmax : 8000 PPR : 3 · 4 difcontmax = · 0, 1 = 160 Tm : 100ms → 0, 1s 60 Tm Hemos comprobado experimentalmente que la lectura m´ axima es 155 y no 160. Esto puede deberse a la ca´ıda de tensi´ on en los transistores, reduciendo la alimentaci´ on del motor ligeramente por debajo de la nominal.

Grupo 8

Control de velocidad: Labview

47/ 71

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Visualizaci´on

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Bucle de baja prioridad Panel

Diagrama de bloques: visualizaci´on (Labview)

Baja prioridad Como las funciones de visualizaci´ on no son cr´ıticas en el control, ´estas se han implementado en un bucle WHILE temporizado (T = Act.graf.) de baja prioridad. Garantizando as´ı que las acciones de lectura, control y actuaci´ on se realizar´ an en tiempo real. Se emplear´ an los ciclos de m´ aquina restantes para las funciones de este apartado. Grupo 8

Control de velocidad: Labview

50/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Bucle de baja prioridad Panel

Visualizaci´on: array de tama˜no fijo

La estructura principal la compone un array bidimensional (2x200) que se inicializa con todos sus registros a cero. En cada iteraci´ on se extraen los elementos 0-199 de cada canal y se forma un nuevo array que contiene un nuevo elemento por l´ınea en la columna 0, y los elementos extra´ıdos en las posiciones 1-200. El array se muestra directamente por medio de un gr´ afico del tipo waveform graph, y el efecto resultante es que todos los elementos se desplazan una posici´ on, desech´ andose el m´ as “antiguo” e incluy´endose la u ´ltima lectura en el hueco que queda libre. Grupo 8

Control de velocidad: Labview

51/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Bucle de baja prioridad Panel

Visualizaci´on: escalado de las variables Las dos l´ıneas del array descrito corresponden a la consigna y la velocidad de giro de la reductora. En ambos casos se ha modificado la escala para adecuarla a formatos que el usuario pueda interpretar directamente.

consignaarray = reductoraarray =

consignarpm · 100 → [%] consignarpmmax

difcontador 1 · 60 · · ratiored → [rpm] PPR Tm (s)

Grupo 8

Control de velocidad: Labview

52/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Bucle de baja prioridad Panel

Visualizaci´on: sentido de giro Visualizaci´ on: variables absolutas Puesto que ambas variables son bipolares y el m´ odulo es el mismo tanto para valores positivos como negativos, se muestran los valores absolutos. De esta forma duplicamos la resoluci´ on efectiva en el gr´afico.

El usuario puede conocer el sentido de giro del motor gracias a un flag gobernado por un comparador > 0 cuya entrada es la lectura escalada. No se indica expl´ıcitamente el signo de la consigna, pues es el propio usuario quien la establece.

Grupo 8

Control de velocidad: Labview

53/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Bucle de baja prioridad Panel

Visualizaci´on: panel

Grupo 8

Control de velocidad: Labview

54/ 71

´Indice 1 Introducci´on 2 Lectura Encoder incremental Recursos hardware: contador Periodo de muestreo y adquisici´ on Overflow / Underflow

3 Actuaci´on Pulse Width Modulation (PWM) Puente-H Recursos hardware: puerto digital Cambio de sentido

4 Control Controlador Normalizaci´ on

5 Visualizaci´on Bucle de baja prioridad Panel

6 Consideraciones finales Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Generaci´on PWM punto por punto Mayor requerimiento en tiempo de ejecuci´ on La elecci´on de implementar la l´ ogica de generaci´ on de la se˜ nal PWM punto por punto supone que la l´ ogica de actuaci´on deber´a realizar al menos una acci´ on cada Tb . Siendo Tb T > Tb ) esta soluci´ on no ser´ıa aplicable. periodo 100 Grupo 8

Control de velocidad: Labview

56/ 71

Introducci´ on Lectura Actuaci´ on Control Visualizaci´ on Consideraciones finales

Consideraciones program´ aticas Problemas durante el desarrollo Propuestas de mejora

Generaci´on PWM punto por punto Mayor rango de actuaci´ on La generaci´ on de la se˜ nal PWM mediante un contador integrado en la tarjeta imposibilita la elecci´ on de todo el rango de duty cycle, disponiendo de (0, 1] o [0, 1) si utilizamos la resoluci´ on m´ axima disponible. Esto se debe a que se emplea un contador binario de n bits, por lo que a su salida tendremos (0, 2n ]. Esa salida se compara con la referencia. Usemos un comparador ≤ o