修改MATLAB代码

来源:百度知道 编辑:UC知道 时间:2024/06/18 23:10:40
请帮我查看一下这段代码为什么会有WARNING,谢谢!
function StartTime = Settime(testtime)
AveragePower = 700;
CookingTime = 1800;
RiceWeight = 6;
NoonSolarPower = 1000;
EfficientArea = pi*0.35^2;
Energy = (2/RiceWeight)*(AveragePower*CookingTime);
disp(Energy);
Efficiency = Energy/(NoonSolarPower*EfficientArea*testtime);
i = 1;
x = zeros(1,36);
for t = 0:600:21600
F = @(t)(1000*cos((t/21600)*(pi/2))-400);
if Energy < Efficiency * quad(F,t,21600)
x(1,i) = t;
i = i + 1;
disp(Efficiency * quad(F,t,21600));
end
if (Energy < Efficiency * quad(F,t,21600))&&(Energy > Efficiency * quad(F,t+600,21600))
result = t;
end
end
StartTime = result;

Warning: Minimum step size reached; singularity possible.
> In quad at 97
In Settime at 14
Warning: Minimum step size reached; singularity possible.
> In quad at 97
In Settime at 19

也就是说quad函数的值到达了极限值
把最大值-1就行了,输出一样

把quad函数的21600改为21599就行了

quad(F,t,21599)
quad(F,t+600,21599)