Upload
unai-martinez
View
11.692
Download
4
Embed Size (px)
DESCRIPTION
Presentación explicativa de la solución planteada (introducción, lectura, actuación, control y consideraciones programáticas y de mejora) por el Grupo 8 al proyecto "Control de velocidad en tiempo real y lazo cerrado de un motor de CC en Labview", desarrollado en la asignatura "Sistemas Digitales en la Medida y Control de Procesos Industriales", impartida en la EUITI de Bilbao (UPV/EHU).
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 EgizabalEUITI de BILBAO - UPV/EHU
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
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)
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
Diagrama de flujo general
Diagrama de bloques general (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
Lectura
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Actuacion
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
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
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
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
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
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
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
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
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
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
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
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
Control
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
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
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
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
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
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
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
Visualizacion
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
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
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
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
IntroduccionLectura
ActuacionControl
VisualizacionConsideraciones finales
Bucle de baja prioridadPanel
Visualizacion: panel
Grupo 8 Control de velocidad: Labview 54/ 71
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/