TAIYUANUNIVERSITYOFSCIENCE&TECHNOLOGY题目:院(系):专业:学生姓名:学号:模糊控制在倒立摆中的仿真应用1、倒立摆系统1.1简介倒立摆有许多类型,例如图1-1的a和b所示的分别是轮轨式一级倒立摆系统和二级倒立摆系统的模型。倒立摆是一个典型的快速、多变量、非线性、本质不稳定系统,它对倒置系统的研究在理论上和方法论上具有深远的意义。对倒立摆的研究可归结为对非线性多变量本质不稳定系统的研究,其控制方法和思路在处理一般工业过程中也有广泛的用途。近些年来国内外不少专家学者对一级、二级、三级、甚至四级等倒立摆进行了大量的研究,人们试图寻找不同的控制方法实现对倒立摆的控制,以便检查或说明该方法的严重非线性和本质不稳定系统的控制能力。2002年8月11日,我国的李洪兴教授在国际上首次成功实现了四级倒立摆实物控制,也标志着我国学者采用自己提出的控制理论完成的一项具有原创性的世界领先水平的重大科研成果。图1-1倒立摆模型(a)一级倒立摆模型(b)二级倒立摆模型倒立摆系统可以简单地描述为小车自由地在限定的轨道上左右移动。小车上的倒立摆一端用铰链安装在小车顶部,另一端可以在小车轨道所在的垂直平面内自由转动,通过电机和皮带传动使小车运动,让倒立摆保持平衡并保持小车不和轨道两端相撞。在此基础上在摆杆的另一端铰链其它摆杆,可以组成二级、三级倒立摆系统。该系统是一个多用途的综合性试验装置,它和火箭的飞行及步行机器人的关节运动有许多相似之处,其原理可以用于控制火箭稳定发射、机器人控制等诸多领域。1.2倒立摆系统控制原理单级倒立摆系统的硬件包括下面几个部分:计算机、运动控制卡、伺服系统、倒立摆和测量元件,由它们组成的一个闭环系统,如图1-2所示,就是单级倒立摆系统的硬件结构图。图1-2单级倒立摆硬件结构图通过角度传感器可以测量摆杆的角度,通过位移传感器可以得到小车的位置,然后反馈给运动控制卡,运动控制卡与计算机双向通信。计算机获得实时数据,确定控制策略,发送到运动控制卡,运动控制卡执行计算机确定的控制策略,产生相应的控制量,由伺服电机转动来带动小车在水平轨道往复的运动,使摆杆保持倒立。1.3倒立摆系统状态方程图1-3单级倒立摆模型图θ为杆与垂线的夹角,f为作用力,杆的质量m=0.1kg,杆和小车的总重量m=1.1kg,半杆长l=0.5m,重力加速度g=9.8m/s2,采样周期T=0.02s.倒立摆的数学模型为:180cos)3/4(]sin)180/([cossin22lmmllmfmgpp(式1.1)θf我们可以实时量测角度θ,并计算出角速度,控制的任务是产生合适的作用力f,以使倒立摆保持直立状态。采用C-FC的控制系统如图1-4图1-4倒立摆模糊控制系统2、模糊控制2.1简介众所周知,人类的思维是极其粗略的,语言表达是模糊的,它的逻辑是定性的,因此“模糊概念”更适合于人们地观察、思维、理解与决策,这也更适合于客观现象和事物的模糊性(fuzzienss)。于是由此便产生了模糊数学和模糊控制的概念。模糊数学和模糊控制的概念由美国加利福尼亚大学著名教授查得(L.A.Zadeh)在他的《FuzzySets》、《FuzzyAlgorithm))和《ARetionnaleforFuzzyControl》心著名论著中首先提出。1972年2月,日本以东京工业大学为中心,发起成立“模糊系统研究会”,1973年公开使用了“模糊工程”这一名词。从那以后,模糊控制理论在全世界范围内迅速蔓延。尽管模糊集理论的提出至今只有30年,但是其发展迅速。历年来在模糊理论与算法、模糊推理、工业控制应用、模糊硬件与系统集成,以及稳定性理论研究等方面,发表了很多对模糊控制理论和模糊系统的研究和发展有重大促进意义的论文。80年代以来,自动控制系统被控对象的复杂化,它不仅表现在控制系统具有多输入一多输出的强耦合性、参数时变性和严重的非线性特性,更突出的是从系统对象所能获得的知识信息量相对地减少,以及与此相反地对控制性能的要求却日益高度化。然而“当一个系统复杂性增大时,人们能使它精确化地能力将降低,当达到一定的阐值时,复杂性和精确性将相互排斥”(即“不相容原理”)。也就是说,在多变量、非线性、时变的大系统中,系统的复杂性与人类要求的精确性之间形成了尖锐矛盾。因此,要想精确地描述复杂对象与系统的任何物理现象和运动状态,实际上己经是不可能的。关键的是如何使准确和简明之间取得平衡,而使问题的描述具有实际意义。这种描述的模糊性对问题的求解并非有害,却能高效率地对复杂事物作出正确无误的判断和处理。因此模糊控制理论的研究和应用在现代控制领域中有着重要的地位和意义。经典控制理论首先被使用线性小规模系统的自动化领域,然而随着计算机技术的发展,现代控制理论在大规模线性多变量系统也得到应用。但是对于非线性复杂系统,这些控制策略却难以适用,它不仅算法极其复杂,而且无望获得满意的结果。今年来,采用专家知识的人工智能和智能信息处理技术,虽然引起了人们的重视,但它不能作为模拟控制,且其知识库庞大,设计也十分困难。模糊控制不仅适用于小规模线性单变量系统,而且逐渐向大规模、非线性复杂系统扩展,从己经实现的控制系统来看,它具有易于熟悉、输入量连续、可靠性高、能发挥熟练专家操作的良好自动化效果等优点。至今,世界上研究“模糊”的学者己经越来越多,研究的范围从单纯的模糊数学到模糊理论应用、模糊系统及其硬件集成。与知识工1K2KS模糊化模糊推理输入的隶属函数控制规则集解模糊输出的隶属函数倒立摆3K程和控制方面有关的研究有模糊建模理论、模糊序列、模糊识别、模糊知识库、模糊语言规则、模糊近似推理等。近年来,已经将神经网络和模糊技术互相结合,取长补短,形成一种模糊神经网络技术,由此可以组成一种更接近人脑的智能信息处理系统其发展前景十分广阔。我国模糊控制理论及其应用方面的研究工作是从1979年开始的,至今己有20多年的时间,大多数是在著名的高等院校和研究所中进行理论研究,如对模糊控制系统的结构、模糊推理算法、自学习或自组织模糊控制器,以及模糊控制稳定性等问题的研究,而其成果应用主要集中于工业炉窑方面,如退火炉、电弧冶炼炉、水泥窑以及造纸机的控制等。2.2模糊控制理论的基本概念模糊控制是基于模糊数学的理论知识,模仿人类大脑的思维方式,识别和判断模糊现象的。通过模糊推理得到精确的控制量,实现对被控对象的控制。关于模糊控制的基本概念:1)论域论域是指所研究的事物的范围或全部的研究对象。论域中的事物称为个体,具有某种特定属性的全部事物可以称为集合,一部分个体组成的集合称为子集。2)隶属函数由某种特定的属性形成的集合A,它的论域为U,在康托创立的经典集合理论中,把属于集合A的元素u的特征函数值定义为1,把不属于集合A的元素u的特征函数值定义为0.3)模糊推理模糊推理是以模糊逻辑为基础的,它是一种不确定性推理方法。当推理判断具有模糊性时,称之为模糊推理。在这个过程中,推理判断的依据称为模糊控制律。假设集合A是论域U上的模糊子集,集合B和集合C是论域Y上的模糊子集,则模糊推理可以用下面的条件语句表示:Ifx=ATheny=Belsey=c该条件语句可以表示为从论域U到论域Y的一个模糊关系R,可表示为:此时,隶属函数为:2.3模糊控制原理如图2-1所示表示模糊控制的基本原理,模糊控制器是模糊控制的核心部分。通过传感器采样,计算机可以获得被控量的精确值,然后把精确值与给定值作出比较,得到误差信号,误差信号通常可以作为模糊控制器的输入量。首先把精确的误差信号值模糊化,得到误差信号的模糊子集,然后通过模糊控制规律进行模糊推理,得到一个模糊的控制量,接着把模糊的控制量进行解模糊处理,得到精确的数字控制量,经D/A转换输入到执行机构,实现对被控对象的控制。图2-1模糊控制原理框图如图2-2所示是模糊控制器的组成部分,它包括输入量模糊化接口、知识库、模糊推理机和解模糊化接口四个部分图2-2模糊控制器结构图1)模糊化接口系统的输入量通常是一个精确值,必须由模糊化接口处理之后,才能适用于模糊控制器的求解。因此模糊化接口实际上是模糊控制器的输入接口,它的作用是把精确的输入量转化为一个模糊量。对于模糊变量e,通常可以将它的模糊子集划分为a)e={负,零,正}={N,Z,P}b)e={负大,负小,零,正小,正大}={NB,NS,Z,PS,PB}c)e={负大,负中,负小,零,正小,正中,正大}={NB,NM,NS,Z,PS,PM,PB}2)知识库知识库是由数据库和规则库构成。输入变量和输出变量的模糊子集的隶属度值都存放在数据库中;规则库用来存储所有的模糊控制规则,为模糊推理机推理时提供控制律。,3)模糊推理机模糊控制量是由模糊推理机得到的,它是根据输入模糊量,由模糊控制规则推理得到的。目前模糊推理方法很多,常用的有Mamdani推理法、Larsen推理法、Zadel推理法等4)解模糊接口模糊推理得到的结果通常是一个模糊量,不能直接作为控制量作用到被控系统上。因此,需要把它转换为一个可以被执行机构识别的精确值,该过程就叫做解模糊。通常采用的解模糊方法也有很多种,例如重心法、最大隶属度法、加权平均法、中位数法等.3、倒立摆在仿真中的应用3.1连续的模糊控制3.1.1S函数function[sys,x0,str,ts]=whatisit(~,x,u,flag)switchflagcase0[sys,x0,str,ts]=mdlInitializeSizes;case1sys=mdlDerivatives(x,u);case3sys=mdlOutputs(x);case{2,4,9}sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizes()sizes=simsizes;sizes.NumContStates=2;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=1;sizes.DirFeedthrough=0;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=[10;10];str=[];ts=[00];functionsys=mdlDerivatives(x,u)sys(1,1)=x(2);sys(2,1)=(10.78*sin((x(1)*pi)/180)-cos(x(1)*pi/180)*(u+0.05*(x(2)*pi/180)^2*sin(x(1)*pi/180)))/((4/3)*0.55-0.05*(cos(x(1)*pi/180))^2)*180/pi;functionsys=mdlOutputs(x)sys=x(1);3.1.2simulink模块图图3.1仿真模块图将设置好的模糊规则放进模块fuzzylogiccontroller,编写好的s函数放进模块s-function中。3.1.3模糊控制规则图3.2模糊控制图3.3输入x的隶属函数和论域图3.4输入y的隶属函数和论域图3.5输出z的隶属函数和论域图3.6模糊控制规则3.1.4输出波形图3.7输出波形输出波形显示了在小车前端施加的作用力的变化情况3.2离散的模糊方法3.2.1S函数function[sys,x0,str,ts]=lisan1(t,x,u,flag)switchflag,case0[sys,x0,str,ts]=mdlInitializeSizes();case1sys=mdlDerivatives(t,x,u);case3sys=mdlOutputs(x);case{2,4,9}sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);end;function[sys,x0,str,ts]=mdlInitializeSize