我那辆2005年式Honda Accord的左侧煞车灯几天前烧坏了。这不是什么大不了的问题:很幸运地只要花几秒钟就能换好灯泡,不像是头灯或是现在某些其他车辆的车灯那么麻烦;就算是这样,让我感到困惑的是,两年前同一个位置的非LED白炽灯也烧坏过,在那之前的几年也发生过一次,现在又这样…(身为一个工程师,我总是会保留这类纪录)。
这样的“巧合”让我非常好奇,特别是因为右侧的那个煞车灯灯泡从来没烧坏过。我的除错经验告诉我,这就只是一个巧合,就像是丢硬币会出现正面或反面的机率;当然这件事可以就这样简单换个灯泡就让它过去,但或许就是太方便轻松,我忍不住检查了灯泡插座──看起来很干净(没有锈蚀或烧熔的痕迹)──以及所有的关联线路。
因为年份比较久,这辆车并没有连网,所有的线路都很基本,形成开关直流回路(switched DC loops),而这确实也能简化故障分析并减少可能的故障原因。于是我开始思索到底可能是哪里出问题...如果是为两侧煞车灯供电的开关高侧线路有一些过压(overvoltage)状况,那么两边的灯泡应该都会发生故障。
考虑其低故障率与平均故障间隔时间(MTTF),或许另一侧的灯泡很快也会不亮了,但就是没有足够的数据可以判断。又或许左侧的灯泡有一些持续发生的微振动(microvibration),这会缩短灯泡的使用寿命…还是有一些我想不到的可能原因?
我的另外一个想法是从其他角度来找原因。或许,第一颗灯泡与后来的那颗灯泡都烧坏,只因为它们是不合标准的产品(因为两颗灯泡是一起买的、在同一个包装里,如下图);所以灯泡烧坏跟车子与车内的电气系统无关,而是灯泡零件本身?这应该不是第一次发生的状况,在一连串的故障排除过程中,我们以为替换零件是好的,实际上并非如此。
两颗来自同一包装的煞车灯灯泡都发生故障,其中一颗是另外一颗的替换品…所以问题可能是来自灯泡并非车子本身?
(来源:Bill Schweber)
我将这类型情况称为“工程师的困境”(the engineer’s dilemma);无论是出自于我们的天性或是开发项目的必要项目,工程师们就是会除错。有时候这种除错很容易,但往往会让人感到沮丧,因为充斥着错误的路径、矛盾的证据、不相关的巧合,还有错误的希望。
以我的案例来说,因为无法取得汽车制造商的数据库还有客服相关细节,说不定这个问题实际上在这个年份与型号的车款上并不罕见;同时出厂的车子有成千上万辆,基于「大数法则」(the law of large numbers),我的经验只是其中一个样本。此外,我做出任何更大的结论本质上都是怀疑,因为我的个案并不具代表性,可能只是一个特例。
除错是工程技能的一种,有部分来自于详细知识,其他元素还包括经验、指导、直觉、猜测功力还有运气,特别是在硬件端。一旦发现微妙的电路问题,可能就会出现最后回想起来其实一切都是如此明显的“啊哈!”瞬间;但很多时候情况恰好相反,只会松口气、仍忍不住一直想:这是真正的问题根源吗?或者只是巧合的发现?真正的问题会接着浮现吗?
虽然有很多针对特定除错问题以及其解答的案例研究(case studies)与“战争故事”(war stories),但基于许多理由,通常关于如何除错的教材非常少;因为那些一般性说明与准则往往不适用。尽管如此,有一本很棒的书可供参考:《除错:找出最难以捉摸软硬件问题的9个必要原则》(Debugging: The 9 Indispensable Rules For Finding Even the Most Elusive Software and Hardware Problems),作者是David J. Agans。这本书不是纸上谈兵,而来自实战经验的指南。
这本教你如何掌握除错诀窍的好书,无论对新手或老手工程师都会很有帮助
(来源:Amazon)
在此同时,我已经决定不再烦恼我的煞车灯泡问题;因为我的“直觉”告诉我,找出这种问题根源的机率非常小。毕竟这是每隔几年才会发生一次的情况,我还有很多别的事要做。你也曾经遇过让你非常困扰的除错问题,而且因为缺乏数据、故障案例数量不足、MTTF太长或是因为现实世界的一些限制而无法解决吗?欢迎分享!
编译:Judith Cheng
关注最前沿的电子设计资讯,请关注“电子工程专辑微信公众号”
- 真能装,说了半天没有主题,xiajibache。
- 作者:Bill Schweber
呵呵,一看题目,我猜就是外国人所为,见多了,八九不离十!因为国人十分罕见! - 空唠叨!明显是更换品质差的的灯泡了,瞎胡言乱语。
- 说了等于没说,明显就是更换的灯质量有问题。
- 我到底看了什麼
- 好像有续集?我会买一本来看看,这可能您写这篇发文的本意。
- 还真有吃不到葡萄说葡萄酸的童鞋呢:)
- 凑,废话半天没故事、没干货,吃饭排半天队最后告诉你打烊了…
- 草
- 说了半天,原来是广告!(~_~;)