background image

青 岛 大 学 学 报 ( 工 程 技 术 版 )

第 23 卷  

绞车正转时 ,旋转编码器产生的脉冲信号 A 相脉冲比 B 相脉冲相位超前 90°,通过旋转编码器方向识别

电路后 ,产生脉宽约为 A (B) 脉宽的 (1/ 4~1/ 5) 的 A1′

相脉冲 ,并输入计数器的“U P”端 ;绞车反转时 ,A 相脉

冲比 B 相脉冲相位滞后 90°,通过方向识别电路后 ,产生脉宽约为 A (B) 脉宽的 (1/ 4~1/ 5) 的 B2′

相脉冲 ,并

输入计数器的“DN”端 。无论绞车正转还是反转 ,最后都通过 74L S245 选通传输给系统 CPU 。

2. 2. 3  计数和读数电路

系统计数电路采用 5 片可加减计数的 74193 计数器 。计数器的输入端直接与单片机的数据总线相连 ,

这样可通过单片机置数端“LDN”给计数器赋初值 。读数电路由 3 片 BCD 拨码盘 (8421 码) 并联在一起形成

拨码盘组 ,以实现 3 位十进制数的输入 ,可预设绞车放缆的长度 。

2. 2. 4  液晶显示电路

液晶显示电路选用 M G12864 液晶模块 (L CM) 。该液晶模块是一种将液晶显示器件 、

连接件 、

集成电

路 、

印制线路板 ( PCB) 、背光源及结构件装配在一起的组件 。M G12864 的数据输入口 ( DB0 ~ DB7) 与

ADuC812 的 P0 口相连 ,用于接收数据输入并进行显示 。

 图

5

 系统软件设计总体流程图

3

 系统软件设计

31  软件程序构成

整个系统在应用软件程序控制下工作 ,其主要程序包括 :

A/ D 采集程序 、

拨码盘读数程序 、

缆长计数程序 、

键盘程序 、

示程序 、

数字 PID 控制算法程序 、

D/ A 输出程序及串口通信程

序等 。软件程序设计在 Keil C 语言环境下完成 ,其总体流程

如图 5 所示 。

由于篇幅所限 ,下面仅对关键的数字 PID 控制程序设计

进行简要分析 。

3. 2  数字 PID 控制原理和程序流程

3. 2. 1  控制算法原理

PID 控制器是一种线性控制器 ,根据给定值

r( t)

与实际输

出值

c( t)

构成控制偏差

e( t)

=

r( t)

-

c( t)

其控制律为

u ( t) = k

p

e( t) +

1

t

i

t

0

e( t)

d

t +

t

d

d

e

(

t

)

d

t

(1)

式中 ,

k

p

为比例系数 ;

u ( t)

为控制量 ;

t

i

为积分时间 ;

t

d

为微分时间 。

进行离散化数字处理 。以一系列的采样时刻点

k T ( k

= 0

,

1

,

2

,

, T

为采样周期

)

代表连续时间

t ,

以和

式代替积分

,

以增量代替微分

,

e( k T)

记为

e( k) , u ( k T)

记为

u ( k) ,

则式 (1) 可改写为数字 PID 位置式控制

算式

u ( k) = K

p

e( k) +

T

T

i

k

j =

0

e( j) +

T

d

T

[ e( k) - e( k -

1

) ]

(2)

对应的数字 PID 增量式控制算式为

Δ

u ( k)

=

K

p

[ e( k)

-

e( k

- 1

) ]

+

T

T

i

e( k)

+

T

d

T

[ e( k)

- 2

e( k

- 1

)

+

e( k

- 2

) ]

(3)

为使控制算法简便 ,记

2

4