📄 autocorr.m
字号:
clc;
clear all;
k=1:200;
y=zeros(1,200);g1=y;g2=y;g3=y;g4=y;g=y;
for k=3:200
u(k)=0.1*sin(2*pi*k/25);
y(k)=((y(k-1)*y(k-2)*(y(k-1)-0.5))/(1+y(k-1)^2+y(k-2)^2))+u(k);
g(k)=((y(k-1)*y(k-2)*(y(k-1)-0.5))/(1+y(k-1)^2+y(k-2)^2));
g1(k)=-0.2-0.017*y(k-2)+0.423*y(k-1);
g2(k)=0.351-0.048*y(k-2)-0.518*y(k-1);
g3(k)=0.214-0.011*y(k-2)-0.456*y(k-1);
g4(k)=-0.375-0.053*y(k-2)+0.577*y(k-1);
end
y(1)=0;
y(2)=0;
g1(1)=-0.2;g1(2)=-0.2;g2(1)=0.351;g2(2)=0.351;g3(1)=0.214;g3(2)=0.214;g4(1)=-0.375;g4(2)=-0.375;
param1=[0.85 -1];
param2=[0.65 -8];
param3=[1.25 1.4];
param4=[1.1 1.4];
xmf1p=gaussmf(y,param1);
xmf2p=gaussmf(y,param2);
xmf3n=gaussmf(y,param3);
xmf4n=gaussmf(y,param4);
r1min=min(xmf1p,xmf2p);
r2min=min(xmf1p,xmf4n);
r3min=min(xmf3n,xmf2p);
r4min=min(xmf3n,xmf4n);
for k=3:200
gfuzzyoutput(k)=(r1min(k)*g1(k)+r2min(k)*g2(k)+r3min(k)*g3(k)+r4min(k)*g4(k))/(r1min(k)+r2min(k)+r3min(k)+r4min(k));
yfuzzyoutput(k)=gfuzzyoutput(k)+u(k);
end
yfuzzyoutput(1)=0; yfuzzyoutput(2)=0;
subplot(2,1,1);
plot(yfuzzyoutput);
%title('Fuzzy Output');
hold on;
plot(y,'r--');
%title('Actual Output');
subplot(2,1,2);
plot(y-yfuzzyoutput);
title('Error');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -