control proporcional- integral- derivativo

10
Control Proporcional- Integral- Derivativo PID es la sigla para Control Proporcional-Integral- Derivativo. En esta sección, exploraremos cada uno de los métodos y cómo trabajan juntos para controlar eficientemente un sistema. Introducción al Control PID Un objetivo del control de proceso es mantener constante un sistema. En el ejercicio anterior, usamos varios medios cíclicos para mantener el incubador a la temperatura deseada. Usando banda diferencial, creamos un rango en el que la temperatura puede variar cíclicamente alrededor del valor deseado. En el Experimento 4, vimos como usar modulación por ancho de pulso (PWM) para agregar energía a nuestro sistema con ciclos de trabajo entre 0% (completamente apagado) y 100% (completamente encendido). Mientras que estos tipos de control tienen sus ventajas y desventajas, el control PID nos permite controlar perfectamente un sistema, aunque puede resultar un poco más complejo de implementar y ajustar para un óptimo rendimiento. Mantener un proceso constante involucra agregar continuamente la misma cantidad de energía que pierde el proceso. Si las pérdidas del sistema fueran constantes, el control del proceso sería tan simple como aplicar un nivel continuo de excitación. Sin embargo, los factores que afectan un proceso siempre cambian. Cambian en cantidades y a velocidades impredecibles. Agregado a esto, deben entenderse las demoras en la reacción del sistema. Un cambio instantáneo en las pérdidas, debido a una perturbación, no se notará inmediatamente y tampoco lo hará un cambio en la excitación. El control del proceso puede ser considerado como un arte, además de una ciencia. El primer paso para entender el control PID es que cada sistema tiene ganancias y pérdidas de energía. Esistema = Ein–Eout Se dice que un sistema está en equilibrio cuando la energía ganada (in) equivale a la perdida (out). Equilibrio: Ein = Eout Las condiciones o las perturbaciones de nuestro sistema pueden cambiar muy rápidamente, como cuando una ráfaga de viento sopla repentinamente sobre la incubadora, o muy lentamente como cuando el calentador se deteriora por el paso del tiempo. El control PID puede medir y tomar acción observando: 1) Qué tan lejos del punto de equilibro deseado está el sistema, o la magnitud del error. 2) El tiempo transcurrido desde que se presentó el error. 3) Qué tan rápido ocurre el error en el sistema, o la velocidad de cambio.

Upload: others

Post on 03-Jan-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control Proporcional- Integral- Derivativo

Control Proporcional- Integral- Derivativo

PID es la sigla para Control Proporcional-Integral- Derivativo. En esta sección, exploraremos cada uno de los métodos y cómo trabajan juntos para controlar eficientemente un sistema.

Introducción al Control PIDUn objetivo del control de proceso es mantener constante un sistema. En el

ejercicio anterior, usamos varios medios cíclicos para mantener el incubador a la

temperatura deseada. Usando banda diferencial, creamos un rango en el que la

temperatura puede variar cíclicamente alrededor del valor deseado. En el

Experimento 4, vimos como usar modulación por ancho de pulso (PWM) para

agregar energía a nuestro sistema con ciclos de trabajo entre 0% (completamente

apagado) y 100% (completamente encendido). Mientras que estos tipos de control

tienen sus ventajas y desventajas, el control PID nos permite controlar

perfectamente un sistema, aunque puede resultar un poco más complejo de

implementar y ajustar para un óptimo rendimiento.

Mantener un proceso constante involucra agregar continuamente la misma

cantidad de energía que pierde el proceso. Si las pérdidas del sistema fueran

constantes, el control del proceso sería tan simple como aplicar un nivel continuo

de excitación. Sin embargo, los factores que afectan un proceso siempre cambian.

Cambian en cantidades y a velocidades impredecibles. Agregado a esto, deben

entenderse las demoras en la reacción del sistema. Un cambio instantáneo en las

pérdidas, debido a una perturbación, no se notará inmediatamente y tampoco lo

hará un cambio en la excitación. El control del proceso puede ser considerado

como un arte, además de una ciencia.

El primer paso para entender el control PID es que cada sistema tiene ganancias y

pérdidas de energía.

Esistema = Ein–Eout

Se dice que un sistema está en equilibrio cuando la energía ganada (in) equivale a la perdida (out).

Equilibrio: Ein = Eout

Las condiciones o las perturbaciones de nuestro sistema pueden cambiar muy rápidamente, como cuando una ráfaga de viento sopla repentinamente sobre la incubadora, o muy lentamente como cuando el calentador se deteriora por el paso del tiempo. El control PID puede medir y tomar acción observando:1) Qué tan lejos del punto de equilibro deseado está el sistema, o la magnitud del error.2) El tiempo transcurrido desde que se presentó el error.3) Qué tan rápido ocurre el error en el sistema, o la velocidad de cambio.

Page 2: Control Proporcional- Integral- Derivativo

La suma de estas tres evaluaciones conforma la excitación de salida que intentará mantener el sistema en equilibrio. La Figura 6.1 ilustra la evaluación y control de un sistema con control PID.

La fórmula clásica de control PID para calcular la salida del controlador es esta:

En esta sección, la incubadora será controlada usando control PID, resolviendo la ecuación correspondiente.

Page 3: Control Proporcional- Integral- Derivativo

Construcción del Circuito

Usaremos el mismo circuito del Ejercicio 5 (Figura 5.2), pero conectará manualmente el ventilador a la fuente de alimentación sin regular o a los 5V cuando sea requerido para generar las perturbaciones.A continuación se transcribe el programa completo para esta sección. Cambiaremos los valores de Ajuste del Control PID para verificar las distintas áreas de control.

DIAGRAMA DE FLUJO DEL PROCESO PRINCIPAL

Page 4: Control Proporcional- Integral- Derivativo

En este caso como usaremos el compilador bascom omitiremos la sección del diagrama de flujo que dice “CONFIGURA SPL”.

**************************DECLARA VARIABLES******************

Page 5: Control Proporcional- Integral- Derivativo

Dim Datain As Byte, Dim Temp As Word, Dim Signo As Word,

Dim Exitacion As Word

Dim Err As Word, Dim P As Word, Dim I As Word, Dim D As Word

Dim Contadorpwm As Byte, Dim Ultimoerr As Word,

Dim Contadorint As Byte

Dim Ei As Word, Dim B As Word, Dim Kp As Word

Dim Ki As Word, Dim Kd As Word, Dim Sp As Word, Dim Rango As Word

Dim Mina As Word, Dim Maxa As Word, Dim Maxt As Word

****************CONFIGURACION DEL CONTROL PID*******

Sp = 990

Rango = 20

B = 50

Kp = 0

Ki = 0

Kd = 0

Ti = 24

Mina = 75

Maxa = 120

Maxt = 600

****************************bucle principal**********

Inicio:

Gosub Obtenerdato

gosub Calc_temp

Gosub Cal_excitacion

Gosub Excitacion_calentador

Goto Inicio

*****************leer adc***********************

Page 6: Control Proporcional- Integral- Derivativo

Obtenerdato:

P1.0 = 0ShiftinP1.2 , P1.1 , I , 0P1.0 = 1I = I / 128Return

Calc_temp: ' Convierte el valor digital en Temp.

Temp =Temprango/255 * Datain / 10 + Offset

Return

************calcula la excitación****************

Calc_Excitacion:

Gosub Errorcalc ' Cálculos de Error

Gosub Propcalc ' Calcula error proporcional

Gosub Intcalc ' Calcula error Integral

Gosub Derivcalc ' Calcula error Derivativo

Excitacion =(b + P + I + D) ' Calcula excitación total

Signo = Excitacion ' Ajuste de signo para max 100 min 0

GOSUB PoneSigno

Excitacion = ABS Excitacion MAX 100

IF Signo = 1 THEN ExcitListo

Excitacion = 0

ExcitListo:

Return

Page 7: Control Proporcional- Integral- Derivativo

********* Excitacion del calentador

Excitacion_Calentador:

For Contadorpwm = 1 To Tiempo Pwm ' Aplica PWM durante 220 mSec por cada repetición

PWM Calentador, excitacion * 255/100,220

NEXT

RETURN

'********** Calcula %Error - Signo ajustado

ErrorCalc:

Err =(sp - Temp) ' Calcula error de la temperatura

Signo = Err

GOSUB PoneSigno

Err = Abs Err * 100 / Rango ' Calcula % error

Err = Err * Signo

RETURN

'*********** Excitación Proporcional - Signo ajustado

PropCalc:

Signo = Err

Gosub Ponesigno

P = Abs Err * Kp + 5 / 10 ' Err prop= %Err * Kp /10 por escala

P = P * Signo ' +5 por redondeo

Return

'********** Excitación Integral - Signo ajustado

Page 8: Control Proporcional- Integral- Derivativo

IntCalc:

Ei = Ei + Err ' Acumula %err

Contadorint = Contadorint + 1 ' Incrementa contador

IF ContadorInt < Ti Then IntListo

Signo = Ei

Gosub PoneSigno

Ei = Abs Ei / Ti ' Encuentra error promedio

Ei = Ei * Ki + 5 / 10 ' Int err = Int err * Ki

Ei = Ei * Signo

I = I + Ei ' Suma error a Int err total

Signo = I

GOSUB PoneSigno

I = Abs I Max 100 ' limita a 100

I = I * Signo

Contadorint = 0 ' Reinicia contador y acumulador

Ei = 0

IntListo:

Return

'*********** Excitación Derivativa

DerivCalc:

D=(err-ultimoerr)*Kd 'Calcula excitación derivativa ' basándose en la diferencia del último error

Derivlisto

Ultimoerr = E ' Almacena error actual para el próximo cálculo

RETURN

Page 9: Control Proporcional- Integral- Derivativo

'********** Determina el signo de un valor

PoneSigno:

If Signo.bit15 = 0 Then Signopos

' Si signobit es 1, entonces es negativo

Signo = -1

Return

SignoPos:

Signo = 1

SignoListo:

Return

La Figura 6.2 es un diagrama de flujo del bucle principal del programa PID. Cada proceso se

discutirá en forma individual a medida que se toque cada tema.

Todos los microcontroladores tienen sus limitaciones, así como otros sistemas tales como los

Controladores Lógicos Programables (PLCs). Al programar operaciones complejas como en

control PID, es importante comprender estas limitaciones y usar sistemas alternativos.

Ya hemos superado la restricción de tener que trabajar con números enteros, como en el caso

de la temperatura, trabajando en décimas de grado. Otra limitación que necesitaremos

sobrellevar es el uso de números negativos. Si bien el BASIC Stamp puede usar valores

negativos, no los puede dividir o usar en instrucciones MIN y MAX para limitar su tamaño.

En esta sección ambos problemas serán importantes. Los valores de excitación PID serán

negativos o positivos dependiendo de si es necesario agregar o quitar excitación del sistema.

También necesitaremos limitar los valores máximos de forma que no excedan el 100% bajo

ciertas circunstancias, como con excitación total.

Para realizar estas tareas, es usada una subrutina llamada PoneSigno. Varias rutinas la llaman

usando GOSUB. El número a ser manipulado, que puede ser negativo, se almacena en una

variable tipo word rotulada Signo. Cuando PoneSigno es llamada, el bit de signo (bit15) es

verificado. Si el bit de signo es 1, es un valor negativo y la variable Signo se pone en -1. Si el

bit de signo es 0, es positivo y Signo se pone en 1. De regreso en la rutina que hizo la

llamada, se manipula el valor absoluto del número original. El resultado luego se multiplica

por Signo para que recupere su signo original. Los valores consigno pueden ser de–32.768 a

+32767.

PropCalc:

Page 10: Control Proporcional- Integral- Derivativo

Signo = ErrGOSUB PoneSignoP = ABS Err * KP + 5/10 ' Prop err = %Err * Kp /10 por escala,P = P * Signo ' +5 por redondeoRETURN...PoneSigno:IF Signo.bit15 = 0 THEN SignoPos ' Si el bit es 1,

entonces es negativoSigno = -1ReturnSignoPos:Signo = 1SignoListo:RETURN

La primer parte del programa a considerar son los cálculos de excitación total. La

Figura 6.3 es un diagrama de flujo para estas rutinas. Como se mencionó

anteriormente, la excitación total es la suma de tres evaluaciones diferentes

basadas en el error. El porcentaje de excitación total se aplicará entonces al

calentador usando PWM durante 5 segundos. Esto permite que el tiempo con el

calentador encendido sea mucho mayor que el relativamente corto en el que está

apagado, para realizar otras operaciones.