您好,欢迎访问三七文档
实验七线性二次型指标最优控制系统设计一、实验目的1、学习线性二次型指标最优控制系统设计方法。2、完成线性二次型指标最优控制系统设计实践。二、相关知识最优控制系统是指在一定的具体条件下,在完成所要求的控制任务时,系统的某种性能指标具有最优值。根据系统的不同用途,可提出各种不同的性能指标,最优控制的设计就是选择最优控制以使某一种性能指标为最小(或者最优值)。在实际工程应用中,最优控制系统的性能指标通常采用二次型指标。对于状态完全能控的线性连续定常系统,其状态方程为()()()xtxtutAB,x(0)=x0。其输出方程为()()()ytxtutCD,式中:x(t)为n维状态变量;u(t)为p维输入控制变量,且不受约束;A为n×n维状态矩阵,常数矩阵;B为n×p维输入矩阵,常数矩阵;C为m×n维输出矩阵,常数矩阵;D为m×p维输入矩阵,常数矩阵。y(t)为m维输出变量;引入的线性二次型(LinearQuadratic)指标为:TT01[()()()()]d2txtttJxQutRu式中,积分上限为∞,即调节时间tf→∞;Q和R均为正定的对称常数矩阵,实际上分别是对状态量x(t)和控制量u(t)的加权矩阵。根据最优控制理论,使线性二次型指标J(式6.66)取最小值的最优控制*()ut为:*1T()()()tttuKxRBPx式中,1TKRBP为最优反馈增益矩阵;P矩阵为对称常数矩阵;P矩阵可通过求解代数黎卡提(Riccati)方程T1T0PAAPPBRBPQ这时,最优性能指标为*T1(0)(0)2JxPx可见,设计最优控制系统的重要一步就是求解黎卡提(Riccati)方程。线性二次型指标状态反馈最优控制系统结构图如图所示。线性二次型指标J的最优性取决于如何确定加权矩阵Q和R,但这两个矩阵的选择并没有解析方法,只能作定性的选择。一般情况下,对单输入系统,如果2希望输入控制信号u(t)小,则R矩阵的值选择大一些;对多输入系统,如果希望第i个输入控制信号ui(t)小,则R矩阵第i列的值应该选择大一些。如果希望第j个状态变量xj(t)的值小一些,那么相应的就应该把Q矩阵的第j元素取大点,这时最优化功能会迫使该状态变量变小。系统最优控制*()ut为*()()ttuKx,式中,最优反馈增益矩阵1TT()KRBPN式中,对称常数矩阵P满足代数黎卡提(Riccati)方程T1TT()()0PAAPPBNRBPNQ由此解出P矩阵,可得到系统的最优控制。MATLAB提供了求解线性连续系统二次型状态最优控制的函数。其函数是lqr()、lqr2()和lqry()。函数的调用格式为:[K,S,E]=lqr(A,B,Q,R,N)[K,S,E]=lqr2(A,B,Q,R,N)[K,S,E]=lqry(A,B,C,D,Q,R,N)其中A和B均对应系统状态方程中的A和B矩阵;C和D均对应系统输出方程中的C和D矩阵;Q和R均对应线性二次型指标中的Q和R矩阵;N为二次型性能指标中状态量x(t)和控制量u(t)的乘积项的加权矩阵;K和S均分别对应最优控制方程(式6.67)中的K和P矩阵;E为最优控制闭环系统特征方程()0IABK的特征值;函数lqr2()与lqr()类似,只是在该函数中采用了Schar方法,所以具有更强的稳健性。函数lqry()用来求解二次型输出反馈最优控制,是用输出反馈代替状态反馈,把最优控制方程变为*()()ttuKy其性能指标为TT01[()()()()]d2tQttttJyyuRu这种二次型输出反馈控制叫做次优(或准最优)控制。另外,如果用输出y实现反馈控制,则反馈中需要有微分环节,在工程上实现更麻烦些。三、实验内容1.设线性系统的状态方程为010001xxu,试设计使系统线性二次型性能指标TT01[()()()()]d2tttttJxQxuRu。式中,2114Q,R=1/2。取最小时的最优控制*()ut,计算最优状态反馈矩阵K,画出状态反馈最优控制系统结构图。解:根据题意,计算最优状态反馈矩阵K,设计最优控制*()ut的MATLAB程序如下:A=[0,1;0,0];B=[0,1]';%该语句的′号代表求矩阵转置C=[1,0];D=0;Q=[2,1;1,4];R=1/2;3[K,P,E]=lqr(A,B,Q,R)%计算并显示最优状态反馈矩阵K、P矩阵和特征值E上述程序执行后,计算出的最优状态反馈矩阵K为2.03.4641K那么,使系统线性二次型性能指标J取最小的最优控制*()ut为*12()2()3.4641()utxtxt另外,代数黎卡提(Riccati)方程的解P矩阵为2.4641111.7321P闭环系统特征方程的特征值为12.7321,20.7321由自动控制理论,上述特征值均具有负实部,闭环系统是渐近稳定的。根据以上计算,可得到状态反馈最优控制系统结构图如图所示。2.设线性系统的状态方程为0100()001()0()169121tttxxu,输出方程为()[100]()ttyx。使系统线性二次型性能指标T2T03000001[()010()()2()0()]d20011ttttttJxxuxu取最小值。试:(1)计算最优状态反馈矩阵K、代数黎卡提方程的解(即P矩阵)和闭环系统的特征值(即E矩阵);(2)画出状态反馈最优控制系统结构图。解:根据题意,编写MATLAB程序时,[K,P,E]=lqr(A,B,Q,R,N)所需要的入口参数A、B、Q、R、N矩阵分别为01000116912A,001B,30000010001Q,R=1,001NMATLAB程序如下:A=[010;001;-16-9-12];B=[0;0;1];Q=[30000;010;001];R=1;N=[0;0;1];[K,P,E]=lqr(A,B,Q,R,N)上述程序执行后,计算出的最优状态反馈矩阵K为7.57978.59221.6449K4那么,使系统线性二次型指标J取最小的最优控制*()ut为*123()7.5797()8.5922()1.6449()utxtxtxt另外,代数黎卡提(Riccati)方程的解,即对称矩阵P为270.8183113.7437.5797113.743115.46518.59227.57978.59220.6449P闭环系统特征方程的特征值为112.3776,2,30.63371.2262i上述特征值均具有负实部,根据自动控制理论,该闭环系统是渐近稳定的。根据以上计算,可得到状态反馈最优控制系统结构图如图所示。三、实验报告要求1、提交所有仿真结果;2、根据实验结果,判断系统的稳定性。5实验八模糊控制系统仿真实验一、实验目的(1)熟练掌握MATLAB/SIMULINK工具箱的使用;(2)利用MATLAB/SIMULINK与FUZZYTOOLBOX对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用MATLAB实现模糊控制系统仿真的方法。二、相关知识模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,首先将操作人员或专家经验编写成模糊规则,然后将来自传感器的实时信号模糊化,将模糊化的信号作为模糊规则的输入,完成模糊推理,将推力后得到的输出量加到执行器上。MATLAB的模糊逻辑工具箱提供了一个应用模糊逻辑方法处理各种事情的非常方便的工具。具体来说�该工具箱有三种基本的应用方式,命令行函数、图形交互式工具和仿真模块。第一类由函数组成,可以在命令行或者自己的应用程序里调用它们。第二类通过图形用户界面把许多函数集中在一起,形成一个GUI(图形用户界面)开发环境,提供模糊推理系统的设计、分析和应用工具。第三类是一系列的模块,用于在Simulink环境下进行模糊逻辑推理的仿真。MATLAB的模糊逻辑工具箱提供了五个GUI工具,用来建立模糊逻辑推理系统,他们分别是FIS(模糊逻辑推理系统)编辑器、隶属函数编辑器、模糊规则编辑器、规则查看器(ruleviewer)、表面图像查看器(surfaceviewer)。这些图形用户界面都动态的连接着�改变其中一个窗口的设置参数,其他的窗口也会自动的作出相应的改变。模糊控制器设计步骤:1、定义输入输出模糊集对误差e、误差变化ec及控制量u的模糊集及其论域定义如下�e、ec及u的模糊集均为{NB,NM,NS,ZO,PS,PM,PB}e和ec的论域为{-3,-2,-1,0,1,2,3}u的论域为{-4.5,-3,-1.5,0,1.5,3,4.5}2、定义输入输出隶属函数误差e、误差变化ec及控制量u的模糊集及其论域确定后,需对模糊变量确定隶属函数,即对模糊变量赋值,确定论域内元素对模糊变量的隶属度。3、建立模糊控制规则根据人的直觉思维推理,由系统输出的误差及误差变化趋势来设计消除系统误差的模糊控制规则,如表8-1所示,。表中共有49条模糊规则,各个模糊语句之间是“或”的关系。由第一条语句所确定的控制规则可以计算出u1。同理,可以由其余各条语句分别求出控制量u2,…,u49,则控制量为模糊集和U,可表示为6U=u1+u2+…+u494、模糊推理模糊推理是模糊控制的核心,它利用某种模糊推理算法和模糊规则进行推理,得出最终的控制量。5、反模糊化通过模糊推理得到的结果是一个模糊集和。但在实际模糊控制中,必须要有一个确定值才能控制或驱动执行机构。将模糊推理结果转化为精确值的过程称为反模糊化。表8-1模糊控制规则表三、实验内容1、Simulink基础实验:采用Simulink构造如下结构框图,并用示波器(Scope)观测输出响应。图8-1系统结构图2、模糊控制系统matlab仿真实验控制对象为220()2Gsss,位置跟踪信号取阶跃信号,基于MATLAB的模糊控制器仿真步骤如下:(1)在MATLAB的命令窗口输入fuzzy,然后按Enter键,打开FIS编辑窗口,如图8-2所示。FIS编辑器主要是处理模糊推理系统的一些基本问题,例如输入输出变量名,推理函数的选择等。由于本例为二维模糊控制器,因此在菜单Edit|AddVarible设置两个输入变量,一个输出变量,如图8-3所示。(2)选中FIS窗口中的input1,在右下角编辑区域将这个输入变量的名字改为e,用同样的方法把input2(输入变量2)的名字改为ec,把output(输出变量)的名字改为u。这时FIS窗口的状态如图8-4所示。(3)现在开始编辑隶属函数。双击e就可以打开输入变量隶属函数的编辑窗口,每个变量默认的隶属函数缺省是三个。我们可通过Edit|AddMFs来增加隶属函数曲线的类型和数目。若要删除某个隶属函数,先选中这个隶属函数,然后按下Delete键即可。修改e的范围(range)改为(-66),并且将其中的mfs全部删除,7并且点击Edit,ADDMFS…添加七个mfs,分别对应NB(负大)、NM(负中)、NS(负小)、ZO(零)、PS(正小)、PM(正中)、PB(正大)。其中NM、NS、ZO、PS、PM对应曲线类型设置为trimf型,NB对应曲线类型设置为zmf型,而PB对应曲线类型设置为smf型。设置好的窗口如图8-5所示。图8-2编辑器图8-3添加变量图8-4在FIS窗口中设置变量的名字图8-5对输入变量e隶属函数的设置图8-6对输入变量ec隶属函数的设置(4)用同样的方法打开另一个变量的隶属函数编辑窗口。设置七个隶属函数,分8别对,应NB、NM、NS、ZO、PS、PM、PB,对应曲线类
本文标题:实验七及实验八
链接地址:https://www.777doc.com/doc-2458023 .html