积分分离PID控制算法及仿真课程设计_第1页
积分分离PID控制算法及仿真课程设计_第2页
积分分离PID控制算法及仿真课程设计_第3页
积分分离PID控制算法及仿真课程设计_第4页
积分分离PID控制算法及仿真课程设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机控制技术题目:积分分离PID 积分分离式PID PID控制器中引入积分的目的主要是为了消除静差,提高精度,但在过程的启动、结束、大幅度增减设定值或出现较大扰动时,短时间内系统的输出会出现很大的偏差,致使积分部分幅值快速上升。由于系统存在惯性和滞后,这就势必引起系统输出部分出现较大的超调和长时间的波动,特别对于温度、成分等变化缓慢的过程,这一现象更为严重,有可能引起系统震荡。为防止这种现象,采用积分分离式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)当je(K)l时,也就是当le(K)l比较小时,加入积分环节,成为PID控制,保 证系统的控制精度。积分分离P

3、ID控制算法(位置式算法)为:从上式可见,积分分离PID控制算法,只是在常规PID控制算法的积分项前乘一个系数 ,以此来控制积分作用是否有效。当=1时积分有效,当=0时积分项无效。SIMULIK仿真结构图如下: 回路曲线图采用积分分离HD控制算法以后,控制效果如图5.12所示。由图可见,采用积分分 离PID控制算法使得控制系统的性能有了较大的改善 积分分离PID程序/*文件名:ACC3-2-1.C功能描述:实现数字PID调节器的功能。*/#include #include #include /*宏定义*/#define uchar unsigned char#define uint unsig

4、ned int#define ADC_7 XBYTE0x7ff0/定义模数转换IO地址#define DAC_1 XBYTE0x7ff2/定义D/A第一路的IO地/*全局变量定义*/sbit str = P17;/定义A/D启动信号sbit DIN0 = P10;/声明同步信号uint data time;/声明变量,用于定时uchar data t0_h,t0_l;/用于存储定时器0的初值char TK=5;/声明采样周期变量,/采样周期TK*10mschar TC;/TK的变量float kp=0.20;/比例系数char ti=1.5;/积分系数char td=0.015;/微分系数ch

5、ar IBAND=5;/积分分离值char EK;/当前采样的偏差值char EK_1;/上一次采样的偏差值char AEK;/偏差的变化量char UK;/当前时刻的D/A输出int ZEK;/*主函数*/void main(void) TMOD = 0x01;time = 10;/定时10mst0_h = (65536-500*time)/256;/计算定时器0初值t0_l = (65536-500*time)%256;t0_l = t0_l+20;/修正因初值重装而引起的定时误差TH0 = t0_h;TL0 = t0_l;IT1 = 1;/边沿触发中断EX1 = 1;/开外部中断1ET0

6、 = 1;/开定时中断0TR0 = 1;/启动定时器TC = 1;DAC_1= 0x80;/D/A清零EK=EK_1=0;/变量清零 AEK=UK=0;ZEK=0;EA = 1;/开总中断while(1);/*函数名:INT1功能 :1号外部中断服务程序 参数 :无* 返回值:无 * */void int1() interrupt 2 using 2float P,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-;/

7、判采样周期到否 if(TC=0) EK = ADC_7-128;/采样当前的偏差值,并计算偏差的变化量 AEK =EK-EK_1; EK_1=EK; if(abs(EK) IBAND) I=0;/判积分分离值 else ZEK=EK+ZEK; /计算积分项 I=ZEK*TK;I=I/ti; P=EK; D=AEK*td;/计算微分项 D=D/TK; TEMP=(P+I+D)*kp;/计算比例项 if(TEMP0)/判控制量是否溢出,溢出赋极值 if(TEMP=127) UK=127; else UK=(char)TEMP; else if(TEMP-128) UK=-128; else UK=(char)TEMP; DAC_1=UK+128;/D/A输出控制量 TC=TK;/采样周期变量恢复/*函数名:Time

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论