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