📄 rff.m
字号:
u=[1.1470 0.2010 -0.7870 -1.5890 -1.0520 0.8660 1.1520 1.5730 0.6260...
0.4330 -0.9580 0.8100 -0.0440 0.9470 -1.4740 -0.7190 -0.0860 -1.0990...
1.4500 1.1510 0.4850 1.6330 0.0430 1.3260 1.7060 -0.3400 0.8900...
1.1440 1.1770 -0.3900]; %给定的30组输入数据
y=[ 0 0.4470 -0.2550 -0.1380 -0.4860 -0.0690 0.4310 0.0940 0.5540...
-0.1820 0.2910 -0.5700 0.7080 -0.4890 0.6500 -0.9620 0.3180 -0.1200...
-0.4900 1.0700 -0.4510 0.5670 0.2000 -0.1420 0.6240 0.2070 -0.3210...
0.6070 -0.0100 0.4420]; %对应的30组输出数据
y1=-y(:,2:30)';
y2=-y(:,1:29)';
u1=u(:,2:30)';
u2=u(:,1:29)';
X=[y1 y2 u1 u2]; %用输入输出数据构成X阵
P=10^8*eye(4,4); %为P(0)赋初值为一个4×4的单位阵×10^8
sit=zeros(4,1); %为所求向量赋初值为0阵
lmd=0.95; %取遗忘指数为0.95
for i=1:28;
yk=y(:,i+2); %在y中依次取y(k+1)值
xk=(X(i,:))'; %在X中依次取x(k+1)的值
K=P*xk/(lmd+xk'*P*xk); %依次递推K(k+1)的值
sit=sit+K*(yk-xk'*sit); %依次递推所求向量的值
P=(P-K*xk'*P)/lmd; %依次递推P(k+1)的值
end
sit %28次循环后得到所求参数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -