在状态机中使用延迟
Using delays in a state machine
我正在使用有限状态机来控制电源电压。
我编程了三种状态:
关闭
开启
停止
OFF状态:输出电压为0V,单片机等待输入,没有输入保持不变
ON状态:在此状态下,输出电压会逐渐增加,直到达到某个预设值,如果达到该值,电源将关闭。如果收到正确的信号,电源也可以从此状态变为停止或关闭
停止:在该状态下,输出电压将保持在最后达到的ON状态。从此状态,电源可以 return 到 ON 并继续增加输出或转到 OFF。
我担心的是,在ON状态下,如果达到电压限制,状态不会立即改变,输出会保持一段时间delta_t,然后会转到OFF 我已经在 ON 状态下实现了该行为,当电压没有增加时,我是否应该为这次转换添加一个不同的状态?还是在州内延迟是正确的?这个新状态基本上只是一个延迟。
编辑。
这是电源处于ON状态时的理想输出,它从0开始,增加直到达到预设值,在给定时间内保持在该值并进入OFF状态。
我在此图中用电流代替了关断电压,但由于负载是纯电阻性的,所以没有区别。
如果电压平台是预期的行为(即您可以瞬时控制电压,并且您的状态机故意将其保持在高位):将 'ON' 状态拆分为单独的 'RAMP' 和 'HOLD' 状态。
如果电压平台是外部硬件的结果(例如,您的状态机停止发送 'on' 信号,但在系统的实际行为赶上之前有一些延迟:添加可能有意义一个单独的 'WAIT' 状态,它要么等待固定时间(如果延迟非常可重复),要么以闭环方式运行(例如测量电压,在非零时保持 'WAIT',然后过渡到 'OFF').
在任何一种情况下,系统似乎都在做与电压上升阶段不同的事情,因此单独的状态是有意义的。
我正在使用有限状态机来控制电源电压。
我编程了三种状态:
关闭
开启
停止
OFF状态:输出电压为0V,单片机等待输入,没有输入保持不变
ON状态:在此状态下,输出电压会逐渐增加,直到达到某个预设值,如果达到该值,电源将关闭。如果收到正确的信号,电源也可以从此状态变为停止或关闭
停止:在该状态下,输出电压将保持在最后达到的ON状态。从此状态,电源可以 return 到 ON 并继续增加输出或转到 OFF。
我担心的是,在ON状态下,如果达到电压限制,状态不会立即改变,输出会保持一段时间delta_t,然后会转到OFF 我已经在 ON 状态下实现了该行为,当电压没有增加时,我是否应该为这次转换添加一个不同的状态?还是在州内延迟是正确的?这个新状态基本上只是一个延迟。
编辑。
这是电源处于ON状态时的理想输出,它从0开始,增加直到达到预设值,在给定时间内保持在该值并进入OFF状态。
我在此图中用电流代替了关断电压,但由于负载是纯电阻性的,所以没有区别。
如果电压平台是预期的行为(即您可以瞬时控制电压,并且您的状态机故意将其保持在高位):将 'ON' 状态拆分为单独的 'RAMP' 和 'HOLD' 状态。
如果电压平台是外部硬件的结果(例如,您的状态机停止发送 'on' 信号,但在系统的实际行为赶上之前有一些延迟:添加可能有意义一个单独的 'WAIT' 状态,它要么等待固定时间(如果延迟非常可重复),要么以闭环方式运行(例如测量电压,在非零时保持 'WAIT',然后过渡到 'OFF').
在任何一种情况下,系统似乎都在做与电压上升阶段不同的事情,因此单独的状态是有意义的。