本发明属于伺服驱动系统,具体涉及一种具有电流检测功能的编码器,及利用该编码器进行电流检测的方法。
背景技术:
伺服电机及驱动器是现代运动控制的重要组成部分,被广泛应用于工业机器人及数控加工中心等自动化设备中。
当前交流伺服驱动器设计中普遍采用基于矢量控制的电流、速度和位置的闭环控制算法,来提高伺服驱动器的性能;其中,电流的获取,是由伺服驱动器内部的电流采样元件采样得到;速度和位置是由安装在伺服电机侧的编码器采样获得。
然而,随着编码器分辨率的提升,目前主流编码器的分辨率已经提升到了17bit及其以上,当前通过ttl电平发送脉冲信号的方式已经不能满足相关需求,为了解决上述缺陷,目前多采用以通讯传输数据的形式,将位置信息传送给伺服驱动器。但是,伺服驱动器采用的闭环控制算法,是要求严格等时同步的,若采用现有的编码器通信方式,不仅造成通信周期数据的滞后,且由于伺服驱动器无法知道编码器的采样时刻,导致电流采样和编码器的位置采样无法做到真正的同步,这样采样的时间误差会造成相位裕度的损失及性能劣化。另外由于某些应用场景下uvw动力线较长,线上的分布电容和寄生电感,造成驱动侧采样到的电流不等同于电机的实际电流,因此,目前需要针对以上缺陷设计一种具有电流检测功能的编码器,通过派出传输线上的干扰,得到电机的实际电流。
技术实现要素:
本发明要解决的技术问题在于,针对现有技术的无法精准检测到电机的实际电流缺陷,提供一种具有电流检测功能的编码器,及利用该编码器进行电流检测的方法。
本发明解决其技术问题所采用的技术方案是:构造一种具有电流检测功能的编码器,包括电流采样部、位置采样部、通信部和控制部,其中:
所述电流采样部与位置采样部均分别连接到控制部和伺服电机,所述控制部连接到通信部,所述通信部链接到伺服驱动器;
电流采样部,用于对伺服电机的uvw相电流进行采样,得到三相电流iu、iv和iw,所述三相电流iu、iv和iw将反馈到控制部;
位置采样部,用于对伺服电机转子的实际位置进行采样,得到实际转子位置pos_act,所述实际转子位置pos_act将反馈到控制部;
通信部,用于和伺服驱动器进行信息交互,并在所述伺服驱动器请求获取伺服电机转子位置且发送位置数据请求指令到通信部时,对所述位置数据请求指令进行接收;所述位置数据请求指令包括采样时间ta、采样周期ts和电机位置控制参数;所述位置数据请求指令将反馈到控制部;
控制部,一方面用于对所述位置数据请求指令进行解析,根据解析得到的采样时间ta和采样周期ts,同时触发电流采样部和位置采样部进行电流采样和位置采样,控制电流采样部和位置采样部采样得到电流信号、转子位置信号的采样时间处于同一时刻;另一方面用于在进行采样时间同步处理后,结合从位置采样部获取到的实际转子位置pos_act以及电机位置控制参数进行计算,得到转子观测位置pos_fed;所述转子观测位置pos_fed以及进行采样时间同步后的电流信号将通过通信部反馈到伺服驱动器,由所述伺服驱动器根据电机的电流和位置反馈,控制电机的扭矩、转速和转动角度。
由于伺服电机控制系统里面,需要用到电机的电流反馈参与计算,然而传统的做法是在伺服驱动器里面做采样。这样的话,动力传输线上面寄生电容造成的漏电流,以及一些干扰电流都会被检测到,给系统带来噪音。如果在电机侧直接采样,这样得到的电流是真正的电机绕组电流;同时,根据通信时刻来控制电流采样和编码器位置采样的时刻,确保避免发生延时,导致数据检测精度出现偏差,并通过驱动器下发数据,获取采样点和pwm波峰波谷的相对时间,控制编码器位置和电流采样点,避开pwm斩波。
本发明提出的一种利用如上述编码器进行电流检测的方法,包括以下步骤:
s1、由伺服驱动器请求获取伺服电机转子位置且发送位置数据请求指令到通信部,由所述通信部与所述伺服驱动器进行信息交互,对所述位置数据请求指令进行接收;所述位置数据请求指令将由通信部反馈到控制部;
s2、所述控制部对所述位置数据请求指令进行解析,根据解析得到的采样时间ta和采样周期ts,同时触发电流采样部和位置采样部进行电流采样和位置采样,控制电流采样部和位置采样部采样得到电流信号、转子位置信号的采样时间处于同一时刻;
s3、由所述电流采样部对伺服电机的uvw相电流进行采样得到三相电流iu、iv和iw,所述三相电流iu、iv和iw将反馈到控制部;由所述位置采样部对伺服电机转子的实际位置进行采样,得到实际转子位置pos_act,所述实际转子位置pos_act将反馈到控制部;
s4、所述控制部在进行采样时间同步处理后,结合从位置采样部获取到的实际转子位置pos_act以及电机位置控制参数进行计算,得到转子观测位置pos_fed;
s4、由所述控制部将所述转子观测位置pos_fed以及进行采样时间同步后的电流信号,通过通信部反馈到伺服驱动器,由所述伺服驱动器根据电机的电流和位置反馈,控制电机的扭矩、转速和转动角度。
实施本发明的一种具有电流检测功能的编码器及电流检测方法,具有以下有益效果:
1、在编码器中设计了一个电流采样部对伺服电机的相电流进行采样,避免干扰电流被检测到;
2、在进行电流信号和位置信号采样前,设置延时时间来避开pwm斩波,保证采样信号的完整性。
3、确保位置采样和电流采样同时进行,有益于伺服算法的计算。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是编码器内部电路的结构图;
图2是避开pwm斩波信号干扰的时序图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
请参考图1,其为编码器内部电路的结构图,本发明提供的一种具有电流检测功能的编码器,包括电流采样部、位置采样部、通信部和控制部,其中:
各个部件之间的连接关系为:
所述电流采样部与位置采样部均分别连接到控制部和伺服电机m;
所述控制部连接到通信部,所述通信部连接到伺服驱动器。
各个部件的功能作用为:
电流采样部主要用于对伺服电机的uvw相电流进行采样,得到三相电流iu、iv和iw,所述三相电流iu、iv和iw将反馈到控制部;伺服电机控制系统里面,需要用到电机的电流反馈参与计算,然而传统的做法是在伺服驱动器里面做采样。这样的话,动力传输线上面寄生电容造成的漏电流,以及一些干扰电流都会被检测到,给系统带来噪音。本发明中,通过在电机侧直接采样,这样得到的电流即为真正的电机绕组电流,有效的避免了干扰电流带来的噪音;
位置采样部主要用于对伺服电机转子的实际位置进行采样,得到实际转子位置pos_act,所述实际转子位置pos_act将反馈到控制部;由于编码器和伺服驱动器之间的通信是周期性的,比如62.5us通信一次,那么在编码器收到伺服驱动器的请求指令后,采样得到pos_act,假设不做任何处理直接在应答帧里面,直接反馈给伺服驱动器,那么伺服驱动器收到数据后(数据传输需要时间,一般是20us以上),一般会在下一个周期处理,也就是62.5us以后,这时候,电机转子的实际位置和采样时刻是不相等的,这也是为什么后续需要通过控制部进行电机观测位置的预测;
通信部主要用于和伺服驱动器进行信息交互,并在所述伺服驱动器请求获取伺服电机转子位置且发送位置数据请求指令到通信部时,对所述位置数据请求指令进行接收;所述位置数据请求指令包括采样时间ta、采样周期ts和电机位置控制参数;所述位置数据请求指令将反馈到控制部;所述电机位置控制参数包括q轴电流给定值iref或电机转矩给定值tref;
控制部主要起到两个方面的作用:
一方面用于对所述位置数据请求指令进行解析,根据解析得到的采样时间ta和采样周期ts,同时触发电流采样部和位置采样部进行电流采样和位置采样,控制电流采样部和位置采样部采样得到电流信号、转子位置信号的采样时间处于同一时刻;在进行同步采样处理的时候,可以考虑通过mcu(微控制单元)的定时器同时触发电流采样和位置采样,保证采样时刻的同时性;
另一方面,控制部用于在进行采样时间同步处理后,结合从位置采样部获取到的实际转子位置pos_act以及电机位置控制参数进行计算,得到转子观测位置pos_fed;转子观测位置pos_fed的计算公式为:
pos_fed(k)=pos_act(k)+(pos_act(k)-pos_act(k-1))×iqref(k)÷(pos_act(k-1)-pos_act(k-2))÷iqref(k-1);
或者
pos_fed(k)=pos_act(k)+(pos_act(k)-pos_act(k-1))×tqref(k)÷(pos_act(k-1)-pos_act(k-2))÷tqref(k-1);
其中,k为采样周期,例如iqref(k-1)为一个离散的表示其即为在上一个周期采样得到的q轴电流给定值。
所述转子观测位置pos_fed以及进行采样时间同步后的电流信号将通过通信部反馈到伺服驱动器,由所述伺服驱动器根据电机的电流和位置反馈,控制电机的扭矩、转速和转动角度。
本实施例中为了保证采样信号的完整性,所述位置数据请求指令中还包括pwm波峰、波谷的相对时间;具体可参考图2,其为避开pwm斩波信号干扰的时序图,所述控制部根据pwm波峰、波谷的相对时间、采样时间ta和采样周期ts,设置采样延时时间,其中:
所述控制部在t1+td时刻接收到位置数据请求指令时,根据pwm波谷的相对时间,设置的采样延时时间tw为:
tw=ts-ta-td;
在进行延时处理后,再依次进行电流信号和位置信号的采样,并将采样点调整在pwm斩波信号的底部;
或者根据pwm波峰的相对时间,设置的采样延时时间tw为:
tw=ts/2-ta-td;
当前将采样点调整在pwm斩波信号的顶部;
在进行电流信号和位置信号采样前,设置延时时间来避开pwm斩波,保证采样信号的完整性。
本实施例中,利用上述编码器进行电流检测的方法,包括以下步骤:
s1、由伺服驱动器请求获取伺服电机转子位置且发送位置数据请求指令到通信部,由所述通信部与所述伺服驱动器进行信息交互,对所述位置数据请求指令进行接收;所述位置数据请求指令将由通信部反馈到控制部;
s2、所述控制部对所述位置数据请求指令进行解析,根据解析得到的采样时间ta和采样周期ts,同时触发电流采样部和位置采样部进行电流采样和位置采样,控制电流采样部和位置采样部采样得到电流信号、转子位置信号的采样时间处于同一时刻;其中,所述位置数据请求指令中还包括pwm波峰、波谷的相对时间;所述控制部根据pwm波峰、波谷的相对时间、采样时间ta和采样周期ts,设置采样延时时间,其中:
所述控制部在t1+td时刻接收到位置数据请求指令时,根据pwm波谷的相对时间,设置的采样延时时间tw为:
tw=ts-ta-td;
在进行延时处理后,再依次进行电流信号和位置信号的采样,并将采样点调整在pwm斩波信号的底部;
或者根据pwm波峰的相对时间,设置的采样延时时间tw为:
tw=ts/2-ta-td;
当前将采样点调整在pwm斩波信号的顶部;
在进行电流信号和位置信号采样前,设置延时时间来避开pwm斩波,保证采样信号的完整性。
s3、由所述电流采样部对伺服电机的uvw相电流进行采样计算得到三相电流iu、iv和iw,所述三相电流iu、iv和iw将反馈到控制部;由所述位置采样部对伺服电机转子的实际位置进行采样,得到实际转子位置pos_act,所述实际转子位置pos_act将反馈到控制部。
s4、所述控制部在进行采样时间同步处理后,结合从位置采样部获取到的实际转子位置pos_act以及电机位置控制参数进行计算,得到转子观测位置pos_fed;其中,所述电机位置控制参数包括q轴电流给定值iref或电机转矩给定值tref;本步骤下,利用所述控制部计算转子观测位置pos_fed的计算公式为:
pos_fed(k)=pos_act(k)+(pos_act(k)-pos_act(k-1))×iqref(k)÷(pos_act(k-1)-pos_act(k-2))÷iqref(k-1);
或者
pos_fed(k)=pos_act(k)+(pos_act(k)-pos_act(k-1))×tqref(k)÷(pos_act(k-1)-pos_act(k-2))÷tqref(k-1);
其中,k为采样时刻。
s5、由所述控制部将所述转子观测位置pos_fed以及进行采样时间同步后的电流信号,通过通信部反馈到伺服驱动器,由所述伺服驱动器根据电机的电流和位置反馈,控制电机的扭矩、转速和转动角度。
本发明中通过在编码器中设计了一个电流采样部对伺服电机的相电流进行采样,避免干扰电流被检测到;在进行电流信号和位置信号采样前,设置延时时间来避开pwm斩波,保证采样信号的完整性。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。