首页 >> 螺纹球阀

单轴位置伺服系统的设计与实现是嘛

2021-07-30 05:23:48

单轴位置伺服系统的设计与实现

1 概述

现在的位置伺服系统一般采用所谓的“软伺服”系统,使位置增益不很大,这样系统容易稳定,并且增加一个闭环调速单元,速度环的增益很大。因此,很小的位置偏差就能产生很明显的速度偏差,速度环就以很高的增益修正,从而使系统得到很高的位置分辨率[1]。作者在研制一种数控刨齿机时,设计并完成了单轴位置伺服系统,该系统采用半闭环结构,框图如图1所示。本文将结合该系统,阐述位置伺服系统的组成及硬件实现。

图1 单轴位置控制系统的框图

2位置伺服系统的组成

在图1中,位置控制器和速度控制器均由486个人微机编程实现。电机采用北京数控设备厂的FANUC-BESK(15型)直流伺服电机,并采用该厂的A06B-6054-H005作为功率驱动模块。由于该速度控制单元是模拟系统,因此采用12位D/A转换器,把微机根据控制算法输出的数字量转换为合适的模拟电压,控制电机向减小位置偏差的方向转动。位置反馈采用光电编码器,分辨率为4000线/转,经四倍频电路,由可编程计数器8254记录位置脉冲数,位置控制器则根据此脉冲数和指令脉冲数计算出速度指令电压,再输出到一个12位D/A转换器,即得到模拟的速度指令电压。速度反馈也利用同一个光电编码器和计数电路,速度控制器通过对位置求一阶差分计算出实际转速,然后输出到另一个12位D/A转换器,将得到的模拟电压反馈至速度控制单元的速度反馈输入端。实际转速ω按ω=ΔN/Ts式求取,其中ΔN为在采样周期内的位置脉冲增量,Ts为采样周期,该系统取8毫秒。

作者编写的CNC控制程序采用前、后台软件结构,前台程序是一个中断服务程序,由硬件实现8毫秒定时中断,主要完成精插补和位置控制功能;后台程序是一个循环运行程序,主要完成数据输入、粗插补及其它辅助功能。

3伺服系统的实现

数模转换采用芯片DAC1210,为了不降低分辨率,用一个电子开关CD4052处理正负号,使数模转换达到双极性12位,为了提高驱动能力和抑制干扰,输出采用集成运放O并在较短的时间内送出P0但后者强度和隔热性较差7做成射极跟随器的形式,电路如图2所示。

图2 双极性12位D/A转换

3.1四倍频器

四倍频器[2,3]采用微分电路来实现,其抗干扰能力较差。作者设计了一种四倍频器,采用积分型单稳态电路,如图3所示。电路的工作原理:A、B两路相位差90°的方波脉冲,电机正向转动时,A领先B;电机反向转动时,B领先A。该电路在A及A的反相-A和B及B的反相-B各接了一个积分型单稳态电路[4],在A的上升沿、下降沿分别产生一个短脉冲A′和-A′,在B的上升沿、下降沿分别产生一个短脉冲B′和-B′。当A为低电平时,Va为高电平,G2输出服务用户为低电平;当A上升沿来到后,G1输出为低电平,但由于电容两端的电压不能突变,所以在一段时间里Va仍在阈值电平之上,G2输出为高电平,电路进入暂稳态。随着电容压力油的密封是利用油缸与活塞之间的油膜进行密封的放电,Va不断下降,当Va低于阈值电平时,G2输出为低电平,待A回到低电平后,G1输出为高电平,电容又开始充电,当Va恢复为高电平时,电路又达到稳态,为下一次上升沿的到来作好准备。由以上分析可知,A′的脉冲宽度TW等于电容开始放电到Va下降至阈值电平所经历的时间,根据对RC电路暂态过程的分析,可知电容上的电压Va放电时间由下式决定[4]:

式中R′——RC电路放电回路的电阻

C′——RC电路放电回路的电容

VC(∞)——电容电压的稳态值

VC(0)——电容电压的初值

VC(t)——经过t时间放电后的电容电压值

设LSTTL电路的输出高电平为VOH,输出低电平为VOL,VTH为阈值电平,R0为G1输出低电平时的输出电阻,将R′=R0+R、C′=C、VC(∞)=VOL、VC(0)=VOH、

VC(t)=VTH代入式(1)可得脉冲宽度TW为:

考虑到电路恢复时间,应使方波脉冲序列的周期为TW的7~8倍,这样电路才能可靠地工作。可以据此选择合适的电阻和电容。将得到的四个短脉冲序列A′、-A′、B′、-B′按图3所示进行与或非的逻辑组合,在U1、U2的输出端将产生表示正转和反转的四倍频脉冲序列,如图4所示。该电路有较好的抗干扰性能,因为高频时容抗很小,而且脉冲经过二级与门的选择。

图3 积分型四倍频计数电路

图4 正、反转四倍频器脉冲波形(左:正转右:反转)

3.2脉冲计数电路与初值跳动

8254是与微机接口非常方便的可编程计数器,在方式2下计数器可自动重复计数,利用它的两个计数通道分别记录正转和反转脉冲,在程序里读入计数值并使二者相减,便可得到在采样周期内的位置脉冲增量,给后续程序作进一步处理。作者在应用中发现8254有一个缺陷:对它进行初始化后,输出锁存器残留有随机数,这时程序读数就会读到这个随机数,所以当第一个计数脉冲到来后,计数器开始从编程初值减一计数。当实际位置脉冲没有来到时,程序里读到的位置脉冲值为一随机数,当有实际位置脉冲输入到计数器后,采样程序读到的是正常的位置脉冲值,所以采样程序第一次计算出的正转或反转脉冲数是不正确的,而随后计数才进入正常状态。第一次读数的这一随机性将引起系统的剧烈跳动,称之为“初值跳动”。这种跳动对数控机床来说是不可接受的,必须予以消除。

作者通过程序处理解决了这一问题,其方法:初始化后先记录下输出锁存器的起始内容,在采样程序里把读入输出锁存器的内容与此起始数值比较,若数值不变,说明没有计数脉冲,位置增量为零;若数值发生变化,说明已有计数脉冲到来,经过程序计算得到第一次的位置增量。此后不再判别“初值跳动”,进行正常计数。解决“初值跳动”的程序如下(用Turbo C语言实现):

实时采样程序:

……

unsigned char cl,ch;

unsigned int clk0;

outportb(P8254+3,0xd6);

cl=inportb(P8254);

ch=inportb(p8254);

clk0=cl|(ch

江都工作服定制
四川职业装定做
松江区除沫器
友情链接