循跡小車演算法
① 循跡小車可以走規劃路線嗎
可以的,但是需要你會寫程序。
1. 小車控制及驅動單元的選擇 此部分是整個小車的大腦,是整個小車運行的核心部件,起著控制小車所有運行狀態的作用。通常選用單片機作為小車的核心控制單元,在這里用台灣凌陽公司的SPCE061A單片機來做小車的控制單元。SPCE061是一款擁有2K RAM、32KFlash、32 個I/O 口,並集成了AD/DA功能強大的16位微處理器,它還擁有豐富的語音處理功能,為小車的功能擴展提供了相當大的空間。只要按照該單片機的要求對其編製程序就可以實現很多不同的功能。小車驅動電機一般利用現成的玩具小車上的配套直流電機。考慮到小車必須能夠前進、倒退、停止,並能靈活轉向,在左右兩輪各裝一個電機分別進行驅動。當左輪電機轉速高於右輪電機轉速時小車向右轉,反之則向左轉。為了能控制車輪的轉速,可以採取PWM調速法,即由單片機的IOB8、IOB9輸出一系列頻率固定的方波,再通過功率放大來驅動電機,在單片機中編程改變輸出方波的占空比就可以改變加到電機上的平均電壓,從而可以改變電機的轉速。左右輪兩個電機轉速的配合就可以實現小車的前進、倒退、轉彎等功能。 2. 小車循跡的原理 這里的循跡是指小車在白色地板上循黑線行走,通常採取的方法是紅外探測法。紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在小車行駛過程中不斷地向地面發射紅外光,當紅外光遇到白色紙質地板時發生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據來確定黑線的位置和小車的行走路線。紅外探測器探測距離有限,一般最大不應超過15cm。對於發射和接收紅外線的紅外探頭,可以自己製作或直接採用集成式紅外探頭。 (1)自製紅外探頭電路如圖1所示,紅外光的發送接收選用型號為ST168的對管。當小車在白色地面行駛時,裝在車下的紅外發射管發射紅外線信號,經白色反射後,被接收管接收,一旦接收管接收到信號,那麼圖中光敏三極體將導通,比較器輸出為低電平;當小車行駛到黑色引導線時,紅外線信號被黑色吸收後,光敏三極體截止,比較器輸出高電平,從而實現了通過紅外線檢測信號的功能。將檢測到的信號送到單片機I/O口,當I/O口檢測到的信號為高電平時,表明紅外光被地上的黑色引導線吸收了,表明小車處在黑色的引導線上;同理,當I/O口檢測到的信號為低電平時,表明小車行駛在白色地面上。此種方法簡單,價格便宜,靈敏度可調,但是容易受到周圍環境的影響,特別是在圖1較強的日光燈下,對檢測到的信號有一定的影響。 (2)集成式紅外探頭可以採用型號為E3F-DS10C4集成斷續式光電開關探測器,它具有簡單、可靠的工作性能,只要調節探頭上的一個旋鈕就可以控制探頭的靈敏度。該探頭輸出端只有三根線(電源線、地線、信號線),只要將信號線接在單片機的I/O口,然後不停地對該I/O口進行掃描檢測,當其為高電平時則檢測到白紙,當為低電平時則檢測到黑線。此種探頭還能有效地防止普通光源(如日光燈等)的干擾。其缺點則是體積比較大,佔用了小車有限的空間。 3.紅外探頭的安裝 在小車具體的循跡行走過程中,為了能精確測定黑線位置並確定小車行走的方向,需要同時在底盤裝設4個紅外探測頭,進行兩級方向糾正控制,提高其循跡的可靠性。這4個紅外探頭的具體位置如圖2所示。圖中循跡感測器共安裝4個,全部在一條直線上。其中InfraredMR與InfraredML 為第一級方向控制感測器,InfraredSR 與InfraredSL 為第二級方向控制感測器。小車行走時,始終保持黑線(如圖2 中所示的行走軌跡黑線)在InfraredMR和InfraredML這兩個第一級感測器之間,當小車偏離黑線時,第一級探測器一旦探測到有黑線,單片機就會按照預先編定的程序發送指令給小車的控 制系統,控制系統再對小車路徑予以糾正。若小車回到了軌道上,即4個探測器都只檢測到白紙,則小車會繼續行走;若小車由於慣性過大依舊偏離軌道,越出了第一級兩個探測器的探測范圍,這時第二級動作,再次對小車的運動進行糾正,使之回到正確軌道上去。可以看出,第二級方向探測器實際是第一級的後備保護,從而提高了小車循跡的可靠性。 4.軟體控制 其程序控制框圖如圖3。小車進入循跡模式後,即開始不停地掃描與探測器連接的單片機I/O口,一旦檢測到某個I/O口有信號,即進入判斷處理程序(switch),先確定4個探測器中的哪一個探測到了黑線,如果InfraredML(左面第一級感測器)或者InfraredSL(左面第二級感測器)探測到黑線,即小車左半部分壓到黑線,車身向右偏出,此時應使小車向左轉;如果是InfraredMR(右面第一級感測 器)或InfraredSR(右面第二級感測器)探測到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應使小車向右轉。在經過了方向調整後,小車再繼續向前行走,並繼續探測黑線重復上述動作。 由於第二級方向控制為第一級的後備,則兩個等級間的轉向力度必須相互配合。 電動循跡小車設計1. 小車控制及驅動單元的選擇 此部分是整個小車的大腦,是整個小車運行的核心部件,起著控制小車所有運行狀態的作用。通常選用單片機作為小車的核心控制單元,在這里用台灣凌陽公司的SPCE061A單片機來做小車的控制單元。SPCE061是一款擁有2K RAM、32KFlash、32 個I/O 口,並集成了AD/DA功能強大的16位微處理器,它還擁有豐富的語音處理功能,為小車的功能擴展提供了相當大的空間。只要按照該單片機的要求對其編製程序就可以實現很多不同的功能。小車驅動電機一般利用現成的玩具小車上的配套直流電機。考慮到小車必須能夠前進、倒退、停止,並能靈活轉向,在左右兩輪各裝一個電機分別進行驅動。當左輪電機轉速高於右輪電機轉速時小車向右轉,反之則向左轉。為了能控制車輪的轉速,可以採取PWM調速法,即由單片機的IOB8、IOB9輸出一系列頻率固定的方波,再通過功率放大來驅動電機,在單片機中編程改變輸出方波的占空比就可以改變加到電機上的平均電壓,從而可以改變電機的轉速。左右輪兩個電機轉速的配合就可以實現小車的前進、倒退、轉彎等功能。 2. 小車循跡的原理 這里的循跡是指小車在白色地板上循黑線行走,通常採取的方法是紅外探測法。紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在小車行駛過程中不斷地向地面發射紅外光,當紅外光遇到白色紙質地板時發生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據來確定黑線的位置和小車的行走路線。紅外探測器探測距離有限,一般最大不應超過15cm。對於發射和接收紅外線的紅外探頭,可以自己製作或直接採用集成式紅外探頭。 (1)自製紅外探頭電路如圖1所示,紅外光的發送接收選用型號為ST168的對管。當小車在白色地面行駛時,裝在車下的紅外發射管發射紅外線信號,經白色反射後,被接收管接收,一旦接收管接收到信號,那麼圖中光敏三極體將導通,比較器輸出為低電平;當小車行駛到黑色引導線時,紅外線信號被黑色吸收後,光敏三極體截止,比較器輸出高電平,從而實現了通過紅外線檢測信號的功能。將檢測到的信號送到單片機I/O口,當I/O口檢測到的信號為高電平時,表明紅外光被地上的黑色引導線吸收了,表明小車處在黑色的引導線上;同理,當I/O口檢測到的信號為低電平時,表明小車行駛在白色地面上。此種方法簡單,價格便宜,靈敏度可調,但是容易受到周圍環境的影響,特別是在圖1較強的日光燈下,對檢測到的信號有一定的影響。 (2)集成式紅外探頭可以採用型號為E3F-DS10C4集成斷續式光電開關探測器,它具有簡單、可靠的工作性能,只要調節探頭上的一個旋鈕就可以控制探頭的靈敏度。該探頭輸出端只有三根線(電源線、地線、信號線),只要將信號線接在單片機的I/O口,然後不停地對該I/O口進行掃描檢測,當其為高電平時則檢測到白紙,當為低電平時則檢測到黑線。此種探頭還能有效地防止普通光源(如日光燈等)的干擾。其缺點則是體積比較大,佔用了小車有限的空間。 3.紅外探頭的安裝 在小車具體的循跡行走過程中,為了能精確測定黑線位置並確定小車行走的方向,需要同時在底盤裝設4個紅外探測頭,進行兩級方向糾正控制,提高其循跡的可靠性。這4個紅外探頭的具體位置如圖2所示。圖中循跡感測器共安裝4個,全部在一條直線上。其中InfraredMR與InfraredML 為第一級方向控制感測器,InfraredSR 與InfraredSL 為第二級方向控制感測器。小車行走時,始終保持黑線(如圖2 中所示的行走軌跡黑線)在InfraredMR和InfraredML這兩個第一級感測器之間,當小車偏離黑線時,第一級探測器一旦探測到有黑線,單片機就會按照預先編定的程序發送指令給小車的控 制系統,控制系統再對小車路徑予以糾正。若小車回到了軌道上,即4個探測器都只檢測到白紙,則小車會繼續行走;若小車由於慣性過大依舊偏離軌道,越出了第一級兩個探測器的探測范圍,這時第二級動作,再次對小車的運動進行糾正,使之回到正確軌道上去。可以看出,第二級方向探測器實際是第一級的後備保護,從而提高了小車循跡的可靠性。 4.軟體控制 其程序控制框圖如圖3。小車進入循跡模式後,即開始不停地掃描與探測器連接的單片機I/O口,一旦檢測到某個I/O口有信號,即進入判斷處理程序(switch),先確定4個探測器中的哪一個探測到了黑線,如果InfraredML(左面第一級感測器)或者InfraredSL(左面第二級感測器)探測到黑線,即小車左半部分壓到黑線,車身向右偏出,此時應使小車向左轉;如果是InfraredMR(右面第一級感測 器)或InfraredSR(右面第二級感測器)探測到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應使小車向右轉。在經過了方向調整後,小車再繼續向前行走,並繼續探測黑線重復上述動作。 由於第二級方向控制為第一級的後備,則兩個等級間的轉向力度必須相互配合。第二級通常是在超出第一級的控制范圍的情況下發生作用,它也是最後一層保護,所以它必須要保證小車回到正確軌跡上來,則通常使第二級轉向力度大於第一級,即level2>level1(level1、level2為小車轉向力度,其大小通過改變單片機輸出的占空比的大小來改變),具體數值在實地實驗中得到。根據上面所講述的方法,我們可以較容易地做出按照一定軌跡行走的智能電動小車。但是按照該方法行走的小車如果是走直線,有可能會是蛇形前進。為了使小車能夠按軌跡行走的更流暢,可以在軟體編程時運用一些簡單的演算法。例如,在對小車進行糾偏時,適當提前停止糾偏,而不要等到小車完全不偏時再停止,以防止小車的過沖。 第二級通常是在超出第一級的控制范圍的情況下發生作用,它也是最後一層保護,所以它必須要保證小車回到正確軌跡上來,則通常使第二級轉向力度大於第一級,即level2>level1(level1、level2為小車轉向力度,其大小通過改變單片機輸出的占空比的大小來改變),具體數值在實地實驗中得到。 根據上面所講述的方法,我們可以較容易地做出按照一定軌跡行走的智能電動小車。但是按照該方法行走的小車如果是走直線,有可能會是蛇形前進。為了使小車能夠按軌跡行走的更流暢,可以在軟體編程時運用一些簡單的演算法。例如,在對小車進行糾偏時,適當提前停止糾偏,而不要等到小車完全不偏時再停止,以防止小車的過沖
② 一文搞懂PID控制演算法
PID演算法是工業應用中最廣泛演算法之一,在閉環系統的控制中,可自動對控制系統進行准確且迅速的校正。PID演算法已經有100多年歷史,在四軸飛行器,平衡小車、汽車定速巡航、溫度控制器等場景均有應用。
之前做過循跡車項目,簡單循跡搖擺幅度較大,效果如下所示:
PID演算法優化後,循跡穩定性能較大提升,效果如下所示:
PID演算法:就是「比例(proportional)、積分(integral)、微分(derivative)」,是一種常見的「保持穩定」控制演算法。
常規的模擬PID控制系統原理框圖如下所示:
因此可以得出e(t)和u(t)的關系:
其中:
Kp:比例增益,是調適參數;
Ki:積分增益,也是調適參數;
Kd:微分增益,也是調適參數;
e:誤差=設定值(SP)- 回授值(PV);
t:目前時間。
數學公式可能比較枯燥,通過以下例子,了解PID演算法的應用。
例如,使用控制器使一鍋水的溫度保持在50℃,小於50℃就讓它加熱,大於50度就斷電不就行了?
沒錯,在要求不高的情況下,確實可以這么干,如果換一種說法,你就知道問題出在哪裡了。
如果控制對象是一輛汽車呢?要是希望汽車的車速保持在50km/h不動,這種方法就存在問題了。
設想一下,假如汽車的定速巡航電腦在某一時間測到車速是45km/h,它立刻命令發動機:加速!
結果,發動機那邊突然來了個100%全油門,嗡的一下汽車急加速到了60km/h,這時電腦又發出命令:剎車!結果乘客吐......
所以,在大多數場合中,用「開關量」來控制一個物理量就顯得比較簡單粗暴了,有時候是無法保持穩定的,因為單片機、感測器不是無限快的,採集、控制需要時間。
而且,控制對象具有慣性,比如將熱水控制器拔掉,它的「余熱」即熱慣性可能還會使水溫繼續升高一小會。
此時就需要使用PID控制演算法了。
接著咱再來詳細了解PID控制演算法的三個最基本的參數:Kp比例增益、Ki積分增益、Kd微分增益。
1、Kp比例增益
Kp比例控制考慮當前誤差,誤差值和一個正值的常數Kp(表示比例)相乘。需要控制的量,比如水溫,有它現在的 當前值 ,也有我們期望的 目標值 。
當兩者差距不大時,就讓加熱器「輕輕地」加熱一下。
要是因為某些原因,溫度降低了很多,就讓加熱器「稍稍用力」加熱一下。
要是當前溫度比目標溫度低得多,就讓加熱器「開足馬力」加熱,盡快讓水溫到達目標附近。
這就是P的作用,跟開關控制方法相比,是不是「溫文爾雅」了很多。
實際寫程序時,就讓偏差(目標減去當前)與調節裝置的「調節力度」,建立一個一次函數的關系,就可以實現最基本的「比例」控制了~
Kp越大,調節作用越激進,Kp調小會讓調節作用更保守。
若你正在製作一個平衡車,有了P的作用,你會發現,平衡車在平衡角度附近來回「狂抖」,比較難穩住。
2、Kd微分增益
Kd微分控制考慮將來誤差,計算誤差的一階導,並和一個正值的常數Kd相乘。
有了P的作用,不難發現,只有P好像不能讓平衡車站起來,水溫也控製得晃晃悠悠,好像整個系統不是特別穩定,總是在「抖動」。
設想有一個彈簧:現在在平衡位置上,拉它一下,然後鬆手,這時它會震盪起來,因為阻力很小,它可能會震盪很長時間,才會重新停在平衡位置。
請想像一下:要是把上圖所示的系統浸沒在水裡,同樣拉它一下 :這種情況下,重新停在平衡位置的時間就短得多。
此時需要一個控製作用,讓被控制的物理量的「變化速度」趨於0,即類似於「阻尼」的作用。
因為,當比較接近目標時,P的控製作用就比較小了,越接近目標,P的作用越溫柔,有很多內在的或者外部的因素,使控制量發生小范圍的擺動。
D的作用就是讓物理量的速度趨於0,只要什麼時候,這個量具有了速度,D就向相反的方向用力,盡力剎住這個變化。
Kd參數越大,向速度相反方向剎車的力道就越強,如果是平衡小車,加上P和D兩種控製作用,如果參數調節合適,它應該可以站起來了。
3、Ki積分增益
Ki積分控制考慮過去誤差,將誤差值過去一段時間和(誤差和)乘以一個正值的常數Ki。
還是以熱水為例,假如有個人把加熱裝置帶到了非常冷的地方,開始燒水了,需要燒到50℃。
在P的作用下,水溫慢慢升高,直到升高到45℃時,他發現了一個不好的事情:天氣太冷,水散熱的速度,和P控制的加熱的速度相等了。
這可怎麼辦?
P兄這樣想:我和目標已經很近了,只需要輕輕加熱就可以了。
D兄這樣想:加熱和散熱相等,溫度沒有波動,我好像不用調整什麼。
於是,水溫永遠地停留在45℃,永遠到不了50℃。
根據常識,我們知道,應該進一步增加加熱的功率,可是增加多少該如何計算呢?
前輩科學家們想到的方法是真的巧妙,設置一個積分量,只要偏差存在,就不斷地對偏差進行積分(累加),並反應在調節力度上。
這樣一來,即使45℃和50℃相差不是太大,但是隨著時間的推移,只要沒達到目標溫度,這個積分量就不斷增加,系統就會慢慢意識到:還沒有到達目標溫度,該增加功率啦!
到了目標溫度後,假設溫度沒有波動,積分值就不會再變動,這時,加熱功率仍然等於散熱功率,但是,溫度是穩穩的50℃。
Ki的值越大,積分時乘的系數就越大,積分效果越明顯,所以,I的作用就是,減小靜態情況下的誤差,讓受控物理量盡可能接近目標值。
I在使用時還有個問題:需要設定積分限制,防止在剛開始加熱時,就把積分量積得太大,難以控制。
PID演算法的參數調試是指通過調整控制參數(比例增益、積分增益/時間、微分增益/時間) 讓系統達到最佳的控制效果 。
調試中穩定性(不會有發散性的震盪)是首要條件,此外,不同系統有不同的行為,不同的應用其需求也不同,而且這些需求還可能會互相沖突。
PID演算法只有三個參數,在原理上容易說明,但PID演算法參數調試是一個困難的工作,因為要符合一些特別的判據,而且PID控制有其限制存在。
1、穩定性
若PID演算法控制器的參數未挑選妥當,其控制器輸出可能是不穩定的,也就是其輸出發散,過程中可能有震盪,也可能沒有震盪,且其輸出只受飽和或是機械損壞等原因所限制。不穩定一般是因為過大增益造成,特別是針對延遲時間很長的系統。
2、最佳性能
PID控制器的最佳性能可能和針對過程變化或是設定值變化有關,也會隨應用而不同。
兩個基本的需求是調整能力(regulation,干擾拒絕,使系統維持在設定值)及命令追隨 (設定值變化下,控制器輸出追隨設定值的反應速度)。有關命令追隨的一些判據包括有上升時間及整定時間。有些應用可能因為安全考量,不允許輸出超過設定值,也有些應用要求在到達設定值過程中的能量可以最小化。
3、各調試方法對比
4、調整PID參數對系統的影響
③ 怎麼設計循跡小車
1、循跡小車是一種能夠自己尋找軌跡並按軌跡運動的「智能」車。本文簡要記錄這一電子製作過程,希望大家喜歡。有什麼建議和意見,歡迎大家留言。
6、調試後,小車可以再黑色的軌道上自動循跡,製作成功。黑色軌跡可以自己做,用黑色膠布再地板上自定義軌道,小車慢悠悠的在軌道上行走。
④ 智能車 電磁組 循跡演算法有哪些
車模,電容,電阻,開關,電感,穩壓晶元,二極體,鋼件等。
智能車在工業上應用也非常廣泛,主要應用於無人搬運方面。被業界人士稱為:無人搬運車或是AGV小車,其自動牽引,自動導航無需工與,備受廠商關注。
智能車的特點
1、AGV智能車運行路徑和目的地可以由管理程序控制,機動能力強。而且某些導向方式的線路變更十分方便靈活,設置成本低。
2、工位識別能力和定位精度高,具有與各種加工設備協調工作的能力。AGV智能車在通訊系統的支持和管理系統的調度下,可實現物流的柔性控制。
3、AGV智能車載物可以採用不同的安裝結構和裝卸方式,能滿足不同產品運送和加工的需要。因此,物流系統的適應能力強。
4、可裝備多種聲光報警系統,能通過車載障礙探測系統在碰撞到障礙物之前自動停車。當其列隊行駛或在某一區域交叉運行時,具有避免相互碰撞的自控能力,不存在人為差錯。因此,AGV智能車比其他物料搬運系統更安全。
5、AGV智能車組成的物流系統不是永久性的,而是在給定的區域內設置。與傳統物料輸送系統在車間內固定設置且不易變更相比,該物流系統的設置柔性強,並可以充分利用人行通道和叉車通道,從而改善車間地面利用率。
6、與其他物料輸送方式相比,初期大,但可以大幅度降低運行費用,特別是在產品類型和工位較多時。AGV智能車在國內限制發展的原因就是價格太貴,一般行業無法接受。