一種基於數字頻率合成技術的脈衝生成方法與流程
2023-12-01 05:49:36 2
本發明涉及運動控制技術領域,具體涉及一種基於數字頻率合成技術的脈衝生成方法。
背景技術:
在運動控制中,特別是位置控制模式,在進行粗插補後,還要進行精插補,也就是把粗插補獲得的數據通過精插補轉化為脈衝的形式來控制電機,而精插補就是脈衝生成。由於電機直接由脈衝進行控制,這樣在一個插補周期中,脈衝生成的精度就會影響整個電機的控制精度,如果不能在每個插補周期產生精確脈衝,電機就會產生積累誤差。
針對脈衝生成方法,目前主要有直接分頻法,就是直接通過系統時鐘與期望目標輸出時鐘的商進行分頻,這樣的分頻法如果不能夠整除,這樣會產生較大的誤差,而且會有積累誤差,這種方法雖然簡單但是不適用於對精確電機控制的場合。
另外一種方法是小數分頻法,假設系統時鐘與期望目標時鐘的商為n,此方法就是通過實現多次n分頻以及多次n+1分頻,在一個計數周期內獲得等價於期望目標頻率的脈衝數,實現總體意義上的小數分頻比。有關文獻有對小數分頻的具體實現,並且有實現n分頻以及n+1分頻交叉混合,這樣可以減少相位噪聲,也即是時鐘抖動。雖然通過上述交叉混合可以在一定程度上減少相位噪聲,但是由於是由兩種不同的分頻脈衝組成,這樣就會使得電路頻繁的在這兩個分頻電路中進行開關,這樣帶來了另外一個副作用,也就是開關噪聲。這兩種噪聲都是不可避免的,並且兩種噪聲都會降低電路的穩定性。
技術實現要素:
為了克服現有技術存在的缺點與不足,本發明提供一種基於數字頻率合成技術的脈衝生成方法。
本發明採用如下技術方案:
一種基於數字頻率合成技術的脈衝生成方法,其具體生成步驟為:
設置一個數字周期;
在系統時鐘下,產生採樣使能信號;
根據系統時鐘和採樣使能信號,計算得到數字步進量;
根據系統時鐘和採樣使能信號,在數字周期範圍內以數字步進量進行循環累加;
根據設定的閾值和循環累加的當前計數值進行比較,產生目標脈衝。
所述數字周期是2的冪次方。
目標脈衝頻率與期望脈衝頻率之差小於1hz。
最大目標脈衝頻率為系統時鐘頻率的一半。
計算得到數字步進量,由如下公式得到:
其中:c為數字步進量即商的整數部分,ε為小數部分,其中0≤ε<1;fsys和fo(kδ)分別為系時鐘和期望目標輸出脈衝參數,單位為hz;m為數字周期;k為頻率控制字。
在數字周期內以數字步進量進行循環累加,具體為:當前計數值大於或等於數字周期時,則把當前計數值減去數字周期,將相減獲得的差作為當前計數值,然後以步進量進行累加,直到遇到採樣使能信號,則當前計數值被強制清零。
如果設定的閾值小於數字周期,則當前的計數值與閾值比較:
第一種:如果小於或等於閾值,設置為低電平,若大於閾值,設置為高電平;
第二種:如果小於或等於閾值,設置為高電平,若大於閾值,設置為低電平。
還包括在復位狀態或者起始狀態,則第一種情況,目標脈衝為低電平,第二種情況,目標脈衝為高電平。
一種基於數字頻率合成技術的脈衝生成裝置,包括
使能發生器:用於產生採樣使能信號;
數字步進量發生器:用於根據系統時鐘和採樣使能信號,計算得到數字步進量;
數字循環累加器:用於在數字周期m中以步進量c循環累加;
數字波形發生器:根據設定的閾值和數字循環累加器的當前計數值進行比較,產生目標脈衝。
本發明的有益效果:
本發明不僅能夠得到精確的脈衝數,還且能夠得到更加均勻穩定的脈衝、更低的相位噪聲和開關噪聲的脈衝;
本發明採用數字周期範圍內以數字進步量進行循環累加,使得運動控制更加精確,振動最小。
附圖說明
圖1是本發明的原理框圖;
圖2是本發明的時鐘生成示意圖;
圖3是相位斜率與頻率的相關性示意圖;
圖4是m等分圓的示意圖。
具體實施方式
下面結合實施例及附圖,對本發明作進一步地詳細說明,但本發明的實施方式不限於此。
實施例
如圖1所示,clk_fsys和clk_f′o(kδ)分別為系統時鐘和實際目標輸出脈衝;fsys和fo(kδ)分別為系時鐘和期望目標輸出脈衝參數,單位為hz;ts_clken為採樣使能信號;m為數字周期;c為數字步進增量。
圖2中,clk_fsys和clk_f′o(kδ)分別為系統時鐘和實際目標輸出脈衝;tp是期望目標頻率脈衝clk_fo(kδ)的周期;t1-δ為實際目標頻率脈衝最後一個脈衝的時間;ts為一個採樣段時間,各個採樣段時間相等;ts_clken為採樣使能信號;δ1和δ2分別為採樣段1和採樣段2中最後一個脈衝的相對於期望目標頻率clk_fo(kδ)缺少的脈衝個數。
一種基於數字頻率合成技術的脈衝生成方法,其裝置部分包括使能發生器、數字步進量發生器、數字循環累加器及數字波形發生器;其具體步驟為:
設置一個數字周期,所述數字周期為2的冪次方,也可以是任意一個正整數,為了達到脈衝的精確性,一般數字周期取數比較大;
在系統時鐘下,產生採樣使能信號;所述採樣使能信號可以是周期性的,也可以是非周期性的,在一個採樣使能段中,目標脈衝頻率和期望脈衝頻率之差小於1hz,最大目標脈衝頻率為系統時鐘頻率的一半。
在數字步進量發生器中,根據系統時鐘和採樣使能信號,計算得到數字步進量;
所述數字步進量的計算方法如下:
其中c為商,整數部分,也即是數字步進量;ε為小數部分,其中0≤ε<1;fsys和fo(kδ)分別為系統時鐘和期望目標輸出脈衝參數,單位為hz;m為數字周期;k為頻率控制字。
在數字循環累加器中根據系統時鐘和採樣使能信號,在數字周期範圍內以數字步進量進行循環累加;
具體為:當前計數值大於或等於數字周期時,則把當前計數值減去數字周期,將相減獲得的差作為當前計數值,然後以步進量進行累加,直到遇到採樣使能信號,則當前計數值被強制清零。
在數字波形發生器中,根據設定的閾值和循環累加的當前計數值進行比較,產生目標脈衝,所述目標脈衝與期望脈衝頻率之差小於1hz。
方案一:若小於或等於閾值,設置為低電平,若大於閾值,設置為高電平;方案二:若小於或等於閾值,設置為高電平,若大於閾值,設置為低電平;針對目標脈衝,在復位狀態或者是起始狀態,方案一時,目標脈衝為低電平,方案二時,目標脈衝為高電平。
所述數字合成技術具體為:
假設單頻率信號為:
u(t)=u0sin(2πf0t+θ0)(1)
其中幅值u0以及初始相位θ0均為常數,這個時候信號u(t)的頻譜則是在頻率f0處的一條譜線。這裡令u0=1和θ0=0,也就是:
u(t)=sin(2πf0t)=sin(ω0t)=sim(θ(t))(2)
其中相位函數θ(t)=2πf0t,則對時間的導數為:
通過式(3)可知,相位的斜率也就是信號的頻率,也就是可以知道,相位的斜率決定了信號的的頻率ω0,這兩者的相關性如圖3所示。
對式(2)的信號進行採樣,其中採樣周期為tc,則採樣頻率為這樣可以得到離散序列為:
u(n)=sin(2πf0ntc)(4)
其中n=0,1,2,…。這樣可以獲得相位離散序列為:
θ(n)=2πf0ntc(5)
其中n=0,1,2,…。同樣相對應於式(3)的導數形式,在離散序列中是由差分方程表示,也即是相位增量為:
同樣通過式(6)知道,相位的斜率δθ決定了信號的頻率f0,如圖3所示,這裡只是離散的形式。如圖4所示,將一個周期相位2π等分為m等分,其中m=2n,則m等分角度δ為:
當相位增量時,根據式(6)可得信號的最小頻率或者是頻率解析度為:
根據奈奎斯特採樣定理,採樣頻率fc必須大於或等於2倍最大信號頻率f0max,由於最大採樣頻率是固定的,因此可以求得最大輸出信號頻率f0max為:
若取相位增量(其中k為整數)根據式(6)可得目標信號頻率為:
由式(8)可知,當m值越大,最小頻率越小或者頻率解析度越高,對應式(10)中目標信號頻率f0(kδ)的精度就會越高。綜上所述,n值越大等價於m值越大,這樣精度就會越高。因此假設n=32,也即是m=2n=232。針對k值,根據式(9)和式(10)可得,k的最大值為
令n=32,系統時鐘fc=100mhz,根據式(8)可得頻率的解析度為:
其中0.0232831是進行五入得到的,式(11)表明在1s中,只有約0.0232831個脈衝的誤差,雖然脈衝誤差很小,但是還是不能獲得精準脈衝數。
以上就是數字頻率合成技術,數字頻率合成技術具有低相位噪聲、低開關噪聲和高頻率解析度等的優點,本發明就是在此基礎上精確完成一個採樣段ts內精確脈衝的生成,具體理論分析如下:
在式(10)中有一個參數k,表示相位增量δθ是m等分角度δ的k倍,其實參數k有另外一個專用名詞為頻率控制字fcw(frequencycontrolword)。由式(10)可得fcw為:
為了獲得在一個採樣段ts內具有準確脈衝數的目標時鐘f0(kδ),根據式(10),需要先求取頻率控制字fcw或k(後面用k代替),也就是通過頻率參數根據式(12)預先求取準確的頻率控制字k。通過式(12)分析,由於涉及到除法,不能求得精確的k值,這樣就不能得到精確的目標時鐘f0(kδ)。雖然不能得到精確目標時鐘f0(kδ),但是能夠獲得一個採樣段ts內的精確脈衝數,以下便是對其理論性研究分析。
如果式(12)涉及到到無理式,這樣就不能得到準確的k值,即便是有理分式,這樣求得的k值也會有小數,這些情況是不能進行分頻得到準確時鐘的。基於以上,本發明是通過式(12)的商來進行著手的,由式(12)可知:
其中c是商,為正整數;ε是小數部分,0≤ε<1。這樣通過c求得的實際目標輸出頻率為:
根據式(10)和式(14)可得誤差e為:
其中0.0232831是進行五入得到的,由於0≤ε<1,可得誤差e範圍為:
0≤e<0.0232831(hz)(16)
根據式(16)可得一個採樣段ts(單位為秒)內的誤差脈衝數δ為:
0≤δ<0.0232831ts(p)(17)
通過式(17),可得結論a:在一個採樣段ts(單位為秒)中,通過本發明法得到實際目標頻率f′0(kδ)比理想目標頻率f0(kδ)缺少的脈衝個數δ小於0.0232831ts個。
通過式(7)可知,一個相位周期2π可以表示為:
2π=mδ(18)
而又有相位增量δθ為:
δθ=kδ(19)
由於k是通過式(13)預先求解的值,也即是c,因此實際的相位增量為δθ′:
δθ′=cδ(20)
通過式(18)和式(20)中可以知道,在一個相位周期2π中,對應於一個周期的數字量m;同樣相位增量δθ′則是對應一個數字步進增量c。因此可以得到另外一個結論,也即是結論b:在一個相位周期2π內對應相位增量δθ′進行累加等價於在一個數字周期m內對數字步進增量c進行累加。因此參數c可稱為數字步進增量。
基於以上結論a和結論b,可以通過圖1的原理框圖對本發明方法進行實現。假設圖1中比較閾值x為這樣就可以使得目標輸出脈衝佔空比最大限度的接近50%;假設採樣段時間ts為1ms,並且各個採樣段ts時間均相等。並且令當循環累加器中的當前計數值小於或等於x-1時,clk_f′o(kδ)為低電平,當大於x-1,clk_f′o(kδ)為高電平;這時候在復位狀態或者是起始狀態時clk_f′o(kδ)為低電平。其中圖2就是對上述實現過程的具體時序分析,為了方便理論分析,在圖2中有兩個假設:
假設一:在一種最極端的情況下,也即是把一個採樣段1ms內的缺少的誤差總脈衝數δ全部在實際目標頻率脈衝clk_f′o(kδ)中的最後一個脈衝中表現出來,也就是在clk_f′o(kδ)最後一個脈衝相對於期望目標頻率clk_fo(kδ)缺少δ個脈衝。如果這個條件也滿足,則是其他的情況必然滿足,因為本發明方法中一個採樣段中實際目標頻率脈衝中的各個脈衝具有平均分攤誤差的效應。
假設二:在一個採樣段1ms內的前個脈衝周期相等,並且與期望目標頻率clk_fo(kδ)的周期相等,也就是
其中fo(kδ)的單位為hz。
根據以上假設一、假設二和結論a可知,通過圖2這樣就可以求得實際目標頻率脈衝clk_f′o(kδ)中最後一個脈衝的佔空比p1-δ%為:
通過式(22)可知,佔空比p1-δ%遠大於50%,通過圖1的設計原理,在一個採樣段1ms中,實際目標頻率脈衝clk_f′o(kδ)在最後一個脈衝周期t1-δ(<tp)中可以產生一個完整的脈衝。由於在下一個採樣段ts中又會重新進行頻率合成,這樣就會使得cnt為0重新開始計數,以數字步進增量c進行累加,這樣就不會產生積累誤差。
綜合以上分析可知,通過本發明方法,在一個採樣段1ms內可以精確的產生個脈衝。與小數分頻相比,不僅可以產生精確的脈衝,而且具有更加均勻穩定的脈衝、更低的相位噪聲和開關噪聲等優點,對伺服電機的控制就更具有穩定性。
運用圖1中的信號波形發生器,當比較閾值x為數字周期的一半,也即是時,2個系統時鐘就可以完整的實現目標輸出頻率脈衝的一次低電平和高電平變化,也即是可以完整的生成一個目標輸出頻率脈衝。通過式(9)可知,最大輸出信號頻率為最大採樣頻率的一半,也即是系統時鐘的一半。這條性質表明,使用本發明方法,在圖2中的最後一個脈衝中至少有2個系統時鐘。因此,選擇一個合適採樣段時間ts,也即在ts內,實際輸出頻率比期望輸出頻率小於1hz時,使用本發明方法,可以精確的產生期望輸出頻率的脈衝個數
上述實施例為本發明較佳的實施方式,但本發明的實施方式並不受所述實施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護範圍之內。