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