發(fā)動(dòng)機(jī)控制器基于DSP模糊邏輯設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
越來(lái)越多企業(yè)開(kāi)始使用變速驅(qū)動(dòng)發(fā)動(dòng)機(jī)來(lái)減少能源的消耗。這需要通過(guò)從微分(PID)控制器轉(zhuǎn)向基于模糊邏輯算法的系統(tǒng)來(lái)簡(jiǎn)化設(shè)計(jì),縮短開(kāi)發(fā)時(shí)間,并消除復(fù)雜的數(shù)學(xué)公式。
但是,這對(duì)發(fā)動(dòng)機(jī)提出了新的挑戰(zhàn)。當(dāng)使用傳統(tǒng)的積分和微分(PID)控制器來(lái)控制無(wú)刷直流(BLDC)電機(jī)的速度是復(fù)雜的,因?yàn)樗鼈円蕾囉趶?fù)雜的數(shù)學(xué)模型,并且是計(jì)算密集型的。而使用模糊邏輯(FL)的算法,可以消除設(shè)計(jì)過(guò)程對(duì)復(fù)雜的數(shù)學(xué)公式的依賴,并且提供一個(gè)容易理解的解決方案。與(PID)微分控制器相比,模糊邏輯(FL)發(fā)動(dòng)機(jī)控制還有一個(gè)優(yōu)勢(shì),那就是開(kāi)發(fā)周期更短。本文討論了采用德州儀器c28xx定點(diǎn)DSP系列,實(shí)現(xiàn)用模糊邏輯算法來(lái)控制無(wú)刷直流電動(dòng)機(jī)的過(guò)程。
無(wú)刷直流電機(jī)控制模型的發(fā)展
在模糊邏輯(FL)發(fā)動(dòng)機(jī)構(gòu)建之前,我們必須首先建立一個(gè)模型作為設(shè)計(jì)的基礎(chǔ)。模糊邏輯控制器使用啟發(fā)式知識(shí),并使用一個(gè)語(yǔ)言描述模型來(lái)表達(dá)它的設(shè)計(jì)。我們將以PID控制器模型為出發(fā)點(diǎn),而不是從頭開(kāi)始開(kāi)發(fā)一個(gè)模型。一旦完成開(kāi)發(fā)和實(shí)現(xiàn),模糊邏輯控制器將通過(guò)調(diào)整其參數(shù)來(lái)提高性能。
一般來(lái)說(shuō),開(kāi)發(fā)模糊邏輯無(wú)刷直流控制器有三個(gè)設(shè)計(jì)步驟:
1.定義輸入、輸出控制器的操作范圍。
2.定義模糊成員集的功能和規(guī)則。
3.調(diào)整引擎。
第一步是定義模式相關(guān)的輸入和輸出。輸入是誤差(E),它是設(shè)置的速度(SS)和當(dāng)前的速度(CS)之間的當(dāng)前誤差;另外的輸入是誤差的變化(CE),它是當(dāng)前誤差和以前計(jì)算誤差(PE)之間的差值。輸出是電樞電壓(CV)的改變值,它是現(xiàn)有的電樞電壓(CAV)和以前的電樞電壓(PAV)保存值的差額。由此產(chǎn)生的模型方程式如下:
E=SS-CS
CE=E-PE
CV=CAV-PAV
發(fā)動(dòng)機(jī)旋轉(zhuǎn)速單位為轉(zhuǎn)每分鐘(RPM),E決定了接近目標(biāo)速度的程度。因此,當(dāng)E>0,發(fā)動(dòng)機(jī)的旋轉(zhuǎn)速度低于設(shè)定的速度;當(dāng)E<0,電機(jī)旋轉(zhuǎn)速度超過(guò)設(shè)定的速度。CE決定控制器的調(diào)整方向。當(dāng)且僅當(dāng)(iff)目前的旋轉(zhuǎn)速度比設(shè)定的速度要低時(shí)CE為正,;當(dāng)且僅當(dāng)目前的旋轉(zhuǎn)速度大于設(shè)定的速度時(shí),CE 為負(fù)。當(dāng)接近設(shè)定速度時(shí),CE就會(huì)在正的和負(fù)的值之間來(lái)回調(diào)整。CV是電樞的供電電壓。這個(gè)電壓表示為脈沖的寬度調(diào)制(PWM)占空比。
下一步是定義模糊集的成員函數(shù)、變量和規(guī)則。為了保證能工作,非模糊(清晰)輸入和輸出必須轉(zhuǎn)化成模糊的。轉(zhuǎn)換由使用語(yǔ)言變量來(lái)表示輸入和輸出范圍。這些也被稱為模糊變量。模糊變量用于為成員函數(shù)劃分隸屬值的區(qū)域。例如,5個(gè)變量用來(lái)映射輸入和輸出,它們是中等負(fù)值(NM)、小負(fù)值(NS)、零(z)、小正值(PS)、中等正值(PM)。
它不是數(shù)學(xué)公式,模糊控制器使用模糊規(guī)則來(lái)作出決定,并產(chǎn)生一個(gè)輸出。模糊規(guī)則是通過(guò)IF-THEN語(yǔ)句的形式來(lái)描述的。模糊規(guī)則決定系統(tǒng)的行為,而不是復(fù)雜的數(shù)學(xué)方程。例如,如果錯(cuò)誤(E)是等于中等負(fù)值(NM),而錯(cuò)誤的變化(CE)等于小正值 (PS),那么在電樞電壓(CV)的改變就等于小負(fù)值(NS)。所用的一些規(guī)則是根據(jù)設(shè)計(jì)者的經(jīng)驗(yàn)和系統(tǒng)的知識(shí)來(lái)設(shè)定的。因此,我們的系統(tǒng)所使用的規(guī)則的數(shù)量是25個(gè)。
為了激活電樞,CV模糊輸出必須被轉(zhuǎn)換回清晰輸出。這個(gè)過(guò)程稱為去模糊化。一種流行的去模糊方法稱為重心法。
設(shè)計(jì)的最后一步是調(diào)整成員函數(shù)和規(guī)則。這個(gè)階段也稱為優(yōu)化調(diào)整階段。優(yōu)化調(diào)整用于提高模糊控制器的性能。一旦設(shè)計(jì)完成,控制器就將準(zhǔn)備付諸實(shí)現(xiàn)。
模糊邏輯控制器的實(shí)現(xiàn)是由三個(gè)模塊組成的。它們分別是模糊化、規(guī)則部署和去模糊化。以下各節(jié)討論模糊邏輯無(wú)刷直流電動(dòng)機(jī)相關(guān)模塊的實(shí)現(xiàn)情況。
模糊化
模糊化是將有明晰數(shù)值的數(shù)據(jù)轉(zhuǎn)換成模糊數(shù)據(jù)的過(guò)程。由此產(chǎn)生的模糊數(shù)據(jù)的轉(zhuǎn)換是基于對(duì)輸入變量的模糊隸屬度。對(duì)于這種應(yīng)用,電機(jī)控制輸入變量是旋轉(zhuǎn)誤差 (Error)和旋轉(zhuǎn)誤差差值(Cerror)。旋轉(zhuǎn)誤差(Error)是從一個(gè)采樣時(shí)間到下一個(gè)采樣時(shí)間的絕對(duì)旋轉(zhuǎn)速度差。同樣地,旋轉(zhuǎn)誤差差值 (Cerror)是一個(gè)采樣時(shí)間和下一個(gè)采樣時(shí)間之間的旋轉(zhuǎn)誤差變化值。公式如下:
旋轉(zhuǎn)誤差(Error)=SetSpeed(設(shè)定速度)-Cur-rentSpeed(目前速度)
旋轉(zhuǎn)誤差差值(Cerror)=旋轉(zhuǎn)誤差(Error)-Pre-viousError(前一次誤差)
正如前面談到的,為旋轉(zhuǎn)誤差(Error)變量和旋轉(zhuǎn)誤差差值(Cerror)變量定義了五個(gè)成員集:
1.NM:中等負(fù)值
2.NS:小負(fù)值
3.ZE:零
4.PS:小正值
5.PM:中等正值
圖1顯示了為旋轉(zhuǎn)誤差(Error)變量和旋轉(zhuǎn)誤差差值(Cerror)變量定義的五個(gè)成員集。這些成員集是三角型重疊,以提供良好的響應(yīng)。每一組有一個(gè)0×1AAA的最大值。
輸入變量模糊化后產(chǎn)生了由五部分組成的向量,這五個(gè)部分相對(duì)應(yīng)于模糊化成員集的中等負(fù)值、小負(fù)值、零、小正值、中等正值。每個(gè)組件對(duì)應(yīng)的Y軸的值代表該明晰輸入值的隸屬度。向量含有旋轉(zhuǎn)誤差(Error)和旋轉(zhuǎn)誤差差值(Cerror)模糊化值被表示為數(shù)組×1[]和X2[]。
圖2和圖3圖形化地顯示了旋轉(zhuǎn)誤差[Error)和旋轉(zhuǎn)誤差差值(Cerror)模糊化值。
模糊推理規(guī)則
模糊推理規(guī)則通過(guò)操作模糊化數(shù)據(jù)來(lái)確定系統(tǒng)的行為。具體來(lái)說(shuō),模糊化數(shù)據(jù)對(duì)照規(guī)則表進(jìn)行應(yīng)用。在語(yǔ)言方面,這就是輸入數(shù)據(jù)Error、Cerror與規(guī)則表進(jìn)行比較。規(guī)則表中包含了成員集NM、NS、ZE、PS、和PM,并根據(jù)控制面來(lái)操作。輸出是通過(guò)有效“推斷”或“既定”的規(guī)則。推理過(guò)程的描述見(jiàn)如下偽代碼清單:
去模糊化
去模糊化是將模糊數(shù)據(jù)轉(zhuǎn)換成明晰數(shù)據(jù)的過(guò)程。為了這個(gè)應(yīng)用目的,去模糊化后的值確定用于驅(qū)動(dòng)電機(jī)的PWM信號(hào)的占空比。占空比取決于使用修改后的質(zhì)心計(jì)算功能。在這里采用的去模糊方法是用質(zhì)心計(jì)算函數(shù)乘以一個(gè)系數(shù)。修改后的計(jì)算也稱為質(zhì)心點(diǎn)計(jì)算函數(shù)。
質(zhì)心點(diǎn)的計(jì)算公式為:
Defuzzified VaLue=∑-Y[i]XmultCoeff[l]/∑Y[i]
其中Y[i]的i即為輸出向量元素,是multCoeff[i]的輸出成員集應(yīng)乘以的系數(shù)。其中,i可取1~5。公式計(jì)算結(jié)果即為去模糊化后的結(jié)果。
圖4通過(guò)圖形顯示了被該應(yīng)用使用的輸出成員集與[-0x10,-0x8,0x0,0x8,0x10]系數(shù)。
假設(shè),y[]=[0x0,0x13F,0x196A,0x0,0x0],則去模糊輸出值如下:
Defuz=0×(-16)+319×(-8)+6506×(0)+0×(8)+0×(16)/0+319+6506+0+0=-2552/6825=“-0.37391
圖5顯示為輸出向量y[]質(zhì)心點(diǎn)的計(jì)算結(jié)果。
硬件描述
eZDSP2812 板被用在這種電機(jī)控制應(yīng)用中。eZdsp板的核心是TMS320F2812數(shù)字信號(hào)處理器。該板使用定時(shí)器T1、20kHz的時(shí)鐘,產(chǎn)生PWM1-6的信號(hào),并使用定時(shí)器T2來(lái)執(zhí)行中斷服務(wù)例程(ISR)。此外,輸入捕捉引腳CAP1-3是用來(lái)收集霍爾效應(yīng)傳感器高速數(shù)據(jù)的。
發(fā)動(dòng)機(jī)是由 DSP產(chǎn)生的PWM信號(hào)驅(qū)動(dòng)的。這六個(gè)PWM信號(hào)被用來(lái)作為三相功率變換器的源。功率變換器將這六個(gè)信號(hào)轉(zhuǎn)換為三相位信號(hào),并直接作為發(fā)動(dòng)機(jī)的電源。三相功率變換器的功能由一個(gè)輔助電機(jī)控制電路板來(lái)處理。頻譜數(shù)字提供了兩個(gè)能夠提供這種功能的電路板:DMC550和DMC1500。其中任何一塊都可直接插入eZdsp28xx板上使用。
霍爾效應(yīng)傳感器用于模糊邏輯控制回路反饋。對(duì)三相功率變換器開(kāi)關(guān)的轉(zhuǎn)換是通過(guò)檢測(cè)從霍爾效應(yīng)傳感器接收到的信號(hào)來(lái)決定的。該信號(hào)被送入TMS320F2812的采集針內(nèi)。實(shí)際電機(jī)速度的計(jì)算是通過(guò)一個(gè)軟件模塊來(lái)計(jì)數(shù)的。
軟件介紹
電動(dòng)機(jī)控制軟件是由數(shù)字微型電路(DMC)庫(kù)模塊和FL電動(dòng)機(jī)控制程序組成的。數(shù)字微型電路(DMC)庫(kù)中有七個(gè)模塊被使用在此應(yīng)用程序中。它們是:
·Datalog數(shù)據(jù)記錄
·BLDC3PWM
·tall3_Drv
·Mod6_Cnt
·Rmp2Cntl
·Rarnp_Cntl
·Speed_PR
此外,模糊邏輯發(fā)動(dòng)機(jī)控制是由一個(gè)主要FuzzyCtl()例程來(lái)處理的;對(duì)于無(wú)刷直流電動(dòng)機(jī)就是Fuzzy-BLDC()。
該軟件首先是進(jìn)行首次運(yùn)行配置,然后進(jìn)行應(yīng)用程序特定的設(shè)置。具體來(lái)說(shuō),GPIO引腳被配置為CAPture和PWM引腳。
下一步是進(jìn)行定時(shí)器和模塊參數(shù)的初始化,以及ISR的設(shè)置。當(dāng)所有外設(shè)設(shè)置完成,中斷被激活,進(jìn)入主要操控系統(tǒng)。主要操控系統(tǒng)每隔8.7毫秒調(diào)用一次模糊控制器。
誤差值被轉(zhuǎn)換成通過(guò)模糊化的模糊值被存儲(chǔ)在X1[]和X2[]。一旦轉(zhuǎn)換,模糊值被應(yīng)用于模糊推理規(guī)則。
從推理模塊得到的結(jié)果存儲(chǔ)在Y[]中。從Y[]得到的輸出在去模糊化模塊中被轉(zhuǎn)換成明晰值。由此產(chǎn)生的明晰值是一種PWM偏移量,該偏移量被添加到當(dāng)前的 PWM占空比上。更新后的PWM值被檢查,看看是否新的值是在一定范圍內(nèi),如果不是就將采取適當(dāng)行動(dòng)。最后,模糊控制器返回更新后的PWM占空比給調(diào)用例程。
圖6顯示了演示應(yīng)用程序調(diào)試環(huán)節(jié)。
通道1和2(在右上角顯示窗口)分別顯示了PWM計(jì)數(shù)器和捕獲霍爾效應(yīng)傳感器。通道3和4(在通道1和2下方)顯示邊沿觸發(fā)PWM的計(jì)數(shù)器和霍爾效應(yīng)傳感器的顯示窗口的版本。監(jiān)視窗口中顯示重要變量,其中,最重要的是SetSpeed(設(shè)置速度)和CurrentSpeed(當(dāng)前速度)。這些值足夠接近,使得模糊邏輯控制器的輸出為零。
這次會(huì)話表明發(fā)動(dòng)機(jī)是在無(wú)負(fù)載條件下運(yùn)行的。此行為可能會(huì)和有負(fù)荷時(shí)的情形略有不同。此外,如果想要更細(xì)的粒度,可能有必要對(duì)控制器進(jìn)行調(diào)整。