. Implementación de Controladores. IMPLEMENTACIÓN DE CONTROLADORES..... INTRODUCCIÓN..... PROBLEMAS NUMÉRICOS...... Fuentes de error:...... Longitud de Palabra... 3..3. Redondeo... 3.3. REALIZACIÓN DE UN CONTROLADOR... 5.3.. Sensibilidad Coeficiente-Polo... 7.3.. Implementación Directa... 9.3.3. Realización Bien Acondicionada....3.4. Realización Tipo Escalera...3.3.5. Transformada Delta...8 Clase 8 Implementación de Controladores.doc
u.. Introducción Controlador S q = e [.] R q en variables de estado x = Fx Gy G r u = Cx Dy D r c c [.].. Problemas Numéricos... Fuentes de error: - cuantización de los conversores AD - cuantización de parámetros - redondeo AD 8 bits resolución de,4% AD bits resolución de,% AD bits resolución de,5% AD 4 bits resolución de,6% Clase 8 Implementación de Controladores.doc
La cuantización de los parámetros depende principalmente del período de muestreo.... Longitud de Palabra longitudes típicas: 8, 6, 3. Ejemplo.. Producto escalar a b = [ ] [ ] = [.3] producto escalar ab = [.4] representación con coma flotante con tres decimales: ab = = = [.5] depende del orden en que se hagan las operaciones. Esto se debe analizar con detalle a la hora de elegir un DSP o micro...3. Redondeo Es una no linealidad en el lazo de control Generalmente causa ciclos límites Clase 8 Implementación de Controladores.doc 3
Ejemplo.. Control Proporcional Step Q uantizer.6*.5 (z-)(z-.5) Discrete Zero-Pole G z =,5K ( z )( z,5) [.6] sin cuantiar y con cuantización de,5.8.6.4..8.6.4..8.6.4..8.6.4. 3 4 5 6 3 4 5 6 Clase 8 Implementación de Controladores.doc 4
.3. Efecto Antireset Windup up -y KT d s e K v Actuador u - K/T i /s e s T i u -y KT d s e K v Modelo u Actuador - K/T i /s e s T i u Clase 8 Implementación de Controladores.doc 5
.4. Efecto Bumpless T r - Actuación manual T m s y r PD Manual e T r s Auto u - e s T r Clase 8 Implementación de Controladores.doc 6
.5. Realización de un Controlador generalmente el controlador es de la forma m b bq bmq = = n aq aq n u R q e e [.7].5.. Sensibilidad Coeficiente-Polo n n (, ) = = ( ) ( ) A z a z a z a z p z p [.8] i n n veamos cómo influye una variación en los coeficientes en la posición de los polos. Desarrollamos en serie el polinomio alrededor de cada uno de los polos, A A = A( z δz, ai δai) A( p, ai) δ p z p δa = i z a A z = = z p i z p para que el segundo término sea cero debe cumplirse δ p A δai = a = = z p i z p [.] [.9] Clase 8 Implementación de Controladores.doc 7
δ p A z i [.] A a i z= p δ a A a δ p i z= p = p n i n i ( p pj) j p A [.] z y = ( p pj) δ a i [.3] z= p j si el filtro es estable, las raíces son menores a uno y tiene su máximo valor en n=i. El coeficiente a n es el que más influye. Si hay raíces próximas la sensibilidad crece p p j Clase 8 Implementación de Controladores.doc 8
.5.. Implementación Directa La forma más intuitiva de realizar el controlador es m u = be au i i i i i= i= n [.4] Hay que almacenar los valores anteriores, o sea mn No es la mínima realización No hay que recalcular los estados, simplemente guardarlos. Es muy sensible a errores computacionales Ejemplo.3. PID u = ( )( ) ( q )( pq ) K cq c q p e [.5] ( ) u = p u pu K e K c c e K cc e [.6] p p p Clase 8 Implementación de Controladores.doc 9
Lo mismo ocurre con la FCC x = Fx Gy G r u = Cx Dy D r c c [.7] a a an an x = x e u = b ba b ba x be n n [.8] Clase 8 Implementación de Controladores.doc
Ejemplo.4. PID en Variables de Estado ( ) u = p u pu K e K c c e K cc e [.9] p p p u = au a u b e be b e [.] en variables de estado a a x = x e [.] u = b ba b ba x be [.] Clase 8 Implementación de Controladores.doc
.5.3. Realización Bien Acondicionada si el filtro tiene nr raíces reales y ncraíces complejas se hace zi = λizi βiy γir σ ω ρ v = v y i i i i i ωi σ i ρ i nr nc T = γi i δi i c i= i= u z v Dy D r [.3] Ejemplo.5. PID Bien Acondicionado ( )( ) ( q )( pq ) K cq c q q u e e e p α β γ = = [.4] q pq K p con α = ( c c cc ), β = ( c c cc p ) p z = z αe [.6] z = p z βe γ e [.7] u = z z [.8] K p p γ = Kcc [.5], p Clase 8 Implementación de Controladores.doc
R z.5.4. Realización Tipo Escalera Se toma el regulador de la forma B z = [.9] A z y se lo reescribe α R z = β z α βz αn βnz α n [.3] Clase 8 Implementación de Controladores.doc 3
se puede expresar como estados β x = ( x x ) e [.3] α β x = x x x x 3 α α β x = x x x x [.3] i i i i i i α i α i β x = x x x u = x α e n n n n n αn αn [.34] [.33] Clase 8 Implementación de Controladores.doc 4
u x xi x i - - x n α β z α β z i α i β z n α n e - x x α ( ) α i - α ( xi xi) ( x i xi) ( x x ) i α n n n - Clase 8 Implementación de Controladores.doc 5
Ejemplo.6. PID en Escalera ( ) u = p u pu K e K c c e K cc e [.35] p p p K = p =,5 c =,6 c =,7 [.36] p u =,5u,5u e,3e, 4e [.37] R z B z z z A z z z = =, 3, 4,5,5 R z R z R z [.38],z,8 = = = z,5z,5 z,5z,5,z,5 5z,z,8,z,8 = = =,z,5 5z 5z 5z,z,8,z,8,99,88,z,5,z,5 = = 5z 5z,99,88,88,z,5,83z 45,83 [.39] [.4] [.4] Clase 8 Implementación de Controladores.doc 6
R z = 5z,88,83z x =, x x e [.43],8 x =,5455 x x,4549x =,5455x,43x [.44] [.4] u = x e [.45] Clase 8 Implementación de Controladores.doc 7
.5.5. Transformada Delta Apta para pequeños períodos de muestreo. una mejor forma de calcularlo es, desde el punto de vista numérico, x = x F I x Gy G r c u = Cx Dy D r c [.46] multiplicando por el período de muestreo T, x = x T Fx Gy G r c u = Cx Dy D r c donde TF = F I TG = G δ [.48] introduciendo q T = [.49] se puede reescribir [.47] Clase 8 Implementación de Controladores.doc 8
δ x = Fx Gy Gcr u = Cx Dy D r c [.5] para obtener x se hace δ x = Fx Gy G r c q x = Fx Gy G r T c x = x T Fx Gy G r c x = I TF x TGy TG r c [.5] Clase 8 Implementación de Controladores.doc 9
Ejemplo.7. Filtro de Primer Orden Sea el filtro x = x u [.5] discretizado resulta T T x = e x e u = ax bu [.53] ( δ ) para períodos de muestreo muy pequeños es casi un integrador. T x = ax bu a b δ x = x u T T [.54] se calcula δ x con esta ecuación y luego se vuelve a ( δ ) x = x T x [.55] Clase 8 Implementación de Controladores.doc
Código: % comparación Delta T=.7; n=5; xft=zeros(n,); xde=zeros(n,); e=zeros(n,); a = exp(-t); b= -a; pr=e5; t=:t:(n-)*t; for i=3:n e(i)=; xft(i)=round(a*pr)/pr*xft(i-)round(b*pr)/pr*e(i-); d=round((a-)/t*pr)/pr*xft(i-)round(b/t*pr)/pr*e(i-); xde(i)=xde(i-)t*d; % esta parece igual a la anterior pero es inexacta al truncarse %xde(i)=xde(i-)round((a-)*pr)/pr*xft(i- )round(b*pr)/pr*e(i-); end Clase 8 Implementación de Controladores.doc
.7.6.5.4.3....4.6.8 Clase 8 Implementación de Controladores.doc
Ejemplo.8. PID en Transformada Delta PID en variables de estado a a x = x e [.56] u = b ba b ba x be [.57] u en función de transferencia bq bq b = q a q a e [.58] introduciendo la variable delta ( δ ) ( δ ) b Tδ b Tδ b bt δ bt δ b bt δ b b = = T a T T at T a δ δ δ a a u e e u b δ b δ b = e δ a δ a donde [.6] [.59] Clase 8 Implementación de Controladores.doc 3
( ) b b b b b b = b b = b = T ( a ) a a a = a = T T variables de estado en delta a a δ x = x e [.6] el nuevo estado se calcula T [.6] a a x = x T( δ x) = x T x e u = ( b ba) ( b ba) x be Si tenemos un PI con un período de muestreo muy pequeño y un tiempo de integración muy grande (poco efecto integral), se necesita trabajar con alta precisión. [.63] a. Clase 8 Implementación de Controladores.doc 4
Ejemplo.9. Filtro Cuarto Orden u = b 4 ( q a) 4 e [.64] u = 4au 6a u 4a u a u b e = 3 4 4 3 4 4 = au au au au be 4 3 3 4 4 4 a a a3 a4 x = x e = 4 u b x [.66] [.65] u = en el operador δ, b 4 ( δ T a) 4 e [.67] Clase 8 Implementación de Controladores.doc 5
u 4 b = T a δ T 4 e [.68] δ u = 4a δ u 6a δ u 4a δ u a δ u b δ e [.69] 4 3 3 3 4 4 4 4 con a b a = b = [.7] T T δ u = a δ u a δ u a δ u a δ u b δ e [.7] 4 3 3 4 4 4 3 4 pasando a variables de estado δ x = Fx Ge [.7] a a a 3 a 4 x x e 4 u b = x δ = [.73] Clase 8 Implementación de Controladores.doc 6
para calcular el nuevo estado se hace x x δ x = [.74] T x = x Tδ x [.75] El incremento del estado, δ x se calcula con la ecuación[.7], resultando Ta Ta Ta 3 Ta 4 T T x x = e T T 4 u b = x [.76] Clase 8 Implementación de Controladores.doc 7
Código: % filtro de cuarto orden con retardo y delta % tabla 9.6 de astrom clear all n=; a=-.9998; T=; a=4*a; a=6*a*a; a3=4*a*a*a; a4=a*a*a*a; b=a; x=;x=;x3=;x4=; ur=zeros(n,); %u=f*e e=; for i=:n ur(i)=b*b*b*b*x4; aux=-a*x-a*x-a3*x3-a4*x4e; x4=x3; x3=x; x=x; Clase 8 Implementación de Controladores.doc 8
x=aux; end %delta ap=(a)/t; bp=b/t; a=4*ap; a=6*ap^; a3=4*ap^3; a4=ap^4; x=;x=;x3=;x4=; ud=zeros(n,); for i=:n ud(i)=bp*bp*bp*bp*x4; aux=-a*x-a*x-a3*x3-a4*x4t*e; x4=x4x3; x3=x3x; x=xx; x=xaux; end plot([ur ud]);grid Clase 8 Implementación de Controladores.doc 9
.9.8.7.6.5.4.3.. 4 6 8 x 4 Clase 8 Implementación de Controladores.doc 3
Nombre de archivo: Clase 8 Implementación de Controladores.doc Directorio: C:\Documents and Settings\CELERON\Mis documentos\materias\control Digital\Clases\Clase 8 Implementación Plantilla: C:\Documents and Settings\CELERON\Datos de programa\microsoft\plantillas\normal.dot Título: Controlador de Tiempo Finito (dead beat control) Asunto: Autor: Aníbal Zanini Palabras clave: Comentarios: Fecha de creación: 6/3/3 :46: Cambio número: 8 Guardado el: 7/6/6 3:: Guardado por: PC- Tiempo de edición: 79 minutos Impreso el: 7/6/6 3:: Última impresión completa Número de páginas: 3 Número de palabras: 3.4 (aprox.) Número de caracteres: 7.76 (aprox.)