主要内容

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

此示例显示了如何使用强大的控制工具箱™提供的Simulink万博1manbetx®块和辅助功能,以指定和分析Simulink中的不确定系统,以及如何使用这些工具来执行不确定系统的Monte Carlo模拟。

介绍

仿真软件万博1manbetx模型USIM_MODEL.由带有传感器反馈的不确定植物组成:

open_system ('USIM_MODEL'

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

  • 真正的杆子,其位置在-10到-4之间变化

  • 未建模动态,在低频时为25%相对不确定度,在130 rad/s时为100%不确定度。

反馈路径具有廉价的传感器,其由20 rad / s的一阶滤波器建模,并且不确定的增益范围在0.1和2之间。要指定这些不确定的变量,型

%一阶工厂模型unc_pole =尿素的(“unc_pole”5,'范围',[ -  10 -4]);植物= ss(Unc_pole,5,1,1);%未建模的植物动态input_und = ultidyn('input_unc',[1 1]);wt =制造(0.25,130,2.5);%传感器增益sensor_gain =尿素的('sensor_gain', 1'范围'(0.1 - 2));

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

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

打开(“RCTblocks”

不确定的国家空间block允许你指定不确定的线性系统(USS对象)。USIM_MODEL.包含三个这样的块,用蓝色突出显示。“Plant”块的对话框出现在下面。

在此对话框中,

  • “不确定系统变量”参数指定不确定的工厂模型(具有不确定杆的一阶模型Unc_pole.)。

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

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

多图图Block是一种方便的方法,可以在改变不确定性时可视化响应的传播。该块叠加每个不确定性值的模拟结果。

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

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

uval = [];%使用不确定变量的标称值SIM('USIM_MODEL'10);%模拟响应

要分析不确定性如何影响模型响应,可以使用ufind.usample的随机值Unc_pole.input_unc,sensor_gain。首次使用ufind.找到不确定的国家空间USIM_MODEL.并编译这些块中所有不确定变量的列表:

[uvars, pathinfo] = ufind ('USIM_MODEL');乌瓦尔斯%不确定变量
UVARS =带字段的结构:INPUT_UNC:[1x1 ULTIDYN] SENSOR_GAIN:[1x1尿液] UNC_POLE:[1x1尿液]

PathInfo(:1)%路径到USS块
ans = 3x1 cell array {'usim_model / plant'} {'USIM_MODEL / SENSOR GAIN'} {'USIM_MODEL / OVENELED PLAND DYNAMICS'}

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

为了我= 1:10;uval = USAMPLE(UVARS);%生成不确定变量的随机实例SIM('USIM_MODEL'10);%模拟响应结尾

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

uval.%不确定变量的样本值
UVAL =带字段的结构:INPUT_UNC:[1x1 SS] SENSOR_GAIN:0.5893 UNC_POLE:-4.9557

随机模拟

如果需要,您可以配置模型以使用不同的不确定性值uval.对于每个新的模拟。要做到这一点,请添加乌瓦尔斯到基础或模型工作区并附加usample调用模型InitFcn:

bdclose('USIM_MODEL'),Open_System('USIM_MODEL'%在基础工作区中写下不确定的变量列表评价(“基地”'UVARS = UFIND('USIM_MODEL'');'%修改型号为“InitFcn”set_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™,则可以使用相同的工作流程来线性化和分析频域中的不确定系统。例如,您可以绘制闭环Bode响应的模型不确定性的10个随机样本:

清晰的SYS.wmax = 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. "查看名义值,“get(usys)”查看所有属性,以及“usys。“不确定性”与不确定元素相互作用。

然后,您可以确定不确定的状态空间模型usys.要生成类似的Bode Plot:

BODE(USAMPLE(USYS,10,WMAX))标题(usim\_model的十个线性化);

也可以看看

职能

相关的话题