linzx270 发表于 2008-4-22 11:04

用matlab画时滞系统图遇到的问题

m文件如下:function dydt = dde_chenf(t,y,Z,a,b,c)
ylag = Z(:,1);
dydt = [ -a*y(1)+a*y(2)-ylag(1)
      (c-a)*y(1)+c*y(2)-ylag(2)-y(1)*y(3)
      (-b)*y(3)+ylag(3)+y(1)*y(2)      ];
a=35;
b=3;
c=28;
tau=2;
tspan = ;
opts = ddeset('RelTol',1e-5,'AbsTol',1e-8);
history = [-3;-4;2];
t=0:0.1:4000;
sol = dde23(@dde_chenf,tau,history,tspan,opts,a,b,c)
plot(t,sol.y(1,4000:end))问题是plot(t,sol.y(1,4000:end))
画不了,还有就是怎么画t-(t-tau)
先谢谢了有研究延时的同学可以加我q q45574874
运行结果:

sol =
   solver: 'dde23'
    history:
    discont:
          x:
          y:
      stats:
         yp:
??? Error using ==> plot
Vectors must be the same lengths.
Error in ==> Untitled at 10
plot(t,sol.y(1,4000:end))


[ 本帖最后由 linzx270 于 2008-4-22 16:57 编辑 ]

无水1324 发表于 2008-4-22 14:15

回复 楼主 的帖子

这样的帖子可能接受的很少

QQ熊猫 发表于 2008-5-31 23:51

用dde23求解后,不妨试试deval命令!!!

guijinxing 发表于 2009-5-31 17:31

我试了一下,用以下语句可以画出来

y是
    t 是3x40001 double
   Vectors must be the same lengths.
   用t1=t(1:6524);语句使t1 变成1x6524 double
添加
t1=t(1:6524);
plot(t1,sol.y);
即可画出来
或者用以下语句分开画3个图
plot(t1,sol.y(1,:));plot(t1,sol.y(2,:));plot(t1,sol.y(3,:))
页: [1]
查看完整版本: 用matlab画时滞系统图遇到的问题