系统 · 11/15
过冲与振荡Overshoot and Oscillation
反馈赶不上纠偏的力度时,调整会越过目标,甚至来回摆动。
纠正飞行姿态的动作,反而让飞机上下颠簸。1903 年 12 月 17 日,美国北卡罗来纳州基蒂霍克附近,奥维尔·莱特趴在“飞行者一号”的下翼上,开始首次成功的动力飞行。哥哥威尔伯在旁边奔跑,协助起飞。飞机离地后,机头不断上仰、下俯;奥维尔操纵升降舵纠正姿态,却反复矫枉过正。敏感的操纵装置让他很难把飞机稳住。这次载入史册的飞行只持续了 12 秒,前进约 36 米,随后落在沙地上。
为什么成立
旧动作还没见效,新动作已经加上去了
假设你洗澡时觉得水冷,把龙头往热水方向拧。热水还在管道里,你又拧了一次。等热水到达,水温已经烫得受不了;你赶紧往冷水方向拧,又重复刚才的动作。每次调整都想靠近舒服的温度,结果却在冷热之间摆动。
过冲是系统越过目标值;振荡是系统在目标值两侧反复摆动。这里讨论滞后纠偏这一种机制:你看到的偏差尚未充分反映前几次动作的效果。等你发现已经到位,那些动作还在继续生效。
晚一拍,足以改变调整的结果
一个简化模型能把这件事算清。设 是第 次观察时“实际值减目标值”的偏差, 是每次纠正的比例。目标固定,纠正量与偏差成正比;若依据上一拍的读数调整:
白话说,下一拍的偏差,等于现在的偏差减去按旧读数做出的纠正。取 ,两次起始偏差均为 10,后续依次为 0、−10、−10、0、10、10,循环往复。偏差已经归零,旧读数却仍在要求继续纠正。
纠正得更猛,也会更难稳定
同样的模型若使用当前读数, 一次就能归零。滞后改变了合适的调整力度:力度较小,摆动能逐渐收敛;力度过大,摆幅会扩大。实际操作要把尚未生效的动作算进去,接近目标时收小调整,并留出观察效果的时间。
出处
这一模型来自控制理论,后来进入系统动力学。1868 年,詹姆斯·克拉克·麦克斯韦在《论调速器》中分析机器调速装置,说明增强纠偏力度会使平稳恢复变成越来越剧烈的振荡。1961 年,杰伊·福雷斯特在《工业动力学》中把类似机制用于解释企业生产与库存的波动。
换个领域看
商业
库存冲过需求
备货跟着旧需求走,需求骤降后就会留下过量库存。2001 财年第三季度,思科因产品需求突然大幅下降,计提了 22 亿美元的过剩库存费用。此前按需求预测准备的货,超过了新的销售需要。采购和生产无法随销量即时收住,供给便冲过了市场能消化的数量。
技术
扩容越扩越多
扩容尚未见效时重复加机器,会把容量推得过高。假设你管理网站,新增服务器要五分钟才能接流量,系统却每分钟检查负载并扩容。第一批机器还没上线,后面几批已被启动。全部上线后负载骤降,系统又连续缩容,最终在机器过多与过少之间摆动。
个人生活
冷热来回追赶
调水温时,连续大幅拧龙头会让你追着冷热跑。设想你住在热水管较长的房子里,每次调整要等几秒才传到花洒。水冷就猛加热水,水烫又猛加冷水。上一轮调整还没传到花洒,下一轮就已执行;效果随后依次到达,水温便越过了舒服的范围。一次小调后等水温稳定,再决定是否继续,更容易停在舒服的位置。
遇事时问自己
- 我现在看到的偏差,反映的是哪一次调整之前的状态?
- 已经下单、启动或执行,但尚未显现效果的动作,还有多少?
- 从调整到看见主要效果要多久,我是否在这段时间里反复加码?
- 接近目标时,我能否收小每次调整,并设定一个可接受的范围?
- 若摆动越来越大,我能否先减小纠偏力度,再观察一个完整的反应周期?
边界与误用
滞后且过强的纠偏,是产生过冲与振荡的一种机制。惯性与阻尼不足也能造成过冲和衰减振荡,无须读数或执行存在延迟。股价涨跌、季节性销量起伏,单凭曲线来回波动不足以归因于纠偏过度。延迟也不会自动制造振荡:调整足够温和,系统仍能平稳靠近目标;一次过冲也能随后收敛。最常见的误用是把“少折腾”当成任何时候都该等待。火灾扩大、账户逼近强制平仓线时,必须及时行动;应当限制重复动作的总量,并追踪已执行措施,而不是等危险自行消退。
练一练
一家支付平台的商户入驻审核组,每天收到的申请数量稳定。积压增加后,审核主管每周招一批新人。新人要培训四周才能独立审核。连续招聘三周,积压仍在增加,主管准备把下一批招聘人数翻倍。
哪一步最有助于判断是否应该加大招聘?
多看几次、小批追加,显得更灵活。但培训仍需四周,频繁追加也可能累积成很大的招聘总量。
当前积压还没有反映前三批招聘的全部效果。把即将到来的审核能力算进去,才能判断还缺多少人。
积压降下来才停,似乎能确保问题解决。但到那时,仍在培训的人还会陆续上岗,审核能力可能超过需要。
一次补齐缺口,似乎能更快清掉积压。但只看当前缺口,会漏算已经招入、尚未独立审核的人。
招聘已经执行,新增审核能力却要四周后才到位。主管若只盯着当前积压继续加码,几批新人上岗后,人员可能超过实际需要。判断下一步之前,要先算清尚未显效的动作。
你在自家阳台种盆栽番茄,用埋在盆土深处的探头测湿度。浇下的水通常要半小时才渗到探头附近。你每五分钟看一次读数,觉得仍然太干,就再浇一杯。约半小时后,读数刚到目标值,你停止浇水;上层土里还有水正在向下渗。
停止浇水后,接下来最可能出现什么?
停手不会让已经浇下的水停止渗透。后几杯水还在途中,探头读数会继续反映它们的效果。
效果迟迟不到,容易被理解成作用微弱。但到达得慢不等于最终作用小,几杯水的效果仍会累积。
停止浇水,容易让人以为湿度也会停止变化。但土里的水仍在向下渗,当前读数还没显示全部效果。
连续调整后越过目标,容易让人预期反复摆动。但这里没有根据读数反复增湿、降湿的过程,不能据此判断会持续循环。
探头还没显示前几杯水的效果,你就继续浇水,几次动作因此叠加。读数到达目标时,后续效果仍在到来,湿度可能继续上升。越过一次目标,不意味着一定会反复摆动。
一位准备支付孩子海外学费的家长,持有一笔美元定期存款,期间没有买卖或换汇。银行显示的人民币折算金额,几次高于、几次低于存入时的记账金额。核对后发现,变化来自美元兑人民币汇率。朋友认为,这是家长调仓太频繁、效果来得太慢造成的。
对朋友的解释,哪种判断最站得住?
频繁查看确实可能诱发频繁操作。但这位家长没有操作,查看本身不会改变存款的折算金额。
折算金额由汇率推动,持仓没有调整。仅凭金额来回跨过记账金额,不能归因于滞后的纠偏动作。
等结算后再判断,显得谨慎。但这里已经确认没有调仓,等待不能补出不存在的调整动作。
曲线反复跨过一条线,很像纠偏后越过目标。但记账金额只是比较基准,这里也没有调仓动作可供解释。
卡片讨论的机制,需要有偏差触发调整,再由滞后的调整效果推动下一轮变化。这里的金额变化来自汇率,没有这条因果链。曲线相似,不能替代对成因的判断。