之前俺也遇到过这种的"无理要求",在此仅提供参考.
1,最重要的是提高温度分辨率 至少能分辨0.5度,0.2度最好. 2, 学习阶段: A,假设: 计数器1=计数器2=0(计数器有正负之分) B,在21度时,使用中档,在21.5和20.5设置触发点,执行C或D C,在21.5时,使用关档,中档标志=升温,计数器1++,计数器2--;然后将触发点设置在22度,用高档加热,跳到E D,在20.5时使用高档.中档标志=降温,计数器2++,计数器1--,;然后将触发点设置在20度,用关档降温,跳到E E,若2个计数器有其中一个超过10次,则执行F,否则,等待22和20的触发点到时,将温度拉回21度(使用高档或关档),继续重复执行B, 温柔控制阶段: F,由以上步骤,可得出中档的作用(是升温还是降温) G,若中档标志==升温,使用中档和关档去控制;若中档标志==降温,使用中档和高档去控制. 出错处理:在控制过程中,若出现中档失效(根据F步骤的中档标志判断)或中档持续时间过长(在规定时间内,中档不能加温到22度或不能降温到20度),则使用关档和高档将温度拉回21度,跳至步骤A,重新学习.
说明: 1,步骤E中的次数可调整,次数太大了,可能程序停留在学习阶段跳不出来,太少了对中档的判断就不准确,程序可能在学习阶段和控制阶段中循环. 2,针对提到的中档不能加热到22度,或中档不能降温到20度(在出错处理中检测),则程序只能在学习阶段和控制阶段循环处理.等到外界环境变好时(即中档有效),程序工作在控制阶段,这是最优的控制方法.
另外,俺觉得,由于外界环境和中档的设置,该控制不可能持续稳定在最优的方案. 既然不能持续稳定,那做些例外处理也是应该.
相关链接:http://www.eesdn.cn/ |