PID控制改进.算法的MATLAB仿真.doc

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
-_ 江苏科技大学 电子信息学院 实 验 报 告 评定成绩 评定成绩 指导教师 宋英磊 实验课程:计算机控制技术 实验名称:PID控制改进算法的MATLAB仿真 学号: 1345733203 姓名: 胡文千 班级: 完成日期: 2015年 11月 16日 实验目的 (1)对PID数字控制的改进算法用MATLAB进行仿真。 实验内容 1、积分分离PID控制算法 在普通PID控制中,积分的目的是为了消除误差提高精度,但在过程的启动、结束或大幅度增减设定是,短时间内系统输出有很大偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的振荡,这在生产中是绝对不允许的。 积分分离控制基本思路是,当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度。其具体实现步骤是: 根据实际情况,人为设定阈值ε0; 当 时,采用PD控制,可避免产生过大的超调,又使系统有较快的响应; 当时,采用PID控制,以保证系统的控制精度。 积分分离算法可表示为: 式中,T为采样时间,β为积分项的开关系数, 仿真1 设备控对象为一个延迟对象,采样周期为20s,延迟时间为4个采样周期,即80s。输入信号r(k)=40,控制器输出限制在[-110,110]。 被控对象离散化为 仿真方法:仿真程序:ex9_1.m。当M=1时采用分段积分分离法,M=2时采用普通PID控制。 %Integration Separation PID Controller clear all; close all; ts=20; %Delay plant sys=tf([1],[60,1],inputdelay,80); dsys=c2d(sys,ts,zoh); [num,den]=tfdata(dsys,v); u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; error_1=0;error_2=0; ei=0; % M=1分段积分分离,M=2普通PID disp(M=1--Using integration separation,M=2--Not using integration separation) M=input(whether or not use integration separation method:) for k=1:1:200 time(k)=k*ts; %输出信号 yout(k)=-den(2)*y_1+num(2)*u_5; rin(k)=40; error(k)=rin(k)-yout(k); ei=ei+error(k)*ts;%积分项输出 if M==1 %使用分段积分分离 if abs(error(k))=30abs(error(k))=40 beta=0.3; elseif abs(error(k))=20abs(error(k))=30 beta=0.6; elseif abs(error(k))=10abs(error(k))=20 beta=0.9; else beta=1.0; end elseif M==2 beta=1.0; end kp=0.80; ki=0.005; kd=3.0; u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+beta*ki*ei; if u(k)=110 % 控制信号限幅 u(k)=110; end if u(k)=-110 u(k)=-110; end u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); error_2=error_1; error_1=error(k); end figure(1); plot(time,rin,b,time,yout,r); xlabel(time(s));ylabel(rin,yout); figure(2); plot(time,u,r); xlabel(time(s));ylabel(u); 将仿真获得结果的截图附于如下空白处: 当M=1时采用分段积分分离法,如图1-1所示;当M=1时采用普通PID控制,如图1-2所示

文档评论(0)

一叶轻舟 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档