鲁棒控制——不确定系统表示方法(simulink)


不确定系统表示方法,学习如何将名义模型和不确定因素组合起来,从而建立不确定模型。通过量化每个元素的不确定水平,评价整体系统的鲁棒性。分析每个不确定元素如何影响性能,并确定最坏情况的参数组合。simulink不确定性系统分析。
模型不确定性包括:

  1. 模型的不精确估计或者参数变化;
  2. 忽略或者未知的动态特性,比如高频动态特性;
  3. 环路增益或者相位的变化;
  4. 运行环境的变化;
  5. 非线性系统的线性化估计;
  6. 测量数据的估计误差。

基本表示

不确定模型的属性类似于ss模型。 NominalValue属性本身就是一个ss模型对象。因此,可以像分析任何状态空间模型一样分析标称值。例如,计算标称系统的极点和阶跃响应。

bw = ureal('bw',5,'Percentage',10);
get(bw)
H = tf(1,[1/bw 1]);
% bodeplot(H,{1e-1 1e2});
stepplot(H)
% 
p1 = ureal('p1',10,'Percentage',50);
p2 = ureal('p2',3,'PlusMinus',[-.5 1.2]);
p3 = ureal('p3',0);
A = [-p1 p2; 0 -p1];
B = [-p2; p2+p3];
C = [1 0; 1 1-p3];
D = [0; 0];
sys = ss(A,B,C,D);     % create uss model

get(sys)
step(sys.NominalValue)

量化未建模动力学

一种描述过程模型与实际过程行为之间差异的方法是根据带宽。通常会听到“该模型的速度高达8弧度/秒。可以合理地相信,对于低于5 rad / s的频率,该模型是准确的;对于超过30 rad / s的频率,该模型不一定代表过程行为。在5到30之间的频率范围内,模型的保证精度会降低。
ultidyn可用于不确定动力学建模。一个ultidyn对象代表一个未知的线性系统,其唯一已知的属性是其频率响应上的一个统一幅度。与标称模型和频率整形滤波器(权重函数)结合使用时,可以使用ultidyn对象捕获与模型动力学相关的不确定性。
对频率不确定性 建模的步骤:

  1. 创建一个确定或者不确定性对象模型;
  2. 创建一个“权重”滤波器W,其幅度表示每个频率上的相对不确定性;
  3. 创建一个幅值等于1的ultidyn对象Delta。

不确定模型G由G = Gnom *(1 + W * Delta)确定。如果W的幅度表示绝对(而非相对)不确定性,使用公式G = Gnom + W * Delta。例如:

bw = ureal('bw',5,'Percentage',10);
H = tf(1,[1/bw 1]);

Gnom = H;
W = makeweight(.05,9,10);
Delta = ultidyn('Delta',[1 1]);
G = Gnom*(1+W*Delta)
bode(G,{1e-1 1e2})
% 不确定对象的频域响应
p1 = ureal('p1',10,'pe',50); 
p2 = ureal('p2',3,'plusm',[-.5 1.2]); 
p3 = ureal('p3',0); 
A = [-p1 p2;0 -p1]; 
B = [-p2;p2+p3]; 
C = [1 0;1 1-p3]; 
D = [0;0]; 
sys = ss(A,B,C,D) 
% 不确定对象频域数据对象
sysg = ufrd(sys,logspace(-2,2,100)) 
% get(sysg) %获取属性
% bode图,注意sys和sysg有一些不同,前者属于不确定状态空间,后者属于不确定频域数据
bode(sysg,'r.',sysg.NominalValue,'b.')
% 不确定性参数互连函数包括:
% connect;feedback;series;parallel;append;blkdiag;lft;stack

% 创建不确定参数
gamma = ureal('gamma',4); 
tau = ureal('tau',.5,'Percentage',30);
% 创建权重和不确定动力学
delta = ultidyn('delta',[1 1],'SampleStateDimension',5); 
W = makeweight(0.2,6,6);
% 不确定控制对象
P = tf(gamma,[tau 1])*(1+W*delta);
% 标称模型的积分控制器,闭环阻尼比0.707
KI = 1/(2*tau.Nominal*gamma.Nominal); 
C = tf(KI,[1 0]);
% 闭环不确定模型
CLP = feedback(P*C,1);
% 不确定参数的化简
a = ureal('a',4); 
a.AutoSimplify = 'basic'; 
% 构建不确定性矩阵
m3 = [a*(a+4) 6*a*a]
% 简化
m4 = simplify(m3,'full') 

Each uncertain model or matrix (such as uss, genss, ufrd, or umat, ) is a generalized feedback connection (lft) of a not-uncertain object (e.g., double, ss, frd) with a diagonal augmentation of uncertain elements (ureal, ultidyn, umargin, ucomplex, ucomplexm, udyn).
模型对象类型包括用于表示具有固定参数系统的数值模型,以及用于具有可调或不确定系数的系统的通用(广义)模型。

https://www.mathworks.com/help/robust/uncertain-models.html

Simulink不确定模型的线性化

从Simulink模型获取不确定的状态空间模型步骤:

  1. 创建或打开Simulink模型。
  2. 在Simulink模型中,使用Simulink Control Design getlinio或linio命令指定线性化输入和输出点。
  3. 运行ulinearize以计算不确定的线性化。此命令返回一个uss模型。

指定不确定模块有两种方法:一是利用鲁棒控制工具箱,二是利用模块线性化指定。两者都需要用命令创建不确定性参数或者对象。
在这里插入图片描述
在这里插入图片描述

% 控制对象不确定性
unc_pole = ureal('unc_pole',-5,'Range',[-10 -4]);
plant = ss(unc_pole,5,1,0);
wt = makeweight(0.25,130,2.5);
input_unc = ultidyn('input_unc',[1 1]);
% 传感器不确定性
sensor_pole = ureal('sensor_pole',-20,'Range',[-30 -10]);
sensor = tf(1,[1/(-sensor_pole) 1]);
mdl = 'rct_ulinearize_uss';
open_system('rct_ulinearize_uss')
% 找到线性化点
io = getlinio(mdl);
% 不确定性线性化
sys_linearize = ulinearize(mdl,io)
% 最坏情况
[maxg,worstun] = wcgain(sys_linearize);
% 最坏情况传函
sys_worst = usubs(sys_linearize,worstun);
step(sys_linearize.NominalValue,sys_worst)
legend('Nominal','Worst-case');

不确定系统分析

系统闭环稳定性和性能的统计学、最坏情况分析。
评估最坏情况的函数可以根据以下情况分析:

  1. 增益和相位裕度;
  2. 考虑回路相互作用的稳定性裕度;
  3. 闭环系统中任意两点之间的增益;
  4. 对外部干扰的敏感性。

Disk-Based Gain and Phase Margins
磁盘裕量量化了闭环系统针对开环响应中增益或相位变化的稳定性。在基于磁盘的裕量计算中,可以对诸如开环传递函数上的盘状乘法不确定性之类的变化进行建模。磁盘余量可以测量环路在变得不稳定之前可以承受的不确定性。该不确定量对应于最小增益和相位裕量。这些基于磁盘的裕量考虑了所有频率和回路相互作用。因此,与传统的增益和相位裕度相比,基于磁盘的裕度分析提供了更强的稳定性保证。
分析函数包括:

  1. 针对增益和相位变化分析系统稳定性。使用diskmargin来计算SISO和MIMO反馈环路的基于磁盘的增益和相位裕度。
  2. 模型增益和相位不确定性。使用umargin控制设计模块来分析增益和不确定性对系统性能和稳定性的影响。
DGM = [0.6,1.7];
diskmarginplot(DGM,'disk')

https://www.mathworks.com/help/robust/uncertainty-in-simulink-models-.html
hinfsyn_study_1_20.mlx
hinfsyn_study_1_21.mlx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值