此示例显示了如何使用强大的控制工具箱™提供的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));
这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_unc
那sensor_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 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的十个线性化);