Está en la página 1de 19

“ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA”

“FACULTAD DE INGENIERIA ELECTRICA Y ELECTRÓNICA”

CICLO 2020-B

LABORATORIO 01

TEMA:

DISCRETIZACIÓN Y SIMULACIÓN DEL MODELO DE UN SISTEMA DE


CONTROL DE TEMPERATURA

CURSO:

SISTEMA DE CONTROL DIGITAL

DOCENTE:

ING. ASTOCONDOR VILLAR, JACOB

ALUMNOS:

Bolivar Huayanay Jhonatan 1623225081

Moreno Jaque David Jhon 1623215793

Quispe Odar Miguel 1523220377

Loarte Rosas Kelvin 1213220509

Benites Calenzani Boris Carlos 1523210121

GRUPO HORARIO:

01L – 91G

LIMA-2020
DISCRETIZACIÓN Y SIMULACION DEL MODELO
DE UN SISTEMA DE CONTROL DE TEMPERATURA
I. OBJETIVOS

 Obtener el modelo matemático en tiempo continuo y discreto de un


sistema de temperatura.
 Simular la respuesta del sistema ante una entrada escalón unitario
usando MATLAB, tanto en tiempo continuo como en tiempo discreto,
que permita su comparación y la verificación de un adecuado
proceso de discretización.

II. MARCO TEORICO

SISTEMAS DISCRETOS
Cuando las entradas de tiempo discreto se transforman en en salidas de tiempo
discreto, al sistema se denomina «sistema discreto».
 SISTEMAS DE CONTROL DIGITAL
El esquema básico de un sistema de control digital, se muestra en la figura 1. El
sistema incluye un control prealimentado y realimentado. La estrategia de control
a usar dependerá del diseñador, en función a una determinada aplicación.

 MUESTREO Y RETENCION
El proceso de muestreo es sumamente útil en sistemas de control
donde se usa un controlador digital. El muestreo de señales
consiste en tomar muestras en puntos discretos de tiempo, que
luego son cuantificadas por un proceso de retención, para luego
pasar a un convertidor analógico/digital, produciéndose su
conversión en códigos binarios. Tales códigos, denominados
también datos binarios pueden ser procesados por el computador,
para producir una determinada decisión.
En la gran mayoría de las aplicaciones de control realimentado, los
procesos o plantas (por naturaleza) utilizan actuadores que son
controlados por señales analógicas, situación que hace necesario la
reconversión de la señal digital hacia analógico.
Tal propósito se logra por un proceso de conversión
digital/analógico (D/A) y luego por un retenedor, que haga posible la
reconstrucción de la señal analógica, la cual excita al actuador
controlando directamente el proceso.

 DISCRETIZACION DIRECTA

Es importante anotar que la selección del periodo de muestreo T es


determinante en los resultados del sistema de control digital.
Debemos recordar, por Nyquist, que la frecuencia de muestreo debe
ser:
fs  2 fm
Donde f s es la frecuencia de muestreo y f m es la frecuencia máxima
de la señal a ser muestreada. Información amplia sobre sistemas de
adquisición de datos y reconversión analógica puede encontrarse en
cualquier texto de control digital o control en tiempo discreto.
 DISCRETIZACION DIRECTA
Es bastante útil discretizar directamente expresiones que contengan
integrales y derivadas. En el desarrollo del curso nos encontraremos
frecuentemente con funciones que contengan derivadas e integrales,
las cuales pueden ser discretizadas usando ecuaciones en
diferencias. Veamos:
df (t) f (Kt) f (Kt)  f (kt T)
 
dt T T
d f (t)  f (Kt) f(Kt)  f (kt T)
2 2

 
dt 2 T2 T2
k
f (t) dt   Te(iT  T)
t

.
i 0

III. PLANTEAMIENTO DEL PROBLEMA

La figura 1 representa un horno eléctrico, y lo que se desea es controlar la


temperatura en el horno a un nivel de referencia.
Fig.1 Sistema de horno eléctrico

El nivel de temperatura se sensa por medio de un sensor de temperatura,


cuyos terminales se tienen disponibles. La señal de entrada del sistema en
lazo abierto es u(t), y la salida disponible es v(t).
Rt y Ct son la resistencia térmica y la capacitancia térmica del horno,
respectivamente.
 (t) 
es la temperatura en el interior del horno, y (t ) es el calor entregado por
la resistencia eléctrica. Los parámetros del sistema y ecuaciones son:

IV. PROCEDIMIENTO DE LABORATORIO

1. Determine las ecuaciones de estado y de salida del sistema


horno eléctrico, que debe tener la siguiente forma:

ẋ (t )= A x (t )+B e i (t )
y (t )=C x (t )+D e i (t )
Despejando las ecuaciones dadas:
1 44
(t)    (t)  u(t)
Rt * Ct Ct
v(t)  0.25* (t)

Pero tenemos de dato Rt y Ct , reemplazando en la ecuación


anterior:
(t)  67.0159 (t)  15.9229u(t)
v(t)  0.25* (t)

Haciendo cambio de variable:


 (t)  x(t)
v(t)  y(t)

Reemplazando tenemos la ecuación de estado:


x (t)  67.0159 x(t)  15.9229u (t)
y(t)  0.25 x(t)  0u (t)

2. Considerando los resultados del paso 1, determine el


correspondiente sistema discreto en la forma:
x (k +1)=G x (k )+H e i (k )
y (k )=C x (k )+D e i (k )

Para lo cual considere un adecuando periodo de muestreo.

La variable G y H tienen la siguiente forma para un periodo de


muestreo mayor 0.1s
G  I  TA
H  TB

Resolviendo las dos ecuaciones:


G  1  0.1*(67.0159)  5.70159
H  0.1*(15.9229)  1.59229

Ccont  Cdisc , Dcont  Ddisc

Reemplazando en las ecuaciones del sistema discreto:

x( k  1)  5.70159 x(k )  1.59229u (k )


y (k )  0.25 x(k )  0 u (k )

3. Encuentre la función de transferencia pulso del sistema


discretizado, considerando como v(t) como salida y u(t) como
entrada.

Tomando transformada de Laplace a las ecuaciones dadas:


1 1
S (s)   (s)   (s)
Rt * Ct Ct
1
 (s) Ct
G1 (s)  
 (s) S  1
Rt * Ct
 (s)  44* u (s)
 (s)
G2   44
u (s)

v(s)  0.25* (s)


v(s)
G3   0.25
 (s)

Hallando el modelo de función de transferencia:


G p (s)  G1 * G2 * G3

Tenemos:
v(s) 3.9807
G p (s)  
u (s) S  67.0159

Para verificar, utilizando MATLAB:


Hallando la función de transferencia pulso:

 G p (s) 
G (z)  (1  z 1 )* Z  
 s 

Pasando a transformada Z:

 v( s )   3.9807 
Z Z 
 u (s)   S *( S  67.0159) 

Por fracciones parciales tenemos:

3.9807 A B
 
S *( S  67.0159) S S  67.0159

Resolviendo tenemos:

A  0.05939  B  0.05939

 0.05939 0.05939  0.05939  0.05939 z



Z
 S 
S  67.0159  = 1  z
1
 
z  e67.0159T 
Regresando a la ecuación:
 0.05939 0.05939 z 
G (z)  (1  z 1 ) *   
  1  z   z  e  
1 67.0159T

V (z) 0.05939*  z  1
G (z)   0.05939 
U (z)  z  e67.0159T 
V (z) 0.05939 z  0.05939* e 67.0159T  0.05939 z  0.05939
G (z)  
U (z) z  e 67.0159T
V (z) 0.05939  0.05939* e 67.0159T
G (z)  
U (z) z  e 67.0159T

Para T=0.1:
V (z) 0.05931
G (z)  
U (z) z  1.2289*103

Para verificar, utilizando MATLAB:

4. Considerando las ecuaciones de estado y de salida obtenidas


en (2), simule la respuesta del sistema frente a una entrada
escalón unitario ( u (t)  1 ). Haga lo mismo para el modelo del
sistema en tiempo continuo. Finalmente, en una misma grafica
represente las dos respuestas (tiempo continuo vs. tiempo
discreto).
TIEMPO DISCRETO
Respuesta en tiempo discreto

TIEMPO CONTINUO
Respuesta en tiempo continuo

TIEMPO DISCRETO VS. TIEMPO CONTINUO


Tiempo discreto vs. tiempo continuo
CODIGO DE MPLAB X

#include "reloj.h"
#include "config.h"

#include "xc.h"

#include <libpic30.h>

#include "xlcd.h"

#include <stdio.h>

#include <p33FJ32MC202.h>

char temp[6];

double val=0.0; //variable para almacenar el resultado del adc

void input_init(void); //funcion de configuacion de entradas y salida

void init_ADC(void); //funcion de inicializacion del adc

int main(void) {

input_init (); //configuramos i/o

init_ADC(); //inicializamos el adc

XLCDInit(); //inicializamos el lcd

XLCDgotoXY(0,1); //ubicación del cursor

putrsXLCD("DSPIC32FJ32MC202");

XLCDgotoXY(1,1); //ubicación del cursor

putrsXLCD("CONTROL DIGITAL");

__delay_ms(1000);

WriteCmdXLCD(CLEAR_XLCD);

__delay_ms(10);

XLCDgotoXY(0,5);

putrsXLCD("HORNO");

XLCDgotoXY(1,14);

putrsXLCD("\337C");
XLCDgotoXY(1,1);

putrsXLCD("TEMP: 25.00");

//************Iniciar el sistema accionado Pulsador de marcha. ***********

while(1)

if(PORTBbits.RB8==1)

__delay_ms(200); //evitar el rebote mecanico

while(PORTBbits.RB8);

break;

while (1)

//******************INICIAR EL MUESTREO.******************

AD1CON1bits.SAMP=1;

//TIEMPO DE MUESTREO

__delay_ms(100);

//***************FIN DE MUESTRO E INICIO DE CONVERSION A/D***********

AD1CON1bits.SAMP=0;

//***************ESPERAMOS QUE SE TERMINE LA CONVERSION AD.*****

while(!AD1CON1bits.DONE);

AD1CON1bits.DONE=0; //para poder iniciar una nueva conversion ad

val=ADC1BUF0*3.3/1023.0; //almacenamos el valor convertido


//**************Controlador ON-OFF.***********

if(val<2.5)

LATBbits.LATB4=1;

else

LATBbits.LATB4=0;

val=val/0.025;

sprintf(temp,"%3.2f",val);//CONVERTIMOS A CADENA DE CARACTERES

XLCDgotoXY(1,7);

putrsXLCD(temp);

return 0;

//******** INICIALIZACION DE LOS PUERTOS I/O.***************

void input_init(void)

TRISBbits.TRISB4=0;//RB0 COMO SALIDA.

//*****************FUNCION DE INICIALIZACION DEL ADC**********

void init_ADC(void)

{
AD1PCFGLbits.PCFG0=0; //an0 como entrada analogica

AD1CON2bits.VCFG=0b000; //voltajes de referencia para la convercion

AD1CHS0bits.CH0SA=00000; //seleccion del canal para el muestreo

AD1CHS0bits.CH0NA=1; // an1 referencia negativa para el canal de muestreo

AD1CON3bits.ADCS=0b01001; //TAD

AD1CON1bits.ASAM=0; //MUESTREO MANUAL

AD1CON1bits.SSRC=0b000; //CONVERSION MANUAL

AD1CON1bits.ADON=1; //HABILITACION DEL ADC

V. BIBLIOGRAFÍA

1. https://www.digikey.com.mx/es/articles/analog-fundamentals-sample-and-hold-
circuits-work-adc-accuracy
2. https://sites.google.com/a/lhusurbil.eus/horno/diagrama-de-bloques-y-
variables-que-intervienen

También podría gustarte