发布于 2011-03-19 17:41:35
5楼
这道题目我先给一个不用PID的算法:
由于未说明水位检测是联续的还是离散的,先假定水位检测是连续的。
首先得设定一个水位的上限和下限,在上下限范围内,认为水位是正常的,不需要调节。因为这种方式不可能保证水位一直保持在一个值不变,而只能保证水位稳定在一个范围内。所以上面的设定并无问题。
初始状态,水泵都没有开,水位是上升的。
当水位子超出设定上限时,先开一台泵,然后检测水位状态,如果还是在上升,则开第二台泵,第三台泵,直到水位出现下降趋势。这时候记录下此时的开泵数量。
这时候停止开泵还有些早,因为此时水位可能下降很慢,所以还要开泵,再开的泵的数量与实际水位到目标水位的差值按一定比例来计算。
当水位下降到上限水位以下时,调整开泵数量到刚才记录下的开泵数。并检测水位变化趋势。如水位下降,则不处理,如水位上升,则一台一台的增加水泵数量,直至水位下降停止。
当这样运行一段时间后,水位会接近下限,此时要关闭一台水泵。并检测水位变化。如果水位仍在下降,继续关闭水泵,直到水位开始回升时停止。
水位变化状态的检测在整个过程中都是在进行的,当水位处于上下限以内,但变化趋势与期望的不一致时,就要开泵或关泵,每次一台。直到水位变化与期望一致。
没有