文档详情

鲁棒控制大作业

人***
实名认证
店铺
DOC
282.50KB
约8页
文档ID:478949551
鲁棒控制大作业_第1页
1/8

一、鲁棒控制概述鲁棒控制(Robust Control)的研究始于20世纪50年代所谓“鲁棒性”,是指控制系统在一定的参数摄动下,维持某些性能的特性根据对性能的不同定义,可以分为稳定鲁棒性和性能鲁棒性以闭环系统的鲁棒性作为目标设计得到的固定控制器成为鲁棒控制器由于工作情况变动、外部干扰以及建模误差的缘故,实际工业过程的精确模型很难得到,而系统的各种故障也将导致模型的不确定性,因此可以说模型的不确定性在控制系统中广泛存在如何设计一个固定的控制器,使具有不确定性的对象满足控制品质,也就是鲁棒控制,成为国内科研人员的研究课题鲁棒控制的早期研究,主要针对单变量系统(SISO)在微小摄动下的不确定性,具有代表性的是Zames提出的微分灵敏度分析然而,实际工业过程中故障导致系统中参数的变化,这种变化是有界扰动而不是无穷小摄动因此产生了以讨论参数在有机摄动下系统性能保持和控制为内容的现代鲁棒控制现代鲁棒控制是一个着重控制算法可靠性研究的控制器设计方法其设计目标是找到在实际环境中为保证安全要求控制系统最小必须满足的要求一旦设计好这个控制器,它的参数不能改变而且控制性能能够保证主要的鲁棒控制理论有:(1)Kharitonov区间理论;(2)控制理论;(3)结构奇异值理论(μ理论)等等。

二、鲁棒控制理论鲁棒控制理论是在空间(即Hardy空间),通过某些性能指标的无穷范数优化而获得具有鲁棒性能的控制器的一种控制理论它的基本思想是:当利用研究对象的数学模型G来设计控制器时由于参数的不确定性与变化性以及人们为了便于设计与计算往往把对象的模型简化使得对象的数学模型G存在误差控制的目的为:当存在模型误差时如何利用名义模型G来设计控制器K,使得K在稳定被控对象的同时使某一目标函数S的范数最小 控制方法引入输出灵敏度函数作为系统评价的指标,主要考虑了这样的一个设计问题,即要求设计一个控制器,不但使得闭环系统稳定,而且在可能发生“最坏扰动”的情况下,使系统误差在无穷范数意义下达到极小,从而将干扰问题转化为求解闭环系统稳定的问题传递函数的范数描述了输入有限能量到输出能量的最大增益,如果能使其达到最小,那么干扰对系统误差的影响将会降到最低程度许多实际的控制问题,如灵敏度极小化问题、鲁棒稳定问题、混合灵敏度优化问题、跟踪问题、模型匹配问题等,都可以归结为标准控制问题来研究标准控制问题如图1所示图1 标准控制问题P(s)是一个线性是不变系统,由以下的状态空间描述: 其中,是状态向量,是控制输入,是测量输出,,是外部扰动,这里考虑的外部扰动是不确定的,但具有有限能量,即,为需要设计的控制器。

用状态空间方程表示的传递函数矩阵的实现形式为 输入输出关系可以描述为 本文的主要问题就是设计一个控制器 ,使得闭环系统满足以下的性质:l 闭环系统是内部稳定的,即闭环系统状态矩阵的所有特征值均在左半开复平面中l 从扰动输入到被调输出地闭环传递函数的范数小于1,即 具有这样性质的控制器成为图1系统的一个控制器通过将系统模型中的系数矩阵分别乘以一个合适的常数,可以使得闭环系统具有给定的性能,即使得的控制问题转化为使得的标准控制问题具有给定性能的控制器称为系统(图1)的-次优控制器进一步,通过对的搜索,可以求取使得闭环系统的扰动抑制度最小化的控制器,这样的控制问题称为图1系统的最优控制问题,由最优控制问题得到的控制器称为系统的最优控制器控制分为状态反馈和输出反馈两种情况三、应用matlab进行鲁棒控制器设计在实际的工程应用中,按照传统的方法进行鲁棒控制器设计是很困难的,因为计算量非常大,过程很繁琐而且用到的数学工具也比较艰深,所以在高性能计算机出现以前,工程技术人员要将鲁棒控制理论应用于实际工程中是非常困难的。

现在高性能微机的普及使许多软件包相继面世如美国MathWork公司开发的matlab软件中的鲁棒控制工具 箱;Integrated System公司开发Matrixx的软件包以及Xmath软件包等这些软件包的研制成功使鲁棒控制理论成为真正实用的工程设计理论本文使用MathWork公司开发的Matlab软件中的鲁棒控制工具箱进行鲁棒控制器设计,从而大大减小了复杂的计算量下面对文中用到的函数进行一简单说明:l out = frsp(sys,omega,T,balflg),其中omega为横坐标角频率rad/sec;sys为系统表达式;T为零代表是连续系统,为1代表离散系统,默认0;balflg默认0;out输出为系统sys的频幅响应值l vplot([plot_type],vmat1,vmat2,vmat3, ...),vmat1,vmat2…是所画曲线的坐标值,根据plot_type(取值情况查看matlab的help文件)的值画出对应的曲线l [k,g,gfin] = hinfsyn(G,nmeas,ncon,gmin,gmax,tol) 该函数用的是“DGKF文献”中的算法,G:系统的广义对象;nmeas: 连接到控制器的测量输出的个数;ncon:控制输入的个数;gmin: 的下界;gmax:的上界;tol:的迭代精度;k: 最优控制器;g:闭环控制系统;gfin:最终的值四、鲁棒控制器设计实例对计算机硬盘磁头驱动系统,若仅考虑硬盘磁头的钢体部分,即所谓的标称系统,那么该系统的传递函数实际上是有两个串联积分器组成的,考虑到干扰的影响,实际系统是一个不确定性系统,设实际对象含乘法摄动。

另外硬盘高速转动引起的空气涡流对磁头来讲是必须考虑的干扰设计目标是抑制住风的影响,将磁头准确地定位于指定的磁头上为此,选择了图2所示的一般反馈控制系统模型 图2硬盘的一般反馈控制系统图中和是用于保证对乘法摄动鲁棒性的评价信号;是控制输入u的评价信号;和是用于干扰响应评价的信号;表示乘法摄动的大小;表示干扰的动态特性;适用于调节的参数,主要用于调整响度速度;是用来调整输入大小的加权函数进一步把风的干扰作为阶跃信号处理,经反复实验,确定如下加权函数:构造不确定性系统,设计控制器,相应的M文件见附件1乘法摄动的加权函数(高通)、干扰加权函数(低通)和输入加权函数(高通)如图所示:图3加权函数的Bode图设计出的控制器Bode图如图所示图4 控制器Bode图另外,单位阶跃输入干扰的输出响应及对应的控制输入如图所示:图5 阶跃干扰响应及控制器输入附件1:M文件:clearclcformat short ew=logspace(-2,6,100);%generates n points between decades 10^a and 10^b.%设一般被控对象%定义控制对象和加权函数Psys=nd2sys([1],[1 0 0],3.87e7);W1sys=nd2sys([1 125.7],[1 1e-4],5e-1);W2num1=[1 1e+4 5.7e+7];W2den1=[1 1.2e+4 4.04e+8];W2sys1=nd2sys(W2num1,W2den1);W2sys=mmult(W2sys1,W2sys1,23.9);W3sys=0.1;W4sys=nd2sys([10 10*0.5*0.5e4],[1 10*5e4]);% 显示加权函数的Bode图W1fr=frsp(Psys,w);W2fr=frsp(W2sys,w);W3fr=frsp(W3sys,w);W4fr=frsp(W4sys,w);figure(1);vplot('liv,lm',W1fr,W2fr,W3fr,W4fr);title('Weighting Functions')xlabel('frequency[rad/s]')ylabel('Gain')legend('W1fr','W2fr','W3fr','W4fr');grid;%设一般被控对象,描述整个系统systemnames='Psys W1sys W2sys W3sys W4sys';inputvar='[w1;w2;u]';outputvar='[W1sys;W2sys;W4sys;w2+Psys]';input_to_W3sys='[w1]';input_to_Psys='[u+W3sys]';input_to_W1sys='[Psys+w2]';input_to_W2sys='[Psys]';input_to_W4sys='[u]';sysoutname='Gpsys';cleanupsysic='yes';sysic;%设计控制器disp(['H00 controller Desigh with hinfsyn']);K=[];glow=0;ghigh=10;tol=1e-2;while isempty(K)==1&ghigh<1e6; [K,CL,gopt]=hinfsyn(Gpsys,1,1,glow,ghigh,tol); if isempty(K)==1&ghigh<1e6; ghigh=ghigh*10; tol=ghigh*1e-3; end clear CL ghigh glow tolend;%显示控制器的Bode图Kfr=frsp(K,w)';figure(2);subplot(2,1,1)vplot('liv,lm',Kfr');title('Bode plot of Controller')xlabel('frequency[rad/s]')ylabel('Gain')grid;subplot(2,1,2)vplot('liv,p',Kfr');xlabel('frequency[rad/s]')ylabel('Phase(degrees)')grid;%仿真systemnames='Psys K';inputvar='[w;r]';outputvar='[Psys+r;K]';input_to_Psys='[K+w]';input_to_K='[Psys+r]';sysoutname='Clsys';cleanupsysic='yes';sysic;%仿真(H∞控制器)[pa,pb,pc,pd]=unpck(Psys);[ka,kb,kc,kd]=unpck(K);[da,db,dc,dd]=unpck(sel(Clsys,1,1));[ua,ub,uc,ud]=unpck(sel(Clsys,2,1));%干扰响应 t=[0:0.0001:0.1];[y,x,t]=step(da,db,dc,dd,1,t);[u,x,t]=step(ua,ub,uc,ud,1,t);figure(3)subplot(2,1,1)plot(t,y)axis([0 0.1 0 16])xlabel('Time[s]')ylabel('Amplitude')title('Step disturbance response')grid on;%控制输入subplot(2,1,2)plot(t,u)axis。

下载提示
相似文档
正为您匹配相似的精品文档