Está en la página 1de 12

CONTROL DE PLANTA EN TIEMPO REAL

OBJETIVOS:

Hallar la funcin de transferencia de los datos de la planta adquiridos con la


NIDAQ
Determinar la matriz de observabilidad.
Con el labview realizar la simulacin en tiempo real.

PROCEDIMIENTO:

Realizamos con matlab el algoritmo para el ajuste de curva para obtener


nuestra funcin de transferencia desde la data experimental.
realizacion del comportamiento de la respuesta transitoria de la data
experimental mediante el algoritmo con matlab.
Realizacin del cdigo:
-----------------------------------------------------------------------------------------------------clear all; close all; clc
% Algoritmo Ajuste de la Curva por Interpolacion Lineal
%
en el dominio de la frecuencia
load datag9.lvm
whos
t=datag9(1:61,1);
y=datag9(1:61,2);
plot(t,y,'b')
hold
t1=datag9(1:61,3);
y1=datag9(1:61,4);
plot(t1,y1,'r')
grid
axis([0 0.6 -2.8 2.8])
figure
t2=t-(0.02*(ones(61,1)));
y2=(1.488*ones(61,1))+y;
plot(t2,y2,'b')
grid
axis([0 0.6 0 3])
figure
t3=t2(1:10,1);%nueva grafica
y3=y2(1:10,1);
plot(t3,y3,'b')
grid
axis([0 0.08 0 3])
%ploteo del graficoln(A-y(t)) vs t
%*********************************
A=3;
xa=t3;
ya=log(A-y3);
%Aproximando la mejor recta
figure

plot(xa,ya)
title('ln(A - y(t)) vs t')
axis([0 0.06 -2 1.5])
%**************************************
%calculando la pendiente con 0.2<t<0.05
%********************************
xi=(0.02:0.01: 0.05);
yi=interp1(xa',ya',xi,'linear');
figure
plot(xa,ya,'k.')
hold
plot(xi,yi,'m')
% ********************************
% Calculando la pendiente m = p1
% ********************************
p1=(yi(1)-yi(4))/(0.05-0.02455); % 85.5480
% ********************************************
% Calculando B: B(t) = (y(t) - A) / exp(-p1*t)
% ********************************************
B = (y3 - A)./exp(-p1*t3);
figure
plot(t3,B,'r.')
hold
plot([0 0.1],[median(B(6:9)) median(B(6:9))],'b:')
title('B(t)=(y(t)-A)/e^{-p_1t}')
B=median(B(6:9)); % -11.0613
% ***********************
% Calculando C: C=-(A+B)
% ***********************
C=-(A+B); % 6.7613
% ********************************
% Calculando p2: p2 = (-B/C) * p1
% ********************************
p2=-(B/C)*p1; % 139.9542
% ********************************
% Graficando: ln(y2)=ln[y - (A+Be^-p1t)]=ln[Ce^-p2t]
% ********************************
y4=log(y3 - (A+B*exp(-p1.*t3)));
figure
plot(t3(1:5),y4(1:5),'k.')
hold
xi=(0.00:0.01: 0.03); yi=interp1(t3(1:5)',y4(1:5)',xi,'linear');
plot(xi,yi)
title('ln[y - (A+Be^-p1t)]')
% ****************************
% comprobando el valor de p2
% ****************************
%a=yi(1);
%b=yi(4);
%p2=(a-b)/(t3(2)-t3(4)); % 5.68

% *************************
% Calculo de la ganacia: K
K=A*p1*p2; % 5.1483e+004
% **************************************
% Funcin de transferencia experimental:
% **************************************
Gexp=tf(K,conv([1 p1],[1 p2]));
Gexp=zpk(Gexp)
t4=0:0.001:0.09;
y3exp=step(Gexp,t4);
figure
plot(t4,y3exp,'m:')
hold
plot(t3,y3,'k')
plot([0 .1],[1 1],'k:')
axis([0 0.1 0 4.5])
legend('G_{ident}','G_{data}',4)
xlabel('t (seg)')
ylabel('y(t)')

LOS GRAFICOS OBTENIDOS:

LA FUNCION DE TRANSFERENCIA OBTENIDO:

SIMULACION EXPERIMENTAL:

FUNCION DE TRANSFERENCIA HALLADA CON EL


OBSERVADOR CON CODIGO MATLAB:
clear all; close all; clc
%Asumiendo que ha sido evaluado el algoritmo ACIL
P=tf(128745.6335,conv([1 181.3800944],[1 178.0315607])) ;
[N,D]=tfdata(P,'v');
DATA=[N';D'];
save datos.txt DATA -ascii
load datos.txt
datos

EXPERIMENTO EN TIEMPO REAL:

También podría gustarte