




已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
_ 智能車電磁組總結(jié)專 業(yè): 信息安全(保密方向) 班 級(jí): 09091401 姓 名: 李龍 學(xué) 號(hào): 2014302479 暑期我在智能車基地進(jìn)行了自己的暑期生產(chǎn)實(shí)習(xí),和隊(duì)友在之前搭建的智能車基礎(chǔ)上進(jìn)行完善和改進(jìn),參加了恩智浦杯智能汽車競(jìng)賽。我想本次的實(shí)習(xí)報(bào)告從智能車原理和算法設(shè)計(jì)上進(jìn)行敘述。電磁類智能車概述智能車顧名思義便是可以按照預(yù)先設(shè)定的模式在特定的環(huán)境中自由的運(yùn)動(dòng)而不受人為的干預(yù)的小車,除了可以自動(dòng)循跡(沿著特定的軌道跑),他還可以實(shí)時(shí)顯示自己的各種運(yùn)動(dòng)狀態(tài),如:速度,里程,實(shí)時(shí)輪胎打角狀況等。要實(shí)現(xiàn)它的自動(dòng)化,小車便由三部分組成的傳感器部分、控制部分和執(zhí)行部分。首先傳感器部分便是智能車的眼睛,它用來(lái)收集智能車所在環(huán)境中的有用信號(hào),將收集到的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)以此為依據(jù)進(jìn)行相應(yīng)的控制,我們組所做的是電磁類的智能車,傳感器便是電感,通過(guò)測(cè)量電感所產(chǎn)生的電壓來(lái)判斷小車在賽道的位置,由于電壓大小與和導(dǎo)線的距離有關(guān),所以這種方式可以實(shí)現(xiàn)位置檢測(cè)。測(cè)量具體原理如下,有畢奧-薩伐爾定律可知,通有穩(wěn)恒電流I、長(zhǎng)度為L(zhǎng)的直導(dǎo)線周圍會(huì)產(chǎn)生磁場(chǎng),距離導(dǎo)線距離為r處的磁感應(yīng)強(qiáng)度為:B=u0I4r(cos2-cos1)對(duì)于無(wú)線長(zhǎng)直導(dǎo)線先來(lái)說(shuō),上式中2等于,1等于0,u0為真空磁導(dǎo)率,則:B=u0I2r位于磁場(chǎng)中的電感線圈的感應(yīng)電動(dòng)勢(shì)近似為:E=dtdt=dBSdt=SdBdt=Su02r2dIdt=Su02r2K Ex=KSu02hx2+h2其中Ex為水平方向上的感應(yīng)電動(dòng)勢(shì)分量(我們將電感臥式放置),x為距離導(dǎo)線的水平距離,h為高,故感應(yīng)電動(dòng)勢(shì)的大小正比于電流的變化率K,反比于距離r2,由于K是定值,故可通過(guò)測(cè)量E獲得水平距離r值。接著是控制部分,這部分主要是接受傳感器部分測(cè)量的信號(hào)進(jìn)行計(jì)算分析,根據(jù)預(yù)先編進(jìn)程序的策略傳送出控制信號(hào)給各部分執(zhí)行單位,控制部分主要是單片機(jī),我們所用的是K60,他通過(guò)ADC模塊接收傳感器模塊傳進(jìn)來(lái)的電壓信號(hào)并進(jìn)行模數(shù)轉(zhuǎn)化,并經(jīng)過(guò)一系列的數(shù)據(jù)處理得到電壓值,通過(guò)電壓的計(jì)算得出小車在賽道中的位置值,以此為依據(jù)進(jìn)行相應(yīng)的控制,當(dāng)然還接受其他部分傳進(jìn)的信心以便更精細(xì)的控制,如編碼器等。一是轉(zhuǎn)向控制,當(dāng)計(jì)算出的位置值比較大時(shí),說(shuō)明小車已經(jīng)偏離賽道中央或者正在彎道中,這時(shí)小車應(yīng)該向賽道中央拐,控制部分通過(guò)FTM定時(shí)模塊輸出PWM波到執(zhí)行部分中的舵機(jī)中,使舵機(jī)進(jìn)行相應(yīng)方向的打角讓小車回到賽道中央,為了在不同的車速下確保小車能夠及時(shí)回到賽道中央,多級(jí)的轉(zhuǎn)角大小應(yīng)該對(duì)應(yīng)小車位置的大小,PWM波的占空比決定舵機(jī)(步進(jìn)電機(jī))轉(zhuǎn)動(dòng)的角度,具體PWM波的計(jì)算在后面會(huì)給出。二是速度控制,對(duì)于競(jìng)速型的智能車,速度是小車的關(guān)鍵,小車要能夠在保證不沖出賽道的情況下盡量提高速度,這就需要小車具有非常靈敏的加減速功能,除去小車輪胎摩擦力和傾角外等一些硬件方面的因素外,加減速功能主要是通過(guò)控制部分的相應(yīng)功能實(shí)現(xiàn),單片機(jī)可通過(guò)輸出PWM波到驅(qū)動(dòng)模塊使電機(jī)轉(zhuǎn)動(dòng),當(dāng)然可以改變占空比來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的快慢,從而控制速度的大小,加減速控制的時(shí)機(jī)和速度的大小可以通過(guò)相應(yīng)的算法進(jìn)行判斷。最后是執(zhí)行部分,一是舵機(jī)模塊,這部分不需要驅(qū)動(dòng)電路,只需將單片機(jī)的PWM波輸入到舵機(jī)相應(yīng)的引腳就可以,舵機(jī)內(nèi)部有自己的基準(zhǔn)波形,他和輸入的PWM波的占空比等相比較從而決定正轉(zhuǎn)還是反轉(zhuǎn)以及轉(zhuǎn)動(dòng)的角度。電機(jī)模塊有電機(jī)的驅(qū)動(dòng)電路和電機(jī)本身,一般電機(jī)只要通電就可以轉(zhuǎn)動(dòng)起來(lái),但要控制其轉(zhuǎn)動(dòng)的快慢就需要驅(qū)動(dòng)電路實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的控制,同時(shí)驅(qū)動(dòng)電路還可以提供相應(yīng)的電壓。程序設(shè)計(jì)一、位置獲取方式由電感采集的感應(yīng)電動(dòng)勢(shì)信號(hào)通過(guò)信號(hào)板輸入單片機(jī)的ADC模數(shù)轉(zhuǎn)換模塊的各個(gè)端口,單片機(jī)將其轉(zhuǎn)化為數(shù)字信號(hào)后,可將其作為此刻的電動(dòng)勢(shì)值,每個(gè)傳感器每次采集100次數(shù)據(jù),然后計(jì)算這100次采集的數(shù)據(jù)中最大值和最小值之差,作為電壓值。由于各個(gè)電感固定的位置不同,所測(cè)量到的電壓范圍也會(huì)有所不同,這些數(shù)據(jù)便不能直接進(jìn)行比較或計(jì)算,為了能夠很好地處理數(shù)據(jù),我們通過(guò)歸一化將各個(gè)電感的數(shù)據(jù)統(tǒng)一到同一個(gè)范圍之內(nèi),這樣便可以進(jìn)行比較計(jì)算了,同時(shí)歸一化還可以消除因賽道電流變化產(chǎn)生的誤差,實(shí)時(shí)地反映賽道的真實(shí)狀況,因?yàn)闅w一化采用的是相對(duì)值,不易受絕對(duì)數(shù)據(jù)變動(dòng)而產(chǎn)生的影響。歸一化的公式為:最終值=當(dāng)前值-最小值最大值-最小值*設(shè)定范圍這部分的程序?yàn)椋簐oid signal_collecting(void) /傳感器信號(hào)采集函數(shù) uint8 i; for(i=0;i100;i+) /每個(gè)傳感器采集100次數(shù)據(jù) sensor0i = LPLD_ADC_Get(ADC1, AD10); sensor1i = LPLD_ADC_Get(ADC1, AD8); sensor2i = LPLD_ADC_Get(ADC1, AD9); sensor3i = LPLD_ADC_Get(ADC0, AD12);sensor4i = LPLD_ADC_Get(ADC0, AD13);sensor5i = LPLD_ADC_Get(ADC1, AD11); sensor6i = LPLD_ADC_Get(ADC1, AD12); sensor7i = LPLD_ADC_Get(ADC1, AD13); sensor8i = LPLD_ADC_Get(ADC0, AD14); sensor9i = LPLD_ADC_Get(ADC0, AD15); for(i=0;i10;i+) peaki = CalcMaxToMin(sensori); /傳感器信號(hào)采集峰值計(jì)算 unityi = 300*peaki/maxi; /歸一化公式 uint16 CalcMaxToMin(uint16 data100) /峰值計(jì)算函數(shù) uint16 Max = 0; uint16 Min = 0; uint16 i = 0; Max = data0; Min = data0; for(i=0;i Max) Max = datai; /選取數(shù)組中最大值 if(datai 0) dis = sqrt(distance); else dis = 0; return dis;float32 Dis_Get1(void) /提線函數(shù)1 float32 dis_error; if(unity3unity1) /由13兩個(gè)電感值的大小來(lái)判斷小車的方向 dis_error=Distance2; /偏左,返回正值 else dis_error=(-1)*Distance2; /偏右,返回負(fù)值 return dis_error;二、舵機(jī)控制PD算法得到了位置信息之后,我們便可以通過(guò)它來(lái)進(jìn)行舵機(jī)的控制,我們對(duì)于舵機(jī)的控制采取位置式PD算法,即:舵機(jī)PWM=中間值-P*位置矢量值-D*與前一次位置矢量值之差P為比例系數(shù),它所起的作用便是以最快速度(一次性)減小與目標(biāo)PWM占空比之間的差距,只要有偏差它便起作用,當(dāng)偏差為0時(shí)它便失去作用,系統(tǒng)保持在平衡狀態(tài),但它很容易產(chǎn)生超調(diào),調(diào)節(jié)得太過(guò)了,這樣下一次又會(huì)往回調(diào),來(lái)來(lái)回回就容易產(chǎn)生振蕩,不易在短時(shí)間內(nèi)達(dá)到目標(biāo)值,此時(shí)就需要D來(lái)解決,D為微分系數(shù),與他相乘的便是位置量變化的微分,微分反映位置變化的速率,所以D控制具有一定得預(yù)見(jiàn)性,使得在產(chǎn)生偏差之前就消除了偏差,從而一定程度上避免了系統(tǒng)產(chǎn)生超調(diào),至于另外一個(gè)積分調(diào)節(jié),他是用來(lái)消除靜態(tài)誤差的,但由于他積累了每次調(diào)節(jié)所產(chǎn)生的誤差,使得系統(tǒng)變化比較大,不易使用。為了防止舵機(jī)打角超過(guò)一定范圍會(huì)因?yàn)檩喬タㄗ《鴵p壞舵機(jī),我們應(yīng)該限定舵機(jī)打角的范圍,另外還有一種異常情況是當(dāng)電感偏離賽道太遠(yuǎn)時(shí),所收集到的電磁信號(hào)變得非常小,以至于判斷方向的兩個(gè)電感采集的值大小相等,從而舵機(jī)不打角甚至向相反的方向打角,使得小車亂跑,這是小車丟線了,為了防止丟線,我們應(yīng)該在小車失去判別方向能力的前一時(shí)刻防止小車大范圍打角,即保持之前的打角狀況,我們來(lái)檢測(cè)小車是否丟線的方法便是判斷與前一次位置矢量之差是否大于一個(gè)閾值,或者直接判斷位置矢量是否超過(guò)一個(gè)范圍,若是則采取相應(yīng)的防丟線措施。這部分的程序如下:void rudder_control(void)If(Dis_Error60|Dis_Error 5370 ) rp.rudder_PWM = 5370;if(rp.rudder_PWM 4570 ) rp.rudder_PWM = 4570;LPLD_FTM_PWM_ChangeDuty(FTM3, /使用FTM3 FTM_Ch1, /使用Ch1通道 rp.rudder_PWM); /舵機(jī)占空比賦值三、電機(jī)控制算法1、目標(biāo)速度設(shè)定我們?cè)谶@部分控制中進(jìn)行速度的設(shè)定與控制,首先在速度的設(shè)定中我們以位置變化速率為依據(jù),選一個(gè)速度設(shè)定依賴值trend(初始值為0),根據(jù)trend的值的范圍選定不同的速度,當(dāng)位置變化率比較小時(shí),說(shuō)明小車此時(shí)跑的賽道彎度不是很大或者在當(dāng)前速度下小車跑的姿態(tài)很好,能跟得上軌跡的變化,此時(shí)小車可以嘗試再加一點(diǎn)速度,則令trend+,而當(dāng)位置變化率比較大并且超過(guò)了設(shè)置的閾值,說(shuō)明小車此時(shí)遇到了大角度彎道或者小車自身速度太快了,已經(jīng)不能隨著軌跡的快速變化調(diào)整自己的位置,此時(shí)需要的是快速降速以便小車能夠及時(shí)調(diào)整自己的位置,這時(shí)我們令trend=/2,這種增加降除的策略能夠很好的適應(yīng)加速平滑減速迅速的需要。最后實(shí)時(shí)目標(biāo)速度的設(shè)定可以根據(jù)現(xiàn)有的trend值得范圍來(lái)確定,trend越大,設(shè)置的目標(biāo)速度就越高。接著我們還考慮到小車跑時(shí)的姿態(tài)問(wèn)題,如果小車過(guò)彎時(shí)在彎道中間或靠近彎道外側(cè)時(shí),同樣的速度下在同一時(shí)間內(nèi)肯定沒(méi)有切內(nèi)彎跑得遠(yuǎn),而且太靠近彎道外側(cè)速度不容易提高,因?yàn)榘凑罩拔恢么_定的計(jì)算方式下,當(dāng)電感離中心線太遠(yuǎn)時(shí),所采集到的電壓值每變化12個(gè)單位,位置值則跳變1020,這樣按照我們目標(biāo)速度設(shè)定方法,目標(biāo)速度就不易提高,但若小車是切內(nèi)道跑的,可以避免這個(gè)問(wèn)題并且明顯減少跑完一圈所用的時(shí)間。要想切內(nèi)道跑我們所采取的策略是在設(shè)置的目標(biāo)速度上減去與小車位置有關(guān)的變量,小車離中心導(dǎo)線越遠(yuǎn),在原來(lái)目標(biāo)速度的基礎(chǔ)上減的就越多,小車就能及時(shí)跟得上軌跡變化并且還能靠近彎的內(nèi)道,當(dāng)小車在彎內(nèi)跑平穩(wěn)了還可以加速。目標(biāo)速度設(shè)定的程序如下:void targetspeed(void) /目標(biāo)速度設(shè)置函數(shù)standderror = ABS(error9)-ABS(error7); /求位置變化率 if(standderror=0.8 & trend1) trend /= 2; if(trend55)mp.targetspeed =1800 - ABS(rp.rudder_PWM-RUDDER_MID)/40; else if(trend45)mp.targetspeed =1700 - ABS(rp.rudder_PWM-RUDDER_MID)/50; else if(trend30)mp.targetspeed =1600 - ABS(rp.rudder_PWM-RUDDER_MID)/60; else if(trend20)mp.targetspeed =1500 - ABS(rp.rudder_PWM-RUDDER_MID)/70; else if(trend10)mp.targetspeed =1400 - ABS(rp.rudder_PWM-RUDDER_MID)/80;else mp.targetspeed =1400 - ABS(rp.rudder_PWM-RUDDER_MID)/90;if(mp.targetspeed 1800) mp.targetspeed = 1800;if(mp.targetspeed 1300) mp.targetspeed = 1300;2、速度控制算法(增量式PD)目標(biāo)速度設(shè)置好后,還需要速度控制策略保證小車按照目標(biāo)速度跑,由于車模自身有重量(慣性大)再加上摩擦力的影響,讓小車嚴(yán)格按照目標(biāo)速度跑肯定是做不到的,我們只能盡量控制讓小車接近目標(biāo)速度跑,將偏差限定的可接受范圍內(nèi),速度控制算法還是采用PID控制,和之前舵機(jī)控制不一樣,要想對(duì)速度進(jìn)行相對(duì)及時(shí)且精準(zhǔn)的控制,我們還需要測(cè)量小車的實(shí)時(shí)速度,與目標(biāo)速度進(jìn)行比較利用差值進(jìn)行控制,形成閉環(huán)反饋控制。這次我們采取增量式PD算法,增量式PD是由兩個(gè)位置式PD相減的結(jié)果,它的結(jié)果只與上一次的結(jié)果有關(guān),當(dāng)小車速度有非正常跳變時(shí),采用增量式可以降低這突變產(chǎn)生的影響。增量式PID的表達(dá)式為:ut=ut-ut-1=Kpet+Kiet+Kdet-e(t-1)由于小車要想跑得快且穩(wěn)就需要有非常及時(shí)的加減速能力,要能在該減速的時(shí)候迅速降低速度,而且還不能減得太猛,使得小車有較大的停頓,減下來(lái)后要及時(shí)將速度加上去,因此應(yīng)該有很好的加減速策略,在速度控制PD算法中已經(jīng)擁有加減速的功能,但當(dāng)反饋速度和目標(biāo)速度相差太多時(shí),減速不見(jiàn)得那么得心應(yīng)手,總覺(jué)得減速的力度不夠大,不能及時(shí)將速度減下來(lái),為了克服這一弊端,我們?cè)谠瓉?lái)PD控制算法的基礎(chǔ)上有添加了額外的控制算法,即bang-bang控制算法,我對(duì)bang-bang算法的理解是它是一個(gè)開(kāi)關(guān)控制,每次走的都是兩個(gè)極端,在速度偏差比較大時(shí),我們輸出更大的控制力度以求能夠在短時(shí)間內(nèi)達(dá)到目標(biāo)速度,這種做法我的理解是雖然可能錯(cuò)失了最有效的控制時(shí)機(jī),但通過(guò)大幅度的控制力度彌補(bǔ)了錯(cuò)過(guò)控制時(shí)機(jī)的缺陷,但是由于bang-bang算法控制粗糙,不容易實(shí)現(xiàn)較為精準(zhǔn)的控制,在加上我們使用的B車模本身慣性比較大,若采用bang-bang算法雖然可以及時(shí)讓小車減下速來(lái),但是很容易讓小車有停頓,最后我們果斷放棄bang-bang控制算法,仍采用抓住控制時(shí)機(jī)的控制策略,增量式PD算法由于有微分控制,所以能夠較為準(zhǔn)確地抓住控制時(shí)機(jī),缺點(diǎn)是控制力度不強(qiáng),我們就在原來(lái)的表達(dá)式中加了一個(gè)權(quán)值,使其控制力度能夠有效增加,最后我們有對(duì)這個(gè)權(quán)值進(jìn)行變量化,讓它和速度變化速率緊密相關(guān),這樣又進(jìn)一步降低了小車停頓的可能性。小車速度控制程序如下:void PID(void)if(mp.spdfeedback5) mp.motorPWMlast = 700; mp.speed_error = mp.targetspeed - mp.spdfeedback; /當(dāng)前的速度差值=目標(biāo)速度-當(dāng)/前速度返回值 mp.motorPWM=mp.motorPWMlast+motor_P * (mp.speed_error - mp.speed_eerror) + motor_I*mp.speed_error+motor_D*(mp.speed_error-2*mp.speed_eerror+ mp.speed_eeerror); if(mp.speed_error0 & mp.speed_eerror0 & trend1 =51) trend1+; else if(mp.speed_error-mp.speed_eerror)=50)slow = 0; else if(trend1=40)slow = 0.11; else if(trend1=30)slow = 0.13; else if(trend1=20)slow = 0.15; else if(trend1=10)slow = 0.17; else slow = 0.2; if(mp.motorPWM 10000) mp.motorPWM = 10000; if(mp.motorPWM 320 & unity2pre_unity2)nn = 1;slope=1; If(nn = 1 & unity2320 & unity2320 & unity2pre_unity2)nn = 3; if(nn = 3 & unity2320 & unity220 | Dis_Error30&unity030&unity4100&unity280&unity180&unity3170)&(unity1-unity3)-40) cj = 10; bj = 0 ; /初次檢測(cè)到環(huán)島等待確認(rèn)if(cj=10&(flag=1|bn=1)&(unity2220&(unity1140|unity3140)|(unity6150&unity8150&unity7200&ABS(unity6-unity8)40) bj
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 玫瑰花購(gòu)銷合同
- 工業(yè)設(shè)備維修保養(yǎng)服務(wù)合同
- 出售房屋委托代理合同書
- 固體廢物處理處置服務(wù)合同
- 水電接入合同協(xié)議書
- 承包建造船舶合同
- 電子政務(wù)系統(tǒng)合同
- 內(nèi)蒙古北方職業(yè)技術(shù)學(xué)院《美容外科學(xué)醫(yī)學(xué)美容》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧稅務(wù)高等??茖W(xué)校《電氣傳動(dòng)自動(dòng)控制系統(tǒng)綜合課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連裝備制造職業(yè)技術(shù)學(xué)院《智慧教學(xué)與微課制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 心肺復(fù)蘇課件
- 2024-2030年“一帶一路”背景下中國(guó)鐵塊礦產(chǎn)業(yè)未來(lái)發(fā)展趨勢(shì)及投資策略分析報(bào)告
- 鋼包熱修工安全技術(shù)操作規(guī)程(3篇)
- 風(fēng)力發(fā)電廠土建工程施工組織設(shè)計(jì)
- 2024年云南省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 成人缺氧缺血性腦病護(hù)理
- 期末提優(yōu)測(cè)試卷(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)青島版
- 常用數(shù)學(xué)公式大全
- 風(fēng)機(jī)基礎(chǔ)監(jiān)理實(shí)施細(xì)則
- GB/T 24503-2024礦用圓環(huán)鏈驅(qū)動(dòng)鏈輪
- 人教版(2024)英語(yǔ)七年級(jí)上冊(cè)單詞表
評(píng)論
0/150
提交評(píng)論