火星車傾倒問題——巢狀原理應用
一個科幻故事裡描述了一次火星探險。宇宙飛船降落在一個石頭山谷,宇航員乘坐一兩火星車開始火星之旅。這個特型火星車有巨大的輪胎,當行駛到陡坡時,很容易在石頭的顛簸下翻車。怎麼辦?
這個問題刊登在一本雜誌上,收到了大量的讀者來信,提供解決辦法:
在火星車的下面懸掛重物,降低整車的重心,增加穩定性;
將輪胎的氣放出一半,輪胎下陷,增加穩定性;
在火星車的兩邊分別多安裝一隻輪胎;
讓宇航員探出身體來保持車子的平衡;
……
上面的各種建議,確實能改善火星車的穩定性,但明顯都帶來另一些問 題,比如:降低了火星車的運動效能,降低了車速,讓火星車變得更復雜,增加宇航員的危險性等。
由於以上正反兩方面問題的存在,有一位讀者乾脆建議:“什麼辦法都沒有了,讓宇航員走路吧!”
這個問題似乎是一個難以解決的問題。
突然,萃智先生出現了。
“將重物放得非常低以接近火星的地面,以降低車子的重心而且在火星車裡面。”他說。
隨後,一個基於巢狀原理的解決方案展示了出來:在火星車的輪胎裡放置球形重物,這些重物可以滾動,總處在輪胎的最下面,以最低的重心來保持火星車的穩定。
這個故事用到了巢狀(nesting)原理,該原理體現在兩個方面:
1.將第1個物體嵌入第2個物體,然後將這2個物體一起嵌入第3個物體,……
比如:碗與碗的巢狀疊放;紙杯與紙杯的套放,還有桶與桶的巢狀疊放等。
2.讓物體穿過另一物體的空腔。
比如:拉桿天線;液壓缸、氣缸;可伸展的貨車套疊車廂。
套裝的目的是在不影響原有功能的情況下:A)在需要時,可以減少系統的體積和便於攜帶,也可以減少系統的重量,比如伸縮式多級液壓缸等;B)不妨礙正常作業,比如飛機的起落架;C)減少物體在超系統中的存放體積,比如超市的手推車;D)充分利用系統的空間,從而減少系統的佔用空間,比如推拉門。
巢狀原理與軟體設計思想中的組合模式(程式段巢狀)在組織上類似,但目的還是有些詫異,軟體設計中的組合模式的目的是一致性對待,而巢狀原理的目的是為了節省空間。
考慮巢狀時可以嘗試從不同的角度來考慮巢狀:水平,垂直,旋轉和包容,考察能否節省了空間或者減少重量。
需要注意的是:運用這種原理時有時會削弱巢狀物體的功能,故應儘量避免這種影響。
參考文獻:創新與發明,http://coursehome.zhihuishu.com/courseHome/1000009064/80304/16?state=1#teachTeam;