飛思pid本文只是技術(shù)交流僅僅是鄙人對一些知識的看法和認(rèn)識_第1頁
飛思pid本文只是技術(shù)交流僅僅是鄙人對一些知識的看法和認(rèn)識_第2頁
飛思pid本文只是技術(shù)交流僅僅是鄙人對一些知識的看法和認(rèn)識_第3頁
飛思pid本文只是技術(shù)交流僅僅是鄙人對一些知識的看法和認(rèn)識_第4頁
飛思pid本文只是技術(shù)交流僅僅是鄙人對一些知識的看法和認(rèn)識_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、本文只是技術(shù)交流,僅僅是鄙人對一些知識的看法和認(rèn)識,由于鄙人學(xué)疏才淺,必然會在本文中出現(xiàn)定義理解不深刻,原理敘述有誤等錯誤,敬請各位高人理解錯誤之處,請大家,我將積極學(xué)習(xí)改進。其實很早就應(yīng)該寫這么一個東西,由于學(xué)習(xí)和工作太忙,一直沒有時間去寫,春節(jié)放假,偶爾有了時間,決心一定要寫好,本文只是針對初學(xué)者,對于那些老鳥和大神們,基本上沒有看的必要,所以再您看這篇文章之前,還要對我多多的理解和寬容,寫不好,我改進學(xué)習(xí),寫的好,希望對您有幫助。(一)的背景和一些原理上理解控制技術(shù),是最簡單的閉環(huán)控制技術(shù)之一,一般都是利用單反饋或者多反饋來實現(xiàn)對控制對象的調(diào)節(jié),實現(xiàn)被控對象的可控性和可預(yù)知性的控制。使得

2、設(shè)備運行的更加的可靠,合理且平穩(wěn)。的全稱為比例積分微分控制,P 即為比例,I 即為積分,D 即為微分。往往都是應(yīng)用于惰性系統(tǒng),所謂惰性系統(tǒng)就是變化較慢且無法精確控制和調(diào)節(jié)的對象,其中最最重要的特點就是變化速度慢,調(diào)節(jié)速度慢,控制周期較長,最經(jīng)典的控制對象就為溫度的溫控。下面就舉一個簡單的例子進行說明:比如要對一個里面的水進行加熱,的目標(biāo)加熱溫度為 100,首先不用閉環(huán)對水溫進行加熱,也就是說只是靠人為觀察溫度計的溫度值來對加熱器進行人工的干預(yù)。當(dāng)溫度加熱到 100以后,然水溫已經(jīng)到就停止加熱,這個時候,雖達 100 且加熱器已經(jīng)不再通電加熱,但是由于加熱器的預(yù)熱和水本身傳遞溫度的惰性,導(dǎo)致水溫

3、會繼續(xù)上升,經(jīng)過一段時間后,水溫會繼續(xù)升高,并且超過100,那么該系統(tǒng)就無法達到所預(yù)期的要求。這個時候您誰想,停止加熱后本身會繼續(xù)散熱繼續(xù)升溫,那等到溫度到 90攝氏度左右以后,停止加熱,然后利用水的惰性和加熱器的散熱,讓水溫繼續(xù)升溫,正好達到 100,這樣不就解決問題了嗎? 這么想是對的,但是水溫要達到 90 幾度的時候止加熱到 100的時停止加熱呢?還有就是從停間是多少?經(jīng)過一段時間后,溫度沒有達到 100,而是小于 100 攝氏度以后溫度就達到了頂峰,這樣怎么辦?上述所有的辦法,可能能夠解決水溫到達 100的要求,但是其中很多環(huán)節(jié)很多結(jié)果都是無法和無法控制的,即便經(jīng)歷了很麻煩的人為干預(yù)同

4、時經(jīng)過了一個較長的時間達到了對水溫加熱到 100的要求,也要經(jīng)歷一個相當(dāng)復(fù)雜和相當(dāng)漫長的時間才能達到,并且整個過程一直要有人為的干預(yù),實在是屬于勞民傷財。不只是對溫度的控制,還有其他很多領(lǐng)域的過程控制,都遇到了這些讓人很困惑問題,所以科學(xué)家就針對此類問題發(fā)明了閉環(huán)控制原理,其中最經(jīng)典最簡單最實用的就是閉環(huán)控制。該控制原理簡單可靠,參數(shù)調(diào)整簡便,實用性強,廣泛的受到人們的支持。利用控制原理對水溫進行加熱控制,我現(xiàn)在進行舉例說明:目標(biāo)溫度還是之前設(shè)定的 100,加熱前首先要把這個溫度值輸入到加熱器控制器中,此時溫度計只是作為認(rèn)為觀察溫度的一個參考,在水中放入一個電子溫度計,電子溫度計測量的溫度可以

5、傳送到控制器,以使得的控制器知道當(dāng)前的水溫,在剛剛通電加熱的時候,水溫假定為室溫 20,當(dāng)前的水溫會通過電子溫度計測量并傳輸?shù)娇刂破髦?,此溫度作為?dāng)前溫度值C_TEM,的目標(biāo)溫度值設(shè)定的為 100作為 T_TEM,那么 CPU 通過計算T_TEM-C_TEM=80,二者的差值較大為 80,說明水溫遠(yuǎn)遠(yuǎn)沒有達到所需的 100,那么這個時候 CPU 就給加熱器通上最高的供電電壓,以全速對里面的水進行加熱,隨著加熱的進行,水溫會慢慢的增加,某一時刻,水溫達到了 80,那么目標(biāo)溫度與當(dāng)前溫度做差,差值僅僅為 20,那么 CPU 就知道了當(dāng)前的溫度跟實際所希望的溫度差別已經(jīng)很小了,那么這個時候控制器就減

6、小加熱器的供電電壓,以一個適當(dāng)?shù)募訜崃繉λ疁剡M行加熱。當(dāng)?shù)搅艘粋€時刻,水溫達到了 95,目標(biāo)溫度和他的差值僅僅只有 5 了,說明溫度已經(jīng)十分接近目標(biāo)溫度,此時控制器可能已經(jīng)早已停止對加熱器供電或者以一個更加低電壓的加熱量對水溫進行加熱,直到水溫加熱到 100。當(dāng)然水溫不可能一直恒定在 100,水溫一定會超過 100 攝氏度,但是由于采用閉環(huán)控制,水溫不會超過的太多,比如某一時刻水溫到達了 105,做差后,差值為-5,CPU 就知道此時溫度已經(jīng)超過了目標(biāo)溫度,那么將會在一段時間內(nèi)停止加熱,直到溫度降低到 100或者 100以下后再進行進一步控制,所以當(dāng)水溫到達 100 攝氏度附近的時候,CPU

7、控制器將會頻繁的對加熱器進行控制,從而導(dǎo)致水溫維持在 100左右附近,而且水溫與 100的目標(biāo)溫度相差不會很大,宏觀上通過平均測量,水溫就是認(rèn)為在100了,其實根本上,水溫是不會達到正好的 100,只能是在 100左右進行震蕩,但是震蕩始終不會太大,從而達到了控制目標(biāo)對象的要求,使得加熱系統(tǒng)變得更加科學(xué)更加可控。當(dāng)然上述所說明的加熱狀態(tài)是各項參數(shù)調(diào)節(jié)比較好的情況下的狀態(tài),三個參數(shù)調(diào)整不好,會帶來很多問題,比如系統(tǒng)震蕩,超調(diào)等問題,所以調(diào)整參數(shù)也是一個比較重要的環(huán)節(jié),這個我將會在下面進行說明。上述對水溫的控制已經(jīng)基本上說明了控制的,之所以利用進行閉環(huán)控制,就是為了讓被控制對象快速穩(wěn)定的達到目標(biāo)值

8、,從而實現(xiàn)對被控制對象的可控性,可預(yù)知性。一個人無法控制就是一個瘋子,一個車子速度無法控制就是一個瘋車。(二) 智能車電機閉環(huán)控制算法對于智能車的電機閉環(huán)控制算法,我之所以標(biāo)題沒有寫上“智能車電機閉環(huán)控制算法”是因為算法根本就不是特別好的適用于智能車這種變化很快的系統(tǒng),對于智能車,電機的調(diào)速可以說是時時刻刻再進行調(diào)速控制的,我上面說描述的經(jīng)典算法,都是針對一些惰性系統(tǒng),也就是說是變化比較慢的系統(tǒng)的,所以對于智能車的電機調(diào)速采用完完整整的算法,是根本不可取的,及時采用了,你必須要經(jīng)過一些變換和改進才能使用。以上的簡述只是鄙人自己的看法,錯誤,請各位高手指正?,F(xiàn)在估計您會疑問,不適用于智能車的電機

9、控制,那什么才適用呢?鄙人原來做過智能車,從鄙人本身的理解,P 算法控制電機,也就是比例控制是最好的,反應(yīng)速度快,控制精度高,不存在積分和微分效應(yīng),非常適用用于控制周期短的系統(tǒng),當(dāng)然,對于一些特殊的邏輯控制算法,可能要采用 PD算法,用微分來做補償,防止震蕩和超調(diào)。下面來說下電機控制算法從開始的加入到最終的確定的方法:當(dāng)然這一切的前提就是安裝了編,車速有反饋,只有加上編,有了反饋,才能組成一個閉環(huán)系統(tǒng)。當(dāng)然您也可以加上碼盤,或者霍爾開關(guān)等一切可以返回車速的東西都可以。(1) 首先建議在車速比較慢的時候,采用電機,為算法來控制什么開始要建議您采用呢?主要是為了更加深刻理解算法的精髓和調(diào)試步驟方法

10、等,有助于以后對控制算法更加深入的研究和書寫。調(diào)試三個參數(shù)的方法,很多地方都提供了,我在這里簡單的說下:首先將 ID 參數(shù)都變?yōu)?0,先調(diào)整P 比例參數(shù),調(diào)整到速度基本上跟您給定的速度差不多,也就是說基本穩(wěn)定在您給定的脈沖數(shù),當(dāng)然這個時候會非常的震蕩,不要擔(dān)心,接下來調(diào)整 I,調(diào)整 I 的結(jié)果就是震蕩會消除很多,但是車速會變化緩慢,也就是說會有一些延遲,然后再調(diào)整D,調(diào)整 D 的結(jié)果就是增強調(diào)節(jié)的靈活性和預(yù)見性,在給定速度變化的過程中,能夠以一個平穩(wěn)過渡來變換,而且速度可以長時間穩(wěn)定在給定速度附近,然后三個參數(shù)的基本范圍就確定了,然后再根據(jù)實際的跑車來微調(diào)這些參數(shù),當(dāng)然在您調(diào)試之前,請仔細(xì)閱讀

11、理論知識,這樣有助于您的調(diào)試和理解,當(dāng)您把調(diào)整好以后,您就基本上了的精髓,對于以后的調(diào)試作用非常大。這里的給定速度,就相當(dāng)于上面對溫度例子中說的設(shè)定溫度。意思是一樣一樣的。(2) 當(dāng)您對讓車速穩(wěn)掌握以后,您能做到給定多少速度,就能定在這個給定速度左右,可以適當(dāng)?shù)奶岣唿c車速,慢慢的觀察效果,你會發(fā)現(xiàn)當(dāng)速度增加的時候,車速的控制會變得越來越糟糕,調(diào)節(jié)緩慢,靈活性差。這個時候您就可以試著去掉 I 積分環(huán)節(jié),然后再重新調(diào)整參數(shù),按照上面說的,然后繼續(xù)觀察效果,試著提高速度,繼續(xù)觀察,因為車速畢竟很慢,很多細(xì)節(jié)都能看到,所以您就可以看到到PD 變換以后,實際的效果是增加多少,也算是一種進步,這個時候,經(jīng)

12、典的公式已經(jīng)被簡化,不要擔(dān)心,您可以多多實驗多多觀察,可能在這個變換之間,您能受到很多啟發(fā),會產(chǎn)生很多思路,誰以后的調(diào)試車子都是有好處的。所以搞智能車,自己一步一步的進步學(xué)習(xí),遠(yuǎn)遠(yuǎn)比去某些淘寶現(xiàn)成的程序?qū)W到的東西,體會的也,思維開闊的也。(3)在您的車速在 3M 內(nèi)的時候,我強法,因為議您采用PD 算PD 算法是最好調(diào)整,最容易控制的。當(dāng)然這個時候我也強議您加上 P 控制,P 控制的話,不是說就單純的 P*偏差然后得到的值給定,而是一定要加上一些邏輯控制,不加上邏輯控制而是直接運用比例公式來給定值,將會帶來很多問題,具體的邏輯控制講解,在以后我會寫出相關(guān)的文檔,謝謝。采用增量式編為反饋的智能車

13、電機閉環(huán)調(diào)速系統(tǒng):其實借助于我上面舉得例子,到這里,您可能已經(jīng)明白對于智能車來說閉環(huán)系統(tǒng)是一個必須的,不可脫離的。當(dāng)然,您可能已經(jīng)完全明白智能車電機閉環(huán)調(diào)速系統(tǒng)怎么做,并且您可能也做的更好,要比我在這里所說的更加的先進更加的有創(chuàng)意更加的有效果。所以在這里我只是簡單的說說,。首先,需要時刻反饋當(dāng)前的智能車速度給單片機或者ARM,讓系統(tǒng)知道當(dāng)前速度,有助于控制。先說說為什么要反饋車子速度,要知道車子當(dāng)前的速度?因為的 CPU 利用傳感器道路信息,通過 CPU 收集和處理變化,系統(tǒng)就能知道車子當(dāng)前的狀態(tài),比如是在直到上?還是在進入彎道?還是在彎道內(nèi)?還是正在出彎道?還是在上坡?還是穿過了起跑線?有了

14、這些信息,首先就是對舵機的控制,控制車子根據(jù)什么道路情況來進行轉(zhuǎn)彎,轉(zhuǎn)彎的方向,大小,都是靠這些數(shù)據(jù)來實現(xiàn),當(dāng)然當(dāng)前的速度值也是控制舵機轉(zhuǎn)向大小的一個附加,這樣更加的有利于及時處理不同彎道。知道了這些信息,就跟開車一樣,要轉(zhuǎn)彎了,得感知車的速度,怎么感知啊,就靠汽車自帶的速度表,這樣就可以通過控制剎車或者油門還有方向盤來控制車子平穩(wěn)的轉(zhuǎn)過彎道,不同的彎道,不同的速度,轉(zhuǎn)彎的控制和剎車的控制都是不同的。如果不知道當(dāng)前的速度,那么很可能因為拐彎速度過快,導(dǎo)致翻車,或者側(cè)滑,造成。智能車情況跟真車是一樣的,須知道車子當(dāng)前速度,比如我們智能車拐彎安全速度是 3M/S,所謂安全速度就是車子順利安全且沒有

15、較大側(cè)滑過彎時的速度,在進入彎道前車子的速度是 4M/S,當(dāng)傳感器感知要進入彎道了,通過跟安全速度對比,發(fā)現(xiàn)智能車的速度遠(yuǎn)大于安全彎道速度,這個時候就要剎車,把車子速度快速降低到 3M/S,這順利樣保證快速的過彎。在這里您可能問 3M/S 的安全速度怎么來?其實很簡單這個速度是靠實驗來的,不用什么計算,完全屬于經(jīng)驗值,根據(jù)跑道的材料、車子機械性能和彎道的角度來決定,所以為什么要比賽的時候要試車,試車中一個最重要的環(huán)節(jié)就是熟悉比賽跑道所用的材料,用于實驗車子的安全速度等。對于智能車的速度反饋,在這里我就針對增量式編來說,其實碼盤啊,霍爾啊,他們原理都一樣。光電增量式編不同于絕對值編,絕對值編在編

16、轉(zhuǎn)動一周的每個特定位置都有一個確定的值輸出,增量式編轉(zhuǎn)動一圈,固定輸出一定的脈沖,無法確定轉(zhuǎn)動到哪個位置,對外輸出一般為,這樣有助于MCU 進行通過齒輪、皮帶等將編。有了編,跟電機或者傳動輪進行連接,這樣電機轉(zhuǎn)動的時候,就會帶動編轉(zhuǎn)動,然后編就能向外輸出,接到單片機上,就能進行編脈沖了。有了脈沖,可能您又要問這個脈沖沒有規(guī)律性,隨著轉(zhuǎn)動不停的增加,到底怎么來衡量速度?您這個時候啊,動動手,觀察觀察數(shù)據(jù)特點,您會發(fā)現(xiàn),當(dāng)車速度比較快的時候啊,脈沖數(shù)自增的速度比較快,也就是說,轉(zhuǎn)速越快,頻率越高,時間內(nèi)的脈沖數(shù)就越多,這樣立刻有了靈感,用定時器設(shè)置一個中斷,這個中斷的時間為 5MS,那么每 5MS

17、就編一次脈沖值,當(dāng)完畢后,就對脈沖數(shù)寄存器清零,這樣在 5MS內(nèi),得到的脈沖數(shù)越多,說明車子速度越快,到這里車速就解決了。到這里您可能會說:還沒完呢,還沒轉(zhuǎn)換為速度呢?要把這個脈沖根據(jù)距離和時間轉(zhuǎn)換為具體的 XX 米/秒的速度。您的這個想法很好,但是真的是沒有必要,根本沒有必要浪費時間去計算這個,因為本來就是想知道速度,脈沖數(shù)的多少已經(jīng)就能衡量速度大小了,何必要很麻煩的轉(zhuǎn)換為具體速度? 一定時間內(nèi)的脈沖數(shù)已經(jīng)夠了,夠底層硬件進行判斷計算了。既然反饋的數(shù)據(jù)類型為脈沖數(shù),所以所給定的速度也對應(yīng)的到脈沖數(shù),比如 50 個脈沖代表速度 3M/S,804M/S 的速度,這樣通過道路類型給定脈沖數(shù),就能實現(xiàn)電機的閉環(huán)控制了,是不是很簡單?到這里我知道又有人會疑問,50 個脈沖對應(yīng) 3M/S,80個脈沖對應(yīng) 4M/S是怎么得到的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論