在状态机

时间:2016-05-29 03:39:07

标签: delay state-machine

我使用有限状态机来控制电源电压。

我编程了三个州:

OFF
ON
停止

enter image description here

OFF状态:输出电压为0V,如果没有输入则微控制器正在等待输入,它仍处于相同的状态。

ON状态:在此状态下,输出电压将逐渐增加,直到达到某个预设值,如果达到此值,电源将关闭。从这种状态,如果接收到正确的信号,电源也可以变为停止或关闭

停止:在此状态下,输出电压将在ON状态的最后一次达到恒定。从此状态开始,电源可以返回ON并继续增加输出或转为OFF。

我关注的是以下情况,而在ON状态下如果达到电压限制,状态不会立即改变,输出将保持恒定一段时间delta_t,然后它将变为OFF I&#39 ; m已经在ON状态下实现了这种行为,当电压没有增加时,我是否应该为此转换添加一个不同的状态?或者在州内延迟是否正确?这个新州基本上只是一个延迟。

enter image description here

编辑。

这是电源处于ON状态时的理想输出,从0开始,直到达到预设值为止,在给定时间内保持该值,并进入OFF状态。

我在此图像中放电流而不是电压,但由于负载是纯电阻,因此无差别。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果电压平台是预期的行为(即您对电压有瞬时控制,并且您的状态机故意将其保持在高电平):将“ON”状态分成单独的“RAMP”和“ HOLD'状态。

如果电压平台是外部硬件的结果(例如你的状态机停止发送'on'信号,但是在系统的实际行为赶上之前有一些延迟:添加一个单独的'WAIT是有意义的'状态,要么等待一段固定的时间(如果延迟是非常可重复的),要么以闭环方式运行(例如测量电压,保持'WAIT'而非非零,然后转换为'OFF')。 / p>

在任何一种情况下,系统似乎都在做与电压斜坡阶段不同的事情,因此单独的状态是有意义的。