倒立摆仿真实验报告(连续、离散)_第1页
倒立摆仿真实验报告(连续、离散)_第2页
倒立摆仿真实验报告(连续、离散)_第3页
倒立摆仿真实验报告(连续、离散)_第4页
倒立摆仿真实验报告(连续、离散)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、倒立摆仿真实验报告倒立摆是一个非线性、不稳定的系统,是经常作为研究比较不同控制方法的典型例子。有许多抽象的控制概念,如控制系统的稳定性、可控性、系统抗干扰能力等,都可以通过倒立摆系统直观地表现出来,倒立摆系统的高阶次,不稳定,多变量,非线性和强耦合等特性,使得许多现代控制理论的研究人员一直将它视为研究对象。倒立摆系统具有3个特性,即:不确定性,耦合性,开环不稳定性。直线型倒立摆系统,是由沿直线导轨运动的小车以及一端固定于小车上的匀质长杆组成的系统,小车可以通过传动装置由交流伺服电机驱动,小车导轨一般有固定的行程,因而小车的运动范围是受到限制的。一阶倒立摆建模在忽略了空气流动阻力,以及各种摩擦之

2、后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图所示M:小车质量;x:小车位置;m:摆杆质量J:摆杆惯量;F:加在小车上的力;l:摆杆转动轴心到杆质心的长度;:摆杆与垂直向上方向的夹角。图1 倒立摆示意图倒立摆的数学模型为我们可以实时量测角度(),并计算出角速度(/s),控制的任务是产生合适的作用力f,以使倒立摆保持直立状态。一 连续模糊控制器1、 论域的正规化首先设定,将,f的实际值分别除以,并加以限幅后,得到正规化的输入输出变量:其中2、 定义模糊几何及其隶属函数对正规化的输入输出变量x,y,z各定义五个模糊集合:NL,NS,Z,PS,PL,分别用,来代表,x,y,z三个变量的模糊集

3、合的隶属函数均是对称,均匀分布,全交迭的三角形,如图2所示。图2 变量的隶属函数 3、设计模糊控制规则集x和y各有五个模糊集合,所以最多有条规则,根据经验只用11条规则即可,如表1所示。表1 倒立摆的模糊控制规则集ZNLNSZPSPLNLNLNSNSZZNLNSZPSPLPSZPSPLPL 4、模糊控制器的设计(1)在MATLAB命令窗口Fuzzy,打开模糊推理系统编辑器(FIS Editor); (2)利用FIS Editor 编辑器的Edit>Add Variable> input 菜单,添加一条输入语言变量,并将两个输入语言变量的名称分别定义为x,y,z;图3 设置输入输出模

4、糊语言 (3)利用FIS Editor 编辑器的Edit>Membership Functions 菜单,打开隶属函数编辑器(MF),将输入语言变量x,y的取值范围(Range)和显示范围(Display Range)设置为-1,1,隶属度函数类型(Type)设置为三角形函数(trimf),而所包含的五条曲线的名称分别为NL,NS,Z,PS,PL,分别代表负大、负小、零、正小、正大,两个输入,一个输出的设置相同;图4 设置输入输出模糊语言 (4)利用编辑器的Edit>Rules菜单,打开模糊规则编辑器(Rules Editor)设置11条模糊控制规则: If x=Z and y=N

5、L ,then z=NL If x=Z and y=NS ,then z=NS If x=PS and y=NS ,then z=Z If x=NL and y=Z ,then z=NL If x=NS and y=Z ,then z=NS If x=Z and y=Z ,then z=Z If x=PS and y=Z ,then z=PS If x=PL and y=Z ,then z=PL If x=NS and y=PS ,then z=Z If x=Z and y=PS ,then z=PSIf x=Z and y=PL ,then z=PL 图5 模糊控制规则设置(5)利用编辑器的

6、File>Save to Workspace,将当前的模糊推理系统保存到工作空间,命名为dlb。(6)建立起模糊推理规则后,由ViewRules和ViewSurface菜单项将分别得出如图所示规则显示图形,由这些图形可以更好地理解建立的模糊推理规则。图6图7(7)在simulink仿真系统中,画出倒立摆模糊控制系统图,设置K1,K2,K3,打开Fuzzy Logic Controller模糊逻辑控制器模块对话框,在其FIS File or Structure 参数对话框输入dlb。图8 倒立摆模糊控制系统图(连续)图9 导入模糊控制器(8)用S-函数描述状态方程,S函数编写见附录1。再将

7、SFunction导入。图10 导入S函数 (9)在Simulink系统中,打开仿真参数设置窗口,正确设置仿真参数,启动仿真,可以看到倒立摆变化曲线。图11 倒立摆连续系统波形图(a)(10)给出两组不同初始状态、看仿真图形变化 当=5、=30时,仿真图形如图11(b)所示。图11 倒立摆连续系统波形图(b)当=5、=50时,仿真图形如图11(c)所示。图11 倒立摆连续系统波形图(c)(11) 改变参数K1、K2、K3,看看3个参数的影响初始状态下给出K1=1/15 K2=1/60 K3=10 波形图如图12所示图12当K2、K3不变时,K1=1/8时,仿真图形如图13(a)所示图13(a)

8、当K2、K3不变时,K1=1/40时,仿真图形如图13(b)所示图13(b)当K1、K3保持初始值不变时,K2=1/20时,仿真图形如图14(a)所示14(a)当K1、K3保持初始值不变时,K2=1/40时,仿真图形如图14(b)所示图14(b)当K1、K2保持初始值不变时,K3=25时,仿真图形如图15(a)所示图15(a)当K1、K2保持初始值不变时,K3=60时,仿真图形如图15(b)所示图15(b)二 离散模糊控制器1、 离散模糊控制器的设计离散论域的模糊控制器的设计包括以下主要步骤:(1) 输入/ 输出变量论域的离散化 e,u都是实数域上的连续变量,在本例中他们的变化范围分别为,。将

9、他们全部变换到离散论域,得到离散论域上的输入/输出变量,。(2) 定义模糊集合及其隶属函数表 对,分别定义7个模糊集合,NL,NM,NS,Z,PS,PM,PL。为方便起见对,的隶属函数表定义相同。如下隶属度,的论域-6-5-4-3-2-10123456NL10.70.20000000000NM0.20.710.70.200000000NS000.10.710.70.1000000Z00000.10.710.70.10000PS00000000.20.710.70.10PM000000000.20.710.70.2PL00000000000.20.71(3) 设计模糊控制规则集NLNMNSZPS

10、PMPLNL××PLPLPLPLPLNMPLPLPMPMPMPMPMNSPLPSPSPSNSNMNMZPMPSPSZNSNMNMPSPMPMPSNSNSNSNLPMNMNMNMNMNMNSNLPLNLNLNLNLNL××(4) 求模糊关系矩阵R和模糊控制表在Matlab中新建M文件,编写M文件计算模糊控制表。M文件编写见附录2。图16 修改离散模糊控制数据2、 建立模型图17 倒立摆系统离散模型仿真波形图为图18 倒立摆离散系统波形图附录一 function sys,x0,str,ts=dlb2(t,x,u,flag)switch flag, case

11、0 sys,x0,str,ts=mdlInitializeSizes(); case 1 sys=mdlDerivatives(t,x,u); case 3 sys=mdlOutputs(x); case 2,4,9 sys=; otherwise error('Unhandled flag=',num2str(flag);end;function sys,x0,str,ts=mdlInitializeSizes()sizes=simsizes;sizes.NumContStates=2;sizes.NumDiscStates=0;sizes.NumOutputs=1;size

12、s.NumInputs=1;sizes.DirFeedthrough=0;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=10;30;str=;ts=0 0;function sys=mdlDerivatives(t,x,u)dx(1)=x(2);dx(2)=(1.1*9.8*sin(x(1)*pi/180)-cos(x(1)*pi/180)*(u+0.1*0.5*(x(2)*pi/180)2*sin (x(1)*pi/180) ) )/(4/3)*1.1*0.5-0.1*0.5*(cos (x(1)*pi/180)2)*180/pi;sys=dx(

13、1);dx(2);function sys=mdlOutputs(x)sys=x(1);附录二Input1_Terms = 1,2,3,4,5,6,7;Input2_Terms = 1,2,3,4,5,6,7;Output_Terms = 1,2,3,4,5,6,7;Input1_Terms_Membership = 0,0,0,0,0,0,0,0,0,0,0.2,0.7,1; 0,0,0,0,0,0,0,0,0.2,0.8,1,0.8,0.2; 0,0,0,0,0,0,0,0.8,1,0.8,0.2,0,0; 0,0,0,0,0,0.5,1,0.5,0,0,0,0,0; 0,0,0.2,0.

14、8,1,0.8,0,0,0,0,0,0,0; 0.2,0.8,1,0.8,0.2,0,0,0,0,0,0,0,0; 1,0.7,0.2,0,0,0,0,0,0,0,0,0,0;Input2_Terms_Membership = Input1_Terms_Membership;Output_Terms_Membership = Input1_Terms_Membership;Rule=0,0,7,7,7,7,7; 7,7,6,6,6,6,6; 7,5,5,5,3,2,2; 6,5,5,4,3,2,2; 6,6,5,3,3,3,1; 2,2,2,2,2,3,1; 1,1,1,1,1,0,0; fo

15、r i=1:169 for j=1:13 R(i,j)=0; end endfor Input1_Terms_Index=1:7 for Input2_Terms_Index=1:7 if (Rule(Input1_Terms_Index,Input2_Terms_Index)=0) Output_Terms_Index=Rule(Input1_Terms_Index,Input2_Terms_Index ); A=Input1_Terms_Membership(Input1_Terms_Index,:); B=Input2_Terms_Membership(Input2_Terms_Inde

16、x,:); C=Output_Terms_Membership(Output_Terms_Index,:); for i=1:13 for j=1:13 R1(i,j)=min(A(i),B(j); end end R2= ;for k=1:13 R2=R2;R1(k,:)'endfor i=1:169 for j=1:13 R3(i,j)=min(R2(i),C(j); endend R=max(R,R3); end endend for Input1_value_index=1:13 for Input2_value_index=1:13 Input1_value_membersh

17、ip=Input1_Terms_Membership(:,Input1_value_index); Max_Input1_value,Max_Input1_index=max(Input1_value_membership); Ad=Input1_Terms_Membership(Max_Input1_index,:); Input2_value_membership=Input2_Terms_Membership(:,Input2_value_index); Max_Input2_value,Max_Input2_index=max(Input2_value_membership); Bd=Input2_Terms_Membership(Max_Input2_index,:);for i=1:13 for j=1:13

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论