公开/公告号CN113037150A
专利类型发明专利
公开/公告日2021-06-25
原文格式PDF
申请/专利权人 成都卡诺普自动化控制技术有限公司;
申请/专利号CN202110274595.X
申请日2021-03-15
分类号H02P5/46(20060101);H02P21/00(20160101);H02P21/14(20160101);H02P21/22(20160101);H02P27/08(20060101);
代理机构51213 四川省成都市天策商标专利事务所;
代理人张秀敏
地址 610000 四川省成都市成华区龙潭工业园华冠路199号
入库时间 2023-06-19 11:35:49
技术领域
本发明涉及工业机器人控制技术领域,具体的说,是一种基于DSP+FPGA伺服实现工业机器人多轴控制的方法。
背景技术
现有技术中,工业机器人伺服驱动器常用的架构为纯DSP控制方案,DSP实现PWM外设功能、DSP实现电流采样、DSP实现编码器位置采取以及DSP通过PWM直接去控制电机驱动电路,从而控制电机的转动。但是,DSP中PWM外设及ADC外设有限,如采用双CPU的DSP最多只控制4台电机,若需控制更多的电机则需增加DSP数量。当控制多台电机比如实现8-10台电机控制时,则需要24-30个PWM外设、16-20个ADC电流采样外设、需要8-10个485通信模块,这样往往需要使用3片甚至更多的DSP芯片来实现10台电机控制,而且各轴电机控制的同步性可能会受到影响。现有技术中最常见的做法是使用10片DSP控制10台电机,导致成本较高且各轴电机控制的同步性受到影响。
发明内容
本发明的目的在于提供一种基于DSP+FPGA伺服实现工业机器人多轴控制的方法,用于解决现有技术中DSP中PWM外设及ADC外设有限,需要多片DSP控制多台电机的问题。
本发明通过下述技术方案解决上述问题:
一种基于DSP+FPGA伺服实现工业机器人多轴控制的方法,包括FPGA、DSP和伺服驱动器电路,包括:
步骤S100:FPGA采集编码器数据,通过EMIF接口发送编码器数据和电流数据给DSP;
步骤S200:DSP计算位置控制PI环和速度控制PI环,得到设定电流,通过EMIF接口发送设定电流给FPGA;
步骤S300:FPGA进行电流环控制,采用电机控制算法计算输出占空比,输出占空比驱动电机的功率开关管,控制电机转动。
本发明在不增加DSP数量的情况下,通过增加1片FPGA,并且将电流环放入到FPGA,节省了DSP资源,节省了成本;将伺服控制的电流控制PI环及电机控制算法集成到了FPGA,FPGA实现了PWM外设、实现了∑-Δ电机电流采样,从而解决了DSP中PWM外设及ADC外设有限的问题;且由于FPGA在电机控制周期内能多次对电流信号进行滤波处理,可以得到更加准确的电流信号,相比DSP外设一个周期内往往只能采集一次,本发明提高了控制性能,实现更快的电流控制响应。
所述步骤S200中DSP根据接收的编码器数据计算位置控制PI环:
其中,u
DSP通过反馈的编码器数据计算出速度反馈量,实现速度控制PI环:
其中,u′
得到速度控制PI环的输出,即设定电流。
所述步骤S300中FPGA根据采集的电机电流和DSP发送的设定电流,计算电流环的输出:
其中,u″
FPGA根据电流环的输出及电机控制算法SVPWM计算占空比:
vα=v
v
其中,v
由v
其中,T
计算中间变量
得到:
T
FPGA按照占空比输出变量进行PWM脉宽调制,控制驱动芯片,实现开关功率器件脉宽调制,控制电机转动。
所述步骤S100中FPGA采用编码器协议采集编码器数据,编码器协议包括包含读取多圈命令、读取单圈命令、读取全数据命令、读取编码器故障命令和清除故障报警命令;编码器数据包括单圈数据、多圈数据、位置信号和故障报警。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明将伺服控制的电流控制PI环及电机控制算法集成到了FPGA,FPGA实现了PWM外设、实现了∑-Δ电机电流采样,从而解决了DSP中PWM外设及ADC外设有限的问题,在不增加DSP数量的情况下,通过增加1片FPGA,即1片DSP+1片FPGA可以实现了10台电机的控制;将电流环放入到FPGA,节省了DSP资源,节省了成本,且FPGA在100us电机控制周期内能多次对电流信号进行滤波处理,可以得到更加准确的电流信号,对改善控制性能有积极影响。相比DSP外设一个周期内往往只能采集一次,本发明可以实现更快的电流控制响应。
(2)本发明中FPGA是可编程现场门整列,易于实现DSP的ADC外设功能及PWM外设功能。
附图说明
图1为本发明的流程图;
图2为本发明的DSP和FPGA实现的功能模块示意图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1和图2所示,一种基于DSP+FPGA伺服实现工业机器人多轴控制的方法,包括FPGA、DSP和伺服驱动器电路,包括:
步骤S100:首先,进行系统初始化和EMIF通信接口初始化;
设置DSP与FPGA进行通信采集电流和编码器位置的周期为100us;
FPGA采集编码器数据,通过EMIF接口发送编码器数据给DSP,FPGA产生时钟信号,典型的时钟周期为50ns,去采集电流采样芯片的电流,电流采样芯片返回的数据为16位数字信号电流数据给DSP;
FPGA采用编码器协议采集编码器数据,编码器协议包括包含读取多圈命令、读取单圈命令、读取全数据命令、读取编码器故障命令和清除故障报警命令;编码器数据包括单圈数据、多圈数据、位置信号和故障报警。
步骤S200:DSP计算速度和电流,实现位置控制PI环和速度控制PI环,并计算出设定电流,通过EMIF接口发送设定电流给FPGA,具体地:
DSP根据接收的编码器数据计算位置控制PI环:
其中,u
DSP通过反馈的编码器数据计算出速度反馈量,实现速度控制PI环:
其中,u′
得到速度控制PI环的输出,即设定电流;
步骤S300:FPGA进行电流环控制,采用电机控制算法(包括Clark变换、Park变换、Iclark变换、Ipark变换、SVPWAM)计算出最终输出的占空比,FPGA将计算出的占空比驱动电机的功率开关管,控制电机转动。具体地:
FPGA根据采集的电机电流和DSP发送的设定电流,计算电流环的输出:
其中,u″
FPGA根据电流环的输出及电机控制算法SVPWM计算占空比:
v
v
其中,v
由v
其中,T
计算中间变量
得到:
T
FPGA按照占空比输出变量进行PWM脉宽调制,控制驱动芯片,实现开关功率器件脉宽调制,控制电机转动。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
机译: 自动化处理设备多轴工业机器人的控制方法,包括基于检测到操纵装置的位置偏差,将比较器的输出信号发送到操纵装置的控制装置
机译: 控制多轴伺服压力机设备的方法和多轴伺服压力机设备
机译: 在工业机器人系统中控制多轴的方法和工业机器人系统