電機設計的速度是關系到一個企業能否在激烈市場競爭中快速反應、搶占先機的問題,如何能在最短的設計周期中不致忙中出錯、保質保量提供新產品,充分利用微機輔助設計是至關重要的。電機設計既有電磁計算又有強度校核計算、優化計算、成本計算及各類專項計算要求輸入較多的基本數據,如果單獨開發這些計算軟件,不可避免會重復輸入和輸出數據,不僅麻煩,而且容易出錯,更談不上軟件的易維護和可擴展性。利用軟件開發中的對象思想,將電機各部分描述為不同的對象,在此基礎上進行統一的軟件開發,具有事半功倍的效果。本文結合作者在開發同步電機集成計算軟件過程中的一些經驗,提出一種電機輔助設計的專用軟件設計模式。
電機設計的計算按功能大致可分為基本尺寸、參數計算、電磁計算、強度計算(軸的撓度計算、磁極壓板計算、阻尼環計算、機架撓度計算等)、專項計算(繞組計算、鐵耗計算、通風計算等)、成本計算等等,在尚無較好的開發模式時,分別開發各類計算軟件,工作重復性很大,軟件可重用度不高,且界面不統一,不利于掌握應用。經過分析我們發現,僅從功能上去區分比較麻煩,現從電機的物理結構著手分析。以凸極同步發電機為例,它可分為:定子繞組、定子鐵心、轉子繞組、轉子鐵心等幾大主要部件;細分下去,定子鐵心又可分為定子沖片、拉緊螺桿、壓圈等幾個零件;上述其他部件也可以劃分成若干零件。
再以定子沖片為例來分析零件,定子沖片由硅鋼片構成,我們可以構建一個沖片類(cstator- frock),提取它的屬性,它應具備材料、沖片外徑、沖片內徑,槽數、沖片拼數、槽寬、槽高等屬性,將這些屬性設為沖片類的屬性。再細分一步,我們從材料來分析,發現材料具有一些共性,如材料的密度、電阻率、許用應力等基本特性。這樣,我們就可以把各類電機在一個具有非常相似的層面上進行抽象。
現在,我們需要從編碼的角度,按上述對象的區分原則,來具體建立類。這可以完全從頭建立一個新類,也可以從cobect派生,以便利用mfc的消息處理等特性。為簡單起見,這里建立一個不是繼承自cobect的新類,仍然以定子沖片為例:在上述代碼中,我們建立了定子沖片類(cstatorfrock),它具有定子沖片的所有特征,如:沖片的內、外徑,槽數,槽寬等數據屬性,最后還用一個材料類來表示沖片的材料。對于沖片所需的其他常用計算如求沖片的面積、繪制沖片的圖形等,均可以聲明為cstatorfrock的方法。由于電機的類通常較為簡單結合實際使用情況,我們把類方法全部聲明為public.其它的類可以同樣建立。當然,為了使用這些類,還需要考慮更多的問題,下面我們將考慮類的數據庫支持和在實際編程的使用情況。
軟件離不開數據庫的支持,我們可以采用關系數據庫來存儲各類數據。為了在各類實際過程中方便地使用我們建立的類,可以先建立一個本地的關系數據庫。數據庫可以采用foxpro或access等軟件來建立,在實際應用中選用了access數據庫因為access功能強大,使用容易,無需太多的編程知識。
數據庫的內容包括一臺電機計算所需的全部基本數據,如:定子工裝數據、轉子工裝數據、電機的額定數據、常用材料數據等等。除此之外,還應建立一個用戶信息數據表,用于軟件的系統維護。
總之,通過該數據庫應該能夠全面反映一個對象電機。在建立數據庫時,應該充分了解電機設計對數據的需求,避免數據的冗余和不足。如何將類和數據庫聯系起來呢可以采用多種技術如odbc、ado、sql語句等,這些技術各有優勢,具體使用可以參看相關的數據庫編程書籍。類的方法中可以添加兩個讀取數據庫的功能函數etdata和savedata),或者米用一個獨立的數據模塊,由該數據模塊調用或存儲數據庫這樣做,對于軟件的擴展和修改非常方便。正是采用數據庫技術各種計算可以共用數據庫中的數據,從而大大減少數據的重復輸入。由于有了數據庫的支持,可以在此基礎上建立一個報表中心,為各種輸出數據提供定制報表。
完成了上述工作,就可以在實際編程工作中充分利用對象技術。例如,在電磁計算中,由于涉及的內容相當多和雜,不得不在程序中聲明許多變量,以致使程序晦澀難懂;現在如果充分利用對象技術,可以將大量的變量和函數封裝在類本身當中,如:利用系數查找類封裝所有的確定電機各種系數的功能;利用數學類封裝常用的數學公式。由于廣泛采用面向對象的技術目標程序的許多功能內置于各對象類中,主干代碼中可以減少數量可觀的變量,避免同樣功能的函數多次聲明,減少了出錯的機會,程序主干結構清晰,用途明確,代碼可讀性、易維護性大大提高。而且隨著類功能的完善和補充,使得程序相當容易擴充。
面向對象技術不僅僅是一種編程技術更是一種分析事物的思想,它廣泛應用于各門類的學科。隨著電機技術的發展,電機設計計算必將不斷充實新的內容,這就要求電機的專用軟件必須是一種開放式的、易擴展的軟件。具有封裝、繼承、多態特點的面向對象技術在電機的專用軟件開發中具有重要意義。本文從實際應用的角度,提出了一種如何在電機的輔助設計計算中全面應用對象技術簡化、規范同類計算編程的模式。