基于AVR单片机atmega32的PID和PWM液体流量控制系统研究
4.2 PID算法
常规的PID算法的基本原理如下图4-1所示,模拟PID控制器的控制规律为
——比例系数; ——积分常数; ——微分常数; ——控制常量。
由于单片机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,而不能像模拟控制那样连续输出控制量,进行连续控制。并且单片机处理数据的量有限,综合考虑该系统采用增量式PID控制,其算法如式4-3:
其中 为本次采样误差; 为上次采样误差; 为上上次采样误差。其控制程序的流程图如图4-2所示
用C编程实现程序如下所示:
void PID()
{float u; //电压差值
sint z; //本次输出增量
sint temp1; //临时记录值
float t;
t=itime*T;
Speed_change(); //将流速转化为数字量
if (Ek==(0-Sheding_liusu)) //当Ek大于某一值时直接加最大
{temp1=0x0000;
SetOutputOCR1A(temp1); }//设置输出比较寄存器值
else{
Ek=Sheding_liusu-Celiang_liusu;
u=A*((Ek-Ek_1)+(t/B)*Ek+(C/t)*(Ek-2*Ek_1+Ek_2)); //增量式PID算法
z=u/U1*0x03FF;
temp1=GetOutputOCR1A(); //读取输出比较寄存器值
temp1=temp1+z;
SetOutputOCR1A(temp1);
Ek_2=Ek_1;
Ek_1=Ek;}
TCNT1=0x00;}
5. Matlab下的仿真
Matlab是控制系统的一种分析和仿真软件,利用它可以方便准确的对控制系统进行仿真,为了验证数字PID算法的可靠性,采用Matlab6.5下的simulink组件对增量数字PID算法进行了仿真,仿真程序如图5-1所示,仿真结果如图5-2所示.。
如图5-2Kp=0.5,Ki=0.001,Kd=0.001
仿真结果表明运用PID对PWM方波进行调解具有良好的动态性和稳定性,从而证明了该液体流量控制系统得可行性。
6.结束语
本文介绍了运用数字PID算法结合AVR单片机的PWM功能实现液体流量控制的方案,并运用Matlab软件进行了仿真,证明了系统的可行性。数字PID算法调整控制参数较之硬件PID控制器操作简便,系统设置灵活。该控制系统可应用于工业、农业等领域的液体流量控制中,也可用于液压系统的电磁阀控制。
本文作者创新点:
传统的液体流量控制大多采用高速开关电磁阀,电磁阀的频繁开关会产生很大滞后性,不利于控制的系统的实时性。该系统利用PWM信号控制比例电磁阀开口的大小,实现了流量的连续控制,减少了滞后性同时采用了增量式数字PID算法调节实现了闭环控制,使系统调节更准确,更稳定。
参考文献:
[1] 刘金坤,先进PID控制Matlab仿真(第2版)电子工业出版社 2004。
[2] 王晓明,电动机的单片机控制 北京:北京航空航天大学出版社 2002
[3] 王正林等 过程控制与Simulink应用 电子工业出版社 2006。
[4] 聂慧萍 基于ARM 和uCOS—II的固体科氏流量计测控系统 微计算机信息 2005第21卷第7-2期。
pwm相关文章:pwm原理
评论