智能控制课后仿真

智能控制课后仿真

ID:26150713

大小:821.06 KB

页数:13页

时间:2018-11-25

智能控制课后仿真_第1页
智能控制课后仿真_第2页
智能控制课后仿真_第3页
智能控制课后仿真_第4页
智能控制课后仿真_第5页
资源描述:

《智能控制课后仿真》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WORD格式整理《智能控制》课后仿真报告院(系):电气与控制工程学院专业班级:自动化1301班姓名:杨光辉学号:1306050115专业知识分享WORD格式整理题目2-3:求二阶传递函数的阶跃相应取采样时间为1ms进行离散化。参照专家控制仿真程序,设计专家PID控制器,并进行MATLAB仿真。专家PID控制MATLAB仿真程序清单:%ExoertPIDControllerclearall;%清理数据库中所有数据closeall;%关闭所有界面图形ts=0.001;%对象采样时间,1mssys=t

2、f(133,[1,25,0]);%受控对象的传递函数dsys=c2d(sys,ts,'z');%连续系统转化为离散系统[num,den]=tfdata(dsys,'v');%离散化后参数,得num和den值u_1=0;u_2=0;%设定初值,u_1是第(k-1)步控制器输出量y_1=0;y_2=0;%设定初值,y_1是第(k-1)步系统对象输出量x=[0,0,0]';%设定误差x1误差导数x2误差积分x3变量初值x2_1=0;%设定误差导数x2_1的初值kp=0.6;%设定比例环节系数ki=0.

3、03;%设定积分环节系数kd=0.01;%设定微分环节系数error_1=0;%设定误差error_1的初值fork=1:1:5000%for循环开始,k从1变化到500,每步的增量为1time(k)=k*ts;%仿真时长[0.0010.5]sr(k)=1.0;%TracingStepSignal系统输入信号u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PIDControllerPID控制器%Expertcontrolrule%Rule1:Unclosedcontrolrule规则

4、1:开环控制ifabs(x(1))>0.8%if循环开始,产生式规则,if...then...;误差的绝对值大于u(k)=0.45;%控制器输出量等于elseifabs(x(1))>0.40u(k)=0.40;elseifabs(x(1))>0.20u(k)=0.12;elseifabs(x(1))>0.01u(k)=0.10;end%if循环结束%Rule2规则2ifx(1)*x(2)>0

5、(x(2)==0)%if循环开始,如果误差增大或不变ifabs(x(1))>=0.05%内嵌if循环开始

6、,如果误差绝对值大于u(k)=u_1+2*kp*x(1);%控制器输出量施加较强控制专业知识分享WORD格式整理else%否则u(k)=u_1+0.4*kp*x(1);%控制器输出量施加一般控制end%内嵌if循环结束end%if循环结束%Rule3规则3if(x(1)*x(2)<0&x(2)*x2_1>0)

7、(x(1)==0)%if循环开始,如果误差减小或消除u(k)=u(k);%控制器输出量不变end%if循环结束%Rule4规则4ifx(1)*x(2)<0&x(2)*x2_1<0%if循环

8、开始,如果误差处于极值状态ifabs(x(1))>=0.05%内嵌if循环开始,如果误差绝对值大于u(k)=u_1+2*kp*error_1;%控制器输出量施加较强控制else%否则u(k)=u_1+0.6*kp*error_1;%控制器输出量施加一般控制end%内嵌if循环结束end%if循环结束%Rule5:IntegrationseparationPIcontrol规则5;运用PI控制来消除误差ifabs(x(1))<=0.001%if循环开始如果误差绝对值小于(很小)u(k)=0.5*x

9、(1)+0.010*x(3);%控制器输出量用比例和积分输出end%if循环结束%Restrictingtheoutputofcontroller对控制输出设限ifu(k)>=10u(k)=10;%设控制器输出量上限值endifu(k)<=-10u(k)=-10;%设控制器输出量下限值end%LinearmodelZ变化后系统的线性模型y(k)=-den(2)*y_1-den(3)*y_2+num(1)*u(k)+num(2)*u_1+num(3)*u_2;error(k)=r(k)-y(k);

10、%系统误差error的表达式,等于系统输入减去输出%--------Returnofparameters--------%每步计算时的参数更新u_2=u_1;u_1=u(k);%u(k)代替u_1y_2=y_1;y_1=y(k);%y(k)代替y_1x(1)=error(k);%CalculatingP赋误差error值于x1x2_1=x(2);%赋值前步计算时的误差导数X2的值等于X2_1x(2)=(error(k)-error_1)/ts;%CalculatingD求误差导数x2,用于下一步

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

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

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