⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nn predictive control.m

📁 基于Matlab环境编写的一些神经网络PID控制和模糊PID控制源代码
💻 M
字号:
p=[1520 510 50155 33.88;1468 521 5.321 35.79;
    2412 1140 5.32 25.89;1750 129 4.7 23.8;
    1688 361 4.865 27.08;1607 489 5.1 28.9;
    1200 127 4.56 19.84;1990 148 4.89 19.373;
    1509 511 5.12 34.3;1730 133 4.46 23.06]';
t=[0.7 1.9;0.6 1.798;0.8 1.289;1 1.68;0.8 1.149;
    1.03 1.72;1.8 1.095;0.9 1.230;0.8 1.35;1.4 1.201]';
%%%%归一化后的输入向量P
for i=1:4
    P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
%%%归一化后的目标向量A
for i=1:2
    A(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end
%%测试样本
P_test=[P(:,1) P(:,3) P(:,5) P(:,7) P(:,8) P(:,10)];
T_test=[A(:,1) A(:,3) A(:,5) A(:,7) A(:,8) A(:,10)];
%%隐含层单元个数向量
No=[9 12 15];
for i=1:3
    net=newff(minmax(P),[No(i),2],{'tansig','logsig'});
    net.trainParam.epochs=500;
    net=init(net);
    Temp=sim(net,P_test);
    y(2*i-1,:)=Temp(1,:);
    y(2*i,:)=Temp(2,:);
end
Y1=[y(1,:);y(2,:)]
Y2=[y(3,:);y(4,:)]
Y3=[y(5,:);y(6,:)]
%%%求预测误差
for i=1:6
    error1(i)=norm(Y1(:,i)-T_test(:,1));
    error2(i)=norm(Y2(:,i)-T_test(:,1));
    error3(i)=norm(Y3(:,i)-T_test(:,1));
end
figure;
plot(1:6,error1);
hold on;
plot(1:6,error2,'r');
hold on;
plot(1:6,error3,'g');
hold off;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -