pwm con labview

71
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

Upload: benito-sanchez

Post on 09-Aug-2015

728 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: PWM Con LabView

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 EgizabalEUITI de BILBAO - UPV/EHU

Page 2: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 3: PWM Con LabView

Introduccion

Objetivos del proyecto

Implementar en Labview 2010 (National Instruments) la logica deadquisicion, control y actuacion para el control de velocidad entiempo real de un motor de corriente continua, y la interfaz deusuario para interactuar con el sistema.

Hardware disponible

PC compatible (Windows XP)

Tarjeta de adquisicion de la serie M (NI 6221)

DC carbon-brush motor IG-22GM (6V)

Two channel Hall effect encoder (SA, SB)

Reductora 153

Puente H de 2A (Digilent PmodHB5TM)

Page 4: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Tiempor Real

Caracterıstica condicionante del diseno

En el ambito del control se denomina tiempo real al funcionamiento temporalmentedeterminista de un sistema. Se aplica a todas aquellas plantas donde, ademas decomo, es crıtico cuando se realicen las acciones.

Podemos decir que se trata de una caracterıstica de ciertos sistemas que condiciona laprogramacion y la especial atencion que se debe prestar a los tiempos relativos deejecucion y de transferencia. No define una estructura, ni algoritmo especıficos, nidefine requerimientos temporales concretos.

Siendo ası, los sistemas en tiempo real dependen de los requerimientos de la planta,ordenandose por algunos autores en duro/firme/suave1 en funcion de los efectos quepuede tener en su funcionamiento un incumplimiento de los lımites temporalesestablecidos. Otros autores2 realizan la ordenacion en funcion de la relacion entre eltiempo de ejecucion y el tiempo de muestreo.

El sistema a implementar sera firme y de baja velocidad relativa..

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

2Speed 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

Page 5: PWM Con LabView

Diagrama de flujo general

Page 6: PWM Con LabView

Diagrama de bloques general (Labview)

Page 7: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 8: PWM Con LabView

Lectura

Page 9: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Encoder incremental: modos de lectura

Grupo 8 Control de velocidad: Labview 9/ 71

Page 10: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Encoder incremental: resolucion

Dependiente del numero de orificios y modo de lectura

grados → 360o

PPR

radianes → 2πPPR

n · modo: pulsos por vuelta (PPR)n: numero de orificios modo: (X)1, (X)2, (X)4

Resolucion disponible

n: 3 modo: (X)4PPR = 3 · 4 = 12

grados → 360o

3·4 = 30o

radianes → 2π3·4 = π

6 rad

Grupo 8 Control de velocidad: Labview 10/ 71

Page 11: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Hardware de lectura: contador

La tarjeta de adquisicion de NI nosofrece la posibilidad de configurar uncontador (en este caso ctr1) comoencoder angular, lo cual coincide conel tipo de sensor del motor a utilizar.

Las entradas correspondientes a losdos sensores disponibles (SA y SB)se conectaran a las entradasasociacadas al contador seleccionadopara esta funcion especıfica: bornes42 y 46, respectivamente.

Grupo 8 Control de velocidad: Labview 11/ 71

Page 12: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Configuracion del contador: sensor Z

Al no disponer de sensor Z(vuelta completa), y como novamos a utilizar las funcionesasociadas, desactivamos el enablee ignoramos el resto deparametros asociados,disponiendo valores constantesindiferentemente.

Grupo 8 Control de velocidad: Labview 12/ 71

Page 13: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Configuracion del contador: modo y parametros de lectura

Indicamos el modo de lectura (X4),de acuerdo con los sensoresdisponibles y con el fin de obtener lamayor resolucion posible (quesupondra un mejor control).

Leeremos el numero de ticks(pulsos). Podrıamos obtenerdirectamente la conversion engrados o radianes, para lo cual sevale del valor de Pulsos PorRevolucion (PPR, en este caso 12).En nuestro caso, no utilizaremos eseparametro en este apartado.

Grupo 8 Control de velocidad: Labview 13/ 71

Page 14: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Referencias teoricas

Teorema de muestreo de Nyquist-Shannon

La reconstruccion exacta de una senal periodica continua en bandabase a partir de sus muestras, es matematicamente posible si lasenal esta limitada en banda y la tasa de muestreo es superior aldoble de su ancho de banda3 4.

Valores de muestreo en aplicaciones de control

En control se utilizan frecuencias que multiplican entre 5 y 15 lafrecuencia de Nyquist-Shannon (Fs).

3http://es.wikipedia.org/wiki/Teorema_de_muestreo_de_Nyquist-Shannon

4Digital Sampling According to Nyquist and Shannon. Thomas L. Lago, Jonkoping University, Sweden.

Grupo 8 Control de velocidad: Labview 14/ 71

Page 15: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Limitacion del encoder

Frecuencia de muestreo teorica

La frecuencia de muestreo teorica, la obtendrıamos analizando elancho de banda de la planta de forma experimental (obteniendoFp) y estableciendo una frecuencia de muestreo (Fm) 10 vecesmayor (5 mas que la referencia de Nyquist-Shannon).

Fs = 2 · Fp Fm = 10 · Fp Fm = 5 · Fs

Resolucion pobre

Debido a la baja resolucion que nos ofrece el encoder, paraperiodos de muestreo menores a 100ms el error en la lectura haceimpracticable el control.

Grupo 8 Control de velocidad: Labview 15/ 71

Page 16: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Periodo de muestreo y adquisicion

En el bucle while de mayorprioridad estableceremos unperiodo entre iteraciones(100ms), escogiendo el relojadecuado (1kHz).

Adquisicion

Se ha dispuesto un registro que almacenara en cada iteracion una unicamuestra (el valor del contador -ticks- en formato DBL). De esta formadispondremos del valor actual y el valor de la iteracion anterior,obteniendo la diferencia mediante el resto de ambos valores.

El sentido de giro definira si el contador incrementara o decrementara, yla velocidad en que medida lo hara.

Grupo 8 Control de velocidad: Labview 16/ 71

Page 17: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Riesgos por overflow / underflow

Inestabilidad por errores de lectura

El contador de la tarjeta de adquisicion no dispone de logica dedeteccion de overflow / underflow, por lo que los errores de lecturaprovocados por estos eventos afectaran negativamente al control,pudiendo volver inestable el sistema al entrar en oscilacion.

Deteccion

Deberemos identificar cuando se da cualquiera de los dos eventos yrealizar los ajustes necesarios en el algoritmo para minimixar en loposible el efecto de estos.

Grupo 8 Control de velocidad: Labview 17/ 71

Page 18: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Identificacion de los eventos

sent giro 1 sent giro 0act pre act pre

50 0 206 0100 50 156 206150 100 106 156200 150 56 106250 200 6 5644 250 212 694 44 162 212

144 94 112 162194 144 62 112244 194 12 6238 244 218 12

Ejemplo para un contador de 8 bits.

En sentido de giro positivo (1), elvalor actual solo es menor al valorprevio cuando se da overflow.

En sentido de giro negativo (0), a lainversa, el valor actual solo es mayorque el valor previo cuando se daunderflow.

Arranque en sentido negativoSe da un error de lectura en la primera iteracion siempreque el sistema se inicia con sent giro negativo, queimpide el control del mismo

Grupo 8 Control de velocidad: Labview 18/ 71

Page 19: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Solucion propuesta

Deteccion y correccion

Se propone una solucion de identificacion de eventos de tipooverflow / underflow y correccion en la interpretacion de laslecturas obtenidas, con el objetivo de omitir errores y no perderinformacion.

Tamano del contador

Como se expondra a continuacion, el unico parametro requeridosera el tamano en bits del contador, para deducir el valor maximoque podra expresar (2n − 1), a fin de aplicar las correccionesadecuadas.

Grupo 8 Control de velocidad: Labview 19/ 71

Page 20: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Diagrama de flujo general

Logica de deteccion

Con el sentido de giro ordenado y los valores actual y previo del contador,se implementan dos comparadores (= , <) para obtener las relacionesact = pre , act < pre y act > pre. Mediante una puerta AND, unapuerta NOR y dos puertas OR, se obtiene como resultado una senal dedos bits que codifica las cuatro condiciones de funcionamiento delcontador: correcto, erroneo por overflow, erroneo por underflow y parado.

Grupo 8 Control de velocidad: Labview 20/ 71

Page 21: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / 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 esta parado, se sustituye la lectura por unaconstante (0).

Grupo 8 Control de velocidad: Labview 21/ 71

Page 22: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Cambio de sentido en regimen permanente

Conflicto con el detector overflow / underflow

Como Fm = 10 · Fp, cuando el motor se encuentra girando en un sentidoy se ordena un cambio sin variar la consigna de velocidad, durante unperiodo transitorio (que equivale a al menos 10 iteraciones) el motorsigue girando en el mismo sentido (reduciendo la velocidad).

La logica de deteccion implementada identifica estos estados comoerroneos, corrigiendo indebidamente las lectura, e induciendo un error enla lectura, que a su vez puede conducir a la inestabilidad del sistema.

Solucion propuesta

Desactivaremos la logica de deteccion y correcion overflow/underflowcuando se de una orden de cambio de sentido, y volveremos a activaracuando el motor vuelva a entrar en regimen permanente.

Grupo 8 Control de velocidad: Labview 22/ 71

Page 23: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Cambio de sentido en regimen permanente

Grupo 8 Control de velocidad: Labview 23/ 71

Page 24: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Iteracion k

La estructura CASE esta en TRUE.

La logica overflow/underflow esta activa.

sent giroact 6= sent giropre → Se ha ordenado un cambio de sentido.

Se DESECHA la correccion y se toma la lectura en bruto.

Se registra un FALSE para la siguiente iteracion del CASE.

Grupo 8 Control de velocidad: Labview 24/ 71

Page 25: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

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

La estructura CASE esta en FALSE.

La logica overflow/underflow NO esta 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 iteracion del CASE.

Grupo 8 Control de velocidad: Labview 25/ 71

Page 26: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Encoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

Iteracion k+n

La estructura CASE esta en FALSE.

La logica overflow/underflow NO esta 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 iteracion del CASE.

Grupo 8 Control de velocidad: Labview 26/ 71

Page 27: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 28: PWM Con LabView

Actuacion

Page 29: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Balance energetico: DC vs PWM

∫ T

0

Vn

2=

∫ T/2

0

Vn +

∫ T

T/2

0

∫ T

0

3

4· Vn =

∫ 34 ·T

0

Vn +

∫ T

34 ·T

0

Grupo 8 Control de velocidad: Labview 29/ 71

Page 30: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

PWM: resolucion

Resolucion PWM

Resolucion

%Vn → 1

PPC · 100

∆V → VnPPC

PPC =TPWM

Tb

Por ejemplo

PPC : 4bitsTB : 1msVn : 10v

%Vn → 124 · 100 = 6, 25%

∆V → 1024 = 0, 625v

Grupo 8 Control de velocidad: Labview 30/ 71

Page 31: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

PWM: frecuencia

FPWM , Fb y Fp

La planta no debera detectar las variaciones en la senal dentro deun periodo TPWM , no debera detenerse en las fracciones en queeste a nivel bajo, sino que debera tomar el periodo completo en suconjunto.

FPWM > 2 · Fp Fb > PPC · 2 · Fp

El periodo completo como referencia

No es suficiente con garantizar Fb > 2 · Fp y deberemos prestaratencion a la hora de implementar la frecuencia base de generacionde la senal PWM.

Grupo 8 Control de velocidad: Labview 31/ 71

Page 32: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Puente-H: ganancia de potencia mediante transistores

Grupo 8 Control de velocidad: Labview 32/ 71

Page 33: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Puente-H: cuatro estados de funcionamiento

Grupo 8 Control de velocidad: Labview 33/ 71

Page 34: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Puente-H: glitch tipo I

Cuando EN = 1, en la transicion de DIR = 0 a DIR = 1, debido alretardo de la puerta NOT salida de las puertas AND no seactualiza al mismo tiempo, provocando que durante unos instantestodos los transistores se encuentren en conduccion. Esto conllevael cortocircuito de todos ellos, con el consiguiente riesgo de que sequemen.

Grupo 8 Control de velocidad: Labview 34/ 71

Page 35: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Puente-H: glitch tipo II

Cuando EN = 1, en la transicion de DIR = 1 a DIR = 0, debido alretardo de la puerta NOT salida de las puertas AND no seactualiza al mismo tiempo, provocando que durante unos instantestodos los transistores se encuentren en corte. Esto conlleva que nohaya diferencia de potencial en los bornes del motor, a pesar deque EN = 1.

Grupo 8 Control de velocidad: Labview 35/ 71

Page 36: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Canal fısico y Tb

Se configuran como salida dos lıneas deun puerto digital de la tarjeta DAQ(port0/line0:1, bornes 52 y 17respectivamente), correspondientes a lassenales EN y DIR, a generar segun losresultados de la logica de control.

El valor real TPWM dependera de los erroresinducidos por las limitaciones de computo:

TPWM 6=Tm

PWMPTs

Como el encoder nos impide establecerTm = 10 ·Tp, no podemos utilizar TPWM = Tm,lo cual generarıa un ciclo completo PWM porperiodo de muestreo. En su lugar, establecemosla constante PWMPTs que indica el no deciclos completos PWM que se generaran en Tm.

Tb(µs) =Tm(ms)PWMPTs

PPC· 1000

Grupo 8 Control de velocidad: Labview 36/ 71

Page 37: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Generacion PWM punto a punto

clk pwm → Tclk = Tbmax pwm : PPC − 1

ref pwm : duty cycle · PPC

Generacion senal EN

En un bucle de alta prioridad con un periodo de iteracion Tb seimplementa un contador de 1 a PPC y se compara la salida con laconstante definida por el duty-cycle5 (0÷ 1 , 0÷ 100%, 0÷ PPC ).Dicha constante solo se comprueba al inicio de cada periodo PWM.

5 THIGHTPWM

Grupo 8 Control de velocidad: Labview 37/ 71

Page 38: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Cambio de sentido: anulacion de glitches

Solucion propuesta

Para impedir que los glitches afecten al funcionamiento y evitar elriesgo de quemar el circuito, impediremos que EN este activacuando se cambie el estado de DIR.

Deteccion de cambio

Se registra el signo del la senal de control y secomparan al inicio de cada periodo PWM elestado actual y el de la iteracion anterior.

Grupo 8 Control de velocidad: Labview 38/ 71

Page 39: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Pulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

Cambio de sentido: forzado de EN durante la transicion

Cuando se detecta un cambio en laorden de sentido, se fuerza la escrituradel valor FALSE en la lınea EN,escribiendo al mismo tiempo el valorDIR de la iteracion anterior (invariable).

En la siguiente iteracion se vuelve aforzar la escritura del valor FALSE en lalınea EN y se escribe al mismo tiempoel nuevo valor de DIR. Se transfiere alregistro el nuevo estado de DIR.

Si no se han dado mas cambios, el bucle vuelve a TRUE y seejecuta un nuevo periodo PWM.

Grupo 8 Control de velocidad: Labview 39/ 71

Page 40: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 41: PWM Con LabView

Control

Page 42: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Controlador: PID

Controlador

Mecanismo de control por realimentacion que calcula la desviacion o error entreun valor medido y el valor que se quiere obtener, para aplicar una accioncorrectora que ajuste el proceso6. Este se compone de un bloque que obtiene ladiferencia entre ambas entradas (debidamente normalizadas), y un algoritmoque modifica la senal resultante (denominada de error).

Algoritmo

El algoritmo utilizado, cuya denominacion es autoexplicativa, es el ProporcionalIntegral Derivativo (PID). Realiza las tres acciones por separado sobre la senalde error y las pondera segun las constantes dadas: Kp, Ki y Kd .

6http://es.wikipedia.org/wiki/Proporcional_integral_derivativo

Grupo 8 Control de velocidad: Labview 42/ 71

Page 43: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Controlador: PID

Un bloque integra el calculo de la senal de error a partir de lasvariables de referencia y sistema, y aplica el algoritmo con lasconstantes PID gains. Puesto que el rango de la salida es de 100y la logica de actuacion espera un rango cien veces menor, se haanadido un divisor a la salida.

Tiempo discreto

Como nuestro sistema de control estaejecutandose en un PC, el PID es discreto,diferente del que se muestra a la derecha(continuo). Sin embargo, el diseno y lavelocidad de ejecucion nos permiten asumirque la respuesta sera igual.

Tiempo de ejecucion

Para poder asumir que el funcionamiento es igual al de un controlador continuo, eltiempo de ejecucion debera ser al menos dos ordenes de magnitud menor que Tm.

Grupo 8 Control de velocidad: Labview 43/ 71

Page 44: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Normalizacion: formula node

Para que el algoritmo de control pueda actuar correctamente la escala delas entradas debera ser la misma (generalmente 0÷ 1, dicho de otramanera, % con respecto al maximo).

Fondo de escala

Para normalizar las entradas dividiremos la lectura en cada iteracionentre el fondo de escala de la variable.

Se ha dispuesto un Formula node quenormaliza tanto la consigna o variable dereferencia como la velocidad angular ovariable del sistema.

Grupo 8 Control de velocidad: Labview 44/ 71

Page 45: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Normalizacion: consigna o variable de referencia

Modulo y signo, por separado

El usuario controlara por separado lavelocidad y el sentido de giro, en lugarde disponer de un unico controladorque integre ambas variables.

Signo

Del bloque de normalizacion obtenemos el modulo del setpoint con signopositivo (spt) y negativo (spf). A partir del selector booleano del panel,mediante un bloque select, haremos llegar una de las dos senales a laentrada correspondiente del controlador.

Grupo 8 Control de velocidad: Labview 45/ 71

Page 46: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Normalizacion: consigna o variable de referencia

Modulo

Lo obtendremos a partir de la velocidad controlada por medio del panel:velocidad en revoluciones por minuto (rpm) de la reductora. Obtendremos elfondo de escala a partir de la velocidad nominal de giro del eje del motor y delratio de la reductora:

consignaPID(k) =consignarpm(k)

consignarpmmax

consignarpmmax = ejerpmmax · ratiored

En nuestro caso

ejerpmmax : 8000

ratiored : 153

consignarpmmax ≈ 150

Grupo 8 Control de velocidad: Labview 46/ 71

Page 47: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

ControladorNormalizacion

Normalizacion: velocidad angular o variable del sistema

A partir de la velocidad nominal de giro del eje del motor y teniendo en cuentael numero de sensores y modo de lectura (con ello Pulsos Por Revolucion),ademas de Tm, obtendremos la diferencia teorica maxima entre dos lecturas delcontador:

variablePID(k) =difcont(k)

difcontmax

difcont(k) = lectcont(k)− lectcont(k − 1)

difcontmax = ejerpmmax · 160· PPR

1· Tm(s)

En nuestro caso

ejerpmmax : 8000 PPR : 3 · 4Tm : 100ms → 0, 1s

}difcontmax =

8000 · 12

60· 0, 1 = 160

ticks

Tm

Hemos comprobado experimentalmente que la lectura maxima es 155 y no 160. Esto puede deberse a la caıda detension en los transistores, reduciendo la alimentacion del motor ligeramente por debajo de la nominal.

Grupo 8 Control de velocidad: Labview 47/ 71

Page 48: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 49: PWM Con LabView

Visualizacion

Page 50: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Bucle de baja prioridadPanel

Diagrama de bloques: visualizacion (Labview)

Baja prioridad

Como las funciones de visualizacion no son crıticas en el control, estas se hanimplementado en un bucle WHILE temporizado (T = Act.graf.) de bajaprioridad. Garantizando ası que las acciones de lectura, control y actuacion serealizaran en tiempo real. Se emplearan los ciclos de maquina restantes para lasfunciones de este apartado.

Grupo 8 Control de velocidad: Labview 50/ 71

Page 51: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Bucle de baja prioridadPanel

Visualizacion: array de tamano fijo

La estructura principal la compone un array bidimensional (2x200) que seinicializa con todos sus registros a cero. En cada iteracion se extraen loselementos 0-199 de cada canal y se forma un nuevo array que contiene unnuevo elemento por lınea en la columna 0, y los elementos extraıdos en lasposiciones 1-200.

El array se muestra directamente por medio de un grafico del tipo waveform

graph, y el efecto resultante es que todos los elementos se desplazan una

posicion, desechandose el mas “antiguo” e incluyendose la ultima lectura en el

hueco que queda libre.

Grupo 8 Control de velocidad: Labview 51/ 71

Page 52: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Bucle de baja prioridadPanel

Visualizacion: escalado de las variables

Las dos lıneas del array descrito correspondena la consigna y la velocidad de giro de lareductora. En ambos casos se ha modificado laescala para adecuarla a formatos que el usuariopueda interpretar directamente.

consignaarray =consignarpm

consignarpmmax

· 100→ [%]

reductoraarray =difcontador

PPR· 60 · 1

Tm(s)· ratiored → [rpm]

Grupo 8 Control de velocidad: Labview 52/ 71

Page 53: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Bucle de baja prioridadPanel

Visualizacion: sentido de giro

Visualizacion: variables absolutas

Puesto que ambas variables son bipolares y el modulo es el mismo tantopara valores positivos como negativos, se muestran los valores absolutos.De esta forma duplicamos la resolucion efectiva en el grafico.

El usuario puede conocer el sentido de giro delmotor gracias a un flag gobernado por uncomparador > 0 cuya entrada es la lecturaescalada. No se indica explıcitamente el signode la consigna, pues es el propio usuario quienla establece.

Grupo 8 Control de velocidad: Labview 53/ 71

Page 54: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Bucle de baja prioridadPanel

Visualizacion: panel

Grupo 8 Control de velocidad: Labview 54/ 71

Page 55: PWM Con LabView

Indice

1 Introduccion

2 LecturaEncoder incrementalRecursos hardware: contadorPeriodo de muestreo y adquisicionOverflow / Underflow

3 ActuacionPulse Width Modulation (PWM)Puente-HRecursos hardware: puerto digitalCambio de sentido

4 ControlControladorNormalizacion

5 VisualizacionBucle de baja prioridadPanel

6 Consideraciones finalesConsideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Page 56: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Generacion PWM punto por punto

Mayor requerimiento en tiempo de ejecucion

La eleccion de implementar la logica de generacion de la senalPWM punto por punto supone que la logica de actuacion deberarealizar al menos una accion cada Tb. Siendo Tb << Tm, estosupone cargar mas al software que generando la senal mediante uncontador de la tarjeta de adquisicion.

En este caso no es un problema, pues las especificaciones delhardware sobre el que se ejecuta la logica de control son muysuperiores a las requeridas por el sistema. Sin embargo, conrecursos mas limitados (con una senal ejecucion maxima deperiodo Tm

100 > T > Tb) esta solucion no serıa aplicable.

Grupo 8 Control de velocidad: Labview 56/ 71

Page 57: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Generacion PWM punto por punto

Mayor rango de actuacion

La generacion de la senal PWM mediante un contador integrado en la tarjetaimposibilita la eleccion de todo el rango de duty cycle, disponiendo de (0, 1] o [0, 1) siutilizamos la resolucion maxima disponible. Esto se debe a que se emplea un contadorbinario de n bits, por lo que a su salida tendremos (0, 2n]. Esa salida se compara conla referencia. Usemos un comparador ≤ o <, uno de los lımites no dara la respuestaesperada. Analizamos tanto el lımite superior como el inferior para un contador y uncomparador de 3 bits:

contador 0 1 2 3 4 5 6 7referencia 0 0 0 0 7 7 7 7

≤ 1 0 0 0 1 1 1 1< 0 0 0 0 1 1 1 0

En nuestro caso al disponer de una cuenta (1,PPC) y un comparador ≤, unareferencia de valor cero genera un valor logico bajo, y una referencia de valor PPCgeneral un valor logico alto.

Grupo 8 Control de velocidad: Labview 57/ 71

Page 58: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Generacion PWM punto por punto

Actualizacion simultanea

Puesto que escribimos los valores de EN y DIR al mismo tiempo, yactuamos en ambas lıneas en cada iteracion, podemos reducir al mınimoel tiempo requerido para el cambio de sentido (la deteccion y unaadicional). En caso de usar el contador integrado en la tarjeta,deberıamos detener la generacion para realizar el cambio, y volver ainiciar la tarea. Proceso que requerirıa mas tiempo.

Otras codificaciones

La caracterıstica anterior permite reutilizar el sistema y alterandounicamente el proceso de comparacion del contador con PPC usar otrosalgoritmos, como por ejemplo ∆Σ7.

7http://en.wikipedia.org/wiki/Delta-sigma_modulation

Grupo 8 Control de velocidad: Labview 58/ 71

Page 59: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Tiempo de ejecucion

Fuera de rango

Obteniendo los tiempos de ejecucion de los bucles temporizadosdesde la adquisicion hasta la generacion de la senal PWM con unreloj de 1ms de periodo, la diferencia indicada es cero.

Aunque no conocemos el tiempo de ejecucion concreto, sı podemosgarantizar que es al menos dos ordenes de magnitud menor que elperiodo de muestreo, cumpliendose la llamada regla de causalidad.

Grupo 8 Control de velocidad: Labview 59/ 71

Page 60: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Bornes +5v de la tarjeta

Para alimentar el puente H y ası poder amplificar las senales de lossensores mediante los Schmitt trigger estos requieren una tension2, 5÷ 5v . Comprobamos con un voltımetro que los bornes (8, 14)de la tarjeta de adquisicion correspondientes a una tensionconstante de +5v no daban una salida con potencial diferente delos bornes DGND (4, 7, 9, 12, 13, 15, 18, 35, 36, 3953, 50, 44).

Lınea digital adicional

Se ha utilizado una lınea (linea2, borne 49) del mismo puertodigital y se ha fijado manualmente a un valor logico alto.

Grupo 8 Control de velocidad: Labview 60/ 71

Page 61: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Anclado de EN = 1

Cuando por un error en el funcionamiento el sistema de control (o aquelsobre el que se ejecuta) se bloquea y se cierra directamente (sin finalizarlos bucles), en funcion de cual haya sido el ultimo valor escrito en lasalida EN, esta puede quedar activa, haciendo girar el motor a suvelocidad nominal.

Cierre secuencial

Volviendo a actuar sobre la lınea correspondiente, podemos desactivarla,deteniendo el motor. La forma mas rapida consiste en volver a ejecutar elprograma, estableciendo una consigna de valor cero. En la primeraiteracion la logica de lectura escribira un valor logico bajo, deteniendo elmotor.

Grupo 8 Control de velocidad: Labview 61/ 71

Page 62: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Uso de variables compartidas

Para transferir la salida del PID (duty cycle) a la entrada de la logica deactuacion, se ha utilizado una variable compartida. Desconocemos lassecuencias internas de Labview que realizan la actualizacion de dichavariable y, aun conociendolas, no podemos interceder.

Tiempo de transferencia

Para poder garantizar programaticamente que el sistema trabaja enTiempo Real, deberemos calcular el tiempo que tardan en transferirse loscambios efectuados sobre dicha variable. Este, junto con el tiempo deejecucion del bucle de lectura, nos permitira calcular el tiempo deejecucion del algoritmo.

Grupo 8 Control de velocidad: Labview 62/ 71

Page 63: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Separacion de la lectura y el control

La logica de lectura y la de control estan en un mismo bucle. La de actuacion seencuentra en otro diferente. Dadas las caracterısticas de nuestro sistema, la prioridadde ejecucion de mayor a menor deberıa ser: lectura (adquisicion del valor delcontador), actuacion (modificaciones en EN y DIR), control (ejecucion del algoritmo).

La lectura siempre debe tener la mayor prioridad, pues del determinismo en la mismadepende la consecucion del control en Tiempo Real. Inmediatamente despues deberıagarantizarse la actualizacion determinista de las salidas. La ejecucion del algoritmo decontrol no se comunica con la planta.

Division en tres bucles

Para respetar los requerimientos de prioridad del sistema (desde un punto de vistaconceptual), podemos separar la lectura y el control en dos bucles, manteniendo elprimero la maxima prioridad, y reduciendo la del segundo por debajo del bucle deactuacion.

Grupo 8 Control de velocidad: Labview 63/ 71

Page 64: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Determinar el tiempo de ejecucion

Estimacion estadıstica

Puesto que el controlador implementado es del tipo multi-rate, alfuncionar con dos frecuencias diferentes (Fm y Fb), y estar estasligeramente desincronizadas, ademas de utilizar una variable compartida,deberemos realizar un analisis preciso para determinar el tiempo deejecucion del algoritmo de control (desde que se realiza una lectura hastaque se actualiza la salida como causa de la entrada).

Labview provee la herramienta Real Time Execution Trace Toolkit quenos permitira trazar la ejecucion de los diferentes bucles, permitiendonosseguir el progreso de una variacion en la entrada. Experimentalmentepodremos medir el rango de tiempos y estadısticamente determinar elmas probable.

Grupo 8 Control de velocidad: Labview 64/ 71

Page 65: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Determinar el tiempo de ejecucion

Omitiendo el retardo de la variable compartida

Asumiendo que no hay retardo en la transferencia de la variable, el valor delduty cycle estara disponible a la entrada del bucle de generacion PWM tanpronto como el PID actualiza su salida8.

En la mejor situacion, el ciclo PWM habra terminado en el instante anterior, yla transferencia sera instantanea, siendo el tiempo de ejecucion el del bucle delectura y control.

En el peor caso, el ciclo PWM habra empezado en el instante anterior, por loque deberemos esperar TPWM . A lo que deberemos sumar el tiempo deejecucion del bucle de lectura y control.

8Se ha considerado la escritura del primer punto como referencia. Podrıa tomarse el ultimo punto del ciclo

completo, debiendo sumar TPWM a los valores indicados

Grupo 8 Control de velocidad: Labview 65/ 71

Page 66: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Determinar el tiempo de ejecucion

Determinar el retardo de la variable compartida

Introduciremos el instante de ejecucion dado por el bucle delectura y control, previa modificacion del formato, en la variablecompartida. En el bucle de actuacion guardaremos el valor leıdo,junto con el instante del propio bucle.

De entre los datos registrados de la variable cada valor se repetira≈ Tm

TPWMveces9. Cuando se detecte un cambio, el tiempo de

transferencia se obtendra restando los valores de las dos lıneas enla columna del nuevo valor.

9La variacion dependera de la diferencia entre los tiempos de la transferencia de dos iteraciones consecutivas.

Grupo 8 Control de velocidad: Labview 66/ 71

Page 67: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Zona muerta del motor

El motor requiere una alimentacion mınima para superar lasperdidas en el hierro y en el cobre, por lo que hay un rango detensiones (por consiguiente de duty-cycle) en las que el motor,pese a estar alimentado, no gira.

Modelizacion de la zona muerta

Para evitar un consumo ineficiente de energıa (alimentar el motor yque este parado), podemos modelar la zona muerta e impedir quese generen valores de duty cycle mayores que cero y por debajo delumbral obtenido experimentalmente.

Grupo 8 Control de velocidad: Labview 67/ 71

Page 68: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Ajuste (tunning) del controlador

La respuesta del sistema dependera de la funcion de transferencia de la plantay de la del PID. Esta segunda, pese a tener una estructura fija, varıa segun losparametros Kp, Ki y Kd . Como el objetivo de este proyecto era disenar elsistema de control, y no que este fuera optimo, se ha realizado un ajustebasico, obteniendo un controlador principalmente proporcional, con un pequenofactor integrador para anular el error en regimen permanente, y sin funcionderivativa (un mal ajuste puede dar problemas en regimen transitorio,conduciendo a inestabilidad)

Ajuste optimo

Para lograr un control optimo (mınimo tiempo de subida y establecimiento,mınimo rebose, error nulo en regimen permanente...) podemos ajustar elcontrolador a partir de pruebas experimentales en lazo abierto del sistema (larespuesta temporal a una entrada escalon, por ejemplo), o utilizar algoritmositerativos que a partir del modelo obtengan valores de referencia para las tresconstantes.

Grupo 8 Control de velocidad: Labview 68/ 71

Page 69: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Sustitucion del encoder

Relacion entre las rpm y los pulsos de los sensores

La resolucion maxima disponible es de 12 pulsos por vuelta, y teniendoen cuenta la velocidad nominal, con una reductora de ratio 1

53 la relacionrpmredmax

ticksmaxcuando Tm = 100ms es 150

155 = 0, 9677 rpmred

tick . Lo que ofrece unaresolucion a la salida del 0, 6451%. Si muestreamos con un periodo de10ms la relacion asciende a 150

15 = 10 rpmred

tick → 6, 66%.

Para no perder resolucion en el cambio de unidades, es recomendablemantener el ratio lo mas bajo posible. Para una resolucion del 1% con lareductora 1

53 requerirıamos un encoder de aproximadamente15015 · 12 = 120 pulsos por revolucion (PPR). Con dos sensores y modo de

lectura X4, se requerirıa un disco de 30 aspas. Este cambio nos permitirıarealizar un control mejor respetando los requerimientos temporales de laplanta.

Grupo 8 Control de velocidad: Labview 69/ 71

Page 70: PWM Con LabView

IntroduccionLectura

ActuacionControl

VisualizacionConsideraciones finales

Consideraciones programaticasProblemas durante el desarrolloPropuestas de mejora

Optimizacion del controlador

Estudio del tamano de palabra

Con el fin de optimizar el uso de recursos, y ası disminuir el tiempo deejecucion, podemos realizar un estudio sobre la influencia del tamano depalabra (word-length10). Un tamano de palabra que mantenga compromiso conel rendimiento, reducira la logica necesaria para realizar las operaciones delalgoritmo, ademas de reducir el uso de memoria.

Estructura interna del PID

Con el fin de optimizar la respuesta para poder ejecutar el lazo de control en unsistema digital con recursos de computo crıticos (sistema relativamente rapido),podemos analizar las diferentes transformadas que permiten trabajar en elplano Z11 (Fordward difference o Euler, Backward difference, Tustin o bilinear)ası como las estructuras y la forma de implementacion (estandar, serie, directa,cascada, paralelo).

10Optimal Realizations of Floating-Point Implemented Digital Controllers with Finite Word Length

Considerations. Jun Wu, Sheng Chen, James F. Whidborne, Jian Chu.11

http://en.wikipedia.org/wiki/Z-transform

Grupo 8 Control de velocidad: Labview 70/ 71

Page 71: PWM Con LabView

Licencia

Usted es libre de:

copiar, distribuir y comunicar publicamente la obra

remezclar — transformar la obra

hacer un uso comercial de esta obra

Bajo las condiciones siguientes:

reconocimiento — debe reconocer los creditos de la obra haciendoreferencia a este documento, a sus autores, a la EUITI de Bilbao y a laUPV/EHU (pero no de una manera que sugiera que tiene el apoyo de losautores o apoyan el uso que hace de su obra).

http://creativecommons.org/licenses/by/3.0/es/