ACS双闭环控制应用.docx
《ACS双闭环控制应用.docx》由会员分享,可在线阅读,更多相关《ACS双闭环控制应用.docx(11页珍藏版)》请在冰豆网上搜索。
ACS双闭环控制应用
ACS控制器双闭环控制应用
ACSDualLoopControlApplication
编写:
徐新阳/应用支持/ACSChina
1综述
双闭环控制一般应用在电机和负载之间存在刚性较差的系统中,如图1所示的带传动系统。
对于此类应用双闭环系统能有效克服单闭环系统的缺点,如降低刚性差和反向间隙带来的动态性能下降。
图1双闭环系统
本文档将结合ACS独有SPiiPlusMMI调试工具介绍双闭环控制系统的实现步骤。
1.1双闭环的理论基础
在ACS运动控制产品中实现轴的双闭环控制是非常方便的,用户只需把不同的编码器反馈通道或者模拟量输入分配给轴即可,但是轴和这些通道必须隶属于同一个伺服处理芯片(一般一个伺服处理芯片最多支持四个轴)。
轴的双闭环控制是基于至少两路反馈通道的:
⏹负载位置反馈—用作位置环的输入
⏹电机位置反馈—用作速度环与电机换向的输入
下图2为一个典型双闭环控制的框图
图2双闭环控制系统框图
1.2ACSPL+变量
以下的ACSPL+变量将应用在双闭环控制中:
1.2.1MFLAGS
MFLAGS是一个整数类型的一维数组,每一个元素对应系统里的每一个轴,元素有一系列的状态位组成,用来配置电机。
为了把系统设置为双闭环控制,相关轴的MFLAGS的位20(#DUALLOOP)需要被置1,例如MFLAGS(0).#DUALLOOP=1,设置0轴为双闭环控制,此时二阶滤波器从速度环移至位置环中。
1.2.2SLVRAT
SLVRAT是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来定义位置环反馈和速度环反馈之间的减速比:
SLVRAT=positionresolution/velocityresolution
1.2.3SLVKP
SLVKP是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来给特定轴的速度增加一个比例系数。
1.2.4XVEL
XVEL是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来定义轴的最大允许速度。
XVEL会导致速度环比例增益SLVKP的有效值发生变化:
在双闭环中,SLVKP有效值计算如下:
如果XVEL[loadfeedbackcounts/sec]>221时,实际增益是减小的,详见稍后的公式,其他情况实际增益是增加的。
1.2.5EFAC
EFAC是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来定义在原始编码器反馈的count值和控制器计算的变量值FPOS之间的因子。
格式如:
EFAC(axis_index)=value(value范围1-15….1+15默认值为1)
1.2.6FACC
FACC是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来定义轴的加速度反馈值。
1.2.7Routing变量
SLPROUT
SLPROUT是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来设置对应轴的位置环反馈通道。
格式如:
SLPROUT(axis_index)=value
Value指定反馈来源如表1
当为默认值0时,控制器支持标准的闭环控制配置,即FPOS(0)为0编码器反馈,FPOS
(1)为1编码器反馈等等。
当SLPROUT≠0时,表明FPOS是来源于其他编码器。
例如SLPROUT(0)=104,表示FPOS来源于模拟量输入0而不是编码器,此时反馈可能是电位计或者其他能够输出模拟量表征电机位置的器件。
表1:
SLPROUT分配数值
SLVROUT
SLVROUT是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来设置对应轴的速度环反馈通道。
格式如:
SLVROUT(axis_index)=value
SLCROUT
SLCROUT是一个实数类型的一维数组,每一个元素对应系统里的每一个轴,用来设置对应轴的速度换向反馈通道。
格式如:
SLCROUT(axis_index)=value
SLVROUT和SLCROUT的格式如同表1,具体赋值内容参见ACS软件手册文档,这里不再详述。
2配置双闭环控制的步骤
步骤分为两部分:
⏹电机轴端设置
此时的轴是与电机有物理连接的轴号。
⏹负载端设置
此时负载轴号表示负载反馈通道。
通常电机轴号可以与实际电机编码器反馈通道不一样,但是本文假定电机编码器反馈通道和电机轴号一致,并且两个反馈通道都使用负载用户单位而不是count。
在这种情况下,双闭环的设置是简单的,改动较少的。
为了能够更好介绍双闭环的步骤,系统配置示例如下:
⏹丝杠驱动直线平台
直线式编码器反馈平台位置,电机旋转编码器反馈速度与换向。
⏹用户单位:
mm
⏹电机连接在axis0
⏹电机反馈编码器连接在axis0,旋转正交编码器,分辨率2000lines/revolution
⏹负载反馈连接在axis1,直线正交编码器,分辨率12500lines/mm
⏹两个反馈内部分频倍数都为4
⏹丝杠导程:
25.4mm/revolution
2.1AXISSetup
我们将使用SPiiPlusMMIApplicationSthdio中的AdjusterWizard功能设置轴参数,它非常容易设置单轴参数,节省用户时间。
1进入AdjusterWizard中SelectTask选项,选择轴号与选择设置新系统或控制器选项。
点击Next
2填写详细用户信息在Initialization窗口,然后点击Next
3AxisStructure:
选择SingleMotor,RotaryMotorandLinearLoad–IndirectDrive:
Lead–Screw,减速比为1(如果电机和丝杠间有减速比请填写实际值),反馈结构:
Single,onmotor,用户单位作用在Load,用户单位mm。
4继续设置直到AxisSetupandTuning步骤,跳过PositionandVelocityLoopstuning.
5SavetoFlash然后退出。
6计算EFAC(axis)
EFAC(axis)用来定义电机反馈counts和负载用户单位之间的比例,可用下列公式计算:
本文中参数计算如下:
EFAC(AXIS)=25.4/(2000*4)=0.003175mm
2.2负载端设置
通过AdjusterWizard已经计算了参数EFAC(AXIS),下面将计算EFAC(LOAD).
EFAC(LOAD)=1/(12500*4)=0.00002
设置完成后可移动负载一小段距离验证EFAC设置是否正确,如果负载反馈没有改变,可用命令FCLEARLOAD清除错误,复位反馈。
设置正确后将用SPiiPlusMMIApplicationStudio中的FRFAnalyzer工具进行单独位置环、速度环分析,可修改SLPKP和Bi-Quad滤波器的参数,步骤如下:
1,在CommunicationTerminal里输入命令MFLAGS(AXIS).20=1,进入双闭环控制模式。
2,打开FRFAnalyzer。
3调试速度环参数,此时二阶滤波是被禁止的,因为通过MFLAGS(AXIS).20=1命令已经被移到位置环了。
4轴禁止使能,计算SLVRAT(AXIS)参数,计算公式如下:
本例中计算值为:
SLVRAT=EFAC(AXIS)/EFAC(LOAD)=0.003175/0.00002=158.75
5设置轴反馈系数为负载反馈系数
EFACNEW(AXIS)=EFAC(LOAD)=0.00002
如果电机可以移动,可用下列步骤验证SLVRAT设置是否正确:
●两个反馈位置清零FPOS(0),FPOS
(1)
●轴禁止使能
●手动移动轴到任意位置
●计算FPOS(LOAD)/FPOS(AXIS),值应该接近第四步的计算值。
6通过命令SLPROUT(AXIS)分配负载反馈为轴的位置反馈通道,命令定义参见表1。
例如我们分配负载反馈通道从轴1到轴0:
SLPROUT(0)=101
7如果你想继续看到电机的反馈,你可以像负载反馈分配一样用SLPROUT指令分配到其他轴号上。
8用FRFAnalyzer工具单独调试位置环,必要时应用二阶滤波参数,典型滤波有Notchfilter和Leadfilter,可提高系统带宽和稳定性余度。
提示:
在调试位置环时,为了产生准确的测量参数和避免系统损坏,记得改变XVEL的值,因为这是一个速度命令而不是电流。
9负载反馈被用作位置环,电机反馈被用来换向和电流环,因为使用同样的用户单位,XVEL(0)不用改变,电流环也不用再做进一步调试了。
我们可以看出,XVEL在分配负载反馈到位置环后没有发生变化,因此也不需要在调试速度环了。
位置环调试时,当二阶滤波配置成陷波时,比例增益可进一步放大。
3双闭环限位问题
当执行SLPROUT(AXIS)≠0的命令后,当前轴的硬限位也会被分配到负载通道的轴号上,导致限位不能正常使用,需要执行SLLROUT命令重新分配限位通道,格式如下:
SLLROUT(AXIS)=value
需要注意的时SLLROUT命令得2.30以上控制版本才支持。
4结论
ACS双闭环控制能够克服机械刚性不足与传动间隙带来的误差,提高控制精度,单独速度环,位置环FRF分析优化,提供Notch与多个二阶滤波器使用,提高系统带宽与响应能力,适于各种高速高精密控制应用场合。
如有任何疑问可访问ACS官方acsmotioncontrol,或与当地技术人员与代理商联系。