simulink 运行的时候错误提示flag=2(update)at time0.0
在运行simulink的时候出现如题所示的提示,请问是怎么回事,该如何解决,谢谢! 看样子好像有s函数?好像是s函数出问题了 回复 2# yjhou的确有S函数,是一个BP神经网络的,现在附上,请指导!
function =c8mhebb(t,x,u,flag,deltaK)
switch flag,
case 0,=mdlInitializeSizes;
case 2,sys=mdlUpdate(t,x,u,deltaK);
case 3,sys =mdlOutputs(t,x,u);
case {1,4,9},sys =[];
otherwise,error(['Unhandled flag = ',num2str(flag)]);
end;
function = mdlInitializeSizes
sizes =simsizes;
sizes.NumContStates =0;
sizes.NumDiscStates =3;
sizes.NumOutputs =4;
sizes.NumInputs =4;
sizes.DirFeedthrough= 1;
sizes.NumSampleTimes =1;
sys =simsizes(sizes);x0=;
str=[];ts=[-1 0];
function sys =mdlUpdate(t,x,u,deltaK)
sys=x+deltaK*u(1)*u(4)*u(2*u(1)-u(2));
function sys =mdlOutputs(t,x,u)
xx=;
sys=; 这是封装图 有没有更详细的提示?现在只知道是case 2,sys=mdlUpdate(t,x,u,deltaK);这里出问题了。 回复 5# yjhou
谢谢你,这个问题解决了 回复 6# han_han
现在编了输入一个RBF-PID模型仿真时,出现以下报错,不知道你是否遇到过,该怎么解决!代码,
function =nnrbf_pid(t,x,u,flag,T,nn, K_pid,eta_pid,xite,alfa,beta0,w0)
switch flag,
case 0 ,=mdlInitializeSizes(T,nn);
case 2 ,sys=mdlUpdates(u);
case 3 ,sys=mdlOutputs(t,x,u,T,nn,K_pid,eta_pid,xite,alfa ,beta0,w0);
case {l,4,9},sys= [ ];
otherwise,error(['Unhandled flag= ',num2str(flag)]);
end
function =mdlInitializeSizes(T,nn)
sizes = simsizes;sizes.NumContStates = 0;sizes.NumDiscStates = 3;
sizes.NumOutputs = 4+5*nn;sizes.NumInputs=9+15*nn;
sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;
sys =simsizes(sizes);x0=zeros(3,1);str =[ ];ts =;
function sys=mdlUpdates(u)
sys =;
function sys=mdlOutputs(t,x,u,T,nn,K_pid,eta_pid, xite,alfa,beta0,w0)
ci_3 =reshape(u(7:6+3*nn),3 ,nn);ci_2=reshape(u(7+5*nn:6+8*nn),3,nn);
ci_1 =reshape(u(7+10*nn:6+13*nn),3,nn);
bi_3=u(7+3*nn:6+4*nn);bi_2=u(7+8*nn:6+9*nn);
bi_1 =u(7+13*nn:6+14*nn);w_3=u(7+4*nn:6+5*nn);
w_2=u(7+9*nn:6+10*nn);w_1=u(7+14*nn:6+15*nn);xx=u();
if t==0
ci_1=w0(1)*ones(3,nn);bi_1=w0(2)*ones(nn,1);
w_1=w0(3)*ones(nn,1);K_pid0=K_pid;
else,K_pid0=u(end-2:end);
end
for j=1:nn
h(j,1)=exp(-norm(xx-ci_1(:,j))^2/(2*bi_1(j)*bi_1(j)));
end
dym=u(4)-w_1'*h;w=w_1+xite*dym*h+alfa*(w_1-w_2)+beta0*( w_2-w_3);
for j =1:nn
d_bi(j,1)=xite*dym*w_l(j)*h(j)*(bi_1(j)^(-3))*norm(xx-ci_1(:,j))^2;
d_ci(:,j) =xite*dym*w_1(j)*h(j)*(xx-ci_l(:,j))*(bi_1(j)^(-2));
end
bi=bi_1+d_bi+alfa*(bi_1-bi_2 )+beta0*(bi_2-bi_3);
ci=ci_1+d_ci+alfa*(ci_1-ci_2 )+beta0*(ci_2-ci_3);
dJac =sum(w.*h.*(-xx(1)+ci(1,:)')./bi.^2);
KK =K_pid0+u(1)*dJac*eta_pid.*x;sys=; 本帖最后由 yjhou 于 2011-12-4 09:25 编辑
回复 5# yjhou
您好,我现在在做PID控制方面的研究,现在遇到卡壳的地方了,想向您讨教,能不能给点指点.谢谢! 回复 8# han_han
你加我们论坛的MATLAB群问问吧,这个问题我也没碰到过。群号:20738628 回复 6# han_han
你好,我想知道这个问题是怎么解决的。我也遇到这个提示了,谢谢 我也遇到同样的问题了,请问怎么解决啊?
页:
[1]