跳转至

轴控制模式

1.1 本章简介

控制器支持的控制模式包括:开环、位置环闭环、位置环+速度环闭环三种控制模式,用户需要根据所控制电机选择适合的控制模式进行控制;本章将介绍上述三种控制模式的配置方法,同时,本章还会对控制器支持的龙门功能进行详细的说明。

1.2 开环控制模式

1.2.1 重点说明

当需要控制步进电机或者使用脉冲方式控制伺服电机时,需要把控制器配置为开环控制模式。运动控制器支持3种脉冲输出模式,通过MotionStudio配置的详细说明请参考"系统配置"中"配置step"章节。

1. 脉冲+方向

调用指令GTN_StepDir来实现。

2. CCW/CW

调用指令GTN_StepPulse来实现。

3. 正交脉冲

调用指令GTN_StepOrthogonal实现。

1.2.2 配置开环(脉冲)控制模式

1. 打开运动控制器,GTN_OpenCardGTN_NetInit

2. 控制器上电或者复位后(调用指令GTN_Reset)默认的控制模式为“脉冲+方向”的脉冲控制方式。或者通过指令将控制器设置为相应的脉冲输出模式。

3. 检查相关轴驱动器报警信号有没有连接。(一般若采用步进电机,可能没有驱动器报警信号),若没有连接,则应该调用GTN_AlarmOff指令,使驱动器报警无效,默认是有效的。

4. 检查相关轴的限位开关,若没有连接,则需要通过调用GTN_LmtsOffEx,使限位无效,默认是有效的;若有连接,则要检查触发电平是否设置正确,可通过 GTN_SetSense指令修改。

5. 在确认前面两步操作之后,调用GTN_ClrSts,更新设置的状态。

6. 调用GTN_AxisOn,使能驱动器,这样相应的电机便能工作了。

7. 使轴运动,运动后,若出现编码器位置和规划位置方向不一致,则可通过调用GTN_SetSense改变编码器的计数方向。

重要

通过指令配置控制器之后,用户必须调用指令GTN_ClrSts更新状态,使得配置生效。很多初次使用的用户会容易忘记这一点。

开环控制模式

例程请参考

1.3 位置环闭环控制模式

1.3.1 指令列表

设置PID参数指令列表

指令 说明
GTN_SetControlFilter 设置PID参数索引。
GTN_GetControlFilter 读取当前PID参数索引。
GTN_SetPid 设置位置环PID参数。
GTN_GetPid 读取位置环PID参数。

1.3.2 重点说明

当需要控制伺服电机,并且驱动器设置了速度模式时,需要把控制器配置为位置环闭环控制模式,具体的配置方法如下。

1.3.3 配置闭环(模拟量)控制模式

1.3.3.1 设置PID参数

1. PID参数说明如下:

(1) kp:比例增益;该系数的作用是改变控制系统的动态响应速度。

(2) ki:积分增益;该系数的作用是消除控制系统的稳态误差。

(3) kd:微分增益;该系数的作用是改善控制系统的动态性能。其作用与输出的偏差变化速度成比例,能够预测偏差的变化,产生超前控制作用,以阻止偏差的变化。一般不需要设置。

(4) kvff:速度前馈系数;该参数的作用是减小跟随误差。跟随误差即某一时刻的规划值与编码反馈值的差值。

(5) kaff:加速度前馈系数;一般不需要调节。

(6) integralLimit:积分饱和极限;该参数一般默认设置。

(7) derivativeLimit:微分饱和极限;该参数一般默认设置。

(8) limit:控制量输出饱和极限;该参数与驱动器的电压接收范围有关,默认是32767,即对应范围是[-10V, 10V]。若驱动器的接收电压范围是[-5V, 5V],则该参数为16384,如果第一次调PID参数可以把此值设小,以防止发生正反馈,保护设备。当确定反馈正常时,需把此值设成对应的电压值,如很多驱动器默认的接收的范围是[-10V, 10V]。

2. 调节PID的相关说明:

(1) 首先调节kp,当电机很容易被移动时,说明kp太小,应慢慢加大kp,但不能将电机调节的“过硬”,kp太大了可能会引起高频振荡,这时就需要减小该参数。一般可以从kp = 1缓慢增大调试, 利用MotionStudio的“示波器”功能,查看响应曲线,一般如果控制旋转电机,走点位运动,只调此参数即可。

(2) 在响应速度满足的情况下,若跟随误差较大,则需要调节速度前馈系数,以减小跟随误差。此参数在连续轨迹运动的场合使用较多;但在点位运动,如果用直线电机,调整此参数,对电机快速响应也有一定的效果。

(3) 如果按照第一、第二步调试,效果还不能满足用户的需求,请调整驱动器的相关参数,如果驱动器的相关参数已调整好,请重复第一到第三步的操作,直到效果能满足用户的要求。

(4) 若需要消除稳态误差,调节一般先将DA零漂清除,建议先不要调节ki值。清除零漂方法:

1) GTN_OpenCardGTN_NetInit之后,通过指令GTN_CtrlMode将相应轴设置成闭环控制模式(注意:设置 PID 参数时,只需要设置 kp=1, 其他 PID 参数保持默认),之后调用GTN_AxisOn

2) 待电机稳定之后,调用GTN_GetEncPos获取对应轴的位置编码值,接着调用 GTN_SetMtrBias来设置 DA 零漂值,该零漂值为编码值的负值。设置完之后,延时一段时间,然后再调用GTN_GetEncPos,若此时的值还不为 0,则再次用此次的编码值与上次的编码值相加,将其和的负值再次设置DA零漂。

1.3.3.2 详细配置步骤

(1) 打开运动控制器,GTN_OpenCardGTN_NetInit

(2) 使用前需要先配置好编码器方向,确保编码器方向和运动方向一致。

(3) 配置模拟量输出方向和编码器方向一致:在开环模式下,使轴模拟量为正时,编码器增加,模拟量为负时,编码器减少。否则电机将发生正反馈,导致飞车。如果不满足前面的关系,需要通过配置文件修改模拟量的输出方向来保证模拟量输出方向和编码器方向一致。

(4) 控制器上电或者复位状态(调用指令GTN_Reset)默认为“脉冲+方向”的脉冲控制方式,因此需要调用GTN_CtrlMode来修改相应轴的控制模式,将相应轴设置成闭环控制模式。

(5) 检查相关轴驱动器报警信号有没有连接,若没有连接,则应该调用GTN_AlarmOff指令,使驱动器报警无效,默认是有效的。

(6) 检查相关轴的限位开关,若没有连接,则需要通过调用GTN_LmtsOffEx,使限位无效,默认是有效的;若有连接,则要检查触发电平是否设置正确,可通过GTN_SetSense指令修改。

(7) 在确认前面两步操作之后,调用GTN_ClrSts,更新设置的状态。

(8) 设置PID参数,通过调用GTN_SetPid,将相应轴的PID参数中的Kp设置为大于0的数,如Kp=1。(注意:设置PID参数时,只需要设置kp=1, 其他PID参数保持默认,后续调试再更改。)

(9) 调用GTN_AxisOn,使能驱动器,这样相应的电机便能工作了。

(10) 待电机稳定之后,调用GTN_GetEncPos获取对应轴的位置编码值,接着调用GTN_SetMtrBias来设置DA零漂值,该零漂值为编码值的负值。设置完之后,延时一段时间,然后再调用GTN_GetEncPos,若此时的值还不为0,则再次用此次的编码值与上次的编码值相加,将其和的负值再次设置DA零漂。

(11) 运动控制器支持设置3组PID参数,并且支持运动时在各组PID参数之间进行切换,通过调用GTN_SetControlFilter指令来切换PID参数。

注意
  1. 通过指令配置控制器之后,用户必须调用指令GTN_ClrSts更新状态,使得配置生效。很多初次使用的用户会容易忘记这一点。
  2. 闭环模式要注意防止飞车。详细参考 "详细配置步骤"中的(3)。
闭环控制模式例程

例程请参考

1.4 位置环+速度环闭环控制模式

1.4.1 指令列表

位置环+速度环闭环控制指令列表

指令 说明
GTN_CtrlMode 设置控制轴为模拟量输出或脉冲输出。
GTN_SetControlFilter 设置PID参数索引,支持16组PID。
GTN_GetControlFilter 读取当前PID参数索引。
GTN_SetPid 设置位置环PID参数。
GTN_GetPid 读取位置环PID参数。
GTN_SetVelLoopPid 设置速度环PID参数。
GTN_GetVelLoopPid 读取速度环PID参数。
GTN_SetVelLoopKjff 设置速度环加加速度前馈系数。
GTN_GetVelLoopKjff 读取速度环加加速度前馈系数。
GTN_SetFeedForwordValueLimit 设置前馈参考变量限制值。
GTN_GetFeedForwordValueLimit 读取前馈参考变量限制值。
GTN_SetLowpassFilterFirstOrder 设置一阶低通滤波器参数。
GTN_GetLowpassFilterFirstOrder 读取一阶低通滤波器参数。
GTN_SetLowpassFilterSecondOrder 设置二阶低通滤波器参数。
GTN_GetLowpassFilterSecondOrder 读取二阶低通滤波器参数。
GTN_SetNotchFilter 设置陷波滤波器参数。
GTN_GetNotchFilter 读取陷波滤波器参数。
GTN_SetPosErr 设置位置环跟随误差极限值。
GTN_GetPosErr 读取位置环跟随误差极限值。
GTN_SetLoopOutputProtect 设置环路输出值保护参数。
GTN_GetLoopOutputProtect 读取环路输出值保护参数和状态。
GTN_LoadConfig 加载双闭环控制器参数。

1.4.2 重点说明

当前要控制伺服电机,在使用控制器的位置环+速度环双闭环控制模式时,驱动器内只保留电流环,即力矩(电流)模式。目前只有GVN控制器的高速核支持该模式,具体的配置方法请参考1.4.3。

1.4.2.1 环路参数

双闭环控制模式的控制参数包括位置环的PID参数,速度环的PID参数和前馈参数。每个闭环控制器可保存多套PID参数,每套PID参数有对应的索引号,可调用GTN_SetControlFilter启用对应的PID。

1. 位置环的PID参数说明如下:

(1) kp:比例增益。改变控制系统的动态响应速度。

(2) ki:积分增益。保留参数,写0。

(3) kd:微分增益。保留参数,写0。

(4) integralLimit:积分饱和极限。保留参数,默认设置。

(5) derivativeLimit:微分饱和极限。保留参数,默认设置。

(6) limit:控制量输出饱和极限。

以上参数对应指令为GTN_SetPidGTN_GetPid

2. 速度环PID参数说明如下:

(1) kp:比例增益。改变控制系统的跟随的准确性。

(2) ki:积分增益。消除控制系统的稳态误差。

(3) kd:微分增益。保留参数,写0。

(4) integralLimit:积分饱和极限。

(5) derivativeLimit:微分饱和极限。保留参数,默认设置。

(6) limit:控制量输出饱和极限。该参数直接对应控制器输出给驱动器的电压信号范围,取值范围为[-32767, 32767],对应驱动器接收电流的最大值,一般是峰值电流。

以上参数对应的指令为GTN_SetVelLoopPid>GTN_GetVelLoopPid

3. 前馈参数的说明如下:

(1) kvff:速度前馈(位置环)。减小动态的跟随误差,影响控制系统的超前和滞后,一般给1。

(2) kaff:加速度前馈(速度环)。在kvff的基础上使用,进一步减小动态的跟随误差,主要是加减速段的跟随误差,调节到位的超前和滞后。

(3) kjff:速度环加加速度前馈。与kaff配合使用,进一步减小动态的跟随误差,调节到位的超前和滞后。

以上3个参数对应的指令分别为GTN_SetPidGTN_GetPidGTN_SetVelLoopPidGTN_GetVelLoopPidGTN_SetVelLoopKjffGTN_GetVelLoopKjff

4. 前馈参考值上限。当规划速度、规划加速度或规划加加速度大于设定的上限时,按照上限值进行控制量的运算。

当规划运动的速度曲线不连续时,加速度曲线和加加速度权限会存在异常的极大值,如果不对异常值进行过滤,会叠加异常值到输出给驱动器的电流信号内。因此需要合理设定前馈参考值上限,当规划得到的速度、加速度和加加速度大于上限值时,将前馈限制到上限值以内。以上功能对应的指令为GTN_SetFeedForwordValueLimitGTN_GetFeedForwordValueLimit

1.4.2.2 滤波器

双闭环控制器在环路的多个位置配有滤波器,如反馈速度,速度环输入误差,速度环输出等。滤波器可以有效的抑制轴的振动,防止机台共振,或过滤反馈信号引入的振动。目前,每个位置上各有1个一阶低通滤波器,1个二阶低通滤波器和6个陷波滤波器。

1. 一阶低通滤波器参数说明如下:

cutOffFreq:截止频率。频率在截止频率以上的信号会被削弱。

对应指令为GTN_SetLowpassFilterFirstOrderGTN_GetLowpassFilterFirstOrder

2. 二阶低通滤波器参数说明如下:

(1) cutOffFreq:截止频率。频率在截止频率以上的信号会被削弱。

(2) damping:阻尼比。一般给0.707。

对应指令为GTN_SetLowpassFilterSecondOrderGTN_GetLowpassFilterSecondOrder

3. 陷波滤波器参数说明如下:

(1) centerFreq:中心频率。一般设置为机台的共振频率。

(2) bandwidth:带宽。带宽越宽,对中心频率附近的陷波效果就越明显。

(3) depth:陷波深度。深度越大,陷波效果越明显,对周边频率的影响也越大。

对应指令为GTN_SetNotchFilterGTN_GetNotchFilter

当轴的运动速度、加速度较低时,可以设置较低的低通截止频率,过滤掉更多的高频信号。如果轴存在共振点,需使用陷波滤波器抑制共振频率附近的信号。

1.4.2.3 保护功能

双闭环控制器有两项保护功能,包括:

1. 位置误差越限保护。调用GTN_SetPosErr指令可设置位置环跟随误差的上限,当超过该上限值,轴自动下使能,轴状态的跟随误差越限标志置起。

2. 环路输出保护。当电机能承载的最大电流较小时,需要启用环路输出保护功能。环路输出保护功能规定速度环输出的保护阈值和保护窗宽。当窗宽内的信号能量越过设定范围时,轴自动下使能。调用GTN_GetLoopOutputProtect可查看是否触发了环路输出保护。

1.4.2.4 XML配置控制参数

以上内容均为双闭环控制器各功能单独改写时调用的指令。除此之外,GVN还支持从XML文件加载控制参数。用户只调用一条GTN_LoadConfig,即可设置控制器的所有的功能参数。

双闭环控制模式例程

例程请参考

1.4.3 配置双闭环控制模式

基于双闭环控制模式详细步骤如下:

1. 打开运动控制器,GTN_OpenCardGTN_NetInit

2. 控制器上电初始状态或者复位(调用指令GTN_Reset)后的控制模式为“脉冲 + 方向”的脉冲控制方式,此时轴的控制模式为开环。或者通过指令GTN_CtrlMode设置为开环控制模式。

3. 驱动器需要设置为力矩( 电流) 模式,固高的总线型驱动器需要通过指令GTN_SetMotionMode设置为周期同步电流模式。

4. 使用前需要先配置好编码器方向,确保编码器方向和运动方向一致,调用GTN_SetSense指令可修改编码器方向。

5. 配置模拟量输出方向和编码器方向一致,在开环模式下,使轴模拟量输出为正时,编码器增加,模拟量为负时,编码器减少。否则电机将发生正反馈,导致飞车。

6. 检查相关轴驱动器报警信号有没有实际接线,若没有连接,则应该调用GTN_AlarmOff指令,使驱动器报警无效,默认是有效的。

7. 检查相关轴的限位开关,若没有实际接线,则需要通过调用GTN_LmtsOffEx,使限位无效,默认是有效的;若有连接,则要检查触发电平是否设置正确,可通过GTN_SetSense指令修改。

8. 在确认前面操作之后,调用GTN_ClrSts,更新设置的状态。

9. 调用GTN_CtrlMode来修改相应轴的控制模式,将相应轴设置成闭环控制模式。

10. 设置Pid 参数,通过调用GTN_SetPidGTN_SetVelLoopPid,将相应轴的Pid 参数中的Kp 设置为大于0的数,需要同时设置速度环和位置环的PID,初始时,位置环PID 要设置的较小,否则容易引起震荡。

11. 设置前馈参数,通过调用GTN_SetPidGTN_SetVelLoopPidGTN_SetVelLoopKjff,根据需要设置速度前馈Kvff,加速度前馈Kaff,加加速度前馈Kjff的值。若规划运动的速度曲线,加速度曲线和加加速度曲线有异常的极大值,还要调用GTN_SetFeedForwordValueLimit设置前馈参考值上限。

12. 根据需要启用环路上的滤波器,调用GTN_SetLowpassFilterFirstOrder设置一阶低通滤波器,调用GTN_SetLowpassFilterSecondOrder设置二阶低通滤波器,调用GTN_SetNotchFilter设置陷波滤波器。

13. 调用GTN_AxisOn,使能驱动器,这样相应的电机便能工作了。

1.4.4 基于调试软件MotionStudio的配置

1. 配置机台编码器方向和闭环输出方向。

将控制器设为开环模式(具体详见"系统配置"1.3.2章节)。驱动器设为力矩模式,检查编码器和闭环输出方向是否一致。具体步骤如下:MotionStudio菜单“工具”→“环路控制”弹出界面如图所示,选择切换到“模拟量输出"界面,拖动滑动条改变轴DAC 的输出,并观察电机转动方向。

配置机台编码器方向和闭环输出方向

如果DAC正向增大时,编码器往正向移动,编码器和闭环输出方向一致,闭环输出方向不需要修改。如果DAC正向增大时,编码器往负向移动,编码器和闭环输出方向不一致,闭环输出方向取反。闭环输出方向取反请参考"系统配置"1.3.3章节。

2. 设置闭环参数,调试电机性能。

初始时,未知电机参数,需要给较小的参数保证安全。控制电机运动,并不断调整闭环控制参数并选择合适的滤波器,直至运动性能符合要求。速度环和位置环参数修改界面详见下图。通过指令也可以修改闭环参数和配置文件。

设置闭环参数
闭环参数修改

例程请参考

1.5 脉冲闭环

1.5.1 指令列表

脉冲闭环指令

指令 说明
GTN_SetPulseCloseWorkMode 设置脉冲闭环工作模式。

1.5.2 重点说明

除了传统的调节模拟量输出的闭环控制形式,固高控制器亦支持以控制脉冲输出的闭环控制形式。

脉冲闭环控制默认使用方法与模拟量闭环控制使用方法相同,在支持脉冲闭环的控制器上,打开闭环功能时,会同时调整轴模拟量输出与轴脉冲输出。同时可以调用GTN_SetPulseCloseWorkMode设置脉冲闭环的工作模式。

1.5.3 使用示例

使用脉冲闭环示例
    short rtn;
    short core = 1;
    short axis = 1;
    short pidGroup = 1;   
    TPid mPid;
    // 切换轴控制模式为闭环
    rtn = GTN_CtrlMode(core,axis,0);
    // 获取轴的pid数据
    rtn = GTN_GetPid(core,axis,pidGroup,&mPid);
    // 修改轴的pid数据
    mPid.kp = 0.01;
    mPid.kvff = 0.98;
    mPid.limit = 20;
    // 设置轴的pid数据
    rtn = GTN_SetPid(core,axis,pidGroup,&mPid);
示例切换脉冲闭环工作模式
    short rtn;
    short core = 1;
    short axis = 1;
    short pidGroup = 1;   
    TPid mPid;
    // 切换轴控制模式为闭环
    rtn = GTN_CtrlMode(core,axis,0);
    // 获取轴的pid数据
    rtn = GTN_GetPid(core,axis,pidGroup,&mPid);
    // 修改轴的pid数据
    mPid.kp = 0.01;
    mPid.kvff = 0.98;
    mPid.limit = 20;
    // 设置轴的pid数据
    rtn = GTN_SetPid(core,axis,pidGroup,&mPid);

    // 设置轴的工作模式为模式1,该模式下跟随误差小于阈值后不再调整位置
    TPulseCloseWorkModePrm mPrm;
    memset(&mPrm,0,sizeof(mPrm));
    mPrm.mode = 1;
    mPrm.adjustMinError = 10;    //跟随误差阈值为10脉冲,当跟随误差在该阈值内时不进行位置调整

    rtn = GTN_SetPulseCloseWorkMode(core,axis,&mPrm);

1.6 龙门控制模式

1.6.1 指令列表

龙门控制指令列表

指令 说明
GTN_SetGantryPrmPro 设置龙门功能参数。
GTN_GetGantryMode 读取龙门功能参数。

1.6.2 重点说明

龙门结构示意图

如图所示,龙门控制模式是针对需要两个机床轴(x1、x2)共同推动横梁的设备结构而设计。龙门控制模式将x1、x2作为一个龙门组轴进行同步控制,使龙门组轴中的机床轴同步无偏差的运动。

龙门功能包括开环龙门模式、闭环龙门模式和驱动器龙门模式。开环龙门模式只保证龙门主轴和龙门从轴的规划位置是同步的。闭环龙门模式,龙门主轴和龙门从轴的规划位置不仅是同步的,控制器还会根据龙门主轴和龙门从轴的实际位置进行同步控制,从而保证龙门主轴和龙门从轴的实际位置的绝对同步。驱动器龙门模式需要配合固高自研驱动器使用,在该模式下,龙门主轴、龙门从轴的位置、速度、力矩都会进行同步控制。

使用注意事项:

1. 使用龙门功能时,需要先调用指令GTN_SetGantryPrmPro将两个电机轴配置为龙门组轴。配置完成后,龙门组轴中的任意一个轴上伺服时另一个轴也会自动上伺服。龙门主轴的规划器控制龙门主轴和龙门从轴沿着中心点前进或者后退。龙门从轴的规划器控制龙门主轴和龙门从轴围绕中心点进行旋转运动。

2. 开环龙门模式下,控制器为脉冲模式,驱动器需要设置成位置环模式,具体设置请参考1.2章节

3. 闭环龙门模式下,控制器为闭环模式,驱动器需要配置成闭环(模拟量)控制模式,具体设置请参考章节1.3章节

4. 龙门轴使能之前,需要通过指令GTN_SetGantryPrmPro设置龙门组轴的PID。参数gantryMasterPid决定龙门主、从轴前进或者后退时的响应速度。参数gantrySlavePid决定龙门主、从轴同步性能。

5. 龙门控制不同模式之间切换时需要先下使能,才能成功切换到另一种模式。

6. 允许使能状态下解除龙门组轴。通过调用指令GTN_SetGantryPrmPro解除龙门组轴,解除时如果为龙门闭环模式,需要设置龙门主、从轴解除后的PID参数。参数masterPid为解除后主轴的PID参数,参数slavePid为解除后从轴的PID参数。

7. 驱动器龙门模式需要配合固高自研驱动器使用。使用步骤如下: 通过控制器调试软件MotionStudio进行配置,打开MotionStudio调试软件点击菜单栏 “工具”选项下面的“龙门”菜单子项,弹出“龙门”配置界面,如图所示。在“龙门”配置界面选择“驱动器龙门”,选取对应的轴号后点击“开启龙门”按钮。(配置完成后不需要重复配置,配置一次即可)。

龙门配置界面
龙门控制模式

例程请参考