|
整個(gè)早上不在狀態(tài),沒(méi)怎么用心,只是大致的再看了一遍PID的資料,再吃的透點(diǎn)。(之后趕忙洗澡桑拿略……)
下午工作繼續(xù)!揍起來(lái)!揍起來(lái)!
對(duì)于PID,我真心沒(méi)有什么經(jīng)驗(yàn),只是之前看過(guò),現(xiàn)在再看了幾遍而已,實(shí)際上,我并沒(méi)有用上這個(gè)。PID的最基本的運(yùn)用是用來(lái)控制溫度,但是,我們現(xiàn)在是讓它來(lái)控制速度。我開(kāi)始寫(xiě)的時(shí)候是這樣構(gòu)思,我覺(jué)得,我要用到定時(shí)器,那么我讓每次捕獲到上升沿的時(shí)候,我讀出此時(shí)定時(shí)器的計(jì)數(shù),然后重新清零就行了。這樣,我就可以連續(xù)的輸出當(dāng)前的速度了。但是,寬哥的話讓我馬上意識(shí)到了錯(cuò)誤,因?yàn)檫@樣的話,輸出的是瞬時(shí)的速度,很不準(zhǔn)確,我應(yīng)該用上平均速度,但是,我絕對(duì)不能設(shè)定太長(zhǎng)的時(shí)間。短點(diǎn)?1ms,這肯定不行!長(zhǎng)點(diǎn)1s,這樣也不行(1s鐘可能你的運(yùn)動(dòng)都結(jié)束了)!
正待我激情的敲著的時(shí)候,帥東有屁顛屁顛的過(guò)來(lái)讓我?guī)兔纯催@個(gè)手指運(yùn)轉(zhuǎn)的怎么樣(舵機(jī)……),我下上了昨天的那個(gè)程序,但是,很詭異!一開(kāi)始它先轉(zhuǎn)到了我想要的角度,但是,之后它并沒(méi)有怎么大的轉(zhuǎn)動(dòng)了,大致上,它僅僅轉(zhuǎn)了一小點(diǎn)就馬上跳回去了,更簡(jiǎn)單的說(shuō),它僅僅執(zhí)行了一半的的主函數(shù)!而且每次跳回去的時(shí)候,下載線邊上的LED燈都跳了一下(當(dāng)時(shí)我并不知道為什么)!我擦類(lèi)!它要逆天?!
昨天還好好的!今天咋不行了!它敢罷工!不行啊!我先是檢查了一下連線,完全正常,我又檢查了一下程序,也沒(méi)有錯(cuò)誤!!延時(shí)的時(shí)間也很足!在我苦無(wú)辦法的時(shí)候,豪鍋和寬鍋又讓我看看一個(gè)什么玩意兒能不能用(他們說(shuō),我做著。也花了沒(méi)多久)。寬哥很無(wú)奈的過(guò)來(lái)看看,也就是幾分鐘吧,他就很裝13的說(shuō):“SO EASY啊!SO EASY啊!”臥槽!你倒是說(shuō)啊,親!“STM32輸出的電流都很小,不應(yīng)該用這個(gè)供電,你應(yīng)該另外找5V電源,單獨(dú)供電。你沒(méi)有看到燈閃了嗎?燈閃了就表示程序復(fù)位了!”MY GAGA!還有這玩意兒!長(zhǎng)見(jiàn)識(shí)了長(zhǎng)見(jiàn)識(shí)了!馬上供電起來(lái),成功!(我從儀器上,可以很清楚的看到電流的變化)
好吧!豪鍋乘機(jī)又給了我很多舵機(jī),讓我逐一檢測(cè)這些電機(jī)是不是能用的……(你們贏了)
工作還要繼續(xù)!回歸正題!
好的,我大概是先設(shè)了400ms,我覺(jué)得取個(gè)中間值先試試,然后我先設(shè)了KP一個(gè)值,KI,和KD我都沒(méi)有設(shè)值,我想先看看效果,然后再慢慢附上值。然后一點(diǎn)一點(diǎn)調(diào)節(jié),調(diào)參數(shù)的過(guò)程……(苦逼啊!好吧,不帶抱怨的。)程序大概就那樣,我要用的僅僅是最后一句而已,并且改動(dòng)一下即可。現(xiàn)在想想似乎有點(diǎn)輕松,但是調(diào)試的過(guò)程絕對(duì)是不輕松啊!
大概檢查了很久,然后才搞起!才調(diào)了10分鐘不到……
但是在這十分鐘,我貌似看到了一點(diǎn)希望!加油!明天還有最后一天!
(抓緊吧……寬鍋說(shuō)如果我不干完,明天晚上就把我關(guān)在實(shí)驗(yàn)室里頭,大后天再開(kāi)門(mén)……臥槽!夠狠……你贏了……說(shuō)實(shí)話,我也想成功的用PID調(diào)試某個(gè)關(guān)節(jié)的速度。看看吧!明天會(huì)發(fā)生點(diǎn)什么……)
(工作環(huán)境,不期待網(wǎng)絡(luò),只求成功)
今天是我年前能調(diào)試機(jī)械臂的最后一天了,我很想在這一天取得重大的突破。
早早起床,趕緊做起來(lái),再看看昨天的程序,總感覺(jué)自己寫(xiě)的很不對(duì)勁。又試了試,這回發(fā)現(xiàn)錯(cuò)誤很大!我發(fā)現(xiàn)光電編碼器的讀數(shù)又不是很準(zhǔn)確了!不應(yīng)該啊!我把最原始的程序下進(jìn)去,試了試,還是很不穩(wěn)定。我把電源改為12V供電,沒(méi)問(wèn)題!但是24V就很不穩(wěn)定!
這可真心是不科學(xué)的事情太多了!
但是我還是接著試,大概在試了半個(gè)多小時(shí),它能正常計(jì)數(shù)了!介個(gè)……要不要這么坑啊!難道,太久不用了就不中用了?!難道還得訓(xùn)練一下?!(我表示很無(wú)法理解啊!)
小問(wèn)題解決了,但是,我的初衷是想試試我寫(xiě)的PID的程序能不能用。揍起來(lái)!
但是,我發(fā)現(xiàn),我無(wú)論調(diào)目標(biāo)速度為多少它的實(shí)際運(yùn)動(dòng)的速度都是最大值!我無(wú)法降低它的速度!我改動(dòng)了程序,我把速度一開(kāi)始就定義在程序里頭,不另外通過(guò)串口改變速度了。但是,實(shí)際上情況還是那樣的,沒(méi)什么大的改觀。
不行了!我看了N遍了,感覺(jué)程序確實(shí)是沒(méi)什么好改動(dòng)的地方了!我又讓崔屌幫忙看看,好吧,我承認(rèn),他之前沒(méi)怎么學(xué)過(guò)這個(gè),應(yīng)該也有點(diǎn)吃力的吧。那就換寬鍋吧!
寬鍋真心是千呼萬(wàn)喚始出來(lái),請(qǐng)他幫個(gè)忙,真心難!寬鍋跟我解釋了很多關(guān)于PID的用法,我也給他看了程序,他也覺(jué)得一般般。但是,這些不是看看就能解決問(wèn)題的,要調(diào)各種參數(shù)。寬鍋跟我說(shuō),讓我好好考慮KP這個(gè)值,因?yàn)檫@個(gè)比較關(guān)鍵,然后便是讓我好好的改參數(shù)……
臥槽……這不說(shuō)了跟沒(méi)說(shuō)一樣嗎……
好吧,我狠命改!我把值換了很多種情況,也不斷改動(dòng)自己目標(biāo)速度,也不行!逆天啊!一直胳膊犯得著這么蛋疼嗎?!
大概改了許久吧,情況也不見(jiàn)好轉(zhuǎn)。黃導(dǎo)要忙著把機(jī)械臂裝上身子上去,而且還要裝上手指(其實(shí)我看好這一版)好吧,可能這是注定的結(jié)局吧。(PID的參數(shù)確實(shí)不好調(diào),一個(gè)關(guān)節(jié)就需要一段時(shí)間,更不用說(shuō)一直胳膊了……我用的是湊數(shù)法,所以很費(fèi)時(shí)間……)
我在之后并沒(méi)有很足的動(dòng)力去改動(dòng)它了,我先是把這幾天的成果給寬鍋(寬鍋幫我接著調(diào),其實(shí)是我?guī)蛯掑佅却蛄藥滋斓南率帧N矣职丫啊什么的都整好,一筐全給了寬鍋……好吧,寬鍋,就交給你了!!
(整理完之后的一筐必要用品)
(在我整理東西的時(shí)候,我突然不想走了,雖然我只干了這么幾天吧,但是我確實(shí)充實(shí)了自己的生活,也許,我不能像各位朋友那樣看著電視,玩玩電腦,聽(tīng)聽(tīng)音樂(lè),逛逛小街,亦或打打零工,跟對(duì)象手挽手啊什么的,但是我確實(shí)已經(jīng)很知足了。嗯哈!)
(PID是很簡(jiǎn)單,但又是難度非常大的算法,幾乎很多工業(yè)上都會(huì)用上它!它的用途絕對(duì)是廣泛的!這個(gè)確實(shí)需要掌握!我以后可以試著用它來(lái)控制一下溫度!我要學(xué)習(xí)的東西還有很多,必須學(xué)扎實(shí)咯!相比暑假,我確實(shí)提升了不少。好吧,路還很長(zhǎng),慢慢走~~)
|
|