陳志佳 孫書鷹 張煒棟
(軍械工程學(xué)院光學(xué)與電子工程系1,河北 石家莊 050003;92151部隊(duì)2,山東 青島 276825)
2007年6月,意法半導(dǎo)體公司推出了一款基于Cortex-M3內(nèi)核的新型32位 ARM處理器,即STM32F103嵌入式微處理器。該款處理器無論在數(shù)據(jù)處理速度方面還是控制性能方面,都能很好地滿足伺服控制系統(tǒng)的要求。STM32F103對片上外圍設(shè)備進(jìn)行了改進(jìn),內(nèi)嵌了適合三相無刷電機(jī)控制的定時器和ADC。其高級PWM定時器可提供6路帶死區(qū)的PWM輸出,PWM定時器可使用72 MHz時鐘輸入;其中任何一個GPIO均可映像到外部中斷,GPIO的最大翻轉(zhuǎn)頻率可達(dá)18 MHz[1]。該款處理器的指令執(zhí)行速度非??欤棵肟蓤?zhí)行1.25×106條指令,再結(jié)合其高速數(shù)據(jù)處理能力,STM32F103能夠很好地支持控制算法,實(shí)現(xiàn)實(shí)時、高精度控制。
在電機(jī)選型方面,采用帶有星型齒輪減速裝置的三相直流無刷電機(jī),以霍爾元件作為換向傳感器,通過控制器實(shí)現(xiàn)換向?;魻杺鞲衅鬏敵鲂盘柍似鸬綋Q向作用外,還可用作位置和速度傳感器,從而簡化了位置和速度檢測電路,并在保證精度的前提下降低費(fèi)用,從而提高性價比。
三相直流電機(jī)伺服系統(tǒng)主要由位置傳感器、STM32F103嵌入式微處理器及其外圍設(shè)備、電機(jī)驅(qū)動器、伺服和位置檢測電路組成,系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖Fig.1 Overall structure of system
位置傳感器由PC機(jī)通過串口提供角度信號,模擬實(shí)際火控系統(tǒng)向被控火力系統(tǒng)提供射擊諸元(方位角或射角),并將該位置信息通過串行口發(fā)送到STM32F103微處理器。對微處理器綜合接收到的位置信息與從伺服電機(jī)反饋回來的位置信息進(jìn)行相減運(yùn)算,得到位置誤差信號e。ec為誤差的變化,在微處理器中作為e的差分信號。在火力系統(tǒng)跟蹤過程中,微處理器不斷檢測e和ec,根據(jù)e和ec,對比例系數(shù)Kp、微分系數(shù)Ki和積分系數(shù)Kd進(jìn)行在線修改,同時根據(jù)增量PID控制的原理,利用參數(shù)Kp、Ki和Kd得到誤差控制量。隨后微處理器根據(jù)誤差控制量,計算得到PWM波形占空比控制信號,并控制輸出至直流電機(jī)驅(qū)動器的電壓,進(jìn)而改變電機(jī)轉(zhuǎn)速和轉(zhuǎn)向等,從而達(dá)到火力系統(tǒng)實(shí)時跟蹤火控系統(tǒng)給定諸元的目的。
本設(shè)計采用ZHauto WS-2406三相無刷電機(jī)驅(qū)動器,驅(qū)動器及其端口連接如圖2所示。
圖2 驅(qū)動器及其端口連接示意圖Fig.2 Connections of the driver and its ports
除電源外,該驅(qū)動器端口共有三類信號,即三相電機(jī)動力驅(qū)動信號、三相霍爾換向信號和電機(jī)狀態(tài)控制信號。各端口信號的功能具體如下。
①三相電機(jī)驅(qū)動信號U、V和W為三相無刷電機(jī)提供相位互差120°的方波電流,產(chǎn)生電磁轉(zhuǎn)矩,驅(qū)動電機(jī)轉(zhuǎn)動。
②三相霍爾換向信號A、B和C是電機(jī)霍爾傳感器產(chǎn)生的三相換向輸出信號,三相之間各差120°。在本設(shè)計中,利用該信號檢測電機(jī)轉(zhuǎn)角和轉(zhuǎn)速。
③電機(jī)狀態(tài)控制信號分為轉(zhuǎn)向控制信號CW/CCW、轉(zhuǎn)速控制信號DA和電機(jī)制動信號BRK。其中,CW/CCW為數(shù)字信號,且低電平有效,由微處理器的PC5和PC6端口對其控制。DA為模擬信號,輸入電壓為0~+5 V,調(diào)節(jié)此處電壓即可調(diào)節(jié)電機(jī)轉(zhuǎn)速,由微處理器輸出的PWM信號經(jīng)積分后產(chǎn)生0~+5 V模擬信號,用來控制電機(jī)轉(zhuǎn)速。BRK為數(shù)字信號,設(shè)計時將其與微處理器的PC7端口連接,實(shí)現(xiàn)制動控制。
三相無刷電機(jī)的三相霍爾傳感器輸出信號與電機(jī)的轉(zhuǎn)角之間具有嚴(yán)格的對應(yīng)關(guān)系[2]。在一個周期(360°)內(nèi),霍爾傳感器輸出的三相方波電壓波形A、B、C三相換向信號可以分為六個區(qū)間,在每個區(qū)間對該三相信號進(jìn)行編碼,可得到一個周期內(nèi)的信號編碼為 010、011、001、101、100、110。該編碼為三位循環(huán)碼,由此可以判斷電機(jī)轉(zhuǎn)軸角度所在區(qū)間,角度分辨率為60°。如果電機(jī)是四個極對數(shù),則角度分辨率為30°,這樣就可實(shí)現(xiàn)計數(shù)式測角。由于對角度量進(jìn)行微分可以得到速度量,因此,微處理器將采集到的角度值進(jìn)行差分處理就可得到電機(jī)的轉(zhuǎn)速。
由上述分析可以看出,三相霍爾傳感器輸出信號可以作為計數(shù)式角度傳感器,經(jīng)數(shù)據(jù)處理后得到角度的變化率,實(shí)現(xiàn)測速發(fā)電機(jī)的功能。同時,由于霍爾傳感器與電機(jī)轉(zhuǎn)軸為剛性連接,因此不僅可以利用其替代角度傳感器和測速發(fā)電機(jī),而且不存在機(jī)械傳動鏈的空回和延遲等問題。但是,由于角度分辨率較低,設(shè)計中采用的四個極對數(shù)電機(jī)的分辨率只能達(dá)到30°,因此,無論是測角還是測速必然會出現(xiàn)較大的階梯誤差。為解決這一問題,本系統(tǒng)選用較大的機(jī)械傳動比,使電機(jī)與被控對象之間存在較大轉(zhuǎn)速差,即電機(jī)通常工作在高速狀態(tài),其對應(yīng)的實(shí)際角度分辨率因此得以提高。設(shè)計中采用210∶1的星型機(jī)械傳動鏈,其實(shí)際角度分辨率的表達(dá)式為:
式中:r為實(shí)際角度分辨率;R為電機(jī)角度分辨率;Ω為電機(jī)轉(zhuǎn)速;ω為被控對象轉(zhuǎn)速。
被控對象角度分辨率為:
該角度值換算成角密位為0.143×16.6666=2.38密位,可以滿足火控系統(tǒng)跟蹤系統(tǒng)對角度分辨率的要求。
A、B、C三相信號編碼為循環(huán)碼,每次只有一相信號發(fā)生翻轉(zhuǎn)。微處理器對此翻轉(zhuǎn)信號產(chǎn)生的中斷進(jìn)行計數(shù),實(shí)現(xiàn)角度檢測功能。為統(tǒng)一觸發(fā)中斷信號形式,將所有跳變統(tǒng)一變換為窄脈沖。在此采用可重觸發(fā)的雙單穩(wěn)態(tài)集成芯片74LS123予以實(shí)現(xiàn)。該芯片的觸發(fā)方式有上升沿觸發(fā)和下降沿觸發(fā)兩種。由于每個74LS123芯片有兩個觸發(fā)器單元,每相用一片,一個檢測低變高跳變,另一個檢測高變低跳變。三相共用三片74LS123,其6個觸發(fā)器單元由Q端輸出并接OC門反相器,各OC門的反相輸出連接在一起進(jìn)行上拉形成線或。位置檢測電路及脈沖信號示意圖如圖3所示。
圖3 位置檢測電路與脈沖信號示意圖Fig.3 Pulse signal schematic and circuit of position detection
PID控制具有原理簡單、魯棒性強(qiáng)等優(yōu)點(diǎn),但也存在著非線性、時變以及參數(shù)在線調(diào)整困難等問題,在實(shí)際應(yīng)用中有其局限性;而模糊控制則可以很好地解決上述問題,因而被廣泛應(yīng)用于模型不確定、非線性和參數(shù)時變的控制過程中[3],但普通的模糊控制穩(wěn)態(tài)精度較低。因此,考慮采用模糊PID控制,充分發(fā)揮二者優(yōu)點(diǎn),從而達(dá)到較好的控制效果[4]。
模糊控制器主要包括模糊化接口、知識庫、模糊推理機(jī)和解模糊接口四部分[5]。本模型采用二輸入三輸出結(jié)構(gòu),其組成如圖4所示??刂破鞯妮斎虢?jīng)過模糊化接口后,由精確量轉(zhuǎn)變?yōu)槟:?由數(shù)據(jù)庫和規(guī)則庫構(gòu)成的知識庫為模糊推理提供數(shù)據(jù)和推理規(guī)則;經(jīng)過模糊推理后,解模糊即可輸出精確數(shù)字量。
圖4 模糊控制器組成框圖Fig.4 Composition of fuzzy controller
3.1.1 輸入輸出變量的模糊化
模糊控制器以誤差e和誤差變化率ec作為輸入,以Kp、Ki和 Kd作為輸出,其中 e和 ec都是連續(xù)變量。試驗(yàn)得到e的基本論域?yàn)椋郏?,5],ec的基本論域?yàn)椋郏?,6]。將 e、ec 以及 Kp、Ki和 Kd變換到模糊論域E={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}上,對應(yīng)子集為{NB,NM,NS,ZO,PS,PM,PB},其表示的含義為{負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大}。
3.1.2 模糊控制規(guī)則的建立
根據(jù)對已有直流伺服系統(tǒng)設(shè)計經(jīng)驗(yàn)的總結(jié),可以得出以下三條 PID控制器參數(shù) Kp、Ki和 Kd的規(guī)律[6-7]。①當(dāng)|e|較大時,為迅速減小誤差,應(yīng)選取較大的Kp。同時為避免誤差瞬間變大可能引起的微分過飽和,應(yīng)取取較小的Kd。為防止出現(xiàn)較大的超調(diào),需要限制積分作用,通常選取較小的Ki。②當(dāng)|e|和|ec|處于中等大小時,為使系統(tǒng)響應(yīng)具有較小超調(diào),應(yīng)選取較小的Kp,而Ki和Kd取值要適中。③當(dāng)|e|較小時,為使系統(tǒng)提高精度,不產(chǎn)生振蕩,應(yīng)該選取較小的Kp和較大的Ki。Kd的值根據(jù)ec大小決定,當(dāng)ec較大時,Kd取較小值。根據(jù)上述基本原則和試驗(yàn)中的經(jīng)驗(yàn)得到模糊控制規(guī)則表如表1所示。
表1 Kp、Ki和Kd的模糊控制規(guī)則表Tab.1 Fuzzy control rules of Kp、Kiand Kd
3.1.3 解模糊
由模糊控制規(guī)則得到的推理結(jié)果為模糊值,不能直接用作被控對象的控制量,而是需要將其轉(zhuǎn)換為微處理器可以識別的精確量。這里輸入輸出量均采用三角形隸屬度函數(shù),利用查表法解模糊即可得出精確的、適合微處理器運(yùn)算所需的數(shù)字量[8]。
根據(jù)PID控制的定義,輸入與輸出的關(guān)系為:式中:Kp、Ki和Kd均由模糊推理得到。要計算P(k),不僅需要得到本次偏差信號e(k)與上次的偏差信號e(k-1),還需要對以前的歷次偏差信號e(j)作累加。這將增大微處理器計算量,在實(shí)際應(yīng)用中是不合適的。
為解決上述問題,可假設(shè)P(k-1)的表達(dá)式為:
將式(3)與式(4)相減,可得增量型 PID算式為[9]:
由式(5)可知,ΔP(k)僅與 e(k)、e(k-1)和 e(k-2)有關(guān)。
在PID控制過程中,當(dāng)誤差e較大時,由于積分的作用會產(chǎn)生超調(diào)量,嚴(yán)重時甚至?xí)?dǎo)致系統(tǒng)振蕩。因此,需采取積分分離的措施。在偏差量較大時,將積分系數(shù)Ki置為0,只有當(dāng)偏差降低到一定值后,才將積分作用引入[10]。
本設(shè)計中的臨界值取5,表達(dá)式如式(6)所示:
根據(jù)上述計算,得到模糊PID控制流程圖如圖5所示。
圖5 模糊PID控制流程圖Fig.5 Process of fuzzy PID control
在測試試驗(yàn)中,由PC機(jī)代替位置傳感器,根據(jù)模擬飛行航路,計算并輸出火力系統(tǒng)射擊諸元(“射擊諸元”是指火炮射擊時裝定的數(shù)據(jù)的總稱,包括高低角、方位角等信息),并將這些值通過串口發(fā)送至微處理器STM32F103。微處理器控制伺服電機(jī)轉(zhuǎn)動,實(shí)現(xiàn)模擬跟蹤,在此期間不斷向PC機(jī)發(fā)送當(dāng)前伺服系統(tǒng)的位置信息,并最終在PC機(jī)號加以顯示,用于測試跟蹤精度和速度。
模擬航路跟蹤及其誤差曲線如圖6所示。
圖6 模擬航路跟蹤與誤差曲線Fig.6 Simulated route tracking and error curve
由以上分析可知,跟蹤誤差主要由角度傳感器產(chǎn)生。如果需要提高系統(tǒng)精度,可以通過提高傳動比或采用單獨(dú)的高精度角度傳感器加以實(shí)現(xiàn)。
本設(shè)計的直流電機(jī)伺服系統(tǒng)以新型ARM處理器STM32F103為核心構(gòu)建。在軟件設(shè)計方面充分利用了該款微處理器指令和數(shù)據(jù)處理速度快的優(yōu)勢,采用增量型積分分離式數(shù)字PID控制與模糊控制結(jié)合的控制策略,提高了跟蹤精度;在硬件電路設(shè)計方面,處理器的PWM輸出并沒有直接用于電機(jī)控制,而是經(jīng)過積分后輸入到三相直流電機(jī)驅(qū)動器,實(shí)現(xiàn)對電機(jī)的控制。經(jīng)調(diào)試試驗(yàn),系統(tǒng)基本達(dá)到了硬件電路所能達(dá)到的最小誤差,具有較好的實(shí)時性,基本達(dá)到了火控系統(tǒng)某實(shí)驗(yàn)演示系統(tǒng)的要求。
[1]李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[2]欒亞群,程婷,趙一潔.基于ATmega48的三相無刷電機(jī)控制方法[J].國外電子元器件,2008,16(11):38 -42.
[3]諸靜.模糊控制理論與系統(tǒng)原理[M].北京:機(jī)械工業(yè)出版社,2005.
[4]呂礦生,周杏鵬,陶連斌,等.基于模糊PID的雷蒙磨控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].自動化儀表,2009,30(2):27 -29.
[5]席愛民.模糊控制技術(shù)[M].西安:西安電子科技出版社,2008.
[6]王祥好.模糊PID控制算法在智能小車中的研究與應(yīng)用[D].合肥:合肥工業(yè)大學(xué),2009.
[7]南新元,陳志軍,程志江.基于模糊PID控制的電鍋爐溫度過程控制系統(tǒng)[J].自動化儀表,2008,29(5):5 -8.
[8]尹曉落.模糊PID控制在直流調(diào)速系統(tǒng)中的應(yīng)用[D].合肥:合肥工業(yè)大學(xué),2008.
[9]徐大誠,鄒麗新,丁建強(qiáng).微型計算機(jī)控制技術(shù)及應(yīng)用[M].北京:高等教育出版社,2003.
[10]賴壽宏.微型計算機(jī)控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2010.