第六屆飛思卡爾陝理工光電一隊技術報告

2022-06-20 02:21:05 字數 4542 閱讀 6504

軟體設計

一、 軟體設計流程

主程式是整個系統軟體的「總指揮」,通過對各功能模組的合理呼叫來完成賽道資訊的採集、判斷、根據賽道型別對主電機和舵機進行控制等功能。系統開機後首先對系統進行初始化。系統初始化包括i/o初始化、看門狗初始化、定時器初始化、pwm初始化等。

初始化完成之後隨即停車兩秒。待兩秒延時到啟動智慧型車並採集賽道資訊,進行路徑分析後控制舵機、電機。當檢測到起跑線時立即停車。

二、各模組使用情況

此次設計使用了i/o 埠模組、pwm 模組、ect 模組、時鐘模組四個模組。

i/o埠分別控制雷射的分時點亮以及接收、電機使能、撥碼開關輸入、led顯示等;

pwm模組控制電機、搖頭及導向舵機;

ect模組用於檢測編碼器脈衝輸入並計數,另外ect還有週期中斷定時器(pit)功能:

捕捉編碼器產生的脈衝個數,並通過脈衝累加器累加得到當前的速度值,8ms定時中斷一次讀取當前速度,並返回用於速度控制。500us定時中斷一次檢測起跑線。

為了提高系統的響應速度,使用微控制器內部的鎖相環電路將外部晶振電路的 16mhz 通過設定 synr,refdv 暫存器倍頻到 64mhz,匯流排時鐘為 32mhz。三、賽道資訊採集與處理

賽道資訊,一是反映了車體與軌道偏離程度的資訊,即車體當前狀態位置及切內道還是切外道;二是小車此時處於何種路段,即直道、彎道、直道入彎或虛線等。

由於側滑、入彎速度過快導致舵機導向延遲等問題,採用一排感測器很難正確的反映出賽道資訊,所以可採用輔助感測器判斷車體位置。

由於雷射感測器的應用,大大提高了車的前瞻性。經測量,本系統探測距離可達60cm以上。但是,考慮到穩定性和可**性,探測距離越遠,穩定性越差,且採回來的資訊可信度越低。

綜合各種因素考慮,我們最終將雷射探測距離定在 48cm 左右。

1 、賽道資訊採集

小車的感測器採用傳統的12個雷射發射管「一」字型分布感測器在賽道上可能的狀態有:在普通的賽道處、在起點處、在十字交叉線處,下面將分別進行分析。

程式中定義了變數laser_num,用於統計在黑線上的感測器的數目,經過測試,各種路況laser_num值如下:

普通賽道:laser_num>=0且<=6(感測器丟線為0);十字交叉線:laser_num=12;起跑線:laser_num=8;虛線:laser_num=0。

由於感測器可能會出現不穩定現象,所以對有效訊號外的狀態進行濾除;在十字線2.5cm,處理時返回感測器狀態state=0,但由於車體位置可能不是很正,所以出十字線時會出現很多狀態,例如:111001110000,對此類訊號也需要一併濾除;由於程式執行週期為2~3ms,取樣距離不到1cm所以感測器狀態值不會出現跳躍變化過大,用此特點可以對訊號進行濾波。

對於本屆新增的虛線部分的處理,程式中定義了陣列xuxian_flag,用於檢測感測器的狀態變化, laser_num為非0時,xuxian_flag=1,反之為0,;通過此陣列值的變化情況可判斷出小車是實線入虛線還是虛線入實線,將間斷線實線部分的感測器狀態值記錄在陣列shixian內,並通過這些值計算出間斷線的斜率,從而地推出下一時刻黑線的大概位置。

2、賽道資訊處理

感測器的狀態值採用以下兩種方法:

1)、使用模糊演算法,這種演算法的優點是能夠根據感測器返回的狀態值,得到車的重心偏離黑線的程度,從而參與舵機控制演算法,具體演算法介紹如下:

感測器重心取值分配圖

給相應各個感測器的權重值,當感測器檢測到黑線時相應的感測器返回所在的權重值,並計算所有感測器的平均加權值,即偏離程度。利用此值參與舵機控制。

此方法的缺點是會將一些錯誤訊號進行計算,例如出十字線時的狀態或感測器的不穩定狀態都參與計算,從而會出現誤導。

2)、對感測器可能出現有效狀態進行列表並賦權值,當感測器返回狀態時直接呼叫此狀態對應的權值並參與計算。這種演算法的優點是簡單且準確度較高,並能對無效訊號進行濾除後參與計算。缺點是對感測器的穩定性要求較為苛刻,程式執行較為嚴格。

經過測試後決定採用第二種方法較為可靠,當出現誤訊號時,對歷史狀態值進行判斷從而可對黑線的大概位置進行判斷,從而返回值對舵機進行控制。

四、彎道策略分析

在車輛進彎時,需要對三個引數進行設定:切彎路徑、轉向角度、入彎速度。

其中,切彎路徑主要決定了車輛是選擇內道過彎還是外道過彎。切內道,路經最短,但是如果地面附著係數過小會導致車輛出現側滑的不穩定行駛狀態,原因是切內道時,曲率半徑過小,同時速度又很快,所以模型車需要的向心力會很大,而賽道本身是平面結構,向心力將全部由來自地面的摩擦力提供,因此賽道表面的附著係數將對賽車的執行狀態有很大影響。切外道,路徑會略長,但是有更多的調整機會,同時曲率半徑的增加會使得模型車可以擁有更高的過彎速度。

轉向角度決定了車輛過彎的穩定性。合適的轉向角度會減少車輛在轉彎時的調整,不僅路徑可以保證最優,運動狀態的穩定也會帶來效率的提高,減少時間。

在經過測試後,發現如果當小車轉彎時,我們使導向舵機的輸入量相應的加減一定的值,會使過彎較為輕鬆,但在連續彎上會出現擺動幅度較大,所以這個量必須控制得當。

對於入彎速度的分析,應該綜合考慮路徑和轉向角度的影響。本系統對過彎速度的處理方式確定為:入彎時減速,以得到足夠的調整時間,獲得正確的轉向角度;輔助感測器判斷小車的切彎路徑,並在彎道內適當提速,小車切內越接近黑線加速越大,這樣為出彎時的加速節約時間,確定出彎後立即加速。

彎道加速程式如下:

num_speed=30-3*abs_(near_state[0]);

其中num_speed為需要在當前速度基礎上累加的量,near_state[0]為近處感測器的狀態值。

五、舵機控制

簡言之,搖頭舵機採用的增量式的pid控制,此演算法快速且穩定,並能有效將地縮短取樣週期;在搖頭量的基礎上,加上對感測器的值進行微積分,二者同時控制導向舵機。

搖頭舵機主要是使感測器應盡可能的跟住黑線,而導向舵機則起到對路徑的控制,二者缺一不可。導向舵機打角過小會出現單邊圓弧外切或直道入彎打角不足現象,但在連續彎上效果較好。所以必須對不同的路徑(直道、直道入彎、單邊圓、連續彎道等)分別控制舵機的打角量,才能使整體的路徑最優。

通過調節導向舵機的搖頭控制量係數和微積分係數,可以改變舵機的打角大小、跟線能力、提前打角能力。

六、電機控制

與舵機相同,不同的路徑應給予不同的速度。如直道高速、切內彎加速、切外低速等。

電機控制採用bangbang和增量pid同時控制。

pid 演算法:pid 演算法的優點是演算法理論成熟,不要求有精確的被控物件數學模型。所以採用 pid 演算法可以極大地減少建模工作,而將工作重點轉移到 pid控制引數的整定上來。

並且有非常成熟的引數整定方法可用。pid 控制演算法的效能穩定可靠,開發風險小。pid 控制系統如圖4.

5 所示。

比例控制能迅速的反應誤差,從而減小誤差,但比例控制不能消除穩態誤差,kp的加大會引起系統的不穩定;積分控制的作用是,只要系統存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差,因而,只要有足夠的時間,積分控制能完全消除誤差,積分作用太強會使得系統的超調加大,甚至使系統出現**;微分控制可以減小超調量,克服**,使系統的穩定性提高,同時加快系統的動態響應速度,減小調整時間,從而改善系統的動態效能。

bang_bang控制的思想是反饋值若比設定值小,就把控制值設定為最大,否則設定為最小,用公式表示為:

其中 e(k)為設定速度和反饋速度的差

當編碼器測得的速度與預設值相差過大是,採用bangbang控制,使電機的加減速效能達到最快;而當速度逼近預設值時,則轉換至pid控制,使小車速度在預設值附近更線性的變化,不至於出現速度的「抖動」現象。

當速度高於一定程度時,單靠pid調節降速不能使小車安全過彎,必須進行制動處理。減速方面,當速度偏差較大時,電機輸出量為零;而當偏差過大時,則需要反轉電機進行剎車處理,使小車速度迅速降低才能安全入彎。速度控制程式如下:

ek=(int)(speed0[3]*0.75);

if(speed0[0] q_moto=3100;

else if((speed0[0]-speed0[3])>20&&abs_(state1[0])>200&&init_speed>130

else

在制動時,電機反向電動勢對整個系統電路造成的衝擊,從而引起微控制器工作不穩定,電流過大導致電機過熱、電機頻繁換向,導致其內部電刷打火劇烈而使電機壽命縮短等一系列問題都是需要考慮的。

附錄:程式源**

#include <>

#include ""

#define middle2 2643 //導向舵機 //

#define left_max2 2643-390 //

#define right_max2 2643+390 //350left

#define middle 3210 // 隨動舵機

#define left_max 3210+1400 //左偏大

#define right_max 3210-1400//右偏小

#define q_guidesevo pwmdty01

#define q_shakesevo pwmdty45

#define q_moto pwmdty67

#define limit 20

float k0,kp0,kd0;

float k1,kp1,kd1;

word last_value;

word new_value;

word temp

word init_speed;

閩南理工學院第六屆膳食委員會委員名單

副主任 施盈盈秘書部 秘書長 周揚峰副部長 林善謀 幹事 餘亦男 莊玲玲 林霞雲 方璿 王婧旭 施婷婷 文娛部 部長 林倩 幹事 周夢雲 蔡志超 高芸雅 李奕傑 何舒婷 陳敏靜 柯婷婷 宣傳部 部長 楊惠榆副部長 朱劍英 幹事 李小佩 楊冬雪 陳慧敏 邱舒婷 陳昀鵬 陳皓罡 吳佳琪 監督部 部長 黃...

紅寺堡第二小學第六屆一次教代會閉幕詞

閉幕詞同志們 今天,我們紅寺堡二小六屆一次教代會經過24名代表的共同努力,開得非常成功!在這裡,我們對各位代表給予我校的熱情關懷和大力支援表示敬意,對各位代表積極參政議政,認真行使自己神聖的職權表示衷心的感謝!這次教代會,我們進行了認真的準備。在會上,我們討論 修改並通過了學校相關的規章制度,聽取了...

關於開展成都理工大學第六屆「十佳大學生」評選活動的通知

關於開展成都理工大學 第六屆 十佳大學生 評選活動的通知 各學院 學校決定開展成都理工大學第六屆 十佳大學生 評選活動,現將相關事宜通知如下 一 評選辦法 本次評選嚴格按照 成都理工大學 十佳大學生 評選條例 執行。已獲 十佳大學生 稱號的同學不再參加評選。二 評選程式 1 本人申請 符合參評條件的...