众为兴ADT-8949G1运动控制卡在雕刻机上的应用
- 关键词:运动控制卡,雕刻机控制卡,雕刻机系统,运动控制技术
- 摘要:雕刻机是制造作业内最为常见的一种加工设备,通常由于加工材质的不同和被细分为金属雕刻,木工雕刻,亚克力雕刻等等,由于其工艺是建立在标准铣床的运动模型基础上,所以有着很多和加工中心,数控铣床相似的运动控制需求,但同时也存在一些功能定位上的差异。
雕刻机是制造作业内最为常见的一种加工设备,通常由于加工材质的不同和被细分为金属雕刻,木工雕刻,亚克力雕刻等等,由于其工艺是建立在标准铣床的运动模型基础上,所以有着很多和加工中心,数控铣床相似的运动控制需求,但同时也存在一些功能定位上的差异;例如很多行业的制造需求越来越倾向定制化,所以虽然加工中心能完全替代雕刻机,但却替代不了雕刻机的市场定位和发展趋势,雕刻机有着轻量级加工中心之说,但在速度和光洁度上,雕刻机却要求比加工中心要高,主要体现在雕刻机所面向的材料和应用上。这在很大程度上提出了对运动控制的速度规划要求和平稳要求。
采用运动控制卡来做雕刻机,是目前常见的一种雕刻机解决方案,主要体现在windows是一个开放性的平台,很容易做产品整合,例如加视觉等等;采用windows+运动控制卡来开发雕刻机软件,相对于嵌入式数控平台的开发来说门槛低很多,同时也非常方便开发一些接口来扩展新的功能。常见的雕刻机软件通常需要下面几个模块就可以工作了。
人机界面:
“人机界面”是雕刻机和其他的软件和操作者交互的模块。
译码器:
G代码或CAD解析器是雕刻机的“译码器”,用于读入制图软件产生的加工轨迹数据文件。
轨迹运算:
有了“人机界面”和“译码器”后,雕刻机接下来只需要把加工轨迹计算成雕刻机的空间坐标,例如处理双Z轴的坐标交换,也就是“轨迹计算”。
速度规划:
然后通过“速度规划”,能够提升光洁度和加工时间。
控制补偿:
采用“控制补偿”,可以控制提升加工的精度。
事实上很多商业的以windows为平台的雕刻机应用系统,也都是围绕着这几个模块内容,一直做模块的深度开发而已,特别是有关速度规划,由于相关机械本体以及伺服电机,一直也是应用工程师开发的软肋;针对于一些开发周期短和工艺复杂的项目,工程师更愿意把精力放在人机交互和工艺处理上,这就要求运动控制卡能够处理这些类似速度规划的运动控制需求,本文中选用的深圳众为兴公司研发的一款ADT-8949G1运动控制卡可以很好的处理这些需要。
ADT-8949G1是一款支持四路电机控制接口的PCI运动控制卡;和之前的ADT-8940G1稍有不同,这款卡带了一个C6000的高速DSP和FPGA,可以处理海量的运动数据,并完成速度规划等控制计算。ADT-8949G1支持T,E,S型加减速,不对称加减速,可有效控制电机的起停惯性冲击。支持空间圆弧插补,可以直接给出空间三点坐标绘制出空间圆弧,这个特性可以直接衔接教导数据;更多的特性可以上官网查看,本文侧重分析该卡在雕刻机上的速度规划的功能应用。
我们先从监控图上来分析,当原始轨迹是由多段曲线组成,通常我们采用离散的方法,折合成小线段进行逼近,常规运动卡会对每个线段做加减速,这样速度频繁的起停,就导致加工整体速度上不去,另外刀具的速度不均光洁度下降。而采用匀速做法,在速度效率是上去了,但在拐弯处由于存在离心向心力,不做减速会导致圆弧误差过大。另外在存在换向时,匀速控制会导致机械本体的冲击过大,这影响了机械的寿命和加工的噪音。
那么什么样的速度控制是比较合理的呢?这也是运动控制永远的课题。在本文中,我们分析ADT-8949G1控制卡内部的“自适应控制模型”,便于理解运动控制的基础算法;同时也相当一种抛砖引玉,读者甚至可以借用其思想自己重构属于自己需要的速度规划功能,并通过ADT-8949G1的FIFO功能直接输出自规划的速度曲线。
ADT-8949G1的“自适应控制模型”,实际上相当一个行为约束器,在分析速度规划原理,我们需要可以用现实中常见的案例来比喻复杂轨迹,通常我喜欢用开车来比喻空间刀具的运动。我们列举“自适应控制模型”内三种约束模型来做分析:
运行速度约束:
假设我们开辆车按照上图中的原始轨迹移动,那么我们发现,在直线段,好比车子上了高速,我们希望是有多快开多快,这样可以缩短加工时间,但会增加轮胎的磨损寿命,同样的原理,在雕刻机中,速度和刀具的磨损是成正比的,所以,在直线段,我们只需要约束一下最高的速度即可。
圆弧速度约束:
车子下高速一般总会有个弧形拐弯,我相信没有一个司机敢踩死油门下高速,原因很简单,车子在做圆弧运动的时候,是存在一个离心力的,这个离心力会迫使车子往外飘,车速越大,离心力就越大,另外圆弧的半径越小,同样速度下的离心力也会越大;我们并不能改变轨道的圆度,所以只能降低到一个合适的速度,就可以控制离心力和车子的摩擦力相平衡,这样车子才可以不产生漂移。这在雕刻机中同样适用,圆弧的误差是由于圆周运动的离心力导致,这个误差我们可以计算表达式为 e=K*(F/R) (e误差,K系数, F线速度, R半径);通过表达式,可以换算出误差和线速度及半径的关系,也就方便的实现自动离心力约束。
加速度约束:
在开车时急刹车,我们会感觉到整个人向前飞出去,这是因为存在加速度的关系。同样过大的加速度也会让电机不舒服,这体现在误差,噪音变大,所以,对加速度需要做一个约束。规划过的速度曲线必须保证任意时刻的加速度不能大于设定值。
如图所示,经过这些条件的约束,我们就可以有效的保证了速度的平稳和精度。而这些可以有运动控制卡的处理器来高速运算完成,对于应用者来说,只需要把各个约束条件录入,开发重心可以更多放在工艺处理和人机交互上。
当然,这还需要一个前提是需要有一个很大的缓存空间来存放数据;目前ADT8949G1支持10000段数据缓存,而且由于其圆弧插补指令是硬件插补,所以圆弧占用的缓存只占用两个数据位,这对那些上G的海量数据文件来说绰绰有余了。