上海博迅采用 Keil uVision5 集成编译环境和 C 语言来对系 统软件进行设计。该设计完成了对温度信号的测量和控制。它 需要的基本功能包括温度信号采集、A/D 转换、信号处理、温 度显示和数据传输。温度采集模块需要完成温度测量和 A/D 转 换。温度采集程序需要完成初始化传感器、写命令、写数据以 及读数据等。数据处理程序主要是对测量到的二进制数据进 行处理,将其转变为十进制。主程序要完成初始化系统和控 制电阻炉开关的工作 ;子程序需要完成测量炉温、输入键盘、 显示 LCD、控制 PID 和控制 PWM 等工作。
1. LM016L 显示模块程序 与七段数码管相比,液晶屏 LM016L 可以把测量值、设定 值、文字以及 PID 的参数都显示到屏幕上,使工作人员更直观 地观测到所需要的信息。但是 LM016L 的编程复杂,LM016L 进行初始化的流程如下:1) 先延时,写 0X38 命令字。2) 再进 行延时。3) 写 0X0C 命令字。4) 写 0X06 命令字。5) 写 0X01 命令字。6) 写 0X80 命令字。
2. 键盘输入模块程序 键盘输入作为人机交互电路中的输入模块,在系统中起了 很大的作用,它可以用来控制基于电阻炉的输入以及调节控制 参数。键盘输入模块的流程图如图 1 所示。
3. 算法控制子程序 控制子程序包括 PWM 技术和 PID 算法。PWM 技术是 1 种脉冲宽度调制技术。利用 PWM 技术可以对幅值相同的脉冲 的宽度进行调制,改变输出电压的大小,从而可以根据不同实 际温度与目标温度的差来改变电阻炉输出的功率 [5]。 PID 算法是 1 种控制算法,其中 P 是指比例,I 是指积分, D 是指微分。温度控制系统利用测量的实际温度与初始温度值 进行比较,并将它们的差作为 PID 控制的输入。设时间为 t, e(t)为实际温度与设定温度值的偏差,则其输出温度 u(t) 与 e(t)的关系,如公式(2)所示。
式中 :Kp 为比例系数 ;s 为复频 ;Ti 为积分时间常数 ;Td 为 微分时间常数 ;U(s)为 u(t)的拉普拉斯变换 ;E(s)为 e(t)的拉普拉斯变换。想要合理地控制温度就要合理地设置 比例系数,比例系数过大或者过小都不是设置比例系数的最 佳选择,比例系数偏大会导致系统调制过快,因此会产生较 大的震荡,从而导致系统不稳定。比例系数过小又会使系统的 调节过慢。2 种选择都会使系统的性能变差。因此比例系数太 大或太小都不是最佳选择,应该根据情况选择最合适的方法 [6]。
主程序
要实现对电阻炉温度的控制,就要完成主程序元器件的 初始化、定时器的初始化、调用子程序、LCD 子程序、温度 控制电路以及报警等工作,同时让循环在允许的范围内运转, 并在恰当的时刻跳出循环。
由此可以得出主函数的程序流程如下:1) 先进行初始化。 2) 启动键盘扫描程序。3) 启动 AD 采样子程序。4) 启动温度 显示子程序。5) 检测温度是否越界,如果越界,那么报警电 路开始工作 ;如果温度没有越界,则报警电路不工作。
6) 完 成 PID 子程序和 PWM 子程序,完成对温度的反馈和调控。7) 控制电路的输出电压以及控制温度的变化。