如何確定直流電機驅(qū)動的 PWM 頻率
—— 圓夢小車改進中的個人感悟
在“圓夢小車強身健體啦”一文中,提到了新的電機在原來的驅(qū)動程序下不能正常工作
之事,本文將詳述其中原委。
一、問題的來由
此問題在我第一次涉及直流電機驅(qū)動時就遇到了,可翻遍所有資料,都沒有給我一個完
美的答復(fù),因為我一直覺得應(yīng)該根據(jù)電機的特性來選擇 PWM 的頻率。
直流小電機的特性差別很大,一般遙控玩具的電機通常為 1A 以下,這是為了降低驅(qū)動
電路的成本,通常使用 8050、8550 就可以驅(qū)動。
而遙控模型級別的電機不同,它們的目標是速度,所以電機通常動輒 10A,甚至幾十安
都有,讀者可以去搜索一下模型用的電調(diào)(電子調(diào)速器,也是 PWM 控制模式),那些指標都
是 50A、90A、130A 等等,第一次我看了都“暈”!看看照片,哪個不是一堆 MOS 管并聯(lián)?
所以價格也不菲,通常都成百上千。
一般用于工業(yè)控制的減速電機則不然,由于有很大的減速比,且電壓一般為 12V,所以
電流通常很小,在幾百毫安級別,正常工作只有幾十毫安,這是由于他們要求低功耗,增加
可靠性。
而電機控制的 PWM 模式討論似乎針對第二類的較多。因為 PWM 控制對于遙控模型的
重要程度較高。而遙控玩具一般不調(diào)速,H 橋只是為了換向。工業(yè)控制由于減速后轉(zhuǎn)速已很
低,不再迫切需要調(diào)速了,直接用通斷控制已能滿足大多數(shù)的要求。
似乎只是由于“機器人比賽”才將小電流直流電機的調(diào)速引入。由于比賽機器人的特殊
性,產(chǎn)生了一種中間狀態(tài)的需求:
¾ 它們不像遙控模型那樣追求速度,但想要類似于遙控模型的操控特性;
¾ 它們不滿足于遙控玩具那種簡單的控制,卻要相當于遙控玩具電機那樣的電流;
¾ 因為機器人比賽不像賽車,窮其全力一搏,只求瞬間輝煌;它需要有一定時間去做
一些蘊含智慧的活動,而不是四肢發(fā)達的“莽漢”,所以要有一定的“耐力”。
二、少而“模糊”的答案
在寫“尋跡小車 FollowMe”一文時,我找了許多資料,但沒有找到一篇可以幫我釋疑
解惑的。下面就是幾篇我所找到的文章摘錄:
1)有的這樣說:“PWM 控制的基本電路與 ON/OFF 控制相同,電路構(gòu)成也很簡單,施
加在電機上的 PWM 信號一般為幾千赫至幾十千赫”(摘自《機器人控制電子學(xué)》P76 *1)。
2)有的這樣說:“PWM 控制對頻率的要求一般不是太高。從 50Hz 到 1000Hz 的頻段,
電機都可以正常工作!保ㄕ浴稒C器人探索 —— 工程實踐指南》P129 *2)
3)只有這篇描述的略詳細(摘自《機器人設(shè)計與控制》P183 *3):
此段文字提到了我所關(guān)注的問題: 電機特性對 PWM 頻率的影響?墒撬慕Y(jié)論和建議
卻給我?guī)砹烁嗟睦Щ螅。ǹ醇t線所標注的)
讀者可以對照一下,這三篇內(nèi)容就相互“沖突”的厲害,也許讀者認為我是斷章取義,
作者也許在前或后有先決條件,那可以幫我仔細看看原作,但愿能有所發(fā)現(xiàn)。
4)我以前文章中推薦過多次的《電動機的單片機控制》一書對直流電機驅(qū)動描述的相
當詳細,可唯獨沒有闡述如何確定 PWM 的頻率,只是留了一道思考題:
“4、PWM 頻率如何選擇? ”(摘自書中 P149 *4)。
郁悶!是否此問題簡單到不用描述了?!
5)還有一本我推薦過的書 ——《直流電動機實際應(yīng)用技巧》,書中也只是泛泛的說了
一下:(摘自書中 P122 *5)
文中所說“脈沖列驅(qū)動”就是指 PWM; 電器時間常數(shù) te 為電機等效電感 La 與等效電
阻 Ra 之比(摘自書中的描述,P121 *5),至于如何確定這兩個值不太清楚。
這段和第三篇中所描述的比較一致。似乎都是說 PWM 頻率越高越好。我在網(wǎng)上還看到
有這樣的言論: 頻率越高的 PWM 調(diào)速器檔次越高!
正是這些“模糊、混亂”的概念導(dǎo)致我“無所適從”,所以在“尋跡小車 FollowMe”中,
編寫程序時將 PWM 值和 PWM 的頻率都交給使用者確定,期望讀者能摸索出合適的選擇,
并找出選擇的依據(jù)。
但一直沒有看到我想要的反饋,自己略作嘗試也未能得出清晰的結(jié)論,所以在設(shè)計圓夢
小車時就放棄了 PWM 頻率改變的功能,使用定頻方式(7200Hz)。用在當時的 130 電機上
沒有發(fā)現(xiàn)什么明顯不妥,也就不再深究了。
三、問題再次顯現(xiàn)
這次減速箱裝配好后,我滿懷希望的替換下原來的 130 電機,并且用直流電源先試了一
下,感覺不錯(詳見“圓夢小車強身健體啦”一文)。
立馬裝上控制部分,發(fā)控制命令;本想“秀”一下,用較低的 PWM 值,因為我認為減
速比加大后,力矩應(yīng)該增加,低 PWM 值也應(yīng)能啟動?蓪嶋H效果讓我大失所望,用“走直
線”模式測試,基準 PWM50 啟動不了,加到 100 才勉強能走,到 200 才算比較流暢。此時,
我腦子里立馬掠過一個念頭:“壞了,幾萬塊錢要打水漂了!”。
冷靜一會兒才想起可能是 PWM 頻率的問題。又將上面看過的資料再次研讀一番,而且
拆了一個電機測量電阻和電感。但第三篇中的那段話還是讓我不得其解:
如果為了滿足文中的不等式,PWM 頻率不是越高越好嗎?何來“所允許的最高 PWM
信號頻率”?應(yīng)該是最低頻率才對吧?不知原文是如何描述的。
但按基本的電學(xué)常識分析,不可能頻率越高越好,因為電機的線圈肯定有電感,且電流
越小的電機由于匝數(shù)多,電感量會越大;陔姽W(xué)常識,電感中的電流不能突變,其感抗
與頻率成正比。
所以當施加過高頻率的電壓后,由于感抗作用,可能電流很小。
而電機的力矩產(chǎn)生于磁場作用,而磁場的強弱與電流成正比,所以過小的電流將大大降
低磁力,從而導(dǎo)致電機“無力”。
這就像十字路口的紅綠燈,假設(shè)各方向占 50%的通行時間,如果所設(shè)間隔恰當,就能保
證最佳的通行效果,如果一味縮短周期,直到小于汽車的啟步時間,即使仍保持 50%的比例,
那路口也將完全無法通行。這和電機上施加過高頻率的電壓應(yīng)該是一樣的。
我覺得在新電機上遇到的現(xiàn)象就是這個原因,可遍尋不到依據(jù),只是從 LEGO 的 RCX
技術(shù)資料上看到: RCX 的 PWM 頻率是 125Hz!我覺得 LEGO 的電機和這次選擇的電機參數(shù)
類似,所以下決心修改 PWM 頻率。
上圖為網(wǎng)頁截圖,注意紅線所標信息以及圖示,說明小于 1000Hz 的 PWM 頻率還是可
以使用的。
四、實施
好在 STC12LE5412AD 所提供的 PCA 比較靈活,程序只需略作修改即實現(xiàn)了。
原來 PWM 信號是使用 PCA 的 PWM 模式產(chǎn)生的,好處是不需要軟件干預(yù),只要向相
應(yīng)的寄存器中賦值即可;缺點是頻率變化較單一,靠改變 PCA 計數(shù)器的信號分頻,只有兩種
選擇 —— Fosc/12 或者 Fosc/2 。 對應(yīng) MCU 振蕩器頻率 22.1184MHz,只有兩個 PWM
頻率可選:43200Hz 和 7200Hz。
由于此次是需要降低頻率,所以可以用軟件干預(yù)方式實現(xiàn),即:
使用 PCA 的比較器模式,允許匹配中斷,在中斷中產(chǎn)生 PWM 信號,通過不斷加載新
的比較值控制 PWM 的頻率。PCA 初始化如下:
按此模式,只要 PWM 信號的周期不大于:
1/(22.1184MHz/12) * 65536 = 3.5ms ,即頻率不低于 28Hz 都可以實現(xiàn)。
中斷中產(chǎn)生 PWM 信號的處理如下:
以上為一個電機的處理,另一個電機完全相同。
變量 g_uiMotorLTime[2] 用于存放 PWM 信號的高低電平時間,兩個單元之和為 PWM
的周期。
變量 g_uiMotorLTimeCmp 是高低電平時間的累計值,作為 PCA 通道的比較值,通過
其控制 PCA 的中斷。
程序中作了一些防護,主要是占空比低于一定值后輸出恒為“0”,高于一定值后輸出恒
為“1”。具體可看所附程序(查找“0805”即可找到所有為此修改的地方)。
以下為設(shè)置的常量,通過修改這些值,可方便的改變 PWM 頻率和限定值:
讀者可修改上述參數(shù)方便地實現(xiàn)不同的 PWM 頻率,觀察對電機特性的影響。
五、效果
以下所做測量只是兩個 PWM 頻率的對比:7200Hz vs 125Hz。
為了方便測量,在原來的 PC 機控制界面增加了一個定時輸出功能,可以設(shè)定小車的運
行時間,利用 PC 定時期到時發(fā)出停止命令。界面如下:
之所以選用直接的 PWM 輸出而不用原來的走直線功能,是因為走直線程序中小車會根
據(jù)偏移不斷改變 PWM 值,這樣的結(jié)果就不真實了。
由于電機的差異,所以左右電機的 PWM 值略有不同,以使小車走的接近直線。
測試結(jié)果如下:
PWM 頻率 :125Hz | PWM 頻率:7200Hz | 左 PWM | 右 PWM | 距離
cm | 時間
秒 | 速度
cm/s | 左 PWM | 右 PWM | 距離 cm | 時間 秒 | cm/s 速度 | 250 | 235 | 174 | 4 | 43.5 | 250 | 235 | 174 | 4 | 43.5 | 208 | 195 | 164 | 4 | 41 | 205 | 195 | 140 | 4 | 35 | 160 | 140 | 172 | 5 | 34.4 | 157 | 143 | 120 | 5 | 24 | 110 | 90 | 151 | 6 | 25.1 | 108 | 93 | 86 | 6 | 14.3 | 77 | 60 | 150 | 10 | 15 | 77 | 67 | 75 | 10 | 7.5 | 注:小車程序中 PWM 值 250 為 100%! |
從上表中可以看出,在 PWM 值比價大的時候,兩個頻率的速度差別不大;隨著 PWM
值降低,速度差明顯變大,我認為是前述原因所致,因為隨著 PWM 值降低,有效驅(qū)動脈沖
寬度逐漸縮小,導(dǎo)致電機無法得到有效的能量,所以其出力自然不足。
可以肯定,125Hz 不是最佳頻率,只能說比 7200Hz 好,什么頻率更好?如何確定之?
有待讀者共同探討。
——————————
收筆于:2008 年 6 月 20 日星期五
參考資料:
1、《機器人控制電子學(xué)》 科學(xué)出版社 ISBN7-03-013168-1
2、《機器人探索——工程實踐指南》 電子工業(yè)出版社 ISBN7-5053-9911-X
3、《機器人設(shè)計與控制》 科學(xué)出版社 ISBN5-03-012843-5
4、《電動機的單片機控制》北京航空航天大學(xué)出版社 ISBN 7-81077-175-2
5、《直流電動機實際應(yīng)用技巧》 科學(xué)出版社 ISBN 7-03-017498-4
6、Lego RCX 電機 PWM 信息
完整的pdf格式文檔51黑下載地址:
直流電機的PWM波頻率確定.pdf
(883.41 KB, 下載次數(shù): 193)
2017-8-7 18:44 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|