Está en la página 1de 3

clear all; close all; clc

load data.lvm
t=data(:,1);
us=ones(size(t));
ys=data(:,2);
figure
% ploteo data real
plot(t,ys)
hold
% Algoritmo
u_1=0; y_1=0; % cond iniciales
w1=0.001*randn; % peso aleatorio pequeo
w2=0.001*randn; % peso aleatorio pequeo
w=[w1 w2]; % almacena vector inicial
alpha=0.01; % factor de aprendizaje
m=0.01; % factor momentum para gadaline
dw_1=[0 0]; % cambio de pesos inicial
E=1e-5; % epsilon de error
for k=1:length(us)
uss=[u_1 -y_1]; % vector de datos
e=ys(k)-uss*w'; % error, uss=input
dw=alpha*e*uss; % cambio de pesos
if abs(e)>E
dw=dw+m*dw; % incuyendo momentum
end
w=w+dw; % update
dw_1=dw; % homogeniza tamao vector
u_1=us(k);
y_1=ys(k);
end
% simulaciones
T=0.004;
tk=0:T:0.4;
u=ones(size(tk));
Gze=tf(w(1),[1 w(2)],T); % modelo FT discreta
Gm=d2c(Gze); % modelo en tiempo continuo
Gm=zpk(Gm);
ye=lsim(Gze,u,tk);
plot(tk,ye,'k')
plot(t,us,'m')
legend('y_{real}','y_{enn}','u')

%otro programa
load data.lvm
t=data(:,1);
us=ones(size(t));
ys=data(:,2);
u_1=0; y_1=0; % cond iniciales
w1=0.001*randn; % peso aleatorio pequeo
w2=0.001*randn; % peso aleatorio pequeo
w=[w1 w2]; % almacena vector inicial
alpha=0.01; % factor de aprendizaje
m=0.01; % factor momentum para gadaline

dw_1=[0 0]; % cambio de pesos inicial


E=1e-5; % epsilon de error
for k=1:length(us)
uss=[u_1 -y_1]; % vector de datos
e=ys(k)-uss*w'; % error, uss=input
dw=alpha*e*uss; % cambio de pesos
if abs(e)>E
dw=dw+m*dw; % incuyendo momentum
end
w=w+dw; % update
dw_1=dw; % homogeniza tamao vector
u_1=us(k);
y_1=ys(k);
end

%otro pg
u_1=0; y_1=0; %cond. iniciales
w1=0.001*rand; %peso aleatorio pequeo
w2=0.001*rand; %peso aleatorio pequeo
w=[w1 w2]; %almacena vector inicial
alpha=0.01;% factor de aprendizaje
m=0.01; % factor momentum para gadaline
dw_1=[0 0]; % cambio de pesos inicial
E_1e-5; % epsilon del error
for k=1:lenght(us)
uss=[u_1 -y_1]; %vector de datos
e=ys(k)-uss*w'; %error, uss=input
dw=alpha*e*uss; %cambio de pesos
if abs(e)>E
dw=dw+m*dw; %incluyendo momentum
end
w=w+dw; %update
dw_1=dw; %homogeniza tamao de vector
u_1=us(k);
y_1=ys(k);
end

%otro pg
clear all; close all; clc
load data.lvm
%cargamos la data
t=data(:,1);
us=ones(size(t));
ys=data(:,2);
figure
%ploteo data real
plot(y,ys)
hold
%algoritmo
u_1=0; y_1=0; %cond. iniciales

w1=0.001*rand; %peso aleatorio pequeo


w2=0.001*rand; %peso aleatorio pequeo
w=[w1 w2]; %almacena vector inicial
alpha=0.01;% factor de aprendizaje
m=0.01; % factor momentum para gadaline
dw_1=[0 0]; % cambio de pesos inicial
E_1e-5; % epsilon del error
for k=1:lenght(us)
uss=[u_1 -y_1]; %vector de datos
e=ys(k)-uss*w'; %error, uss=input
dw=alpha*e*uss; %cambio de pesos
if abs(e)>E
dw=dw+m*dw; %incluyendo momentum
end
w=w+dw; %update
dw_1=dw; %homogeniza tamao de vector
u_1=us(k);
y_1=ys(k);
end
%simulaciones
T=0.004;
tk=0:T:0.4;
u=ones(size(tk));
Gze=tf(w(1),[1 w(2)],T); %modelo FT discreta
Gm=d2c(Gze); %modelo en tiempo continuo
Gm=zpk(Gm);
ye=lsim(Gze,u,tk);
plot(tk,ye,'k')
plot(t,us,'b')
legend('y_{real}','y_{enn}','u')

También podría gustarte