首页 热点专区 义务教育 高等教育 出国留学 考研考公

怎么很好运用函数ode45()

发布网友

我来回答

1个回答

热心网友

你算dz(1)时后面的中括号要用小括号。子程序里面也有用中括号的问题。
你注意matlab中的提示 凡是划红线的地方都有问题,你把鼠标放在红线的地方一两秒吧 就会有提示显示出来 告诉你有什么问题

你给的时间有问题 如果你方程没错的话 时间只能算到3秒 到3秒多点的时候就奇异了 给你一个改过的,你在看一下你的方程写对没有

function dz=refine(t,z)
Kp=2000;Ki=2100;r=0.08;Vol=30;Vcl=70;A1=60;A2=90;
f1=f(z(1));
dz(1)=(1/Vol)*(A1*tanh(Kp*(r-z(1))/A1)+f1*A2*tanh(z(2)/A2)-Vcl);
dz(2)=Ki*(r-z(1));
dz=[dz(1);dz(2)];

function f=f(z)
a1=5.29;a2=92;a3=0.23;a4=9;
if z(1)<0.08
y=((1/12)*((a1+a2*z(1))*(a3+a4*z(1))));
f=y;
else
y=1;
f=y;
end

[t,y]=ode45('refine',[0 2],[20 70]);plot(t,y(:,2))

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com