📄 bp_device.m
字号:
%基于BP的故障状态预测
%创建网络
P=[-1.7817 -0.2786 -0.2954 -0.2394 -0.1842 -0.1572 -0.1584 -0.1998;
-1.8710 -0.2957 -0.3494 -0.2904 -0.1460 -0.1387 -0.1492 -0.2228;
-1.8347 -0.2817 -0.3566 -0.3476 -0.1820 -0.1435 -0.1778 -0.1849;
-1.8807 -0.2467 -0.2316 -0.2147 -0.1271 -0.0680 -0.0872 -0.1684;
-1.2879 -0.2252 -0.2012 -0.1298 -0.0245 -0.0390 -0.0762 -0.1672;
-1.4151 -0.2282 -0.2124 -0.2147 -0.1271 -0.0680 -0.0872 -0.1684;
-1.5239 -0.1979 -0.1094 -0.1402 -0.0994 -0.1394 -0.1673 -0.2810;
-1.6781 -0.2047 -0.1180 -0.1532 -0.1732 -0.1716 -0.1851 -0.2006;
0.1605 -0.0920 -0.0160 0.1246 0.1802 0.2087 0.2234 0.1003;
0.2045 0.1087 0.2246 0.2031 0.2428 0.2050 2.0704 0.0403;
-1.0242 -0.1461 -0.1018 -0.0778 -0.0363 -0.0476 -0.0760 -0.0253;
-0.7915 -0.1018 -0.0737 -0.0945 -0.0955 -00044 0.0467 0.0719]
T=[0 1; 0 1; 0 1; 0 1; 1 0; 1 0; 1 0; 1 0; 1 1; 1 1; 1 1; 1 1;];
% 取P和T转置,保证输入样本向量和目标向量之间列数相等
P=P';
T=T';
tic
net=newff(minmax(P),[20,2],{'tansig','logsig'},'trainlm');
%网络训练
%色顶循环次数为50
net.trainParam.epochs=50;
%训练误差为0.0001,其余训练参数去默认值
net.trainParam.goal=0.001;
net=train(net,P,T);
%通过仿真来验证网络的输出是否满足要求
y1=sim(net,P);
toc
% pause
'loading.....'
P_test=[-1.4736 -0.2845 -3.0724 -0.2108 -0.1904 -0.1467 -0.1696 -0.2001;
-1.6002 -0.2011 -0.1021 -0.1394 -0.1001 -0.1572 -0.1584 -0.2790;
-1.0314 -0.1521 -0.1101 -0.0801 -0.0347 -0.0482 -0.0158 -0.0301]';
T_test=[0 1;1 0;1 1];
Y=sim(net,P_test)
erro=Y-T_test';
'误差'
res=norm(erro)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -