吴忠躺衫网络科技有限公司

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

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

3天內不再提示

智能車舵機控制算法詳解

姚小熊27 ? 來源:網絡整理 ? 2018-05-11 10:22 ? 次閱讀

舵機的原理和控制

控制信號由接收機的通道進入信號調制芯片,獲得直流偏置電壓。它內部有一個基準電路,產生周期為20ms,寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。

舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內的角度控制脈沖部分,總間隔為2ms。以180度角度伺服為例,那么對應的控制關系是這樣的:

0.5ms--------------0度;

1.0ms------------45度;

1.5ms------------90度;

2.0ms-----------135度;

2.5ms-----------180度;

舵機的追隨特性:

假設現在舵機穩定在A點,這時候CPU發出一個PWM信號,舵機全速由A點轉向B點,在這個過程中需要一段時間,舵機才能運動到B點。

保持時間為Tw

當Tw≥△T時,舵機能夠到達目標,并有剩余時間;

當Tw≤△T時,舵機不能到達目標;

理論上:當Tw=△T時,系統最連貫,而且舵機運動的最快。

實際過程中w不盡相同,連貫運動時的極限△T比較難以計算出來。

假如我們的舵機1DIV =8us,當PWM信號以最小變化量即(1DIV=8us)依次變化時,舵機的分辨率最高,但是速度會減慢。

智能車舵機控制算法詳解

智能車舵機控制算法詳解

舵機:小車轉向的控制機構。也就是控制小車的轉向。它的特點是結構緊湊、易安裝調試、控制簡單、大扭力、成本較低等。舵機的主要性能取決于最大力矩和工作速度(一般是以秒/60°為單位)。它是一種位置伺服的驅動器,適用于那些需要角度不斷變化并能夠保持的控制系統。在機器人的控制系統中,舵機控制效果是性能的重要影響因素。舵機能夠在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出值得單片機系統很容易與之接口。

組成:舵盤、減速齒輪組、位置反饋電位計、直流電機、控制電路

工作原理:控制信號→控制電路板→電機轉動→齒輪組減速→舵盤轉動→位置反饋電位計→控制電路板反饋。

輸入線:中間紅色——電源線Vcc;黑色——地線GND;白色/橘黃色——控制信號線

信號:pwm信號,其中脈沖寬度從0.5-2.5ms(周期為20ms),相對應的舵盤位置為0-180度,呈線性變化。

智能車舵機控制算法詳解

pwm波脈沖寬度與舵機轉角角度的關系:

智能車舵機控制算法詳解

也就是不同脈沖寬度的pwm波,舵機將輸出不同的軸轉角。所以要控制小車的轉角,我們就要控制輸出不同脈沖寬度的pwm波。

PWM:脈沖寬度調制

原理:對電路元件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖。豬八戒的耙子就可以看似脈沖寬度相等的pwm波形。那不相等的呢,可以 把一排身高相等但胖瘦不同的人排排站看做脈沖寬度不相等的pwm波形。比如這里有一個簡單的電路:

智能車舵機控制算法詳解

我們以5s為一個周期,在每一個5s內,前3s開關打開,后2s開關閉合,則ab端電壓將會這樣變化:

智能車舵機控制算法詳解

對電路元件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖。

在這個例子中,輸入信號脈沖寬度為3s,周期為5s。

重復一下:所以要控制小車的轉角,我們就要控制輸出不同脈沖寬度的pwm波。

PID控制:一種調節器控制規律為比例、積分、微分的控制。其中:P:比例(proportion)、I:積分(integral)、D:導數(derivative)

智能車舵機控制算法詳解

式子中Kp為比例系數,Ti為積分時間參數,Td為微分時間常數。

各個參數的意義作用:

Kp:比例系數。一般增大比例系數,將加快系統的響應。

Ti:積分時間常數。一般地,積分控制通常與比例控制或比例微分控制聯合使用,構成 PI或 PID控制.增大積分時間常數 (積分變弱)有利于小超調,減小振蕩,使系統更穩定,但同時要延長系統消除靜差的時間.積分時間常數太小會降低系統的穩定性,增大系統的振蕩次數.

Td:微分時間常數。一般微分控制和比例控制和比例積分控制聯合使用,組成PD或PID控制,微分控制可改善系統的動態特性。

PID的控制方法常用的有兩種:

1.增量式PID

所謂的增量,就是本次控制量和上次控制量的差值。增量式PID是一種對控制量的增量進行PID控制的一種控制算法。

智能車舵機控制算法詳解

(說明:Kp-》P,Ki-》I,Kd-》D,e數組-》error數組,

e[n]-》本次差值,e[n-1]-》上次差值,e[n-2]-》上上次差值)

舉個例子,增量式PID可以應用在電機上。

假設當前電機PID的pwm值為5000(精度為10000,即此時的占空比為50%)。對應的速度為100r/s。

程序發出一個命令,要求pwm輸出為0,即要求停車。(可能有人有疑問為什么不直接程序給pwm為0,這也是一種方法,可是由于慣性的存在,小車會在一段時間后才停下。)

這時,我們可以采用PID控制的方法來實現。

我們在程序中定義幾個變量:

智能車舵機控制算法詳解

根據公式,我們編寫程序:

void PID()

{

/*

增量式PID

P=Kp*(error-error_pre);

D=Kd*(error-2*error_pre+error_pre_pre);

I=Ki*error;

Pwm+=P+I+D;

*/

error=speed_want-speed_now; //speed_now可以通過編碼器采值等等方式得到

pwm_duty+=(int)(P*(error-error_pre)+I*error+D*(error-2*error_pre+error_pre_pre));

//注意上面的加號,加號是增量式PID的體現。我們對增量(即右邊的式子)進行PID控制。

error_pre_pre=error_pre;

error_pre=error;

}

當函數運行第一次的時候,輸出的pwm為:

智能車舵機控制算法詳解

電機給了一個反轉的力,小車前進受到了阻力,于是可以很快的停下來了。

2、位置式PID

與增量式不同,位置式PID不需要對控制量進行記憶,直接對偏差值進行計算得出期望的pwm。公式:

智能車舵機控制算法詳解

(說明:Kp-》P,Ki-》I,Kd-》D,ek-》本次誤差、ek-1-》上次誤差)

舉個例子,位置式PID可以應用在舵機上。因為舵機本次的pwm輸出值與上次pwm輸出值關系不太,舵機需要的是快速轉到某個角度。

假設舵機pwm輸出1000時舵盤轉軸為90°,pwm輸出0時舵盤轉軸為0°,pwm輸出2000時舵盤轉軸為180°。

現在舵機pwm輸出為1500,我們要讓舵盤轉到最中間。

在這里我們采用PD控制,即I值為0(I值為偏差的積分,即對偏差求和。我們當時試驗小車的舵機控制時發現I值可以省略,PD控制足矣。當然,具體需不需要I項要在實際中進行分析驗證)。

代碼:

pwm_duty=(int)(P*error+D*(error-error_pre); //紅色部分表示這是位置式PID控制

反饋系統:

智能車舵機控制算法詳解

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

    關注

    4

    文章

    1014

    瀏覽量

    122772
  • PID
    PID
    +關注

    關注

    35

    文章

    1473

    瀏覽量

    85822
  • 舵機
    +關注

    關注

    17

    文章

    280

    瀏覽量

    41190
收藏 人收藏

    評論

    相關推薦

    智能車

    求一個智能車的程序,有一個L298N驅動,紅外傳感器,舵機模塊的
    發表于 08-27 22:35

    [資料分享]智能車黑線識別算法控制策略研究

    不錯的資料,智能車黑線識別算法控制策略研究
    發表于 09-09 12:17

    labview智能車參考程序(fuzzy 控制

    最近在做智能車的材料,想用Labview實現控制,發現了例程中的這個用模糊算法控制倒車的程序文件,感覺受益很大,特意發到這里,希望有需要的同學也能有點收獲。
    發表于 02-05 14:55

    PID的智能車控制算法研究

    PID的智能車控制算法研究
    發表于 07-18 20:07

    基于光電管路徑識別的智能車系統設計

    舵機驅動前輪轉向,使用符合PI算法控制器實現直流電機的調速。為了使智能車快速、平穩地行駛,系統必須把路徑識別、相應的轉向伺服電機控制以及
    發表于 11-06 15:08

    請問智能車怎么依靠舵機實現左右轉向?

    網上的資料,舵機好像只能實現一個方向轉,可是某些智能車怎么怎么依靠舵機實現左右轉向呢???
    發表于 06-24 00:23

    電磁循跡智能車是由哪些模塊組成的

    我的第一輛智能車—電磁循跡智能車以下是所用的模塊:舵機,電機,L298N驅動模塊,PID算法,OLED,電磁桿,ADC多路采集配置DMA,干簧管,普通GPIO口使用。1.
    發表于 01-14 09:08

    舵機模糊控制智能車控制中的應用介紹

    ,如何讓智能車在不同形狀的賽道上進行平穩 、快速的切換,實現路徑的最優控制,是轉向控制的一個關鍵問題 目前,轉向控制的物理實現普遍采用的是用一個舵機
    發表于 09-19 08:03

    基于路徑識別的智能車系統設計

    介紹了一種基于光電管路徑識別的智能車系統。該智能車使用光電管作為路徑識別裝置,依靠舵機輔助智能車轉向,使用直流電機驅動智能車前進。系統采用符
    發表于 07-06 16:57 ?73次下載

    飛思卡爾智能車舵機測試程序

    飛思卡爾智能車舵機
    發表于 01-06 16:11 ?544次下載

    基于光電管路徑識別的智能車系統設計

    介紹了一種基于光電管路徑識別的智能車系統。該智能車使用光電管作為路徑識別裝置,依靠舵機輔助智能車轉向,使用直流電機驅動智能車前進。系統采用符
    發表于 06-09 09:56 ?3013次閱讀
    基于光電管路徑識別的<b class='flag-5'>智能車</b>系統設計

    改進PID算法智能車控制上的應用

    改進PID算法智能車控制上的應用
    發表于 11-18 17:19 ?1次下載

    飛思卡爾智能車舵機和測速的控制設計與實現pdf資料下載

    飛思卡爾智能車舵機和測速的控制設計
    發表于 03-16 17:39 ?20次下載

    基于模糊控制算法智能車轉向舵機控制

    本文首先介紹了模糊控制算法的概念,其次介紹了模糊控制的工作原理,最后詳細介紹了基于模糊控制算法智能車
    的頭像 發表于 05-11 10:48 ?1.1w次閱讀
    基于模糊<b class='flag-5'>控制</b><b class='flag-5'>算法</b>的<b class='flag-5'>智能車</b>轉向<b class='flag-5'>舵機</b><b class='flag-5'>控制</b>

    飛思卡爾智能車舵機和測速的控制設計與實現

    電子發燒友網站提供《飛思卡爾智能車舵機和測速的控制設計與實現.pdf》資料免費下載
    發表于 10-20 09:38 ?0次下載
    飛思卡爾<b class='flag-5'>智能車</b><b class='flag-5'>舵機</b>和測速的<b class='flag-5'>控制</b>設計與實現
    百家乐波浪法则| 百家乐官网技巧看| 真让百家乐游戏开户| 纳雍县| 威尼斯人娱乐城网址是| 百家乐官网注册开户送彩金| 太阳城百家乐官网红利| 唐人街百家乐的玩法技巧和规则 | 利博百家乐官网的玩法技巧和规则| 太阳城百家乐公司| 玩百家乐官网技巧巧| www.18lk.com| 大发888可靠吗| 澳门百家乐哪家信誉最好| 百家乐官网国际赌场娱乐网规则| 大发888开户注册平台| 百家乐游戏试| A8百家乐官网娱乐网| 澳门百家乐官网秘诀| 爱拼百家乐| 大发888充值卡| 真人百家乐作假视频| 郓城县| 澳门百家乐怎么下载| 百家乐筹码订做| 波音百家乐官网自动投注| 云顶国际| 日博娱乐城开户| 曼哈顿百家乐的玩法技巧和规则| 百家乐官网视频游戏网址| 博发| 明升88备用| 舟山星空棋牌官网| 威尼斯人娱乐场官网h00| 24山方向上| 澳门百家乐官网博彩能做到不输吗| 波克棋牌完整版下载| 大发888备用网址大全| 澳门顶级赌场国际| e娱乐城棋牌| KK娱乐城|