我在看一些代码时,看到了一个关于「滞后」的超出上下文的注释。我想我已经弄清楚了代码的作用,所以我的问题并不涉及具体内容。我只是不明白这个术语是什么意思,以及它在编程中如何应用。我搜索了一些数学定义,但希望能获得更多信息。从我所了解的来看,滞后与根据过去发生在X上的事情预测或假定X的给定状态有关系吗?
我在看一些代码时,看到了一个关于「滞后」的超出上下文的注释。我想我已经弄清楚了代码的作用,所以我的问题并不涉及具体内容。我只是不明白这个术语是什么意思,以及它在编程中如何应用。我搜索了一些数学定义,但希望能获得更多信息。从我所了解的来看,滞后与根据过去发生在X上的事情预测或假定X的给定状态有关系吗?
一个著名的表现出滞后特性的设备是恒温器。想象一下一个恒温器,在70°F时会开启和关闭加热器。当温度在70°F左右波动时,恒温器将不断地开启和关闭加热器。通常,恒温器都具有滞后特性:它将在69°F时开启加热器,但在71°F时关闭加热器。这样可以避免不断的切换。
编辑:请参阅维基百科的文章。
恒温器示例:
heatPointLow = 8°C
heatPointHeight = 10°C
heater = off
while(true){
if(temperature < heatPointLow)
heater = on
if(temperature > heatPointHeight)
heater = off
}
如果只有一个点,系统就会在该单个点周围振荡。 在高低点之间,它取决于加热器的最后一个值是否打开或关闭。
谷歌是我的朋友:
该原理通常指任何系统基于先前状态的变化行为。因此,您可以使用状态机图或图表来模拟滞后现象。
在用户界面设计中,它指的是使用户界面落后于用户输入事件或其他事件的做法。点击按钮可能不会立即显示详细窗口;相反,会启动一个动画,逐渐改变用户界面。
我认为 Windows 7 任务栏中的那些“设备驱动程序已配置”气泡表现出了滞后现象:气泡出现响应操作系统的完成事件,并开始逐渐消失。如果用户的鼠标悬停在上面,将重置计时器,给用户时间单击气泡以获取有关事件的详细信息;即使此后鼠标事件在气泡区域之外,它也会延迟淡出动画。
在实际的集成层中,好的答案非常重要。带有滞后效应的集成层本身就是一个子系统。显然,理想情况下没有滞后效应(Moore机器);但通常每个系统的状态机存在不匹配,这只能通过使用带有滞后效应的翻译器来解决。例如,Microsoft Dynamics/Great Plains Field Service模块将状态记录在其SVC00210 Service Master Audit Trail表中。每个呼叫都处于某个SRVSTAT状态。当集成像ClickSoftware的服务优化调度程序时,需要处理其状态。CS的状态由自定义实现确定。例如,打开,路线中,现场,未完成,已取消,已完成。此外,它还有一个带有待处理部件的未完成状态,尽管这是作为未完成状态内的子状态机实现的。因此,必须将GP中的转换映射到CS中。不幸的是,GP允许(对于呼叫的屏幕输入进行记录)从一种状态转换到自身的转换;因此,该转换事件不能仅用于触发GP中的状态更改。因此,新的触发事件是GP状态转换以及由一些逻辑定义的过去事件集上的元状态的组合。正如您所看到的,滞后效应很快将问题从简单变成了复杂。从计算机科学的角度来看,理想情况是Moore机器,但实际情况是Mealy机器。我更喜欢将其视为带有错误的Mealy面粉!我认为可以从任何Mealy机器生成Moore机器,只是Moore机器会有更多的状态。参见:Mealy v/s. Moore
在YouTube上搜索“berserk hysteresis”以获取示例。如果没有滞后效应,游戏中的机器人会只是抽搐而几乎不移动(当有很多活动时)。
以下是维基百科文章第一句话的简明概述:
滞后效应是系统状态取决于其历史的依赖性。
TS;NM
在Hysteresis As Life文章中,对滞后效应的概念表达了一个有趣的观点:
不可避免地,所有滞后效应的真实用途都与此形状或图形相关-它看起来像这样: