文章内容
石油管道缺陷检测爬行器控制系统
DAC 0800D/A转换器 LM628运动控制器位置控制算法
2003年10月(2)
本系统选用DAC 0800D作为D/A转换器,其中8位无锁存高速电流型输出的。它的输出电流需经运算放大器LM12转换为电压信号,本系统中DAC0800采用双极性接法,以使电机能做前进或后退运动。当数字输入为00H时,输出电压为-10V,数字输入为FFH时,输出电压为+10V。
本系统选用LM628专用的运动控制处理器进行运动控制。LM628是为使用增量式编码器作位置反馈的各种直流或无刷直流伺服电动机伺服系统或其他伺服机构而设计的,它能为先进的运动控制提供强大的实时运算能力,为便于与上级主机连接而提供了便利的高级指令集。
LM628实际上是为一个专门用途而设计的单片机,其特点为:32位的位置、速度、加速度寄存器;可编程数字PID滤波器;可编程微分采样间隔;8位或12位D/A转换器输出数据;内部梯形速度图发生器;速度、目标位置和PID滤波器参数在运动过程中可以改变;可选择位置或速度控制方式;实时可编程的主计算机中断;8位并行异步主计算机中断;与增量式编码器的接口。
LM628功能为:接受主机的指令和向主机提供状态和数据;执行梯形速度图的计算和数字PID滤波,不论是设置为位置控制还是速度控制方式,梯形速度图发生器计算出需要的梯形速度分布图;利用增量编码器反馈实际位置;在运行中进行预定位置(速度图发生器计算的位置)与实际位置的减法运算,此位置误差经数字PID滤波器处理后输出,由外界D/A转换器的放大,驱动电动机到达预定位置。
LM628采用28引脚双列直插式封装,其引脚功能简述为: 接收从增量编码器来的标记index亦即零位信号;A、B接收从增量编码器来的两个正交信号,当电动机正转时,A脚信号应超前于B脚信号90° 连接主计算机或主处理器的I/O口,利用 和 可向LM628写入指令和数据,或从LM628读出状态字节和数据; 片选输入,由主机用来选LM628,进行读写操作; 由主机用来读出LM628的状态和数据; 由主机用来向LM628写入指令或数据; 由主机用来选择LM628的指令口或数据口,当 为低电平时,向指令口写入指令,或从指令口读出状态;当 为高电平时,经数据口写入或读出数据;HI通知主计算机中断条件已具备;DAC0~DAC7DAC输出口。 复位输入端。
LM628的主机接口为上级机对其编码和监控提供便利,而在软件上主机的编程和监控功能则是通过向LM628下达用户指令来实现的。这些指令包括初始化、中断控制、滤波器控制、轨迹控制、数据上报等功能,其中一些指令是单独的,而另一些指令需要一个支持数据结构,具体列于表1。
表1 LM628的用户指令集
类型 |
指令 |
说明 |
初始化 |
RESET |
复位 |
PORT8 |
选择8位输出 |
|
PORT12 |
选择12位输出 |
|
DFH |
定义原点 |
|
中断 |
SIP |
设定位置 |
LPEI |
误差中断 |
|
LPES |
误差停 |
|
SBPA |
设定断点,绝对 |
|
SBPR |
设定断点,绝对 |
|
MSKI |
屏蔽中断 |
|
RSTI |
复位中断 |
|
滤波 |
LFIL |
装入PID滤波器参数 |
UDF |
修改PID滤波器参数 |
|
轨迹 |
LTRJ |
装入轨迹数据 |
STT |
启动 |
|
报告 |
RDSTAT |
读状态字节 |
RDSIGS |
读信号寄存器 |
|
RDIP |
读位置 |
|
RDDP |
读预定位置 |
|
RDRP |
读实际位置 |
|
RDDV |
读预定速度 |
|
RDRV |
读预定速度 |
|
RDSUM |
读积分和 |
在图2中,运动控制处理器LM628用8位并行总线与主计算机(PC104嵌入式工控机)接口,地址线经译码后作为LM628的CS输入;地址的LSB直接驱动PS输入。LM628的8位DAC输出接DAC0800D/A转换器,送LM12线性功率放大器驱动直流电动机。
增量编码器三个信号A,B和IN接至LM628。两个正交信号A与B用来跟踪电动机的绝对位置,它们组成四个逻辑状态,此逻辑状态的每一次改变,相应的LM628内位置寄存器增加或减少一个数。这样,系统分辨率比该编码器增加或减少一个数。这样,系统分辨率比该编码器条纹数高4倍。 信号是每一转出现一次低电平的脉冲信号,当编码器三个信号都是低电平时产生index信号送内部专门的寄存器index,用于记录电动机的绝对位置。
LM628的DAC输出口可提供锁存8位并行输出或双重12位输出,这个DAC输出数据是移位二进制码(即8位、12位码的零点分别为80h、800h)。本系统选择8位输出,当读出数据小于零点时,电动机产生的是负转矩(爬行器后退);而当输出数据大于零点时,则产生正转矩(爬行器前进)。
在本系统的位置控制方式中,主计算机确定了加速度、减速度、爬行速度、检测速度、初始位置、爬行与检测转换位置、最后位置等信息,并通过用户命令传递给LM628,LM628则利用这些信息使电动机按图1的位置-速度图进行加速、高匀速、减速、低匀速、降速、停止的规律运动。
在LM628中有一个数字PID滤波器用于实现位置控制算法。位置实际值是由联于电机的主轴上的旋转编码器来获取的,编码器将爬行器走过的距离转换为一系列脉冲,再由LM628计数处理,处理后便可知爬行器所处的位置。假定电机轮子的直径为D,编码器每转发出N个脉冲,则每个脉冲对应的距离为 D/N。在预定位置上,对于任何扰动,电动机都产生一个转矩来保持此位置。此回复转矩正比于位置偏差加上偏差的积分和微分。LM628给电动机的输出信号可用离散PID算法表示为
式中:e为位置偏差,e(n)=S(n)-Sg(n);S(n)与Sg(n)分别为实际距离、给定距离;n表示为第n次采样;n′表示以微分采样速率进行的采样;Kp,Ki及Kd系由用户设定的滤波参数,它们可根据实际情况进行事先整定。
4 结束语
本文介绍了海底石油管道检测系统的工作过程,并详细地讨论了海底石油管道检测智能控制器的缺陷精确定位过程、智能控制器的硬件结构、位置控制算法等,经仿真运行和实际试验运行均表明了本控制器运动控制的正确性和可靠性。