simulink仿真不确定性模型,主要学习第二个程序。
mdl = "rctUncertainModel";open_system(mdl)m = 3;c = ureal('c',1,'Percentage',20);k = ureal('k',2,'Percentage',30);usys = tf(1,[m c k])ublk = strcat(mdl,"/Uncertain State Space"); % 水平串联字符串set_param(ublk,"USystem","usys"); % 为mdl 设置不确定系统sim(mdl); % 标称模型阶跃响应%samps = struct('c',1.2,'k',1.7); % 某个不确定参数set_param(ublk,"UValue","samps"); % 设置不确定参数sim(mdl);%uvars = ufind(mdl); % 不确定参数结构体set_param(ublk,"UValue","usample(uvars)"); % 设置不确定参数随机采样sim(mdl);for i=1:5 % 随机绘制不确定参数的响应sim(mdl);end
hinf_1_30_2.m
mdl = "rctMultiUncertainModel";open_system(mdl)input_unc = ultidyn('input_unc',[1 1]);wt = makeweight(0.25,130,2.5);unc_sys = ss(ureal('a',-1,'Range',[-2 -.5]),1,5,0);vals = []; % 默认标称模型sim(mdl);% 随机不确定值运行uvars = ufind(mdl)vals = usample(uvars)sim(mdl)for i=1:5vals = usample(uvars);sim(mdl);end
参数先设置好:
hinf_1_31_2.m
/help/robust/ug/vary-uncertainty-values-across-multiple-uncertain-state-space-blocks.html