CN101833306B - 一种基于前瞻-滤波技术的多程序段连续加减速控制方法 - Google Patents

一种基于前瞻-滤波技术的多程序段连续加减速控制方法 Download PDF

Info

Publication number
CN101833306B
CN101833306B CN 201010169651 CN201010169651A CN101833306B CN 101833306 B CN101833306 B CN 101833306B CN 201010169651 CN201010169651 CN 201010169651 CN 201010169651 A CN201010169651 A CN 201010169651A CN 101833306 B CN101833306 B CN 101833306B
Authority
CN
China
Prior art keywords
speed
section
acceleration
planning
velocity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201010169651
Other languages
English (en)
Other versions
CN101833306A (zh
Inventor
杨东升
李鸥
鲍玉凤
刘明烈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Institute of Computing Technology of CAS
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Shenyang Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd, Shenyang Institute of Computing Technology of CAS filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN 201010169651 priority Critical patent/CN101833306B/zh
Publication of CN101833306A publication Critical patent/CN101833306A/zh
Application granted granted Critical
Publication of CN101833306B publication Critical patent/CN101833306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种基于前瞻-滤波技术的多程序段连续加减速控制方法,步骤为:根据输入的工件加工程序数据进行前瞻规划,确定各程序段的前瞻规划参数;利用各程序段的规划参数进行相应的直线加减速规划,并对速度值进行插补;对各段插补后的速度值进行分段滑动平均滤波,得到新的速度值;对输入工件加工程序数据进行前瞻规划计算包括:根据工件加工程序数据,按照转接点算法确定各程序段间的转接点速度;按照规划参数求解算法完成对各程序段规划参数的确定;按照位移补偿算法确定直线加减速规划时的新位移。本发明方法将改进的直线加减速规划方法和滤波技术以及前瞻技术相结合,实现了多程序段连续规划,提高了加工效率和计算效率,平滑性好,易于实现。

Description

一种基于前瞻-滤波技术的多程序段连续加减速控制方法
技术领域
本发明涉及一种高速数控系统控制技术,具体的说是一种基于前瞻-滤波技术的多程序段连续加减速控制方法。
背景技术
高速高精是数控系统当前的发展趋势,加减速控制是高速数控系统的核心技术之一。常用的加减速控制方法有直线加减速(速度连续)、S形曲线加减速(加速度连续)以及加速度平滑加减速(加加速连续)等。其中,直线加减速控制方法因其计算量小,编程简单而得到广泛使用,但是由于其在加减速阶段存在加速度突变现象,导致机床产生振动,不适合用于数控机床的高速高精加工。S形曲线加减速方法,加速度连续但加加速不连续,依然存在轻微的机床振动。加速度平滑加减速方法,加加速连续,解决了加工中的机床振动问题,满足高速高精加工的要求。S形曲线加减速和加速度平滑加减速虽然可以解决机床振动问题,但计算量巨大,编程复杂,对CPU性能要求高。
目前,国内的S形曲线或加速度平滑加减速控制方法都是局限于单程序段规划,并未实现多程序段连续规划,在中国发明专利《一种基于滤波技术的数控系统加减速控制方法》(专利号:ZL200610155810.X)中,提出运用直线加减速和滤波技术结合的规划方法,并证明此方法可以得到和S形曲线或加速度平滑加减速相同的效果。然而,该专利也只局限于单程序段规划,并未实现多程序段连续规划。
前瞻技术是数控系统的关键技术之一。其目的主要是为了实现多程序段连续加工,以实现高速加工的目标。此技术特点在于通过适当地确定加减速规划方案,并综合考虑多方因素来确定程序段转接点的非零速度值等运动控制参数,结合实时插补时的速度控制方法,便可以在程序段连接处实现连续加工。若将前瞻技术和滤波技术相结合,可在达到高速加工目标的同时,使加工过程更加平滑,工件加工效果更好。具有将前瞻技术、滤波技术以及改进的直线加减速方法相结合的多程序段连续加减速控制技术尚未见报道。
发明内容
针对现有技术中运用直线加减速和滤波技术结合的规划方法只局限于单程序段规划的不足之处,本发明要解决的技术问题是提供一种简单、光滑、平稳、高速、连续的基于前瞻-滤波技术的多程序段连续加减速控制方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明一种基于前瞻-滤波技术的多程序段连续加减速控制方法包括以下步骤:
根据输入的工件加工程序数据进行前瞻规划,确定各程序段的前瞻规划参数;利用上述各程序段的规划参数进行相应的直线加减速规划,并对速度值进行插补;对各段插补后的速度值进行分段滑动平均滤波,得到新的速度值。
所述对输入工件加工程序数据进行前瞻规划计算包括以下步骤:
根据工件加工程序数据,按照转接点算法确定各程序段间的转接点速度;按照规划参数求解算法完成对各程序段规划参数的确定,其中规划参数包括:最大速度、直线加减速加速段和减速段的加速度以及滤波项数;
按照位移补偿算法确定直线加减速规划时的新位移。
所述转接点算法为:
初始化程序标号为0;
当当前程序段末端初始速度Vp大于当前程序段始端速度Vs时,直接判断当前实际位移L是否大于第1阈值S0,否则将当前程序段末端初始速度Vp的值与当前程序段始端速度Vs的值互换,并将程序标号赋值为1,再判断当前实际位移L是否大于第1阈值S0
如果实际位移L大于第1阈值S0时,则根据公式(2)求得加速过程中的匀加速段插补周期T的个数,即为中间变量k:
Figure GSA00000097406800021
式中,b为中间变量,
Figure GSA00000097406800022
m为初始滤波项数,amax为最大加速度;
再根据公式(3)求得最大可达末端速度V′p
V′p=Vs+(m+k)Tamax                       (3)
判断程序标号是否为1,如为1则将当前程序段末端初始速度Vp与当前程序段始端速度Vs互换;
当当前程序段始端速度Vs大于最大可达转接点速度V′p时,调整当前程序段始端速度Vs的值为最大可达转接点速度V′p,转接点的初始速度Vp不需调整,端点速度确定完毕;
如果当前程序段始端速度Vs不大于最大可达转接点速度V′p,则转接点的初始速度Vp不需调整,端点速度确定完毕;
或者,如果程序标号不为1,则:
当转接点的初始速度Vp大于最大可达转接点速度V′p时,调整转接点的初始速度Vp等于最大可达转接点速度V′p,端点速度确定完毕;
当转接点的初始速度Vp不大于最大可达转接点速度V′p时,转接点的初始速度Vp不需调整,端点速度确定完毕;
或者,当实际位移L不大于第1阈值S0时,利用公式(4)求得加加速阶段插补周期个数,即为中间变量n:
Figure GSA00000097406800031
其中,p、q为中间变量,
Figure GSA00000097406800032
Figure GSA00000097406800033
J为加加速;
若n≥1,则利用公式(5)计算最大可达转接点速度V′p
V′p=Vs+(nT)2J                  (5)
接续判断程序标号是否为1步骤;
或者,若n<1,则令n=1,V′p=Vp,再利用公式(6)重新计算当前程序段始端速度Vs
Vs=Vp-J(nT)2,Ve=Vp            (6)
其中,Ve为当前程序段末端速度;
端点速度确定完毕。
所述规划参数求解算法为:当当前程序段末端速度Ve小于该段始端速度Vs时,按照公式(7)确定第2阈值L0
Figure GSA00000097406800034
a=JmT                           (7)
L 0 = V s 2 - V e 2 2 a + ( V s - V e ) mT 2 + ( 3 V s + V e ) mT + 2 am 2 T 2
其中,V′p为大可达转接点速度,Vs为当前程序段始端速度,Ve为当前程序段末端速度,Vmax为最大速度,amax为最大加速度,J为加加速,T为插补周期,m为加速段减速段初始滤波项数,a为加速段减速段初始加速度;
当实际位移L大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(8)确定匀加速段的时间周期数,即为中间变量k:
Figure GSA00000097406800036
其中,b为中间变量,b=2VsT+3maT2
将加速段滤波项数m1、减速度滤波项数m2赋值为初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(9)确定最大可达速度Vm
Vm=Vs+m(m+k)T2J                  (9)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(10)确定加速段、匀速段的周期数,即为中间变量n:
Figure GSA00000097406800041
其中,b为中间变量, b = - 3 V s T - 7 ma T 2 2
将加速段滤波项数m1赋值为n,减速度滤波项数m2赋值为初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(11)可确定最大可达速度Vm
Vm=Vs+(m1T)2J                        (11)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当当前程序段末端速度Ve不小于该段始端速度Vs时,按照公式(12)确定第2阈值L0
Figure GSA00000097406800043
a=JmT                                (12)
L 0 = V e 2 - V s 2 2 a - ( V e - V s ) mT 2 + 4 V e mT + 2 a m 2 T 2
当实际位移L大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(13)确定匀加速段的插补周期数,即为中间变量k:
Figure GSA00000097406800045
其中,b为中间变量,b=2VeT+3maT2
将加速段滤波项数m1、减速段滤波项数m2赋值为初始滤波项数m,加速段加速度a1、减速段加速度a2赋值为加速度a;
按照公式(14)确定最大可达速度Vm
Vm=Ve+m(m+k)T2J                     (14)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(15)确定减速段、稳定段的周期数,即为中间变量n:
Figure GSA00000097406800051
其中,b为中间变量, b = - 3 V e T - 7 ma T 2 2 ;
将加速段滤波项数m1赋值为初始滤波项数m,减速段滤波项数m2赋值为n,加速段加速度a1赋值为初始加速度a,减速段加速度a2赋值为JnT;
按照公式(16)确定最大可达速度Vm
Vm=Ve+(m2T)2J                       (16)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
如果上述求解得到的最大可达速度Vm大于系统给定的最大速度Vmax,则令最大可达速度Vm等于系统给定的最大速度Vmax
按公式(17)、(18)求解新的加速段减速段初始滤波项数m和加速度a:
Figure GSA00000097406800053
Figure GSA00000097406800054
a1=Jm1T,a2=Jm2T                   (18)
则此次规划结束。
所述确定直线加减速规划时的新位移为:对指令位移补偿后再进行加减速规划,使滤波后的实际位移等于指令位移,补偿后的位移即为规划位移S′:
S ′ = L + m 1 2 ( V m - V s ) T - m 2 2 ( V m - V e ) T - - - ( 19 )
其中,L为实际位移,m1为规划参数中加速段滤波项数、m2为规划参数中减速段滤波项数,Vm为最大可达速度,Ve为当前程序段末端速度,Vs为当前程序段始端速度,T为插补周期。
所述直线加减速规划包括:在传统的直线加减速规划模式的末端,添加一段匀速段,该匀速段速度为程序段的末端速度,时间长度为匀速段之前的加减速段的滤波项数与插补周期的乘积。
所述分段滑动平均滤波是对M个数据做累加平均,得到新的滤波值;
第一个滤波值等于原始值,即
Figure GSA00000097406800056
最后一个滤波值为: V N ′ = V N - M + 1 + · · · + V N M ;
式中,加速段和匀速段的滤波项数M=m1,而减速段和稳定段滤波项数M=m2,其中,m1为规划参数中加速段滤波项数、m2为规划参数中减速段滤波项数;V′0为滤波后的第一个速度值,V0为滤波前的初始速度值,N为滤波的速度值个数。
所述对速度值进行插补时,各程序段的时间均是插补周期的整数倍;根据此整周期加工的要求,利用剩余位移补偿方法消除加减速规划过程中的剩余位移误差;
所述的剩余位移补偿方法根据公式(20)求得剩余位移ΔS:
Figure GSA00000097406800061
其中te为运动时间,T为插补周期,
Figure GSA00000097406800062
为匀速段的插补周期个数;根据公式(21)求出可以在一个插补周期内补偿剩余位移的速度Vr
V r = ΔS T - - - ( 21 )
当减速至第一个小于Vr的速度Vi时,按Vi匀速规划一个插补周期,再继续减速规划;
根据公式(22)得到新的剩余位移ΔS′:
ΔS′=ΔS-ViT=(Vr-Vi)T    (22)
重复上述剩余位移的补偿过程,直至剩余位移小于当前程序段末端速度与一个插补周期的乘积为止;
当前程序段最终的剩余位移并入下一程序段的位移中进行规划计算,直至最后一个程序段为止。
本发明具有以下有益效果及优点:
1.速度快,效率高。多程序段连续加工的实现,可以省去单段加工时用于启停的时间,平均加工运动速度得到提高,提高了加工效率;另一方面,本发明的小计算量也可节省计算时间,提高了系统的计算效率。
2.平滑性好。程序段连接处的速度光滑,加速度连续,使加工效果更平滑。如果采用滑动加权滤波,可使加速度光滑。
3.易于实现。简单的直线加减速规划方法和简单的滤波技术的结合,使得算法复杂度相比同等效果的S形曲线加减速和加速度光滑加减速要小的多。
4.解决了数控机床在运动中的振动问题。多程序段连续加工减少了机床运动的启停次数,使得机床产生振动的几率降低;同时由于滤波方法的引入,使得机床运行更加平稳,可以较好地解决机床运动中的振动问题。
5.灵活智能。本发明提供的各程序段的滤波项数是独立的,且各程序段中加速段和减速段的滤波项数也是相互独立的,根据各程序段路径特点可以确定其加速段和减速段可行的滤波项数和加速度,并保证加加速度有界。
附图说明
图1为“加-匀-减-稳”速度曲线分析图;
图2为滤波前后速度曲线分析图;
图3为第1图解;
图4为总体规划流程图;
图5为转接点速度求解流程图;
图6为加减速规划流程图;
图7为滤波算法流程图。
具体实施方式
本发明一种基于前瞻-滤波技术的多程序段连续加减速控制方法采用基于前瞻技术、滤波技术以及改进的直线加减速相结合的控制方法,实现S型或加速度平滑的多程序段连续加工加减速控制。本发明方案如图4所示:
1)根据输入的工件加工程序数据进行前瞻规划,确定各程序段的前瞻规划参数;
2)利用上述各程序段的规划参数进行相应的直线加减速规划,并对速度值进行插补;
3)对各段插补后的速度值进行分段滑动平均滤波,得到新的速度值。
所述对输入工件加工程序数据进行前瞻规划计算包括以下步骤:
1.1)根据工件加工程序数据,按照转接点算法确定各程序段间的转接点速度;
1.2)按照规划参数求解算法完成对各程序段规划参数的确定,其中规划参数包括:最大速度Vm、直线加减速加速段和减速段的加速度a1、a2以及滤波项数m1、m2
1.3)按照位移补偿算法确定直线加减速规划时的新位移S′。
一般的基于滤波的加减速方法中,整个程序段采用一个滤波项数,直线加减速中的加速段和减速段采用相同的加速度。如步骤1.2)中所述,本发明中加速段和减速段采用了不同的加速度和滤波项数,这一点和一般的加减速规划参数的设计有所不同。之所以如此规划,是为了保证在滤波后加速段和减速段的加加速不超过允许值;同时,加减速规划方式整体也更加灵活。
步骤1.3)中所述的确定规划位移S′是指计算直线加减速规划的位移。因为要实现多段连续加工,程序段末端速度不为零,因此,滤波后的位移与直线加减速规划的位移不相同,需要重新计算规划位移。
如图1所示,步骤2)中所述改进的直线加减速规划是通过在直线加减速的未端保持一段固定长度的匀速段(称为稳定段)来实现的。此稳定段的速度为程序段的末端速度,时间为稳定段前的加减速段滤波项数和插补周期T的乘积。
改进的直线加减速规划方法还要求各运动段(加速段,匀速段,减速段,稳定段)的时间均为插补周期的整数倍,这一点在实际速度规划中很难得到保证,因而使程序段在速度规划后存在剩余位移,该剩余位移小于匀速段速度一个插补周期的位移。剩余位移通过如下方式进行补偿:
根据剩余位移ΔS,求出可以在一个插补周期内补偿ΔS的速度Vr(有Ve≤Vr<Vm),当减速至第一个小于等于Vr的速度Vi时,则按Vi匀速规划一个插补周期,再继续减速规划。重复这一补偿方式,直至该程序段规划结束,最终的剩余位移将小于程序段未端速度一个插补周期的位移,将该剩余位移并入下一程序段进行规划。
步骤3)中,所述分段滑动平均滤波是源于加速段和减速段相异的滤波项数这一特点,即加速段和减速段分别采用不同的滤波项数完成速度滤波。
步骤1.1)转接点速度确定方案如图5所示:
设规划程序段的实际位移为L,始端速度为Vs,末端初始速度为Vp,满足滤波要求的最大可达转接点速度为V′p,末端速度为Ve,系统限定的最大进给速度为Vmax,加加速为J,最大加速度为amax,加加速阶段周期数(初始滤波项数)为m,插补周期为T。
通过确定第1阈值S0(如图3所示)来判定程序段的加速过程,其中,S0为加速阶段的加速度可以达到最大加速度amax,且加速过程仅有加加速与减加速阶段而无匀加速阶段的最小实际位移,进而根据该程序段的加速过程求解相应的V′p
所述转接点算法为:
初始化程序标号为0,即line=0;
当当前程序段末端初始速度Vp大于当前程序段始端速度Vs时,直接判断当实际位移L是否大于第1阈值S0,否则将当前程序段末端初始速度Vp的值与当前程序段始端速度Vs的值互换,并将程序标号赋值为1,再判断当前实际位移L是否大于第1阈值S0
如果实际位移L大于第1阈值S0时,表示加速过程有匀加速段,S0根据公式(1)求得:
S0=2VsmT+amax(mT)2                           (1)
其中, m = a max JT
根据公式(2)求得加速过程中的匀加速段插补周期T的个数,即为中间变量k:
Figure GSA00000097406800082
式中,b为中间变量,
Figure GSA00000097406800083
m为初始滤波项数,amax为最大加速度;
再根据公式(3)求得最大可达末端速度V′p
V′p=Vs+(m+k)Tamax                         (3)
判断程序标号是否为1,如为1则将当前程序段末端初始速度Vp与当前程序段始端速度Vs互换;
当当前程序段始端速度Vs大于最大可达转接点速度V′p时,调整当前程序段始端速度Vs的值为最大可达转接点速度V′p,转接点的初始速度Vp不需调整,端点速度确定完毕;
如果当前程序段始端速度Vs不大于最大可达转接点速度V′p,则转接点的初始速度Vp不需调整,端点速度确定完毕;
或者,如果程序标号不为1,则:
当转接点的初始速度Vp大于最大可达转接点速度V′p时,调整转接点的初始速度Vp等于最大可达转接点速度V′p,端点速度确定完毕;
当转接点的初始速度Vp不大于最大可达转接点速度V′p时,转接点的初始速度Vp不需调整,端点速度确定完毕;
或者,当实际位移L不大于第1阈值S0时,表示加速过程无匀加速段,且加速度达不到amax,即加加速阶段插补周期数小于m。设加加速阶段插补周期数为n,则该阶段的加速度为a=nTJ,位移为:
L=2TVs·n+T3J·n3
求解上述三次方程,得到公式(4);
利用公式(4)求得加加速阶段插补周期个数,即为中间变量n:
其中,p、q为中间变量,
Figure GSA00000097406800092
J为加加速;
若n≥1,则利用公式(5)计算最大可达转接点速度V′p
V′p=Vs+(nT)2J                         (5)
接续判断程序标号是否为1步骤;
或者,若n<1,则令n=1,V′p=Vp,再利用公式(6)重新计算当前程序段始端速度Vs
Vs=Vp-J(nT)2,Ve=Vp                  (6)
其中,Ve为当前程序段末端速度;
端点速度确定完毕。
步骤1.2)规划参数确定方案如图6所示:
滤波后的位移是实际位移,直线加减速的规划位移和滤波后的位移值不相同。设指令位移为L,直线加减速的规划位移为S′,加速段滤波项数为m1,减速段滤波项数为m2,插补周期为T,程序段始端速度和末端速度分别为Vs与Ve,直线加减速规划的最大速度为Vm
如图1所示,整个过程可描述为:程序段始端速度Vs以加速度a1加速至Vm,以最大速度Vm匀速运动至少m1个插补周期,由最大速度Vm以加速度a2减速至末端速度Ve,然后以速度Ve匀速运动m2个插补周期。其中,最后的匀速段过程称为稳定段。
为确定各程序段的规划参数,设定一个“加-匀-减-稳”规划方式的位移阈值L0
所述规划参数求解算法为:
当当前程序段末端速度Ve等于最大可达转接点速度V′p时,整个过程仅有加速段和稳定段,无需计算L0。加速段和减速段的滤波项数m1、m2和加速度a1、a2的取值如下:
Figure GSA00000097406800101
m2=0
其中,中间变量p、q的值为:
a1=Jm1T,a2=0
此次规划结束;
当当前程序段始端速度Vs等于最大可达转接点速度V′p时,整个过程仅有减速段和稳定段,无需计算L0。加速段和减速段的滤波项数m1、m2和加速度a1、a2的取值如下:
m1=0,
其中,中间变量p、q的值为:
Figure GSA00000097406800107
Figure GSA00000097406800108
a1=0,a2=Jm2T
此次规划结束;
当当前程序段末端速度Ve小于该段始端速度Vs时,按照公式(7)确定第2阈值L0,L0对应的规划方式的加速段、匀速段、稳定段均设为m个插补周期,加速段和减速段的加速度均设为a,其中,m为加速段减速段初始滤波项数,a是达到最大可达速度的最大可达加速度,m、a以及L0的求解公式如下:
Figure GSA00000097406800111
a=JmT                   (7)
L 0 = V s 2 - V e 2 2 a + ( V s - V e ) mT 2 + ( 3 V s + V e ) mT + 2 a m 2 T 2
其中,V′p为大可达转接点速度,Vs为当前程序段始端速度,Ve为当前程序段末端速度,Vmax为最大速度,amax为最大加速度,J为加加速,T为插补周期;
当实际位移L大于第2阈值L0时,将多出的位移L-L0添加到加速段,减速段以及匀速段中,使得加速段减速段插补周期数均增加k个,稳定段周期数不变。在第2阈值L0的加减速规划模式的前提下,按照公式(8)确定匀加速段的时间周期数,即为中间变量k:
Figure GSA00000097406800113
其中,b为中间变量,b=2VsT+3maT2
将加速段滤波项数m1、减速度滤波项数m2赋值为加速段减速段初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(9)确定最大可达速度Vm
Vm=Vs+m(m+k)T2J                               (9)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,需从加速段,减速段,匀速段共减去L0-L大小的位移,使得加速段、匀速段、减速段的插补周期数均减少k个,稳定段周期数不变。在第2阈值L0的加减速规划模式的前提下,按照公式(10)确定加速段、匀速段的周期数,即为中间变量n:
n=m-k,
Figure GSA00000097406800115
其中,b为中间变量, b = - 3 V s T - 7 ma T 2 2
将加速段滤波项数m1赋值为n,减速度滤波项数m2赋值为初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(11)可确定最大可达速度Vm
Vm=Vs+(m1T)2J                      (11)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当当前程序段末端速度Ve不小于该段始端速度Vs时,按照公式(12)确定第2阈值L0
Figure GSA00000097406800121
a=JmT                        (12)
L 0 = V e 2 - V s 2 2 a - ( V e - V s ) mT 2 + 4 V e mT + 2 a m 2 T 2
当实际位移L大于第2阈值L0时,将多出的位移L-L0添加到加速段,减速段以及匀速段中,使得加速段减速段插补周期数均增加k个,稳定段周期数不变。在第2阈值L0的加减速规划模式的前提下,按照公式(13)确定增加的插补周期数,即为中间变量k:
Figure GSA00000097406800123
其中,b为中间变量,b=2VeT+3maT2
将加速段滤波项数m1、减速段滤波项数m2赋值为初始滤波项数m,加速段加速度a1、减速段加速度a2赋值为加速段减速段初始加速度a;
按照公式(14)确定最大可达速度Vm
Vm=Ve+m(m+k)T2J               (14)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,需从加速段,减速段,匀速段以及稳定段共减去L0-L大小的位移,使得加速段、减速段、稳定段的插补周期数均减少k个,匀速段周期数不变。在第2阈值L0的加减速规划模式的前提下,按照公式(15)确定减速段、稳定段的周期数,即为中间变量n:
n=m-k,
Figure GSA00000097406800125
其中,b为中间变量, b = - 3 V e T - 7 ma T 2 2
将加速段滤波项数m1赋值为加速段减速段初始滤波项数m,减速段滤波项数m2赋值为n,加速段加速度a1赋值为加速段减速段初始加速度a,减速段加速度a2赋值为JnT;
按照公式(16)确定最大可达速度Vm
Vm=Ve+(m2T)2J            (16)
综上,如果上述过程中求得的最大可达速度Vm大于系统给定的最大速度Vmax,则令最大可达速度Vm等于系统给定的最大速度Vmax
按公式(17)、(18)求解新的加速段减速段初始滤波项数m和加速度a:
Figure GSA00000097406800131
a1=Jm1T,a2=Jm2T        (18)
则此次规划结束。
步骤2)采用改进的直线加减速规划方案,具体为:
在确定了程序段的规划参数后,对其进行直线加减速规划。此处的直线加减速是指改进后的直线加减速方案,所述直线加减速规划包括:在传统的直线加减速规划模式的末端,添加一段匀速段,该匀速段速度为程序段的末端速度,时间长度为匀速段之前的加减速段的滤波项数与插补周期的乘积。
上述改进方法可确定直线加减速规划时的新位移为:对指令位移补偿后再进行加减速规划,使滤波后的实际位移等于指令位移,补偿后的位移即为规划位移S′:
S ′ = L + m 1 2 ( V m - V s ) T - m 2 2 ( V m - V e ) T - - - ( 19 )
当进行直线加减速规划时,利用上述公式对实际位移适当修正得到规划位移,则保证滤波后的位移正好是目标路径的实际位移。上述位移补偿方法和滤波方法相结合,保证了滤波前后程序段的始末速度一致,且滤波后的位移同程序段的实际位移一致。
规划方案要求程序段的各个运动阶段(加速段,匀速段,减速段,稳定段)的时间均应为插补周期的整数倍。此整周期要求会使得程序段在对各运动段(加速段、匀速段、减速段、稳定段)规划时产生一定的剩余位移。该剩余位移可通过如下方案进行补偿以完成该程序段规划:
由于已知规划程序段的加速段和减速段的滤波项数m1、m2以及加速度a1、a2,最大速度Vm,则可以确定加速段、减速段以及稳定段的规划位移,假设剩余的规划位移全部用作最大速度的匀速运动,则匀速段加工时间无法保证是插补周期的整数倍。根据整周期加工的要求,必会有一段长度小于VmT的位移剩余。
设匀速段的运动时间为te,插补周期为T,则匀速段的插补周期个数为
Figure GSA00000097406800134
可得剩余的位移为:
Figure GSA00000097406800135
根据ΔS,求出可以在一个插补周期内补偿剩余位移的速度Vr(Ve≤Vr<Vm),当减速至第一个小于Vr的速度Vi时,按Vi匀速规划一个插补周期(后称为小匀速段),再继续减速规划。
Vr求解公式如下:
V r = ΔS T - - - ( 21 )
同时,可得到新的剩余位移:
ΔS′=ΔS-ViT=(Vr-Vi)T    (22)
重复上述剩余位移的补偿过程,直至ΔS<VeT为止。
上述补偿过程结束后,当前程序段最终的剩余位移ΔS将向后计算至下一程序段的位移中进行规划。
步骤3)中的分段滑动平均滤波如图7所示:
滤波即指在直线加减速规划完毕之后,串联一个滑动平均滤波器,对速度值进行滑动平均滤波。若滤波项数为M,通过对前M个速度值的累加平均求出新的速度值,然后随着新的规划数据的加入,老的速度规划值被移出滤波器。本发明采用的滤波方式为分段的滑动平均滤波,具体的滤波方式如下:
设滤波项数为M,滤波的速度值个数为N,直线加减速规划速度为Vi(i=0,1,…,N)。其中,M有两种取值选择,加速段和匀速段的滤波项数M=m1,而减速段和稳定段滤波项数M=m2,采用下列公式进行滤波,能够保证始末速度均为规划速度,而且由于滤波产生的滞后位移可以在稳定段得到补偿。具体公式如式(23)所示:
Figure GSA00000097406800141
Figure GSA00000097406800142
Figure GSA00000097406800144
V ‾ h = 1 m 1 [ V h - m 1 - 1 + V h - m 1 + · · · + V h ]
V ‾ h + 1 = 1 m 2 [ V k - h + V k - m 2 + 1 + · · · + V h + 1 ]
Figure GSA00000097406800147
V ‾ N = 1 m 2 [ V N - m 2 + 1 + V N - m 2 + 2 + · · · + V N ] - - - ( 23 )
根据滤波后的速度
Figure GSA00000097406800149
可得位置增量为
Figure GSA000000974068001410
则程序段实际位移为:
滤波前后的速度曲线图如图2所示,图中直线段图形表示为滤波前的速度曲线,曲线段图形为滤波后的速度曲线。图2表明,经过滤波后的速度曲线较滤波前的直线加减速速度曲线平滑性好。

Claims (1)

1.一种基于前瞻-滤波技术的多程序段连续加减速控制方法,其特征在于:包括以下步骤:
根据输入的工件加工程序数据进行前瞻规划,确定各程序段的前瞻规划参数;利用上述各程序段的前瞻规划参数进行相应的直线加减速规划,并对速度值进行插补;对各段插补后的速度值进行分段滑动平均滤波,得到新的速度值;
所述根据输入的工件加工程序数据进行前瞻规划包括以下步骤:
根据工件加工程序数据,按照转接点算法确定各程序段间的转接点速度;按照前瞻规划参数求解算法完成对各程序段的前瞻规划参数的确定,其中前瞻规划参数包括:最大速度、直线加减速加速段和减速段的加速度以及滤波项数;
按照位移补偿算法确定直线加减速规划时的新位移;
所述转接点算法为:
初始化程序标号为0;
当转接点的初始速度Vp大于当前程序段始端速度Vs时,直接判断当前实际位移L是否大于第1阈值S0,否则将转接点的初始速度Vp的值与当前程序段始端速度Vs的值互换,并将程序标号赋值为1,再判断当前实际位移L是否大于第1阈值S0
如果实际位移L大于第1阈值S0时,则根据公式(2)求得加速过程中的匀加速段插补周期T的个数,即为中间变量k:
Figure FSB00000816450800011
式中,b为中间变量,
Figure FSB00000816450800012
m为初始滤波项数,amax为最大加速度;
再根据公式(3)求得最大可达转接点速度
Figure FSB00000816450800013
V p ′ = V s + ( m + k ) T a max - - - ( 3 )
判断程序标号是否为1,如为1则将转接点的初始速度Vp与当前程序段始端速度Vs互换;
当当前程序段始端速度Vs大于最大可达转接点速度
Figure FSB00000816450800015
时,调整当前程序段始端速度Vs的值为最大可达转接点速度
Figure FSB00000816450800016
转接点的初始速度Vp不需调整,转接点速度确定完毕;
如果当前程序段始端速度Vs不大于最大可达转接点速度
Figure FSB00000816450800017
则转接点的初始速度Vp不需调整,转接点速度确定完毕;
或者,如果程序标号不为1,则:
当转接点的初始速度Vp大于最大可达转接点速度时,调整转接点的初始速度Vp等于最大可达转接点速度
Figure FSB00000816450800022
转接点速度确定完毕;
当转接点的初始速度Vp不大于最大可达转接点速度
Figure FSB00000816450800023
时,转接点的初始速度Vp不需调整,转接点速度确定完毕;
或者,当实际位移L不大于第1阈值S0时,利用公式(4)求得加加速阶段插补周期个数,即为中间变量n:
Figure FSB00000816450800024
其中,p、q为中间变量,
Figure FSB00000816450800025
Figure FSB00000816450800026
J为加加速;
若n≥1,则利用公式(5)计算最大可达转接点速度
Figure FSB00000816450800027
V p ′ = V s + ( nT ) 2 J - - - ( 5 )
接续判断程序标号是否为1的步骤;
或者,若n<1,则令n=1,
Figure FSB00000816450800029
再利用公式(6)重新计算当前程序段始端速度Vs
Vs=Vp-J(nT)2,Ve=Vp                            (6)
其中,Ve为当前程序段末端速度;
端点速度确定完毕;
所述规划参数求解算法为:当当前程序段末端速度Ve小于该段始端速度Vs时,按照公式(7)确定第2阈值L0
Figure FSB000008164508000210
a=JmT                                           (7)
L 0 = V s 2 - V e 2 2 a + ( V s - V e ) mT 2 + ( 3 V s + V e ) mT + 2 a m 2 T 2
其中,为最大可达转接点速度,Vs为当前程序段始端速度,Ve为当前程序段末端速度,Vmax为最大速度,amax为最大加速度,J为加加速,T为加速过程中的匀加速段插补周期,m为初始滤波项数,a为加速段和减速段初始加速度;
当实际位移L大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(8)确定匀加速段的时间周期数,即为中间变量k:
Figure FSB00000816450800031
其中,b为中间变量,b=2VsT+3maT2
将加速段滤波项数m1、减速度滤波项数m2赋值为初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(9)确定最大可达速度Vm
Vm=Vs+m(m+k)T2J                                 (9)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(10)确定加速段、匀速段的周期数,即为中间变量n:
n=m-k,
Figure FSB00000816450800032
其中,b为中间变量,
Figure FSB00000816450800033
将加速段滤波项数m1赋值为n,减速度滤波项数m2赋值为初始滤波项数m,将加速段加速度a1、减速段加速度a2赋值为初始加速度a;
按照公式(11)可确定最大可达速度Vm
Vm=Vs+(m1T)2J                                   (11)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当当前程序段末端速度Ve不小于该段始端速度Vs时,按照公式(12)确定第2阈值L0
Figure FSB00000816450800034
a=JmT                                           (12)
L 0 = V e 2 - V s 2 2 a - ( V e - V s ) mT 2 + 4 V e mT + 2 a m 2 T 2
当实际位移L大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(13)确定匀加速段的插补周期数,即为中间变量k:
Figure FSB00000816450800036
其中,b为中间变量,b=2VeT+3maT2
将加速段滤波项数m1、减速段滤波项数m2赋值为初始滤波项数m,加速段加速度a1、减速段加速度a2赋值为加速度a;
按照公式(14)确定最大可达速度Vm
Vm=Ve+m(m+k)T2J                                (14)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
或者,当实际位移L不大于第2阈值L0时,在第2阈值L0的加减速规划模式的前提下,按照公式(15)确定减速段、稳定段的周期数,即为中间变量n:
n=m-k,
Figure FSB00000816450800041
其中,b为中间变量,
Figure FSB00000816450800042
将加速段滤波项数m1赋值为初始滤波项数m,减速段滤波项数m2赋值为n,加速段加速度a1赋值为初始加速度a,减速段加速度a2赋值为JnT;
按照公式(16)确定最大可达速度Vm
Vm=Ve+(m2T)2J                                  (16)
判断最大可达速度Vm是否大于系统给定的最大速度Vmax,如果不大于,则此次规划结束;
如果上述求解得到的最大可达速度Vm大于系统给定的最大速度Vmax,则令最大可达速度Vm等于系统给定的最大速度Vmax
按公式(17)、(18)求解新的加速段减速段初始滤波项数m和加速度a:
Figure FSB00000816450800043
Figure FSB00000816450800044
a1=Jm1T,a2=Jm2T                              (18)
则此次规划结束;
所述确定直线加减速规划时的新位移为:对指令位移补偿后再进行加减速规划,使滤波后的实际位移等于指令位移,补偿后的位移即为规划位移S′:
S ′ = L + m 1 2 ( V m - V s ) T - m 2 2 ( V m - V e ) T - - - ( 19 )
其中,L为实际位移,m1为规划参数中加速段滤波项数、m2为规划参数中减速段滤波项数,Vm为最大可达速度,Ve为当前程序段末端速度,Vs为当前程序段始端速度,T为加速过程中的匀加速段插补周期;
所述直线加减速规划包括:在传统的直线加减速规划模式的末端,添加一段匀速段,该匀速段速度为程序段的末端速度,时间长度为匀速段之前的加减速段的滤波项数与插补周期的乘积;
所述分段滑动平均滤波是对M个数据做累加平均,得到新的滤波值;
第一个滤波值等于原始值,即
Figure FSB00000816450800051
最后一个滤波值为: V N ′ = V N - M + 1 + · · · + V N M ;
式中,加速段和匀速段的滤波项数M=m1,而减速段和稳定段滤波项数M=m2,其中,m1为规划参数中加速段滤波项数、m2为规划参数中减速段滤波项数;
Figure FSB00000816450800053
为滤波后的第一个速度值,V0为滤波前的初始速度值,N为滤波的速度值个数;
所述对速度值进行插补时,各程序段的时间均是插补周期的整数倍;根据此整周期加工的要求,利用剩余位移补偿方法消除加减速规划过程中的剩余位移误差;
所述的剩余位移补偿方法根据公式(20)求得剩余位移ΔS:
Figure FSB00000816450800054
其中te为运动时间,T为加速过程中的匀加速段插补周期,
Figure FSB00000816450800055
为匀速段的插补周期个数;
根据公式(21)求出可以在一个插补周期内补偿剩余位移的速度Vr
V r = ΔS T - - - ( 21 )
当减速至第一个小于Vr的速度Vi时,按Vi匀速规划一个插补周期,再继续减速规划;
根据公式(22)得到新的剩余位移ΔS′:
ΔS′=ΔS-ViT=(Vr-Vi)T                         (22)
重复上述剩余位移的补偿过程,直至剩余位移小于当前程序段末端速度与一个插补周期的乘积为止;
当前程序段最终的剩余位移并入下一程序段的位移中进行规划计算,直至最后一个程序段为止。
CN 201010169651 2010-05-12 2010-05-12 一种基于前瞻-滤波技术的多程序段连续加减速控制方法 Active CN101833306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010169651 CN101833306B (zh) 2010-05-12 2010-05-12 一种基于前瞻-滤波技术的多程序段连续加减速控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010169651 CN101833306B (zh) 2010-05-12 2010-05-12 一种基于前瞻-滤波技术的多程序段连续加减速控制方法

Publications (2)

Publication Number Publication Date
CN101833306A CN101833306A (zh) 2010-09-15
CN101833306B true CN101833306B (zh) 2012-07-18

Family

ID=42717402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010169651 Active CN101833306B (zh) 2010-05-12 2010-05-12 一种基于前瞻-滤波技术的多程序段连续加减速控制方法

Country Status (1)

Country Link
CN (1) CN101833306B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312248B (zh) * 2013-05-16 2015-05-06 哈尔滨工程大学 一种基于dsp的直线加减速拐点误差补偿方法
CN104597847A (zh) * 2013-10-31 2015-05-06 中国科学院沈阳计算技术研究所有限公司 基于Akima样条曲线拟合的前瞻插补方法
CN103760828B (zh) * 2014-01-22 2016-03-23 哈尔滨工业大学 贴片机y轴伺服电机的速度规划方法
CN103941647B (zh) * 2014-04-02 2016-09-21 嘉兴学院 用于嵌入式数控设备的柔性加减速控制插补方法
CN104298151B (zh) * 2014-09-26 2018-01-02 成都乐创自动化技术股份有限公司 速度控制算法及脉冲控制算法
CN106681275B (zh) * 2015-11-05 2019-04-09 中国科学院沈阳计算技术研究所有限公司 一种数控加工程序段的前瞻预取方法
CN106094737B (zh) * 2016-07-14 2018-08-17 西北工业大学 一种指定加工误差条件下的数控加工速度优化控制方法
CN106950923B (zh) * 2017-03-13 2019-01-22 浙江工业大学 一种定插补周期的速度规划方法
CN107272758B (zh) * 2017-08-01 2020-08-07 深圳市雷赛控制技术有限公司 绕线设备效率及平稳性的提升方法及装置
CN107783503B (zh) * 2017-10-16 2020-03-17 五邑大学 一种基于双线程的速度预处理算法
CN108958173B (zh) * 2018-07-27 2021-07-09 山东大学 基于梯形求解的任意位移速度下的s曲线加减速规划方法
JP7293795B2 (ja) * 2019-03-27 2023-06-20 株式会社タダノ クレーンの制御方法およびクレーン
CN110134065B (zh) * 2019-05-30 2020-08-18 西安交通大学 一种基于正弦平方加速度前瞻的机床加工轨迹运动规划方法
CN111045383A (zh) * 2019-12-19 2020-04-21 上海维宏电子科技股份有限公司 数控机床系统中实现紧急停止防抖动的控制方法及其系统
CN111459017B (zh) * 2020-04-07 2021-07-27 北京北特圣迪科技发展有限公司 一种数控离散的速度曲线规划方法
CN113495531B (zh) * 2020-04-08 2023-01-31 大族激光科技产业集团股份有限公司 数控模型的速度控制方法、装置、计算机设备和存储介质
CN113671898B (zh) * 2020-05-14 2023-12-08 大族激光科技产业集团股份有限公司 数控加工方法、系统、计算机设备及存储介质
CN113885443B (zh) * 2020-07-01 2023-11-21 大族激光科技产业集团股份有限公司 一种基于分段滤波与限制加加速度的直线加减速控制方法
CN111813053A (zh) * 2020-07-31 2020-10-23 上海维宏电子科技股份有限公司 数控系统中针对速度滤波导致转角处速度超限进行控制的方法、装置及其存储介质
CN114035513A (zh) * 2021-09-28 2022-02-11 苏州谋迅智能科技有限公司 S形速度曲线前瞻规划方法和装置、存储介质和计算设备
CN114237152B (zh) * 2021-11-16 2024-04-05 中南大学 一种用于激光切割的柔性速度规划及位移补偿方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0439617A1 (en) * 1989-08-22 1991-08-07 Fanuc Ltd. Acceleration/deceleration control method of numeric controller
US5726896A (en) * 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
CN101470434A (zh) * 2007-12-28 2009-07-01 中国科学院沈阳计算技术研究所有限公司 基于滤波技术的速度前瞻控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0439617A1 (en) * 1989-08-22 1991-08-07 Fanuc Ltd. Acceleration/deceleration control method of numeric controller
US5726896A (en) * 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
CN101470434A (zh) * 2007-12-28 2009-07-01 中国科学院沈阳计算技术研究所有限公司 基于滤波技术的速度前瞻控制方法

Also Published As

Publication number Publication date
CN101833306A (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
CN101833306B (zh) 一种基于前瞻-滤波技术的多程序段连续加减速控制方法
CN102540978B (zh) 面向高速加工的表面质量优先的样条曲线实时插补方法
CN101853013B (zh) 一种用于数控机床高速加工的加减速控制方法
CN106168790B (zh) 一种在线改变目标速度和位置的s形加减速控制方法
CN102722140B (zh) 基于s曲线加减速控制的多周期拐角小直线段插补方法
CN108287527B (zh) 一种基于三角函数的改进s曲线加减速控制方法
CN102945020B (zh) 速度前瞻的方法及其数控装置、数控系统
CN101470434B (zh) 基于滤波技术的速度前瞻控制方法
CN100451891C (zh) 微小程序段的动态前瞻处理方法及实现装置
CN102799146B (zh) 用于数控设备控制系统的s形加减速控制的速度规划方法
CN104281099A (zh) 一种考虑加工特性的nurbs直接插补方法及装置
CN105892402A (zh) 机械臂点到点运动控制方法
CN108153246B (zh) 一种基于指定速度的参数自适应s形速度规划插补方法
CN105785909B (zh) 一种高速高精的路径动态前瞻规划方法
CN107844058A (zh) 一种运动曲线离散动态规划方法
CN101477354A (zh) 位置s型指令产生方法
CN103279069A (zh) 用于数控机床的三角函数二阶连续可导加减速算法
CN107272598A (zh) 一种加工路径长度已知的nurbs曲线插补方法
CN109048091A (zh) 激光切割速度规划方法、装置、存储介质及计算机设备
EP2343436B1 (en) Power generation system control apparatus for adjustable-speed, pumped-storage power plant
CN103324141A (zh) 一种高精度变插补周期的多轴联动运动控制方法
CN104135205A (zh) 一种感应电机最大转矩电流比控制方法
CN102699758B (zh) 一种用于数控机床的进给速度实时修调方法
CN103163838A (zh) 一种用于数控机床加减速的控制方法
CN1097758C (zh) 在离散时间的抽样数据系统中节奏同步的运动控制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY CO., LTD.

Effective date: 20150807

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150807

Address after: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee after: Shenyang Institute of computing technology, Chinese Academy of Sciences

Address before: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee before: Shenyang Institute of computing technology, Chinese Academy of Sciences

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.