You are on page 1of 10

Ejem 1

clear all, close all, clc


load data_mecanico.mat
%VALIDACION
y=angulo;
u=torque;
Y=y(5:3000);
X=[y(4:2999) y(3:2998) y(2:2997) y(1:2996) u(4:2999) u(3:2998)]
Theta= inv(X'*X)*X'*Y
% Validacion
load valida_mecanico.mat
%identificando variables de validacion
yv=val_angulo;
uv=val_torque;
% para estimar hacemos nuevamente nuestro reconocimiento de variables
% estimadas
%tengo 5 tetas xq asi sale en mi modelo por eso hago 5 estimados
ye(1)=yv(1);
ye(2)=yv(2);
ye(3)=yv(3);
ye(4)=yv(4);
%la validacion son hasta 6000 datos
for k=5:6000
ye(k)=Theta(1)*ye(k-1)+Theta(2)*ye(k-2)+Theta(3)*ye(k3)+Theta(4)*ye(k-4)+Theta(5)*uv(k-1)+Theta(6)*uv(k-2);
end
n=length(yv);
muestras=1:n;
figure, plot(muestras,yv,'r',muestras,ye,'b');
legend('medida','estimada')
ye=ye';
%ESTIAMCION MINIMOS CUADRADOS
FC=(1-norm(yv-ye)/norm(yv-mean(yv)))*100
%Determinando funcion de trasnferencia
%Primero la discreta

discreta y continua del sistema

numd=[Theta(5) Theta(6) 0];


dend=[1 -Theta(1) -Theta(2) -Theta(3) -Theta(4)];
Ts=1/300; %porque Fs es 300 hz
sysd=tf(numd,dend,Ts)

%DISCRETA TRANFER

sysc=d2c(sysd)

%continua transfer

num=sysc.num{1,1}%capturar data como vector


den=sysc.num{1,1}
[A,B,C,D]=tf2ss(num,den) %de funvion de transferencia a espacio estados
damp(sysc) %se le saca los polos a la funcion continua
figure, pzmap(sysc)
figure, step(sysc)
figure, margin(sysc)

%%%%%%%Mparte ARMAX
n=length(u); % con respecto a la entrada
Y0=y(3:end);
X0=[y(2:end-1) y(1:end-2) u(2:end-1) u(1:end-2)]
Theta= inv(X0'*X0)*X0'*Y0
% para armax se necesitan 3 seales conocidas, se estima B
for k=1:5

end

%numero de iteraciones para disminuir cada vez mas el error

ye=X0*Theta;
ye=[y(1);y(2);ye];
err=y-ye;
% Despues de hacer lo anterior recien se puede hallar el ARMAX
Y0=y(3:end);
X0=[y(2:end-1) y(1:end-2) u(2:end-1) u(1:end-2) err(2:end-1)]
Theta= inv(X0'*X0)*X0'*Y0

n=length(yv); %valdiacion con respecto a la salida


ye(1)=yv(1);
ye(2)=yv(2);
%la validacion son hasta 6000 datos

for k=3:n
ye(k)=Theta(1)*ye(k-1)+Theta(2)*ye(k-2)+Theta(3)*uv(k1)+Theta(4)*uv(k-2);
end
muestras=1:n;
figure, plot(muestras,yv,'r',muestras,ye,'b');
legend('medida','estimada')
%ye=ye';
%ESTIAMCION MINIMOS CUADRADOS
FC=(1-norm(yv-ye)/norm(yv-mean(yv)))*100
%Determinando funcion de trasnferencia
%Primero la discreta

discreta y continua del sistema

numd=[Theta(3) Theta(4) 0];


dend=[1 -Theta(1) -Theta(2)];
Ts=1/300; %porque Fs es 300 hz
sysd=tf(numd,dend,Ts)
%DISCRETA TRANFER
sysc=d2c(sysd) %continua transfer
num=sysc.num{1,1}%capturar data como vector
den=sysc.num{1,1}
[A,B,C,D]=tf2ss(num,den) %de funvion de transferencia a espacio estados
damp(sysc) %se le saca los polos a la funcion continua
figure, pzmap(sysc)
figure, step(sysc)
figure, margin(sysc)

Ejem 2

Pole

Damping

Frequency
(rad/seconds)

Time Constant
(seconds)

-5.45e+01

1.00e+00

5.45e+01

1.84e-02

-2.44e+02

1.00e+00

2.44e+02

4.09e-03

-2.21e+02 + 3.14e+02i
-2.21e+02 - 3.14e+02i
>>

5.76e-01
5.76e-01

3.84e+02
3.84e+02

4.52e-03
4.52e-03

Ejercico 3

Pole

Damping

Frequency
(rad/seconds)

-1.26e+00

1.00e+00

-5.19e+01 + 2.17e+02i
-5.19e+01 - 2.17e+02i

(seconds)

1.26e+00

2.32e-01
2.32e-01

Time Constant

2.24e+02
2.24e+02

7.94e-01
1.93e-02
1.93e-02

You might also like