PID温度控制算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

PID温度控制算法的软件实现问题?1.怎样评价温度控制系统控制效果的优劣?2.什么是PID控制算法?什么是数字式PID控制算法?3.什么是积分饱和现象?怎样避免积分饱和现象?4.怎样用C语言编写PID控制程序?5.怎样在PSOC上实现PID控制温度?6.怎样测试PID控制器是否正常工作?问题一:怎样评价温度控制系统控制效果的优劣?能够快速稳定准确的实现控制能够将温度偏差值控制在一个较小的范围内具有较强抵抗干扰的能力控制超调量不能过大问题二:什么是PID控制算法?什么是数字式PID控制算法?PID控制算法:PID控制器是一种线性控制器,它将给定值与实际输出值的偏差的比例、积分和微分进行线性组合,形成控制量输出,如图下图所示。PID控制器方框图)(te)(tu)(tu)(ty)(tr)(tepKsTKip1sTKdp被控对象+-+++问题二:什么是PID控制算法?什么是数字式PID控制算法?模拟控制算法:用于模拟控制系统被测参数由传感器变化成统一的标准信号后输入调节器,在调节器中与给定值进行比较,再把比较后的差值经PID运算后送到执行机构,改变进给量,以达到自动调节的目的。数字PID控制算法:用于数字控制系统先把过程参数进行采样,并通过模拟量输入通道将模拟量变成数字量,这些数字量通过计算机按一定控制算法进行运算处理,运算结果经D/A转换成模拟量后,由模拟量输出通道输出,并通过执行机构去控制生产,以此达到给定值。问题三:什么是积分饱和现象?怎样避免积分饱和现象?在实际的控制系统中,控制量实际输出值往往受到执行机构性能的限制,而被限制在一定的范围内,即umin≤u≤umax,其变化也局限在一定的范围,即u<umax。如果控制量u在上述范围内,那么PID控制可以达到预期效果;一旦超出上述范围,则实际执行机构的控制量就不再是计算值。这相当于在系统中串联了一个饱和非线性环节,因此,将引起不期望的效应,即饱和效应。问题三:什么是积分饱和现象?怎样避免积分饱和现象?防止PID调节器积分饱和的措施一:积分分离法积分分离的基本思路是:当被调量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度。问题三:什么是积分饱和现象?怎样避免积分饱和现象?防止PID调节器积分饱和的措施二:遇限削弱积分PID控制算法当控制进入饱和区以后,便不再进行积分项的累加,而只执行削弱积分的运算。因而,在计算u(k)时,先判断u(k-1)是否已超出限制值。若u(k-1)>umax,则只累加负偏差;若u(k-1)<umax,则累加正偏差。采用遇限削弱积分PID控制算法后,可以避免控制量长时间停留在饱和区。问题三:什么是积分饱和现象?怎样避免积分饱和现象?防止PID调节器积分饱和的措施三:有效偏差法当根据PID位置算法算出的控制量超出限制范围时,控制量实际上只能取边界值,即u=umax或u=umin,有效偏差法是将相应的这一控制量的偏差值作为有效偏差值计入积分累计而不是将实际偏差计入积分累计。因为按实际偏差值计算出的控制量并未实行。问题四:怎样用C语言编写PID控制程序?通过采样将模拟信号转变为数字信号,并与目标设置值进行比较分析。同时将二者的偏差通过算法输出,进行反馈调节。整个过程不断循环,从而使得控制的对象保持一个较为恒定的值。从而将模拟量转变为计算机可以操作的数字信号,则可采用C语言控制整个循环过程。问题四:怎样用C语言编写PID控制程序?问题四:怎样用C语言编写PID控制程序?问题五:怎样在PSOC上实现PID控制温度?在中断程序中定义的临时变量:floatde,y0;staticfloatIe=0,de1=0;staticuint8PID_Count=0;在主程序外定义的常变量:#defineKp12.19//PID控制参数#defineKi0.3#defineKd109.7#defineIntegral_Boundary11.0//有限积分边界uint8PWM_Output;问题五:怎样在PSOC上实现PID控制温度?PID_Count++;if(PID_Count100){PID_Count=0;de=Target_Temp-Current_Temp;//求温度误差eif((deIntegral_Boundary)&(de-Integral_Boundary))//如果处于有限积分边界之内Ie=Ie+Ki*de;//求误差的积分elseIe=0;//在边界外时积分清零y0=Kp*de+Ie+Kd*(de-de1)+128;//求输出if(y0255)y0=255;if(y00)y0=0;PWM_Output=(uint8)y0;de1=de;PWM_1_WriteCompare1(PWM_Output);//刷新PWM输出问题六:怎样测试PID控制器是否正常工作通过得到的响应曲线进行分析,从而判断PID控制器是否正常工作问题六:怎样测试PID控制器是否正常工作问题六:怎样测试PID控制器是否正常工作将电烙铁连上,并设置一个目标温度;从开始给电烙铁加热,直到电烙铁达到目标温度并稳定在一个范围内。则开始记录数码管上显示的温度,从而得到此时电烙铁的温度。每隔一秒记录一次,并连续记录多组数据,然后绘制出温度变化曲线。观察温度曲线的变化是否在合理的范围内。问题六:怎样测试PID控制器是否正常工作RecC++;if(RecC==1000){//每10秒记录一个数据Recorder1[RecorderPt]=Current_Temp;Recorder2[RecorderPt]=PWM_Output;RecorderPt++;if(RecorderPt99)//记录数据的数量RecorderPt=0;RecC=0;问题六:怎样测试PID控制器是否正常工作97.59898.59999.5100100.5101101.5135791113151719212325272931333537394143454749515355575961636530204060801001201357911131517192123252729313335373941434519898.59999.5100100.5101101.510205101520253035402谢谢!

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功