靖固+張學(xué)松
摘 要:以FPGA語(yǔ)音識(shí)別命令作為四旋翼的航拍遙控命令,將FPGA快速處理信息的能力與語(yǔ)音控制的簡(jiǎn)單、準(zhǔn)確、靈活特點(diǎn)相結(jié)合??刂葡到y(tǒng)分為2部分,四旋翼飛行器利用單片機(jī),采用模糊神經(jīng)網(wǎng)絡(luò)PID控制四旋翼螺旋槳的轉(zhuǎn)速達(dá)到對(duì)機(jī)身的飛行高度和方向的控制;語(yǔ)音遙控命令利用FPGA,采用優(yōu)化的隱馬爾可夫模型完成對(duì)機(jī)身的飛行姿態(tài)的命令控制。經(jīng)仿真驗(yàn)證語(yǔ)音控制四旋翼控制系統(tǒng)具有很強(qiáng)的實(shí)時(shí)性,能很好地控制四旋翼飛行器完成航拍任務(wù)。
關(guān)鍵詞:FPGA;四旋翼控制系統(tǒng);模糊神經(jīng)網(wǎng)絡(luò)PID;優(yōu)化的隱馬爾可夫模型
DOI:10.15938/j.jhust.2017.06.018
中圖分類(lèi)號(hào): TP391.41
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1007-2683(2017)06-0095-07
Abstract:This paper uses FPGA speech recognition command as the fourrotor aerial remote control command. The FPGA can quickly process information combined voice control of the simple, accurate and flexible features.The control system is divided into two parts. The fourrotor craft uses the singlechip computer and it uses the fuzzy neural network PID to control the speed of the fourrotor propeller to achieve the control of the flying height and direction of the fuselage. The voice remote command uses FPGA to optimize the hidden markov model that completes the command control of the flight attitude of the fuselage. The simulation of the fourrotor control system has a strong realtime, and the system can control the four rotorcraft to complete the aerial mission better.
Keywords:FPGA; fourrotor control system; fuzzy neural network PID; optimized hidden Markov model
0 引 言
伴隨著航拍等新型技術(shù)的崛起,四旋翼飛行器成為近年來(lái)的熱點(diǎn)研究主題[1]。本文就是利用FPGA的快速處理信息的能力[2],將信息量較大的語(yǔ)音航拍遙控命令[3]在FPGA上識(shí)別處理,將FPGA快速處理信息的能力與語(yǔ)音控制的簡(jiǎn)單、準(zhǔn)確、靈活性特點(diǎn)相結(jié)合,使四旋翼飛行器控制系統(tǒng)更能滿足特定系統(tǒng)的實(shí)時(shí)性、準(zhǔn)確性和靈活性的要求[4]。
1 系統(tǒng)整體設(shè)計(jì)
基于FPGA語(yǔ)音識(shí)別的四旋翼飛行器控制系統(tǒng)是由四旋翼飛行器系統(tǒng)和語(yǔ)音控制系統(tǒng)組成。語(yǔ)音控制系統(tǒng)是由FPGA語(yǔ)音識(shí)別[2]模塊進(jìn)行語(yǔ)音識(shí)別控制,首先由麥克風(fēng)采集語(yǔ)音控制命令,通過(guò)FPGA處理轉(zhuǎn)換成數(shù)字控制信號(hào),通過(guò)2.4GHz無(wú)線模塊發(fā)送;四旋翼飛行器控制系統(tǒng)由四旋翼上的2.4GHz無(wú)線接收模塊、MPU6050檢測(cè)模塊和單片機(jī)主控器組成。單片機(jī)將接收的控制命令解析出姿態(tài)角與MPU6050檢測(cè)的當(dāng)前四旋翼姿態(tài)比較后,通過(guò)單片機(jī)控制器的整合來(lái)控制四旋翼的飛行姿態(tài)。系統(tǒng)整體框圖如圖1,通過(guò)顯示屏當(dāng)前的圖像來(lái)調(diào)整攝像頭的角度,進(jìn)而達(dá)到想要航拍的圖像。
2 四旋翼控制器系統(tǒng)設(shè)計(jì)
2.1 四旋翼飛行器工作原理
四旋翼飛行器是由一對(duì)正槳、一對(duì)副槳、4個(gè)無(wú)刷電機(jī)、4個(gè)無(wú)刷電調(diào)、電池、機(jī)架、2.4GHz無(wú)線接收模塊[5]、MPU6050[6]以及起主要控制的單片機(jī)處理器組成。4個(gè)螺旋槳正副槳交替安裝,兩個(gè)螺旋槳順時(shí)針旋轉(zhuǎn)兩個(gè)螺旋槳逆時(shí)針旋轉(zhuǎn)。四旋翼飛行器有 “十”字模型和“X”字模型[7],本系統(tǒng)采用“X”字模型。系統(tǒng)通過(guò)控制四旋翼四個(gè)螺旋槳轉(zhuǎn)速來(lái)改變四旋翼3個(gè)姿態(tài)角,從而改變四旋翼運(yùn)動(dòng)軌跡。三個(gè)姿態(tài)角如圖2、圖3和圖4所示。α為俯仰角,β為偏航角,γ為橫滾角。
2.2 建立四旋翼飛行器的數(shù)學(xué)模型
首先定義 “X”字模型坐標(biāo)系,在懸停狀態(tài)下四旋翼受力情況如圖5所示[8]。
偏差和偏差變化率作為模糊神經(jīng)網(wǎng)絡(luò)PID控制器的輸入,經(jīng)過(guò)學(xué)習(xí)和訓(xùn)練的模糊神經(jīng)網(wǎng)絡(luò)輸出P、I、D,再經(jīng)過(guò)比例因子調(diào)整后得到最佳的參數(shù),輸入給PID控制器。模糊神經(jīng)網(wǎng)絡(luò)[11]控制器有輸入層、隸屬函數(shù)層、模糊推理層、歸一化層、輸出層組成。其結(jié)構(gòu)如圖7所示[12]。
仿真結(jié)果表明模糊神經(jīng)網(wǎng)絡(luò)控制器能夠很好地控制四旋翼飛行器平穩(wěn)飛行,當(dāng)有干擾的時(shí)候也能很快的恢復(fù)到平穩(wěn)飛行狀態(tài)。
3 語(yǔ)音控制命令識(shí)別系統(tǒng)
3.1 優(yōu)化MFCC特征
中國(guó)有56個(gè)民族,每個(gè)民族都有自己的方言且各有特點(diǎn),對(duì)于語(yǔ)音識(shí)別加大了識(shí)別的難度。在研究中發(fā)現(xiàn),梅爾倒譜系數(shù)能很好地區(qū)分這些特征,并將語(yǔ)音識(shí)別出來(lái)。
首先對(duì)采集的語(yǔ)音信號(hào)進(jìn)行RC濾波和分幀,通過(guò)RC濾波器濾除語(yǔ)音命令輸入的干擾信號(hào),本系統(tǒng)幀長(zhǎng)取256,幀移60;其次,設(shè)置預(yù)加重濾波器,能消除部分噪聲,以提升清音部分的能量;再其次,加漢明窗,端點(diǎn)檢測(cè),在第n幀的短時(shí)能量大于噪聲的短時(shí)能量,即第n幀短時(shí)能量En,并用短時(shí)過(guò)零率來(lái)區(qū)分無(wú)聲、濁音以及清音。再進(jìn)行FFT變換是為了得到語(yǔ)音信號(hào)的功率譜,而語(yǔ)音信號(hào)是在時(shí)域下的信號(hào),必須變到頻域下才能進(jìn)行處理從而得到想要的數(shù)據(jù)。endprint
三角濾波器的作用有兩方面:第一,平滑頻譜,消除諧波,凸顯原語(yǔ)音的共振峰;第二,降低運(yùn)算量。Mel濾波器組有M個(gè),中心頻率為f(m), 本系統(tǒng)取m=24。計(jì)算濾波器組輸出的對(duì)數(shù)能量,經(jīng)DCT變換再加一階動(dòng)態(tài)差分,構(gòu)成MFCC系數(shù)。
由于MFCC提取的特征維數(shù)較大,對(duì)之后的HMM (隱馬爾科夫模型)語(yǔ)音識(shí)別效率帶來(lái)很大的影響,所以采用如下優(yōu)化方法:用主成分分析PCA算法對(duì)MFCC提取的24維參數(shù)進(jìn)行優(yōu)化,一方面減少HMM匹配時(shí)的計(jì)算量,另一方面使四旋翼飛行的實(shí)時(shí)性達(dá)到很好的效果。主成分分析PCA算法如圖11所示。
其中:r < 總樣本個(gè)數(shù)n。實(shí)現(xiàn)降維的目的,且保證了一定的識(shí)別率。
3.2 優(yōu)化的隱馬爾科夫算法
隱馬爾科夫模型[14]是一種雙重隨機(jī)過(guò)程:①M(fèi)arkov鏈?zhǔn)菭顟B(tài)與轉(zhuǎn)移矩陣具有一一對(duì)應(yīng)的關(guān)系,是HMM的基本隨機(jī)過(guò)程;②第二個(gè)隨機(jī)過(guò)程是描述狀態(tài)與觀察值之間的概率關(guān)系。在使用者角度來(lái)看,HMM內(nèi)的隨機(jī)過(guò)程是透明的,狀態(tài)轉(zhuǎn)移是看不到的,因而叫做隱馬爾科夫模型。
隱馬爾科夫模型需要解決的3個(gè)問(wèn)題:
1)估計(jì)問(wèn)題:給定觀察序列O={O1,O2,O3,…OT}和參數(shù)模型λ=(π,A,B),如何確定觀察序列與模型之間達(dá)到最佳匹配,其中T為語(yǔ)音信號(hào)幀數(shù),π為初始狀態(tài)概率矢量,A、B分別為狀態(tài)轉(zhuǎn)移概率矩陣和HMM模型的觀察值概率矩陣;
2)解碼問(wèn)題:已知觀察序列O={O1,O2,O3,…OT}和參數(shù)模型λ=(π,A,B),怎樣選擇最佳狀態(tài)序列;
3)模型訓(xùn)練問(wèn)題:怎樣修正觀察序列的參數(shù)模型λ=(π,A,B),使P(O|λ)概率最大,達(dá)到最佳識(shí)別效果。
針對(duì)以上問(wèn)題,本文分別采用前向后向算法、Viterbi算法、Baum—Welsh算法。由于Baum—Welsh算法在進(jìn)行訓(xùn)練時(shí)對(duì)初始參數(shù)要求較高,此外四旋翼飛行器要求實(shí)時(shí)性較高,所以對(duì)Baum—Welsh算法進(jìn)行優(yōu)化如下:
對(duì)于沒(méi)有約束的隨機(jī)過(guò)程來(lái)說(shuō),B矩陣可以是任意值,但對(duì)于本文的約束,讓B矩陣的值全部為1,利用Viterbi算法劃分狀態(tài)序列,再利用K—均值算法對(duì)B矩陣進(jìn)行重新估計(jì),得到新的B1矩陣和新的λ1,用λ1代入Baum—Welsh算法中重新計(jì)算,得到λ2,比較λ1和λ2的差值與設(shè)定的閾值的大小,得最佳值。
具體優(yōu)化的HMM流程圖如圖12所示。
對(duì)HMM孤立詞識(shí)別的結(jié)果,發(fā)送到四旋翼上進(jìn)行控制。由攝像頭當(dāng)前的位置以及控制者想要的位置對(duì)四旋翼進(jìn)行命令編碼。當(dāng)前的指令系統(tǒng)由14條指令組成,分別為起飛、降落、前進(jìn)、后退、左行、右行、上升、下降、停止、左旋、右旋、懸停、拍照和攝像。對(duì)14條指令進(jìn)行編碼,用5位二進(jìn)制位表示,第一位為預(yù)留位,方便以后添加其他指令,后四位為指令位。且增加指令的數(shù)目是以指數(shù)形式增長(zhǎng),成本大大降低。開(kāi)發(fā)者的命令編寫(xiě)也比較簡(jiǎn)單,由于系統(tǒng)已經(jīng)成型,算法也沒(méi)有多大改動(dòng),只是增加幾條判斷語(yǔ)句??刂葡到y(tǒng)指令編碼表如表1。由于時(shí)間有限本系統(tǒng)只設(shè)計(jì)了當(dāng)前的14條指令,以后還可以加角度控制命令,如左轉(zhuǎn)5度和右轉(zhuǎn)10度等一些命令。使四旋翼飛行器的指令系統(tǒng)更加完整,控制更加的準(zhǔn)確和簡(jiǎn)便。
4 FPGA實(shí)現(xiàn)與系統(tǒng)仿真
利用MATLAB對(duì)四旋翼控制系統(tǒng)進(jìn)行算法仿真?;谀:窠?jīng)網(wǎng)絡(luò)PID控制規(guī)則的四旋翼飛行器控制系統(tǒng)的SIMULINK仿真模型如圖16所示。四旋翼飛行器控制系統(tǒng)由一個(gè)計(jì)算偏差和偏差變化率的結(jié)構(gòu)、模糊控制器、神經(jīng)網(wǎng)絡(luò)訓(xùn)練、PID控制器和系統(tǒng)傳遞函數(shù)構(gòu)成。再系統(tǒng)前加一個(gè)階躍響應(yīng)發(fā)生器,系統(tǒng)最后接一個(gè)圖像接收器,目的是顯示本系統(tǒng)的調(diào)節(jié)狀態(tài)。
FPGA控制命令識(shí)別系統(tǒng)的頂層框架如圖17所示,頂層框架采用自下而上的設(shè)計(jì)方法,首先分別設(shè)計(jì)MFCC特征提取、優(yōu)化的HMM語(yǔ)音識(shí)別、命令存儲(chǔ)及控制等模塊,仿真驗(yàn)證后封裝,封裝后通過(guò)各模塊的硬聯(lián)邏輯形成頂層結(jié)構(gòu)。頂層時(shí)序仿真如圖18所示,從仿真圖中可以看出語(yǔ)音識(shí)別的時(shí)間為10ns,且在每個(gè)時(shí)鐘周期上頂層數(shù)據(jù)的傳輸穩(wěn)定正常,說(shuō)明了頂層數(shù)據(jù)的傳輸能夠快速、準(zhǔn)確地識(shí)別,反過(guò)來(lái)證明了優(yōu)化的動(dòng)態(tài)時(shí)間規(guī)整算法的正確性。最后,將已編好的語(yǔ)音識(shí)別識(shí)別模塊下載到FPGA封裝后與Quartus II板上的麥克和顯示器相連,因控制命令簡(jiǎn)單可達(dá)100%。
5 結(jié) 語(yǔ)
通過(guò)SIMULINK的仿真與Quartus II的仿真驗(yàn)證了四旋翼控制器系統(tǒng)和語(yǔ)音控制命令識(shí)別系統(tǒng)具有很強(qiáng)的實(shí)時(shí)性,能很好地實(shí)現(xiàn)四旋翼飛行器的穩(wěn)定工作,且數(shù)據(jù)能夠很好地交互,完成語(yǔ)音控制四旋翼飛行器進(jìn)行航拍的任務(wù)。
參 考 文 獻(xiàn):
[1] 劉志華,郭付才,彭新偉,等.基于CY7C68013A的FPGA配置和通信接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(2):46-54.
[2] 靖固,宋振偉,王錚.車(chē)道線識(shí)別系統(tǒng)算法設(shè)計(jì)及其FPGA實(shí)現(xiàn)[J].哈爾濱理工大學(xué)學(xué)報(bào),2013,18(6):75-77.
[3] 王強(qiáng).小型無(wú)人直升機(jī)航拍系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué).2013:36-48.
[4] ASHUTHA K,ANKITHA K. Smart Shopping Cart Using Embedded System and Wireless Modules[J]. Recent Patents on Computer Science,2016,9(3): 2213-2759.
[5] 張海濤,方明,付飛蚺. 嵌入式輪式機(jī)器人實(shí)驗(yàn)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2016(5):670-675.
[6] HECTOR Perez Tijero, MARIO Aldea Rivas,DANIEL Medina Ortega. Multiprocessor Platform for Partitioned Realtime Systems[J]. Softw. Pract. Exper.,2017,47(1):1002-1014.
[7] 李德仁,李明.無(wú)人機(jī)遙感系統(tǒng)的研究進(jìn)展與應(yīng)用前景[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2014,39 (5) :505-513,540.
[8] 汪紹華,楊瑩. 基于卡爾曼濾波的四旋翼飛行器姿態(tài)估計(jì)和控制算法研究[J]. 控制理論與應(yīng)用(英文版),2013,30(9):1109-1115.
[9] 昂海松.微型飛行器的設(shè)計(jì)原則和策略[J].航空學(xué)報(bào),2016,37(1):69-80.
[10]鄒繼斌,趙博,梁維燕,等.多單元永磁同步電機(jī)數(shù)學(xué)模型與轉(zhuǎn)矩波動(dòng)抑制[J]. 電機(jī)與控制學(xué)報(bào),2012,16(5):46-51.
[11]劉長(zhǎng)征,張磊. 語(yǔ)音識(shí)別中卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化算法[J]. 哈爾濱理工大學(xué)學(xué)報(bào),2016(3):34-38.
[12]劉志軍,張杰.模糊數(shù)據(jù)流的進(jìn)化粒度神經(jīng)網(wǎng)絡(luò)分類(lèi)算法[J].哈爾濱工程大學(xué)學(xué)報(bào),2016,37(3):3-7.
[13]張戈.基于FPGA實(shí)時(shí)語(yǔ)音識(shí)別系統(tǒng)的實(shí)現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué)學(xué)報(bào),2012:29-40.
[14]VEISI H, SAMETI H. Hiddenmarkovmodelbased Voice Activity Detector with High Speech Detection Rate for Speech Enhancement[J]. IET Signal Processing, 2012(6): 54-63.
(編輯:溫澤宇)endprint