智能控制课后仿真

上传人:痛*** 文档编号:127319572 上传时间:2022-07-29 格式:DOCX 页数:13 大小:298.36KB
返回 下载 相关 举报
智能控制课后仿真_第1页
第1页 / 共13页
智能控制课后仿真_第2页
第2页 / 共13页
智能控制课后仿真_第3页
第3页 / 共13页
点击查看更多>>
资源描述
精品资料,欢迎大家下载!XIANUNIVEftStiyOFSCIENCEANDTECHNOLOGY智能控制?课后仿真报告院系:电气与控制工程学院专业班级:自动化1301班姓名:杨光辉学号:1306050115题目2-3:求二阶传递函数de阶跃相应Gp(S)=2133取采样时间为pS225S1ms进行离散化.参照专家控制仿真程序,设计专家PID控制器,并进行MATLAB真.专家PID控制MATLAB真程序清单:%ExoertPIDControllerclearall;%青理数据库中所有数据closeall;%1闭所有界面图形ts=0.001;%对象采样时间,1mssys=tf(133,1,25,0);%受控对象de传递函数dsys=c2d(sys,ts,z);%连续系统转化为离散系统num,den=tfdata(dsys,v);%离散化后参数,得num和den值u_1=0;u_2=0;9技定初值,u_1是第(k-1)步控制器输出量y_1=0;y_2=0;9技定初值,y_1是第(k-1)步系统对象输出量x=0,0,0;%投定误差x1误差导数x2误差积分x3变量初值x2_1=0;%设定误差导数x2_1de初值kp=0.6;%设定比例环节系数ki=0.03;%g:定积分环节系数kd=0.01;%S:定微分环节系数error_1=0;9没定误差error_1de初值fork=1:1:5000%for循环开始,k从1变化到500,每步de增量为1time(k)=k*ts;如真时长0.0010.5sr(k)=1.0;%TracingStepSignal系统输入信号u(k)=kp*x(1)+kd*x+ki*x(3);%PIDControllerPID控制器%Expertcontrolrule%Rule1:Unclosedcontrolrule规那么1:开环控制ifabs(x(1)0.8%if循环开始,产生式规那么,if.then.;误差de绝对值大于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规贝U2ifx(1)*x(2)0|(x(2)=0)%if循环开始,如果误差增大或不变ifabs(x(1)=0.05胭嵌if循环开始,如果误差绝对值大于u(k)=u_1+2*kp*x(1);%控制器输出量施加较强控制else%5那么u(k)=u_1+0.4*kp*x(1);9控制器输出量施加一般控制end炳嵌if循环结束end%if循环结束%Rule3规贝U3if(x(1)*x(2)0)|(x(1)=0)%if循环开始,如果误差减小或消除u(k)=u(k);%空制器输出量不变end%if循环结束%Rule4规贝U4ifx(1)*x(2)0&x*x2_1=0.05胭嵌if循环开始,如果误差绝对值大于u(k)=u_1+2*kp*error_1;%控制器输出量施加较强控制else%5那么u(k)=u_1+0.6*kp*error_1;%控制器输出量施加一般控制end炳嵌if循环结束end%if循环结束%Rule5:IntegrationseparationPIcontrol规那么5;运用PI控制来消除误差ifabs(x(1)=10u(k)=10;淤控制器输出量上限值endifu(k)=-10u(k)=-10;%设控制器输出量下限值end%LinearmodelZ变化后系统de线性模型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);%系统误差errorde表达式,等于系统输入减去输出%Returnofparameters%每步计算时de参数更新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;源值前步计算时de误差导数X2de值等于X2_1x(2)=(error(k)-error_1)/ts;%CalculatingD求误差导数x2,用于下一步de计算x(3)=x(3)+error(k)*ts;%CalculatingI求误差积分x3error_1=error(k);%M误差error值于error_1end%for循环结束,整个仿真时长计算全部结束figure(1);喟形1plot(time,r,b,time,y,r);%!图,以时间为横坐标,分别画出系统输入、输出随时间de变化曲线xlabel(time(s);ylabel(r,y);嘛注坐标figure(2);喟形2plot(time,r-y,r);%ir-y,即误差随时间de变化曲线xlabel(time(s);ylabel(error);海:注坐标专家PID控制MATLAB真程序过程及结果:1.在MATLA瞬辑环境下编写专家PID控制仿真程序2.编译运行程序后Figure1E割.皿-&k-si.髭n口mPID控制阶跃响应曲线Figure2:以上资料仅供参考,如有侵权,留言第一时间删除!误差响应随时间变化曲线题目3-4:3现3.27)和10.50.10.510.21如果A=+且B=+,贝UC=十一xX2yy2y3zZ2&=豫+匹且B1=+里+2,利用模糊推理公式(X1X2yyy(3.28)求.1,并采用MATLABft行仿真.模糊推理MATLAB真程序清单:clearall;%青理数据库中所有数据closeall;快闭所有界面图形?A=1;0.5;痢入各元素在A中de隶属度B=0.1,0.5,1;9输入各元素在B中de隶属度C=0.2,1;痢入各元素在C中de隶属度%CompoundofAandB%合成A和Bfori=1:2%入矩阵de行数取值iforj=1:3%8矩阵de列数取值jAB(i,j)=min(A(i),B(j);咚现A,Bde“与关系endend%TransfertoColumn%转换列向量T1=;9定义转置矩阵T1fori=1:2%AB巨阵de行数取值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;%B入各元素在A1中de隶属度B1=0.5,0.2,0;%B入各元素在B1中de隶属度fori=1:2%A1矩阵de行数取值iforj=1:3%B1矩阵de行数取值jAB1(i,j)=min(A1(i),B1(j);蜘现A1和B1de“与关系endend%TransfertoRow%转换行向量T2=;9定义转置矩阵T2fori=1:2%AB1矩阵de行数取值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与关系:T1A乂小岫状日2k3dojble123410.1ooq0.5TO0120.1MO0.5CMM0.50003456转置矩阵T1:4S-T1T1AD1AA1EH6x1double123o.in|20.5OT03140.1OOQ50.5000&0.50001模糊矩阵R:缰-RT1AB1cA田6x2double12310.100020,20000500030.200014OJOOO100050.2000500080.20000.50007A1B1与关系:H-AB111T1顷A由2x3double123|120.5&00|0.2000C0.1WOOJOOO034转置矩阵T2:输出矩阵C1:题目4-3:某一炉温控制系统,要求温度保持在600C恒定.针对该控制系统有以下控制经验:(1) 假设炉温低于600C,那么升压;低得越多升压越高.(2) 假设炉温高于600C,那么降压;高得越多降压越低.(3) 假设炉温等于600C,那么保持电压不变.设模糊控制器为一维控制器,输入语言变H为误差,输出为控制电压.输入、输出变虽de虽化等级为7级,取5个模糊集.试设计隶属度函数误差变化划分表、控制电压变化划分表和模糊控制规那么表.解:输入e以及输出u分为5个模糊集:NBNSZOPSPEL输入变虽e以及输出变虽u分为7个等级:-3、-2、-1、0、+1、+2、+3.炉温变化e划分表隶属度变化等级-3-2-10123模PB000000.51糊PS000010.50集ZO000.510.500NS00.510000NB10.500000控制电压变化划分表隶属度变化等级-3-2-10123模PB000000.51糊PS000010.50集ZO000.510.500NS00.510000NB10.500000模糊控制规那么表假设IFNBeNSeZOePSePBe那么THENNBuNSuZOuPSuPBu炉温模糊控制MATLAB真程序清单:%FuzzyControlforfurnacetemperatureclearall;%青理数据库中所有数据closeall;%l闭所有界面图形a=newfis(fuzz_temperature);哄糊炉温a=addvar(a,input,e,-3,3);%Parametere输入参数ede取值范围a=addmf(a,input,1,NB,zmf,-3,-1);a=addmf(a,input,1,NS,trimf,-3,-1,1);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输出参数ude取值范围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);%Savetofuzzyfiletemperature.fis保存模糊文件temperature.fisa2=readfis(temperature);figure(1);喟形1plotfis(a2);%图figure(2);喟形2plotmf(a,input,1);如图figure(3);喟形3plotmf(a,output,1);如图flag=1;%设标志位1ifflag=1淤口果标志位为1showrule(a)%Showfuzzyrulebase显示模糊规那么库ruleview(temperature);%DynamicSimulation动态模拟end%吉束disp();););disp(fuzzy?controller?table:e=-3,+3,u=-3,+3disp(fori=1:1:7e(i)=i-4;Ulist(i)=evalfis(e(i),a2);end%吉束Ulist=round(Ulist)e=-3;%Error出错u=evalfis(e,a2)%Usingfuzzyinference利用模糊推理炉温模糊控制MATLAB真程序过程及结果:1.在MATLAB辑环境下编写炉温模糊控制仿真程序2.编译运行程序后FigurelFigure2:Figure3:炉温规那么查看器:调整输入变虽可得到不同de输出仿真心得:通过这次课后仿真,让我对专家控制、模糊控制有了更进一步de理解,同时也对MATLAB这个重要de专业工具de使用更加熟练.欢送您de下载,资料仅供参考!致力为企业和个人提供合同协议,筹划案方案书,学习资料等等打造全网一站式需求
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!