陳家新 何喬
摘要:電機模型繪制是永磁電機設計過程中的一個關鍵環(huán)節(jié)。永磁電機在設計時,需要經(jīng)常調整一些尺寸,若手動在 AutoCAD中繪制電機模型,則非常耗費時間且容易出錯。針對永磁電機模型在繪制過程中效率低下的問題,考慮運用參數(shù)化的思想,開發(fā)一套系統(tǒng)實現(xiàn)模型自動繪制。而采用 AutoCAD 內置的開發(fā)工具進行二次開發(fā),又會帶來使用不方便和拓展性差的問題。使用Visu- al Basic語言對 AutoCAD進行二次開發(fā),針對一款永磁同步電機實現(xiàn)了參數(shù)化繪圖,并能調整優(yōu)化參數(shù),自動批量化地繪制。繪制好的電機模型均以 DXF 格式保存在指定的文件夾內,為后續(xù)的電機優(yōu)化提供了大量的樣本。繪制系統(tǒng)界面簡潔、操作方便、自動化程度高,為以后電機產(chǎn)品的設計提供了思路。
關鍵詞:永磁電機;Visual Basic;AutoCAD;參數(shù)化
中圖分類號:TP391.72文獻標志碼:A
文章編號:1009-9492(2021)11-0017-04
開放科學(資源服務)標識碼(OSID):
Automatic Drawing System of Motor Model Based on Secondary Development of AutoCAD with VB
Chen Jiaxin1,He Qiao2
(1.School of Mechanical Engineering, Donghua University, Shanghai 201620, China;2.School of Information Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: Drawing of motor modelis a key link in the design process of permanent magnet motor. In the design of permanent magnet motor, it is necessary to adjust some sizes frequently. If the motor model is drawn manually in AutoCAD, it is very time-consuming and error-prone. Aiming at the problem of low efficiency in the drawing process of permanent magnet motor model, a system was developed to realize the automatic drawing of permanent magnet motor model by using parameterization idea. However, using the built-in development tools of AutoCAD for secondary development will bring the problems of inconvenience and poor expansion, so Visual Basic language was used to the secondarydevelopmentof AutoCAD,theparametricdrawingof apermanentmagnetsynchronousmotor wasrealized,inaddition,the parameters were adjusted to be optimized and draw mass models according to these parameters. The drawn motor models were stored in the specified folder in DXF format, which provided a large number of samples for the subsequent motor optimization. The drawing system has the advantages of simple interface, convenient operation and high degree of automation, which provides ideas for the design of motor products in the future.
Key words: permanent magnet motor; Visual Basic; AutoCAD; parameterized
0 引言
電機的模型繪制是電機產(chǎn)品在設計中的一個基礎環(huán)節(jié)[1]。在使用等效磁路法對永磁電機進行分析和優(yōu)化時,為了找到電機的最佳設計結果,通常需要不斷調整電機某幾處的尺寸數(shù)據(jù),每調整一次則要在 AutoCAD中重新繪制一張電機的模型。為了使設計方案盡可能覆蓋更大的范圍,會繪制上百張甚至更多的模型,手工繪制會大幅降低電機設計的效率,同時也很容易出錯。因此,設計出一款高效、簡潔的電機模型繪制系統(tǒng)是一件十分有必要的事。
傳統(tǒng)的基于 AutoCAD 的二次開發(fā)思路是利用 Auto- CAD 內置的開發(fā)工具(Auto Lisp 語言、VBA 等)[2],開發(fā)設計腳本語言,當需要繪制特定圖形的時候,在 Auto- CAD中手動加載對應的腳本文件即可。但是由于腳本語言無法獨立運行的特性,每次使用都要手動打開 Auto- CAD軟件并加載,并且與其他軟件接口難度較大,拓展性差。使用該方法開發(fā)的軟件實際使用體驗并不好,繪制的效率需要進一步提高。使用 VB 語言對 AutoCAD進行二次開發(fā),不僅能方便地修改電機的尺寸、批量地進行繪制,其高拓展性為后續(xù)增加其他功能提供了方便。相對于手動繪圖,極大地提高了電機設計的效率。本文以實驗室設計的60永磁電機為例,詳細介紹了在 Win- dow環(huán)境下使用 Visual Basic6.0對 AutoCAD2016進行二次開發(fā)進行參數(shù)化繪制電機模型的過程。
1 VB對AutoCAD二次開發(fā)的原理
VB 是一種面向對象、以事件為驅動為運行機制的編程語言[3]。相對于 AutoCAD二次開發(fā)的其他工具,VB 語言有可視化程度高、上手難度低等優(yōu)點[4],這十分契合系統(tǒng)對于高效、簡潔的設計需求。使用 VB 對 AutoCAD 進行二次開發(fā)使用到了 ActiveX 自動化技術,即將 Auto- CAD當作VB 中的一個圖形窗口,通過 VB 語言控制 Auto- CAD的打開、繪制、關閉等操作[5]。
1.1 AutoCAD對象
VB6.0通過操作 AutoCAD的對象和屬性來實現(xiàn)電機模型的繪制操作[6]。AutoCAD的對象包括圖形對象、樣式設置對象、組織結構、圖形顯示對象和 AutoCAD應用程序(Application)和文檔( Document ),并且他們之間存在一定的層級和隸屬關系[7]。在本系統(tǒng)中,用到的 Auto- CAD對象主要為應用程序、活動文檔和模型空間(Mod- elSpace)[8],其中模型空間是隸屬于活動文檔的一個對象。因此,首先在程序中定義對應3個對象的類變量,分別為AcadApp、AcadDoc和MoSpace。
1.2 VB與AutoCAD連接
使用 VB 語言對 AutoCAD 進行二次開發(fā),首先要在項目中添加 AutoCAD的類庫[9]。在 VB6.0的程序界面點擊“工程”—“引用…”,在彈出的對話框里勾選“Auto- CAD 2014 Type Library”,即可調用 AutoCAD 的類庫[10]。通過對變量賦初始值的方法判斷并控制 AutoCAD的打開和關閉:
Set AcadApp = GetObject (, "AutoCAD.Application")
……
AcadApp.Visible = True
Set AcadDoc = AcadApp.ActiveDocument
Set moSpace = AcadDoc.ModelSpace
程序中省略號為判斷 AutoCAD軟件有沒有打開的過程,如果沒有打開,就在程序中打開 AutoCAD 軟件。AcadApp.Visible = True 表示 CAD 軟件可見。AcadDoc表示應用程序中的一個活動文檔,moSpace表示活動文檔的模型空間,分別為其賦初始值。
2 電機模型的參數(shù)化建模
2.1 電機模型的參數(shù)化表示
要通過參數(shù)化的方法實現(xiàn)電機模型的自動繪制,達到與手動繪制相同的效果,首先要對電機模型的幾何尺寸和其約束關系進行分析[11]。首先,參考手動繪制所需的尺寸數(shù)據(jù),完整地確定參數(shù)化繪制所需數(shù)據(jù),并對其進行參數(shù)化表示。模型的參數(shù)化表示如圖1所示。
在圖中標注的參數(shù),定子部分有定子軛厚 d0,定子外徑rSO,定子內徑rSI,定子齒寬wt,槽間距wg,齒靴高度 h ,線圈離槽寬度 l ,齒靴處圓角半徑 r0;轉子部分有極對數(shù)p ,轉子外半徑rR,轉子外圓弧半徑rRO,轉子槽最薄處厚度 l2,磁鋼槽間厚度 l3,磁鋼槽高度 a ,轉子內徑rRI,磁鋼圓角半徑rC。
以電機的中心為坐標原點,電機的某個定子的對稱軸為 Y軸建立二維坐標系。將電機單個定子和轉子的左半部分分離出來,分別對構成該部分的所有關鍵點和關鍵線條進行標注。標注的關鍵點和關鍵線條的結果如圖2~3所示。
經(jīng)過幾何計算,使用圖1中標注的參數(shù)表示圖2中所有關鍵點的坐標,得到部分關鍵點的坐標如表1所示。根據(jù)已知信息繼續(xù)計算,求得圖2中所有關鍵點坐標。
2.2 設計優(yōu)化參數(shù)及其調整策略
電機優(yōu)化參數(shù)需要在參數(shù)化表示中所有參數(shù)中選擇,電機優(yōu)化的所有樣本均是這些優(yōu)化參數(shù)按一定策略調整獲得。電機優(yōu)化參數(shù)的設計應遵循以下幾個原則:
(1) 優(yōu)先考慮能夠連續(xù)變化的參數(shù);
(2) 電機設計之初設計的基本參數(shù)不能作為優(yōu)化參數(shù)(如定子內徑、定子外徑等);
(3) 選擇的優(yōu)化參數(shù)之間應是相互獨立、線性無關的,即一個優(yōu)化參數(shù)的變化不能影響另一個優(yōu)化參數(shù)的大小;
(4) 優(yōu)化參數(shù)的數(shù)量要適量,數(shù)量太多會導致需要優(yōu)化的樣本過多,計算時間太長,數(shù)量太少則會導致樣本覆蓋不全,不能找到電機設計的最優(yōu)解;
(5)盡量選擇對電機性能影響較大的參數(shù);
(6)優(yōu)化參數(shù)的變化區(qū)間應容易確定,且有較大的調整空間。
遵照優(yōu)化參數(shù)設計原則,將電機的參數(shù)分為以下3類:(1) 在電機設計之初確定的基本結構數(shù)據(jù),這些數(shù)據(jù)是確定的且不可修改的;(2)對電機性能沒有影響的數(shù)據(jù),這些數(shù)據(jù)在電機繪制時是必要的,但是在電機優(yōu)化時也可以設定為固定值;(3)對電機結構和性能都有影響的重要數(shù)據(jù),這些數(shù)據(jù)在電機優(yōu)化中至關重要,每個數(shù)據(jù)的變化都會或多或少地改變電機的性能。第3類參數(shù)包含槽間距wg、齒靴高度 h 以及齒靴圓角半徑 r0,優(yōu)化的參數(shù)應在這3個參數(shù)中選擇。
對比這3個參數(shù)的數(shù)學關系,發(fā)現(xiàn)槽間距wg和齒靴圓角半徑 r0的變化是會相互影響的,而齒靴高度 h 的大小則不受其影響,因此槽間距wg與齒靴圓角半徑 r0 不能同時選取為優(yōu)化參數(shù)。在實際的仿真環(huán)節(jié),齒靴圓角半徑 r0的變化對電機性能的影響較小,并且調整的范圍也很小。綜合考慮以上因素,將齒靴圓角半徑 r0設定為固定值0.5 mm ,選取槽間距wg和齒靴高度 h 作為優(yōu)化參數(shù)。在繪制電機模型的時候,保持其他參數(shù)不變,分別對槽間距wg和齒靴高度 h 在一定的區(qū)間內按選定的步長進行調整,一次僅調整一個優(yōu)化參數(shù),并且每調整一次就繪制一個新的模型,最終得到一定數(shù)量的樣本。
3 系統(tǒng)的實現(xiàn)方式
系統(tǒng)的實現(xiàn)部分分為用戶界面和程序編寫兩個部分來闡述。
3.1 用戶界面設計
用戶界面發(fā)揮著人機交互的重要功能,用戶的所有操作都要在用戶界面來完成。在人機交互界面,系統(tǒng)提供了以下幾個功能:(1) 電機定轉子尺寸輸入,以及保存輸入的尺寸參數(shù)和導入已經(jīng)保存的參數(shù); (2)打開 AutoCAD軟件,按輸入的參數(shù)繪制電機定轉子模型,并按規(guī)定格式保存到指定文件夾。設計好的用戶界面如圖4所示;(3)選擇步長,并按選定步長調整槽間距和齒靴高度兩個優(yōu)化參數(shù),并可微調氣隙的大小。
3.2 程序設計
在該系統(tǒng)中,除了參數(shù)輸入和優(yōu)化參數(shù)的調整,最核心的功能是根據(jù)輸入的參數(shù)繪制電機的模型。模型的繪制分為以下3個步驟進行。
(1) 關鍵線條繪制
在已知關鍵點坐標的情況下,圖 3中的關鍵線條可以由AddLine ()(添加線段)、AddCircle ()(添加圓)和AddArc ()(添加圓弧)以及由其推導而來的函數(shù)繪制得到。
(2) 鏡像操作
在鏡像操作部分,定子部分(包括線圈)和轉子部分分開進行。首先將定子左半部分(包括線圈)添加到選擇集1(SSet1),操作程序如下:
Dim SSet1 As AcadSelectionSet
Set SSet1= createSSet ("half_stator")
SSet1.Select acSelectionSetAll
對選擇集1的中所有圖元作鏡像操作,鏡像軸為 Y 軸所在直線,操作程序如下:
Dim i As Integer
Dim objEntity1 As AcadEntity
For i =0 To SSet1.Count -1
Set objEntity1= SSet1.Item (i)
objEntity1.Mirror pt1, pt2
Next i
同樣地,將轉子的左半部分添加到選擇集3(SSet3),對選擇集3作鏡像操作。
(3) 陣列操作
在陣列操作部分,定子部分(包括線圈)和轉子部分同樣分開進行繪制。首先將選擇集1鏡像后的所有圖元添加到圖元集2(SSet2),則選擇集2中包含一個完整的定子和一對線圈的圖形。然后對圖元集2中所有圖元作陣列操作,陣列總角度為2π,陣列數(shù)量為定子槽數(shù) Z1,陣列操作程序如下:
Dim j As Integer
Dim objEntity2 As AcadEntity
For j =0 To SSet2.Count -1
Set objEntity2= SSet2.Item (j)
objEntity2.ArrayPolar Z1, pi *2, pt1
Next j
同樣地,對選擇集3鏡像后的所有圖元作陣列操作,陣列的總角度為2π,陣列數(shù)量為極數(shù)2p 。另外,定子內為一個單獨的圓,單獨繪制出即可。繪制完整后,模型將以 DXF 格式按編號保存到指定文件夾中:
AcadDoc.SaveAs "dir:\"&"f"& order, ac2000_dxf
其中,“f+order”為圖片編號,每新增一張圖紙, order數(shù)量加1。
3.3 系統(tǒng)操作方式
打開系統(tǒng),輸入所需參數(shù),點擊“打開 AutoCAD”按鈕,即可打開電腦中的 AutoCAD軟件,并新建一個空的繪制文件。點擊“繪制電機模型”按鈕,繪制得到的電機模型如圖5所示。
若要優(yōu)化電機,批量繪制電機模型,找到電機設計的最優(yōu)解,則根據(jù)優(yōu)化精度的需要,選擇槽間距和齒靴高度的調整步長。每新繪制一個模型,則要點擊“下一張”,在繪制完成后,再點擊“保存當前圖形”即可。通過后續(xù)的有限元仿真實驗,對比繪制的所有電機的性能,可以找到性能最優(yōu)的電機設計方案。
4 結束語
本文介紹了一種使用 VB 對 AutoCAD 進行二次開發(fā)的方法,并將該方法運用到永磁電機優(yōu)化中電機模型繪制的過程中。以實驗室設計的60系列電機為例,開發(fā)了一套針對該電機的自動化繪制系統(tǒng)。該系統(tǒng)不僅能參數(shù)化繪制永磁電機的模型,還內置了優(yōu)化參數(shù)調整的功能,可針對優(yōu)化參數(shù)的調整繪制大量的電機模型,相比于手動繪制,大幅提高了電機優(yōu)化的效率。經(jīng)驗證,該系統(tǒng)在幾分鐘內即可以繪制一套覆蓋大部分設計方案的電機模型,為后續(xù)電機的優(yōu)化提供了很大的便利,實現(xiàn)了電機設計圖紙的參數(shù)化和自動化。由于 VB 語言的簡單易學、開發(fā)周期低的特點,可以將該方法推廣到其他電機的設計中。
參考文獻:
[1]司萌,余霞,李登峰,等.基于 VB的電機沖片圖形自動繪制技術[J].機械設計與制造,2019(9):176-180.
[2]陳煒.利用 VB實現(xiàn) AutoCAD二次開發(fā)中參數(shù)化繪圖[J].中國新技術新產(chǎn)品,2014(13):13.
[3]宋廣群.VB 程序設計[M].北京:中國科學技術大學出版社.2006.
[4]岳震, 張奉祿.基于 VB 的 AUTOCAD 二次開發(fā)[J].機械設計與制造,2002(1):25-26.
[5]成海濤.CAD二次開發(fā)方法研究與運用[J].中阿科技論壇(中英文),2020(12):53-55.
[6]劉永波.基于 VB的 AutoCAD二次開發(fā)系統(tǒng)設計與實現(xiàn)[D].成都:電子科技大學,2007.
[7]陳爾奎, 陳朋,姜文建.基于 VB對 AutoCAD二次開發(fā)的變壓器繪圖軟件設計[J].變壓器,2012,49(11):25-28.
[8]盛忠起,趙立杰, 劉永賢.基于 ActiveX技術用面向對象方法進行 AutoCAD二次開發(fā)[J].電腦開發(fā)與應用,2000(4):24-26.
[9]苗飛.面向機械產(chǎn)品設計系統(tǒng)構建的 CAD軟件二次開發(fā)技術[D].天津:天津大學,2004.
[10]趙紅梅.基于參數(shù)化技術的 CAD 系統(tǒng)二次開發(fā)的研究與實現(xiàn)[D].保定:華北電力大學(河北),2007.
[11]趙震,彭穎紅.基于 KBE 的工程設計——理論、方法與實踐[J].機械科學與技術,2003(1):151-153.
作者簡介:
陳家新(1968-),男,安徽宣城人,博士后,教授,碩士生導師,研究領域為電力電子、電機設計及其智能控制,已發(fā)表論文近60篇。
何喬(1995-),男,江蘇鹽城人,碩士研究生,研究領域為電機設計及其智能控制。
(編輯:王智圣)