0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文讀懂直流電機控制算法

電子工程技術 ? 來源:電子工程技術 ? 作者:電子工程技術 ? 2023-05-06 09:26 ? 次閱讀

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

控制算法:

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

40b3c760-eb54-11ed-90ce-dac502259ad0.jpg

圖 PID控制系統原理結構框圖

1 比例項

控制回路中的第一個偏差轉換環節就是比例項。這一環節簡單地將偏差信號乘以常數K 得到新的CV值(值域為-100~100)?;镜谋壤刂扑惴ㄈ缦拢?/p>

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 值會導致系統的不穩定,即輸出不斷震蕩且不會趨于期望值。

2 積分項

積分正好與微分相對。假如有一個描述變化率(微分)的表達式,那么對該表達式的積分就將得到隨時間變化的原物理量。如加速度的積分是速度,速度的積分是位移。

在PID控制回路中,偏差的積分代表從控制開始時算起所有偏差積累的總和。該總和被常數K 所乘后再添加到回路輸出中。在回路中,如果沒有積分環節,盡管控制系統也會趨于穩定,但是由于某種原因輸出值可能最終也無法達到SP值。

一個簡單但完全的PID控制器地偽代碼實現如下:

loop:

PV=ReadMotorSpeed()

LastError=Error

Isum=Isum+Error

Error=SP-PV

Rate=Error-LastError

CV=Error*Kprop+Krate*Rate+Kint*Isum

SetPWM(CV)

Goto loop

由于積分項會越來越大,這就會使控制回路在SP值的改變時響應變慢,某些應用場合在CV值達到取值邊界(如為:-100~100)時會停止累加Isum。在SP值改變時,也可以除去Isum項。

3 微分項

任何變量的微分項被用來描述該變量是如何相對于另一個變量(多位時間)變化的。換句話說,任何變量的微分項就是它隨時間的變化率。如位移隨時間的變化率是速度。速度相對于時間的微分是加速度。

在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-LastError

CV=Error*Kprop+Krate*Rate

SetPWM(CV)

Goto loop

4 PID的整定方法

在整定PID控制器參數時,可以根據控制器的參數與系統動態性能和穩態性能之間的定性關系,用實驗的方法來調節控制器的參數。有經驗的調試人員一般可以較快地得到較為滿意的調試結果。在調試中最重要的問題是在系統性能不能令人滿意時,知道應該調節哪一個參數,該參數應該增大還是減小。

為了減少需要整定的參數,首先可以采用PI控制器。為了保證系統的安全,在調試開始時應設置比較保守的參數,例如比例系數不要太大,積分時間不要太小,以避免出現系統不穩定或超調量過大的異常情況。給出一個階躍給定信號,根據被控量的輸出波形可以獲得系統性能的信息,例如超調量和調節時間。應根據PID參數與系統性能的關系,反復調節PID的參數。

如果階躍響應的超調量太大,經過多次振蕩才能穩定或者根本不穩定,應減小比例系數、增大積分時間。如果階躍響應沒有超調量,但是被控量上升過于緩慢,過渡過程時間太長,應按相反的方向調整參數。

如果消除誤差的速度較慢,可以適當減小積分時間,增強積分作用。

反復調節比例系數和積分時間,如果超調量仍然較大,可以加入微分控制,微分時間從0逐漸增大,反復調節控制器的比例、積分和微分部分的參數。

總之,PID參數的調試是一個綜合的、各參數互相影響的過程,實際調試過程中的多次嘗試是非常重要的,也是必須的。

具體有以下幾種方法:

(1)試湊法

試湊法就是人工選擇PID參數,使控制系統響應達到預定要求,這種方法既簡單又復雜,說簡單是,如果你有經驗和運氣的話,那么在SIMULINK中,可能很快就達到了目標,說難的是,在現場實戰中,可能費了很大時間和精力來調整三個參數,也沒有完成任務。

(2)臨界比例度法

臨界比例度法就是僅在P作用下,調整比例度使系統等幅振蕩,然后根據公式算出PID值,效果如圖1所示,圖中左半部分是系統等幅振蕩,右半部分是控制效果。下圖是通過MATLAB 仿真的PID臨界比例度法控制的曲線效果圖。

40c31d50-eb54-11ed-90ce-dac502259ad0.jpg

圖1 PID臨界比例度法控制的曲線

(3)衰減曲線法

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

40d72a52-eb54-11ed-90ce-dac502259ad0.jpg

圖2 PID衰減曲線法控制的曲線

(4)反應曲線法

反應曲線法就是在開環狀態下,加階躍信號,然后用一階加純滯后系統逼近原系統,然后根據由Z-N或C-C公式算出PID值,效果如圖3所示,圖中左半部分是系統 響應曲線 , 右半部分是控制效果。圖4是一個三階系統,臨界比例度法 求得的有關參數。下圖是通過MATLAB 仿真的PID反應曲線法控制的曲線效果圖。

40f96ef0-eb54-11ed-90ce-dac502259ad0.jpg

圖3 PID反應曲線法控制的曲線

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制系統
    +關注

    關注

    40

    文章

    5585

    瀏覽量

    107590
  • 機器人
    +關注

    關注

    205

    文章

    26005

    瀏覽量

    199709
  • 直流電機
    +關注

    關注

    34

    文章

    1564

    瀏覽量

    69139
  • PID
    PID
    +關注

    關注

    35

    文章

    1416

    瀏覽量

    82914
  • 控制算法
    +關注

    關注

    4

    文章

    150

    瀏覽量

    21355

原文標題:一文讀懂直流電機控制算法的精髓

文章出處:【微信號:EngicoolArabic,微信公眾號:電子工程技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何設計電機控制算法控制無刷直流電機的速度?

    如何使用六步換向(梯形控制控制無刷直流電動機?如何設計電機控制算法
    發表于 07-21 06:55

    直流電機PWM控制

    直流電機PWM控制設計:基于VHDL語言實現直流電機PWM控制設計,有仿真,有程序,有結論
    發表于 11-08 18:51 ?50次下載

    直流電機控制

    直流電機控制說明。
    發表于 05-19 09:45 ?35次下載

    直流電機PID控制

    直流電機PID控制(固緯3030電源)-該文檔為 直流電機PID控制資料,講解的還不錯,感興趣的可以下載看看…………………………
    發表于 07-26 11:55 ?49次下載
    <b class='flag-5'>直流電機</b>PID<b class='flag-5'>控制</b>

    無刷直流電機、永磁同步電機及FOC控制算法簡介

    無刷直流電機(BLDC)、永磁同步電機電機(PMSM)電機以及FOC控制算法簡介 內轉子永磁同步電機
    發表于 03-09 10:09 ?11次下載
    無刷<b class='flag-5'>直流電機</b>、永磁同步<b class='flag-5'>電機</b>及FOC<b class='flag-5'>控制</b><b class='flag-5'>算法</b>簡介

    直流電機方程

    Matlab 仿真——直流電機速度控制(1)直流電機建模 TMotor上位機軟件的控制算法,其中KT就是“
    發表于 03-30 13:52 ?1次下載
    <b class='flag-5'>直流電機</b>方程

    arduino直流電機

    期我們來學習如何控制直流電機。 需要材料:Arduino UNO 直流電機——本文以12V額定電機為例
    發表于 03-30 13:46 ?2次下載
    arduino<b class='flag-5'>直流電機</b>

    ros與arduino通信控制直流電機

    前言:在成功通過arduino開發板控制直流電機后,開始嘗試用ros與arduino通信來控制直流電機,為無人小車作準備 硬件 arduino開發板、杜邦線、
    發表于 03-31 11:45 ?1次下載
    ros與arduino通信<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    繼電器控制直流電機

    、實驗目的及要求 熟悉繼電器控制直流電機的用法。 二、實驗原理與內容 1.完成使用繼電器控制直流電機功能。 2.通過按鍵
    發表于 04-03 11:01 ?3次下載
    繼電器<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    脈寬調制器控制直流電機

    實驗  脈寬調制器控制直流電機 、實驗目的 1.學習脈寬調制控制直流電機的基本工作原理。
    發表于 05-08 08:37 ?3498次閱讀
    脈寬調制器<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    直流電機

    什么是直流電機 使用直流電源的電機叫做直流電機。因此只要把直流電機的端子接到直流電源上,就可以
    發表于 01-09 15:05 ?3505次閱讀
    <b class='flag-5'>直流電機</b>

    直流電機的基本組成 直流電機的主要缺點 直流電機的四種勵磁方式

    直流電機的基本組成 直流電機的主要缺點 直流電機的四種勵磁方式
    發表于 03-15 18:25 ?1514次閱讀

    無刷直流電機和有刷直流電機的區別

      無刷直流電機和有刷直流電機是兩種不同類型的直流電機。
    發表于 03-17 18:20 ?4056次閱讀

    直流電機控制的基本方法

    直流電機種最基本的電動機類型之,其速度和方向可以通過控制電流來實現。直流電機常常作為工業控制
    發表于 03-26 22:21 ?3032次閱讀
    丁香五月开心婷婷在�?@丁香五月天缴情在�?@丁香五月网久久综�?@丁香五月亚洲中文字幕@丁香五月综亚�?