基于fpga的無人機(jī)舵機(jī)遙控信息的采集和處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無人機(jī)舵機(jī)控制技術(shù)領(lǐng)域,尤其涉及一種基于FPGA的無人機(jī)舵機(jī)遙控信息的采集和處理方法。
【背景技術(shù)】
[0002]現(xiàn)有的無人飛機(jī)的舵機(jī)遙控一般采用邏輯電路或微處理器采集多路PWM波形的遙控信息,結(jié)合由飛控單元產(chǎn)生的自控舵量信息,經(jīng)過融合處理,輸出多路舵量控制信息,控制無人機(jī)的橫滾、俯仰及航向等運(yùn)動。信息更新周期在十毫秒級,且信號采集抗干擾能力較差,飛行控制響應(yīng)速度較慢,直接影響到飛行器的飛行性能。
[0003]目前無人機(jī)的舵機(jī)遙控信息的采集,一般是采用邏輯電路或微處理器單元,采用FPGA的如2008年實(shí)用新型專利《基于FPGA的電動舵機(jī)控制器》,專利號ZL200820233842.1。其結(jié)構(gòu)框圖如圖1所示。
[0004]該專利包含F(xiàn)PGA模塊1、電源模塊2、數(shù)字通信模塊3、信號調(diào)理及Α/D轉(zhuǎn)換模塊4以及電機(jī)驅(qū)動模塊5,采用FPGA不斷改進(jìn)控制算法來提高系統(tǒng)性能,能實(shí)現(xiàn)多路舵機(jī)集成控制,集成度高,性能可靠,從根本上解決模擬式電動舵機(jī)信號的衰變及串?dāng)_問題。其中FPGA模塊接受數(shù)字信號后,進(jìn)行數(shù)據(jù)并行處理,然后輸出到電機(jī)驅(qū)動模塊,驅(qū)動多路舵機(jī)。其信號調(diào)理及Α/D轉(zhuǎn)換模塊獨(dú)立于FPGA,信號處理性能與該調(diào)理能力密切相關(guān)?,F(xiàn)有技術(shù)采用獨(dú)立的信號調(diào)理及Α/D轉(zhuǎn)換模塊來處理傳感器信息,電路冗余,且不能靈活應(yīng)用先進(jìn)的濾波處理技術(shù)。本專利申請文件采用FPGA電路取代信號調(diào)理及相關(guān)電路,采用硬件描述語言設(shè)計(jì)先進(jìn)的濾波處理算法,提高了信號處理能力,能獲得可靠的舵機(jī)控制信號,并能精簡硬件電路,具有明顯的優(yōu)點(diǎn)?,F(xiàn)有的技術(shù)采用硬件邏輯電路及微處理器的方法處理舵機(jī)的遙控信號,處理響應(yīng)周期在十毫秒級,一般是10?20毫秒更新一次,信號響應(yīng)時(shí)間長。本專利申請文件采用FPGA中的時(shí)鐘信號進(jìn)行循環(huán)操作,響應(yīng)頻率達(dá)到100兆赫以上,能達(dá)到微秒級的響應(yīng)周期,因此大大提高了反應(yīng)速度,能極大地提高系統(tǒng)的應(yīng)變能力。
[0005]其中,F(xiàn)PGA,現(xiàn)場可編程門陣列Field Progammable Gate Array,可以采用硬件描述語言設(shè)計(jì)專用的功能電路模塊,通過邏輯單元搭建成硬件模塊,響應(yīng)頻率高。
[0006]舵機(jī):無人飛機(jī)上控制橫滾、俯仰及航向的控制電動機(jī)。
[0007]舵量:對無人飛機(jī)上舵機(jī)的控制量,可由遙控器發(fā)出手動控制量,也可由飛控單元發(fā)出的自動控制量。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問題,在于提供一種基于FPGA的無人機(jī)舵機(jī)遙控信息的采集和處理方法,能有效地提高多路舵機(jī)控制信號的采集頻率,極大地提高響應(yīng)速度,能實(shí)時(shí)地更新控制舵量,從而提高無人飛機(jī)的平穩(wěn)飛行。
[0009]本發(fā)明是這樣實(shí)現(xiàn)的:一種基于FPGA的無人機(jī)舵機(jī)遙控信息的采集和處理方法,所述方法需提供FPGA模塊、該FPGA模塊中包括有上升沿及下降沿信號采集電路和濾波算法信號處理電路;所述上升沿及下降沿信號采集電路實(shí)現(xiàn)遙控接收機(jī)信號的采集,記錄來自遙控接收機(jī)端口的PWM脈寬調(diào)制信號的上升沿與下降沿的時(shí)鐘周期數(shù),得出接收機(jī)信號的PWM脈寬值,濾波算法信號處理電路將采集到的遙控舵量控制信息后進(jìn)行濾波處理,獲得穩(wěn)定的遙控舵量控制信息;所述方法具體為:將無人機(jī)的各個舵機(jī)均連接一舵機(jī)驅(qū)動器,將各個舵機(jī)驅(qū)動器與FPFA模塊連接,上升沿及下降沿信號采集電路對遙控接收機(jī)發(fā)出的信號進(jìn)行采集,濾波算法信號處理電路將采集到的遙控舵量控制信息后進(jìn)行濾波處理,獲得穩(wěn)定的遙控舵量控制信息,并通過一總線發(fā)送給無人機(jī)的飛控單元。
[0010]進(jìn)一步地,所述上升沿及下降沿信號采集電路實(shí)現(xiàn)遙控接收機(jī)信號的采集具體為:上升沿及下降沿信號采集電路初始化,時(shí)鐘計(jì)數(shù)脈沖為O值;判斷遙控接收機(jī)的信號的時(shí)鐘脈沖是否為上升沿,否,則等待下一次兆赫時(shí)鐘脈沖上升沿的觸發(fā),是,捕捉其上升沿,此刻采集無人機(jī)舵量控制信息的電平,如為高電平,則進(jìn)行時(shí)鐘計(jì)數(shù)脈沖的計(jì)數(shù),直到捕捉到了舵量控制的下降沿,則完成PWM脈寬值的計(jì)數(shù),將該值作為舵機(jī)的遙控舵量值輸出,BP可用于控制舵機(jī)轉(zhuǎn)動,從而實(shí)現(xiàn)無人飛機(jī)的舵量控制;如為低電平,則判斷遙控接收機(jī)的信號的時(shí)鐘脈沖是否為下降沿,否,則時(shí)鐘計(jì)數(shù)脈沖清零;是,則進(jìn)行時(shí)鐘計(jì)數(shù)脈沖的計(jì)數(shù),完成PWM脈寬值的計(jì)數(shù),將該值作為舵機(jī)的遙控舵量值輸出。
[0011]進(jìn)一步地,所述濾波處理的算法可包括:卡爾曼濾波算法、粒子濾波算法、或中值濾波算法等。
[0012]進(jìn)一步地,所述卡爾曼濾波算法具體為:首先建立遙控接收機(jī)信號系統(tǒng)模型;假設(shè)遙控接收機(jī)信號的系統(tǒng)狀態(tài)是k,初始化無人機(jī)遙控接收機(jī)舵量采集系統(tǒng)參數(shù),設(shè)定矩陣A、B、H的系統(tǒng)參數(shù),根據(jù)系統(tǒng)的模型,基于系統(tǒng)的上一狀態(tài)而預(yù)測出現(xiàn)在狀態(tài)為:
[0013]X (k I k-1) =AX (k-11 k_l) +B U (k).........(I)
[0014]式⑴中,X(k|k-1)是利用上一狀態(tài)預(yù)測的結(jié)果,
[0015]X(k-1 |k-l)是上一狀態(tài)最優(yōu)的結(jié)果,
[0016]U (k)為現(xiàn)在狀態(tài)的控制量;
[0017]用P表示協(xié)方差:
[0018]P (k I k-1) =A P (k-11 k-1) A,+Q.........(2)
[0019]式(2)中,P (k I k-1)是X(k I k-1)對應(yīng)的協(xié)方差值,
[0020]P (k-11 k-1)是 X (k-11 k-1)對應(yīng)的協(xié)方差值,
[0021]A’表示系統(tǒng)參數(shù)A的轉(zhuǎn)置矩陣,
[0022]Q是系統(tǒng)過程的協(xié)方差;
[0023]式子(1),⑵表示對系統(tǒng)的預(yù)測;有了現(xiàn)在狀態(tài)的預(yù)測結(jié)果,開始收集現(xiàn)在狀態(tài)的測量值,然后結(jié)合預(yù)測值和測量值,得到現(xiàn)在狀態(tài)(k)的最優(yōu)化估算值X (k |k):
[0024]X (k I k) = X (k I k-1) +Kg (k) (Z (k) -H X (k | k-1)).........(3)
[0025]其中,Z(k)是k狀態(tài)時(shí)的測量值,Kg為卡爾曼增益:
[0026]Kg (k) = P (k I k-1) H,/ (H P (k | k-1) H,+R).........(4)
[0027]其中,H是測量系統(tǒng)的參數(shù),對于多測量系統(tǒng),H’為矩陣,R為遙控接收機(jī)舵量采集信號測量的協(xié)方差;
[0028]以上得到了 k狀態(tài)下最優(yōu)的估算值X (k |k)之后,需要更新k狀態(tài)下X(k|k)的協(xié)方差:
[0029]P (k I k) = (1-Kg (k) H) P (k | k-1).........(5)
[0030]其中I為I的矩陣,對于單模型單測量,I = I ;最優(yōu)的估算值X(k |k)和P(k|k)即為穩(wěn)定的遙控舵量控制信息。
[0031]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明采用FPGA技術(shù)及硬件描述語言,基于高頻的時(shí)鐘脈沖周期,捕捉多路舵機(jī)遙控信息,能實(shí)現(xiàn)多路遙控舵量信息的快速采集,并能融合相應(yīng)的信號濾波處理硬件電路,得出的穩(wěn)定可靠的遙控舵量,時(shí)間周期提高到了微秒級,能有效地提高多路舵機(jī)控制信號的采集頻率,極大地提高響應(yīng)速度,能實(shí)時(shí)地更新控制舵量,從而提高無人飛機(jī)的平穩(wěn)飛行。
【附圖說明】
[0032]圖1為現(xiàn)有技術(shù)的基于FPGA的電動舵機(jī)控制器的結(jié)構(gòu)示意圖。
[0033]圖2為基于FPGA的無人機(jī)舵機(jī)遙控信息的控制框圖。
[0034]圖3為基于FPGA的無人機(jī)舵機(jī)遙控信息的信息采集與處理框圖。
[0035]圖4為基于FPGA的無人機(jī)舵機(jī)遙控信息的遙控舵量信息采集流程示意圖。
[0036]圖5基于FPGA的無人機(jī)舵機(jī)遙控信息的遙控舵量信息處理流程示意圖。
【具體實(shí)施方式】
[0037]請參閱圖1至圖5所示,本發(fā)明的一種基于FPGA的無人機(jī)舵機(jī)遙控信息的采集和處理方法,所述方法需提供FPGA模塊、該FPGA模塊中包括有上升沿及下降沿信號采集電路和濾波算法信號處理電路;所述上升沿及下降沿信號采集電路實(shí)現(xiàn)遙控接收機(jī)信號的采集,記錄來自遙控接收機(jī)端口的PWM脈寬調(diào)制信號的上升沿與下降沿的時(shí)鐘周期數(shù),得出接收機(jī)信號的PWM脈寬值,濾波算法信號處理電路將采集到的遙控舵量控制信息后進(jìn)行濾波處理,獲得穩(wěn)定的遙控舵量控制信息;所述方法具體為:將無人機(jī)的各個舵機(jī)均連接一舵機(jī)驅(qū)動器,將各個舵機(jī)驅(qū)動器與FPFA模塊連接,上升沿及下降沿信號采集電路對遙控接收機(jī)發(fā)出的信號進(jìn)行采集,濾波算法信號處理電路將采集到的遙控舵量控制信息后進(jìn)行濾波處理,獲得穩(wěn)定的遙控舵量控制信息,并通過一總線發(fā)送給無人機(jī)的飛控單元。所述濾波處理的算法可包括:卡爾曼濾波算法、粒子濾波算法、或中值濾波算法等。
[0038]其中,所述上升沿及下降沿信號采集電路實(shí)現(xiàn)遙控接收機(jī)信號的采集具體為:上升沿及下降沿信號采集電路初始化,時(shí)鐘計(jì)數(shù)脈沖為O值;判斷遙控接收機(jī)的信號的時(shí)鐘脈沖是否為上升沿,否,則等待下一次兆赫時(shí)鐘脈沖上升沿的觸發(fā),是,捕捉其上升沿,此刻采集無人機(jī)舵量控制信息的電平,如為高電平,則進(jìn)行時(shí)鐘計(jì)數(shù)脈沖的計(jì)數(shù),直到捕捉到了舵量控制的下降沿,則完成PWM脈寬值的計(jì)數(shù),將該值作為舵機(jī)的遙控舵量值輸出,即可用于控制舵機(jī)轉(zhuǎn)動,從而實(shí)現(xiàn)無人飛機(jī)的舵量控制;如為低電平,則判斷遙控接收機(jī)的信號的時(shí)鐘脈沖是否為下降沿,否,則時(shí)鐘