一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

直线插补运动控制系统的制作方法

2021-11-29 11:29:00 来源:中国专利 TAG:


1.本技术涉及运动控制领域,具体而言,涉及一种直线插补运动控制系统。


背景技术:

2.运动控制作为现代化设备的核心控制部件,开放性、可靠性、小型化是衡量运动控制器是否在工业立足的关键。现有技术中的直线插补运动控制系统多采用工控机加运动控制卡,工控机加运动控制卡的直线插补运动控制系统体积较大,无法满足小型化的要求,且难以同时兼顾准确性、实时性和稳定性。


技术实现要素:

3.本技术的主要目的在于提供一种直线插补运动控制系统,以解决现有技术中直线插补运动控制系统体积较大,无法满足小型化的要求的问题。
4.为了实现上述目的,根据本技术的一个方面,提供了一种直线插补运动控制系统,包括:硬件设备,所述硬件设备包括多核arm芯片;软件系统,包括操作系统层、驱动层和应用层,所述操作系统层为rt

linux系统,所述驱动层包括电机驱动模块,所述应用层包括直线插补运动控制模块。
5.进一步地,所述多核arm芯片中内置有arm处理器和浮点dsp处理器。
6.进一步地,所述驱动层还包括定时器驱动模块,所述定时器驱动模块用于生成pwm脉冲。
7.进一步地,所述pwm脉冲的频率为兆级别。
8.进一步地,所述定时器驱动模块包括初始化子模块、周期和占空比设置子模块以及点位运动步数设置子模块。
9.进一步地,所述直线插补运动控制模块包括象限判断子模块和运动控制子模块,所述象限判断子模块用于判断x轴方向上的电机和y轴方向上的电机的正反转,所述运动控制子模块用于确定所述x轴方向上的电机的行走步数和所述y轴方向上的电机的行走步数。
10.进一步地,所述运动控制子模块采用的直线插补运动控制算法为bresenham算法。
11.进一步地,所述驱动层还包括串口驱动模块、usb驱动模块、网络驱动模块和gpio驱动模块。
12.进一步地,所述硬件设备还包括外围电路,所述外围电路与所述多核arm芯片电连接。
13.进一步地,所述多核arm芯片的主频为1.5ghz。
14.应用本技术的技术方案,硬件设备采用多核arm芯片,操作系统层采用rt

linux系统,结合多核arm芯片与rt

linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,相对于现有技术中的“pc 运动控制卡”、“工控机 运动控制卡”以及“plc 运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,rt

linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时
性,保证了多轴联通的同步性和准确性。
附图说明
15.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
16.图1示出了根据本技术的实施例的直线插补运动控制系统的软件系统示意图;
17.图2示出了根据本技术的实施例的使用定时器实现pwm脉冲的原理图;
18.图3示出了根据本技术的实施例的2mhz频率脉冲输出结果图;
19.图4示出了根据本技术的实施例的直线插补象限判断实现流程图;
20.图5示出了根据本技术的实施例的直线插补算法实现流程图。
具体实施方式
21.应该指出,以下详细说明都是例示性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
22.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
23.应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
24.正如背景技术所介绍的,现有技术中直线插补运动控制系统体积较大,无法满足小型化的要求,为了解决如上直线插补运动控制系统体积较大,无法满足小型化的要求的问题,本技术的实施例提供了一种直线插补运动控制系统。
25.本技术的一种典型的实施例,提供了一种直线插补运动控制系统,如图1所示,包括:
26.硬件设备,上述硬件设备包括多核arm芯片;
27.软件系统,包括操作系统层、驱动层和应用层,上述操作系统层为rt

linux系统,上述驱动层包括电机驱动模块,上述应用层包括直线插补运动控制模块。
28.具体地,操作系统层、驱动层和应用层之间的关系是:操作系统层是系统运行的基础,驱动层是应用程序与内核之间的接口,沟通应用软件与操作系统的桥梁,应用层是所有应用程序的总成,实现某一个或几个专有的功能。
29.上述方案中,硬件设备采用多核arm芯片,操作系统层采用rt

linux系统,结合多核arm芯片与rt

linux系统,在驱动层设置电机驱动模块,应用层设置直线插补运动控制模块,相对于现有技术中的“pc 运动控制卡”、“工控机 运动控制卡”以及“plc 运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,rt

linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时性,保证了
多轴联通的同步性和准确性。
30.本技术的一种实施例中,上述多核arm芯片中内置有arm处理器和浮点dsp处理器。浮点dsp处理器主要负责处理插补运动算法中的浮点数等数据。arm处理器可以选择arm cortex

a15处理器,浮点dsp处理器可以选择dsp c66x。支持快速处理浮点数能力,提高算法运行效率。
31.本技术的一种实施例中,上述驱动层还包括定时器驱动模块,上述定时器驱动模块用于生成pwm脉冲。pwm脉冲用于驱动电机。输出供电机运动的pwm脉冲主要有三种方式实现,一种是gpio口模拟pwm输出方法实现,一种是使用自带的硬件pwm输出,一种是使用计时器实现pwm脉冲输出。使用gpio口方法模拟pwm实现方法简单,但是如果频率太高,经测试频率超过20khz,受系统的影响不能正常使用。使用自带的硬件pwm无法输出高精度高频率的pwm脉冲。采用计时器可以输出高精度高频率的pwm脉冲。
32.本技术的一种实施例中,上述pwm脉冲的频率为兆级别。高精度高频率的pwm脉冲可以保证电机运动的准确性,减少电机运动的误差。电机行走最小单位为一个脉冲周期,保证了电机运行精度。
33.本技术的一种实施例中,上述定时器驱动模块包括初始化子模块、周期和占空比设置子模块以及点位运动步数设置子模块。初始化子模块的功能为对定时器的相关参数进行初始化,周期和占空比设置子模块用于设置周期和占空比,点位运动步数设置子模块的功能是设置运动的步数。具体地,如果电机运行1mm对应输出100个pwm波形,也就是100步,这就是点位运动;电机运行时,若设置电机的运行速度为1000hz,那么pwm的周期就是1/1000hz,占空比一般指高电平占一个脉冲整个周期的比例,一般设置为50%,也就是(1/1000)/2。
34.本技术的一种实施例中,上述直线插补运动控制模块包括象限判断子模块和运动控制子模块,上述象限判断子模块用于判断x轴方向上的电机和y轴方向上的电机的正反转,上述运动控制子模块用于确定上述x轴方向上的电机的行走步数和上述y轴方向上的电机的行走步数。
35.本技术的一种实施例中,上述运动控制子模块采用的直线插补运动控制算法为bresenham算法。采用bresenham算法可以减少浮点数的运算,提高算法运行效率。脉冲增量式直线插补精度为1个脉冲,由于定时器(可选择型号为am5728的定时器)能够输出兆级别的脉冲频率,所以保证了电机实际运行的精度。实现简单的多轴直线联动,保证了电机运行精度及稳定性。
36.本技术的一种实施例中,上述驱动层还包括串口驱动模块、usb驱动模块、网络驱动模块和gpio驱动模块。
37.本技术的一种实施例中,上述硬件设备还包括外围电路,上述外围电路与上述多核arm芯片电连接。外围电路是指芯片工作所需的外设电路,比如千兆网口电路、接口输入、输出电路等。
38.本技术的一种实施例中,上述多核arm芯片的主频为1.5ghz。保证准确性和实时性。
39.本技术的一种实施例中,本系统支持人机交互界面设计,无需pc和工控机就可以实现人机交互界面设计。发挥嵌入式的小型化、专业化、人性化的优势。小型化arm板卡支持
人机交互界面,可以直接用于项目中使用,在某种程度上可代替plc与工控机作用,节省设备空间,多核设备资源分配灵活。所以多核小型化arm的实时linux直线插补运动控制方法相比普通的插补算法,提高了测量精度与运行效率。
40.实施例
41.本实施例涉及一种直线插补运动控制方法,基于脉冲增量式的直线插补算法的应用主要是针对pwm方式输出的伺服电机使用。基于多核arm的直线插补运动控制算法实现分为三个方面。第一个是在多核arm上实现电机驱动程序的设计,另外一个是电机运动方向多象限判断设计,第三个是直线插补运动控制算法设计。
42.首先,基于多核arm的直线插补运动控制算法的研究的稳定性基础保证是稳定准确输出一个pwm脉冲。使用定时器实现高精度的pwm脉冲主要是利用linux系统内核提供的接口函数,实现流程图2所示。主要包括定时器初始化、定时器脉冲输出的周期与占空比配置、定时器点位运动准确行走步数设置函数、开启定时器后,定时器会按照配置周期值大小准确运行配置步数停止。采用定时器输出的频率为2mhz频率的脉冲如图3所示。
43.直线插补运动控制算法是在rt

linux应用程序中实现,使用的直线插补运动控制算法是基于bresenham算法的升级算法。bresenham算法是一种基于误差判别式来生成直线的方法。它采用递推步进的方法,令每次最大变化方向的坐标步进个脉冲,同时另外一个方向的坐标依据误差判别式的符号来决定是否也要步进一个脉冲。象限判断流程图与实现流程图如图4、图5所示。
44.根据客户传送过来的行走的线段值xe,ye(若当前坐标为(xc,yc),目标坐标xt,yt),则xe=xt

xc;ye=yt

yc)根据两者的位置坐标关系决定电机的正反转。如图4所示,当xe>0,ye>0,则第一象限,x轴正方向行走,y轴正方向行走;当xe>0,ye<0时,第四象限,x轴正方向行走,y负方向行走;当xe<0;ye>0时,为第二象限,x轴负方向行走,y正方向行走;当xe<0,ye>0,x负方向行走,y负方向行走。
45.如图5所示,根据直线插补运动位置坐标关系,判断要运动的两个轴要运动的位移关系,假设直线斜率为k,若x轴要走的位移量的绝对值abs(xe)>abs(ye),也就是斜率|k|<1,则l=abs(xe)。x轴方向为主步进方向,反之,y轴方向为主步进方向。当k=0,即线段平行于x轴,即程序值需要计算x方向的单位步进,y方向值不变。同样的当|k|等于1,即线段的x方向的单位步进和y方向的单位步进一样,皆为1,直接循环xe计算x和y坐标。然后在for循环中每次x轴都会行走一个脉冲数,y轴会根据误差值e的大小判断是否要行走一个脉冲。当x与y都直线插补指定步数运行结束后,退出for函数,直线插补运动控制算法结束。
46.使用bresenham算法,不必计算直线的斜率,因此不用做除法计算;不用浮点数运算,只用到整数;算法速度很快。
47.插补运动控制算法是在应用程序中设计,可以根据项目需求与资源分配运行于多核arm中的某一个核内,提高资源的灵活分配,提高效率与运动控制精度。而且我们使用的arm开发板小型化,大约200*100mm,最多可驱动8个伺服电机一起动作。本方案可以用于所有插补运动过程中小线段直线行走算法;可用于小型化高精度直线插补运动控制设备。
48.从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
49.本技术的直线插补运动控制系统,硬件设备采用多核arm芯片,操作系统层采用rt

linux系统,结合多核arm芯片与rt

linux系统,在驱动层设置电机驱动模块,应用层设
置直线插补运动控制模块,相对于现有技术中的“pc 运动控制卡”、“工控机 运动控制卡”以及“plc 运动控制卡”的系统,体积较小。即在实现直线插补的情况下,保证了小型化的设计。同时,rt

linux系统保证了应用程序与内核之间实时的数据交互,内核与硬件电路数据交互的实时性,保证了多轴联通的同步性和准确性。
50.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献