分段的常微分方程怎么去求解?
问题大概是这样的:
V2=60;V0=30;Q0=720;Q6=216;Q1=936;Q4=1080; T=4;f=1/2;m=fix(t/T);Vmax=V0+(Q1/24)*(T/4); 
mT+T/4 <=t<= T/2+mT时, Q12=Q1 ,其他时间 Q12=0
mT+T/2 <=t<= 3*T/4+mT时,Q42=Q4,其他时间 Q42=0
mT+T/2 <=t<= 3*T/4+mT时,Q22=24*(((Q4/24)*(T/4)+(Vmax-V2))/(T/4)); 其他时间 Q22=0
mT+T <=t<= 5*T/4+mT时,   Qe2=24*((f*V2)/(T/4));其他时间 Qe2=0

求这个一介常微分方程:
y'=(Q12+Q42-Q22-Qe2)/24;  tspan=[0 20] ;y0=60

(m=fix(t/T)为用于取整的)

我自己写了个常微分方程主程序函数,但是得出结果图形感觉不太对 。
function dydt=VVTY(t,y)
V2=60;V0=30;Q0=720;Q6=216;Q1=936;Q4=1080; T=4;f=1/2;m=fix(t/T);Vmax=V0+(Q1/24)*(T/4); 
if t>=T/4+m*T&&t<=T/2+m*T
    Q12=Q1;
else
    Q12=0;
end

if t>=T/2+m*T&&t<=3*T/4+m*T
    Q22=24*(((Q4/24)*(T/4)+(Vmax-V2))/(T/4));
else
    Q22=0;
end

if t>=T/2+m*T&&t<=3*T/4+m*T
    Q42=Q4;
else
    Q42=0;
end

if t>=T+m*T&&t<=5*T/4+m*T
    Qe2=24*((f*V2)/(T/4));
else
    Qe2=0;
end
dydt=(Q12+Q42-Q22-Qe2)/24;


tspan=[0 20];yo=30;
[t,y]=ode23(@VVTY,tspan,yo);
plot(t,y,'--')
size(t)

麻烦大家看下分段的常微分方程能否如此的解决,谢谢!