飛思卡爾技術報告_第1頁
飛思卡爾技術報告_第2頁
飛思卡爾技術報告_第3頁
飛思卡爾技術報告_第4頁
飛思卡爾技術報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

K60模塊分配K60的簡介,我們本次使用了以下模塊。FTM模塊:K60中集成3個FTM模塊,而今年我們選用兩個B車進行追蹤循跡。B車模使用單電機、單舵機,另外需要一個編碼器。所以對3個FTM模塊進行如下配置:FTM0用以產生300HzPWM信號控制舵機,FMT1用以產生18.5KHzPWM信號控制電機,FTM2用以采集編碼器數據。定時器模塊:K60中有多個定時器模塊,我們使用了其中2個。其一用以產生5ms中斷,處理相關控制程序。另一個用以超聲波模塊的計時。SPI模塊:我們使用了K60的一個SPI模塊,用以和無線射頻模塊NRF24L01P通信。4?外部中斷:我們使用了三個外部中斷。第一個是PORTA的下降沿中斷,用以響應干簧管檢測到磁鐵。第二個是PORTD的跳變沿中斷,用以響應超聲波模塊的輸出信號。最后一個是PORTE的下降沿中斷,用以響應NRF24L01P模塊的相關操作。數據采集算法傳感器是智能車的眼睛,它們給智能車循跡和追蹤提供了必不可少的信息。因此,在智能車軟件設計中必須保證數據采集算法的穩定性,同時兼顧其快速性。本車比賽,我們的智能車主要采集以下傳感器的數據:電感傳感器電路板、編碼器、超聲波、干簧管。下面主要詳述超聲波模塊、電感傳感器電路板的數據采集。1.超聲波模塊數據采集我們使用的超聲波模塊的DO引腳輸出50Hz的矩形波信號,通過高電平的時間向單片機傳遞數據。本超聲波傳感器的高電平時間為聲波單程傳輸的時間,通過這個時間可計算出兩車之間的距離。我們使用外部中斷和計時器結合的方式測量高電平時間。首先配置PORTD11為跳變沿中斷。中斷被觸發時,如果PORTD11為高電平則開始計時,如果PORTD11為低電平則停止計時并記錄時間間隔。2.電感傳感器電路板的數據采集電感傳感器電路板通過輸出電壓的大小反應響應位置和方向的磁場強度。本次比賽中,我們使用了10個電感分布在6個不同位置,因此每個周期都要采集10路ADC數據,每路ADC數據采集32次進行平均濾波。K60芯片中有兩路ADC模塊,為了最大程度的減少采集數據的時間,我們采用兩個ADC模塊并行采集的方法。首先,將10路ADC分為兩組,第一組6個使用ADC0模塊采集,第二組4個使用ADC1模塊采集,兩個ADC模塊同時采集數據。以第一組為例,依次采集6路ADC數據,循環32次。當兩個ADC模塊都完成任務時,ADC轉換結束。最后進行平均濾波。控制算法1.定位算法A.兩個電感定位算法在電磁組算法設計中,“差比和”(即用連個電感數據的差除以它們的和)是一個簡單易用的定位算法,但是我們測量發現“差比和”算法得出的偏差距離用著較大非線性。如下圖所示,其橫軸為實際偏差(單位mm),其縱軸為“差比和”得出的偏差。可以發現,在實際偏差較小時,“差比和”算出的偏差變化較快,實際偏差較大時“差比和”算出的偏差變化較緩。

“差比和”定位與實際偏差比較圖為了使定位具有更好的線性度,我們擬合出一個函數將差比和的值近似轉換為離中心線的實際偏差。如下圖所示,其橫軸為實際偏差(單位mm),其縱軸為“差比和”得出的偏差,紅線表示實測的曲線,藍線表示用以非線性矯正的一個近似的曲線。非線性矯正曲線B.多個電感的定位算法使用上述的兩個電感定位算法,可以使兩個在同一直線上不同位置的電感兩兩算出一個距離偏差。由于兩個電感的測距有效范圍有限,我們采用三個橫向電感取其中較準確的兩個電感計算距離。記三個橫向的電感對應的數值從左到右分別為Left、Mid、Right。當Left最大時,使用Left和Mid兩個電感值計算偏差;當Right最大時,使用Left和Mid兩個電感值計算偏差;當Mid最大時,根據Left和Right計算出的偏差來計算Left-Right、Left-Mid、Mid-Right三組偏差EO,El和E2的比重KO,K1和K2。最后通過(E0*K0+E1*K1+E2*K2)/(K0+K1+k2)計算出近似的實際偏差,使得三組數據計算值之間平滑過渡。2.基于增量式PID的速度控制A.電機特性的研究與建模本次比賽我們使用了B車模,相比于直立車模,B車模對電機的PID調節要求不是很高。但為了更好的理解PID控制算法和電機特性,我們通過電機的特性曲線近似求出電機的傳遞函數。首先記錄車在給電機20%恒定占空比時的速度和時間曲線,以此作為電機傳遞函數的階躍響應,如下圖所示。然后利用MATLAB得出曲線的近似表達式:e=91.1457 - 64.6742*e"-t/3.4654) -13.6656*e"-t/3.4654*2)-12.6844*e"-t/3.4654*3);最后以此函數作為電機傳遞函數的階躍響應,求得其傳遞函數:-0.733sA3+60.96sA2+119.7s+45.48速的PI參數,并未使用D參數。這個建模的過程并非必要的環節,通過不斷的調試與修改完全可以達到這個要求甚至比建模調的更好,但是在這個過程中我們對PID的理解得以加深。B.增量式PID增量式PID是指數字控制器的輸出只是控制量的增量△u(k)。采用增量式算法時,計算機輸出的控制量厶u(k)對應的是本次執行機構位置的增量,而不是對應執行機構的實際位置,因此要求執行機構必須具有對控制量增量的累積功能,才能完成對被控對象的控制操作。執行機構的累積功能可以采用硬件的方法實現;也可以采用軟件來實現,如利用算式u(k)=u(k-1)+Au(k)程序化來完成。

險(初=1)=疋戸&(肋+疋+島[也⑹仗-切式中Ae(k)=e(k)-e(k-1)2.基于位置式PID的舵機控制A.位置式PID基本PID控制器的理想算式為u(t) 控制器(也稱調節器)的輸出;e(t)――控制器的輸入(常常是設定值與被控量之差,即e(t)=r(t)-c(t));Kp——控制器的比例放大系數;Ti――控制器的積分時間;Td 控制器的微分時間。設u(k)為第k次采樣時刻控制器的輸出值,可得離散的PID算式Jfc畑=卡乞心十瓦込何-咻-1〕]◎孑為積分系數瓦二竽為微分系數式中 1在本次比賽中我們采用了位置式PD控制算法,即積分系數Ki為0。B.PID參數的計算算法在調試過程中,我們發現當定位算法做的較好的時候,定值的PD參數也可以讓小車快速穩定的循跡。為了進一步提高小車的速度和穩定性,我們加入了動態調整PD參數的算法,我們稱之為“二維表PD模糊整定”NBNMNSZOPSPMPSZOKd4004QQ400330430480540ZOKd9000900090005000800090009Q00PSKp42042Q4204QQ450490550PSKd9000900090005500900&90009000PSIV1K43043Q430430470500560PSIVIK9000900090006000900&90009000PIV1Kp42043044Q45048051057aPIV1Kd9000900090007000900090009oaoPBMK440450460斗70495520580PBMK9000goaa90007500900090009000PBKd斗6047a480490510530600PBKd9000900090008000900090009000“二維表PD模糊整定”參數表如上圖所示,橫向由左到右分別表示偏差變化率為{-35,-25,-15,0,15,25,30},縱軸沒兩行為一組工6組,每組2行分別表示Kp,Kd參數,6組由上至下分別表示偏差{30,60,90,120,150,200}。通過這種方法得出一個2輸入2輸出的“PD模糊整定”算法,其輸入為偏差和偏差變化率,輸出為Kp和Kd參數。每一組偏差E和偏差變化率Ec對應的輸出都可以通過以上二維表來定義,當E、Ec不能準確對應表中某個位置時,算法通過其相鄰的參數計算出所要的Kp、Kd參數。調試程序1.無線接收上位機參數的程序在調試過程中需要不斷的修改參數,尤其是我們使用了二維表后參數的修改幅度急劇增大。按鍵調節方案已經不能高效的勝任這么大數量的參數修改了,為此我們編寫了無線發送參數的上位機和小車上對應的接收處理程序。為了讓數據準確的無線傳輸,我們定義了幀格式。我們采用的無線通信模塊是NRF24L01P,我們定義一幀數據為32字節。幀格式為:起始標志功能碼數據校驗碼剩余字節0x7f0x7f2字節2-16字節2字節若干0x00起始標志:由于NRF24L01P一幀被定義為確定的32字節,起始標志作用并不大。加入起始標志可使得上位機適應藍牙模塊發送。功能碼:功能碼用以標志后面數據是什么數據,接收端程序根據功能碼處理后面的數據部分。例如功能碼為0x000x10時,程序數據部分的前2字節作為無符號整形數據保存到temp變量,temp/100的值賦值給Kp。這樣就實現了對Kp變量的重新賦值。數據:接收端程序根據功能碼處理此部分。校驗碼:采用CRC16校驗方式,用以確保數據傳輸的正確無誤。上位機截圖2.無線發送小車狀態量的程序在調試過程中有時靠人眼觀察無法準確的知曉小車的運行狀態,尤其是程序計算的一些中間狀態量。當我們將這些狀態量在電腦上通過曲線顯示出來時,就更容易把握小車的運行狀態了,這些曲線為整定參數提供了有效的依據。在這部分我們采用了是NRF24L01P模塊發送數據。需要發送的數據主要有:電機速度、舵機占空比信號、距中心線偏差等數據。此部分的幀格式由虛擬示波器給出,我們編寫響應的發送代碼。voidmsg_datascope(floatdataO,floatdatal,floatdata2,floatdata3,floatdata4,floatdata5,floatdata6){msg_buff_tx[0]=30//USB-NRF24L01模塊要用的格式msg_buff_tx[1]=0x24//上位機要用的格式*(float*)((uint32)msg_buff_tx+2)=dataO*(float*)((uint32)msg_buff_tx+6)=datal*(float*)((uint32)msg_buff_tx+10)=data2*(float*)((uint32)msg_buff_tx+14)=data3*(float*)((uint32)msg_buff_tx+18

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論