欢迎光临~深圳同为旭业单片机开发公司
  咨询电话:400-6039-588

新闻中心

手轮脉冲控制板的设计方法介绍及 所遇问题的解决方案

一.手轮脉冲控制板功能说明

手轮脉冲控制板用来控制线切割机器上X,Y两轴马达的运行,马达可以是步进电机或者伺服电机,手轮脉冲控制板通过发送脉冲给马达驱动器来控制马达的运动,同时马达也可以由上位机HF控制,通过手轮上旋钮开关进行手轮/上位机功能模式切换,当在手轮控制模式下则上位机HF就被屏蔽,反之则手轮功能就被屏蔽。

二.手轮脉冲控制板的设计思路

当在手轮控制模式下,单片机ATMEGA128作为主控制芯片,当在手轮模式下由单片机根据手轮转动速度的快慢发出相应频率的脉冲给电机驱动器,从而控制电机的进给速度。手轮的脉冲信号通过高速光耦隔离后传送给单片机处理,手轮的轴向选择信号和倍率选择信号均经过低速光耦隔离传送给单片机处理。

当在上位机HF模式下,电机由上位机控制。利用CD4069芯片把上位机的脉冲信号进行放大,再通过光耦使信号隔离,然后由单片机控制74LS245的使能端让脉冲信号通过,再经过光耦的隔离输出给驱动器。

三.手轮脉冲控制板的电源处理部分

由于线切割放电时产生的电磁干扰严重,为了避免干扰,提高控制板的稳定性,控制板采用DC TO DC电源模块,使数字电路和模拟电路分开,提高控制板的抗干扰能力。

四.设计中遇到的问题思考的过程以及采用的解决方法

问题一:根据手轮倍率的旋钮开关来对手轮输入的脉冲进行脉冲频率的放大处理的过程中,先采用单片机的脉冲捕获功能对收到的手轮脉冲周期进行测量,然后再根据手轮的倍率开关的数值转换出相应频率的脉冲发送出去,在此过程中由于手轮转动的快慢由操作者控制,这样手轮发出的频率就会时快时慢,脉冲频率周期变化不定,导致测量得到的脉冲周期变化不定,由此经过单片机倍率放大出去的脉冲信号的周期也随之变化,从而导致电机的运行速度变化很大,在设计初采用伺服电机,由于伺服电机对速度的调节能力很强,因此测试时都可以正常运行,当在客户现场调试的时候,客户使用的电机为步进电机,出现电机有时转有时不转的现象,分析其原因为单片机发送的脉冲频率起伏很大,步进电机对速度的调节能力较弱,如果速度突然加快就会堵转,要使步进电机能够在高速运行时实现速度平稳过度,要满足步进电机的速度变化曲线。

解决方案一:为了使单片机发出的脉冲频率平稳,采用把捕获到的脉冲进行平均化处理,用伺服电机测试可以,用步进电机测试时发现运行有些改善,但是还是无法正常平稳运行,这个方法通不过。

解决方案二:要实现速度的平稳化,需要让脉冲频率平稳上升,让电机的速度变化频率不要太大,增加和减少都在很小的范围内进行,通过手轮脉冲周期的采样来获得手轮转动的速度,按照这样的思路修改程序之后,再到现场调试后电机运行平稳,可以正常运行,但电机运行的距离跟手轮摇动的圈数不对应,有偏差,这样的设计只能让速度平稳运行却丢失了位置的脉冲信号,因为增加和减少都按照程序设定的数值去做处理,设计又不能满足要求。

解决方案三:此时遇到一个难题:为什么伺服可以而步进电机不能对速度进行自动调节,能不能模仿伺服电机的速度调节原理也在单片机里设计出伺服电机的速度调节软件出来呢?伺服电机的速度调节方法是利用接受到的脉冲和电机编码器反馈回来的差值,即追随误差,利用追随误差来产生电流,转化成力矩再去驱动电机运行。如果此时收到的手轮脉冲频率变大,则追随误差也变大,电机运行越快,反馈的脉冲频率也越大,此时追随误差又会变小,电机的运行速度也会变慢,从而达到电机速度的调节作用,追随误差稳定,电机的速度自动达到一个平衡点保持不变。如果此时收到的脉冲速度减少,则追随误差也随之减少,电机的电流变小,电机运行的速度就会慢下来,从而使电机速度自动达到一个平衡点保持稳定运行,这样速度就会呈现出连续的变化,而不会出现跳跃式的变化,电机因此就会平稳运行。而步进电机则没有这样的一个处理过程,严格按照收到一个脉冲走一步的原则,只是把收到的脉冲信号进行放大处理后驱动电机。我们可以采用伺服电机的原理用单片机设计出相应的自动控制的软件来调节发出去的脉冲频率,这样手轮转动速度的快慢不再由脉冲宽度的测量得到,现在采用对收到的脉冲进行计数(注:这样还节省了硬件资源),经过单片机的运算处理后,从单片机发出新的脉冲控制步进电机,从而实现了步进电机加速时稳定运行,并且也实现了电机运行的距离跟手轮摇动的圈数相对应,无偏差。

问题二:电机加速的时候或者减速变化不大的时候都可以良好运行,但是当手轮停止或者减速过大的时候电机速度就会变化很大,这样势必会造成电机的冲击性,如果像数控系统一样按照客户编制好的加工程序,控制器在开始的时候就进行了轨迹规划,利用前瞻控制实现前加减速处理,可以避免停止时对机床的冲击性。但是手轮和数控系统的不同点在于:手轮掌握在操作者手中,他什么时候停止或者减速是由操作者决定的,不能提前告之单片机程序,就像你帮一个领导开车,叫你急刹车,有发生车祸的危险。手轮的控制也是这个道理,就是要保持位置准确,手轮停止转动时电机也能迅速停下来,而且还要保持平稳,不要有大的冲击性。

解决方案:为了实现电机速度平稳过渡设定了电机的加减速曲线,该加减速按照提供的曲线方程来运行,曲线可以是斜线,S曲线,指数曲线,抛物线,或者多段曲线,但是要使电机迅速减下来,最大速度有一个限制。速度越大,减速的时间会越长。按照这样的要求,首先进行轨迹展望,开始的时候就制定好轨迹的加减速路线,根据追随误差的大小确定速度的最大值,提前做好减速的准备,使电机停止下来刚好到达制定的位置同时减速为零。按照这样的思路去重新设计了程序,根据加减速曲线,算出最终的脉冲发送的数量和频率公式,编写好程序烧到单片机里调试,一切都按照预先设计的计划进行,电机启动,停止运行都很平稳,位置控制也准确。

问题三:在电机停止时,发现电机会多走一两个脉冲,检查原因,发现是手轮在停止的时候会有一点晃动,这样手轮就会多发一个脉冲出去,但是手轮的位置并没有多走,这样就会造成电机多走一两个脉冲对应的位置。

解决方案:利用手轮发出的AB相脉冲,增加了AB相脉冲的判断程序,当手轮没有走一格的时候,AB相脉冲进行加减运算后还是得到目前的位置,走到下一格的时候,程序里也才会得到下一个手轮对应的位置,这样改正之后再进行程序调试,这样在低速停止转动手轮的时候电机移动的位置非常准确。

问题四:当手轮快速转动的时候电机停止时就会多走很多,按照常规思维,发出的脉冲只会有丢失,不会增加,首先排除干扰的可能,用测试程序让单片机发出一个和手轮差不多快的脉冲序列模拟手轮发出的脉冲,结果位置走的都很准确,那就证明软件写的是正确的,硬件也没有问题,但是还怎么出现这样的问题呢?

解决方案:当单片机每发出一个脉冲就会产生一个中断,利用这个中断进行脉冲计数,来告之电机走多远。在单片机里还有加减速处理的的函数来进行速度的调节,这样当手轮转动的速度加快,单片机就会发出高速的脉冲,产生的中断就会增加,单片机的负担就会增加,处理程序的响应性就会滞后,而在中断程序的执行有一个判别的条件,但处理器的实时响应变慢的时候就会错过这个条件,这样中断里面脉冲计数的程序就得不到执行,就会导致单片机测得的脉冲数量比实际发出去的少,从而误以为电机少走,单片机继续发脉冲让电机走,导致电机多走,追究其原因就是受单片机的硬件处理速度的限制,而目前单片机的晶振频率已经提到最高,要想解决这个问题只有提高处理器的速度,让处理器能够很轻松的处理完交给它的任务,就不会导致有一些事情来不及做而产生错误的结果。目前该手轮控制板在控制电机运行时不论慢速还是高速时启动和停止时都很平稳,中等速度时位置很准确,只是高速停止时位置有些不准确,现在打算用DSP2812来做, DSP2812的频率可以达到150M,用它来做这样的工作完全可以胜任,可以发出更高频率的脉冲,并且位置都能控制的准确。

没有上一条 下一条:c语言设计模式--状态模式(状态机)

导航栏目

联系我们

联系人:舒经理

手 机:13926579481

邮 箱:2108725098@qq.com

公 司:深圳同为旭业单片机开发公司

地 址:深圳市龙华新区宝能科技园6栋A座9楼F单元