智能控制课后仿真Word版_第1页
智能控制课后仿真Word版_第2页
智能控制课后仿真Word版_第3页
智能控制课后仿真Word版_第4页
智能控制课后仿真Word版_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

整理为word格式整理为word格式整理为word格式《智能控制》课后仿真报告整理为word格式整理为word格式整理为word格式院(系):电气与控制工程学院专业班级:自动化1301班姓名:杨光辉学号:1306050115题目2-3:求二阶传递函数的阶跃相应取采样时间为1ms进行离散化。参照专家控制仿真程序,设计专家PID控制器,并进行MATLAB仿真。专家PID控制MATLAB仿真程序清单:%ExoertPIDControllerclearall;%清理数据库中所有数据closeall;%关闭所有界面图形ts=0.001;%对象采样时间,1mssys=tf(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.03;%设定积分环节系数整理为word格式整理为word格式整理为word格式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规则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|(x(2)==0)%if循环开始,如果误差增大或不变ifabs(x(1))>=0.05%内嵌if循环开始,如果误差绝对值大于u(k)=u_1+2*kp*x(1);%控制器输出量施加较强控制else%否则u(k)=u_1+0.4*kp*x(1);%控制器输出量施加一般控制end%内嵌if循环结束end%if循环结束整理为word格式整理为word格式整理为word格式%Rule3规则3if(x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0)%if循环开始,如果误差减小或消除u(k)=u(k);%控制器输出量不变end%if循环结束%Rule4规则4ifx(1)*x(2)<0&x(2)*x2_1<0%if循环开始,如果误差处于极值状态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(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;整理为word格式整理为word格式整理为word格式error(k)=r(k)-y(k);%系统误差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,用于下一步的计算x(3)=x(3)+error(k)*ts;%CalculatingI求误差积分x3error_1=error(k);%赋误差error值于error_1end%for循环结束,整个仿真时长计算全部结束figure(1);%图形1plot(time,r,'b',time,y,'r');%画图,以时间为横坐标,分别画出系统输入、输出随时间的变化曲线xlabel('time(s)');ylabel('r,y');%标注坐标figure(2);%图形2plot(time,r-y,'r');%画r-y,即误差随时间的变化曲线xlabel('time(s)');ylabel('error');%标注坐标专家PID控制MATLAB仿真程序过程及结果:1.在MATLAB编辑环境下编写专家PID控制仿真程序整理为word格式整理为word格式整理为word格式2.编译运行程序后Figure1:PID控制阶跃响应曲线Figure2:整理为word格式整理为word格式整理为word格式误差响应随时间变化曲线题目3-4:如果且,则。现已知且,利用模糊推理公式(3.27)和(3.28)求,并采用MATLAB进行仿真。模糊推理MATLAB仿真程序清单:clearall;%清理数据库中所有数据closeall;%关闭所有界面图形?A=[1;0.5];%输入各元素在A中的隶属度B=[0.1,0.5,1];%输入各元素在B中的隶属度C=[0.2,1];%输入各元素在C中的隶属度%CompoundofAandB%合成A和Bfori=1:2%A矩阵的行数取值i整理为word格式整理为word格式整理为word格式forj=1:3%B矩阵的列数取值jAB(i,j)=min(A(i),B(j));%实现A,B的“与”关系endend%TransfertoColumn%转换列向量T1=[];%定义转置矩阵T1fori=1:2%AB矩阵的行数取值iT1=[T1;AB(i,:)'];%转置AB矩阵end%GetfuzzyR%确立模糊关系矩阵Rfori=1:6%R矩阵列数取值iforj=1:2%R矩阵行数取值jR(i,j)=min(T1(i),C(j));%确定模糊关系矩阵Rendend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A1=[0.8,0.1];%输入各元素在A1中的隶属度B1=[0.5,0.2,0];%输入各元素在B1中的隶属度fori=1:2%A1矩阵的行数取值iforj=1:3%B1矩阵的行数取值jAB1(i,j)=min(A1(i),B1(j));%实现A1和B1的“与”关系endend%TransfertoRow%转换行向量T2=[];%定义转置矩阵T2整理为word格式整理为word格式整理为word格式fori=1:2%AB1矩阵的行数取值iT2=[T2,AB1(i,:)];%扩展A1B1矩阵end%GetoutputC1%确定输出fori=1:6%转置矩阵T2列数取值forj=1:2%模糊矩阵R行数取值D(i,j)=min(T2(i),R(i,j));C1(j)=max(D(:,j));%输出C1矩阵endend模糊推理MATLAB仿真程序过程及结果:1.在MATLAB编辑环境下编写模糊推理仿真程序2.编译运行程序后AB与关系:整理为word格式整理为word格式整理为word格式转置矩阵T1:模糊矩阵R:A1B1与关系:整理为word格式整理为word格式整理为word格式转置矩阵T2:输出矩阵C1:题目4-3:已知某一炉温控制系统,要求温度保持在600℃恒定。针对该控制系统有以下控制经验:(1)若炉温低于600℃,则升压;低得越多升压越高。(2)若炉温高于600℃,则降压;高得越多降压越低。(3)若炉温等于600℃,则保持电压不变。整理为word格式整理为word格式整理为word格式设模糊控制器为一维控制器,输入语言变量为误差,输出为控制电压。输入、输出变量的量化等级为7级,取5个模糊集。试设计隶属度函数误差变化划分表、控制电压变化划分表和模糊控制规则表。解:输入(e)以及输出(u)分为5个模糊集:NB、NS、ZO、PS、PB。输入变量(e)以及输出变量(u)分为7个等级:-3、-2、-1、0、+1、+2、+3。炉温变化e划分表隶属度变化等级-3-2-10123模糊集PB000000.51PS000010.50ZO000.510.500NS00.510000NB10.500000控制电压变化划分表隶属度变化等级整理为word格式整理为word格式整理为word格式-3-2-10123模糊集PB000000.51PS000010.50ZO000.510.500NS00.510000NB10.500000模糊控制规则表若(IF)NBeNSeZOePSePBe则(THEN)NBuNSuZOuPSuPBu炉温模糊控制MATLAB仿真程序清单:%FuzzyControlforfurnacetemperatureclearall;%清理数据库中所有数据closeall;%关闭所有界面图形a=newfis('fuzz_temperature');%模糊炉温a=addvar(a,'input','e',[-3,3]);%Parametere输入参数e的取值范围a=addmf(a,'input',1,'NB','zmf',[-3,-1]);a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);整理为word格式整理为word格式整理为word格式a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);a=addmf(a,'input',1,'PB','smf',[1,3]);a=addvar(a,'output','u',[-3,3]);%Parameteru输出参数u的取值范围a=addmf(a,'output',1,'NB','zmf',[-3,-1]);a=addmf(a,'output',1,'NS','trimf',[-3,-2,1]);a=addmf(a,'output',1,'Z','trimf',[-2,0,2]);a=addmf(a,'output',1,'PS','trimf',[-1,2,3]);a=addmf(a,'output',1,'PB','smf',[1,3]);rulelist=[1111;%Edit?rule?base编辑规则库2211;3311;4411;5511];a=addrule(a,rulelist);a1=setfis(a,'DefuzzMethod','mom');%Defuzzywritefis(a1,'temperature');%Savetofuzzyfile"temperature.fis"保存模糊文件"temperature.fis"a2=readfis('temperature');figure(1);%图形1plotfis(a2);%画图figure(2);%图形2plotmf(a,'input',1);%画图figure(3);%图形3plotmf(a,'output',1);%画图整理为word格式整理为word格式整理为word格式flag=1;%设标志位1ifflag==1%如果标志位为1showrule(a)%Showfuzzyrulebase显示模糊规则库ruleview('temperature');%DynamicSimulation动态模拟end%结束disp('--------

温馨提示

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

最新文档

评论

0/150

提交评论