通常我們在控制小車運動的時候不知道如何精確的對小車軌跡進行控制。在不懂得小車控制算法精髓的時候,我們是無法對小車進行精確的控制的。目前絕大多數小車都是用PID控制算法來實現對小車的運動控制的。現在很多玩家就只知道一種調節方法,就是比例調節,即向左偏就向右調節,向右偏就向左調節,最容易想到,也是最容易用軟硬件實現的,但是結果也是最容易出問題的。當時的感覺就是小車太靈敏了,忽左忽右,不是很穩定。后來查了資料后知道了其他的調節方式。小車的實物圖如下圖所示。

小車實物圖
?
控制算法:
電機控制算法的作用是接受指令速度值,通過運算向電機提供適當的驅動電壓,盡快地和盡快平穩地使電機轉速達到指令速度值,并維持這個速度值。換言之,一旦電機轉速達到了指令速度值,即使在各種不利因素(如斜坡、碰撞之類等使電機轉速發生變化的因素)的干擾下也應該保持速度值不變。為了提高機器人小車控制系統的控制精度,選用合適的控制算法顯得十分必要。
控制算法是任何閉環系統控制方案的核心,然而并非越復雜、精度越高的算法越好,因為比賽要求非常高的實時性,機器人必須在非常短的時間內作出靈敏的反應,所以現代的一些先進控制算法,比如模糊控制、神經元網絡控制等就不能應用到小車控制系統里。本系統選用了最常規、最經典的PID控制算法,通過實際應用取得了很好的效果。下圖是PID控制原理結構圖。

PID控制系統原理結構框圖
比例項
控制回路中的第一個偏差轉換環節就是比例項。這一環節簡單地將偏差信號乘以常數K 得到新的CV值(值域為-100~100)。基本的比例控制算法如下:
loop:
PV=ReadMotorSpeed()
Error=SP-PV
CV=Error*Kprop
Setpwm(cv)
Goto loop
其中SP為設定值,PV為反饋值,Error為誤差。
上一段程序中的SetPWM()函數并非將CV值作為絕對的PWM占空比來對待。否則,不斷降低的偏差值會使輸出值接近零,而且由于電機工作時需要持續的PWM信號,控制系統將會使電機穩定在低速運轉狀態上,從而導致控制系統策略失敗。
相反,CV值一般被取作當前PWM占空比的改變量,并被附加到當前的PWM占空比上。這也要求SetPWM()函數必須將相加后得到的PWM占空比限制在0%~100%。正的CV值將使電機兩端電壓增加。負的CV值將使電機兩端電壓降低。如果CV值等于0,則無需改變但前占空比。較低的K 值會使電機的速度響應緩慢,但是卻很平穩。較高的K 值會使速度響應更快,但是卻可能導致超調,即達到穩定輸出前在期望值附近振蕩。過高的K 值會導致系統的不穩定,即輸出不斷震蕩且不會趨于期望值。
積分項
積分正好與微分相對。假如有一個描述變化率(微分)的表達式,那么對該表達式的積分就將得到隨時間變化的原物理量。如加速度的積分是速度,速度的積分是位移。
在PID控制回路中,偏差的積分代表從控制開始時算起所有偏差積累的總和。該總和被常數K 所乘后再添加到回路輸出中。在回路中,如果沒有積分環節,盡管控制系統也會趨于穩定,但是由于某種原因輸出值可能最終也無法達到SP值。
一個簡單但完全的PID控制器地偽代碼實現如下:
loop:
PV=ReadMotorSpeed()
LastError=Error
Isum=Isum+Error
Error=SP-PV
Rate=Error-Last
ErrorCV=Error*Kprop+Krate*Rate+Kint*Isum
SetPWM(CV)
Goto loop
由于積分項會越來越大,這就會使控制回路在SP值的改變時響應變慢,某些應用場合在CV值達到取值邊界(如為:-100~100)時會停止累加Isum。在SP值改變時,也可以除去Isum項。
微分項
任何變量的微分項被用來描述該變量是如何相對于另一個變量(多位時間)變化的。換句話說,任何變量的微分項就是它隨時間的變化率。如位移隨時間的變化率是速度。速度相對于時間的微分是加速度。
在PID控制器中,值得關心的是偏差信號相對于時間的微分,或稱變化率。絕大多數控制器將微分項定義為:Rate=(E-E )/T
式中,E為當前偏差,E 為前次偏差值,T為兩次測量的時間間隔。負的變化率表明偏差信號的改善。當微分項被具體應用于控制器中時,將一個常數乘以該微分項,并將它加到比例項上,就可以得到最終的CV值計算公式:
CV=( K E)+( K Rate)
當偏差信號接近零時,CV值將為負,所以當偏差信號開始改善時,微分項的作用將逐漸減弱校正輸出量。在某些場合下,微分項還有利于超調量的消除,并可以允許使用較大的K 值,從而可以改善響應的快速性。微分環節還預示了偏差信號的變化趨勢。當控制對象對控制器的輸出響應遲緩時,微分環節的作用尤為明顯。
含有微分項的控制算法的偽代碼實現如下:
loop:
PV=ReadMotorSpeed()
LastError=Error
Error=SP-PV
Rate=Error-Last
ErrorCV=Error*Kprop+Krate*Rate
SetPWM(CV)
Goto loop
PID的整定方法
在整定PID控制器參數時,可以根據控制器的參數與系統動態性能和穩態性能之間的定性關系,用實驗的方法來調節控制器的參數。有經驗的調試人員一般可以較快地得到較為滿意的調試結果。在調試中最重要的問題是在系統性能不能令人滿意時,知道應該調節哪一個參數,該參數應該增大還是減小。
為了減少需要整定的參數,首先可以采用PI控制器。為了保證系統的安全,在調試開始時應設置比較保守的參數,例如比例系數不要太大,積分時間不要太小,以避免出現系統不穩定或超調量過大的異常情況。給出一個階躍給定信號,根據被控量的輸出波形可以獲得系統性能的信息,例如超調量和調節時間。應根據PID參數與系統性能的關系,反復調節PID的參數。
如果階躍響應的超調量太大,經過多次振蕩才能穩定或者根本不穩定,應減小比例系數、增大積分時間。如果階躍響應沒有超調量,但是被控量上升過于緩慢,過渡過程時間太長,應按相反的方向調整參數。
如果消除誤差的速度較慢,可以適當減小積分時間,增強積分作用。
反復調節比例系數和積分時間,如果超調量仍然較大,可以加入微分控制,微分時間從0逐漸增大,反復調節控制器的比例、積分和微分部分的參數。
總之,PID參數的調試是一個綜合的、各參數互相影響的過程,實際調試過程中的多次嘗試是非常重要的,也是必須的。
具體有以下幾種方法:
(1)試湊法試湊法就是人工選擇PID參數,使控制系統響應達到預定要求,這種方法既簡單又復雜,說簡單是,如果你有經驗和運氣的話,那么在SIMULINK中,可能很快就達到了目標,說難的是,在現場實戰中,可能費了很大時間和精力來調整三個參數,也沒有完成任務。
(2)臨界比例度法臨界比例度法就是僅在P作用下,調整比例度使系統等幅振蕩,然后根據公式算出PID值,效果如圖1所示,圖中左半部分是系統等幅振蕩,右半部分是控制效果。下圖是通過MATLAB 仿真的PID臨界比例度法控制的曲線效果圖。

PID臨界比例度法控制的曲線
(3)衰減曲線法衰減曲線法?
就是僅在P作用下,調整比例度使系統響應曲線以4:1或10:1比率衰減,然后根據公式算出PID值,效果如圖2所示,圖中左半部分是系統衰減曲線,右半部分是控制效果。下圖是通過MATLAB 仿真的PID衰減曲線法控制的曲線效果圖。

PID衰減曲線法控制的曲線
(4)反應曲線法反應曲線法就是在開環狀態下,加階躍信號,然后用一階加純滯后系統逼近原系統,然后根據由Z-N或C-C公式算出PID值,效果如圖3所示,圖中左半部分是系統 響應曲線 , 右半部分是控制效果。圖4是一個三階系統,臨界比例度法 求得的有關參數。
?
相關推薦
電電機已經成為我們生活中的重要組成部分。它們存在于從電動汽車到無人機,機器人和其他電子設備的各種設備....
求一個12v直流電機軟啟動電路
發表于 11-22 11:03 ?
203次
閱讀
注開源四軸項目也有近一年了,前期都以潛水為主,業余時間主要是在啃那些控制和導航的理論書籍。最近開始動....
發表于 11-21 15:26 ?
49次
閱讀
《無刷直流電機控制應用:基于STM8S系列單片機》以STM8S單片機為控制核心來講述無刷直流電機的控....
發表于 11-21 14:09 ?
69次
閱讀
所有的的直流電機的粉碎機剪切主要用在粗碎破碎以及粉碎作業適用于有韌性或者有纖維的物料和大塊料的破碎或....
粉碎機直流電機廠家對電刷、刷盒和刷架的檢查如下;1、對直流電機電刷裝置的組裝及要求①安裝刷盒前,應
DH系列直流有刷電機特點和用途,廣泛用做各類小家電,例如:
將MATLAB應用到系統辨識中, 在分析最小二乘法的基本原理和推導過程的基礎上給出了系統辯識中算法....
發表于 11-15 17:58 ?
88次
閱讀
基于此發現,我們需要創建一個電阻器配置,這次使用1kohm電位計,使得最小值輸入到IC2的控制引腳的....
直流電動機,外加電源之后,勵磁線圈會在電機內產生一個磁場,電樞通電以后,就形成帶電導體。帶電導體在磁....
發表于 11-15 09:07 ?
206次
閱讀
BLDC無刷驅動器,以stm8s為MCU,該系統帶LED顯示,按鍵輸入,可以支持有感驅動和無感驅動,可以開環線性調節,也可...
發表于 11-12 11:24 ?
2187次
閱讀
該機器人當前不完整,因此需要執行下一步才能使該機器人正常工作。所需的步驟如下所示:
當電機長期過載運行時,電樞繞組會發熱,使電機溫度升高,此時可將負載調至額定值。
陳翠 發表于 11-10 10:28
?
765次
閱讀
OM13068,LPCXpresso電機控制套件(BLDC)使您可以立即開始進行電機控制...
發表于 11-08 06:07 ?
654次
閱讀
直流電機接交流電會不會轉。直流電機不可以連交流電。可以先接入一個濾波整流器,把交流電變成穩定的直流電....
電子魔法師 發表于 11-06 09:57
?
1107次
閱讀
下面用最簡潔最易懂的方式來說一下直流電機和交流電機的工作原理和區別。
發表于 11-06 09:49 ?
334次
閱讀
1、PID 算法C 語言原代碼先貼上一種常見的比較通用的C語言增量式PID算法吧[code]typedef struct PID
{
intSetPoi...
發表于 11-04 15:29 ?
575次
閱讀
《電工技術入門叢書:電動機原理與使用入門》針對學習對象電學基礎知識不深的特點,大幅度簡化了理論推導內....
發表于 11-01 08:00 ?
172次
閱讀
PLC對直流電機的控制是工控設備中常用的技術,0-5V和0-10V的通用的模擬信號接口,而一般直流電....
客益電子 發表于 10-31 16:48
?
785次
閱讀
直流電動機的勵磁方式是指勵磁繞組獲得勵磁電流的方式,除永磁式微直流電動機外,直流電動機的磁場都是通過....
發表于 10-31 11:37 ?
488次
閱讀
直流電機,大體上可分為四類:
第一類為有幾相繞組的步進...
發表于 10-30 10:15 ?
584次
閱讀
下面是我的單片機控制的H橋,用來控制直流有刷電機,現在想讓它在斷電的時候,電機是處于制動狀態,請問該如何實現呢?
...
發表于 10-30 09:13 ?
832次
閱讀
單片機控制的直流電機怎么控制速度
發表于 10-29 21:29 ?
254次
閱讀
電機是單向還是雙向轉動?需不需要調速?對于單向的電機驅動,只要用一個大功率三極管或場效應管或繼電器直....
發表于 10-29 18:04 ?
272次
閱讀
直流電機無級調速電路的制作原理
發表于 10-29 04:42 ?
87次
閱讀
介紹了直流電機的雙閉環調速原理,并用MATLAB構建了直流電機轉速、電流雙閉環調速系統的模型。轉速環....
發表于 10-28 11:50 ?
123次
閱讀
直流電機的結構
發表于 10-25 09:02 ?
81次
閱讀
基于平衡小車之家標準版)
0.PID簡介
PID 調節器出現于上世紀 30 年代。所謂 PID 控制,就是對偏差進行比例、積分...
發表于 10-25 08:00 ?
364次
閱讀
u通過模式選擇位CCPxM3:CCPxM0(CCPxCON《3:0》)選擇事件類型。當一個捕捉發生時....
發表于 10-23 17:13 ?
272次
閱讀
我們將通過這篇教程與大家一起學習直流電機的控制,并介紹一款直流電機驅動芯片 TB6612FNG。 1....
發表于 10-21 08:00 ?
120次
閱讀
SA60的是一個PWM型功率輸出芯片, 電路提供給電機的電源電壓最大可達到80V , 能連續向負載提....
發表于 10-12 15:29 ?
171次
閱讀
本文檔的主要內容詳細介紹的是電動機的原理及使用方法等教程免費下載包括了:4.1 三相異步電動機....
發表于 10-11 16:28 ?
181次
閱讀
直流電動機測試電源要根據直流電動機的試驗要求進行調壓試驗、輕載試驗、負載試驗和過載試驗,還要進行動態....
發表于 10-09 15:57 ?
1086次
閱讀
直流電機只有兩根電源線,直流電機的兩根電源線是不分正負極的,假設兩根電源線代號分別為A、B。當A線接....
電子魔法師 發表于 10-07 17:23
?
2313次
閱讀
利用光電測速傳感器檢測出直流電機的轉速信號,同時利用CH7555輸出加反相器和電機驅動器構成負反饋閉....
陳翠 發表于 10-07 16:48
?
900次
閱讀
用行程開關控制直流電機正反轉,采用一個或兩個繼電器都可以。如果用一個繼電器,就要用3組開關的。若用兩....
電子魔法師 發表于 10-07 16:04
?
905次
閱讀
該系統主要由MSP430控制器,超聲波避障模塊,電機驅動,測速,語音模塊,溫度模塊,小車的機械運動部....
發表于 10-04 17:15 ?
187次
閱讀
本例電路由LM324和MOS管組成,通過改變輸出方波的占空比,使得負載上的平均接通時間從0到100%....
陳翠 發表于 10-01 15:08
?
1162次
閱讀
直流電機正反轉帶過流保護控制器,保護電流0.2-10A可調,可以解決各種工具機械中電機堵轉造成燒毀問....
發表于 10-01 14:40 ?
538次
閱讀
電機,存在于我們生活中的方方面面。小到玩具車幾毛錢成本的小馬達,大到汽車高鐵上百馬力甚至輪船航母上萬....
發表于 10-01 14:27 ?
719次
閱讀
目前市場上家用電跑都是直流電機,但直流電機不如交流電機耐用,安全,也就是說未來市場交流跑步機將是主導....
發表于 10-01 11:07 ?
648次
閱讀
本文主要介紹了直流電機的拆卸及維修方法。拆下電機的外部接線,并做好標記,例如對于異步電動機,應做好與....
發表于 10-01 10:42 ?
717次
閱讀
今天我們來看一下直流電機的調速電路,原理非常的簡單,通過串聯不同的電阻實現不同的轉速。
發表于 10-01 10:26 ?
809次
閱讀
今天我們來看 一下直流電機的正反轉控制電路,首先我們分析一下電路圖。
發表于 10-01 10:02 ?
539次
閱讀
現在,您已將Arduino連接好,將代碼復制并粘貼到Arduino IDE。將讀取此代碼的作用,以....
首先要搞清楚一件基本的事情:我們只是來搞電調的,而不是去設計電機的。所以不要被一些無刷電機教材一上來....
發表于 09-27 08:00 ?
292次
閱讀
由于供應給電動機的電壓由電機驅動器IC-L293N的使能引腳,因此我們僅需將PWM應用于使能引腳即可....
與功率電阻器相比,低功率信號路徑電阻器需要的電路板空間更小,且降低了物料成本(BOM)。此外,電阻器....
發表于 09-24 09:08 ?
153次
閱讀
我們平時使用的直流電機在進行操控時,主要有兩種控制方式,在進行操作時我們都要了解直流電機控制原理圖....
發表于 09-23 09:34 ?
393次
閱讀
現市面上大多數的貫流風機采用的是罩極電機或感應電機,貫流風機氣流葉輪外圓周上個點的流速不一致,越靠近渦心,速度
首先要搞清楚一件基本的事情:我們只是來搞電調的,而不是去設計電機的。所以不要被一些無刷電機教材一上來....
發表于 09-19 11:54 ?
346次
閱讀
因為要求是自動正反轉,所以使用機械開關肯定是不行了,雖然機械開關簡單,但是不能實現自動正反轉,只能手....
電子魔法師 發表于 09-18 16:36
?
1883次
閱讀
無刷直流電機的組成,無刷直流電機組成部分:電機本體、位置傳感器、電子開關線路;電機本體在結構上與永磁....
發表于 09-17 10:29 ?
335次
閱讀
本文檔的L298N直流電機驅動模塊的電路圖和PCB圖與工程文件免費下載。
發表于 09-17 08:00 ?
318次
閱讀
直流電可以通過逆變器變成交流電。逆變器通常由逆變橋、控制邏輯和濾波電路組成。
陳翠 發表于 09-12 16:07
?
4129次
閱讀
嘗試使用5米距離的無線遙控鎖定系統并放置門。
本書在繼承傳統電機學教材特色的基礎上,努力適應新的專業設置和課時設置需要;在突出基本原理、基本方法和....
發表于 09-05 08:00 ?
651次
閱讀
無刷直流( Brushless Direct Current, BLDC) 電機是一種正快速普及的電....
發表于 09-04 08:00 ?
276次
閱讀
?最近很多廠家想開發垃圾處理器,垃圾處理器中重要的部分就是電機,電機主要的表現就是壽命,壽命對產品的影響十分重
模擬垃圾處理器永磁直流電機在濕熱鹽霧環境的加速試驗方案。一般低,加速試驗方案的制定流程如下:1確定加速應力類型
評論