Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2013-02-07
帖子: 1
声望力: 0 ![]() |
![]()
算法描述:
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差不多...) |
![]() |
![]() |