1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本
2、样式,第二级,第三级,第四级,第五级,*,*,温度控制算法的软件实现,1,问题?,1.,怎样评价温度控制系统控制效果的优劣?,2.,什么是,PID,控制算法?什么是数字式,PID,控制算法,?,3.,什么是积分饱和现象?怎样避免积分饱和现象,?,4.,怎样用,C,语言编写,PID,控制程序?,5.,怎样在,PSOC,上实现,PID,控制温度?,6.,怎样测试,PID,控制器是否正常工作?,2,问题一:,怎样评价温度控制系统控制效果的优劣?,能够快速稳定准确的实现控制,能够将温度偏差值控制在一个较小的范围内,具有较强抵抗干扰的能力,控制超调量不能过大,3,问题二:,什么是,PID,控制算法?什么
3、是数字,式,PID,控制算法,?,PID,控制算法:,PID,控制器是一种线性控制器,它将给定值与实际输出值的偏差 的比例、积分和微分进行线性组合,形成控制量 输出,如图下图所示。,PID,控制器方框图,4,问题二:,什么是,PID,控制算法?什么是数字式,PID,控,制算法,?,模拟控制算法:用于模拟控制系统,被测参数由传感器变化成统一的标准信号后输入调节器,在调节器中与给定值进行比较,再把比较后的差值经运算后送到执行机构,改变进给量,以达到自动调节的目的。,数字,控制算法:用于数字控制系统,先把过程参数进行采样,并通过模拟量输入通道将模拟量变成数字量,这些数字量通过计算机按一定控制算法进行
4、运算处理,运算结果经转换成模拟量后,由模拟量输出通道输出,并通过执行机构去控制生产,以此达到给定值。,5,问题三:,什么是积分饱和现象?怎样避免积分饱和,现象,?,在实际的控制系统中,控制量实际输出值往往受到执行机构性能的限制,而被限制在一定的范围内,即,,其变化也局限在一定的范围,即。,如果控制量在上述范围内,那么控制可以达到预期效果;一旦超出上述范围,则实际执行机构的控制量就不再是计算值。这相当于在系统中串联了一个饱和非线性环节,因此,将引起不期望的效应,即,饱和效应,。,6,问题三:,什么是积分饱和现象?怎样避免积分饱和,现象,?,防止调节器积分饱和的措施,一:,积分分离法,积分分离的基
5、本思路是:当被调,量与设定值,偏差较大,时,取消积分作,用,以免由于积分作用使系统稳定性,降低,超调量增大;当被控量接近给,定值时,引入积分控制,以便,消除静,差,提高控制精度。,7,问题三:,什么是积分饱和现象?怎样避免积分饱和,现象?,防止调节器积分饱和的措施,二:,遇限削弱积分控制算法,当控制进入饱和区以后,便不再进行积分项的累加,而只执行削弱积分的运算。因而,在计算,(),时,先判断,(),是否已超出限制值。若,(),,则只累加负偏差;若,(),,则累加正偏差。采用遇限削弱积分控制算法后,,可以避免控制量长时间停留在饱和区,。,8,问题三:,什么是积分饱和现象?怎样避免积分饱和,现象,
6、防止调节器积分饱和的措施,三:,有效偏差法,当根据位置算法算出的控制量超出限制范围时,控制量实际上只能取,边界值,,即或,有效偏差法是将相应的这一控制量的偏差值作为,有效偏差值计入积分累计而不是将实际偏差计入积分累计,。因为按实际偏差值计算出的控制量并未实行。,9,问题四:,怎样用,C,语言编写,PID,控制程序?,通过采样将模拟信号转变为数字信号,并与目标设置值进行比较分析。同时将二者的偏差通过算法输出,进行反馈调节。整个过程不断循环,从而使得控制的对象保持一个较为恒定的值。,从而将模拟量转变为计算机可以操作的数字信号,则可采用,C,语言控制整个循环过程。,10,问题四:,怎样用,C,语
7、言编写,PID,控制程序?,11,问题四:,怎样用,C,语言编写,PID,控制程序?,12,问题五:,怎样在,PSOC,上实现,PID,控制温度?,在中断程序中定义的临时变量:,float,de,y0;,static float,Ie=0,de1=0;,static uint8,PID_Count=0;,在主程序外定义的常变量:,#define,Kp12.19/PID,控制参数,#define,Ki0.3,#define,Kd 109.7,#define,Integral_Boundary 11.0/,有限积分边界,uint8,PWM_Output;,13,问题五:,怎样在,PSOC,上实现,
8、PID,控制温度?,PID_Count+;,if,(PID_Count100),PID_Count=0;,de=Target_Temp-Current_Temp;,/,求温度误差,e,if,(de-Integral_Boundary),/,如果处于有限积分边界之内,Ie=Ie+Ki*de;,/,求误差的积分,else,Ie=0;,/,在边界外时积分清零,y0=Kp*de+Ie+Kd*(de-de1)+128;,/,求输出,if,(y0255)y0=255;,if,(y099),/,记录数据的数量,RecorderPt=0;,RecC=0;,18,问题六:,怎样测试,PID,控制器是否正常工作,19,谢谢!,20,