在第一次达到最大值后更改循环的条件

时间:2014-03-22 16:41:12

标签: matlab loops

首次达到最高温度值时,我需要模拟从充电模式切换到放电模式。

我的Matlab代码有一系列if循环,这些if语句的条件(w = 1或w = 2)与时间有关。我读了一个定义的时间表,它在24小时内查看充电/放电周期,并且每小时定义一次条件。

我已经能够从充电切换到放电,一旦温度下降到规定的最大值以下,充电周期就会重新开始。但是,我不希望在温度第一次达到规定的最大值后24小时循环的剩余时间内充电。

有没有解决方案,可能是一些包含“until”函数的循环?

for ii = 1:M-1

             if w == 1

                    Temp(ii) = Temp(ii-1)+X; 

             elseif w == 2

                    Temp(ii) = Temp(ii-1)-Y;

             end

end

1 个答案:

答案 0 :(得分:0)

您需要一个变量来存储您在当前24小时内达到最高温度:

temperatureMax = getTemperatureMax();
for day = startDay:endDay
   temperatureMaxReached = false;
   for hour = 0:23
      if temperatureMaxReached
         discharge();
      else
         temperature = getTemperature(day, hour);
         if temperature > temperatureMax
            temperatureMaxReached = true;
            discharge();
         else
            charge();
         end
      end
   end
end