
我們用振動台為國家填空 文/萬湖小舟
八十年代思想解放後,不僅給文藝界,教育界帶來了春天,給科技界和各行各業都注入了活力。全國各個高校和研究單位的科研工作者都鼓足了幹勁要把耽誤了時間補回來,要追趕世界科技。
當時一項重要的科研任務由國家下達到了我們大學國家重點試驗室。要求研製數字式隨機振動控制系統,填補國內空白,或彌補航天部功能較弱的國產設備的不足。不然國家每年要花費大量外匯進口有關設備。光配套一部設備的軟件就要30幾萬美元。
這個隨機振動控制系統是用來做環境試驗的。設計的工業產品,比如汽車的底盤,衛星,導彈,電子產品等等,在工作環境中都要經歷隨機振動。要判斷產品的質量和可靠性,以及發現問題,改進設計,就要讓製造出來的產品在實際的工作環境中經歷考驗。比如讓製造出來的汽車隨機的在不同的路況上跑出二,三十萬公里,然後來檢查產品的質量。這種方法就是環境試驗。
讓產品在實際工作環境中接受考驗,好是好,但缺點是太費時,太費力。試驗周期太長。不能儘快發現問題,改進產品設計,提高質量。能不能把環境試驗搬到試驗室里來,把要試驗的產品放到振動台上,讓計算機發出模擬工作環境的隨機振動的信號。這樣就能極大地縮短試驗時間,提高試驗效率。
美國人走到了前面。美國軍方通過大量的試驗以後,制訂了試驗標準。也就是對什麼樣的產品,應該用什麼樣的隨機激振信號。美國著名的惠普公司研製了相應的控制系統。全球銷售。中國是其銷售的重點區域。中國人花錢,花得心痛;美國人數錢,數得手軟。
既然信號是隨機的,如何還有標準? 標準是規定這些隨機時域信號中包含的各種頻率帶寬,頻率幅值大小和形狀。比如汽車的激振信號就不同於衛星的激振信號,因為它們在工作環境下經受的振動頻率和帶寬不同。我們的任務之一就是把頻域裡的各種標準譜圖轉變成時域裡的隨機激振信號,驅動振動台振動。
舉國體制的好處是效率高。統籌安排,大學負責研製控制系統,大型國有企業負責製造振動台,通力合作。
學校調兵遣將。國家重點試驗室組成了科研隊伍。Y老師掛帥。這位試驗力學專家巾幗不讓鬚眉,是課題組長。我作為研究生也有幸被學校選為課題組成員。由於這個項目是我們專業的課題,物理方面的原理我比其他組員了解多一些。讓我負責應用軟件開發。其他組員,有的來自工廠負責振動台和計算機的接口電路設計。有的來自計算機系,他們負責實時操作系統的應用。各負其責。用現在的科技語言來講就是研製實時控制的嵌入式系統。
那時課題組成員都很年輕,接受新東西快,也能吃苦。當時國內幾乎沒有參考設備和相應的中文資料。航天部為我們進口的所有設備,其說明書和有關資料全是英文的,而且需要使用的計算機語言,操作系統,是面向實時控制用的,那時國內都沒有使用過。看到一箱一箱的英文參考資料和文獻。不說搞課題,光看英文資料,對我們都是一項挑戰。
夏天來臨時,試驗室雖然有空調,但人多嘈雜。為了儘快學習實時控制語言,開發應用軟件。我拿起厚厚的一本英文資料去了學校的林蔭叢中。科技文獻閱讀是研究生英語訓練的一門課程。真正排上用場,還是那次科研項目。在樹下細讀,精讀,有了感悟就趕快到試驗室,開機寫代碼。
應用軟件包括,模數和數模轉換,數據採集,信號處理,數理統計,科學計算,包括快速傅里葉變換和反變換(FFT和IFFT),自功率譜測量和分析,隨機相位調製, 閉環控制,系統管理。還有計算機之間的通訊,人機對話,實時圖形顯示等等。
有時乘坐公共汽車,在汽車上也在苦思冥想,為何輸出的信號不合理,想到了可能有一處代碼有誤,下車就直奔實驗室改進代碼調試,當正確的數據顯示出來的時候,獲得的成就感直書臉頰。
那時國內沒有像現在那麼有錢。由於課題經費的限制,課題組無法購買昂貴的專用硬件FFT板卡(比如昂貴的專用DSP硬件),要求快速傅里葉變換(FFT)和反變換(IFFT)用軟件實現。我一邊看FFT的工作原理,一邊用實時控制語言來開發FFT和IFFT的軟件包。八十年代初專門用於加速複雜的浮點運算的數學協處理器(Intel 8087 math coprocessor)剛剛問世,中期引入中國。為了提高速度,我採用匯編語言直接底層操作 8087 協處理器的各個寄存器,儘量減少 CPU 訪問內存的次數來優化代碼,同時採用指令周期最短的指令。把FFT和IFFT的軟件做成高級語言和匯編語言的混合體,開發了兩種語言相互調用和參數傳遞的方法。還編寫了利用計算機內部時鐘測量程序運行時間的軟件,由此可以觀察到代碼優化的效率,硬是一點一點地把運行FFT/IFFT的時間從200多毫秒、100多毫秒、直到打磨到最快的30-40毫秒。因為只有把 FFT/IFFT 的運行時間控制在30-40毫秒以內,振動台才能實時響應控制信號,整個系統才真正具備工程應用價值,從而滿足了課題要求。
由此我寫了一篇文章介紹這種匯編語言和高級計算機語言相互調用和參數傳遞,以及代碼優化的方法,在國內一個科技雜誌上刊登過。
前段時間看到外媒一篇報道,當下一些中國企業在面對高端芯片限制時,通過優化底層代碼的方法,讓低端芯片的性能幾乎趕上高端芯片的性能。我常常會心一笑,那種用匯編語言直接操作寄存器優化代碼,並使用指令周期最短的指令來提高芯片執行速度的方法,也許是國內那些企業採用的方法之一。
課題中涉及大量計算機的應用,比如異種機的通訊,軟件測試,計算機內部時鐘的使用,中斷服務程序的開發,計算機內部芯片和接口電路的應用等等。對於這些技術我也寫了一篇文章,被美國當年計算機應用的國際年會錄用了,要求與會宣讀論文。我們學校還有一篇文章也被那次會議錄用,是我們學校計算機系系主任的文章。他聽說我的文章也在其中,極為鼓勵和表揚。
那時物質條件並不豐富。沒有人干工作是為了錢。看到Y老師一位布衣學者,身負重任,統領"全軍",起早貪黑,反映了當時中國知識分子為國奉獻的品質。課題組成員都努力工作,廢寢忘食,知難而進。每個人都是為課題做出了很大的貢獻。
這個科研項目終於研製成功了。看到振動台在我們的數字式隨機振動控制系統發出的信號下振動時,大家都開心的笑了。這項科研成果獲得部級二等獎。
當時學校規定,碩士生論文必須要有兩位校外專家審閱。我的碩士生論文的校外專家之一是一位清華大學的試驗力學教授。記得我的導師在我答辯前高興地通知我,清華大學對我的碩士論文的評句寫的比本校還好。他讓我放心,答辯一定能取得好成績。
這個項目鍛煉了每一個人。此後Y老師又不斷承擔國家級項目,向科研高峰邁進。工廠派來的課題組成員Z(也是我的校友),後來成了他們大型企業的總工。計算機系負責實時操作系統應用的校友W,以後在美國成了這方面的專家,被很多公司請去辦講座,講授實時控制操作系統。
多年後,我在德國完成了博士論文,隨後進入一所大學的金屬成型研究所擔任研究工程師。在這裡,我負責由德國奧迪汽車公司委託的科研項目 (Automatische Kreisgitter-Dehnungsanalyse)。完成該項目需要將計算機成像、圖像識別、曲線擬合與塑性力學理論相結合,用於汽車部件的應力和應變分析,進而指導衝壓機器的調整以改進產品受力。 面對這樣一個前沿課題,我能夠順利完成它,讓研究所和奧迪公司滿意,這和當年在國內那個振動台項目里打下的計算機應用基礎有着一定的關聯——萬變不離其宗。那台機器研製成功後,德國同事按照他們的習慣,稱每個負責課題的工程師為 Maschinenvater(機器之父),我也因此被他們打趣地稱作那台奧迪檢測設備的“機器之父”。 也正是因為在這個科研項目的成功,加拿大一家研究所後來邀請我前往加國,擔任一個為美國三大汽車公司研製液壓成型試驗機科研項目的課題組長。這一來,開弓就沒有回頭箭了,那是後話。
時光荏苒,子在川上曰:“逝者如斯夫!不舍晝夜。“每每念及在林蔭下與英文文獻、計算機代碼為伴的炎夏,心中總湧起一股泥土與草木的清香。現如今,異國他鄉,回望那個科研項目,腦海中浮現最多的,仍是當年課題組長Y老師和同仁們頂風冒雨,布衣草帽、如“採茶人”般在數據中抽絲剝繭、在振動台的反饋信號中察言觀色,“關山河渡“的身影。特賦“如夢令”一首,以志那段無悔的流年: 【如夢令】似水流年 (新韻) 文/萬湖小舟 曾飲桑菊驅暑, 林下沉思獨處。 又見採茶人, 草帽關山河渡 注目, 注目, 報喜那天十五。
相關閱讀: 1)時代印記:籍貫、分配、草皮 2)寫給心比天高逝去的年華 (孔湃樂Copilot製圖) |