智能控制分析和总结.docxVIP

  • 2
  • 0
  • 约1.66万字
  • 约 18页
  • 2023-09-22 发布于上海
  • 举报
智能控制理论及应用 ——MATLAB 仿真作业 学号 :02127XX 专业 :交通信息工程及控制姓名 :陶玉凤 学院 :光电技术与智能控制教育部重点实验室 实验一: 专家PID 控制系统Matlab 仿真 分析了一个速度控制器的控制仿真。其传递函数为: G ( s ) ??523500 s 3 ? 87 .35 s 2 ? 1047 s 使用专家 PID 控制系统,输入信号为阶跃信号,取采样时间为 1ms,画出阶跃响应曲线和误差变化曲线。 仿真图 图 1 阶跃响应曲线 分析结果 图 2 误差曲线 专家控制(Expert Control)的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。利用专家经验来设计 PID 参数便构成专家 PID 控制。 典型的二阶系统单位阶跃响应误差曲线如图 1、2 所示。对于典型的二阶系统阶跃响应过程作如下分析,根据误差及其变化,可设计专家 PID 控制器,该控制器可分为五种情况进行设计。 根据误差及其变化,可设计专家 PID 控制器,该控制器可分为以下五种情况 进行设计: 当| e(k) |? M 时,说明误差的绝对值已经很大,不论误差变化趋势如何, 1 都应考虑控制器的输出应按最大〔或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。此时,它相当于实施开环控制。 当e(k) ? e ( k ) ? 0 时,说明误差在朝误差绝对值增大方向变化,或误差为 某一常值,未发生变化。此时,如果| e(k) |? M 2 ,说明误差也较大,可考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小 误差的绝对值。此时,如果| e(k) |? M 2 ,说明尽管误差朝绝对值增大方向变化, 但误差绝对值本身并不很大,可考虑控制器实施一般的控制作用,只要扭转误差的变化趋势,使其初误差绝对值减小方向变化。 当e(k) ? e ( k ) ? 0 , e(k) ? e ( k - 1) ? 0 或e(k) ? 0 时,说明误差的绝对值朝减 小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。 当 e(k) ? e ( k ) ? 0 , e(k) ? e ( k - 1) ? 0 时,说明误差处于极值状态。如果此时误差的 绝对值较大,可考虑实施较强的控制作用。 当| e(k) |? ? 时,说明误差的绝对值很小,此时加入积分,减少稳态误差。 程序 %Expert PID Controller clear all; close all; ts=0.001; sys=tf(5.235e005,[1,87.35,1.047e004,0] ); dsys=c2d(sys,ts,z); [num,den]=tfdata(dsys,v); u_1=0.0;u_2=0.0;u_3=0.0; y_1=0;y_2=0;y_3=0; x=[0,0,0]; x2_1=0; kp=0.6; ki=0.03; kd=0.01; error_1=0; for k=1:1:500 time(k)=k*ts; rin(k)=1.0; %Tra cing Jieyue Signal u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller %Expert control rule if abs(x(1))0.8 %Rule 1:Unclosed control firstly u(k)=0.45; elseif abs(x(1))0.40 u(k)=0.40; elseif abs(x(1))0.20 u(k)=0.12; elseif abs(x(1))0.01 u(k)=0.10; end if x(1)*x(2)0|(x(2)==0) %Rule2 if abs(x(1))=0.05 u(k)=u_1+2*kp*x(1); else u(k)=u_1+0.4*kp*x(1); end end if (x(1)*x(2)0x(2)*x2_10)|(x(1)==0) %Rule3 u(k)=u(k); end if x(1)*x(2)0x(2)*x2_10 %Rule4 if abs(x(1))=0.05 u(k)=u_1+2*kp*error_1; else u(k)=u_1+0.6*kp*error_1; end end if abs(x(1))=0.001 %Rule5:Integratio n separation PI control u(k)=0.5*x(1)+0.010*x(3); end %Restricting the output of controller if u(k)=10 u(k)=

文档评论(0)

1亿VIP精品文档

相关文档