彭焮成, 王素娟, 劉玉縣, 陳 婷, 湯 麗
(1.江西理工大學(xué) 機電工程學(xué)院,江西 贛州 341000; 2.廣東順德創(chuàng)新設(shè)計研究院,廣東 佛山 528300)
微機電系統(tǒng)(MEMS)陀螺儀具有體積小、功耗低、成本低,抗過載能力強、動態(tài)范圍大、可集成化等優(yōu)點在工業(yè)控制、航空航天、汽車、消費電子、軍事等領(lǐng)域中得到廣泛應(yīng)用[1]。陀螺是一種測量角速度的力學(xué)傳感器,其工作前提是驅(qū)動模態(tài)能穩(wěn)定振蕩起來,需要合適的驅(qū)動環(huán)路。相對于采用模擬電路,數(shù)字電路閉環(huán)控制具有精確、對環(huán)境有效變化易于控制、容易對算法調(diào)整和優(yōu)化的特點,并且由于現(xiàn)場可編程門陣列(field programmable gate array,FPGA)并行處理快速方式、硬件描述語言、模塊化設(shè)計等優(yōu)點,許多陀螺的數(shù)字電路設(shè)計方法搭建在FPGA平臺上[2,3]。
本文使用了CORDIC算法[3]產(chǎn)生驅(qū)動信號和解調(diào)信號,相比于直接頻率合成[4](direct frequency synthesis,DDS)方法節(jié)省了大量的只讀存儲器(read only memory,ROM)資源。因為直接頻率合成是將信號正余弦波的幅值存入查找表中(look up table,LUT),要達到高的精度將占用大量內(nèi)存資源[5]。信號解調(diào)采用了工業(yè)上廣泛應(yīng)用的正交解調(diào),相比于最小均方(least mean square,LMS)自適應(yīng)濾波[6]要簡單,并且不需要考慮濾波的權(quán)重系數(shù)。再經(jīng)過低通濾波濾除由于解調(diào)產(chǎn)生的高頻信號。參考幅值和相位可以由掃頻方法[8]和振動測試方法[9]求得。陀螺的驅(qū)動模態(tài)是非線性系統(tǒng),采用模糊控制具有優(yōu)越的非線性控制能力使陀螺能夠在諧振頻率處穩(wěn)定工作,得到最大的信噪比。
如圖1所示,MEMS陀螺驅(qū)動模態(tài)的運動學(xué)方程可以等效成二階質(zhì)量—彈簧—阻尼系統(tǒng)。
圖1 MEMS陀螺儀簡化模型[7]
設(shè)驅(qū)動模態(tài)的彈簧系數(shù)kd,阻尼系數(shù)cd,質(zhì)量塊的位移量為x,驅(qū)動電極上施加的靜電,則驅(qū)動模態(tài)的動力學(xué)方程為
(1)
求解輸出位移信號
Adsin(ωt-ψd)
(2)
穩(wěn)態(tài)振幅
(3)
穩(wěn)態(tài)相位
(4)
總相移為
ψphase_ref=ψd+ψe
(5)
式中Ψe為電路中元器件的相移,ψd為陀螺工作在諧振頻率處的相移,由于溫度或者其他環(huán)境的影響,驅(qū)動模態(tài)的諧振頻率會發(fā)生變化,通過跟蹤ψphase_ref能檢測信號的變化。ψe可以看作不變的量,只要控制ψphase_ref不變,就能保證陀螺工作在諧振頻率處,再用模糊控制保證頻率在諧振頻率處,能基本保持恒幅振動。
由動力學(xué)方程推導(dǎo):可知位移響應(yīng)包含了2項之和,前一項是瞬態(tài)響應(yīng),后一項是穩(wěn)態(tài)響應(yīng)??煞譃檎駝訙y試和掃頻測試的方法,振動測試是基于時域的測試方法而掃頻測試則是基于頻域的測試方法。這兩種方法可以計算陀螺在諧振頻率處的參考幅值和參考相位[7]。
圖2 數(shù)字閉環(huán)驅(qū)動示意
CORDIC算法[3]即坐標旋轉(zhuǎn)數(shù)字計算方法,主要用于三角函數(shù)等的計算,這里通過相位的不斷增加逐步計算出相位正余弦,由相位增加的速度(頻率控制字)來控制輸出頻率的大小,提供了驅(qū)動信號和解調(diào)信號。
圖3 坐標旋轉(zhuǎn)示意
在xy坐標平面上,將點(x1,y1)旋轉(zhuǎn)θ角度到(x2,y2)的標準方法
x2=x1cosθ-y1sinθ,y2=x1sinθ+y1cosθ
(6)
寫成矩陣形式
(7)
式中R為旋轉(zhuǎn)矩
(8)
令tanθi=2-i,這樣乘正切值變成了移位操作,方便了數(shù)字電路的處理。轉(zhuǎn)換因子Ki=(1+2-2i)-1/2得到CORDIC算法的一般表達式
(9)
這里引入第三個方程,稱為角度累加器,用來在每次迭代過程中追蹤累加的旋轉(zhuǎn)角度。在FPGA中使用了高速全流水線結(jié)構(gòu)的方式,通過基本的加減法和移位運算代替了乘法運算,再使用迭代的方法不斷計算所給及的角度的正弦和余弦值。
閉環(huán)控制的目的是為了給驅(qū)動模態(tài)一個恒定的正弦波。正交解調(diào)[10]是分離幅值和相位信息,使其能得到有效的控制。假設(shè)ADC采集到的信號是A·sin(ωnt+ψ),再由CORDIC模塊產(chǎn)生和采集信號頻率一樣的正交解調(diào)信號sinωnt和cosωnt。頻率確定就可以求解幅值和相位。解調(diào)過程如下
sI(t)=A·sin(ωnt+ψ)·cosωnt
sQ(t)=A·sin(ωnt+ψ)·sinωnt
(10)
經(jīng)過低通濾波器濾除的高頻信號2ωn,結(jié)果為
(11)
經(jīng)過正交解調(diào)可以求得幅值和相位,方便后面的比例積分微分(proportion-integration-differentiation,PID)調(diào)節(jié)和Fuzzy控制算法的調(diào)節(jié)
(12)
模糊控制是一種非線性控制[11],據(jù)模糊控制器設(shè)計的理論可知,模糊控制系統(tǒng)的設(shè)計中所選的模糊控制器的維數(shù)越高,系統(tǒng)的控制精度也就越高,在建立模糊控制規(guī)則時就變的比較困難,同時計算機實現(xiàn)起來也比較麻煩。因此,本文主要采用設(shè)計的通用方法,采用雙輸入單輸出的二維模糊控制器的設(shè)計,如圖4所示。
圖4 常規(guī)模糊控制器結(jié)構(gòu)
模糊語言變量用5個元素的集合(X,T(X),U,G,M)表示,其中,X為語言變量名;T(X)為語言變量名的集合, 且每個值都在U上定義的模糊數(shù)Xi;U為語言變量X的論域;G為產(chǎn)生X數(shù)值名的語言值規(guī)則,是用于產(chǎn)生語言變量值的;M為與每個語言變量含義相聯(lián)系的算法規(guī)則。如圖5所示。
圖5 隸屬度函數(shù)
根據(jù)模糊控制結(jié)構(gòu)圖可知,模糊控制主要分為三部分:模糊化、模糊推理、清晰化。
輸入和輸出變量E,EC和ΔVn的模糊子集均為{nb,nm,ns,ze,ps,pm,pb},即為{負大,負中,負小,零,正小,正中,正大},它們量化的論域取[-3,3],取7個模糊檔{-3,-2,-1,0,1,2,3},這個量化的過程就是將E,EC模糊化。由于是需要將ΔVn存入內(nèi)存中,通過查找表的地址來讀取ΔVn的值,在內(nèi)存中分別用4位二進制表示E和EC,對地址進行編碼的主要由兩部分組成,分別為E和EC。
E和EC分別有7個模糊子集,即有了49條規(guī)則。模糊規(guī)則表是模糊控制器的核心,根據(jù)人的經(jīng)驗去設(shè)計。其中核心的思想在于:判斷E和EC屬于哪個論域,來調(diào)整ΔVn來快速降低誤差。如果E為pb并且EC也為pb時,則ΔVn為nb,其它的設(shè)置類似。根據(jù)模糊規(guī)則表和Mamdani算法,可由式(13)計算控制表
(13)
E'和EC'為普通輸入變量,Ei,ECi和ΔVni是模糊規(guī)則中的49條規(guī)則。最后,用重心法去模糊化,將模糊控制器的輸出ΔV'n轉(zhuǎn)化成量化ΔVn。
表1 模糊規(guī)則表
在整個控制過程中,模糊控制表可以使用MATLAB中的模糊(fuzzy)工具可以方便的求得ΔVn的值,再作為LUT存儲于FPGA硬件中。但FPGA的查找表中不能存儲小數(shù),可以乘2n(即向左n位)變?yōu)檎麛?shù)再存儲在查找表中,輸出時再除2n還原。
傳統(tǒng)的二維模糊控制算法可以描述為
Vn=Vn-1+ΔVn=Vn-1+fuzzy(kpE,kdEC)
(14)
式中E和EC分別為最近一次的控制誤差和控制誤差變化率ΔVn,kp和kd分別為權(quán)重因子,相位控制增量主要由Fuzzy控制器決定[9]。由于缺乏積分環(huán)節(jié),為消除靜差,提高控制器精度,提出改進的方法
Vn=Vn-1+ΔVn=Vn-1+fuzzy(kpE,kdEC)+kiE
(15)
改進后模糊控制是傳統(tǒng)模糊控制和PID的結(jié)合體,對控制對象有較高的控制精度。
實驗使用的陀螺是由北京大學(xué)自主設(shè)計的采用雙解耦結(jié)構(gòu),Q值(標度因子)980,諧振頻率9 432.12 Hz。
圖6是驅(qū)動模態(tài)質(zhì)量塊恒幅振動下測試1 h的幅值。振幅的有效值約為0.812 46 V。
圖6 改進前與改進后的模糊控制器幅值變化
圖6(a)由于缺少積分環(huán)節(jié),無法消除控制器的靜態(tài)誤差,隨著時間的變化幅值變化很明顯,波動幅度為62 μV,驅(qū)動幅值抖動精度為76×10-6。圖6(b)是改進的模糊控制器實驗結(jié)果。
新的控制器加入了積分環(huán)節(jié),能有效地消除陀螺靜態(tài)誤差,波動幅度42 μV,驅(qū)動幅值抖動精度51×10-6。獲得較快的控制能力、較高的控制精度以及較強的魯棒性。
本文提出一種基于模糊控制算法的MEMS陀螺驅(qū)動閉環(huán)設(shè)計方法,并應(yīng)用于FPGA平臺上。區(qū)別于經(jīng)典PID控制理論,該方法則是基于人類的經(jīng)驗設(shè)計而成,屬于智能控制方法的一種,具有非線性系統(tǒng)的控制能力。模糊控制器可以通過對陀螺幅值的控制,從而使陀螺保持在諧振狀態(tài)下,獲得恒定幅值和較高的信噪比。