1、1. 题目题目一、需要对专家控制规则做出明确的设计、编写控制器程序并作解释。已知典型二阶系统的单位阶跃响应输出曲线和误差曲线如图 1 所示。假设某二阶系统的的传递函数为G(s) =133s2 + 25 s,对象采样时间为 1ms,试设计一个专家 PID 控制器,根据其响应误差制定专家控制规则,以改善响应特性,并进行 Matlab 仿真。2. 专家 PID 控制过程分析专家控制的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。利用专家经验来设计 PID 参数便构成了专家 PID 控制。(1) 首先通过传递函数离散取样,采样时间间隔为1ms。(2)然后取PID初始值
2、:kp=0.6; ki=0.03; kd=0.01;(3)二阶系统阶跃过程分析如下,取阶跃信号rin(k)=1令 e(k)表示离散化的当前采样时刻的误差值,e(k-1)、e(k-2)、分别表示前一个和前两个采样时刻的误差值,则有De(k ) = e(k ) - e(k - 1)De(k - 1) = e(k - 1) - e(k - 2)根据误差及其变化,对二阶系统单位阶跃响应误差曲线做如下定性分析: 首先定义如下参数:误差界限, M 1 M 2 0 ;其中 M 1 可取 0.8,0.6,0.4,三值,M2=0.1增益抑制系数, 0 k2 1; k1 =2第 k 次和第 k-1 次控制器输出u
3、(k ), u(k - 1) ;e=0.001任意小正实数。. e(k ) 0.8 时,说明误差的绝对值已经很大。不论误差变化趋势如何,都应考虑控制器按定值0.7 输出。以达到迅速调整误差,使得误差绝对值以最大速度减小,同时避免超调。此时,它相当于开环控制。同理,当 e(k ) 0.6 ,定值输出 0.5;当 e(k ) 0.4 ,定值输出 0.2。.当e(k )De(k ) 0或e(k ) M 2 ,说明误差很大,并且在朝着误差绝对值增大方向变化,这时可以考虑由控制器实施较强的控制作用,使得误差绝对值朝减小方向变化,迅速减小误差的绝对值, 控制器的输出为u(k ) = u(k - 1) +
4、k1kpe(k )当e(k )De(k ) 0且e(k ) M 2 ,说明误差一般大,并且在朝着误差绝对值增大的方向变化, 这时可以考虑实施一般的控制作用,扭转误差变化的趋势,使其朝误差绝对值减小的方向变化,控制器的输出为u(k ) = u(k - 1) + k2 kpe(k ).当e(k )De(k ) 0或e(k ) = 0 时,即e(k ) e(k - 1) e(k - 2) 或e(k ) = 0 ,说明误差向着绝对值减小的方向变化或者已经达到平衡状态。此时可以考虑保持控制器输出不变。u(k)= Kp*e(k)+Kd*(e(k)-e(k-1)/ts+Ki*(e(k)+e(k)*ts)。.
5、当e(k )De(k ) 0, De(k )De(k - 1) e(k )且e(k - 1) e(k - 2) 且e(k ) M 2 ,说明误差处于极值状态并且误差绝对值较大,可以考虑实施较强的控制作用,即u(k ) = u(k - 1) + k1k pe(k )当e(k )De(k ) 0, De(k )De(k - 1) 0且e(k ) 0.8%规律一u(k)=0.7;elseif abs(x(1)0.60u(k)=0.5;elseif abs(x(1)0.40 u(k)=0.20;endif (x(1)*x(2)0)|(x(2)=0)%规律二if abs(x(1)=0.1u(k)=u_1
6、+k1*kp*x(1);elseu(k)=u_1+k2*kp*x(1);endendif (x(1)*x(2)0)|(x(1)=0)%规律三u(k)=kp*x(1)+kd*x(2)+ki*x(3);endif (x(1)*x(2)0)&(x(2)*x2_1=0.1u(k)=u_1+k1*kp*x(1);elseu(k)=u_1+k2*kp*x(1);endendif abs(x(1)=10u(k)=10;endif u(k)=-10 u(k)=-10;end%Linear modely(k)=-den(2)*y_1-den(3)*y_2+num(1)*u(k)+num(2)*u_1+num(3
7、)*u_2;%系统的差分方程error(k)=r(k)-y(k);%-Return of parameters%完成叠代u_2=u_1;u_1=u(k); y_2=y_1;y_1=y(k);x(1)=error(k);% Calculating P x2_1=x(2);x(2)=(error(k)-error_1)/ts;% Calculating D x(3)=x(1)+error(k)*ts;% Calculating Ierror_1=error(k); endfigure(1); plot(time,r,b,time,y,r);xlabel(time(s);ylabel(r,y); figure(2);plot(time,r-y,r); xlabel(time(s);ylabel(error);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2