作者:楊福宇 這是二個真實的故事,一個是技術(shù)層面的,知道了對你可能有用,一個是管理層面的,可能會觸動你的良心,使你更為堅強。 有冗余就不會再出問題嗎?這里舉出例子,說明冗余只有在關鍵性部位才有用,如果還存在失效單點,就不能保證不出問題了。這涉及常說的短板理論,短板理論是指水桶的容量由最短的那塊板決定,別的板再長也不起作用。有的控制系統(tǒng)用了多重冗余,那么能否避免通信造成的故障呢?這要看冗余措施是否對癥下藥,不然也是空有其表。下面是有4重冗余的系統(tǒng),它依然失效了: https://wiki.sei.cmu.edu/aadl/images/9/97/Honeywell-NetworkModeling-AADL-4-17-12.pdf 2008年5月13日12:12分NASA的航天飛機加氫燃料時發(fā)生了4臺控制計算機的不一致,情況是3比1,3臺是一致的,3秒之后,不一致變?yōu)?比1比1,診斷時剩下的2臺還不一致,4臺計算機變?yōu)?比1比1比1,整個系統(tǒng)全不一致。但是沒有一臺計算機有錯,它們間的通信也沒有錯。有錯的是MDM FA2儀表盒,它通過多掛接口的總線(類似于MIL STD1553)對4臺計算機發(fā)消息。查出的結(jié)果是數(shù)據(jù)接口的二極管內(nèi)有一裂紋,將二極管變?yōu)?a href="http://m.qingdxww.cn/keyword/電容" target="_blank" class="relatedlink">電容的特性了。 據(jù)稱,在其它實踐中還有別的變化例子,如電容變?yōu)?a href="http://m.qingdxww.cn/keyword/電阻" target="_blank" class="relatedlink">電阻,晶體管變?yōu)?a href="http://m.qingdxww.cn/keyword/可控硅" target="_blank" class="relatedlink">可控硅,放大器變?yōu)?a href="http://m.qingdxww.cn/keyword/振蕩器" target="_blank" class="relatedlink">振蕩器。 就通信而言,硬件損壞能造成這樣的后果,軟件故障也能造成這樣的后果,例如在電磁干擾下通信接口會有局部的暫時的錯,CAN就會有錯幀漏檢,多重冗余的計算機就收到不同的值,造成不一致。CAN通信接口會局部的暫時的中斷服務,也就使冗余的計算機得不到消息,而造成不一致。 又如有的應用采用二條CAN總線來傳送同一條消息,或者在同一CAN總線上送二次。這樣的措施對錯幀漏檢是無效的,因為收到二條“合法”的然而值不相同的消息,你是沒法判斷那條是對的。對這種拜占庭錯要用到專門的表決方法(參見:楊福宇,“分布式嵌入系統(tǒng)中的交互一致性“,《單片機與嵌入式系統(tǒng)應用》,2011, No.3,p.4-7)。當采用附加的軟件CRC檢驗時,對檢驗結(jié)果要有一個反饋消息(ACK或NACK),節(jié)點間對同一消息要取得一致,更要對這個反饋消息實行表決,通信系統(tǒng)的瑕疵用主機上的軟件來糾正,需要大量帶寬與充分的響應時間,嚴格論證多種錯誤交互影響時的失效概率的復雜性大為增加。 對于廣大年輕工程師來說,對自己不了解的東西不妨多問幾個為什么,不要覺得是對權(quán)威的不尊重,不要別人說已經(jīng)有了冗余就認為萬事大吉了。當你心中有了短板的概念,你就會找到你的系統(tǒng)可靠性上的短板。你的問題也許正切中了要害,也許幫助澄清了問題,甚至挽救了事業(yè),避免了危機。 我在1986年觀看美國挑戰(zhàn)者11號發(fā)射失敗實況轉(zhuǎn)播時的印象是永遠不會忘卻的。我在這里提這件事是因為它已經(jīng)久遠,現(xiàn)在當權(quán)的人已經(jīng)沒有印象,許多80后的工程師還沒有出生或難以記憶那時發(fā)生過的事。當時現(xiàn)場的人們就在渡假,無比輕松愉快,孩子們歡呼地送他們的老師進入艙門,但是73秒后爆炸奪取了7名宇航員的生命,人們驚恐萬狀,難以面對這一悲劇。那時我在英國,與同事談起此事時,大家的表情都十分沉痛,因為那不只是美國的挫折,也是全人類的挫折,F(xiàn)在,真相已披露出來,請看: 挑戰(zhàn)者號航天飛機_百度百科http://baike.baidu.com/view/317208.htm “其實本來這場事故本來可以避免。在發(fā)射前13小時,一位重要工程師向公司上級召開了電話會議,指出了上次“挑戰(zhàn)者”號的發(fā)射由于助推器O型環(huán)失效差點毀滅,但上級由于急著完成快捷而便宜的太空旅行,保持了自己的觀點! “博伊斯喬利在總統(tǒng)委員會的聽證會上對瑟奧科爾公司的經(jīng)理們連連發(fā)炮。他的做法受到公司的指責,公司認為他不該把相關的文件披露給總統(tǒng)委員會,同事們更是對他懷恨在心,因為他打碎了他們的“金飯碗”! “挑戰(zhàn)者”的悲劇在于,博伊斯喬利在發(fā)射前6個月就對“O圈”提出質(zhì)疑,因為一年前他曾親自跑到佛羅里達,對上一次發(fā)射時使用的火箭進行了檢查,讓他吃驚的是,第一層“O圈”失靈,熱氣跑了出來,幸運的是,第二層“O圈”攔住了熱氣。博伊斯喬利現(xiàn)在仍保存著當時拍攝的“O圈”照片,本應是蜜色的潤滑油被熏成了黑色。第一層“O圈”的很多部分不見了,很顯然,它們被烤焦了。他說:“我看到這一切時,心口像堵上了一團棉花。那次發(fā)射,航天飛機竟然沒有爆炸,簡直是奇跡!” “博伊斯喬利的分析引起了宇航局的注意,把“O圈”列入需要認真檢查名單。瑟奧科爾公司也成立了一支“特遣部隊”,專門解決這一問題。然而,由于器材和人手短缺,課題進展緩慢。作為“特遣部隊”一員的博伊斯喬利給瑟奧科爾公司副總裁發(fā)去一件備忘錄,請求對“O圈”進行全面的更嚴格的試驗。他在備忘錄中寫道:“我誠實地說,我真的非常擔心,如果我們不迅速采取措施,不僅發(fā)射會失敗,連發(fā)射平臺也會付之一炬,而最嚴重的后果將是災難性的人機俱毀!” “討論進行了近5個小時,宇航局終于表示,它不會不聽火箭設計者的建議而強行發(fā)射。就在這個時候,瑟奧科爾公司副總裁請求暫停會議5分鐘。接著,瑟奧科爾總裁杰里·馬森就開口說:“我們必須作出一個可操作的決定!辈┮了箚汤R上意識到,公司主管為了取悅最主要的客戶——宇航局,態(tài)度已從“不要發(fā)射”變成了“可以發(fā)射”。 公司內(nèi)部的討論持續(xù)了不是5分鐘而是30分鐘。包括博伊斯喬利在內(nèi)的工程師被排除在外,4名高級經(jīng)理投票贊成發(fā)射。博伊斯喬利站起來,抓起那張被燒毀的“O圈”的照片,放到4名高級經(jīng)理面前的桌子上。但他們連看都不看。老板隨即接通了電視會議,通知宇航局,瑟奧科爾的態(tài)度有了變化,“挑戰(zhàn)者”可以發(fā)射。在隨后的一段時間里,宇航局一直在詢問瑟奧科爾公司關于發(fā)射的問題,但就是沒有問一問瑟奧科爾高層為什么突然改變了主意,他們只是請瑟奧科爾公司把他們改變主意的原因?qū)懗晌淖。當載著新建議的傳真在午夜時分傳到卡納維拉爾角時,宇航局已經(jīng)下定了在第二天上午發(fā)射“挑戰(zhàn)者”的決心。悲劇于是發(fā)生了……“ 我之所以大段引用,是因為在我們周圍仍然存在著這樣的土壤:有人可以為了一己私利不顧大局;有人可以為了取悅客戶不惜冒險;有人為了自己的金飯碗打擊那些正直的講科學的同事;….。 所以當你們在這種環(huán)境中奮斗時不僅要增長自己的知識,更要有負責任的決心與勇氣,你的肩上有我們的寄托。 |