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

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

%------------------------------------------------------------------------- %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);

%通常情况下P0并不是最小实现,所以需要降阶 [a,b,c,d]=unpck(P0);

[ab,bb,cb,db]=ssdata(balreal(minreal(ss(a,b,c,d)))); P0=pck(ab,bb,cb,db); %此时得到变量为System类型

%------------------------------------------------------------------------- %建立广义系统P

%------------------------------------------------------------------------- %方法1:直接方法 %/z1\ /W1 -W1*G\ /r\ %|z2| =|0 W2 | | | %\ v/ \I -G / \u/

%子系统的ss实现 [A,B,C,D]=unpck(G);

[A1,B1,C1,D1]=unpck(Ws);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值