一种基于DSP的直线加减速拐点误差补偿方法转让专利

申请号 : CN201310181961.2

文献号 : CN103312248B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩云涛任韦孙尧

申请人 : 哈尔滨工程大学

摘要 :

本发明属于电机控制领域,具体涉及一种基于DSP的直线加减速的拐点误差补偿方法。本发明包括:(1)获取加减速所需的控制信息;(2)根据获得的控制信息计算加速、减速和匀速的时间;(3)计算理论拐点和实际拐点的脉冲误差;(4)分配脉冲;(5)按照脉冲分配方案由DSP的定时器产生电机所需脉冲。本发明通过增加该补偿采样周期,有效地解决了曲线加速阶段和减速阶段不对称性问题,从而避免了提前进入减速采样周期而使电机达不到最终要求的脉冲数或者造成滞后进入减速采用周期而使电机在走完整体曲线后出现较大的冲击问题。具有可扩展性强的优点。

权利要求 :

1.一种基于DSP的直线加减速拐点误差补偿方法,其特征在于,包括以下步骤:(1)获取加减速所需的控制信息:

由上位机输入直线加减速所需的控制信息,包括给定脉冲数,加速度常值,最高速度,插补采样周期;

(2)根据获得的控制信息计算加速、减速和匀速的时间,由插补采样周期确定时间段的采样周期个数:v(t)=aTi 0<i=ent(t/T)≤ns其中v(t)为加速时的瞬时速度,i为当前时刻走过的插补采样周期个数,S为给定的脉冲数目,T为插补采样周期,ns为加速或减速所需采样周期个数,a为加速度常值;

(3)计算理论拐点和实际拐点的脉冲误差:取定拐点处的采样周期个数,计算出理论拐点和实际拐点的脉冲误差: 其中Δ为理论拐点和实际拐点的脉冲误差,SN为经过ns个采样周期加速所产生的脉冲个数由DSP实时采集;

(4)分配脉冲:

将误差脉冲补偿给拐点处的采样周期,得到最终的脉冲分配方案,获得每个采样周期里的速度信息:Si=S-SN i=ns+1

i=ns+1

其中Si为拐点处采样周期里的脉冲个数,vi为拐点处采样周期里的脉冲频率;

(5)按照脉冲分配方案由DSP的定时器产生电机所需脉冲:按照分配方案分别由DSP的两个定时器产生满足电机要求的脉冲,定时器1用于控制产生的脉冲个数,定时器2用于控制定时器1的频率,即控制脉冲的输出频率,最终将脉冲输出给电机。

说明书 :

一种基于DSP的直线加减速拐点误差补偿方法

技术领域

[0001] 本发明属于电机控制领域,具体涉及一种基于DSP的直线加减速的拐点误差补偿方法。

背景技术

[0002] 加、减速的控制是电机控制的必要组成部分,大多使用单片机控制。该过程一般可分为直线加减速过程和指数变化加减速过程两类。其中直线加减速过程因其设计简单、计算量小并且容易实现,而使其在工程中相较指数变化加减速过程得到了更加广泛的应用[0003] 对于直线加减速过程来说,一种是有匀速段的加减速过程,一种是无匀速段的加减速过程。有匀速段的加减速过程适用于插补采样频率小的情况下,也即电机控制周期长的情况下。无匀速段的加减速过程,适用于插补采样频率高,对伺服系统的实时性要求较高的场合下。而无论对于那种直线加减速过程,都存在理论的加减速过程与实际的加减速过程不完全一致的问题。
[0004] 对于无匀速段直线加减速过程,理论上首先由获得的加减速控制信息得到相应的加减速时间,当电机完成加速时间后开始进入减速阶段,当完成减速时间时电机停止运行,从而完成控制信息要求的电机位移。实际中利用加减速控制信息得到的并非是精确的加减速所需时间,而是加减速的插补采样周期的个数。这样就造成了在加速段的最后一个插补采样周期中,电机所走过的实际位移与理论位移存在误差。这个误差会在后面的减速过程中一直存在,从而造成当实际位移大于理论位移时候,速度曲线在减速为零时有一个较大的冲击。当实际位移小于理论位移时,就会造成电机停转时达不到控制信息要求的位移。
[0005] 问题的关键在于该方法不能保持加速阶段和减速阶段速度曲线的对称性,最关键的就是在加速阶段向减速阶段过渡的拐点处存在实际脉冲数和理论脉冲数的误差,对直线加减速的应用造成了一定的限制。
[0006] 与发明相关的公开报道有:陈友东,数控系统的直线和S形加减速研究,北京航空航天大学,北京,2006。Xin-Gui Guo,De-Cai Wang,Cong-Xin Li,Ya-Dong Liu,A rapid and accurate positioning method with linear deceleration in servo system,2002,pp.851-861。

发明内容

[0007] 本发明的目的在于提供一种避免提前进入减速采样周期而使电机出现冲击问题,可扩展性更强的直线加减速拐点误差补偿方法。
[0008] 本发明的目的是这样实现的:
[0009] 基于DSP的直线加减速拐点误差补偿方法包括下列步骤:
[0010] (1)获取加减速所需的控制信息:
[0011] 由上位机输入直线加减速所需的控制信息,包括给定脉冲数,加速度常值,最高速度,插补采样周期;
[0012] (2)根据获得的控制信息计算加速、减速和匀速的时间:
[0013] 由插补采样周期确定时间段的采样周期个数:
[0014] v(t)=aTi 0
[0015]
[0016] 其中v(t)为加速时的瞬时速度,i为当前时刻走过的插补采样周期个数,S为给定的脉冲数目,T为插补采样周期,ns为加速(减速)所需采样周期个数,a为加速度常值;
[0017] (3)计算理论拐点和实际拐点的脉冲误差:
[0018] 取定拐点处的采样周期个数,计算出理论拐点和实际拐点的脉冲误差:其中Δ为理论拐点和实际拐点的脉冲误差,SN为经过ns个采样周期加速所产生的脉冲个数由DSP实时采集;
[0019] (4)分配脉冲:
[0020] 将误差脉冲补偿给拐点处的采样周期,得到最终的脉冲分配方案,获得每个采样周期里的速度信息:
[0021] Si=S-SN i=ns+1
[0022] i=ns+1
[0023] 其中Si为拐点处采样周期里的脉冲个数,vi为拐点处采样周期里的脉冲频率;
[0024] (5)按照脉冲分配方案由DSP的定时器产生电机所需脉冲:
[0025] 按照分配方案分别由DSP的两个定时器产生满足电机要求的脉冲,定时器1用于控制产生的脉冲个数,定时器2用于控制定时器1的频率,即控制脉冲的输出频率,最终将脉冲输出给电机。
[0026] 本发明的方法的有益效果是:
[0027] 本为直线加减速拐点处脉冲误差补偿提供了一种全新的思路,提出了在拐点处增加一个补偿采样周期的方法。通过增加该补偿采样周期,有效地解决了曲线加速阶段和减速阶段不对称性问题,从而避免了提前进入减速采样周期而使电机达不到最终要求的脉冲数或者造成滞后进入减速采用周期而使电机在走完整体曲线后出现较大的冲击问题。所述的直线加减速拐点误差补偿方法是基于DSP完成的,可以扩展到运动控制卡或者运动控制器或者FPGA或者MCU完成,具有可扩展性强的优点。所述的直线加减速拐点误差补偿方法可用于伺服电机或者步进电机或者直线电机等一切直线加减速控制当中。

附图说明

[0028] 图1为基于DSP的直线加减速拐点误差补偿示意图;
[0029] 图2为无匀速段的直线加减速的速度轮廓曲线;
[0030] 图3为DSP的程序流程图;
[0031] 图4为加误差补偿的直线加减速的位移曲线;
[0032] 图5为加误差补偿的直线加减速的速度曲线;
[0033] 图6为不加误差补偿的直线加减速的位移曲线;
[0034] 图7为不加误差补偿的直线加减速的速度曲线。

具体实施方式

[0035] 下面结合附图对本发明作进一步描述:
[0036] 第一步,获取加减速所需的控制信息:
[0037] 由上位机输入直线加减速所需的控制信息,其控制信息包括:给定脉冲数,加速度常值,最高速度,插补采样周期;
[0038] 所述的直线加减速是指在加减速过程中加速度为常数、加速度导数为零的加减速过程。对于无匀速段其要求的条件如(1)所示:
[0039] ent[S/(vmaxT)]≤ns (1)
[0040] 其中T为插补采样周期,ns为加速(减速)所需采样周期个数,S为给定脉冲数,vmax为速度最大值。
[0041] 第二步,根据获得的控制信息计算加速、减速和匀速的时间
[0042] 根据获得的给定脉冲数、加速度和最高速度等控制信息,结合直线加速的递推公式可以得到加速、减速和匀速段的运行时间然后由插补采样周期可得各段的采样周期个数,直线加速的递推公式如(2)、(3)所示:
[0043] v(t)=aTi 0
[0044]
[0045] 其中v(t)为加速时的瞬时速度,i为当前时刻走过的插补采样周期个数,S为给定的脉冲数目,T为插补采样周期,ns为加速(减速)所需采样周期个数,a为加速度常值。
[0046] 第三步,计算理论拐点和实际拐点的脉冲误差
[0047] 由步骤二的计算过程可得在拐点处所经过的时间不是采样周期的整数倍,从而使得在加速到匀速或加速到减速的拐点处存在脉冲误差,由步骤二获得的拐点处采样周期个数,可以计算出理论一半位移的拐点和整数个采样周期实际位移拐点的脉冲误差;脉冲误差的定义如(4)所示:
[0048]
[0049] 其中Δ为理论拐点和实际拐点的脉冲误差,SN为经过ns个采样周期加速所产生的脉冲个数由DSP实时采集。
[0050] 第四步,由误差补偿算法进行脉冲分配
[0051] 通过将步骤三得到误差脉冲补偿给拐点处的采样周期里,得到最终的脉冲分配方案,获得每个采样周期里的速度信息,拐点处采样周期里的脉冲个数和脉冲频率定义如(5)、(6)所示:
[0052] Si=S-SN i=ns+1 (5)
[0053] i=ns+1 (6)
[0054] 其中Si为拐点处采样周期里的脉冲个数,vi为拐点处采样周期里的脉冲频率,SN为经过ns个采样周期加速所产生的脉冲个数由DSP实时采集。
[0055] 又由直线加速的对称性可以得到,减速阶段脉冲个数和脉冲频率的分配与加速阶段的分配一样,直到产生的脉冲总数与输入的脉冲总数相等时,停止该直线加减速过程,完成电机加减速控制。
[0056] 第五步,按照分配方案由DSP的定时器产生电机所需的脉冲
[0057] 按照分配方案,分别由DSP的两个定时器产生满足电机要求的脉冲,定时器1用于控制产生的脉冲个数,定时器2用于控制定时器1的频率也即控制脉冲的输出频率,此频率与电机的速度相对应。当定时器1的频率变大时,电机的速度相应变大,其变小的电机减速。定时器2的频率也即为系统的插补采样频率,其周期也即插补采用周期。最终将产生的脉冲输出给控制电机驱动设备,从而实现对电机的加减速控制。
[0058] 述的直线加减速是基于脉冲频率的,高脉冲频率对应高速,低脉冲频率对应低速。
[0059] 直线加减速是指在加减速过程中加速度为常数、加速度导数为零,无匀速段的加减速过程。加减速拐点就是由加速阶段进入到减速阶段的位置。无匀速段加减速拐点误差补偿,由直线加减速曲线对称性知,其加减速期间需要的脉冲总量应该为总脉冲数的一半,也即在位移一半处为拐点的理论位置,而实际拐点位置为最接近位移一半处的整数个采样周期个数处。直线加减速拐点误差补偿方法是基于DSP完成的,可以扩展到运动控制卡或者运动控制器或者FPGA或者MCU完成。直线加减速拐点误差补偿方法可用于伺服电机或者步进电机或者直线电机控制中。
[0060] 基于DSP的直线加减速拐点误差补偿方法,首先设定获取加减速所需的控制信息,并根据获得的控制信息计算加速、减速和匀速的时间,然后计算理论拐点和实际拐点的脉冲误差,再由误差补偿算法进行脉冲分配,最后按照分配方案由DSP的定时器产生电机所需的脉冲。
[0061] 工程实例:某直线伺服电机,采用该方式进行加减速控制。
[0062] 1、获取电机各运行参数和加减速控制信息
[0063] 1.1、电机各运行参数
[0064] 最大脉冲输入频率:300K
[0065] 最大RS232C速度:19.6Kbps
[0066] 编码器与位移关系:2000脉冲/mm
[0067] 1.2、加减速控制信息
[0068] 给定脉冲数S:20000个
[0069] 插补采样周期T:1ms
[0070] 加速度常值a:1000KHz
[0071] 最大速度值vmax:250KHz
[0072] 2、计算编程参量
[0073]
[0074] 由ent[S/(vmaxT)]=ent[20000/250000×0.001]=80≤ns=141可得此处加减速曲线无匀速段。如图2所示无匀速段的直线加减速的速度轮廓曲线。
[0075] 由DSP实时采集经过141个采样周期加速所产生的脉冲个数SN,从而得到理论拐点和实际拐点的脉冲误差,进而计算出在142采样周期里的脉冲频率。这种补偿方法既可以保证该加减速曲线的实时性和又可以保证它的对称性。
[0076] 3、DSP的定时器产生电机所需的脉冲
[0077] 如图3所示
[0078] 首先,初始化DSP的定时器,利用DSP内部的正交编码电路记录由电机编码器发出的脉冲的个数,对脉冲个数的采用周期选为10ms,并将记录的脉冲个数存储到DSP的片flash中,在程序运行结束后由上位机读出。另外程序一运行,相应的编码器采集就开始运行,保证数据记录的实时性。
[0079] 然后,由上位机通过串口将所需要的加减速控制信息输入到DSP中,当DSP内部判定收到控制信息时候,相应的脉冲产生标志位启动。进而计算加速、减速和匀速段的运行的采样周期个数,本实验得到加速和减速段的采样周期个数为141个。
[0080] 当得到各段采样周期后,打开产生脉冲的两个定时器并从提供的控制信息中得到电机的运动方向。当输入总脉冲数为正数时候,电机正转,输入总脉冲数为负数时,电机反转。其中,定时器1中断控制一个通用I/O管脚产生控制电机所需的高低电平脉冲,定时器2用于控制定时器1的中断频率,进而控制脉冲的输出频率。当定时器1的中断次数小于一半脉冲总量时候,定时器1的频率以固定加速度加速;当定时器1的中断次数大于一半脉冲总量时候,定时器1的频率以固定加速度减速。其中当定时器2的中断次数大于ns个也即141个采样周期时候,定时器1的脉冲频率为脉冲总量减去定时器1当前的脉冲个数通过换算后而得到的脉冲频率,从而实现直线加减速拐点脉冲误差补偿。从而实现了直线加减速曲线的对称控制。
[0081] 作为对比,在获得电机参数和计算完编程参量后,在相同的条件下,对不加入拐点脉冲误差补偿的情况也进行了一次工程实验,其参数选取与加入拐点脉冲误差方法相一致,从而得到了与加入拐点脉冲误差补偿的对比实验曲线。其中,实验曲线是通过DSP的正交编码电路记录的电机编码器的脉冲个数获得的,曲线中的点是DSP每10ms进入一次计数中断所记录得到的数据也即横轴的单位长度为10ms,纵轴为采集电机编码器的脉冲个数。并在最后加减速实验完成后,通过上位机和DSP之间的串口上传给上位机分析获得的。
[0082] 验证结果附图说明
[0083] 下面是加误差补偿直线加减速和不加误差补偿直线加减速的验证结果:
[0084] 图4为加误差补偿的直线加减速的位移曲线,在图中可以看到相对于图6其最终的稳态误差更小,并且在最终达到脉冲总数的时候,曲线更加平滑。相反图6不加误差补偿,在最终达到脉冲总数时曲线明显不连续。
[0085] 图5为加误差补偿的直线加减速的速度曲线,在图中可以看到相对于图7其曲线的对称性更加完美,同时在最终达到脉冲总数,加误差补偿的直线加减速曲线相交于不加误差补偿的直线加减速曲线有更好的稳定性。不加误差补偿的曲线在达到脉冲总量后,相对于加误差补偿的曲线电机有较大的冲击,并且加速度越大其冲击越明显。
[0086] 可见本发明有效地解决了曲线加速阶段和减速阶段不对称性问题,从而避免了提前进入减速采样周期而使电机达不到最终要求的脉冲数或者造成滞后进入减速采用周期而使电机在走完整体曲线后出现较大的冲击问题。
[0087] 尽管已经参考实例及附图,对本发明的一种基于DSP的直线加减速拐点误差补偿方法进行了说明,但是上述公开的内容仅是为了更好的理解本发明,而不是以任何方式限制权利要求的范围,故而凡是依照本发明专利申请范围所陈述的各种结构、特征及原理等等,均包含于本发明的保护范围。