精华内容
下载资源
问答
  • 利用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∞...

    41528d3028836879cd698677c3999917.gif利用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))

    展开全文
  • 【控制】《鲁棒控制》-周克敏老师

    千次阅读 2021-03-24 07:48:42
    文章目录 山东科技大学周克敏教授主讲《鲁棒控制》课程 鲁棒控制课件 链接:https://pan.baidu.com/s/1WD_9KuXSYlbvHpSxgGJcGg 提取码:2khx 视频课程地址:鲁棒控制(B站)

    在这里插入图片描述
    《Essentials of Robust Control》

    山东科技大学周克敏教授主讲《鲁棒控制》课程

    鲁棒控制课件
    链接:https://pan.baidu.com/s/1WD_9KuXSYlbvHpSxgGJcGg
    提取码:2khx

    视频课程地址:鲁棒控制(B站)

    Matlab hinfnorm()

    Syntax

    ninf = hinfnorm(sys)
    ninf = hinfnorm(sys,tol)
    [ninf,fpeak] = hinfnorm(___)
    

    Description

    ninf = hinfnorm(sys) returns the H∞ norm in absolute units of the dynamic system model, sys.

    • If sys is a stable SISO system, then the H∞ norm is the peak gain, the largest value of the frequency response magnitude.
    • If sys is a stable MIMO system, then the H∞ norm is the largest singular value across frequencies.
    • If sys is an unstable system, then the H∞ norm is defined as Inf.
    • If sys is a model that has tunable or uncertain parameters, then hinfnorm evaluates the H∞ norm at the current or nominal value of sys.
    • If is a model array, then hinfnorm returns an array of the same size as sys, where ninf(k) = hinfnorm(sys(:,:,k)) .

    For stable systems, hinfnorm(sys) is the same as getPeakGain(sys).

    ninf = hinfnorm(sys,tol) returns the H∞ norm of sys with relative accuracy tol.

    [ninf,fpeak] = hinfnorm(___) also returns the frequency, fpeak, at which the peak gain or largest singular value occurs. You can use this syntax with any of the input arguments in previous syntaxes. If sys is unstable, then fpeak = Inf.

    E.G.

    Norm of MIMO System

    Compute the H∞ norm of the following 2-input, 2-output dynamic system and the frequency at which the peak singular value occurs.

    G ( s ) = [ 0 3 s s 2 + s + 10 s + 1 s + 5 2 s + 6 ] G(s) = \left[\begin{matrix} 0 & \frac{3s}{s^2 + s +10} \\ \frac{s+1}{s+5} & \frac{2}{s+6} \end{matrix}\right] G(s)=[0s+5s+1s2+s+103ss+62]

    G = [0 tf([3 0],[1 1 10]);tf([1 1],[1 5]),tf(2,[1 6])];
    [ninf,fpeak] = hinfnorm(G)
    

    ninf = 3.0150
    fpeak = 3.1623

    The H∞ norm of a MIMO system is its maximum singular value. Plot the singular values of G and compare the result from hinfnorm.

    sigma(G), grid
    

    在这里插入图片描述
    The values ninf and fpeak are consistent with the singular value plot, which displays the values in dB.

    https://www.mathworks.com/help/robust/ref/lti.hinfnorm.html

    http://matrix.etseq.urv.es/manuals/matlab/toolbox/mutools/h2norm.html

    展开全文
  • 【实例简介】这是robust control design with matlab 书里的部分M文件,挺不错的【实例截图】【核心代码】6ded1493-7e1b-4413-aa1e-d5b2e24cca52└── Robust Control with Matlab Code├── column│ ├── clp_...

    【实例简介】

    这是robust control design with matlab 书里的部分M文件,挺不错的

    【实例截图】

    【核心代码】

    6ded1493-7e1b-4413-aa1e-d5b2e24cca52

    └── Robust Control with Matlab Code

    ├── column

    │   ├── clp_col.m

    │   ├── cola_lin.m

    │   ├── cola_lv_lin.m

    │   ├── cola_lv.m

    │   ├── colamod.m

    │   ├── colas.m

    │   ├── contents.m

    │   ├── dk_col.m

    │   ├── frs_col.m

    │   ├── hin_col.m

    │   ├── init_col.m

    │   ├── lsh_col.m

    │   ├── mod_col.m

    │   ├── ms_col.m

    │   ├── mu_col.m

    │   ├── nls_col.mdl

    │   ├── olp_col.m

    │   ├── pfr_col.m

    │   ├── prt_col.m

    │   ├── red_col.m

    │   ├── sim_col.m

    │   ├── unc_col.m

    │   ├── wfit.m

    │   └── wts_col.m

    ├── contents

    │   └── Readme.txt

    ├── flexman

    │   ├── betal_flm.m

    │   ├── clp_flm.m

    │   ├── contents.m

    │   ├── dk_flm.m

    │   ├── ffeq_flm.m

    │   ├── frs_flm.m

    │   ├── hin_flm.m

    │   ├── init_flm.m

    │   ├── koef50_flm.m

    │   ├── koef_flm.m

    │   ├── mod_flm.m

    │   ├── ms_flm.m

    │   ├── mu_flm.m

    │   ├── nls_flm.mdl

    │   ├── nophi_flm.m

    │   ├── olp_flm.m

    │   ├── par_flm.m

    │   ├── par_flm_plot.m

    │   ├── pd_flm.m

    │   ├── pdfrs_flm.m

    │   ├── pfrsa_flm.m

    │   ├── phid2v_flm.m

    │   ├── phi_flm.m

    │   ├── red_flm.m

    │   ├── refer_flm.m

    │   ├── s_flm.m

    │   ├── sim_flm.m

    │   ├── wts_flm.m

    │   └── xphiv_flm.m

    ├── hdd

    │   ├── cfr_hdd.m

    │   ├── c_hdd.mdl

    │   ├── clp_hdd.m

    │   ├── contents.m

    │   ├── ctr_hdd.m

    │   ├── dcl_hdd.m

    │   ├── ddk_hdd.m

    │   ├── dfr_hdd.m

    │   ├── d_hdd.mdl

    │   ├── dk_hdd.m

    │   ├── dlp_hdd.m

    │   ├── dms_hdd.m

    │   ├── dmu_hdd.m

    │   ├── dsl_hdd.m

    │   ├── dwt_hdd.m

    │   ├── frs_hdd.m

    │   ├── hinf_hdd.m

    │   ├── init_c_hdd.m

    │   ├── init_d_hdd.m

    │   ├── kf_hdd.m

    │   ├── lsh_hdd.m

    │   ├── mod_hdd.m

    │   ├── ms_hdd.m

    │   ├── mu_hdd.m

    │   ├── olp_hdd.m

    │   ├── prf_hdd.m

    │   ├── rbp_hdd.m

    │   ├── rbs_hdd.m

    │   ├── red_hdd.m

    │   ├── sim_hdd.m

    │   ├── vrs_hdd.m

    │   ├── wcp_hdd.m

    │   ├── worst_hdd.m

    │   ├── wpl_hdd.m

    │   └── wts_hdd.m

    ├── mds

    │   ├── clf_mds.m

    │   ├── clp_mds.m

    │   ├── contents.m

    │   ├── dk_mds.m

    │   ├── frs_mds.m

    │   ├── hin_mds.m

    │   ├── kf_mds.m

    │   ├── lsh_mds.m

    │   ├── mod_mds.m

    │   ├── ms_mds.m

    │   ├── nrp_mds.m

    │   ├── olp_mds.m

    │   ├── pcf_mds.m

    │   ├── pdc_mds.m

    │   ├── pfr_mds.m

    │   ├── ppf_mds.m

    │   ├── prf_mds.m

    │   ├── prt_mds.m

    │   ├── psf_mds.m

    │   ├── rbp_mds.m

    │   ├── rbs_mds.m

    │   ├── red_mds.m

    │   ├── rob_mds.m

    │   ├── sen_mds.m

    │   ├── sim_mds.m

    │   ├── sys_mds.m

    │   ├── wcp_mds.m

    │   └── wts_mds.m

    ├── pendul

    │   ├── act_pend.m

    │   ├── clp_pend.m

    │   ├── contents.m

    │   ├── c_pend.mdl

    │   ├── dcl_pend.m

    │   ├── dk_pend.m

    │   ├── d_pend.mdl

    │   ├── frs_pend.m

    │   ├── hinf_pend.m

    │   ├── inc_pend.m

    │   ├── init_c_pend.m

    │   ├── init_d_pend.m

    │   ├── mod_pend.m

    │   ├── ms_pend.m

    │   ├── mu_pend.m

    │   ├── olp_pend.m

    │   ├── pfr_pend.m

    │   ├── red_pend.m

    │   ├── sim_pend.m

    │   ├── s_pend.m

    │   ├── trans1.m

    │   ├── trans1_m.m

    │   ├── trans2.m

    │   ├── trans2_m.m

    │   ├── wcp_pend.m

    │   ├── wfit.m

    │   ├── wpl_pend.m

    │   ├── wsn_pend.m

    │   └── wts_pend.m

    └── rocket

    ├── acf_rock.m

    ├── air_data.m

    ├── cfn_rock.m

    ├── clp_rock.m

    ├── contents.m

    ├── c_rock.mdl

    ├── cx_fct.m

    ├── cy_fct.m

    ├── dcl_rock.m

    ├── ddk_rock.m

    ├── dfr_rock.m

    ├── dif_rock.m

    ├── dk_rock.m

    ├── dlp_rock.m

    ├── dms_rock.m

    ├── dmu_rock.m

    ├── d_rock.mdl

    ├── frc_rock.m

    ├── frs_rock.m

    ├── hin_rock.m

    ├── inc_rock.m

    ├── init_c_rock.m

    ├── init_d_rock.m

    ├── mmn_rock.m

    ├── mod_rock.m

    ├── ms_rock.m

    ├── mu_rock.m

    ├── olp_rock.m

    ├── prm_rock.m

    ├── prt_rock.m

    ├── red_rock.m

    ├── sim_rock.m

    ├── sol_rock.m

    ├── s_rock.m

    ├── sys_rock.m

    ├── theta_rock.m

    ├── wsa_rock.m

    └── wts_rock.m

    8 directories, 184 files

    展开全文
  • 滑模鲁棒控制(hm-3)

    2021-07-21 15:47:23
    为了解决这一问题,采用干扰的界来设计控制律。 设计滑模控制率为: 其中dc(t)是和干扰相关的正实数。 将式(6)代入式(3)得: 通过选取dc(t)来保证控制系绕稳定性,假设: 为保证,dc(t)的选取原则如下...

    考虑如下被控对象:

    滑模面设计为:

     

    e(t)为期望位置和实际位置的差,则有:

     根据上一节所讲的几种趋近率,我们采用指数趋近率:

    代入得到:

     

    由于干扰d(t)未知,上述控制律无法实现。为了解决这一问题,采用干扰的界来设计控制律。

    设计滑模控制率为:

    其中dc(t)是和干扰相关的正实数。

    将式(6)代入式(3)得:

    通过选取dc(t)来保证控制系绕稳定性,假设: 

     

     为保证,dc(t)的选取原则如下:

    当s(t)>0时,取dc(t)=dL;

    当s(t)<0时,取dc(t)=dU;

     则可设计满足上述条件的dc(t)为:

    举例:

    考虑如下对象:

     

     

     

     

    展开全文
  • Delta机构的鲁棒控制,理论推导和仿真实践
  • 因为刚学习LMI,所以就现成用了别人的文章想看看怎么实现。LMI条件是:P1,P2,X12,X13 ,X23是实矩阵,P,R1,R2 ,R3 ,X11 ,X22 ,X33 ,Q1,Q2为对称正定矩阵,ei为标量大于0,i=1,2,3,4,5,6。但是得到的结果总是tmin是...
  • nbspmatlabMatlab的H_inf鲁棒控制器的设计.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予...
  • 文章目录固定结构控制器鲁棒控制器整定 本文档包含的控制器整定方法分为两类: 指定结构的控制器整定:systune, hinfstruct 广义控制对象整定:musyn, mixed musyn, hinfsyn 以具有不稳定极点的一阶系统为例,假设...
  • 鲁棒控制(Ⅰ)—LMI处理方法

    千次阅读 2021-01-17 17:34:16
    H∞范数不超过一个上界,H2范数尽可能小,以保证系统对于不确定性具有鲁棒稳定性,并表现出更好的性能。 在状态反馈情况下,闭环系统的H∞性能并不能通过增加控制器的阶数来加以改进,因此,系统的H∞状态反馈控制器...
  • simulink仿真不确定性模型,主要学习第二个程序。 mdl = "rctUncertainModel"; open_system(mdl) m = 3; c = ureal('c',1,'Percentage',20); k = ureal('k',2,'Percentage',30);...usys = tf(1,[m c k]) ...
  • 《复杂运动体系统的分布式协同控制与优化》-方浩老师-目录跳转链接第1章 绪论 第1章 绪论 clear clc syms xi omega k xi = 0.1; omega = 1; k=1; G1 = tf([k],[1, 2*xi*omega, omega^2]); [a,b,c,d] = tf2ss([k],[1...
  • 系数a的变化,a不是常数,而是有界。 为什么控制器这样设计能够使系统稳定? 设计不同的u,达到滑膜控制的目的
  • 第3章 回到目录 第5章 第11章-大系统的分散控制11.1 时滞系统的分散稳定化控制 11.1 时滞系统的分散稳定化控制
  • 若将常用的多变量鲁棒控制技术应用到航空涡扇发动机控制问题中,存在控制器阶数过高、复杂等济,从而导致实现困难。在过去十几年,定量反馈理论(QuantitativeFeedbackTheory,QFT)[1-6]引起控制界广泛关注。SISOQFT...
  • 第3章 回到目录 第5章 附录-LMI工具箱介绍A.1 线性矩阵不等式及相关术语 A.1 线性矩阵不等式及相关术语
  • 第3章 回到目录 第5章 第8章-鲁棒方差控制8.1 连续系统的鲁棒方差控制 8.1 连续系统的鲁棒方差控制
  • 通过对不同标量求解相应的控制问题,可以分析系统性能和性能之间的关系,如通过牺牲系统的鲁棒性可以在多大程度上改进系统的性能。 控制律设计: 在状态反馈下,闭环系统为: 对原系统和一个给定的标量,若,且以下...
  • 第8章-高阶非线性多智能体分布式自适应鲁棒控制8.1 研究背景8.2 问题描述8.3 自适应鲁棒一致性控制8.4 主要结论和系统稳定性分析8.5 自适应鲁棒一致性控制器性能分析8.6 数值仿真8.7 结论 8.1 研究背景 8.2 问题描述...
  • 第3章 回到目录 第5章 第6章-区域极点配置6.1 LMI 区域6.2 具有闭环区域极点约束的状态反馈控制器设计 6.1 LMI 区域 6.2 具有闭环区域极点约束的状态反馈控制器设计
  • 鲁棒控制-线性矩阵不等式处理方法》-俞立老师-目录4.1 H∞H_\inftyH∞​ 控制4.1.1 状态反馈 H∞H_\inftyH∞​ 控制4.1.2 输出反馈 H∞H_\inftyH∞​ 控制4.2 H2H_2H2​ 控制4.3 H2/H∞H_2/H_\inftyH2​/H∞​ ...
  • 鲁棒控制-线性矩阵不等式处理方法》-俞立老师-目录第1章 引言 第1章 引言 clear clc syms xi omega k xi = 0.1; omega = 1; k=1; G1 = tf([k],[1, 2*xi*omega, omega^2]); [a,b,c,d] = tf2ss([k],[1, 2*xi*omega,...
  • 鲁棒控制就是要求在系统存在不确定性或者输入存在不确定性的条件下,让系统仍然能够满足性能要求(例如稳定性或者其他指标)的控制。 鲁棒控制具有很强烈的现实意义,因为在实际设计过程中,我们总是把被控过程简化...
  • 利用Matlab实现H∞控制Prof. Dr.-Ing.F.AllgwerInstitute for Systems Theory and Automatic Controlhttp://www.ist.uni-stuttgart.de/education/courses/robust1 引 言H∞控制器设计原理容易理解,难点在于编程。...
  • The research of independent Application of Matlab Robust Control Toolbox for Wind Power Generation SystemHuang Jinjie1黄金杰 (1967—),男,黑龙江省哈尔滨市,...,研究方向为复杂工业过程控制、智能控制等...
  • % 系统P sys = smult(syswq,sysG,syswz) % 求解控制器 [gamma,K] = hinflmi(sys,[2 1]) [Ak,Bk,Ck,Dk] = ltiss(K) sysq2z = slft(sysG,K,1,2); % K(s)控制器 1 个输出, 2 个输入 % splot(sysq2z,'bo'); splot(sysq...
  • 控制鲁棒性 H2 H无穷

    千次阅读 2020-12-27 18:18:33
    应该注意的是,我们在进行鲁棒稳定性分析时,要将干扰与控制输入置0。 2 H∞H∞H∞ H∞H∞H∞ 是对传递函数增益大小的一个度量指标,简单说就是一个系统输入输出的放大倍数。HHH 无穷的标准问题实际是:求解已真有理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,578
精华内容 12,231
关键字:

鲁棒控制