高精度位置环系统

时间:2022-03-12 02:19:00

高精度位置环系统

1实现原理:

图1中的系统是传统的带PID调节的直流伺服速度控制系统。对于控制精度较低的产品虽能满足要求。但对于精度要求高的场合就不能适应了。这是因为:当电机运转一段时间后,电机温度随着工作时间加长而不断上升,而反馈元件(测速发电机)与伺服电机同轴连接,故测速发电机的温度也随之升高。因为测速发电机是用永磁磁缸制成,其转子线圈切割磁力线而产生电势,其值为:

Ea=εa∝N

式中Ea为测速机输出电势

εa为测速机电势常数

N为电机转速

一般情况下,εa是个常数,测速发电机产生的电势Ea正比于转速N。而实际上电机温度上升后εa已经发生了变化,通常情况下是下降的,εa变小,故Ea也变小。而此时电机转速并未下降,反馈到速度环的电压Δu随之上升,促使电机转速上升,迫使Ea上升,从而达到Δu维持不变。这样,随着电机温度上升,电机的速度也慢慢上升,而给定值并未改变,这就引起电机转速的误差增大。根据实际测量一般电机温度每上升100℃,电机转速的误差会增大1-3%左右。电机转速越低,相对误差越大。

为了纠正电机转速的偏差,采用600线/转的光电编码器作反馈元件,与电机同轴安装,就可以准确测出电机的转速。因为光电编码器是由激光照射光珊发出脉冲的,而光珊安装在光电编码器的转轴上,转轴每转一周(3600)编码器就产生600个脉冲,该脉冲只与转轴速度有关,而与温度无关。因此,只要准确测出光电编码器的脉冲个数,就可确切知道电机的转速。

例如,当电机的转速ND=1000转/分,则每秒钟光电编码器的脉冲个数应为

n光=1000*600/60

=10000(个脉冲)

ND=1转/分

n光=1*600/60=10(个)

如果实际测量值与上述理论计算值有偏差,则可以通过调节D/A输出电压调整电机的转速,最终使

Δn=ND测-ND理

这样就可以将电机的转速控制在我们所希望的误差范围内。

2元器件的选择;

2.1伺服系统(速度环)选用SC5HC60型直流脉宽伺服系统,调速范围可达1:10000以上,速度精度为0.5%FS。

2.2电机选用稀土直流宽调速伺服测速机组,与伺服系统构成速度闭环系统。

2.3D/A器件选用分辨率为16位串行D/A。控制线为三线串行方式,即:一根时钟线,一根数据线,一根选通线。

2.4光电编码器每转输出600个脉冲,五线制。其中两根为电源线,三根为脉冲线(A、B、Z)。电源的工作电压为+5~+24V直流电源。

工作原理:当光电编码器的轴转动时A、B两根线都产生脉冲输出,A、B两相脉冲相差900相位角,由此可测出光电编码器转动方向与电机转速。如果A相脉冲比B相脉冲超前则光电编码器为正转,否则为反转.Z线为零脉冲线,光电编码器每转一圈产生一个脉冲.主要用作计数。A线用来测量脉冲个数,B线与A线配合可测量出转动方向.

2.5单片机选用89C51-24PC单片机,晶振频率为24MHz,用一个定时器作计数器来测量光电编码器的脉冲个数,另一个定时器精确定时,这样可准确测出电机每秒钟转动的距离,同时根据设定值计算出电机每秒钟应转动的理论值并与测量值进行比较,将误差值转换成数字量输出到D/A芯片的输入端,从而改变其电压输出,送给伺服系统控制电机的转速,从而达到恒速的目的。

例如:要将电机控制在500转/分,根据伺服系统的指标,当输入为0~5V信号时,电机转速为1500转/分,故可求得当ND=500转/分时,光码盘每秒钟输出的脉冲数为:

PD=500×600/60=5000个脉冲

对应该转速伺服系统的输入电压应为:

VD=5.000×500/1500=1.6666V

当测出的脉冲个数与计算出的标准值有偏差时,可根据电压与脉冲个数的对应关系计算出输出给伺服系统的增量电压△U:

△U=△P×5.000/(1500×600/60)=△P/3000(V)

而输出到D/A的数字量的增量应为:

△D=△U×216/5.000

电机的整个工作调节过程如下:

工作前通过键盘设定控制转速,计算出输出电压VD并将该电压对应的输出到D/A的数字量V数=VD×216/5.000算出,直接送给D/A,电机开始起动运转。当电机运转一段时间后电机转速不断上升从而导致测速机磁性下降,测速机输出电势下降,经速度环调整后使电机转速上升,运行时间越长,电机转速上升越多。这时系统起动位置环,通过不断测量光电编码器每秒钟输出的脉冲个数,并与标准值PD进行比较,计算出增量△P并将之转换成对应的D/A输出数字量,在原来输出电压的基础上减去增量,迫使电机转速降下来,当测出的△P近似为零时停止调节,这样可将电机转速始终控制在允许的范围内。

3硬件电路的实现

实际工作中由于伺服系

统工作电流较大,对于微机干扰较大,故在硬件电路设计时应考虑到系统的隔离和干扰问题。由于选用的是串行D/A。信号的传输只用三根线,故采取隔离措施相对容易些。而光电编码器工作也容易受到干扰,因此除了正常的接地外,还要将光电编码器输出线中的地线可靠接地。光电编码器的A线做脉冲检测用,Z线作计数器用,速度输入用键盘输入数字,显示用液晶显示器。

4软件

根据电路的连接情况,采用汇编语言编写了整个程序。现将部分阐述如下:

4.1初始化

初始化内容包括定时器、中断系统及个单元内容的初始化

HSTART:MOVSP,#0E0H;设置堆栈顶地址

MOVIE,#90H;开中断及串行口中断允许

MOVIP,#5;将定时器1和串口中断设置高优先权

MOVTCON,#5;外中断0和外中断1全部为边沿触发方式

MOVTMOD,#21H;定时器0为方式1定时器2为方式2

MOVPCON,#0;SMOD=0

MOVSCON,#0D8H;串口设置成方式3,TB8=1,REN=1

MOVTH1,#0FDH;设定定时器1重装时间常数

MOVTL1,#0FDH

CLRET1

SETBREN

SETBES

MOVTH0,#2CH

MOVTL0,#0

SETBTR0

SETBTR1

……

4.2定时器0中断子程序

CLOCK0:CLRET0;保护现场指令

MOVTH0,#2CH;重置时间常数

MOVTL0,#0

INCQSE0

MOVA,#14H;判别1秒钟定时到否

CJNEA,QSE0,HCLZ

MOVQSE0,#0;计数器清零

MOVA,QSEC

ADDA,#1;秒单元加1

DAA

MOVQSEC,A

MOVA,#5

CJNEA,QSEC,HCLZ;判5秒钟到否

MOVQSEC,#0;秒单元清零

CLREX0;关中断0停止计数

HCLZ:恢复现场指令

SETBET0

RETI;中断返回

4.3中断0计数程序

POST1:CLREX0

保护现场指令

MOVA,QLLD;计数器低位加1

ADDA,#1

MOVQLLD,A

MOVA,QLLD+1

ADDCA,#0

MOVQLLD+1,A

恢复现场指令

SETBEX0

RETI

4.4处理程序

处理程序包括加减运算程序、数字转换程序、D/A输出程序、实时报警程序、数据采集程序等。