前言:想要寫出一篇引人入勝的文章?我們特意為您整理了力矩電機優化設計軟件開發及應用范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:應用VB.NET開發出一款力矩電機優化設計軟件,將電磁計算程序封裝化,通過圖形設備接口、多線程技術實現了電機的動態優化。軟件內置了粒子群優化算法,結合基于數量級的懲罰函數法,將約束優化問題轉化為無約束優化問題,實現了電機的優化設計。以一種異步力矩電機為例,利用軟件對它的起動性能進行優化,對比ANSYS的仿真結果,驗證了該軟件的優化結果是正確有效的。
關鍵詞:電機優化設計軟件;粒子群優化算法;懲罰函數法;異步力矩電機;起動性能
0引言
作為工業生產中的一種重要動力設備,電機被廣泛應用到各行各業中。隨著工業技術的發展,人們對各種系列電機的性能、成本等指標要求也隨之提高,需要盡可能合理地設計出電機。傳統的電機設計方法需要大量的人工計算,其計算過程效率低、周期長且容易出錯。商業電機設計軟件雖可以解決上述問題,但大多來自于國外,其軟件界面非中文,操作繁瑣,不易學習,且價格昂貴。因此,開發出具有自主創新意義并且與實際生產緊密聯系的電機設計軟件是十分必要的[1]。本文開發的軟件不但可以進行基本的電磁計算,還可進行高度自由化的優化設計,除此之外,利用多線程技術實現的動態優化,也是本軟件的特色所在。所謂的電機優化設計就是在滿足國家標準、用戶要求以及其它一些特定的約束條件下,設計出的電機在力矩、效率、功率因數等性能指標或者成本方面達到最優[2]。為了使電機的性能達到最優,需要采用優化算法進行優化設計,文獻[3-10]分別使用了改進NSGA-II算法、進化算法、差分進化算法、改進布谷鳥算法、重心鄰域算法、田口法、改進型代理模型優化算法及量子遺傳算法解決了各種類型的電機優化問題。本文提出一種基于特殊懲罰函數法的粒子群優化算法,這種懲罰函數法引入“平衡數量級”的概念,尤其適用于解決電機優化等工程實際問題。本文使用VB.NET編程語言,結合力矩電機的電磁計算程序及粒子群優化算法,開發出一款力矩電機優化設計軟件,并利用該軟件實現異步力矩電機的優化,通過ANSYS的有限元仿真,驗證了優化結果是正確有效的。
1電機優化算法設計
電機優化問題的本質就是不斷重復電磁計算過程,在若干方案清單中找到性能最優的那套方案。同時,電機各參數間存在復雜的耦合聯系,一個參數的尋優過程往往是在犧牲另一參數的基礎上進行,需要特定的約束條件加以限制。因此,電機優化問題屬于非線性約束優化問題。一般的非線性優化問題可表示:式中:x為優化變量,f(x)為目標函數,gj(x)為不等式約束條件,hj(x)為等式約束條件。為了解決上述問題,需設計一套合理的優化算法。本文設計了一種結合懲罰函數法的粒子群優化算法,其整體思路為:使目標函數加入懲罰項,形成增廣目標函數,作為粒子群算法的適應度函數,將約束優化問題轉化為無約束優化問題,有如下公式:式中:fitness(x)為適應度函數,f(x)為問題的目標函數,φ(x)為懲罰函數。懲罰函數可表示:式中:Cj為懲罰系數,Gj(x)表示個體與可行域邊界的距離,gj(x)為不等式約束條件,hj(x)為等式約束條件,ε為等式約束條件下的最大容忍值。電機優化設計與其它一般優化設計問題最顯著的區別是:不同優化目標的單位不同導致它們的數量級不同,若懲罰項不隨優化目標數量級改變而改變,其懲罰效果就會變得極其不穩定。本文設計的懲罰函數在式(2)和式(3)的基礎上,調整懲罰系數Cj,實現優化目標和約束條件數量級的協調。懲罰系數公式如下:式中:f(x)為當前的目標函數,Stj(x)為當前第j個約束的取值,M為約束強度(或懲罰強度)。f(x)Stj(x)可以計算出當前優化目標與約束條件的數量級差,系數M可以調整這個數量級差帶來的影響。該算法除了擁有懲罰函數法本身的優勢外,還具有以下優點:1)算法參數較少,僅需設置一個M;2)可充分考慮不同變量間的數量級差異,適合解決工程實際問題;3)算法邏輯簡單,易于實現;4)不含循環、遞歸等復雜結構,時間復雜度低,算法運行較快。
2電機優化設計軟件開發
本軟件基于Windows平臺,利用VisualStudio2019的VB.NET編程語言進行開發。
2.1用戶界面設計
用戶界面是人機交互的唯一渠道,應在基本功能齊全的前提下盡量簡單明了、易于使用,圖1為軟件的基本構架圖。軟件分為計算和優化兩大模塊,可分別實現電磁計算和優化設計。其中輸入界面是兩大模塊的公共起始界面,當用戶完整輸入各個電機參數后,程序會讀取對應文本框(TextBox)的信息,并以字符串的形式存儲在內存變量中,當需要調用其數值時,可使用Val()函數將字符串型變量強制轉換為數值型變量。
2.2主要技術
2.2.1面向對象思想。由于電機的電磁計算程序天生具有封裝性,于是使用類的概念將其抽象化、封裝化,稱為電磁計算類(DCJSClass),方便管理不同方案、不同模塊間的電機參數。電磁計算類中包含基本的成員變量、初始化方法和電磁計算方法,其中成員變量包括電機的輸入變量、輸出變量、中間變量,初始化方法類似構造方法,它可以初始化所有成員變量并為輸入變量賦值,電磁計算方法是該類的核心,它負責完成整個電磁計算過程,并為所有輸出變量賦值。與其它編程語言一樣,若要調用類的方法必須先創建一個該類的對象,即按照類的模板創建一個它的實例。本軟件以電磁計算類為模板創建了兩個對象,分別為DCJS1,DCJS2,其中DCJS1用于計算模塊,DCJS2用于優化模塊,兩大模塊的電機數據相互獨立,互不影響。實現電磁計算的流程:首先創建一個公共的(Public)對象,即DCJS1,接著調用初始化方法,讀取輸入界面中的數據,為所有輸入變量賦值,之后調用電磁計算方法,為所有輸出變量賦值,最后通過形如“對象.變量名”的方式調用任意輸出變量,輸出電磁計算清單。2.2.2圖形設備接口。圖形設備接口(GDI+)是基于.NET框架下的一種繪圖技術,它可以實現幾何圖形、數學圖象的繪制。本文利用該技術實現了電機槽形及磁化曲線、優化過程曲線等各種數學圖象的繪制,下面簡要介紹數學圖象的繪制。在繪圖前,需首先聲明一個Graphics變量,以給定繪圖的畫板,這里選擇PictureBox控件作為繪圖的畫板。繪制圖象的步驟如下:(1)建立坐標系網格:使用黑色畫筆,利用DrawLine方法在PictureBox內畫9條等距的橫線和豎線。(2)坐標標注:獲取自變量和因變量的取值范圍,并將它們平均分成10份標記在坐標軸上。(3)數值轉換:將實際值轉換為對應的象素坐標。(4)圖象繪制:使用紅色畫筆,利用DrawLine方法依次連續繪制直線,形成曲線。2.2.3多線程技術。電機優化過程具有運算量大、循環結構多、函數調用頻繁等特點,時間復雜度高,在默認參數下需十幾秒的時間方可完成。若不采用多線程技術,用戶界面會有較長的時間處于不可響應狀態,即處于一種“假死”狀態。其實,Windows桌面應用程序會默認創建一個UI線程,出現“假死”的原因就是用戶在UI線程上調用了耗時較長的過程,程序必需等待這個過程結束方可響應用戶操作。本文采取多線程技術避免了上述問題的發生,其實現:當用戶點擊“開始”時,觸發此按鈕的Button_Click事件,該事件會創建新的線程,整個算法程序和曲線繪制過程都將傳入到該線程中,此時調用該線程的Start方法以開啟這個線程;在線程運行期間,優化曲線將實時繪制,用戶可通過“暫停/繼續”按鈕控制該線程的執行,代碼上通過一對Suspend、Resume方法操控線程的掛起與恢復,在暫停期間,用戶可任意修改算法的屬性參數,在恢復線程后算法會以新的屬性繼續執行。
2.3優化算法實現
本文的電機優化設計軟件屬于通用性的優化設計,它有不確定的目標函數、不確定的優化變量。當用戶點擊“優化”按鈕時,程序會首先判斷尋優的方向,這個方向可以是最大值方向也可以是最小值方向;接著,程序會依次判斷各個可優化變量是否被選中,若為選中狀態,則按式(5)和式(6)初始化粒子的位置和速度:X=Val(TextBox1.Text)+[Val(TextBox2.Text)-Val(TextBox1.Text)]*Rnd(5)V=vmax*[Val(TextBox2.Text)-Val(TextBox1.Text)]*(2*Rnd-1)(6)式中:Val(TextBox1.Text)為變量的下限,Val(TextBox2.Text)為變量的上限,Rnd為[0,1]上的隨機數,vmax為最大速度占比。若為非選中狀態,則僅將輸入界面的對應數值賦予該變量,且當作常量處理。經過初始化后,粒子的位置由全部輸入變量構成,但它們僅有一個或幾個是優化變量,計算粒子的初始適應度值需要根據優化目標的選擇而改變;計算初始適應度值后,可通過排序算法找出最優適應度值,該粒子即為第0代的全局最優粒子;接下來,算法會進行N次迭代,每次迭代更新一次慣性權重,并依次更新每個粒子的速度、位置、個體最優適應度值,再更新一次全局最優適應度值,更新粒子速度時要首先判斷是否超速,若當前粒子速度大于最大速度,則令該粒子速度等于最大速度,反之則令該粒子速度等于最小速度,處理邊界問題時要判斷粒子是否越界,若超越上限或下限,則令該粒子處在邊界位置上;當達到最大迭代次數時,循環結束,算法終止,輸出最優方案。
3力矩電機優化設計軟件應用實例
力矩電機具有輸出轉矩大、起動性能良好的特點,本文借助力矩電機優化設計軟件,對一款異步力矩電機的起動性能進行優化,并利用ANSYS輔助驗證。
3.1初始方案分析
本文選取一套異步力矩電機方案,其模型如圖2所示,表1給出了該電機的基本結構參數。對于異步力矩電機,主要關心它的起動性能,表2給出了ANSYS的RMxprt模塊及本軟件計算得到的起動性能參數對比。由于RMxprt與本軟件都是采用等效電路的方法計算電機,因此得到的性能參數也基本相同。將RMxprt的模型導入到Maxwell2D,進行額定負載下的起動仿真,圖3、圖4分別為負載起動仿真的轉矩曲線和繞組電流曲線。由圖3、圖4可知,起動轉矩最大約為150N·m,并最終穩定于71N·m左右;起動過程中電流最大幅值為130A左右,約300ms后逐漸穩定,穩定后電流有效值約為12.44A。
3.2起動性能優化
本文選擇異步力矩電機的起動轉矩Tst為優化目標,轉子槽縱向尺寸(hr0、hr1、hr2)、定轉子鐵心長度(L1、L2,并令L1=L2=L)為優化變量,起動電流Ist為約束條件,且滿足Ist≤77.301A,即令起動電流不允許超過初始方案的數值。為了不過度影響其它性能參數,需將各個優化變量限制在較小的范圍內,表3給出了各個優化變量的范圍。由軟件的動態優化功能得出,本文的最小約束強度約為1.6,本文取M=2的情況進行優化設計。經過軟件的優化計算,得到圖5的優化結果及圖6、圖7的優化過程曲線,表4給出了優化前后的對比。可以看出,優化后的起動轉矩為154.3N"m,相比優化前的150.08N"m提升了4.22N"m,起動電流維持77.301A不變,說明起動性能有所提升,接下來需結合ANSYS驗證這一結論。將優化后的方案導入到ANSYS的RMxprt模塊中,經計算初步得到起動性能參數,表5給出了起動性能優化前后的數據對比。對比優化前后的數據,起動電流較之前有所降低,且起動電流倍數也略有下降;起動轉矩由152.012N"m增加到156.36N"m,增加了4.348N"m,優化幅度約為2.86%,與本文計算得到的結果基本相同,說明本文的優化結果是正確有效的,實現了在不增加起動電流的基礎上盡可能地增大起動轉矩。將RMxprt的模型導入到Maxwe112D中,同樣進行額定負載下的起動仿真,得到圖8和圖9的負載起動轉矩曲線、負載起動繞組電流曲線,圖10為穩態下的電機磁密云圖。由優化后的轉矩曲線可以看出,起動過程中轉矩最大可達157N"m,較優化前的最大轉矩有所提升;再對比優化前后的繞組電流曲線,起動過程的最大電流依舊保持130A左右,優化前后的結果沒有變化,這與本文得到的結論基本相同。由磁密云圖可以看出,磁密最大出現在定子齒部,約為1.5T}并未達到定轉子鐵心的磁飽和區間,說明電機的結構尺寸設計是合理的。
4結語
本文實現了力矩電機優化設計軟件的開發,同時利用該軟件完成了異步力矩電機的優化設計,主要成果如下:(1>設計出一款適合電機優化設計的現代智能優化算法,該算法結合了粒子群優化算法和懲罰函數法,同時,懲罰函數考慮了約束條件與優化目標的數量級關系,并引入了約束強度用來控制這一關系。(2)開發出力矩電機優化設計軟件,采用面向對象的編程思想,將電磁計算過程封裝為類,并以此類創建兩個獨立的對象,分別負責管理計算模塊和優化模塊的電機數據。軟件可實現同類電機的任意優化問題,并為用戶提供動態優化功能。(3)以一款異步力矩電機為例,通過軟件對該電機的起動性能進行優化。其中起動轉矩由150.08N"m增加到154.3N"m,優化幅度約為2.81%,而起動電流保持初始值,說明起動性能有所提升。經ANSYS軟件的仿真驗證,驗證了它的優化結果是正確有效的。
作者:白金成 胡巖 單位:沈陽工業大學電氣工程學院