51微控制器實現電動機的PID恆速控制

2021-05-05 23:50:45 字數 3509 閱讀 9405

1樓:a電子工程師

這是倒立擺系統的pid控制函式的一部分,你看看有沒有思路

//定義結構體

struct may_pidpid/*此處可放結構體變數名*/;

struct may_pid *pp; //定義結構體型別指標

//pp=malloc(sizeof(struct may_pid)); //為指標變數分配安全的地址空間;sizeof:其為計算位元組長度函式

signed long pidcalc(signed long nextpoint/*當前值*/ )

基於51微控制器的直流電機pid調節速度 30

2樓:匿名使用者

模糊控制演算法和pid控制演算法有機的結合起來,形成了模糊pid控制演算法。該演算法具有很強的自適應性,它能夠根據外界條件的變化自動修正pid的控制引數。

其中:u(k)為第k次控制時控制器的輸出;

ec(k)為第k次控制時的偏差變化;

kp(k)為第k次控制時控制器的比例係數;

ki(k)為第k次控制時控制器的積分系數;

d(k)為第k次控制時控制器的微分系數;

u(k-1)為第k-1次控制時控制器的積分累和量,即

2 模糊pid控制器

模糊pid控制共包括引數模糊化、模糊規則推理、引數解模糊、pid控制器等幾個重要組成部分。計算機根據所設定的輸入sp和反饋訊號,計算實際位置和理論位置的偏差e(k)以及當前的偏差變化ec(k),根據模糊規則進行模糊推理,接著對模糊引數進行解模糊,輸出pid控制器的比例、積分、微分系數。此外,為了彌補一般模糊控制分檔造成的階梯變化,系統中解模糊輸出的並非控制器的實際引數,而是控制器引數的修正量。

控制器的實際引數為dkd0。其中cp、ci、cd分別為比例修正係數、積分修正係數和微分修正係數。kp0、ki0、kd0稱為控制引數初值,它們由使用者設定,因此,使用者可以對控制引數進行巨集觀調節,這在一定程度上可以彌補模糊推理在進行簡化時忽略引數之間耦合關係所造成的誤差。

增強了系統的魯棒性。

根據pid控制的基本特性,在不同的e(k)和ec(k)時,對kp、ki、kd的要求也不同:

(1)當|e(k)|很大時,要儘快消除偏差,提高響應速度,kp應該取大一些。為了避免出現超調現象,ki、kd最好為零。

(2)當偏差較小時,為繼續消除偏差並防止超調過大,產生振盪,kp應減小,ki可取較小值。kd的值視|ec(k)|而定。

(3)當e(k)與ec(k)同號時,被控量朝著偏離給定值的方向變化;而e(k)與ec(k)異號時被控量朝著接近給定值的方向變化。因此,當被控量接近給定值時,反號的比例作用阻礙積分作用,因而避免了積分超調及隨之帶來的振盪,但被控量遠未接近給定值並向給定值變化時,則由於這兩項反向,將會減慢控制過程。在e(k)較大,ec(k)為負值時,kp取負值,這樣可以加快控制的動態過程。

(4)當ec(k)很大時,kp應該取小值,ki取值應大些,反之亦然。

(5)微分環節主要用來控制偏差變化ec(k),減小超調,克服振盪,在多電機同步控制系統中,不希望速度發生快速變化,而且系統超調一般不會太大,所以在具體設計中並沒有對微分系數進行模糊控制,即kd=kd0、cd=1。

根據以上分析,把e(k)、ec(k)和cp的論域分為15個等級,分別記作-7,-6,-5,-4,-3,…,+6,+7;把語言變數e(k)、ec(k)和cp的取值分為「負大(nl)」、「負中(nm)」、「負小(ns)」、「正大(pl)」、「正中(pm)、「正小(ps)和「零(z)」等7個語言值。隸屬函式根據上述規則和經驗由主觀確定,推理規則採用「ifaandbthenc」的形式,模糊關係表示為:pk為第k條規則對應的模糊關係矩陣;mek為第k條規則中偏差取值的模糊向量;meck為第k條規則中偏差變化取值的模糊向量;,積分修正係數的計算過程與此類似,不再贅述。

最後根據修正係數計算出實際的pid控制引數,並運用到控制系統中去,使整個系統穩定、可靠地執行。

3 多電機同步控制的基本方案

g為系統所設定的主令電機速度。n1、n2和n3為3臺電機的輸出速度,採用上述模糊pid控制的原理對系統進行調節,可使各電機的執行速度都快速穩定地向主令速度值靠攏。

同步控制裝置採用89c51微控制器作為主機,以可逆計數器193作為相頻鑑別器。可逆計數器的作用是對參考訊號的脈衝進行加/減計數。由於脈衝數是脈衝訊號頻率對時間的積分,因此,當可逆計數器輸出為常數時,兩訊號的頻率相等。

系統的巨集觀調控由上位機通過通訊控制器進行設定,協調則由計數器鑑頻電路利用模糊pid控制演算法進行控制。具體的硬體電路[1]主要包括:感測器計數和方向脈衝產生及定寬電路、脈衝前沿錯開電路、可逆計數器鑑頻電路、數字pwm產生電路以及功率放大器驅動電路。

其中:脈衝產生定寬電路可以使計數器計數脈衝的寬度保持相同;脈衝前沿錯開電路是為了防止可逆計數器的加/減脈衝同時到來,影響計數器的正常工作。

4 模糊pid在多電機同步控制中的應用

針對以上系統進行了一系列實驗。首先,測試了在外界負載不變的情況下,系統對不同主令速度的響應能力。實驗曲線如圖4—1所示。

粗實線為所設定的主令速度,細實線為在一般pid控制器控制的情況下,某電機的速度響應曲線。較粗實線為在模糊pid控制器控制的情況下,同一電機的速度響應曲線。

給出的是系統主令速度不變,在有階躍響應的作用以及電機所帶負載不同時,兩種控制器對電機的不同控制效果。其中圖4—2a是模糊pid控制器的控制效果;圖4—2b是一般pid控制器的控制效果。(細實線為電機滿載時的曲線,粗實線為電機半載時的曲線)

誰有51微控制器pid程式,通過光電碼盤控制電機轉速???? 10

3樓:匿名使用者

基本的pid演算法是很簡單的,只要設定好合適的引數,其所能達到的控制效果也還是可以接受的。

不過,在實際應用中,往往是需要在pid演算法的基礎上做一些擴充的,一般不會直接用最基礎的pid演算法。

在很多時候,也可能只用到pi,而沒有d。

怎麼用51微控制器和7971電路來控制直流電機並,實現pid調速。主要是51怎麼控制7971 50

4樓:匿名使用者

用4個7971構成一個h橋,pid調節部分用程式實現,微控制器與7971之間用光耦隔離。

大致原理就是微控制器輸出pwm波,控制7971的開通關斷,硬體部分不難,主要是程式部分。

怎樣在51微控制器上實現pid演算法的控制

5樓:匿名使用者

步進電機如果負載不大就不需要pid演算法,只需要緩慢改變輸出的脈衝頻率就行了.

**有51微控制器pid演算法,利用溫度控制直流電機的轉速

6樓:匿名使用者

本人確實不懂什麼是pid演算法,但記得有一本書叫《微機和微控制器控制技術》,上面有這方面的內容

7樓:頂起石頭的小草

pid的控制還是比較麻煩的

微控制器控制步進電機,如何實現pid控制?

8樓:匿名使用者

換算一下就是了.

步進電機步進與位移精確的很,pid演算法沒有太大意義.

微控制器測量電動機轉速的原理是什麼啊?能詳細說說嗎?從開始數

基本上,微控制器採集的是轉子產生的訊號,這個訊號的頻率與轉子的轉速相關.例如說,轉子或轉子軸的一側貼上了一面小鏡子,使這個小鏡子能隨轉子一起轉動,然後在旁邊固定一個光源對著鏡子所在的位置,這樣的話,轉子每轉過一圈,小鏡子所反射的光線就會經過一次檢測元件,轉子轉得越快,經過檢測元件的光線就會越頻繁,換...

51微控制器的 5 是什麼意思,51微控制器的「51」是什麼意思?

1 51是51微控制器的簡稱,是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8031微控制器,後來隨著flash rom技術的發展,8031微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於...

常用的51微控制器片外晶片有哪些,51微控制器片選的意義是什麼?

這麼說吧,微控制器所copy有外圍晶片bai都是可以使用的 關鍵看你du怎麼用,需要啥就zhi用啥吧!不過有一dao些確實比較常用的倒可以先配著 1.通訊晶片 pl2303 usb轉ttl串列埠。max232 rs232轉ttl 2.實時時鐘晶片,比較常用的有ds1302,pcf8563,ds12c...