qihailong0602
2013-02-07, 15:10
算法描述:
1、线性化神经网络模型,计算得到动态矩阵G(k);(采用的方法是在x(k)点泰勒展开,一阶导数作为线性化模型的系数a、b,系统是二阶的,利用到了神经网络模型y(k)=w0+权值求和...);
2、利用神经网络模型计算非线性自由轨迹y0,(方法是将y0表示成y0=w0+权值求和zi0+d(k)即偏差);
3、解决二次规划问题,求的du;
4、u(k)=du+u(k-1);
5、循环
问题:1、线性化的时候用到的神经网络函数为tanh,直接将一次偏导近似为1-tanh2(zi(x(k))),但是zi((x(k)))是没法计算的,只能计算zi(k),也就是各个node的输入和,可以直接用zi(k)代替zi(x(k))吗?
2、第三步用到的二次规划是标准形式,即 min{0.5x'*H*x+f'x}, A*x<=b,我可以直接在matlab用quadprog函数吗?
opts=optimset('Algorithm','active-set','Display','off');
[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],[],[],[],opts);
这么设置对吗?
3、
我写的程序的步骤:
1、检测实际输出,计算误差dk ----------计算偏差,设初始预测值为y(1) (实际输出其实还没得到,因为没实际模型.. 这也是个问题,没法求偏差?)
2、计算G(k)(用于预测模型y=y0+G*du) ----------用到神经网络
3、求预测初值y0 ----------用到神经网络
4、求控制增量du ----------解二次规划问题
5、计算控制量 ----------取控制序列第一个元素
6、计算输出预测 ----------使用预测模型G
返回循环
请教各位!不胜感激!(遇到瓶颈了,出不来正确的图,又不知道错在哪,资料差了很多没相关内容,步骤倒是和DMC差不多...)
1、线性化神经网络模型,计算得到动态矩阵G(k);(采用的方法是在x(k)点泰勒展开,一阶导数作为线性化模型的系数a、b,系统是二阶的,利用到了神经网络模型y(k)=w0+权值求和...);
2、利用神经网络模型计算非线性自由轨迹y0,(方法是将y0表示成y0=w0+权值求和zi0+d(k)即偏差);
3、解决二次规划问题,求的du;
4、u(k)=du+u(k-1);
5、循环
问题:1、线性化的时候用到的神经网络函数为tanh,直接将一次偏导近似为1-tanh2(zi(x(k))),但是zi((x(k)))是没法计算的,只能计算zi(k),也就是各个node的输入和,可以直接用zi(k)代替zi(x(k))吗?
2、第三步用到的二次规划是标准形式,即 min{0.5x'*H*x+f'x}, A*x<=b,我可以直接在matlab用quadprog函数吗?
opts=optimset('Algorithm','active-set','Display','off');
[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],[],[],[],opts);
这么设置对吗?
3、
我写的程序的步骤:
1、检测实际输出,计算误差dk ----------计算偏差,设初始预测值为y(1) (实际输出其实还没得到,因为没实际模型.. 这也是个问题,没法求偏差?)
2、计算G(k)(用于预测模型y=y0+G*du) ----------用到神经网络
3、求预测初值y0 ----------用到神经网络
4、求控制增量du ----------解二次规划问题
5、计算控制量 ----------取控制序列第一个元素
6、计算输出预测 ----------使用预测模型G
返回循环
请教各位!不胜感激!(遇到瓶颈了,出不来正确的图,又不知道错在哪,资料差了很多没相关内容,步骤倒是和DMC差不多...)