专家PID控制.docx
- 文档编号:1384611
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:18
- 大小:100.35KB
专家PID控制.docx
《专家PID控制.docx》由会员分享,可在线阅读,更多相关《专家PID控制.docx(18页珍藏版)》请在冰豆网上搜索。
专家PID控制
实验一:
专家PID控制
一、实验题目:
3500?
s)Gp(。
采用专家PID一专家系统的传递函数为控制,输入信21.5s?
50s号为阶跃信号,取采样时间为1ms,用MATLAB仿真,画出阶跃响应曲线和误差变化曲线。
二、实验分析:
1、PID控制算法分析
PID是比例(P)、积分(I)、微分(D)控制算法。
但并不是必须同时具备这三种算法,也可以是PD,PI,甚至只有P算法控制。
Kp,Ti,Td三个参数的设定是PID控制算法的关键问题。
一般说来编程时只能设定他们的大概数值,并在系统运行时通过反复调试来确定最佳值。
因此调试阶段程序须得能随时修改和记忆这三个参数。
PID控制算法是实际工业控制中应用最为广泛的控制算法。
它具有控制器设计简单、容易实现、控制效果好、鲁棒性强等特点,是迄今为止最稳定的控制方法。
它所涉及的参数物理意义明确,理论分析体系完整。
2、专家PID控制过程分析:
专家控制(ExpertControl)的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。
利用专家经验来设计PID参数便构成专家PID控制。
对于典型的二阶系统阶跃响应过程作如下分析,根据误差及其变化,可设计专家PID控制器,该控制器可分为五种情况进行设计。
令e(k)表示离散化的当前采样时刻的误差值,e(k-1)、e(k-2)、分别表示前一个和前两个采样时刻的误差值,则有
?
e(k)?
e(k)?
e(k?
1)
?
e(k?
1)?
e(k?
1)?
e(k?
2)
根据误差及其变化,可设计专家PID控制器,该控制器可分为5种情况设计:
e(k)?
M时,实施开环控制。
Ⅰ:
1e(k)?
e(k)?
0且e(k)?
M时由控制器实施较强控制作用,其输出可以为Ⅱ:
当2?
?
?
?
?
?
)ke)?
(2)(k)(e)?
(?
kek)?
(?
ku()uk1?
k()ek1?
kk?
ek?
ek1?
(?
2dip1.
e(k)?
e(k)?
0且e(k)?
M时控制器实施一般的控制作用,其输出为当2?
?
?
?
)?
2e(ke(k?
1)ke(k)?
k?
e(k)?
ku(k)?
u(?
1)?
k?
e(k)?
e(k1)2?
dpiⅢ:
当时,控制器输出不变。
0k)?
e1)?
0或()?
0,e(k)?
e(k?
e(k)?
e(kⅣ:
当时,实施较强控制作用,Mk)?
?
0且e(1,e(k)?
e(k?
)ee(k)?
(k)?
02)kke(?
1)?
ku(k)?
u(kmp1当时,实施较小控制作用,M)?
且e(k))?
e(k?
1?
0(e(k)?
ek)?
0,e(k2)ke()?
kk(k)?
u(k?
1um2p?
?
k)e(时,此时加入积分,减小稳态误差。
Ⅴ:
当式中,—————误差e的第k个极值;)ke(m—-分别为第k次和第k-1次控制器输出;)1(),uk?
u(k=2——————增益放大系数,;1?
kk11=0.6—————增益抑制系数,;1?
0k?
k22——设定的误差界限,,MM?
M?
0.05M2121其中可取0.8,0.4,0.2,0.01四值;M1?
=0.001—————任意小正实数。
三、实验过程:
3500?
)(sGp离散取样,选取采样时间间隔为1ms;1、对传递函数2?
50ss1.52、PID控制算法的关键问题是其三个参数Kp,Ti,Td的设定,选取初始值为:
kp=0.6;ki=0.03;kd=0.01;
3、取阶跃信号;1?
(k)rin4、写出线性模型及当前采样时刻的误差值:
y(k)?
?
den
(2)?
y(k?
1)?
den(3)?
y(k?
2)?
den(4)?
y(k?
3)?
num
(1)?
u(k)?
num
(2)?
u(k?
1)?
num(3)?
u(k?
2)?
num(4)?
u(k?
3)e(k)?
rin(k)?
y(k)
5、循环第3和第4步;
6、通过Matlab仿真出专家PID控制的阶跃响应曲线图和误差响应曲线图。
四、实验结果:
图1阶跃响应曲线
误差响应曲线2图
附录:
仿真程序
%ExpertPIDController
clearall;
closeall;
ts=0.001;
sys=tf(3.5e003,[1.5,50,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;
fork=1:
1:
500
time(k)=k*ts;
rin(k)=1.0;%TracingJieyueSignal
u(k)=kp*x
(1)+kd*x
(2)+ki*x(3);%PIDController
%Expertcontrolrule
ifabs(x
(1))>0.8%Rule1:
Unclosedcontrolfirstly
u(k)=0.45;
elseifabs(x
(1))>0.40
u(k)=0.40;
elseifabs(x
(1))>0.20
u(k)=0.12;
elseifabs(x
(1))>0.01
u(k)=0.10;
end
ifx
(1)*x
(2)>0|(x
(2)==0)%Rule2
ifabs(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)<0&x
(2)*x2_1>0)|(x
(1)==0)%Rule3
u(k)=u(k);
end
ifx
(1)*x
(2)<0&x
(2)*x2_1<0%Rule4
ifabs(x
(1))>=0.05
u(k)=u_1+2*kp*error_1;
else
u(k)=u_1+0.6*kp*error_1;
end
end
ifabs(x
(1))<=0.001%Rule5:
IntegrationseparationPIcontrol
u(k)=0.5*x
(1)+0.010*x(3);
end
%Restrictingtheoutputofcontroller
ifu(k)>=10
u(k)=10;
end
ifu(k)<=-10
u(k)=-10;
end
%Linearmodel
yout(k)=-den
(2)*y_1-den(3)*y_2+num
(1)*u(k)+num
(2)*u_1+num(3)*u_2;
error(k)=rin(k)-yout(k);
%----------ReturnofPIDparameters------------%
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
x
(1)=error(k);%CalculatingP
x2_1=x
(2);
x
(2)=(error(k)-error_1)/ts;%CalculatingD
x(3)=x(3)+error(k)*ts;%CalculatingI
error_1=error(k);
end
figure
(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');
figure
(2);
plot(time,rin-yout,'r');
xlabel('time(s)');ylabel('error');
%FuzzyTunningPIDControl
clearall;
closeall;
a=newfis('fuzzpid');
a=addvar(a,'input','e',[-3,3]);%Parametere
a=addmf(a,'input',1,'NB','zmf',[-3,-1]);
a=addmf(a,'input',1,'NM','trimf',[-3,-2,0]);
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,'PM','trimf',[0,2,3]);
a=addmf(a,'input',1,'PB','smf',[1,3]);
a=addvar(a,'input','ec',[-3,3]);%Parameterec
a=addmf(a,'input',2,'NB','zmf',[-3,-1]);
a=addmf(a,'input',2,'NM','trimf',[-3,-2,0]);
a=addmf(a,'input',2,'NS','trimf',[-3,-1,1]);
a=addmf(a,'input',2,'Z','trimf',[-2,0,2]);
a=addmf(a,'input',2,'PS','trimf',[-1,1,3]);
a=addmf(a,'input',2,'PM','trimf',[0,2,3]);
a=addmf(a,'input',2,'PB','smf',[1,3]);
%Parameterkpa=addvar(a,'output','kp',[-0.3,0.3]);
a=addmf(a,'output',1,'NB','zmf',[-0.3,-0.1]);
a=addmf(a,'output',1,'NM','trimf',[-0.3,-0.2,0]);
a=addmf(a,'output',1,'NS','trimf',[-0.3,-0.1,0.1]);
a=addmf(a,'output',1,'Z','trimf',[-0.2,0,0.2]);
a=addmf(a,'output',1,'PS','trimf',[-0.1,0.1,0.3]);
a=addmf(a,'output',1,'PM','trimf',[0,0.2,0.3]);
a=addmf(a,'output',1,'PB','smf',[0.1,0.3]);
%Parameterkia=addvar(a,'output','ki',[-0.06,0.06]);
a=addmf(a,'output',2,'NB','zmf',[-0.06,-0.02]);
a=addmf(a,'output',2,'NM','trimf',[-0.06,-0.04,0]);
a=addmf(a,'output',2,'NS','trimf',[-0.06,-0.02,0.02]);
a=addmf(a,'output',2,'Z','trimf',[-0.04,0,0.04]);
a=addmf(a,'output',2,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专家 PID 控制
![提示](https://static.bdocx.com/images/bang_tan.gif)