PID非常好的光感巡線(xiàn)思路
調整PID控制器,不使用復雜的數學(xué)方法
(但是我們還是要做一些計算)
在本文中,我使用了其他人總結出來(lái)的PID控制器調整的方法,測量幾個(gè)系統參數就可以讓你非常好地計算出Kp,Ki和Kd的值。有幾種技術(shù)可用于計算Ks,其中之一就叫做 "Ziegler–Nichols方法" 。通過(guò)谷歌搜索可以找到很多講述這種技術(shù)的網(wǎng)頁(yè)。我所使用的版本幾乎是直接使用了維基網(wǎng)頁(yè)——PID控制器中的內容(在很多其他的地方也可以找到相同的內容),我只做了一點(diǎn)小小的改動(dòng),包括下表中所示計算過(guò)程中的循環(huán)時(shí)間。
按以下步驟調整PID控制器:
按以下步驟調整PID控制器:
將Ki和Kd的值置為0,即關(guān)閉控制器中的這些部分,將控制器作為一個(gè)簡(jiǎn)單的比例控制器。
把Tp(目標功率值)設置的小一點(diǎn)。對于我們使用的馬達來(lái)說(shuō),可以設為25.
將Kp設置為一個(gè)“合理”的值,什么是合理的?
1)用我們想讓馬達功率達到的最大值(100)除以能使用的最大誤差值。對于我們的巡線(xiàn)機器人,我們假定這個(gè)最大誤差是5,所以推測出Kp值為 100/5=20。當誤差為+5,,馬達的功率將達到100,。當誤差為0,馬達的功率會(huì )在Tp(目標功率值)上。
2)或者,將Kp值設為 1 (或100),看看會(huì )發(fā)生什么。
3)如果你要把 Ks的值乘以100,在這里,1就要記成100,20記成2000,100記成10000.
運行機器人,觀(guān)察運行狀態(tài)。如果它不能巡線(xiàn),從線(xiàn)上脫離開(kāi),就提高Kp值;如果它劇烈擺動(dòng),就降低Kp 值。調整Kp值,直到機器人能夠巡線(xiàn),并且沒(méi)有明顯的擺動(dòng)為止。我們稱(chēng)這時(shí)的Kp值為"Kc" (在PID文獻中,被稱(chēng)為臨界值)
使用Kc值作為Kp,運行機器人,試著(zhù)找出機器人運行時(shí)的“振蕩周期”是多少。這個(gè)測試不需要非常準確。振蕩周期(Pc)是指機器人從線(xiàn)的一側開(kāi)始,擺動(dòng)到另一側,再回到開(kāi)始點(diǎn)的時(shí)間長(cháng)短。對于典型的樂(lè )高機器人來(lái)說(shuō),Pc大約是在0.5秒到1或2秒之間。
你還需要知道,機器人控制系統的循環(huán)周期是多少。我將循環(huán)設置為一個(gè)固定的次數(如10,000),測量機器人完成全部循環(huán)次數的總時(shí)間(從開(kāi)始到結束的時(shí)間,或機器人顯示出結果的時(shí)間),每個(gè)循環(huán)的周期是測量時(shí)間除以循環(huán)次數。對于一個(gè)完整的PID控制器來(lái)說(shuō),使用NXT-G編程(在程序中不要使用發(fā)聲、顯示等模塊,這些模塊的使用會(huì )占用程序運行時(shí)間,影響測試結果),dT值應該在每個(gè)循環(huán)0.015秒到0.020秒之間。
使用下表計算Kp,Ki, 和Kc的值。如果你只想要一個(gè)P控制器,使用表中標注了P的那一行來(lái)計算Kp(Ki和Kd均為0)。如果你想要一個(gè)PI控制器,就使用第二行來(lái)計算。如果你想要一個(gè)完整的PID控制器,就使用最后一行來(lái)計算。
在實(shí)際操作時(shí),那些K值都要用100乘以它們實(shí)際的值,但是在計算中你不需要考慮這個(gè)問(wèn)題。這個(gè)因數100 ,在確定Kp=Kc 臨界值時(shí),就已經(jīng)考慮在內了。
運行機器人,看看它的表現。
你可以調整Kp,Ki和Kd的值直到獲得最佳的性能。你可以從相當大的調整開(kāi)始,如30%,然后嘗試較小的調整,以獲得最佳的(或者至少是可以接受的)效果。
一旦你確定了一組好的K值,提高TP值,提高機器人的直線(xiàn)速度。
對于新的TP值,要重新的調整K值,也許甚至要回到第1步,重復整個(gè)過(guò)程,
不斷地重復,直到機器人的表現是可以接受的。本文引用地址:http://dyxdggzs.com/article/201611/323721.htm
Ki和Kd上的符號只是要提醒你——Ki 和 Kd已經(jīng)考慮了時(shí)間的因素,即ki= ki*dt,kd’=kd/dt (假定dT為恒定值)。 這里有一個(gè)我自己做機器人測試的測量數據。Kc為300,當Kp=Kc時(shí),機器人的擺動(dòng)周期大約為0.8秒,因此Pc為0.8。我測量Pc的方法是,每當機器人擺動(dòng)到一個(gè)特定的方向,就大聲數出來(lái)。循環(huán)時(shí)間dT為0.014秒/每個(gè)循環(huán),用程序運行10,000次循環(huán)時(shí),NXT上顯示的程序運行時(shí)間和循環(huán)次數相除所獲得。使用上表中PID控制器的各計算公式,我們得到: Kp= (0.60)(Kc) =(0.60)(300) = 180 Ki= 2(Kp)(dT) / (Pc) =2(180)(0.014) / (0.8) = 6.3 (which is rounded to 6)(四舍五入為6) Kd= (Kp)(Pc) / ((8)(dT)) =(180)(0.8) / ((8)(0.014)) = 1286 在進(jìn)一步的反復試驗后,最終的Kp,Ki和Kd值分別為220,7 和500。別忘了所有這些K值均已乘以100,因此,它們的實(shí)際值為 2.2 ,0.07和5 。 |
改變Kp, Ki, 和 Kd的值對機器人運行情況的影響
在優(yōu)化PID的過(guò)程中,上面說(shuō)明的方法和表格是一個(gè)好的開(kāi)始。有時(shí),了解一下增加(或降低)三個(gè)K值中的一個(gè)會(huì )有怎樣的結果,也是非常有幫助的。下表在很多網(wǎng)頁(yè)上都能找到,這個(gè)版本來(lái)源于wiki——PID控制器的網(wǎng)頁(yè)。
增加參數值的影響 | |||||
Parameter 參數 | Risetime 響應時(shí)間 | Overshoot 超調 | Settlingtime 穩定時(shí)間 | Errorat equilibrium 靜態(tài)誤差 | |
Kp | 減少 | 加 | 變化小 | 減少 | |
Ki | 減少 | 增加 | 增加 | 消除 | |
Kd | 不確定(小的增加或減?。?/td> 減少 減少 無(wú) |
“響應時(shí)間”是指機器人確定誤差的時(shí)間,在我們的例子中,是指機器人在離線(xiàn)以后,需要多少時(shí)間能回到線(xiàn)的邊緣。響應時(shí)間主要由Kp控制。Kp值變大,機器人返回線(xiàn)的速度變快,響應時(shí)間就減少。Kp過(guò)大,會(huì )造成機器人超調。
“超調”是指機器人在響應誤差時(shí),會(huì )越過(guò)線(xiàn)的邊緣多遠。例如,如果超調較小,當機器人想回到線(xiàn)的左邊時(shí),就不會(huì )擺動(dòng)到線(xiàn)的右邊去。如果超調較大,機器人在糾正誤差時(shí),就會(huì )擺動(dòng)過(guò)大,超過(guò)線(xiàn)的邊緣。超調受Kd影響最大,但Ki和Kp對它的影響也頗強。通常情況下,糾正很大的超調,你需要增大Kd值。還記得我們第一個(gè)非常簡(jiǎn)單的巡線(xiàn)機器人嗎,除了左轉和右轉,它不會(huì )做任何事,這個(gè)巡線(xiàn)機器人就會(huì )產(chǎn)生非常大的超調現象。
“穩定時(shí)間”是指機器人在發(fā)生一個(gè)大的變化時(shí),需要多長(cháng)時(shí)間才能穩定下來(lái)。在我們巡線(xiàn)的例子中,機器人遇到一個(gè)轉彎就會(huì )發(fā)生較大的變化。當機器人對曲線(xiàn)做出響應,它會(huì )糾正誤差,并產(chǎn)生一些超調,然后機器人會(huì )以另一個(gè)方向的超調來(lái)糾正當前的超調,然后再糾正這個(gè)超調......你明白了吧。當機器人對誤差進(jìn)行響應時(shí),它會(huì )圍繞期望位置進(jìn)行擺動(dòng)。“穩定時(shí)間”就是這個(gè)擺動(dòng)被抑制到0的時(shí)間。Ki和Kd都對穩定時(shí)間有很強的影響,Ki越大,穩定時(shí)間越長(cháng);Kd越大,穩定時(shí)間越短。
“靜態(tài)誤差”是指系統在不受干擾的情況下運行所保持的誤差。對于我們的巡線(xiàn)機器人來(lái)說(shuō),當機器人走了很長(cháng)一段直線(xiàn)后,這個(gè)誤差會(huì )被抵消掉。P控制器和PD控制器經(jīng)常會(huì )被這種誤差搞垮。增加Kp值會(huì )降低它的影響,但會(huì )加大機器人的擺動(dòng)。P控制器和PD控制器在平衡狀態(tài)下會(huì )有一個(gè)恒定的誤差,因此經(jīng)常會(huì )在其中增加I控制,和加大Ki的值。(這是假定,當機器人巡線(xiàn)時(shí),你更關(guān)注小的系統誤差。這就意味著(zhù),機器人會(huì )稍微向一邊或另一邊偏移)
“超調”是指機器人在響應誤差時(shí),會(huì )越過(guò)線(xiàn)的邊緣多遠。例如,如果超調較小,當機器人想回到線(xiàn)的左邊時(shí),就不會(huì )擺動(dòng)到線(xiàn)的右邊去。如果超調較大,機器人在糾正誤差時(shí),就會(huì )擺動(dòng)過(guò)大,超過(guò)線(xiàn)的邊緣。超調受Kd影響最大,但Ki和Kp對它的影響也頗強。通常情況下,糾正很大的超調,你需要增大Kd值。還記得我們第一個(gè)非常簡(jiǎn)單的巡線(xiàn)機器人嗎,除了左轉和右轉,它不會(huì )做任何事,這個(gè)巡線(xiàn)機器人就會(huì )產(chǎn)生非常大的超調現象。
“穩定時(shí)間”是指機器人在發(fā)生一個(gè)大的變化時(shí),需要多長(cháng)時(shí)間才能穩定下來(lái)。在我們巡線(xiàn)的例子中,機器人遇到一個(gè)轉彎就會(huì )發(fā)生較大的變化。當機器人對曲線(xiàn)做出響應,它會(huì )糾正誤差,并產(chǎn)生一些超調,然后機器人會(huì )以另一個(gè)方向的超調來(lái)糾正當前的超調,然后再糾正這個(gè)超調......你明白了吧。當機器人對誤差進(jìn)行響應時(shí),它會(huì )圍繞期望位置進(jìn)行擺動(dòng)。“穩定時(shí)間”就是這個(gè)擺動(dòng)被抑制到0的時(shí)間。Ki和Kd都對穩定時(shí)間有很強的影響,Ki越大,穩定時(shí)間越長(cháng);Kd越大,穩定時(shí)間越短。
“靜態(tài)誤差”是指系統在不受干擾的情況下運行所保持的誤差。對于我們的巡線(xiàn)機器人來(lái)說(shuō),當機器人走了很長(cháng)一段直線(xiàn)后,這個(gè)誤差會(huì )被抵消掉。P控制器和PD控制器經(jīng)常會(huì )被這種誤差搞垮。增加Kp值會(huì )降低它的影響,但會(huì )加大機器人的擺動(dòng)。P控制器和PD控制器在平衡狀態(tài)下會(huì )有一個(gè)恒定的誤差,因此經(jīng)常會(huì )在其中增加I控制,和加大Ki的值。(這是假定,當機器人巡線(xiàn)時(shí),你更關(guān)注小的系統誤差。這就意味著(zhù),機器人會(huì )稍微向一邊或另一邊偏移)
運行情況怎樣?
光電傳感器距離巡線(xiàn)測試紙的高度大約為1/2英寸,Tp(功率目標值)設置為70%。機器人的平均速度為每秒鐘8英寸。機器人沿著(zhù)橢圓型黑線(xiàn)的內側,采用左手法則巡線(xiàn),沿著(zhù)內側巡線(xiàn)要比沿著(zhù)外側巡線(xiàn)稍微難一點(diǎn)。
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
在整個(gè)過(guò)程中,巡線(xiàn)機器人似乎表現相當不錯。如果你仔細觀(guān)看視頻,就會(huì )發(fā)現,機器人在離開(kāi)轉彎的地方有一點(diǎn)“搖尾巴”。那是PID有一點(diǎn)振蕩。當機器人向鏡頭方向運行時(shí),你可以看到機器人光電傳感器的LED在場(chǎng)地墊上照射出的紅點(diǎn),看上去在追蹤線(xiàn)的邊緣方面,做的非常好。
基本PID控制器可以適用于不同的控制難題(當然也可以用P控制器或者PI控制器代替PID控制器),你無(wú)需提出一個(gè)新的“誤差”定義,但是針對特定的任務(wù),要重新調整PID。
基本PID控制器可以適用于不同的控制難題(當然也可以用P控制器或者PI控制器代替PID控制器),你無(wú)需提出一個(gè)新的“誤差”定義,但是針對特定的任務(wù),要重新調整PID。
關(guān)鍵詞:
PID光感巡
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論