毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

matlab模糊控制倒立摆控制系统设计仿真 第5页

更新时间:2010-11-2:  来源:毕业论文
matlab模糊控制倒立摆控制系统设计仿真 第5页
图5-1   、 (即θ,ω)的模糊隶属度曲线
针对这九个不同的区域,对倒立摆模型进行局部线性化,可以得到倒立摆的模糊模型。这里有五个线性化方程,模糊规则为
If  为ZR and  为ZR  then 
If  为ZR and  为NG或PO  then 
If  为NG或PO and  为ZR  then 
If  为PO and  为PO  then 
If  为NG and  为NG  then 
If  为PO and  为NG  then 
If  为NG and  为PO  then 
其中
               
              
               
          
         
以x和u作为输入,可以建立倒立摆系统的模糊模型,供进一步仿真之用。
对于每个栅格区域选择期望的闭环极点(-4±j5.457),这相当于10%的超调量和1秒的过渡过程。每个子系统采用u=-Fx的反馈控制,据此可以得到这五个子系统的反馈增益矩阵F:
参照倒立摆的模糊建模过程,可以设计模糊控制器,其模糊规则为
If  为ZR and  为ZR  then 
If  为ZR and  为NG或PO  then 
If  为NG或PO and  为ZR  then 
If  为PO and  为PO  then 
If  为NG and  为NG  then  
If  为PO and  为NG  then 
If  为NG and  为PO  then 
MATLAB程序如下:
%Sugeno型模糊控制器设计
%
%模糊控制器设计
clear
tc=newfis('tc','sugeno');
tc=addvar(tc,'input','theta',[-pi pi]);
tc=addmf(tc,'input',1,'NG','gaussmf',[1.2 -3]);
tc=addmf(tc,'input',1,'ZR','gaussmf',[1.2 0]);
tc=addvar(tc,'input',1,'omega',[-5 5]);
tc=addmf(tc,'input',2,'NG','gaussmf',[1.8 -5]);
tc=addmf(tc,'input',2,'ZR','gaussmf',[1.8 0]);
tc=addmf(tc,'input',2,'PO','gaussmf',[1.8 5]);
tc=addvar(tc,'output','u',[-2 2]);
tc=addmf(tc,'output',1,'No.1','linear',[-357.4135 -45.3333 o]);
tc=addmf(tc,'output',1,'No.2','linear',[-341.4135 -45.3333 o]);
tc=addmf(tc,'output',1,'No.3','linear',[-662.5861 -102.6667 o]);
原文请找腾讯752018766;辣/文-论~文'网http://www.751com.cn
1 3 5 1 1;
2 1 2 1 1;
2 2 1 1 1;
2 3 2 1 1;
3 1 5 1 1;
3 2 3 1 1;
3 3 4 1 1;]
tc=addrule(tc,rulelist);
%系统的模糊建模
model=newfis('model','sugeno');
model=addvar(model,'input','theta',[-pi pi]);
model=addmf(model,'input',1,'NG','gaussmf',[1.2 -3]);
model=addmf(model,'input',1,'ZP','gaussmf',[1.2 0]);
model=addmf(model,'input',1,'PO','gaussmf',[1.2 3]);
model=addvar(model,'input','omega',[-5 5]);
model=addmf(model,'input',2,'NG','gaussmf',[1.8 -5]);
model=addmf(model,'input',2,'ZR','gaussmf',[1.8 0]);
model=addmf(model,'input',2,'PO','gaussmf',[1.8 5]);
model=addvar(model,'input','u',[-5 5]);
model=addmf(model,'input',3,'Any','gaussmf',[1.5 -5]);
model=addvar(model,'output','d_theta',[-2 2]);
model=addmf(model,'output',1,'No.1','linear',[0 1 0 0]);
model=addmf(model,'output',1,'No.2','linear',[0 1 0 0]);
model=addmf(model,'output',1,'No.3','linear',[0 1 0 0]);
model=addmf(model,'output',1,'No.4','linear',[0 1 0 0]);
model=addmf(model,'output',1,'No.5','linear',[0 1 0 0]);
model=addvar(model,'output','d_omega',[-2 2]);
model=addmf(model,'output',2,'No.1','linear',[17.2941 0 -0.1765 0]);
model=addmf(model,'output',2,'No.2','linear',[14.4706 0 -0.1765 0]);
model=addmf(model,'output',2,'No.3','linear',[5.8512 0 -0.0799 0]);
model=addmf(model,'output',2,'No.4','linear',[7.2437 0.5399 -0.0779 0]);
model=addmf(model,'output',2,'No.5','linear',[7.2437 -0.5399 -0.0779 0]);
rulelist1=[1 1 0 4 4 1 1;
1 2 0 3 3 1 1;
1 3 0 5 5 1 1;
2 1 0 2 2 1 1;
2 2 0 1 1 1 1;
2 3 0 2 2 1 1;
3 1 0 5 5 1 1;
3 2 0 3 3 1 1;
3 3 0 4 4 1 1];
Model=addrule(model,rulelist1);
%系统仿真
N=500;h=0.005;
X=[1.309;0];
y=zeros(2,N);
u=zeros(1,N);
for k=2:N
u(k)=(-1)*evalfis([x(1),x(2)],tc);
k0=evalfis([x(1),x(2),u(k)],model)';
x1=x+h*k0/2;
k0=evalfis([x1(1),x1(2),u(k)],model)';
x1=x+h*k0/2;
k0=evalfis([x1(1),x1(2),u(k)],model)';

上一页  [1] [2] [3] [4] [5] 

matlab模糊控制倒立摆控制系统设计仿真 第5页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。