作者:xupengtao7 發表時間:2013-1-28 15:27:56 |
由于步進電機自身的一些特性,造成在對于步進電機的控制上,并不是我們所想的那樣,在給一個很高頻率的方波時,我們需要先從一個較低頻率逐漸向一個高的頻率增加。問題探討到這里的時候我們不禁要問,我們在控制的過程中又是要按一個怎樣的方法將步進電機的頻率逐次增加。 在大量閱讀步進電機控制策略的文章后,我認為問題的關鍵是在什么時候單片機應該輸出多大的頻率。我參照了資料上所給的一次啟動上升曲線Y=aX+b(a為一次曲線系數,b為電機的起始頻率,Y為對應頻率,X為時間)以及以e為底的指數曲線f(t)=C(1-[e的(-t/a)次方])(C為步進電機運行的****頻率,a是決定升降快慢的時間常數)。在找到頻率與時間的關系后,這時我又發現新的問題,怎樣將時間這個變量與單片機相聯系。經過思考,發現所給脈沖個數就是使其相聯系的量,也就是說,在程序上只要我們螺桿式冷水機能算出在某個頻率下執行幾個周期后,變到下一個周期上。(由于單片機自身的運行周期特點以及電機自身的特點,我們在輸出頻率時,我們只能取幾個離散的點)N=t/T(N為在某種頻率下所要運行的周期個數,t為在某種頻率下所要運行的時間,對應頻率的時間1/f) 關于具體的取值計算見工作表一次函數、指數函數 我將通過一次曲線和指數曲線所得到的數組分別通過程序進行嘗試,神奇的發現一次曲線啟動所用的時間長,但是停止所用時間短。而對于指數曲線恰恰相反,啟動時間短,停止時間長。在這種情況下,我有考慮到我們所需要盡快將電機啟動停止所以我啟動時選用指數函數的周期個數數組,停止時選用一次函數的周期個數數組。 |
|