如何調(diào)教車模?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
01 引 言
我為什么參加這個(gè)比賽?
從小到大,一直就對(duì)遙控車比較著迷,但是所限于技術(shù)力和財(cái)力不足,一直沒能真正的研究有關(guān)小車的控制這方面。大一其實(shí)也了解過這個(gè)比賽,不過真正讓我開始行動(dòng)的,還是十八屆的自制車模組別。當(dāng)時(shí)看到有關(guān)自制車模的相關(guān)規(guī)則后,我就開始著手進(jìn)行獨(dú)立的車模設(shè)計(jì)。不過,很可惜,當(dāng)時(shí)自制的車模因?yàn)闆]有考慮到電機(jī)的扭矩問題,甚至都不能正常的控制跑直線。至此,大二告一段落。
雖然第一次自制車模直接就給了我當(dāng)頭一棒,但是我仍然沒有停下腳步.

總結(jié)了一下自己的失敗原因:采用直驅(qū)結(jié)構(gòu),高速電機(jī)扭矩不夠。車身太過于沉重,控制起來慣性很大。以及成本較為昂貴,這對(duì)于試錯(cuò)來說算是一個(gè)致命的缺點(diǎn)。
02 FOC電機(jī)設(shè)計(jì)
為何要使用FOC電機(jī)呢?源于第一次自制車模經(jīng)歷的失敗,經(jīng)過我在互聯(lián)網(wǎng)上的不斷搜索,得到了一個(gè)答案:無刷電機(jī)扭矩大,可以直驅(qū)(念念不忘的直驅(qū)方案)。并且FOC控制的無刷電機(jī)效果要更好。
雖然當(dāng)時(shí)甚至不知道無刷是什么原理驅(qū)動(dòng)轉(zhuǎn)起來的,但總要有一些勇往直前的精神,所以我就開始沉浸于無刷電機(jī)驅(qū)動(dòng)的知識(shí)當(dāng)中。從開始的電機(jī)開環(huán)轉(zhuǎn)動(dòng)、閉環(huán)異常(沒校準(zhǔn)零點(diǎn))、成功閉環(huán),再到后來的性能優(yōu)化,控制結(jié)構(gòu)創(chuàng)新,特殊功能制作。這里,耗費(fèi)了大約整整半年的時(shí)間。不過,這段時(shí)間里也學(xué)到了許多新的知識(shí),學(xué)會(huì)了從知網(wǎng)尋找算法并且進(jìn)行落地,學(xué)會(huì)了很多的控制結(jié)構(gòu),也詳細(xì)的了解了各種電機(jī)的驅(qū)動(dòng)方式。
一、FOC電機(jī)特點(diǎn)
1、性能的優(yōu)異性
所謂的FOC,其實(shí)是一種控制算法,叫成FOC電機(jī)多數(shù)是指帶有FOC控制算法的無刷電機(jī)。而FOC的全稱是:矢量磁場(chǎng)控制。簡(jiǎn)單理解就是可以控制出來任意方向的磁場(chǎng),因?yàn)闊o刷電機(jī)沒有電刷結(jié)構(gòu),所以可以避免掉啟動(dòng)階段的扭矩小這個(gè)問題??梢砸恢币宰畲蟮呐ぞ貭恳姍C(jī)的轉(zhuǎn)子進(jìn)行轉(zhuǎn)動(dòng)。相比于有刷電機(jī),F(xiàn)OC控制的電機(jī)可以做到滿扭矩起步,瞬間切換正反轉(zhuǎn)(僅會(huì)被慣性影響切換速度),靜音高效(因?yàn)闆]有換向器的火花損耗),并且可以做到低速控制仍然精確。
2、高效的控制
我做的這個(gè)FOC電機(jī)采用的是CAN通訊方案,因?yàn)镃AN通訊具有抗共模電壓(不需要共地),并且自帶CRC和重發(fā)機(jī)制,可以完美適應(yīng)控制類的傳輸。
為了適應(yīng)速度指令同步生效的需求,通過使用CAN ID0作為廣播地址,使用控制位寫入同步標(biāo)志位后,再使用ID0進(jìn)行廣播同步。
3、性能開銷的優(yōu)化
FOC因?yàn)樯婕暗诫娏鹘馑悖琾ark和clark的變換和逆變換。導(dǎo)致所需計(jì)算量大大增加。STC的芯片雖然已經(jīng)有了浮點(diǎn)加速和整數(shù)加速功能,但是經(jīng)過實(shí)測(cè),速度仍然不能達(dá)到很快。處理完成的一次程序大約需要1ms左右。這顯然是不能被接受的。
所以我直接給電流采樣和解算砍掉了,因?yàn)橛懈械腇OC在生成指定Q軸電壓的情況下,已經(jīng)相當(dāng)準(zhǔn)確了。進(jìn)行電流解算閉環(huán)的作用主要是靠控制精確的Uq和Ud實(shí)現(xiàn)更高的動(dòng)態(tài)新能,這里因?yàn)樾阅懿辉试S,所以我就通過盡可能高的性能優(yōu)化提高控制頻率。這里,我使用了查表壓縮的方式,將實(shí)現(xiàn)SVPWM所需要的PWM占空比數(shù)據(jù)直接對(duì)應(yīng)到磁編碼器的原始數(shù)據(jù)上。并且根據(jù)SVPWM波形的相似性,僅僅存儲(chǔ)了一相波形的1/4。然后通過移相和對(duì)稱映射,就可以實(shí)現(xiàn)直接根據(jù)編碼器原始數(shù)據(jù)生成對(duì)應(yīng)需求的PWM占空比數(shù)據(jù)。最后實(shí)現(xiàn)的是僅僅使用8K的ROM,就實(shí)現(xiàn)了14位精度磁編碼器的SVPWM查表映射。這樣,多次的浮點(diǎn)類型計(jì)算就可以被壓縮到一次查表操作,然后只需要兩次左右的整數(shù)計(jì)算,即可得到三相PWM所需要的占空比數(shù)據(jù)。大大提高了控制的效率。最后的測(cè)試成績(jī)是,位置環(huán)控制頻率11Khz(理想設(shè)定的是16Khz,但是會(huì)被執(zhí)行延遲拖慢,所以還有優(yōu)化空間)。
二、速度模式的實(shí)現(xiàn)
速度控制其實(shí)是FOC無刷電機(jī)的一個(gè)極大優(yōu)勢(shì)之一,因?yàn)榭梢宰龅綐O快的響應(yīng)速度和非常準(zhǔn)確的速度控制。
調(diào)節(jié)速度環(huán)的時(shí)候,一直不滿足于速度躍變的響應(yīng)。便一直在思索如何能實(shí)現(xiàn)更高的性能。
經(jīng)過分析,發(fā)現(xiàn)提升性能的就只有一條路——提高控制頻率,提高控制頻率也就等于變相的提高了控制環(huán)路的帶寬。
此時(shí)整個(gè)控制系統(tǒng)對(duì)于一些微小擾動(dòng)的反應(yīng)就會(huì)更加靈敏,從而進(jìn)一步的提升反應(yīng)速度。
先介紹一些普通的FOC(帶有電流環(huán))的控制實(shí)現(xiàn)思路,普通的FOC的各級(jí)控制環(huán)路大多設(shè)置為電流環(huán)16Khz,速度環(huán)8Khz,位置環(huán)4Khz。這樣調(diào)整位置的時(shí)候
控制上是位置環(huán)串速度環(huán)串電流環(huán)。更多的干擾交給電流環(huán)進(jìn)行抵抗干擾。這樣上層的位置環(huán)和速度環(huán)的控制頻率就不需要這么高的。

但是我的STC-FOC Lite版本因?yàn)樗懔统杀締栴},去掉了電流環(huán)。所以并沒有辦法使用電流環(huán)進(jìn)行抗擾動(dòng)。而之前我設(shè)置的是速度模式是速度環(huán)4Khz,輸出給16Khz的電壓控制。
這樣并不能完全的發(fā)揮出控制性能來,但是此時(shí)事情又迎來了轉(zhuǎn)機(jī),我發(fā)現(xiàn)如果位置環(huán)工作在16Khz下,可以將位置模式的控制性提高的非常高的水準(zhǔn)。
所以,我就設(shè)計(jì)出了以下的控制結(jié)構(gòu)框圖:

整個(gè)系統(tǒng)只存在一個(gè)PID控制環(huán)節(jié),并且沒有電流解算過程,整個(gè)系統(tǒng)運(yùn)行效率非常的高。這樣,因?yàn)槿サ綦娏鳝h(huán)損失的抗干擾能力,從位置環(huán)的高帶寬這里就又找回來了。
并且因?yàn)槲业乃俣韧耆强坑?jì)算位置得到的,所以根本就沒有引入速度觀測(cè)的誤差和延遲。
體現(xiàn)在測(cè)速上就是抗干擾極強(qiáng)且不會(huì)受到負(fù)載擾動(dòng)。
三、舵機(jī)模式的實(shí)現(xiàn)
舵機(jī)模式應(yīng)該算是一種低成本的無刷舵機(jī)平替了,因?yàn)槭褂玫闹彬?qū),可以完美的避免因?yàn)橥獠渴芰^大造成的齒輪掃齒問題。
并且受到超過抵抗力矩的沖擊時(shí),還可以進(jìn)入堵轉(zhuǎn)保護(hù),有效保護(hù)電機(jī)。
并且速度極快,可以說沒有任何的無刷舵機(jī)能比這個(gè)更快了(因?yàn)槭侵彬?qū)方案,所以也會(huì)損失掉力量部分,算是一個(gè)小小的缺點(diǎn)吧,畢竟速度和力量總是不能同時(shí)擁有的)
不過,單純的舵機(jī)實(shí)現(xiàn),僅僅就是一個(gè)帶了限位的位置模式而已,如何讓這個(gè)舵機(jī)模式變得更好用呢?
我根據(jù)實(shí)際的應(yīng)用場(chǎng)景,做了個(gè)自動(dòng)尋找限位功能,并且?guī)в凶詣?dòng)回中。
主要效果就是:上電默認(rèn)為速度模式,發(fā)送模式切換指令到舵機(jī)模式,此時(shí)電機(jī)自行進(jìn)入不可打斷的位置模式尋找機(jī)械結(jié)構(gòu)限位,尋找完左右兩側(cè)的限位后,自動(dòng)計(jì)算左右限位的中點(diǎn),自行回正。

并且自動(dòng)將限位內(nèi)的范圍映射到-1000~+1000的數(shù)值上,供舵機(jī)模式使用。也就是說,如果限位大小更改,只要兩邊限位保持對(duì)稱,那么中點(diǎn)就不會(huì)變,而且數(shù)值范圍仍然是正負(fù)1000,不用重新計(jì)算匹配問題。
當(dāng)然,如果完全沒有限位,電機(jī)會(huì)在左轉(zhuǎn)半圈和右轉(zhuǎn)半圈后回正,此時(shí)可以為360度舵機(jī)。
下面講解一下原理實(shí)現(xiàn):
首先會(huì)記憶當(dāng)前絕對(duì)位置信息,然后分別向左和向右探測(cè)邊界,探測(cè)條件是堵轉(zhuǎn)保護(hù)被觸發(fā)。探測(cè)過程中,探測(cè)到一個(gè)邊界以后,會(huì)回到第一次記得絕對(duì)位置,然后再次向另一邊探測(cè)。探測(cè)出左右邊界以后,剩下就是使用位置模式實(shí)現(xiàn)了。
這部分程序是CAN處理舵機(jī)模式的數(shù)據(jù),對(duì)輸入數(shù)據(jù)疊加識(shí)別到邊界位置后,交給位置環(huán)處理。
03 CCD攝像頭
一、底層效率創(chuàng)新
雖然最后去賽場(chǎng)上的小車并沒有裝上,但是我仍然對(duì)CCD攝像頭進(jìn)行過一定程度的研究,這里也分享一下我的研究成果。
去比賽交流的時(shí)候,我也交流過,有發(fā)現(xiàn)使用兩個(gè)或者更多的攝像頭情況下,采樣使用for循環(huán),進(jìn)而有些擠占算法功能的運(yùn)行時(shí)間。
我的思路是使用PWM觸發(fā)ADC采樣,輸出一個(gè)PWM用于CCD的CLK信號(hào),然后使用PWM觸發(fā)ADC功能,對(duì)輸出AO端口進(jìn)行采樣,這樣可以保證曝光時(shí)間的穩(wěn)定,以及采樣間隔的穩(wěn)定。
同時(shí),使用內(nèi)存雙緩沖保證處理時(shí)間和采樣時(shí)間的不沖突,并且使用了M2M-DMA直接進(jìn)行內(nèi)存復(fù)制,減輕內(nèi)核處理壓力。
二、攝像頭的噪聲降低
采樣幀率變快以后,因?yàn)殡妷合噍^低幀率變低,也就更容易受到外界噪聲的干擾。此時(shí),縮短MCU和CCD芯片之間的采樣線長(zhǎng)度,就變得十分重要了。

我通過使用傳感器和STC芯片正反對(duì)貼的方式,將采樣線距離減小到了3mm左右,并且通過進(jìn)行模擬地和數(shù)字地分割。將干擾降到最低。最后,實(shí)現(xiàn)了無濾波手段下的900幀CCD圖像無噪點(diǎn)采樣(實(shí)際推薦300幀就很快了,太快了光線不足情況下會(huì)出現(xiàn)特征不明顯的問題)。

三、搜線算法
這里先給出我的一段函數(shù)程序:
可以通過這段程序返回一個(gè)float類型的位置,即一段數(shù)據(jù)中的統(tǒng)計(jì)峰值點(diǎn)。

通過配合對(duì)灰度圖像的梯度計(jì)算,就可以得到一個(gè)十分準(zhǔn)確的圖像跳變位置。如果前面的圖像穩(wěn)定性好,可以通過這個(gè)算法將原本CCD128的分辨率細(xì)分到接近2000的分辨率,并且沒有明顯的抖動(dòng)。

四、二值化閾值迭代算法
上面的搜線算法其實(shí)只適合進(jìn)行跳變點(diǎn)跟蹤,并且是通過灰度值進(jìn)行直接跟蹤。如果想要使用二值化,那么閾值確定就是一個(gè)不小的問題。這部分我研究過大家的開源,一般是分為兩個(gè)步驟,首先是對(duì)沒有用的干擾區(qū)域進(jìn)行裁剪。然后是計(jì)算整體的平均值,通過平均值乘以一個(gè)系數(shù)得到一個(gè)動(dòng)態(tài)的閾值。
不過這里我有一個(gè)計(jì)算量更小一些的方法,因?yàn)橘惖乐行目偸前咨摹K钥梢韵葘?duì)賽道中心的幾個(gè)像素進(jìn)行平均值,直接乘以0.8或者0.5作為二值化閾值。然后通過二值化后的圖像進(jìn)行搜線。如果能同時(shí)搜到賽道的兩個(gè)邊界。則通過這兩個(gè)邊界計(jì)算出賽道中心,再次進(jìn)行第一個(gè)平均值取閾值的步驟。如此循環(huán)進(jìn)行迭代,只要亮度變化的劇烈程度不至于在兩幀之間造成完全的搜索失誤,便可以完成更加簡(jiǎn)便的動(dòng)態(tài)閾值計(jì)算。
04 車模結(jié)構(gòu)
這一部分主要是對(duì)車模結(jié)構(gòu)中,有意思部分的一些展示,我并非機(jī)械設(shè)計(jì)專業(yè)。所設(shè)計(jì)的這些結(jié)構(gòu)大都是參考淘寶的玩具車,或者網(wǎng)上一些成熟設(shè)計(jì)。
一、平置舵機(jī)
不同于見到的豎置舵機(jī)結(jié)構(gòu),我的平置舵機(jī)可以在一定程度上給計(jì)算帶來方便,不需要進(jìn)行標(biāo)定,轉(zhuǎn)動(dòng)的角度就可以代表實(shí)際的車輪中心轉(zhuǎn)向角度。因?yàn)樵谶M(jìn)行車身整體控制算法的解算時(shí),可以直接通過控制舵機(jī)的角度來反饋解算。

二、攝像頭聯(lián)動(dòng)結(jié)構(gòu)
這部分雖然最后被我拆下了,但是仍然是一個(gè)相當(dāng)有創(chuàng)意的方案,因?yàn)檫@個(gè)方式讓舵機(jī)可以聯(lián)動(dòng)攝像頭進(jìn)行轉(zhuǎn)動(dòng),從硬件結(jié)構(gòu)上就避免掉了直道和彎道的區(qū)別。使得在進(jìn)行拐彎的時(shí)候并不會(huì)丟線。

三、前懸掛
這個(gè)主要是用來給轉(zhuǎn)彎提供一定的車身側(cè)傾能力,以防過大的轉(zhuǎn)向慣量側(cè)向翻車問題。并且可以提高在一定的顛簸下。后輪保持持續(xù)動(dòng)力輸出的能力。

四、隱藏走線槽
隱藏走線只能算是美觀的添加了。這種結(jié)構(gòu),通過在車模結(jié)構(gòu)上劃分出線槽,通過塞入電線以后通過502進(jìn)行固定,可以極大提高空間利用性。

05 慣性導(dǎo)航
一、為啥要使用慣性導(dǎo)航
最直接的原因就是寫元素有些過于麻煩了,需要使用過多的標(biāo)志和判斷。當(dāng)時(shí)調(diào)攝像頭已經(jīng)只剩圓環(huán)元素了,但是我對(duì)于實(shí)際的循跡路徑仍然不是很滿意。這時(shí)候我就開始想應(yīng)該怎樣去給出最優(yōu)的路徑?很顯然,太麻煩的算法我一時(shí)半會(huì)也理解不了,這時(shí)候我就想到了機(jī)械臂的拖動(dòng)示教。有了想法,馬上就試。當(dāng)天晚上就完成了一個(gè)簡(jiǎn)單的路徑記憶功能,并且可以擁有一定的偏差校準(zhǔn)功能。此時(shí),我就像是發(fā)現(xiàn)了新世界的大門。開始著手對(duì)慣導(dǎo)進(jìn)行完善。

二、精度問題
最開始,路徑的記憶并不是非常準(zhǔn)確,只是能大概的看出來?yè)碛型蟿?dòng)示教過的路徑。這里如果不考慮打滑問題,我總結(jié)了幾點(diǎn)在慣導(dǎo)中的精度問題。
首先是對(duì)于四輪車模,如果記憶的時(shí)候,陀螺儀放置的位置跟舵機(jī)位置不同。就需要在復(fù)現(xiàn)路徑的時(shí)候?qū)@段長(zhǎng)度進(jìn)行補(bǔ)償,方便舵機(jī)鎖定到正確的航向角。
還有就是利用編碼器進(jìn)行記憶功能的時(shí)候,我使用的是按距離觸發(fā)。之前是編碼器800個(gè)脈沖(大約1cm)觸發(fā)一次路徑存儲(chǔ)或者路徑復(fù)現(xiàn)。每次觸發(fā)的時(shí)候就直接將編碼器記憶清零了。但是因?yàn)橛|發(fā)進(jìn)入800個(gè)脈沖的時(shí)候,此時(shí)脈沖數(shù)可能會(huì)多出800一些(定時(shí)觸發(fā)檢測(cè))。所以會(huì)導(dǎo)致累計(jì)的長(zhǎng)度逐漸出現(xiàn)偏差,所以這里我使用了“add_pos-=800;”來保證每次的觸發(fā)都減去觸發(fā)所需的固定距離,從而不會(huì)產(chǎn)生這一部分誤差。
三、打滑問題
慣性導(dǎo)航的前提就是位置和方向要足夠準(zhǔn)確,不然無法復(fù)現(xiàn)出準(zhǔn)確的路徑。航向角的準(zhǔn)確可以通過使用自身噪聲小,精度高的陀螺儀實(shí)現(xiàn)。但是距離上的準(zhǔn)確,則要通過進(jìn)行打滑檢測(cè)和補(bǔ)償完成。在出發(fā)去比賽的前一天,其實(shí)我已經(jīng)完成了打滑檢測(cè)功能的實(shí)現(xiàn)。只不過,因?yàn)檠a(bǔ)償還沒有做好,所以就不能抵抗賽道中的打滑問題。也就限制了慣性導(dǎo)航能發(fā)揮的最大速度。

其實(shí)精確的位置也可以通過使用鼠標(biāo)的光電傳感器來讀取,這樣就可以完全避免掉驅(qū)動(dòng)輪測(cè)速中,打滑問題的影響了(相當(dāng)于獨(dú)立的測(cè)速輪)。
而我的打滑檢測(cè)功能,其實(shí)是使用輪邊編碼器測(cè)量加速度和IMU測(cè)量加速度進(jìn)行檢測(cè),當(dāng)兩邊數(shù)據(jù)不一致的時(shí)候,就可以判定出現(xiàn)了打滑(這部分已經(jīng)實(shí)現(xiàn)了)。
然后是通過不打滑的時(shí)候,使用編碼器的速度補(bǔ)償IMU積分出來的速度。在打滑的時(shí)候,通過短時(shí)間的使用IMU積分的速度數(shù)據(jù)進(jìn)行速度數(shù)據(jù)修正。進(jìn)而完成位置數(shù)據(jù)的修正。
06 制作成本
一、高成本現(xiàn)狀
雖然很多車友對(duì)智能車擁有異于常人的熱愛,甚至愿意自己掏錢來進(jìn)行比賽。但是智能車過高的試錯(cuò)成本仍然讓那些經(jīng)費(fèi)不怎么充足的隊(duì)伍變得困難。但其實(shí)只要選擇合理的方案進(jìn)行自制,成本就不會(huì)那么令人難以接受了。
以下我將從較貴或者容易燒毀的部分,給出我的一些解決方案。

二、成本解決方案
首先需要改進(jìn)的是驅(qū)動(dòng)。據(jù)我了解,大家都選擇的是DRV8701E+小封裝MOS的形式。整體下來成本接近40。并且DRV8701稍微貴一些,炸驅(qū)動(dòng)的時(shí)候有可能會(huì)連8701一起擊穿。從而造成極大的試錯(cuò)成本。
我提供的方式是:EG2132(0.23RMB)+翻新IRLR7843(0.32RMB)。因?yàn)檫@個(gè)MOS的Ciss比較小,所以可以用較小的驅(qū)動(dòng)電阻來提高驅(qū)動(dòng)的性能。驅(qū)動(dòng)一個(gè)電機(jī),核算成本就只需要4塊錢。并且這個(gè)MOS擁有161A的驅(qū)動(dòng)能力,內(nèi)阻也更小,發(fā)熱也會(huì)更小。這樣就算不小心給驅(qū)動(dòng)燒掉了,也不會(huì)心疼。
MOS選擇上,也不用覺得翻新不好,只要是全測(cè)的。你要這么想,這都用過這么長(zhǎng)時(shí)間了,這還能用,這不是證明了其穩(wěn)定性和體質(zhì)更好嘛?這里我推薦去淘寶上的三極管之家買MOS,我經(jīng)常在他們家買MOS,至今還沒出現(xiàn)過問題,算是可信。
DCDC電源方面,我更推薦XL1509的方案,因?yàn)檫@個(gè)芯片比較耐造,可以抵抗很多過流,電壓尖峰這種情況,不容易壞。
焊接上,我推薦大家使用低溫錫膏+空氣炸鍋+三防漆的形式進(jìn)行。首先是空氣炸鍋,一般市場(chǎng)上不能調(diào)溫度最便宜的版本在50元左右,測(cè)試其內(nèi)部溫度可以在200°C恒溫,使用低溫錫膏138°C的熔點(diǎn)正合適。并且可以完美適合正反兩面焊接,設(shè)計(jì)PCB的時(shí)候也不用擔(dān)心兩面不好焊接。打好錫膏塞空氣炸鍋里炸10分鐘,拿出來基本就能用。驅(qū)動(dòng)類的可以對(duì)接口和按鍵做一下保護(hù)后,用三防漆噴涂一遍,這樣可以保證不被進(jìn)水干擾,而且穩(wěn)定性大大提高。
三、電機(jī)保護(hù)策略
大家的電機(jī)其實(shí)也容易經(jīng)常因?yàn)槎罗D(zhuǎn)燒掉。所以我這里給出一種不使用電流傳感器的堵轉(zhuǎn)保護(hù)方案。
我的這個(gè)堵轉(zhuǎn)保護(hù)方法,不僅適用于FOC電機(jī),只要滿足電機(jī)帶有位置傳感器,直流有刷電機(jī)也可以使用。

1、保護(hù)原理
首先從原理講起:
堵轉(zhuǎn)保護(hù),顧名思義就是在電機(jī)堵轉(zhuǎn)狀態(tài)的時(shí)候進(jìn)行保護(hù),最主要的就是如何正確的識(shí)別堵轉(zhuǎn)狀態(tài)。識(shí)別到了堵轉(zhuǎn)狀態(tài)以后,則可以進(jìn)行保護(hù)。
這里的保護(hù)分為兩種,一種是直接斷電保護(hù),但是這樣往往會(huì)直接失去力矩,不能自動(dòng)的從堵轉(zhuǎn)狀態(tài)退出。
所以我更建議使用第二種保護(hù)方式,也就是降低電壓進(jìn)行保護(hù)。因?yàn)闊o論是無刷電機(jī)還是有刷電機(jī),堵轉(zhuǎn)的時(shí)候都可以近似于電壓直接接在繞組線圈上。
此時(shí)的物理模型就是電阻發(fā)熱模型,所以只要將電壓降低到合適的值,便可以保持一定力矩的同時(shí)保護(hù)電機(jī)繞組不被過大的電流燒毀。
說完了保護(hù),接下來說最重要的堵轉(zhuǎn)識(shí)別。
2、電機(jī)啟動(dòng)
這里就不得不提及一下堵轉(zhuǎn)識(shí)別中最容易出問題的點(diǎn)了——“電機(jī)啟動(dòng)”
電機(jī)啟動(dòng)的時(shí)候,無論是有刷電機(jī)還是無刷電機(jī),電流都會(huì)擁有一個(gè)很大的脈沖階躍值,這個(gè)地方與堵轉(zhuǎn)的時(shí)候非常類似。
那么我們要如何區(qū)分呢?
我的方案中,使用的是延遲判別方式,因?yàn)槎罗D(zhuǎn)情況下,電流值會(huì)一直上升,而啟動(dòng)瞬間,電流只會(huì)短暫的超過額定值一會(huì)。
允許電機(jī)中存在短時(shí)脈沖大電流,即可成功解決起步和堵轉(zhuǎn)保護(hù)沖突的問題。
這里我的堵轉(zhuǎn)進(jìn)入邏輯是:如果位置偏差大于400(計(jì)算速度的理想位置和實(shí)際位置偏差),且速度小于某個(gè)數(shù)(低速狀態(tài)),則電流異常計(jì)數(shù)(I_Error_Cnt)自加,自加到I_Error_Dat(上限閾值)后停止
程序內(nèi),判斷電流異常計(jì)數(shù)到達(dá)設(shè)定最大值后,進(jìn)入堵轉(zhuǎn)保護(hù)。

堵轉(zhuǎn)退出邏輯是:如果速度高于某個(gè)數(shù)(高速狀態(tài)),或者電機(jī)的設(shè)定位置和實(shí)際位置偏差小于400(可以判定為沒有堵轉(zhuǎn)),則清零電流異常計(jì)數(shù),退出堵轉(zhuǎn)模式。
而進(jìn)入堵轉(zhuǎn)以后,對(duì)PID部分的輸出,采用雙閾值的方式進(jìn)行保護(hù),即檢測(cè)到PID輸出值超過某個(gè)大數(shù)后,才切換輸出保護(hù)為某個(gè)小數(shù)。
因?yàn)槎罗D(zhuǎn)的時(shí)候PID始終不能調(diào)節(jié)成功,所以輸出會(huì)一直為最大值,這時(shí)候堵轉(zhuǎn)保護(hù)便可以一直生效了。
以上就是我對(duì)電機(jī)堵轉(zhuǎn)保護(hù)的一些理解,希望對(duì)大家有所幫助。我的這個(gè)算法在我調(diào)試以來,從未出現(xiàn)過因?yàn)槎伦龤?qū)動(dòng)或者電機(jī)的情況,已經(jīng)相當(dāng)穩(wěn)定了。
07 差速研究
一、有刷電機(jī)差速性能現(xiàn)狀
這個(gè)其實(shí)是比賽前才突發(fā)奇想進(jìn)行研究,經(jīng)過實(shí)際測(cè)試確實(shí)效果比較好,故也來分享一下這個(gè)發(fā)現(xiàn)。
首先是我發(fā)現(xiàn)大家的拐彎多少的都有點(diǎn)難調(diào),不是轉(zhuǎn)彎過度就是轉(zhuǎn)彎不足。差速中的理論模型和實(shí)際中感覺總有一些差池。這部分我總結(jié)了幾個(gè)原因:首先是有刷電機(jī)響應(yīng)速度沒有那么快,從一個(gè)速度調(diào)整到另一個(gè)速度基本需要100ms的時(shí)間,而舵機(jī)調(diào)整時(shí)間就比較快了,基本是直接就能調(diào)整過去(零點(diǎn)幾秒甚至零點(diǎn)零幾秒,相比有刷電機(jī)的調(diào)整時(shí)間可以忽略不計(jì))。所以前后輪此時(shí)出現(xiàn)了不一致的情況,也就會(huì)出現(xiàn)前后輪各跑各的。

因?yàn)橛兴㈦姍C(jī)本身允許一定程度的速度差,但是代價(jià)就是會(huì)造成輕微的堵轉(zhuǎn),進(jìn)而導(dǎo)致電機(jī)線圈大量發(fā)熱。以至于大家的小車跑完幾圈下來電機(jī)都嘎嘎燙。
但是我這個(gè)差速可以保證電機(jī)在各種劇烈拐彎中響應(yīng)迅速,并且可以使得電機(jī)不出現(xiàn)劇烈發(fā)燙的情況。因?yàn)槭强窟\(yùn)行中插入空轉(zhuǎn)進(jìn)行自然的差速。所以我也稱我這個(gè)差速方法為“自然差速”。
二、解決方案
基本原理:

四輪小車通過舵機(jī)轉(zhuǎn)彎的時(shí)候,因?yàn)榍拜喌膶?dǎo)向作用,會(huì)使得后輪發(fā)生速度不一致的情況。我們稱這種現(xiàn)象為差速。
在機(jī)械差速器的車輛中,因?yàn)椴钏倨鞯慕Y(jié)構(gòu),可以允許左右輪子輸出不同的速度,從而順利的完成轉(zhuǎn)彎。
但是使用雙電機(jī)驅(qū)動(dòng)的后輪并沒有這種機(jī)械結(jié)構(gòu),直接控制兩輪進(jìn)行差速的話,還會(huì)出現(xiàn)因?yàn)椴钏俨粚?duì)造成的漂移(過度)和轉(zhuǎn)向不足(欠調(diào))。所以,這里創(chuàng)新的使用三段式方式驅(qū)動(dòng)直流有刷電機(jī),使得電機(jī)包含三個(gè)狀態(tài):驅(qū)動(dòng),剎車,空轉(zhuǎn)。
通過在原本的剎車電平中插入空轉(zhuǎn)部分,則允許了差速存在,通過調(diào)整這個(gè)比例,則可以完成直道和彎道的差速調(diào)整。

實(shí)測(cè)結(jié)果:通過使用自然差速和不帶自然差速進(jìn)行堵轉(zhuǎn)。可以得到不帶自然差速時(shí)堵轉(zhuǎn)為0.5A,帶自然差速堵轉(zhuǎn)僅為0.32A。但是此時(shí)電機(jī)可以獲得同樣的驅(qū)動(dòng)能力,電流下降了也就代表電機(jī)發(fā)熱可以大大的降低。
