Simulink中的鲁棒性分析金宝app

这个例子展示了如何使用Simulink®块和强健控制工具箱™金宝app提供的辅助函数来指定和分析Simulink中的不确定系统,以及如何使用这些工具来执行不确定系统的蒙特卡罗仿真。

介绍

仿真软件金宝app模型usim_model包含一个不确定的植物反馈与传感器:

open_system (“usim_model”)

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

  • 实极,其位置在-10和-4之间变化

  • 未建模的动力学,相当于25%的相对不确定度在低频上升到100%的不确定度在130 rad/s。

反馈路径有一个廉价的传感器,它是由一个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));

金宝appSimulink模块用于不确定性建模和分析

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

打开(“RCTblocks”)

不确定的状态空间块允许指定不确定线性系统(USS对象)。usim_model包含三个以蓝色高亮显示的块。“Plant”块的对话框如下所示。

在这个对话框中,

  • “不确定系统变量”参数指定了不确定的植物模型(具有不确定极点的一阶模型)unc_pole)。

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

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

多图图块是一种方便的方法来可视化的反应蔓延,因为你改变的不确定性。该块将各不确定度的仿真结果进行叠加。

不确定系统的蒙特卡罗模拟

为了便于控制用于仿真的不确定度值,usim_model使用相同的“不确定性值”uval在所有的三个不确定的状态空间块。设置uval[]为的标称值模拟闭环响应unc_pole,input_unc,sensor_gain:

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

要分析不确定性如何影响模型响应,可以使用ufindusample生成随机值的命令unc_pole,input_unc,sensor_gain。第一次使用ufind找到不确定的状态空间usim_model并将这些块中的所有不确定变量编制一个列表:

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

pathinfo (: 1)%路径到USS块
ans = 3x1 cell array {'usim_model/Plant'} {'usim_model/Sensor Gain'} {'usim_model/ unmodeling Plant Dynamics'}

然后使用usample生成不确定值uval符合规定的不确定范围。例如,您可以对的10个随机值模拟闭环响应unc_pole,input_unc,sensor_gain如下:

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

多图图窗口现在显示不确定反馈回路的10种可能的响应。注意,每个uval实例是一个包含不确定变量值的结构input_unc,sensor_gain,unc_pole:

uval不确定变量的样本值
uval = struct with fields: input_unc: [1x1 ss] sensor_gain: 0.5893 unc_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);“);%模拟10次(与按“开始模拟”键10次相同)我= 1:10;sim卡(“usim_model”10);结束%清理set_param (“usim_model”,“InitFcn”,);

再次多图图窗口显示了不确定反馈回路的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: uncertainty 1x1 LTI, peak gain = 1, 1 sensor_gain: uncertainty real, = 1, range = [0.1,2], 1 unc_pole: uncertainty real, = -5, range = [-10,-4], 1 Type "usys "。“NominalValue”用于查看名义值,“get(usys)”用于查看所有属性,“usys”用于查看所有属性。“不确定性”与不确定因素相互作用。

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

波德(usample(忙10 wmax))标题(“usim\_model的十种线性化”);