主要内容

Simulink中的鲁棒性分析金宝app

这个例子展示了如何使用鲁棒控制工具箱提供的Simulink®金宝app块和辅助函数在Simulink中指定和分析不确定系统,以及如何使用这些工具对不确定系统进行蒙特卡罗模拟。

介绍

Simu金宝applink模型usim_model包括用一个传感器反馈的不确定植物的:

open_system(“usim_model”

该工厂是一个一阶模型,有两个不确定性来源:

  • 实际极点,其位置在-10和-4之间

  • 未建模动态其量至25%的相对不确定度在低频上升至100%的不确定性,在130弧度/秒。

反馈路径有一个便宜的传感器,由一个20 rad/s的一阶滤波器建模,增益范围在0.1到2之间。要指定这些不确定的变量,请键入

%一阶植物模型unc_pole =尿素(“unc_pole”,-5,“范围”, -10 [4]);工厂= ss (unc_pole 5 1,1);%未建模对象动态input_unc = ultidyn (“input_unc”[1]);,130 wt =补足重量的东西(0.25,2.5);%传感器获得sensor_gain =尿素(“sensor_gain”,1,“范围”[0.1 2]);

金宝app不确定性建模与分析的Simulink模块

RCTblocks库包含块进行建模和分析Simulink中的不确定性的影响。金宝app要打开库,键入

打开('RCTblocks'

不确定的状态空间块,您可以指定不确定系统(USS对象)。usim_model包含以蓝色强调了三个这样的块。对于“工厂”块对话框显示如下。

在此对话框中,

  • “不确定系统变量”参数指定了不确定对象模型(极点不确定的一阶模型)unc_pole).

  • “不确定值”参数指定块的不确定变量的值(unc_pole在这种情况下)。

uval是一种结构,其字段名和值是用于模拟的不确定变量名和值。你可以设置uval[]用标称值表示不确定变量或变化uval分析不确定性对模型响应的影响。

图表的multiplot块是可视化响应的扩散为你而改变的不确定性的便捷方式。此块叠加对于每个不确定性值获得的模拟结果。

不确定系统的蒙特卡罗仿真

为了方便地控制用于模拟的不确定性值,usim_model使用相同的“不确定性值”uval在所有三个不确定的状态空间块。环境uval[]模拟的闭环响应的标称值unc_poleinput_unc, 和sensor_gain

uval = [];%使用不确定变量的名义值sim卡(“usim_model”,10);%响应模拟

为了分析的不确定性如何影响模型响应,您可以使用ufindusample.命令产生的随机值unc_poleinput_unc, 和sensor_gain.第一次使用ufind找到不确定的状态空间在块usim_model和编译这些块所有不确定变量的列表:

[uvars,PATHINFO] = ufind(“usim_model”);uvars%不确定变量
Uvars = struct with fields: input_unc: [1x1 ultidyn] sensor_gain: [1x1 ureal] un_pole: [1x1 ureal]

pathinfo (: 1)%路径USS块
ans = 3x1 cell array {'usim_model/Plant'} {'usim_model/Sensor Gain'} {'usim_model/未建模植物动力学'}

然后使用usample.产生的不确定性值uval与指定的不确定性范围是一致的。例如,您可以模拟为10个的随机值闭环响应unc_poleinput_unc, 和sensor_gain如下:

我= 1:10;uval = usample (uvars);%生成不确定变量的随机实例sim卡(“usim_model”,10);%响应模拟结束

图表的multiplot窗口现在显示了不确定的反馈环路的10个可能的反应。注意,每个uval实例是一个包含不确定变量值的结构input_uncsensor_gain, 和unc_pole

uval不确定变量的%样品值
Uval = struct with fields: input_unc: [1x1 ss] sensor_gain: 0.5893 un_pole: -4.9557

随机模拟

如果需要的话,可以将模型配置为使用不同的不确定性值uval每个新的模拟。要做到这一点,添加uvars到基础或模型工作区,并将usample.打电话到模型InitFcn:

bdclose (“usim_model”), open_system (“usim_model”%在基本工作区中写入不确定变量列表evalin ('根据'' uvars = ufind(“usim_model”);“%修改模型InitFcnset_param(“usim_model”“InitFcn”'uval = usample(uvars);');%模拟十次(与按“Start simulation”十次相同)我= 1:10;sim卡(“usim_model”,10);结束% 清理set_param(“usim_model”“InitFcn”);

再次图表的multiplot窗口显示了不确定的反馈环路的10个可能的反应。

不确定Simulink模型的线性化金宝app

如果您有Simulink金宝app Control Design™,您可以使用相同的工作流来线性化和分析频域的不确定系统。例如,可以绘制模型不确定性的10个随机样本的闭环波德响应图:

清除sysWMAX = 50;%为未建模动态最大固有频率(input_unc)我= 1:10;uval = usample (uvars 1 wmax);sys (:,:, i) =线性化(“usim_model”);结束波特(SYS)称号(“十大线性化USIM \ _model”);

如果操作点是独立的不确定变量的,更快的方法是使用来计算一个不确定的线性化(USS对象)在一杆ulinearize命令:

忙= ulinearize (“usim_model”
usys = 1输出1输入3状态的不确定连续时间状态空间模型。模型不确定性由以下模块组成:input_unc:不确定1x1 LTI,峰值增益= 1,1发生sensor_gain:不确定真实,标称= 1,范围=[0.1,2],1发生unc_pole:不确定真实,标称= -5,范围=[-10,-4],1发生类型"usys。NominalValue“查看名义值”,get(usys)“查看所有属性”,以及“usys. value”。“不确定性”与不确定因素相互作用。

然后可以对不确定状态空间模型进行采样生成类似的波德图:

波德(usample(忙10 wmax))标题(“十大线性化USIM \ _model”);

另请参阅

功能

相关话题