freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于apm飛控技術(shù)的定點(diǎn)投送飛行器畢業(yè)論文(編輯修改稿)

2025-10-03 19:50 本頁面
 

【文章內(nèi)容簡介】 信號(hào)原理簡介 本 設(shè)計(jì) 采用的遙控器是天地飛 6通道遙控器,由于本課題研究四旋翼飛行器,只需要其中 4個(gè)通道即可完成姿態(tài)控制。該遙控器接收機(jī)的輸出為 PPM輸出,如圖 42所示為 PPM(脈沖位置調(diào)制 )的原理圖。 每 個(gè)通道的高電平持續(xù)時(shí)間即對(duì)應(yīng)該通道搖桿的位置,從而起到控制輸入的作用。其 PPM周期為 20ms,高電平電壓為 +5V,高電平持續(xù)時(shí)間為 1ms 至 2ms。 PPM 信號(hào)解碼流程圖如 圖42 所示。這里使用 AVR 單片機(jī)具有的引腳電平變化中斷來實(shí)現(xiàn) PPM 高電平時(shí)間的讀取不僅節(jié)省 CPU 時(shí)間而且還精確。 PPM 解碼程序設(shè)計(jì)與關(guān)鍵程序段說明 傳感器接收機(jī)能夠提供 6路 PPM信號(hào)。而本設(shè)計(jì)只需要其中 4路,即四個(gè)通道。本設(shè)計(jì)采用“引腳電平變化中斷 ”來實(shí)現(xiàn) PPM解碼。 觀察 PPM原理圖可發(fā)現(xiàn)引腳電平只有 2種變化方式,分別是從 高到低和從低到高。引腳電平從高到低對(duì)應(yīng)高電平結(jié)束,從低到高意味著高電平開始。所以每次進(jìn)入中斷后讀取引腳狀態(tài),對(duì)前后兩次進(jìn)入中斷時(shí)的引腳狀態(tài)進(jìn)行異或運(yùn)算就能確定是哪個(gè)引腳觸發(fā)了 PCINT中斷。利用 Arduino IDE自帶的 micros()函數(shù)記錄兩次進(jìn)入 PCINT中斷的時(shí)間。如此便可以獲得 PPM某通道高電平時(shí)間。 PPM 信號(hào)解碼流程圖如圖 42所示。這里使用 AVR 單片機(jī)帶有的引腳電平變化中斷來實(shí)現(xiàn) PPM高電平時(shí)間的讀取不僅節(jié)省 CPU 時(shí)間而且還精確。 開 始進(jìn) 入 P C I N T中 斷記 錄 此 刻 時(shí)間 T 1 確 定 是引 腳 x 上 電平 發(fā) 生 變 化T 2 = T 1p p m l n V a l u e [ x ]= T 1 T 2結(jié) 束由 高 變 低否是 圖 42 PPM 解碼流程圖 PPM通道 1解碼代碼如下: ISR(PCINT2_vect){ static uint8_t pindlast。 uint8_t chan,pindnow。 uint16_t time。 static uint16_t last[4],now[4]。 time = micros()。 //獲得此刻時(shí)間 pindnow = PIND。 chan = pindlast^pindnow。 //確定 PCINT中斷發(fā)生在哪個(gè)引腳 if(chanamp。(12)){ //通道 1 now[0] = time。 if(pindnowamp。(12))last[0] = now[0]。 else{ppmInValue[0] = now[0] last[0]。} //將此刻時(shí)間點(diǎn)與上次 PCINT時(shí)間相減 }//從而獲得高電平持續(xù)時(shí)間 執(zhí)行模塊 電機(jī)驅(qū)動(dòng)原理 本設(shè)計(jì)中,利用電子調(diào)速器驅(qū)動(dòng)電機(jī)。電子調(diào)速器的油門是線性的,意味著給電子調(diào)速器輸入的 PWM波形的高電平時(shí)間正比于電機(jī)的轉(zhuǎn)動(dòng)力矩 M。飛行器在空中平衡時(shí)有 21wkfM 風(fēng) ?? ( 41) 其中 為螺旋槳角速度。而查閱空氣動(dòng)力學(xué)知識(shí)可知螺旋槳升力 升與 有如下關(guān)系 22wkF升 ? ( 42) 由此可見 ?? 升FM ( 43) 又有 PWM高電平時(shí)間正比與電機(jī)轉(zhuǎn)動(dòng)力矩 M,如此一來,我們則可以通過控制 PWM波形的高電平時(shí)間來線性的控制機(jī)體獲得的升力 。由此,飛行控制系統(tǒng)輸出的 PWM信號(hào)輸出與飛行器獲得升力呈線性,給使用 PID算法在一定條件下控制飛行器帶來了可能 [10]。 此外,本文使用的中特維電調(diào)其識(shí)別高電平閾值在 2V 至 5V 之間,高電平持續(xù)時(shí)間在1ms至 2ms之間 ,1ms和 2ms長的高電平信號(hào)分別對(duì)應(yīng)無刷電機(jī)的停止轉(zhuǎn)動(dòng)和最高轉(zhuǎn)速 。PWM周期可在 2ms 至 20ms 之前變化 ,對(duì)應(yīng) 500Hz 至 50Hz的無刷電機(jī)轉(zhuǎn)速更新頻率。飛行器要求具有很高的實(shí)時(shí)響應(yīng)速度 ,因此要求無刷電器驅(qū)動(dòng)器具有很高的轉(zhuǎn)速更新頻率 ,考慮到硬件平臺(tái)所用晶振 16MHz 和 Timer/Counter0 和 Timer/Counter1 分頻器的可設(shè)置值, PWM周期取約,即具有約 244Hz 的轉(zhuǎn)速更新頻率 [11]。 電機(jī)驅(qū)動(dòng)模塊程序框圖 開 始獲 得 此 時(shí) 油 門對(duì) 應(yīng) 的 電 機(jī) 轉(zhuǎn)速 p w m _ b a s e獲 得 此 時(shí) 油門 增 量p w m _ e r r [ 0 ]獲 得 此 時(shí) 油門 增 量p w m _ e r r [ 1 ]獲 得 此 時(shí) 油門 增 量p w m _ e r r [ 2 ]獲 得 此 時(shí) 油門 增 量p w m _ e r r [ 3 ]獲 得 此 時(shí) 油門 增 量p w m _ b a s e +p w m _ e r r [ 0 ]獲 得 此 時(shí) 油門 增 量p w m _ b a s e +p w m _ e r r [ 1 ]獲 得 此 時(shí) 油門 增 量p w m _ b a s e +p w m _ e r r [ 2 ]獲 得 此 時(shí) 油門 增 量p w m _ b a s e +p w m _ e r r [ 3 ]結(jié) 束 圖 43 電機(jī)驅(qū)動(dòng)程序框圖 電機(jī)驅(qū)動(dòng)輸出模塊的功能就是利用 AVR 的 Timer/Counter1 和 Timer/Counter2 輸出定周期可調(diào)占空比的 PWM波形。依據(jù)電子調(diào)速器對(duì) PWM 波形的周期要求,需要輸出周期在 500HZ以內(nèi)的 PWM 波形。由于單片機(jī)采用 16MHZ 晶振,所以在預(yù)分頻的設(shè)置上只能 選擇 256 分頻才能滿足電子調(diào)速器對(duì)周期的要求, 256 分頻的結(jié)果是獲得的 PWM 波頻率為 244HZ。而在調(diào)節(jié) PWM 高電平時(shí)間的時(shí)候,只需分別向 OCR1A、 OCR1B、 OCR2A、 OCR1B 內(nèi)寫入相應(yīng)數(shù)據(jù)即可從對(duì)應(yīng)的 PWM 輸出端口獲得不同高電平時(shí)間的 244HZPWM 波。輸出高電平時(shí)間 (單位: s)的計(jì)算公式如下所示(以 OCR1A為例)。 //**************** //PWM初始化模塊 //**************** voidpwm_init(void){ //***************8bit T/C2 初始化 *******************/ TCCR2A = (1COM2A1) | (1COM2B1) | (1WGM21) | (1WGM20)。 //設(shè)置為快速 PWM TCCR2B = (1CS22) | (1CS21)。 //256 prescaleing //***************16bit T/C1初始化 *******************/ TCCR1A = (1COM1A1) | (1COM1B1) | (1WGM10) 。 //設(shè)置為快速 PWM TCCR1B = (1WGM12) | (1CS11) 。//256 prescaleing } //**************** //電機(jī) 1的 PWM輸出 //**************** voidpwm_out(uint16_t pwm_base){ static uint16_t chan3。 if(pwm_base!=chan3) {OCR1A = (pwm_base+pwm_erro[0] 1024)*+63。} //重設(shè) OCR1A改變 PWM占空比 chan3 = pwm_base。 } 傳感器模塊 與傳感器的 IIC 通信時(shí)序 此模塊的作用是獲取 MPU6050 中加速度傳感器和陀螺儀的實(shí)時(shí)數(shù)據(jù),核心就是使用AVR 單片機(jī)自帶的硬件 IIC 模塊和外部模塊通信。查詢 Atmega328p 單片機(jī)的 datasheet 和MPU6050 的 datasheet,可以輕松的得到進(jìn)行 IIC 操作時(shí)應(yīng)該遵循的時(shí)序。讀取 MPU6050 數(shù)據(jù)的時(shí)序圖如 下 圖所示: 圖 44 讀取 MPU6050 圖 45 寫 MPU6050 由圖知 ,在讀寫 MPU6050 的時(shí)候單片機(jī)需要在 Master Transmitter Mode 和 Master Receiver Mode 之間切換,在此不再贅述。 傳感器數(shù)據(jù)采集模塊關(guān)鍵程序段說明 該模塊的主要作用是通過 IIC總線協(xié)議讀取 MPU6050傳感器模塊獲得的加速度和陀螺儀原始數(shù)據(jù),故只要按著上述讀寫時(shí)序一步步完成即可。但傳感器數(shù)據(jù)為 16位,而 IIC總線每個(gè)數(shù)據(jù)幀只能讀 8位數(shù)據(jù)。 MPU6050通過 IIC先發(fā)送寄存器高 8位數(shù)據(jù),再發(fā)送低 8位,如此一來,就需要利用位移語句,將首先接收到的 8位數(shù)據(jù)緩存 ,再左移 8位,再和后發(fā)送的低 8位數(shù)據(jù)做位與運(yùn)算,使得他們?nèi)诤蠟橐粋€(gè) 16位數(shù)據(jù)。要注意這里的 16位數(shù)據(jù)是有符號(hào)的。 兩 8位融合成 16位數(shù)據(jù)程序段如下: if(reg==0x3B){ RAW_ACC_X = ((rawADC[0]8)|(rawADC[1]))。 RAW_ACC_Y = ((rawADC[2]8)|(rawADC[3]))。 RAW_ACC_Z = ((rawADC[4]8)|(rawADC[5]))。 }else{ RAW_GYRO_X = ((rawADC[0]8)|(rawADC[1]))。 RAW_GYRO_Y = ((rawADC[2]8)|(rawADC[3]))。 RAW_GYRO_Z = ((rawADC[4]8)|(rawADC[5]))。 } 姿態(tài)解算模塊 姿態(tài)解算原理 姿態(tài)解算模塊的主要功能有兩個(gè),一個(gè)是對(duì)傳感器獲得的加速度計(jì)和陀螺儀數(shù)據(jù)進(jìn)行處理獲得各自所計(jì)算出來的飛行器此時(shí)的歐拉角,第二個(gè)是通過傳感器數(shù)據(jù)融合計(jì)算,得到飛行器此刻的姿態(tài)角準(zhǔn)確值。 利用加速度計(jì)數(shù)據(jù)計(jì)算歐拉角使用的是三角函數(shù)方法。其原理如下圖 46 所示 圖 46 加速度傳感器傾斜檢測示意圖 利用三軸加速度計(jì)進(jìn)行傾斜檢測的一種方法是基于一個(gè)參照點(diǎn)分別確定加速度計(jì)各個(gè)軸的角度。參照點(diǎn)取器件的典型取向 ,其中 X軸和 Y 軸位于水平面內(nèi) (0g場 ),Z 軸與水平線垂直 (1g場 )。如圖 所示 ,其中 為水平線與加速度計(jì) X 軸的夾角 , 為水平線與加速度計(jì) Y軸的夾角看 , 為重力矢量與 Z軸的夾角。在 X 軸和 Y軸的起點(diǎn) 0g處以及 Z軸上 1g處 ,計(jì)算得到的所有角度均為 0 度。由基本三角函數(shù)可知 ,可利用下列公式計(jì)算傾斜角度 [12]。 但是飛行器時(shí)刻是運(yùn)動(dòng)的 ,加速度計(jì)測得的數(shù)據(jù)中就不 可避免的含有運(yùn)動(dòng)加速度 ,因此只利用加速度計(jì)求出旳飛行器姿態(tài)具有較大的誤差 ,所以就需要一定的算法來估計(jì)加速度計(jì)的誤差 ,實(shí)時(shí)修正飛行器的姿態(tài) [13]。 陀螺儀測量的是集體繞著某軸轉(zhuǎn)動(dòng)的角速度,由于原理較為復(fù)雜,這里不加敘述。 濾波的方法有很多,商業(yè)四軸飛行器為了保證穩(wěn)定性一般都使用復(fù)雜的卡爾曼濾波。但是卡爾曼濾波運(yùn)算復(fù)雜,加長程序循環(huán)時(shí)間,會(huì)造成諸如陀螺儀積分漂移增加等情況,故本文采用互補(bǔ)濾波方式進(jìn)行濾波。互補(bǔ)濾波計(jì)算簡單,設(shè)計(jì)方便,可以很好的實(shí)現(xiàn)數(shù)據(jù)的融合。 互補(bǔ)濾波器是一種頻域特性濾波器 ,經(jīng)常用來融合 由不同傳感器測量得到的具有相似物理意義的數(shù)據(jù) ,摒棄每個(gè)數(shù)據(jù)的缺點(diǎn)從而估算出準(zhǔn)確的參數(shù)。嚴(yán)格意義上講 ,互補(bǔ)濾波器包含兩種或兩種以上的頻率特性互補(bǔ)的傳遞函數(shù)。例如常見的兩輸入系統(tǒng) ,兩個(gè)輸入量的物理意義相同 ,但是某個(gè)輸入量也含高頻噪聲 ,需要加低通濾波器以濾除噪聲 。另外一個(gè)輸入量包含低頻噪聲干擾 ,因此需要高頻濾波器除去低頻噪聲。低通濾波器與高通濾波器頻率特性互補(bǔ) ,所以最終的輸出是濾除噪聲的準(zhǔn)確的數(shù)據(jù) [14]。 陀螺儀響應(yīng)速度快 ,但是會(huì)受到零點(diǎn)隨溫度漂移產(chǎn)生低頻干擾;加速度傳感器用來測量重力加速度矢量 ,響應(yīng)速度也非 常高 ,但是會(huì)因?yàn)槲⑿_動(dòng)產(chǎn)生高頻噪音干擾;數(shù)字羅盤測量當(dāng)?shù)氐卮艌鍪噶?,數(shù)據(jù)測量比較準(zhǔn)確 ,但響應(yīng)速度較慢,也會(huì)受電機(jī)電磁場的高頻干擾而陀螺儀的數(shù)字積分又不可避免的帶來積分漂移問題,由此可知,三種傳感器測量相同的量在頻域內(nèi)特性互補(bǔ) ,濾波算法實(shí)現(xiàn)兩個(gè)信號(hào)的融合是很合適的 [15]。 互補(bǔ)濾波主要是對(duì)加速度傳感器數(shù)據(jù)進(jìn)行低通濾波以削去高頻分量,一般而言高平分量即為加速度傳感器的擾動(dòng)量;對(duì)陀螺儀進(jìn)行高通濾波,濾去低頻分量,低頻分量意味著信號(hào)中頻率較低周期較長的部分,這樣一來便可濾去加速度陀螺儀積分漂移產(chǎn)生的 誤差,在完成濾波之后,就能獲得四軸飛行器的較為準(zhǔn)確的姿態(tài)角。 姿態(tài)解算模塊關(guān)鍵程序段說明 姿態(tài)解算模塊的作用就是實(shí)時(shí)獲得飛行器準(zhǔn)確的飛行姿態(tài),由此這個(gè)模塊里最關(guān)鍵的程序段就是互補(bǔ)濾波算法了?;パa(bǔ)濾波器已在前文中完成了設(shè)計(jì),但可以從前文中發(fā)現(xiàn),微分時(shí)間 dt的大小嚴(yán)重影響該濾波器的性能,所以要嚴(yán)格控制 dt大小不變。 dt是每兩次采樣的時(shí)間間隔,通過如下程序段控制 dt為 STD_LOOP_TIME不變。 Time1 = time2。 // 上一次采樣時(shí)刻 (ms) time2 = millis()。 // 當(dāng)前時(shí)刻 (ms
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1