本发明涉及运动控制技术领域,具体涉及一种基于数字频率合成技术的脉冲生成方法。
背景技术:
在运动控制中,特别是位置控制模式,在进行粗插补后,还要进行精插补,也就是把粗插补获得的数据通过精插补转化为脉冲的形式来控制电机,而精插补就是脉冲生成。由于电机直接由脉冲进行控制,这样在一个插补周期中,脉冲生成的精度就会影响整个电机的控制精度,如果不能在每个插补周期产生精确脉冲,电机就会产生积累误差。
针对脉冲生成方法,目前主要有直接分频法,就是直接通过系统时钟与期望目标输出时钟的商进行分频,这样的分频法如果不能够整除,这样会产生较大的误差,而且会有积累误差,这种方法虽然简单但是不适用于对精确电机控制的场合。
另外一种方法是小数分频法,假设系统时钟与期望目标时钟的商为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)可知,相位的斜率也就是信号的频率,也就是可以知道,相位的斜率
对式(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等分角度δ为:
当相位增量
根据奈奎斯特采样定理,采样频率fc必须大于或等于2倍最大信号频率f0max,由于最大采样频率是固定的,因此可以求得最大输出信号频率f0max为:
若取相位增量
由式(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为
假设一:在一种最极端的情况下,也即是把一个采样段1ms内的缺少的误差总脉冲数δ全部在实际目标频率脉冲clk_f′o(kδ)中的最后一个脉冲中表现出来,也就是在clk_f′o(kδ)最后一个脉冲相对于期望目标频率clk_fo(kδ)缺少δ个脉冲。如果这个条件也满足,则是其他的情况必然满足,因为本发明方法中一个采样段中实际目标频率脉冲中的各个脉冲具有平均分摊误差的效应。
假设二:在一个采样段1ms内的前
其中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为数字周期的一半,也即是
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。