Sie sind auf Seite 1von 9

Universidad Nacional Abierta y a Distancia

Cead Zipaquirá

Control Digital

Unidad 2 – Actividad 3

Presentado por:

Luis Alejandro Rozo Onofre

1075873313

Grupo No: 203041_30

Presentado a:

Joan Sebastián Bustos

Sopo, Cundinamarca

Noviembre del 2017


SINTONIZACION DE CONTROLADOR MEDIANTE ZIEGLER-NICHOLS

En lazo abierto, muchos procesos pueden definirse según la siguiente función de transferencia:

K e s 0

G(s)  0
1  0s

Donde los coeficientes K0,  0 y  0 se obtienen de la respuesta del sistema en lazo abierto
a una entrada escalón. Se parte del sistema estabilizado en y(t) =y0 para u(t)=u0. Se aplica una entrada
escalón de u0 a u1 (el salto debe estar entre un 10% y un 20% del valor nominal) y se registra la
respuesta de la salida hasta que se estabilice en el nuevo punto de operación.

Los parámetros se pueden obtener de la respuesta mostrada en la Figura 1:

 0  t1  t0
 0  t2  t1

y1  y0
k 
0
u1  u0
Figura 1. Respuesta de salida ante una entrada escalón.

Desarrollo
Para el análisis de la curva de reacción, se analizará la respuesta del sistema en lazo abierto ante una entrada
escalón, dicha entrada escalón es de 0v a 10v.

La simulación se debe desarrollar en Proteus utilizando el Heated Oven (LumpedModel) y se establecerán los
siguientes valores:

Temperature Ambient (°C)= 30


Thermal Resistence to Ambient (°C/W)= 0.7
Oven Time Constant (sec)= 10
Heater Time Constant (sec)= 1
Temperature coefficient (V/°C)= 1
Heating Power (W)= 120

Simulación en Proteus
Análisis de la gráfica mediante ZIEGLER-NICHOLS
t 0 = 𝑡1 − 𝑡0 = 4 − 3 = 𝟏
γ0 = 𝑡2 − 𝑡1 = 6 − 4 = 𝟐

𝑦1 − 𝑦0
K0 =
𝑈1 − 𝑈0
952 − 30
K0 =
10 − 0
922
K0 = = 92.2
10

Función de transferencia para el sistema de calefaccion

𝑘0 𝑒 −𝑠𝑡0 𝑒 −𝑠
𝐺(𝑠) = = 92.2
1 + 𝛾0 𝑠 1 + 2𝑠

Los parámetros Kp, Ti y Td se calculan según la Regla de Sintonización de Ziegler- Nichols basada
en la respuesta al escalón:

𝛾0
𝐾𝑃 = 1.2
𝑘0 𝑡0

2
𝐾𝑃 = 1.2
92.2 ∗ 1
2
𝐾𝑃 = 1.2
92.2

𝐾𝑃 = 0.0260

𝑡𝑖 = 2𝑡0
𝑡𝑖 = 2 ∗ 1
𝑡𝑖 = 2

𝑡𝑑 = 0.5𝑡0
𝑡𝑑 = 0.5 ∗ 1
𝑡𝑑 = 0.5

Reemplazando los valores de Kp, Ti y Td en las ecuaciones dadas en (8), y estableciendo


un periodo de muestreo T=0.1s según criterio T   0 / 4 , los parámetros del controlador discreto son:

𝑎 = 𝐾𝑃 = 0.0260

𝐾𝑃 𝑇
𝑏=
𝑇𝑖
0.0260 ∗ 0.1
𝑏=
2

𝑏 = 0.0013

𝐾𝑃 𝑇𝑑
𝑐=
𝑇

0.0260 ∗ 0.5
𝑐=
0.1

𝑐 = 0.13

Programa en CCS C para configurar pic 16F877A

#include <16f877a.h>
#device adc=10
#fuses xt,nowdt
#use delay(clock=4000000)

void main(){
int16 valor; //lectura de temperatura
int16 control; //valor de pwm
float a,b,c; //constantes del pid
float temp_limit; // temperatura a alcanzar
float rt,et,it,dt,yt,ut,it0,et0,it_1,et_1; //variables de ecuaciones
float max,min; //limites maximos y minimos de control
min= 0.0;
max=1000.0;
it_1= 0.0;
et_1= 0.0;
a= 0.0260; //constantes pid
b= 0.0013;
c= 0.13;
temp_limit= 1000.0; //temperatura Set point

setup_timer_2(t2_div_by_4,249,1); //periodo de la señal pwm a 1ms


setup_ccp1(ccp_pwm); //modulo ccp como pwm
setup_adc_ports(all_analog); //puerto a analogo
setup_adc(adc_clock_internal); //reloj convertidor ad interno
set_adc_channel(0);

while(true)
{
valor=read_adc();
yt=5000.0*valor/1024.0; //valor de la co y conversion de a mv(0.25v a 250mv)
rt=temp_limit; //valor del set point
et=rt-yt; //calculo de error
it= b*et+it0; //calculo de termino de la integral
dt= c*(et-et0); //calculo de termino de la derivativo
ut= it+a*et+dt; //calculo pid
delay_ms(100);

if(ut>max){
ut=max;
}
else{
if(ut<min){
ut=min;}
}

control=ut; //transferencia de señal de salida a pwm


set_pwm1_duty(control);
it0=it; //guardar variables
et0=et;
delay_ms(100); //tiempo de muestreo

}}

Para ingresar las perturbaciones al sistema se debe hacer lo siguiente: Para el instante de tiempo t=0s se
utiliza una de alimentación BAT1 de 10V, para el instante
de tiempo t=50s se conmuta otra fuente de alimentación BAT 2 de 30V y para el instante de tiempo t=120s se
conmuta nuevamente a la fuente de alimentación
BAT1 de 10V.

Simulación proteus
8
9

Das könnte Ihnen auch gefallen