4.1 PID算法的软件实现
计算机控制系统是一种采样控制系统,只能根据采样时刻的偏差计算控制量[14]。因此要对输出式 中的积分和微分项进行离散化处理,PID的输出式为
(1)
令T为采样周期,以一系列的采样时刻点 代表连续时间t,以累加求和近似代替积分,以一阶后向差分近似代替微分,做出如下变换:
其中, 为系统第 次采样时刻的偏差值, 为系统第 次采样时的偏差值, 为采样序号, =0,1,2,…
将上面的(3)和(4)式带入(1)中,得到离散的PID表达式:
(5)
如果周期T足够小,该算式可以很好地逼近模拟PID算式,通常把(5)式称为PID的位置式控制算法。若在(5)中,令
则 (6)
(6)式就是离散化PID控制算法的编程表达式。对(6)式进行如下改动:考虑到第 次采样时有
使(5)式两边对应减去(7)式,有
整理后得: 毕业论文 (9)
因为在计算机控制中 、 、 都可以先求出,所以实际控制时只需获得 、 、 三个偏差值就可以求出控制增量。本系统通过PID算法对水温进行控制,首先读出给定值 ,再读出反馈值 ,计算偏差值 后算出 ,保存 后再对 和 进行调节,得到下一时刻的偏差。PID的控制流程图如图6所示:
图6 PID算法控制流程图
4.2 主程序流程图
主程序描述:先进行初始化设置各定时器初值,然后再判断是否有按键按下,如果有进行按键处理。启动系统后,会接收到光电编码器检测来的脉冲信号,这时启动外部中断,每来一个脉冲就中断一次,记录脉冲的个数。主程序流程图如图7所示:
图7 主程序流程图
4.3 中断程序流程图
中断服务子程序完成实时性强的功能,如PWM生成、状态检测和数字PID[11]调节等,中断服务子程序由相应的中断源提出申请,CPU实时响应。中断服务的流程图如图8所示:
图8 中断服务程序流程图
5. 仿真与调试
本次系统设计采用Proteus[12]软件进行电路图的设计,主要分析了PWM控制信号的波形和电机的运行效果图。
5.1 单片机输出的PWM波形
(1)PWM 输出波形如图9所示:
图9 PWM 输出波形
(2)加速过程波形依次如图10所示:
图10 加速波形
(3)减速过程波形依次如图11所示:
图11 减速波形
5.2系统仿真时电机运行效果
(1)系统上电后,所有部件都被初始化。当K1被按下时,电机处于启动状态,电机启动时运行效果如图12所示:
图12 电机启动
(2)系统运行过程中,当K3被按下时,电机处于正向加速状态,电机加速运行效果如图13所示:
图13 电机正向加速
(3)在电机正向运行过程中,当K2被按下时,电机会反向运行,电机反向减速运行效果如图14所示: AT89S52单片机直流电机的PWM控制系统设计+源程序(5):http://www.751com.cn/zidonghua/lunwen_2268.html