下面的代码:MATLAB不会计算条件
clear;
channel = ddeinit('view','tagname');
temperature = ddereq(channel,'temperature');
poistka = 0;
time = 0;
kvas = 0;
ohrev= 1;
steam=300;
pressure=100;
steam2= 50;
tempom = 1;
pom = 0;
while time<3600
ventil = ddereq(channel,'ventil');
pause(0.1);
time= time+1;
pom = pom+1;
if (kvas<=100)
kvas = kvas+1;
end;
if (kvas>=100 && temperature<95 && ohrev==1)
temperature = temperature+1;
tempom=0;
end;
if (temperature==95)
ohrev=0;
end;
if (ohrev==0)
temperature = temperature -0.1;
tempom = 1;
end;
if (temperature==70)
ohrev=1;
end;
end;
我与MATLAB comunnicating和InTouch中做的可视化,但我想不出为什么变量ohrev
不会成为1
时temperature
达到70
的值。 它上升到95
,然后下降到0
但它应该停止在70
并再次去95
等,但它不起作用。任何建议?非常感谢您
您的代码不完整 - 变量温度未启动。 – 16per9
我的猜测:[不要执行与浮点数的精确匹配](http://stackoverflow.com/questions/686439/why-is-24-0000-not-equal-to-24-0000-in-matlab ),特别是当他们计算未分配。 – TroyHaskin
我运行你的代码,当kvas变为100时,变量温度上升到70并达到它的值。 – 16per9