熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2016-2-4 11:52
正文摘要:本帖最后由 寧?kù)o清幽 于 2016-2-5 11:24 編輯 組裝曬圖 來(lái)幾發(fā)小車照片,曬一曬。 小車主控板正面照片 寫(xiě)好程序編譯,在左側(cè)選好單片機(jī)型號(hào),串口號(hào),用的是內(nèi)部時(shí)鐘,填好IRC頻率,為了方便通信嘛, ... |
值得學(xué)習(xí)學(xué)習(xí),我也在做小車,希望最后能夠成功 |
不錯(cuò)。。!值得學(xué)習(xí)! |
樓主能否給我一份具體的資料啊 ? |
厲害,大神,請(qǐng)接下我的膝蓋![]() |
進(jìn)階實(shí)驗(yàn) 2. PID調(diào)試 關(guān)于小車PID的調(diào)試,也在網(wǎng)上找了好多資料,也看了喵大的角度環(huán)視頻,調(diào)試經(jīng)驗(yàn)有從網(wǎng)上學(xué)的也有些自己簡(jiǎn)單的體會(huì)。 原來(lái)沒(méi)接觸的時(shí)候也是一頭霧水(畢竟不是學(xué)自控的孩子),后來(lái)在網(wǎng)上搜了一些資料,對(duì)這些基本概念也有了大概的了解,下面說(shuō)一下我對(duì)PID的了解吧!1)我對(duì)PID的理解:PID分增量式和位置式,增量式的計(jì)算結(jié)果是在上一次的控制量基礎(chǔ)上需要增加的量,或減少的量;位置式的每一次計(jì)算都是一個(gè)新的控制量的大小,而不是增加量,也不知道這說(shuō)對(duì)不對(duì)(表達(dá)能力有限 ![]() ![]() (2)積分運(yùn)算:對(duì)偏差進(jìn)行積分,就是把偏差進(jìn)行累加,偏差和=偏差和+偏差*積分系數(shù);只要出現(xiàn)偏差,通過(guò)累加就會(huì)使偏差和變大,我們給電機(jī)的電壓就要大,來(lái)使小車趨向平衡,直到偏差和為零的時(shí)候,積分這一部分對(duì)電壓控制沒(méi)有貢獻(xiàn)。相對(duì)于比例參數(shù)來(lái)說(shuō),積分系數(shù)是很小的,但積分系數(shù)過(guò)小累加和變化不明顯,控制也就不明顯,過(guò)大,即出現(xiàn)了一個(gè)很小的誤差,通過(guò)積分系數(shù)放大了好多,累加和也會(huì)變得很大,使系統(tǒng)不穩(wěn)定。 (3)微分控制:就是偏差對(duì)時(shí)間求導(dǎo),得到的是偏差的變化率。對(duì)于小車的角度環(huán)來(lái)說(shuō)偏差d=C-f(t);C就是我們目標(biāo)角度,是一個(gè)恒定值,一般是0,f(t)是當(dāng)前的角度值,偏差d對(duì)時(shí)間求導(dǎo)=常數(shù)C對(duì)時(shí)間求導(dǎo)+f(t)對(duì)時(shí)間求導(dǎo),常數(shù)的導(dǎo)數(shù)是0,所以偏差d對(duì)時(shí)間求導(dǎo)相當(dāng)于角度對(duì)時(shí)間求導(dǎo),得到的是角速度,角速度可以直接從陀螺儀上面獲取,就不用我們運(yùn)算了,不過(guò)我們要注意角速度的正負(fù)號(hào)。角速度的正負(fù)號(hào)代表小車像前還是向后倒下了,可以自己規(guī)定。角速度的絕對(duì)值代表小車倒下的速度,小車倒下的速度越快,我們就要給小車電機(jī)更大的電壓,來(lái)抵消小車倒下,微分控制起到加快調(diào)節(jié)的作用。微分控制量=角速度*微分系數(shù),我們把角速度乘以一個(gè)系數(shù)(也就是微分系數(shù))就得到微分控制部分的控制量的大小了。微分系數(shù)太小也不能抵消小車的倒下,太大了會(huì)使小車小幅度高頻震蕩,容易燒驅(qū)動(dòng)。 以上只是我的簡(jiǎn)單理解,有什么不對(duì)或者不全的地方還請(qǐng)大家指出,共同進(jìn)步 ![]() 2)調(diào)試 關(guān)于平衡車的控制,用到了兩個(gè)環(huán)的控制,分別是角度環(huán)和速度環(huán),角度環(huán)用PD,速度環(huán)用PI,在只有角度環(huán)的時(shí)候我也用過(guò)PID,以可以達(dá)到平衡,但是由于沒(méi)有速度環(huán),小車不一定跑到哪了。 寫(xiě)一下主要的公式: 角度環(huán):角度偏差d_Angle=SetAngle-CarAngle; AngleCtrlOut=d_Angle*P_Angle+w*D_Angle; w是角速度,在這之前還要對(duì)小車的角度進(jìn)行濾波,前面的實(shí)驗(yàn)有過(guò)介紹,AngleCtrlOut是角度環(huán)的PWM輸出。 速度環(huán):速度偏差d_Speed=SetSpeed-CarSeed; Car_I=Car_I+d_Speed*I_Speed; SpeedCtrlOut=d_Speed*P_Speed+CarI; SpeedCtrlOut是速度環(huán)的PWM輸出。這些系數(shù)與單片機(jī)PWM的最大量有關(guān)系,比如單片機(jī)PWM的最大量是10000;在調(diào)角度環(huán)的時(shí)候一般是先讓微分系數(shù)D_Angle=0,先只調(diào)比例系數(shù),這樣AngleCtrlOut=d_Angle*P_Angl;當(dāng)偏差角度 d_Angle=10度,比例系數(shù)P_Angle=10,AngleCtrlOut才=100,小車PWM輸出占PWM最大量的1%,理論上小車電機(jī)的轉(zhuǎn)速為最快轉(zhuǎn)速的1%(實(shí)際上達(dá)不到,也有可能死區(qū)電壓都沒(méi)過(guò)),這樣小車沒(méi)有足夠的加速度來(lái)克服重力使車達(dá)到平衡。比例系數(shù)P_Angle還需要調(diào)大。但是當(dāng)單片機(jī)PWM的最大量是256的時(shí)候,偏差角度 d_Angle=10度,比例系數(shù)P_Angle=10的時(shí)候,AngleCtrlOut還是=100,約占PWM最大量的39%,這個(gè)系數(shù)可能還靠點(diǎn)譜,所以說(shuō)這些系數(shù)PWM最大量是有關(guān)系的。 調(diào)試這些系數(shù)的過(guò)程:先調(diào)角度環(huán),再速度環(huán)。關(guān)于反饋類型說(shuō)的文鄒鄒點(diǎn):角度環(huán)是負(fù)反饋,速度環(huán)是正反饋。說(shuō)的通俗點(diǎn):角度環(huán)中,偏差角度變大時(shí),小車要控制偏差角度減小,就是讓車輪朝著倒下的方向加速轉(zhuǎn)。速度環(huán)中,速度變大,我們得給小車更快的速度,讓小車追上自己,保持平衡。在調(diào)試的時(shí)候,可以分別調(diào)一下兩個(gè)環(huán),注意參數(shù)的正負(fù),保證每個(gè)環(huán),都是使車輪朝向小車傾斜的方向轉(zhuǎn)就行了,在只有速度環(huán)時(shí),手動(dòng)轉(zhuǎn)一個(gè)車輪,另一個(gè)車輪會(huì)慢慢轉(zhuǎn)起來(lái),最終兩個(gè)車輪越轉(zhuǎn)越快。 調(diào)角度環(huán)時(shí),一般是先讓微分系數(shù)D_Angle=0,先只調(diào)比例系數(shù),調(diào)到能使小車站起來(lái),在平衡位置來(lái)回的擺動(dòng),再稍微增加比例系數(shù),加入微分系數(shù)D_Angle,微分系數(shù)D_Angle從小到大。調(diào)到小車能夠比較穩(wěn)定的平衡,這時(shí)候,你輕推小車,小車會(huì)朝著一個(gè)方向加速跑過(guò)去,直至倒下。這個(gè)也是正常的,當(dāng)然小車能接近平衡跑的越遠(yuǎn)說(shuō)明參數(shù)越好,加入速度環(huán)可以解決這個(gè)問(wèn)題,如果不加速度環(huán),在角度環(huán)里面加入對(duì)偏差的積分(累加偏差),也能使小車平衡。只是對(duì)小車的速度沒(méi)法控制。 調(diào)速度環(huán)時(shí),一般是先讓積分系數(shù)I_Speed=0,先只調(diào)比例系數(shù),由0開(kāi)始增加,調(diào)到你推一下小車,小車能有足夠的加速度來(lái)使小車保持平衡,這時(shí)小車新的平衡位置不再原地了,感覺(jué)小車能夠很好的保持平衡之后,這時(shí)再加速度積分,加入速度積分后,小車會(huì)趨向于原地平衡 我的理解就是這些,有什么不對(duì)或者不全的還請(qǐng)大家指出來(lái),一塊討論共同學(xué)習(xí)哈。我自己感覺(jué)對(duì)于車速控制的理解還不夠深,對(duì)于兩個(gè)車輪速度分別控制還有待加強(qiáng)。 挺感謝喵大的這個(gè)平臺(tái)的,給我提供了學(xué)習(xí)平衡車基礎(chǔ),有機(jī)會(huì)讓我這樣的平衡車入門級(jí)玩家能從頭到尾深刻了解平衡車的原理。給這個(gè)網(wǎng)站平臺(tái)點(diǎn)個(gè)贊,給喵大的開(kāi)源精神點(diǎn)個(gè)贊,給喵大的熱心腸點(diǎn)個(gè)贊。 ![]() ![]() ![]() 本想弄點(diǎn)圖片的,電池,又讓我弄過(guò)放了,廢了,平衡充接電池的時(shí)候,接反了一下,燈不亮了,平衡沖也出問(wèn)題了。唉我勒個(gè)去,我也是被自己整無(wú)語(yǔ)了。在下個(gè)實(shí)驗(yàn)中在上圖片吧。 |
騰飛的龍 發(fā)表于 2016-3-8 10:37 啥高手,參數(shù)調(diào)不好 ![]() |
真是高手,佩服啊,長(zhǎng)見(jiàn)識(shí)啦,謝謝分享 |
寧?kù)o清幽 發(fā)表于 2016-2-26 01:10 非常好。繼續(xù)加油。把小車都學(xué)透~ ![]() |
moyuqilin 發(fā)表于 2016-2-23 20:36 為了看數(shù)據(jù)方便,就動(dòng)手寫(xiě)了這么個(gè)不能再簡(jiǎn)陋的助手。 ![]() |
你串口助手很好啊,是什么? |
bjyxyc 發(fā)表于 2016-2-6 00:03 IPA15w4k61s4 |
666 |
Powered by 單片機(jī)教程網(wǎng)