H-inf控制MATLAB示例仿真

目录

1.H∞控制器概述

2.MATLAB核心程序

3.仿真结论


1.H∞控制器概述

      H∞控制器(H-infinity控制器)是一种线性控制器设计方法,旨在优化控制系统的鲁棒性和性能。它是现代控制理论中的一个重要概念,特别适用于需要应对不确定性、噪声和扰动的复杂控制系统。下面是对H∞控制器的详细介绍:       

      H∞控制的核心是H∞范数,也称为“无穷范数”。对于一个线性时不变系统,其传递函数表示为G(s),H∞范数是一个度量系统传递函数的性能和鲁棒性的方式。

        H∞控制的目标是设计一个控制器,将系统的H∞范数最小化。这意味着在系统的所有可能工作条件下,系统对于外部扰动和噪声的敏感性都会被最小化。H∞控制通常涉及到代数矩阵不等式(LMI)的解决,这些不等式约束了控制器的性能和稳定性。H∞控制旨在实现系统的最佳鲁棒性,即系统能够在不确定性和扰动存在的情况下保持稳定性和性能。H∞控制还可用于实现一些性能指标的优化,如跟踪误差的最小化或某些输出的最优估计。

        H∞控制是一种具有很好鲁棒性的设计方法,具有设计思想明确、控制效果好等优点,尤其适用于模型摄动的多输入多输出(MIMO)系统。H∞控制在控制理论、设计方法及应用等方面,经过多年不断发展和完善,已成为一种具有较完整体系的鲁棒控制理论。为适应控制系统稳定性、自适应性、智能化及工程化的更高要求,基于线性矩阵不等式(LMI)的H∞控制、非线性H∞控制以及H∞控制与神经网络和模糊控制结合,成为近年来H∞控制研究的热点。随着H∞控制研究的深入,其存在的诸如理论复杂、计算量大和参数摄动范围有限等问题将会逐步得到解决,适用范围也会更广、应用前景会更好。


2.MATLAB核心程序


clear;

tau1=0.1;
delta1=0;
tau2=0.1;
delta2=0;

g1=nd2sys([1],[tau1 1]);
g2=nd2sys([1],[tau2 0]);
We=nd2sys([100],[.01 1]);

P = nd2sys([1/(tau2*(1+delta2))],[tau1*(1+delta1) 1 0]);

% di : input disturbance
% do : output disturbance
% We : weight function
systemnames = 'g1 g2 We';
inputvar = '[di;do;u]';
outputvar = '[We;u;-g2-do]';

input_to_g1 = '[u+di]';
input_to_g2 = '[g1]';
input_to_We = '[g2+do]';

sysoutname = 'G';
cleanupsysic = 'yes';
sysic;

[K,Gp,gamma]=hinfsyn(G,1,1,0,5000,0.1)
Gp=starp(G,K,1,1);

[ak,bk,ck,dk]=unpck(K)
[z,p,k0]=ss2zp(ak,bk,ck,dk)
[agp,bgp,cgp,dgp]=unpck(Gp);
sys_Gp=ss(agp,bgp,cgp,dgp);
w=logspace(-3,3,100);
Gp_bode=bode(sys_Gp,w);

KP=mmult(K,P);
[akp,bkp,ckp,dkp]=unpck(KP);
sys_KP=ss(akp,bkp,ckp,dkp);
[gm,pm]=margin(sys_KP)

% closed-loop system %
systemnames = 'P K';
inputvar = '[ref]';
outputvar = '[P;K]';
input_to_P = '[K]';
input_to_K = '[ ref-P ]';

sysoutname = 'KG';
cleanupsysic = 'yes';
sysic;

[acl,bcl,ccl,dcl]=unpck(KG);
h=ss(acl,bcl,ccl,dcl);

t = 0:0.001:10;            % vector of time samples
ref = (rem(t,5)>=2.5)*1;   % square wave values
[ys ts xs]=lsim(h,ref,t);

% plot states
subplot(2,1,1);
plot(ts,ys(:,1),'-');
axis([0 10 -0.5 1.5])

% plot control
subplot(2,1,2)
plot(ts,ys(:,2),'-');

3.仿真结论

其余代码截图


D121

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Simulink是一种基于MATLAB仿真软件,用于建模、仿真和分析动态系统。h无穷是指系统的无穷时间响应。在Simulink中,可以使用h无穷来分析系统的稳态行为和稳定性。 在Simulink中,可以通过搭建模型来表示和仿真不同类型的系统。模型由各种模块组成,这些模块代表系统的各个组件和其相互作用。通过连接这些模块,可以建立系统的整体模型。 在Simulink中,可以利用不同的信号类型(如连续时间信号和离散时间信号)来描述系统的输入和输出。通过设定系统的初始条件和参数,Simulink可以进行仿真,生成系统在有限时间内的响应。然而,有些系统的稳态行为可能需要无穷时间才能达到,这时就需要使用h无穷。 h无穷是指在系统的输入经过一段时间后,系统输出的稳定响应。在Simulink中,可以通过合适的参数设置和适当的考虑时间范围,来分析系统的无穷时间响应。这有助于评估系统的稳定性和性能,并根据仿真结果对系统进行改进和优化。 总之,Simulink是一种强大的仿真工具,可以用于建模和仿真各种动态系统。通过使用h无穷来分析系统的稳态行为,Simulink能够帮助工程师更好地理解系统的特性,并进行系统设计和优化。 ### 回答2: "h无穷" 是Simulink中的一个特殊参数,用于表示系统的采样时间为无穷大。在连续时间系统模型中,采样时间是离散化处理的重要参数之一,它决定了系统的更新频率和模拟精度。 在Simulink中,设置"h无穷"表示系统是一个连续时间系统,即不进行离散化处理。这意味着系统的输入和输出是连续时间信号,而不是离散时间信号。连续时间系统模型通常用于处理具有高频且连续变化的信号,如模拟电路、控制系统等。 使用"h无穷"可以在Simulink中建立连续时间系统模型,然后可以对其进行仿真或进行系统设计、分析和优化。与离散时间系统模型不同,连续时间系统模型不需要采样时间步长参数,并且模型中的各个模块之间的信号传递是实时的。这使得模型设计更加简洁和直观。 在连续时间模型中,系统的状态和输入信号是连续变化的,可以使用微分方程描述系统的动态行为。通过对模型进行数学分析,可以得到系统的传递函数、频域特性等重要信息,从而进行系统稳定度分析、频域响应、控制器设计等相关工作。 总之,Simulink中的"h无穷"表示连续时间系统模型,在建立模型时使用该参数可以方便地进行连续时间信号的仿真和分析工作,适用于处理高频且连续变化的信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值