(1)在simulink里面把你想要输出的变量放到simout里面(simulink里面sinks部分里面有),simout调整成一个向量形式(save format选array)
(2)写个m文件:
// 假设你的mdl文件名是abc.mdl
simresults={};
for i=1:100
sim('abc');
simresults=[simresults simout];
end
(3)执行m文件,完了之后simresults的每一列就是每一次模拟的结果(不同时间时不同的x),一共会有100列。在这个cell阵里面找你想要的最大值即可。求最大值的代码都可以放到上面的m文件代码后面一并执行。例如
xmax=-inf;
for i=1:100
mat=simresults{1,i};
xmaxtest=max(mat);
if xmaxtest>xmax
xmax=xmaxtest;
end
end
附:可以先试试这个
simresults=[];
for i=1:100
sim('abc');
simresults=[simresults simout];
end
xmax=max(max(simresults));
如果这个运行不出错的话simresults会是一个100列的矩阵,在这个里面找最大值xmax更方便。
(注意!不要直接copy paste这里的代码,会出错的!自己手打进去比较好)
matlab 添加
rng ('shuffle')
%每次都自动改seed