积分分离PID控制算法及仿真课程设计.doc

积分分离PID控制算法及仿真课程设计.doc

ID:59142163

大小:100.00 KB

页数:7页

时间:2020-09-11

积分分离PID控制算法及仿真课程设计.doc_第1页
积分分离PID控制算法及仿真课程设计.doc_第2页
积分分离PID控制算法及仿真课程设计.doc_第3页
积分分离PID控制算法及仿真课程设计.doc_第4页
积分分离PID控制算法及仿真课程设计.doc_第5页
资源描述:

《积分分离PID控制算法及仿真课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《计算机控制技术》题目:积分分离PID积分分离式PIDPID控制器中引入积分的目的主要是为了消除静差,提高精度,但在过程的启动、结束、大幅度增减设定值或出现较大扰动时,短时间内系统的输出会出现很大的偏差,致使积分部分幅值快速上升。由于系统存在惯性和滞后,这就势必引起系统输出部分出现较大的超调和长时间的波动,特别对于温度、成分等变化缓慢的过程,这一现象更为严重,有可能引起系统震荡。为防止这种现象,采用积分分离式PID控制算法。其基本思想是:大偏差时,去掉积分作用,以免积分作用使系统稳定性变差;小偏差时,投入积分作用,以便消除静

2、差,提高控制精度。既保证了系统的动态性能又能使系统无静差。具体算法如下:PID控制规律为:其中:e(t)微控制器输入,u(t)微控制器输出。对上市进行零初始条件下的拉氏变换,得PID控制器的传递函数为:式中,u(k)为k时刻控制器的输出量;KP,KI,KD分别为比例系数,积分系数和微分系数;e(K)为当前时刻系统的位置与期望值之差;e(k-1)为上次采样时刻的系统的位置与期望值之差。(1)根据实际情况,设定一阈值ε>0;(2)当le(k)l>ε时,也就是当le(K)l比较大时,切除积分环节,改用PD控制,这样可以避免过大的超

3、调,又能使系统有较快的响应;(3)当je(K)l≤ε时,也就是当le(K)l比较小时,加入积分环节,成为PID控制,保证系统的控制精度。积分分离PID控制算法(位置式算法)为:从上式可见,积分分离PID控制算法,只是在常规PID控制算法的积分项前乘一个系数β,以此来控制积分作用是否有效。当β=1时积分有效,当β=0时积分项无效。SIMULIK仿真结构图如下:回路曲线图采用积分分离HD控制算法以后,控制效果如图5.12所示。由图可见,采用积分分离PID控制算法使得控制系统的性能有了较大的改善积分分离PID程序/文件名:ACC3

4、-2-1.C功能描述:实现数字PID调节器的功能。/#include#include#include/宏定义/#defineucharunsignedchar#defineuintunsignedint#defineADC_7XBYTE[0x7ff0]//定义模数转换IO地址#defineDAC_1XBYTE[0x7ff2]//定义D/A第一路的IO地/全局变量定义/sbitstr=P1^7;//定义A/D启动信号sbitDIN0=P1^0;//声明同步信号uintdat

5、atime;//声明变量,用于定时uchardatat0_h,t0_l;//用于存储定时器0的初值charTK=5;//声明采样周期变量,//采样周期=TK10mscharTC;//TK的变量floatkp=0.20;//比例系数charti=1.5;//积分系数chartd=0.015;//微分系数charIBAND=5;//积分分离值charEK;//当前采样的偏差值charEK_1;//上一次采样的偏差值charAEK;//偏差的变化量charUK;//当前时刻的D/A输出intZEK;/主函数/voidmain(vo

6、id){TMOD=0x01;time=10;//定时10mst0_h=(65536-500time)/256;//计算定时器0初值t0_l=(65536-500time)%256;t0_l=t0_l+20;//修正因初值重装而引起的定时误差TH0=t0_h;TL0=t0_l;IT1=1;//边沿触发中断EX1=1;//开外部中断1ET0=1;//开定时中断0TR0=1;//启动定时器TC=1;DAC_1=0x80;//D/A清零EK=EK_1=0;//变量清零AEK=UK=0;ZEK=0;EA=1;//开总中断while(1

7、);}/函数名:INT1功能:1号外部中断服务程序参数:无返回值:无/voidint1()interrupt2using2{floatP,D,I,TEMP;DIN0=1;//读取输入前,先输出高电平if(DIN0)//判同步信号到否{EK=EK_1=0;//变量清零UK=AEK=0;ZEK=0;DAC_1=0x80;//D/A输出零TC=1;}else{TC--;//判采样周期到否if(TC==0){EK=ADC_7-128;//采样当前的偏差值,并计算偏差的变化量AEK=EK-EK_1;EK_1=EK;if(abs(EK)

8、>IBAND)I=0;//判积分分离值else{ZEK=EK+ZEK;//计算积分项I=ZEKTK;I=I/ti;}P=EK;D=AEKtd;//计算微分项D=D/TK;TEMP=(P+I+D)kp;//计算比例项if(TEMP>0)//判控制量是否溢出,溢出赋极值{if(TEMP>=12

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。