1智能控制.docx
- 文档编号:5918687
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:28
- 大小:254.18KB
1智能控制.docx
《1智能控制.docx》由会员分享,可在线阅读,更多相关《1智能控制.docx(28页珍藏版)》请在冰豆网上搜索。
1智能控制
专家PID控制系统Matlab仿真
摘要:
分析了一个速度控制器的控制仿真。
其传递函数为:
使用专家PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶跃响应曲线和误差变化曲线。
0引言
专家控制(ExpertControl)的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。
利用专家经验来设计PID参数便构成专家PID控制。
典型的二阶系统单位阶跃响应误差曲线如图1、2所示。
对于典型的二阶系统阶跃响应过程作如下分析,根据误差及其变化,可设计专家PID控制器,该控制器可分为五种情况进行设计。
1设计
根据误差及其变化,可设计专家PID控制器,该控制器可分为以下五种情况进行设计:
(1)当
时,说明误差的绝对值已经很大,不论误差变化趋势如何,都应考虑控制器的输出应按最大〔或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。
此时,它相当于实施开环控制。
(2)当
时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。
此时,如果
,说明误差也较大,可考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小误差的绝对值。
此时,如果
,说明尽管误差朝绝对值增大方向变化,但误差绝对值本身并不很大,可考虑控制器实施一般的控制作用,只要扭转误差的变化趋势,使其初误差绝对值减小方向变化。
(3)当
,
或
时,说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态。
此时,可考虑采取保持控制器输出不变。
(4)当
,
时,说明误差处于极值状态。
如果此时误差的
绝对值较大,可考虑实施较强的控制作用。
(5)当
时,说明误差的绝对值很小,此时加入积分,减少稳态误差。
2仿真图
图1阶跃响应曲线
图2误差曲线
3程序
%ExpertPIDController
clearall;
closeall;
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;
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-den(4)*y_3+num
(1)*u(k)+num
(2)*u_1+num(3)*u_2+num(4)*u_3;
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');
参考文献:
[1]董海鹰.智能控制理论及应用[M].中国铁道出版社:
北京.2006,47-48(页)
模糊PID控制系统Matlab仿真
摘要:
分析了一个速度控制器的控制仿真。
其传递函数为:
使用模糊PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶跃响应曲线和误差变化曲线。
0引言
模糊PID控制算法以误差E和Ec为输入,利用模糊控制规则在线对PID参数进行修改,以满足不同时刻的E和Ec对PID参数的要求,输出为Kp,Ki,Kd。
图1模糊控制原理图
该模糊推理控制系统是一个两输入三输出的形式,输入变量为E和Ec,输出变量为Kp,Ki和Kd,其调整原则为:
(1)当误差|E|较大时,为使系统具有较好的快速跟踪性能,不论误差的变化趋势如何,都应该取较大的Kp和较小的Kd,同时为避免系统响应出现较大的超调,应对积分作用加以限制,取较小的Ki值。
(2)当误差|E|处于中等大小时,为使系统响应具有较小的超调,Kp应取得小些,同时为保证系统的响应速度,Ki和Kd的大小要适中,其中Kd的取值对系统响应的影响较大。
(3)当误差|E|较小时,为保证系统具有较好的稳态性能,Kp和Ki应取得大些,同时为避免系统在设定值附近出现振荡,并考虑系统的抗干扰性能,当|E|较小时,Kd可取大些;当|E|较大时,Kd应取小些。
1建立控制规则表
输入变量E,Ec和Kd语言值的模糊子集取为{负大,负中,负小,零,正小,正中,正大},并简记为{NB,NM,NS,ZO,PS,PM,PB},论域为{-3,-2,-l,0,1,2,3}。
Ki论域为{-0.06,-0.04,-0.02,0,0.02,0.04,0.06},Kp论域为{-0.3,-0.2,-0.l,0,0.1,0.2,0.3}。
隶属函数采用三角形函数,
根据对已有控制系统设计经验的总结,得到PID三个控制参数的模糊控制规则表,见表1~表3。
表1Kp的模糊规则表
e
Δkp
de
NB
NM
NS
ZO
PS
PM
PB
NB
PB
PB
PM
PM
PS
ZO
ZO
NM
PB
PB
PM
PS
PS
ZO
NS
NS
PM
PM
PM
PS
ZO
NS
NS
ZO
PM
PM
PS
ZO
NS
NM
NM
PS
PS
PS
ZO
NS
NS
NM
NM
PM
PS
ZO
NS
NM
NM
NM
NB
PB
ZO
ZO
NM
NM
NM
NB
NB
注:
NB、NM、NS、ZO、PS、PM、PB分别表示负大、负中、负小、零、正小、正中、正大。
表2Ki的模糊规则表
e
Δki
de
NB
NM
NS
ZO
PS
PM
PB
NB
NB
NB
NM
NM
NS
ZO
ZO
NM
NB
NB
NM
NS
NS
ZO
ZO
NS
NB
NM
NS
NS
ZO
PS
PS
ZO
NM
NM
NS
ZO
PS
PM
PM
PS
NM
NS
ZO
PS
PS
PM
PB
PM
ZO
ZO
PS
PS
PM
PB
PB
PB
ZO
ZO
PS
PM
PM
PB
PB
表3Kd的模糊规则表
e
Δkd
de
NB
NM
NS
ZO
PS
PM
PB
NB
PS
NS
NB
NB
NB
NM
PS
NM
PS
NS
NB
NM
NM
NS
ZO
NS
ZO
NS
NM
NM
NS
NS
ZO
ZO
ZO
NS
NS
NS
NS
NS
ZO
PS
ZO
ZO
ZO
ZO
ZO
ZO
ZO
PM
PB
NS
PS
PS
PS
PS
PB
PB
PB
PM
PM
PM
PS
PS
PB
2仿真结果
图2ki的隶属度函数曲线
图3kp的隶属度函数曲线
图4ec的隶属度函数曲线
图5e的隶属度函数曲线
图6kd的曲线
图7ki的曲线
图7kp的曲线
图8u的输出曲线
图9e的曲线
图10阶跃响应的曲线
图11规则输入输出
3输出49条规则
ans=
1.If(eisNB)and(ecisNB)then(kpisPB)(kiisNB)(kdisPS)
(1)
2.If(eisNB)and(ecisNM)then(kpisPB)(kiisNB)(kdisNS)
(1)
3.If(eisNB)and(ecisNS)then(kpisPM)(kiisNM)(kdisNB)
(1)
4.If(eisNB)and(ecisZ)then(kpisPM)(kiisNM)(kdisNB)
(1)
5.If(eisNB)and(ecisPS)then(kpisPS)(kiisNS)(kdisNB)
(1)
6.If(eisNB)and(ecisPM)then(kpisZ)(kiisZ)(kdisNM)
(1)
7.If(eisNB)and(ecisPB)then(kpisZ)(kiisZ)(kdisPS)
(1)
8.If(eisNM)and(ecisNB)then(kpisPB)(kiisNB)(kdisPS)
(1)
9.If(eisNM)and(ecisNM)then(kpisPB)(kiisNB)(kdisNS)
(1)
10.If(eisNM)and(ecisNS)then(kpisPM)(kiisNM)(kdisNB)
(1)
11.If(eisNM)and(ecisZ)then(kpisPS)(kiisNS)(kdisNM)
(1)
12.If(eisNM)and(ecisPS)then(kpisPS)(kiisNS)(kdisNM)
(1)
13.If(eisNM)and(ecisPM)then(kpisZ)(kiisZ)(kdisNS)
(1)
14.If(eisNM)and(ecisPB)then(kpisNS)(kiisZ)(kdisZ)
(1)
15.If(eisNS)and(ecisNB)then(kpisPM)(kiisNB)(kdisZ)
(1)
16.If(eisNS)and(ecisNM)then(kpisPM)(kiisNM)(kdisNS)
(1)
17.If(eisNS)and(ecisNS)then(kpisPM)(kiisNS)(kdisNM)
(1)
18.If(eisNS)and(ecisZ)then(kpisPS)(kiisNS)(kdisNM)
(1)
19.If(eisNS)and(ecisPS)then(kpisZ)(kiisZ)(kdisNS)
(1)
20.If(eisNS)and(ecisPM)then(kpisNS)(kiisPS)(kdisNS)
(1)
21.If(eisNS)and(ecisPB)then(kpisNS)(kiisPS)(kdisZ)
(1)
22.If(eisZ)and(ecisNB)then(kpisPM)(kiisNM)(kdisZ)
(1)
23.If(eisZ)and(ecisNM)then(kpisPM)(kiisNM)(kdisNS)
(1)
24.If(eisZ)and(ecisNS)then(kpisPS)(kiisNS)(kdisNS)
(1)
25.If(eisZ)and(ecisZ)then(kpisZ)(kiisZ)(kdisNS)
(1)
26.If(eisZ)and(ecisPS)then(kpisNS)(kiisPS)(kdisNS)
(1)
27.If(eisZ)and(ecisPM)then(kpisNM)(kiisPM)(kdisNS)
(1)
28.If(eisZ)and(ecisPB)then(kpisNM)(kiisPM)(kdisZ)
(1)
29.If(eisPS)and(ecisNB)then(kpisPS)(kiisNM)(kdisZ)
(1)
30.If(eisPS)and(ecisNM)then(kpisPS)(kiisNS)(kdisZ)
(1)
31.If(eisPS)and(ecisNS)then(kpisZ)(kiisZ)(kdisZ)
(1)
32.If(eisPS)and(ecisZ)then(kpisNS)(kiisPS)(kdisZ)
(1)
33.If(eisPS)and(ecisPS)then(kpisNS)(kiisPS)(kdisZ)
(1)
34.If(eisPS)and(ecisPM)then(kpisNM)(kiisPM)(kdisZ)
(1)
35.If(eisPS)and(ecisPB)then(kpisNM)(kiisPB)(kdisZ)
(1)
36.If(eisPM)and(ecisNB)then(kpisPS)(kiisZ)(kdisPB)
(1)
37.If(eisPM)and(ecisNM)then(kpisZ)(kiisZ)(kdisPS)
(1)
38.If(eisPM)and(ecisNS)then(kpisNS)(kiisPS)(kdisPS)
(1)
39.If(eisPM)and(ecisZ)then(kpisNM)(kiisPS)(kdisPS)
(1)
40.If(eisPM)and(ecisPS)then(kpisNM)(kiisPM)(kdisPS)
(1)
41.If(eisPM)and(ecisPM)then(kpisNM)(kiisPB)(kdisPS)
(1)
42.If(eisPM)and(ecisPB)then(kpisNB)(kiisPB)(kdisPB)
(1)
43.If(eisPB)and(ecisNB)then(kpisZ)(kiisZ)(kdisPB)
(1)
44.If(eisPB)and(ecisNM)then(kpisZ)(kiisZ)(kdisPM)
(1)
45.If(eisPB)and(ecisNS)then(kpisNM)(kiisPS)(kdisPM)
(1)
46.If(eisPB)and(ecisZ)then(kpisNM)(kiisPM)(kdisPM)
(1)
47.If(eisPB)and(ecisPS)then(kpisNM)(kiisPM)(kdisPS)
(1)
48.If(eisPB)and(ecisPM)then(kpisNB)(kiisPB)(kdisPS)
(1)
49.If(eisPB)and(ecisPB)then(kpisNB)(kiisPB)(kdisPB)
(1)
4程序:
%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]);
a=addvar(a,'output','kp',[-0.3,0.3]);%Parameterkp
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]);
a=addvar(a,'output','ki',[-0.06,0.06]);%Parameterki
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,'PS','trimf',[-0.02,0.02,0.06]);
a=addmf(a,'output',2,'PM','trimf',[0,0.04,0.06]);
a=addmf(a,'output',2,'PB','smf',[0.02,0.06]);
a=addvar(a,'output','kd',[-3,3]);%Parameterkp
a=addmf(a,'output',3,'NB','zmf',[-3,-1]);
a=addmf(a,'output',3,'NM','trimf',[-3,-2,0]);
a=addmf(a,'output',3,'NS','trimf',[-3,-1,1]);
a=addmf(a,'output',3,'Z','trimf',[-2,0,2]);
a=addmf(a,'output',3,'PS','trimf',[-1,1,3]);
a=addmf(a,'output',3,'PM','trimf',[0,2,3]);
a=addmf(a,'output',3,'PB','smf',[1,3]);
rulelist=[1171511;
1271311;
1362111;
1462111;
155311
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制