用matlab编写bp神经网络进行故障诊断,通过对故障数据的训练使得测试数据在输入后能得到相应的输出

其中设置正常的输出是1,0向量,故障的输出是0,1向量

这是我的代码
clear all;
load xinshuju;
P_train=shuru; %训练集输入
T_train=shuchu; %训练集输出
P_test=ceshishuru; %测试集输入
net=newff(P_train,T_train,6,{'tansig' 'logsig'},'trainlm'); %创建bp神经网络
net.trainParam.epochs=1500; %定义训练次数
net.trainParam.goal=1e-6; %定义训练目标
net.trainParam.lr=0.0001; %定义学习速率
net=train(net,P_train,T_train); %训练神经网络
t_sim=sim(net,P_test); %测试神经网络
运行过后得到的t_sim是

想请问为什么测试数据输出后的结果会是1和0.5的组合而不是近似于1和0的组合,要如何修改代码和训练参数来达到图2中实际输出的样子