利用matlab实现H-infinity鲁棒控制

利用Matlab实现H∞控制
Prof. Dr.-Ing.F.Allgwer
Institute for Systems Theory and Automatic Control
www.ist.uni-stuttgart.de/education/courses/robust
1 引 言
H控制器设计原理容易理解,难点在于编程。这里简单介绍Matlab里面几个相关函数的用法,希望能帮助你设计第一个H控制器。中频炉炼钢
Matlab提供了很多H设计函数,与H设计相关的几个重要的工具箱有:Control System Toolbox,mu-Analysis and Synthesis Toolbox(mu-tools),Robust Control Toolbox(RCT)和LMI Control Toolbox。Matlab7.0之后的版本中,LMI和mu-tools都包含在RCT v3.0.1中,Matlab 7.0之前的版本中这些工具箱是独立的。
本文中用到的函数都写在了一个m文件中(见附录),也可以从网站下载。
利用混合S/KS问题说明H相关函数的用法。首先回顾这个问题。
2 回路成形传递函数
混合S/KS问题可用图1来说明。
wz的闭环传递函数可以表示为
广义过程模型P(s)(见图2)可以表示为
假设上面几个状态空间变量具有如下的形式:
于是可以得到P(s)的一个可能的状态空间实现形式:
WSWKS为调整参数。一种选择方法为:
其中A<1为允许的最大稳态误差,为期望带宽,M为灵敏度峰值(一般情况下A=0.01,M=2)。从控制器设计的方面来说,的倒数为回路成形期望灵敏度的上限,管影响控制器的输出u
有些情况下希望对补灵敏度函数进行回路成形设计(在图1中增加一个输出模拟训练系统)。一种选择方法为:
此函数与函数成轴对称,见图3所示。图中参数设置为A=0.01(=-40dB),M=2(=6dB),
3 子系统的实现
在Matlab中有几种方式得到GWSWKS。例如Control System Toolbox提供的ss,tf和zpk等函数。Mu-tools也提供了诸如pck,nd2sys,zp2sys等函数,也可以用mksys和tree等方法。需要注意的是,Mu-tools提供了一种与Control System Toolbox不一样的表达方式:系统矩阵(system matrix)。Control System Toolbox里面可以写成,对mu-tools则不适用。Mu-tools:
4 广义系统P的实现
广义系统P也有多种产生方式。下面我列举了五种:
(1)直接写出传递函数矩阵,见2节。我倾向于利用mu-tools。如果后面需要转化为状态空间模型,需要利用minreal之类的函数得到最小化实现。重要的函数有:sbs(side-by-side),abv(above),mmult(multiply),minv(inverse)。
(2)写出状态空间系数矩阵A,B,C,D,然后利用3节中的指令:P=pck(A,B,C,D)。
(3)利用sysic函数(system interconnect)。先在一个m文件中利用mu-tools设置了子系统,然后利用该函数将子系统互连起来。
(4)利用sconnect函数,这是LMI-tools提供的函数。子系统、输入、输出以参数的形式传递,sconnect返回互连的系统。
(5)利用RCT v3.0.1提供的iconnect函数,该函数功能与sysic类似。
这些方法中,我倾向于sysic和iconnect函数,因为它们使用灵活,能够搭建方法1和方法2难于搭建的复杂系统。一般情况下,得到均衡实现形式以避免数值计算问题是一个很好的想法,均衡实现形式可以利用Control System Toolbox提供的balreal实现。
5 控制器设计
设计问题是寻一控制器K,使之稳定系统G,并使下列的H范数最小:
有很多种得到H控制器的方法,例如hinfsyn,hinfric,hinflmi,这些函数将P作为输入,并以系统矩阵(mu-tools)方式表达。RCT v3.0.1提供了mixsyn函数,将作为输入(为补灵敏度函数权重),并不需要事先得到广义系统模型P。这些方法的主要区别在于是否用到Riccati方程和γ迭代或者线性矩阵不等式来求解最优化问题。LMI方法不需要求解Riccati时设定的假设条件。
另外还有些指令:ncfsyn和loopsyn(对开环传递函数L=GK进行H回路成形设计),hinfmix和msfsyn(多目标)。具体请查阅手册。
6 结果分析
当控制器设计好后,需要对结果进行分析,这时可以利用Control System Toolbox提供的函数,例如利用lsim,step(阶跃响应),bode(伯德图),sigma(奇异值),freqresp(频域响应)等函数对传递函数SKSTKGK进行分析。Mu-tools提供的函数有:trsp(时域响应),frsp(频域响应),vsvd(奇异值),vplot。
7 结论
从前面可见,有很多种进行H控制器设计的方法。为了避免混淆,我建议尽可能使用mu-tools和RCT。如果你知道Control System Toolbox存在某个函数,那么mu-tools也很可能存在具有相同功能的函数,只不过名称稍有些不同。如果你清楚自己的目的,但不知道函数的名字,那么建议你浏览帮助手册中的函数索引。
希望此处简短的介绍能够帮助你进行H控制器的设计。好运!
附录
%下面的代码展示了如何在Matlab中进行H-infinity控制器的设计。此处举的例子与混合
%S/KS问题有些不同。此处用到的模型和权重函数见Skogestad和Postlethwaite,1996,
%ed.1,p.60.权重函数并不是“最优”的。
%
%大部分函数来自mu-tools,一些来自lmi-tools。mu-tools和lmi-tools均包含在RCT
%v3.0.1中。
%-Jorgen Johnsen 14.12.06
%-------------------------------------------------------------------------
%建立子系统
%-------------------------------------------------------------------------
%Plant:G=200/((10s+1)(0.05s+1)^2)
%方法1:直接方法,利用mu-tools
车门密封条异响
G=nd2sys(1,conv([10,1],conv([0.05,1],[0.05 1])),200);
%方法2:control system toolbox
s=tf('s');
Gcst=200/((10*s+1)*(0.05*s+1)^2);
[a,b,c,d]=ssdata(balreal(Gcst));
G=pck(a,b,c,d);
%权重:Ws=(s/M+w0)/(s+w0*A),Wks=1
M=1.5;w0=10;A=1.e-4;
Ws=nd2sys([1/M w0],[1 w0*A]);
Wks=1;
%-------------------------------------------------------------------------
%建立广义系统P
%-------------------------------------------------------------------------
%方法0:直接方法
%/z1\  /Ws -Ws*G\ /r\
%|z2| =|0  Wks | | |
%\ v/  \I  -G  / \u/ 混凝土泵送剂
虚拟现实系统
%传递函数表达方法
Z1=sbs(Ws,mmult(-1,Ws,G));
Z2=sbs(0,Wks);
V=sbs(1,mmult(-1,G));
P0=abv(Z1,Z2,V);

本文发布于:2024-09-22 13:36:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/160568.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   方法   设计   控制器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议