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

利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Automatic Control http://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来说明。 从w到z的闭环传递函数可以表示为 广义过程模型P(s)(见图2)可以表示为 假设上面几个状态空间变量具有如下的形式: 于是可以得到P(s)的一个可能的状态空间实现形式: WS和WKS为调整参数。一种选择方法为: 其中A<1为允许的最大稳态误差,为期望带宽,M为灵敏度峰值(一般情况下A=0.01,M=2)。从控制器设计的方面来说,的倒数为回路成形期望灵敏度的上限,影响控制器的输出u。 有些情况下希望对补灵敏度函数进行回路成形设计(在图1中增加一个输出)。一种选择方法为: 此函数与函数成轴对称,见图3所示。图中参数设置为A=0.01(=-40dB),M=2(=6dB),。 3 子系统的实现 在Matlab中有几种方式得到G,WS和WKS。例如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(频域响应)等函数对传递函数S,KS,T,K,GK进行分析。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))

用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制相关推荐

  1. matlab元胞自动机学风演化,利用MATLAB和VC60混合编程技术研究元胞自动机动态演化过程...

    利用MATLAB和VC60混合编程技术研究元胞自动机动态演化过程 第! !卷!第期 ! 成都理工大学学报! 自然科学版 !# $ % - 2: 5 34- 1 -6;!9 ? : A ? $ % $ ...

  2. a*算法matlab代码_导向滤波算法及其matlab代码实现

    导向滤波同样是一种平滑滤波算法,其与最小二乘滤波和双边滤波相比,同样是一种具有边缘保持的功能的图形滤波算法,可以用于处理图形噪点较多的图像,而且此种滤波算法与最小二乘滤波和双边滤波相比,有其独特的特点 ...

  3. 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...

    设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...

  4. matlab编程读取导航文件文件,基于Matlab读取标准RINEX格式的GPS星历数据

    [实例简介] 基于Matlab读取标准RINEX格式的GPS星历数据,采用Matlab直接读取Rinex文件 张妮,等基于 Matlab读取标准 RINEX格式的GPS星历数据 navdata(i). ...

  5. 利用matlab求零输入响应波形,实验3 利用matlab求LTI连续系统的响应

    实验3 利用matlab求LTI连续系统的响应 一. 实验目的: 1. 了解LTI系统的冲激响应h(t)及matlab实现: 2. 了解LTI系统的阶跃响应g(t)及matlab实现: 3. 了解LT ...

  6. 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析

    实验二 利用matlab进行系统的时域分析 实验二 利用MATLAB进行系统的时域分析 1.实验目的 在理论学习的基础上,通过本实验熟悉LTI连续时间系统的时域分析方法, 熟悉系统的零输入响应.零状态 ...

  7. matlab中emd函数,EMD算法的matlab程序介绍解析

    <EMD算法的matlab程序介绍解析>由会员分享,可在线阅读,更多相关<EMD算法的matlab程序介绍解析(6页珍藏版)>请在人人文库网上搜索. 1.此版本为 ALAN 版 ...

  8. matlab 增量学习,支持向量机在线增量学习算法的MATLAB实现

    支持向量机在线增量学习算法的MATLAB实现 杨志红,隆 涛 (江汉大学 物理与信息工程学院,湖北 武汉 430056) 摘 要:基于支持向量机在线训练理论,采用MATLAB工具实现了一种在线增量学习 ...

  9. matlab系列之(一)——利用matlab实现任意两个多项式相加

    上课时的课程作业,后续我会持续整理出来注释好,供大家共同学习!致谢课程老师! 一.问题描述 输入任意两个多项式,相加后输出结果: 二.问题分析 输入多项式可以采用输入系数矩阵或完整多项式的方式,为了符 ...

最新文章

  1. CodeForces - 1335F Robots on a Grid(拓扑找环+反向dfs/倍增)
  2. 多模块Maven工程单独打包某一模块工程
  3. Flink的滚动策略
  4. (转)C结构体之位域(位段)
  5. 第5次作业+105032014040+薛龚
  6. python读excel
  7. python访问oracle_用Python操作Oracle
  8. 6.计蒜客ACM题库.A2011 Magic Mirror
  9. Android 截屏监听分享
  10. 最全PR曲线、ROC曲线以及AUC计算公式详解
  11. iDB-数据库自动化运维平台
  12. C盘清理笔记 msp文件和msi文件
  13. 亚马逊跨境电商开店注册流程之日本,澳洲,印度,中东,新加坡,巴西,土耳其
  14. jetson-inferenc显示fatal error: connect_parts.hpp
  15. 辅材先生之打开传统向互联网+辅材这把锁
  16. linux识别不了u盘格式,Linux识别不了u盘怎么办
  17. 在Windows电脑上修改图片内存大小的方法
  18. 演讲比赛流程管理系统C++
  19. http://cl.s6e.xyz/index.php,index.html · Pear Admin/Pear Admin Site - Gitee.com
  20. 办理ISO13485医疗器械质量管理体系认证认证的条件

热门文章

  1. 什么是 Kubernetes?
  2. 显示器IPS屏和TN屏的优缺点及差异
  3. 代码表白做我女朋友好不好
  4. 数字图像处理(八)图像压缩-有损压缩/压缩算法+matlab
  5. 中南大学计算机网络基础,中南大学计算机网络基础作业参考答案
  6. druid监控页面 关闭_druid 监控页面显示了多个数据源信息
  7. 设置Redis客户端连接的超时时间
  8. Java访问权限作用域介绍
  9. sqrt 和pow 的返回值类型错误({从小白开始c语言常见错误归纳第2弹)
  10. Enet学习(三)--enet_host_service