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

正文內(nèi)容

基于ucos-ii系統(tǒng)的四旋翼飛行器的設(shè)計畢業(yè)論文-資料下載頁

2025-06-27 19:31本頁面
  

【正文】 令給CPU,結(jié)果功能是實現(xiàn)了,但是上位機只能對CPU操作一次,第二次操作就沒效果了,如下圖所示:圖67 上位機第一次讀取飛行器PID的值圖68 上位機第二次讀取飛行器的PID的值解決的辦法:經(jīng)過反復(fù)的試驗,在串口中只要用一個數(shù)組將讀取進來的數(shù)據(jù)進行緩存,CPU用一個帶幀頭碼的小數(shù)組循環(huán)掃描串口接收緩存數(shù)組,當幀頭碼和讀取進來的數(shù)據(jù)一致時,CPU馬上讀取幀頭碼后面的數(shù)值。這種方法提高的CPU的處理速度,同時也縮減了串口中斷的代碼。如下圖所示,當帶幀頭碼的小數(shù)組1001掃描到串口接收緩存數(shù)組1001時,串口馬上讀取串口接收緩存數(shù)組1001后面的值。圖69 串口接收上位機數(shù)據(jù)的原理 總體測試結(jié)果(1) 調(diào)試MPU6000的姿態(tài)的實時監(jiān)控。1) 如圖67和68所示,通過SPI直接獲取MPU6000的值,直接通過串口通信傳輸給上位機:圖67 超級終端打印MPU6000相關(guān)寄存器的值圖68 超級終端打印MPU6000加速度和角加速度的值2) 將電臺的其中一個接到上位機上,一個接到飛行器的主控板上,如圖所示:圖68 電臺與飛控板的連接圖69電臺與上位機的連接連接好之后,打開如圖610的界面,將波特率設(shè)置成57600,打開串口通信,按圖611所示,將四旋翼機傾斜30176。PC機如圖612所示,PITCH=176。,ROLL=176。說明MPU6000測量準確,但是出現(xiàn)了角度歸零滯后性相對較嚴重的現(xiàn)象。圖610 飛控姿態(tài)的監(jiān)控界面圖611 四旋翼機傾斜30176。圖612 PC機顯示四旋翼機電狀態(tài)解決方法:將MPU6000數(shù)據(jù)采樣率和四元數(shù)的陀螺儀測量偏差改大,但是會出現(xiàn)測量出來的值會出現(xiàn)抖動現(xiàn)象,最后將陀螺儀采樣率設(shè)置成10ms并將四元數(shù)的15176。/s可以得到相對較好的效果。(2) 下圖是調(diào)試電調(diào)時,遙控的輸出PWM波形和定時器最終輸出的PWM的波形圖613 遙控輸入PWM波形 圖614 定時器輸出PWM波形(3)以下是調(diào)試PID控制的效果圖:圖615 飛行器后仰、后面兩個電機加速圖616 飛機前傾、前面兩個電機加速圖617 飛機向左傾、左邊兩個電機加速圖618 飛機右傾、右邊的兩個電機加速(4) 目前還存在的問題:本系統(tǒng)采用定時器來計時遙控發(fā)送過來的PWM波形的脈寬,由于定時器設(shè)定的分頻較大,導(dǎo)致采集出來的數(shù)據(jù)較小,誤差較大,導(dǎo)致遙控對四旋翼飛行器四個電機的控制相當不穩(wěn)定,致使在試飛的時候,摔斷了多個螺旋槳。當定時器的分頻改小時,由于定時器的中斷過于頻繁,導(dǎo)致整個系統(tǒng)沒辦法正常執(zhí)行。由于時間原因,這個問題還沒得到解決。 7 設(shè)計總結(jié)基于ARM CORTEX的uC/OSII四旋翼機姿態(tài)控制系統(tǒng)是一個各個任務(wù)能完成自己的功能,任務(wù)與任務(wù)間結(jié)合緊密的有機整體,可移植性好,易于擴展。(1) 本課題的研究主要概括起來包括以下幾個方面:1) 考慮到四旋翼機姿態(tài)控制系統(tǒng)的安全性能和可擴展性能,對總體硬件進行詳細的設(shè)計。整個硬件設(shè)計包含了原理圖各個模塊的基本功能和擴展功能的設(shè)計,PCB飛控板圖的制作等流程。2) 展開uC/OSII任務(wù)管理的思想,并對uC/OSII操作系統(tǒng)在STM32的移植做了簡單介紹,最后對姿態(tài)控制系統(tǒng)進行合理的任務(wù)劃分,并對每個任務(wù)進行優(yōu)先級的規(guī)劃。3) 在相應(yīng)的硬件基礎(chǔ)上,展開了對四旋翼機的基本硬件結(jié)構(gòu)的驅(qū)動工作,包括GPIO,串口,定時器,SPI等的操作。4) 論文重點放在IMU姿態(tài)采集單元的姿態(tài)采集、解算和控制等姿態(tài)控制系統(tǒng)的關(guān)鍵技術(shù)問題,并對姿態(tài)控制系統(tǒng)的PID控制做出了詳細的介紹和解析。(2) 由于作者的技術(shù)不夠扎實,理論知識有限,本設(shè)計還存在大量的錯誤之處和不足需要完善。1) 本設(shè)計中將flash的高速SPI和波特率相差較大MPU6000的SPI共用一個SPI接口,浪費了系統(tǒng)SPI的功能,使系統(tǒng)的資源利用率不夠高。2) 在姿態(tài)采集時直接從姿態(tài)采集單元中采集出相應(yīng)的ADC采樣數(shù)值,再進行復(fù)雜的四元數(shù)轉(zhuǎn)換,工程量相對較大。在今后的發(fā)展過程中可以巧妙運用MPU6000的DMP操作模塊直接從硬件中讀取四元數(shù),再進行姿態(tài)的轉(zhuǎn)換。3) 在軟件代碼實現(xiàn)上,所用的算法還不夠完善,需要進一步的改進。 致謝在福建工程學(xué)院四年里,我學(xué)到了很多東西,感謝各位領(lǐng)導(dǎo)、各位老師和同學(xué)這四年來對我的苦心栽培和照顧,給我提供了一個良好的學(xué)習(xí)環(huán)境。在此,我還要感謝學(xué)校的實驗室給我提供了一個自由發(fā)揮的平臺,也對實驗室的學(xué)長和同學(xué)們的熱心幫助和耐心指導(dǎo)表示由衷的感謝。這次,我在此特別向我的指導(dǎo)老師陳興武老師表示致謝,在從本系統(tǒng)硬件到軟件中的開發(fā)過程中,是他給我指引與鼓勵,讓我能夠沖破重重困難,將整個設(shè)計系統(tǒng)按計劃完成。從本論文的開題、工作計劃、硬件設(shè)計、軟件設(shè)計到論文的撰寫等各個階段都是在陳老師的耐心指導(dǎo)下完成的。陳導(dǎo)師治學(xué)態(tài)度嚴謹、對待事情沉著冷靜、對專業(yè)的濃厚興趣感和誨人不倦精神使我獲益頗多。謹向?qū)熤乱宰钪孕牡母兄x。在任務(wù)的進行和學(xué)習(xí)期間,感謝陳老師給了我技術(shù)和資金上的支持和鼓勵。感謝電子競賽的老師很隊友們,感謝福建工程學(xué)院的校領(lǐng)導(dǎo)、老師們,感謝你們在心理和學(xué)習(xí)上對我的虛心輔導(dǎo),同時我還要感謝我的父母和家人,沒有你們的苦心栽培和背后的支持,就沒有現(xiàn)在的我,謝謝! 參考文獻[1]岳基隆. 四旋翼無人機自適應(yīng)控制方法的研究[D]. 國防科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2010[2]中國航空學(xué)會編著. 2012年世界無人機大會論文集[M]. 北京中國航空學(xué)會出版社,2012[3] 中國航空學(xué)會編著. STM32系列ARM Cortex M3微控制器原理與實踐[M]. 北京中國航空學(xué)會出版社,2013[4]邵貝貝編著. 嵌入式實時操作系統(tǒng)uC/OSII (第二版)[M]. 北京航空航天大學(xué)出版社,2003.[5] 岳基隆,張慶杰,朱華勇. 微小型旋翼無人機進展及關(guān)鍵技術(shù)淺析[D]. 國防科技大學(xué)碩士學(xué)位論文,2010[6]文錕編著. 基于計算動詞PID控制器的四旋翼無人機控制及地面控制系統(tǒng)的設(shè)計[D]. 廈門大學(xué)碩士學(xué)位論文,2013 [7] 胡軍輝、[D]. 2010[8]姜印清編著. 基于μC/OSⅡ的小型無人機飛行控制系統(tǒng)軟件設(shè)計[D]. 南京航空航天大學(xué)碩士學(xué)位論文 2009[9]劉波文、孫巖編著. 嵌入式實時操作系統(tǒng)μC/OSⅡ經(jīng)典實例——基于STM32處理器[M]. 北京航空航天大學(xué)出版社 2012 [10] Sebastian . An e_cient orientation _lter for inertial and inertial/magnetic sensor arraysMadgwick 2010 附錄1 void SysTick_Init(void){ SysTick_Config(SystemCoreClock/OS_TICKS_PER_SEC)。 //使能并初始化系統(tǒng)定時器}void BSP_Init(void){ SystemInit()。 /*將系統(tǒng)時鐘初始化為72M*/ SysTick_Init()。 /*SysTick初始化函數(shù)*/}if !defined( _BSP_H )define _BSP_Hvoid SysTick_Init(void)。void BSP_Init(void)。endif附錄2 SPI的寫指令程序清單void MPU6000_SPI_WriteByte(uint16_t data){ uint16_t value。 u8 i。 value=data。 //PA7為MOSI for(i=0。i8。i++) { if (((value(7i))amp。0x01)==0x01) GPIO_SetBits(GPIOA, GPIO_Pin_7)。 //MOSI置1 else GPIO_ResetBits(GPIOA, GPIO_Pin_7)。 GPIO_ResetBits(GPIOA, GPIO_Pin_5)。 //時鐘線拉低 delay_us(5)。 GPIO_SetBits(GPIOA, GPIO_Pin_5)。 //時鐘線拉高 delay_us(5)。 } }附錄3 SPI的讀指令程序清單uint16_t MPU600_SPI_ReadByte(void){ u16 temp=0。 u8 i。 for (i=0。i8。i++) { GPIO_ResetBits(GPIOA, GPIO_Pin_5)。 //時鐘線拉低 delay_us(5)。 temp=(temp1)+(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6))。 GPIO_SetBits(GPIOA, GPIO_Pin_5)。 //時鐘線拉高 delay_us(5)。 } return (temp)。 } 附錄4 姿態(tài)控制的PID程序清單void Get_PID_Cacu(float Exp_Pitch, float Exp_Roll,float Exp_Yaw){ // 得到當前系統(tǒng)的誤差利用期望角度減去當前角度 Error_Pitch = Exp_Pitch Pitch。 Error_Roll = Exp_Roll Roll。 Error_Yaw = Exp_Yaw Yaw。 if (fabs(Error_Pitch) = 20) //積分分離在姿態(tài)誤差角小于20176。時引入積分 { //累加誤差 ErrorI_Pitch += Error_Pitch。 //積分限幅 if (ErrorI_Pitch = PITCH_I_MAX) ErrorI_Pitch = PITCH_I_MAX。 else if (ErrorI_Pitch = PITCH_I_MAX) ErrorI_Pitch = PITCH_I_MAX。 } if (fabs(Error_Roll) = 20) { //累加誤差 ErrorI_Roll +=Error_Roll。 //積分限幅 if (ErrorI_Roll = ROLL_I_MAX) ErrorI_Roll = ROLL_I_MAX。 else if (ErrorI_Roll = ROLL_I_MAX) ErrorI_Roll = ROLL_I_MAX。 } ele=(s16)(Kp_Pitch*Error_Pitc+Ki_Pitch*ErrorI_Pitch Kd_Pitch * AngleSpeed_X)。 ail= (s16)(Kp_Roll*Error_Roll+ Ki_Roll * ErrorI_Roll Kd_Roll * AngleSpeed_Y)。 rud = (s16)(Kp *Error_Yaw)。 M1 = thr+ ele + ail + rud。 M2 = thr ele + ail rud。 M3 = thr ele ail + rud。 M4 = thr+ ele ail rud。 }附錄5 飛控板的原理圖附錄6 飛控板的PCB附錄7 飛控板的實物圖 附錄8 組裝好的四翼飛行器實物圖44
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1