主要内容

Simulink中的鲁棒性分析万博1manbetx

本示例展示了如何使用Simulink®块和鲁棒控制工具箱™提万博1manbetx供的助手函数在Simulink中指定和分析不确定系统,以及如何使用这些工具对不确定系统进行蒙特卡罗模拟。

简介

Simu万博1manbetxlink模型usim_model由带有传感器的不确定反馈装置组成:

open_system (“usim_model”

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

  • 真正的极点,其位置在-10和-4之间变化

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

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

一阶植物模型un_pole = ureal(“unc_pole”5,“范围”, -10 [4]);Plant = ss(unc_pole,5,1,1);未建模的植物动态Input_unc = ultidyn(“input_unc”[1]);Wt = makeweight(0.25,130,2.5);传感器增益%Sensor_gain = ureal(“sensor_gain”, 1“范围”(0.1 - 2));

万博1manbetx用于不确定性建模和分析的Simulink块

RCTblocks库包含在Simulink中建模和分析不确定性影响的块。万博1manbetx要打开库,请键入

打开(“RCTblocks”

不确定状态空间块允许您指定不确定的线性系统(USS对象)。usim_model包含三个这样的块,用蓝色突出显示。“Plant”块的对话框如下所示。

在这个对话框中,

  • “不确定系统变量”参数表示不确定的设备模型(带不确定极点的一阶模型)unc_pole).

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

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

多图图块是一种方便的方法来可视化响应扩散当你改变不确定度。该块叠加了每个不确定性值的模拟结果。

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

为了方便控制用于模拟的不确定度值,usim_model使用相同的“不确定值”uval在这三个方面不确定状态空间块。设置uval[]的标称值模拟闭环响应unc_poleinput_unc,sensor_gain

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

要分析不确定性如何影响模型响应,可以使用ufind而且usample的随机值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] unc_pole: [1x1 ureal]

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

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

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

多图图窗口现在显示不确定反馈循环的10个可能的响应。请注意uvalInstance是一个包含不确定变量值的结构input_uncsensor_gain,unc_pole

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

随机模拟

如果需要,您可以配置模型以使用不同的不确定性值uval对于每个新的模拟。为此,添加uvars到Base或Model工作区,并附加usample调用InitFcn模型:

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

再次多图图窗口显示了不确定反馈循环的10种可能的响应。

不确定Simulink模型的线性化万博1manbetx

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

清晰的sysWmax = 50;未建模动态的最大固有频率(input_unc)我= 1:10;Uval = usample(uvars,1,wmax);Sys (:,:,i) =线性化(“usim_model”);结束波德(sys)标题(“usim\_model的十个线性化”);

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

Usys = 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次Type "usys。“NominalValue”查看标称值,“get(usys)”查看所有属性,“usys”查看所有属性。“不确定性”与不确定性元素相互作用。

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

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

另请参阅

功能

相关的话题