基于fpga的無人機(jī)飛行控制電路的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無人機(jī)技術(shù)領(lǐng)域,特別是涉及一種基于FPGA的無人機(jī)飛行控制電路。
【背景技術(shù)】
[0002] -般多旋翼無人機(jī)的飛行控制電路包括控制芯片、慣性測量電路、電子羅盤、氣壓 計(jì)、P麗輸入信號模塊、PWM輸出信號模塊、GPS模塊以及串口RS232或I2C等接口。其中,控制 芯片多米用MCU(Microcontroller Unit,微控制電路)或DSP(Digital Signal Processor, 數(shù)字信號處理器),即使有些使用了FPGA,F(xiàn)PGA也僅僅用以擴(kuò)展10接口。也就是說,目前的多 旋翼無人機(jī)中飛行控制算法均是采用串行的方式,不能夠精確并行的控制多旋翼無人機(jī)的 電機(jī),對電機(jī)控制的精度以及實(shí)時性較差。
【發(fā)明內(nèi)容】
[0003] 鑒于現(xiàn)有技術(shù)的現(xiàn)狀,本發(fā)明的目的在于提供一種基于FPGA的無人機(jī)飛行控制電 路,能夠并行的控制無人機(jī)的各個電機(jī),從而提高電機(jī)控制的精度以及實(shí)時性。
[0004] 為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0005] -種基于FPGA的無人機(jī)飛行控制電路,包括:控制器模塊以及分別與所述控制器 模塊電連接的九軸測量模塊、姿態(tài)解算模塊、PID控制模塊和遙控舵機(jī)模塊,其中,所述九軸 測量模塊、所述姿態(tài)解算模塊、所述PID控制模塊以及所述遙控舵機(jī)模塊依次電連接;
[0006] 所述九軸測量模塊連接至加速度計(jì)、陀螺儀和磁力計(jì),用于根據(jù)所述加速度計(jì)、所 述陀螺儀和所述磁力計(jì)傳送的測量數(shù)據(jù)生成并輸出九軸數(shù)據(jù);
[0007] 所述姿態(tài)解算模塊用于根據(jù)所述九軸數(shù)據(jù)生成并輸出飛行姿態(tài)數(shù)據(jù);
[0008] 所述PID控制模塊連接所述九軸測量模塊,所述PID控制模塊包括至少三個并行設(shè) 置的姿態(tài)角控制電路,用于根據(jù)所述九軸測量模塊傳送的九軸數(shù)據(jù)以及所述飛行姿態(tài)數(shù)據(jù) 計(jì)算生成電機(jī)控制數(shù)據(jù);
[0009] 所述遙控舵機(jī)模塊連接遙控器接收機(jī)以及與所述無人機(jī)的各個電機(jī)連接的電子 調(diào)速器,所述遙控舵機(jī)模塊用于根據(jù)所述遙控器發(fā)送的遙控信號、所述PID控制模塊輸出的 電機(jī)控制數(shù)據(jù)生成用以控制所述電子調(diào)速器的控制信號,并將所述控制信號反饋至所述 PID控制模塊,以并行的控制所述無人機(jī)的各個電機(jī)運(yùn)行。
[0010] 在本發(fā)明的一個實(shí)施例中,所述九軸測量模塊包括中斷控制電路以及依次電連接 的數(shù)據(jù)緩沖電路、數(shù)據(jù)處理電路、數(shù)據(jù)選通電路、數(shù)據(jù)還原電路和同步輸出電路;
[0011] 其中,所述數(shù)據(jù)緩沖電路、所述數(shù)據(jù)處理電路和所述同步輸出模塊連接所述控制 器模塊;所述中斷控制電路連接至所述數(shù)據(jù)選通電路和所述數(shù)據(jù)還原電路,用于控制所述 數(shù)據(jù)選通電路的導(dǎo)通或關(guān)閉;
[0012] 所述數(shù)據(jù)緩沖電路連接所述加速度計(jì)、所述陀螺儀和所述磁力計(jì),用以獲取所述 加速度計(jì)、所述陀螺儀和所述磁力計(jì)的測量數(shù)據(jù),所述數(shù)據(jù)處理電路用于對所述測量數(shù)據(jù) 進(jìn)行濾波處理,所述數(shù)據(jù)還原電路用于對所述測量數(shù)據(jù)進(jìn)行數(shù)制轉(zhuǎn)換以及歸一化處理,所 述同步輸出模塊連接所述姿態(tài)解算模塊,所述同步輸出電路用于同步生成所述九軸數(shù)據(jù), 并將所述九軸數(shù)據(jù)傳送至所述姿態(tài)解算模塊。
[0013] 在本發(fā)明的一個實(shí)施例中,所述數(shù)據(jù)處理電路包括加速度計(jì)數(shù)據(jù)處理單元、陀螺 儀數(shù)據(jù)處理單元和磁力計(jì)數(shù)據(jù)處理單元;
[0014] 所述加速度計(jì)數(shù)據(jù)處理單元包括依次電連接的第一平滑濾波器組和第一數(shù)據(jù)選 通器,用于對所述加速度計(jì)的測量數(shù)據(jù)進(jìn)行平滑濾波處理;
[0015] 所述陀螺儀數(shù)據(jù)處理單元包括依次電連接的第二平滑濾波器組、零偏值計(jì)算-消 除電路以及第二數(shù)據(jù)選通器,用于對所述陀螺儀的測量數(shù)據(jù)進(jìn)行平滑濾波、消除零偏值的 處理;
[0016] 所述磁力計(jì)數(shù)據(jù)處理電路包括依次電連接的第三平滑濾波器組、校準(zhǔn)-歸一化電 路以及第三數(shù)據(jù)選通器,用于對所述磁力計(jì)的測量數(shù)據(jù)進(jìn)行平滑濾波、校準(zhǔn)處理;
[0017] 其中,所述第一數(shù)據(jù)選通器、所述第二數(shù)據(jù)選通器以及所述第三數(shù)據(jù)選通器分別 連接至所述控制器模塊。
[0018] 在本發(fā)明的一個實(shí)施例中,所述姿態(tài)解算模塊包括加速度計(jì)誤差測量電路、磁力 計(jì)誤差測量電路、陀螺儀誤差測量電路、四元數(shù)更新電路、姿態(tài)轉(zhuǎn)換矩陣更新電路以及姿態(tài) 角轉(zhuǎn)換電路;
[0019] 所述加速度計(jì)誤差測量電路、所述磁力計(jì)誤差測量電路均連接至所述陀螺儀誤差 測量電路,所述陀螺儀誤差測量電路依次電連接所述四元數(shù)更新電路、所述姿態(tài)轉(zhuǎn)換矩陣 更新電路以及所述姿態(tài)角轉(zhuǎn)換電路;
[0020] 所述陀螺儀誤差測量電路用于根據(jù)所述加速度計(jì)誤差測量電路生成的加速度計(jì) 誤差值、所述磁力計(jì)誤差測量電路生成的磁力計(jì)誤差值以及所述陀螺儀的測量數(shù)據(jù)通過互 補(bǔ)濾波算法生成陀螺儀修正數(shù)據(jù);
[0021] 所述四元數(shù)更新電路用于根據(jù)所述陀螺儀修正數(shù)據(jù)以及上一次的四元數(shù)值生成 新的四元數(shù)值;所述姿態(tài)轉(zhuǎn)換矩陣更新電路用于根據(jù)所述新的四元數(shù)值生成姿態(tài)矩陣,并 將所述新的四元數(shù)值反饋至所述加速計(jì)誤差測量電路及所述磁力計(jì)誤差測量電路;所述姿 態(tài)角轉(zhuǎn)換電路用于根據(jù)所述姿態(tài)矩陣生成姿態(tài)角。
[0022] 在本發(fā)明的一個實(shí)施例中,所述PID控制模塊包括輸出控制電路以及并行設(shè)置的 三個所述姿態(tài)角控制電路,三個所述姿態(tài)角控制電路分別為俯仰角控制電路、翻滾角控制 電路和航偏角控制電路;
[0023] 所述俯仰角控制電路、所述翻滾角控制電路和所述航偏角控制電路分別連接所述 姿態(tài)解算模塊、所述九軸測量模塊和所述輸出控制電路;所述輸出控制電路輸出所述電機(jī) 控制數(shù)據(jù),并將所述電機(jī)控制數(shù)據(jù)反饋給所述俯仰角控制電路、所述翻滾角控制電路以及 所述航偏角控制電路。
[0024] 在本發(fā)明的一個實(shí)施例中,所述俯仰角控制電路、所述翻滾角控制電路以及所述 航偏角控制電路均采用雙環(huán)結(jié)構(gòu)。
[0025] 在本發(fā)明的一個實(shí)施例中,所述遙控舵機(jī)模塊包括接收電路、電機(jī)控制電路以及 通道編碼電路;所述接收電路連接所述電機(jī)控制電路和所述通道編碼電路,所述電機(jī)控制 電路、所述通道編碼電路連接所述控制器模塊;
[0026] 所述接收電路連接所述遙控器接收機(jī),用于接收遙控器發(fā)送的包含多個通道數(shù)據(jù) 的遙控信號,并分別對所述遙控信號的多個通道數(shù)據(jù)進(jìn)行處理;所述通道編碼電路用于根 據(jù)所述遙控信號生成無人機(jī)工作模式控制信號,并將所述無人機(jī)工作模式信號傳送至所述 控制器模塊;
[0027] 所述電機(jī)控制電路連接所述PID控制模塊,所述電機(jī)控制電路根據(jù)所述PID控制模 塊輸出的電機(jī)控制數(shù)據(jù)以及所述無人機(jī)工作模式信號生成所述電機(jī)的通道數(shù)值,并將所述 電機(jī)的通道數(shù)值轉(zhuǎn)換為用以控制所述電子調(diào)速器的控制信號。
[0028] 在本發(fā)明的一個實(shí)施例中,還包括與氣壓計(jì)連接的氣壓計(jì)讀取-補(bǔ)償模塊;
[0029] 所述氣壓計(jì)讀取-補(bǔ)償模塊包括分別與所述控制器模塊電連接的初始化電路、數(shù) 據(jù)讀取電路、第四數(shù)據(jù)選通器、溫度補(bǔ)償電路、AD系數(shù)歸一化電路以及數(shù)制轉(zhuǎn)換電路;
[0030] 所述第四數(shù)據(jù)選通器連接所述氣壓計(jì),所述初始化電路、所述數(shù)據(jù)讀取電路均連 接至所述第四數(shù)據(jù)選通器,所述數(shù)據(jù)讀取電路、所述溫度補(bǔ)償電路、所述AD系數(shù)歸一化電路 以及所述數(shù)制轉(zhuǎn)換電路依次電連接,所述數(shù)制轉(zhuǎn)換電路用于輸出氣壓值和溫度值。
[0031] 在本發(fā)明的一個實(shí)施例中,還包括GPS模塊和數(shù)據(jù)融合模塊;
[0032] 所述氣壓計(jì)讀取-補(bǔ)償模塊、所述GPS模塊均連接至所述數(shù)據(jù)融合模塊,所述數(shù)據(jù) 融合模塊與所述遙控舵機(jī)模塊、所述姿態(tài)解算模塊電連接;
[0033] 所述GPS模塊用于獲取所述無人機(jī)的定位信息,所述數(shù)據(jù)融合模塊用于根據(jù)所述 氣壓計(jì)讀取-補(bǔ)償模塊輸出的氣壓值、溫度值、所述GPS模塊輸出的定位信息以及所述姿態(tài) 解算模塊生成的飛行姿態(tài)數(shù)據(jù)生成所述電機(jī)控制數(shù)據(jù)。
[0034] 在本發(fā)明的一個實(shí)施例中,還包括與所述控制器模塊電連接的定時器模塊、復(fù)位 豐旲塊以及按鍵t旲塊;
[0035]所述按鍵模塊與外設(shè)的控制按鍵和顯示燈連接,所述顯示燈用于指示所述無人機(jī) 的工作狀態(tài)。
[0036]在本發(fā)明的一個實(shí)施例中,所述基于FPGA的無人機(jī)飛行控制電路與上位機(jī)通信連 接。
[0037]本發(fā)明的有益效果是:
[0038]本發(fā)明的基于FPGA的無人機(jī)飛行控制電路,通過采用FPGA作為微控制器,并設(shè)置 有姿態(tài)解算模塊實(shí)時獲得無人機(jī)的飛行姿態(tài)數(shù)據(jù),PID控制模塊用于根據(jù)飛行姿態(tài)數(shù)據(jù)和 九軸測量模塊傳送的九軸數(shù)據(jù)計(jì)算生成電機(jī)控制數(shù)據(jù),遙控舵機(jī)模塊根據(jù)電機(jī)控制數(shù)據(jù)生 成控制信號,以實(shí)現(xiàn)對無人機(jī)的各個電機(jī)的并行控制,同時,由于FPGA的并行處理速度遠(yuǎn)高 于微控制器的串行處理速度,因此,通過FPGA的控制