clc;clear all;close
%% 线性系统x(k+1)=A*x(k)+B*u(k)参数(A,B)
A=[1 1;-1 1];
B=[0.1; 1];
%% 神经网络训练参数
N=1000; %样本数
hiddenSizes=10; %隐藏层神经元数目
%% 获取模型网络训练样本
uk = randn(1,N); %控制变量随机均匀取值|u|≤1
xk = randn(2,N); %状态标量随机均匀取值|x|≤1
target=A*xk+B*uk; %状态方程获取训练样本-目标
input=[xk; uk]; %训练样本-输入
%% 构建前馈神经网络
net=feedforwardnet(hiddenSizes,'trainlm');
net.trainParam.showWindow=false; %关闭nntraintool窗口
net = train(net, input, target);
net.b{1}=zeros(size(net.b{1})); %输入层阈值10x1
net.b{2}=zeros(size(net.b{2})); %隐藏层阈值2x1
net.iw{1}=zeros(size(net.iw{1})); %输入层权值10x3
net.lw{2,1}=zeros(size(net.lw{2,1})); %隐藏层权值2x10
%