. 精品《智能控制》课后仿真报告. 精品院 (系):电气与控制工程学院专业班级:自动化 1301 班姓名:杨光辉学号:1306050115 题目 2-3 :求二阶传递函数的阶跃相应SSSG251332p)(取采样时间为1ms进行离散化。参照专家控制仿真程序,设计专家PID 控制器,并进行MATLAB仿真。专家 PID 控制 MATLAB仿真程序清单:%Exoert PID Controllerclear all ; %清理数据库中所有数据close all ; %关闭所有界面图形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;%设定积分环节系数kd=0.01; %设定微分环节系数error_1=0;%设定误差error_1的初值for k=1:1:5000%for 循环开始, k 从 1 变化到 500,每步的增量为1time(k)=k*ts;%仿真时长 [0.001 0.5]sr(k)=1.0;%Tracing Step Signal 系统输入信号u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PID ControllerPID控制器%Expert control rule%Rule1:Unclosed control rule规则 1:开环控制if abs(x(1))>0.8%if 循环开始,产生式规则,if...then...;误差的绝对值大于u(k)=0.45;%控制器输出量等于elseif abs(x(1))>0.40u(k)=0.40;elseif abs(x(1))>0.20u(k)=0.12;elseif abs(x(1))>0.01u(k)=0.10;end%if 循环结束%Rule2 规则 2if x(1)*x(2)>0|(x(2)==0)%if 循环开始,如果误差增大或不变if abs(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 循环结束%Rule3 规则 3if (x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0)%if 循环开始,如果误差减小或消除u(k)=u(k);%控制器输出量不变end%if 循环结束%Rule4 规则 4if x(1)*x(2)<0&x(2)*x2_1<0%if 循环开始,如果误差处于极值状态if abs(x(1))>=0.05%内嵌 if循环开始,如果误差绝对值大于u(k)=u_1+2*kp*error_1;%控制器输出量施加较强控制else %否则u(k)=u_1+0.6*kp*error_1;%控...