主要内容

在不重新编译生成的代码的情况下运行批次模拟

此示例显示如何在不重新编译生成的代码的情况下运行批处理仿真。该示例通过从MAT文件读取数据来修改输入信号数据和型号参数。在第一部分(步骤1-5)中,通过更改传输功能阻尼因子,从Simulink®模型创建十个参数集。金宝app十个参数集保存到MAT文件,RSIM可执行文件读取从文件中设置的指定参数。在该示例的第二部分(步骤6-7)中,使用越来越高的频率产生五组信号数据啁啾。在这两个部分中,RSIM可执行文件运行该组模拟并创建包含特定模拟结果的输出垫文件。最后,MATLAB®图中出现了运行的复合。

要在Simulink环境中快速运行多个模拟,请考虑使用快速加速器而不是RSIM。金宝app看加速度是什么?

步骤1.制备

确保当前目录是可写的,因为此示例将是创建文件。

[stat,fa] = fileattrib(pwd);如果~足总。UserWrite disp (“此脚本必须在可写的目录中运行”);返回结尾

打开模型并配置它以使用RSim目标。有关图形化操作和设置其他RSim目标相关选项的更多信息,看这里

mdlName ='RTWDEMO_RSIMTF';open_system (mdlName);c = getActiveConfigSet (mdlName);cs.switchTarget (“rsim.tlc”,[]);

的MAT-file rsim_tfdata。Mat在本地目录中是必需的。

如果〜isempty(dir(“rsim_tfdata.mat”)), 删除(“rsim_tfdata.mat”);结尾str1 = fullfile (matlabroot,“工具箱”'RTW''RTWDEMOS''rsimdemos'“rsim_tfdata.mat”);str2 = ['拷贝文件('''str1,”、“rsim_tfdata.mat”、“可写”)”];eval(str2);

步骤2。构建模型

构建模型的RSIM可执行文件。在构建过程中,为模型计算结构校验和,并嵌入到生成的可执行文件中。此校验和用于检查传递给可执行文件的参数集是否与其兼容。

评价(“基地”'w = 70;')评估(“基地”'theta = 1.0;') disp (“构建编译过的RSim模拟。”)RTWBUILD(MDLNAME);
构建编译的RSIM仿真。###开始构建过程:RTWDEMO_RSIMTF ###成功完成构建过程:RTWDEMO_RSIMTF构建摘要顶部模型目标构建:模型动作重建原因=============================================================================================== rtwdemo_rsimtf代码生成和编译的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 12.407s

步骤3.获取默认参数集并创建10个参数集

disp ('创建RTP数据文件'为了我= 1:10%使用新的阻尼因子提取电流RTP结构。[rtpstruct] = evalin (“基地”“rsimgetrtp(“rtwdemo_rsimtf”),“);savestr = strcat('拯救参数',num2str(i),'.mat rtpstruct');eval (savestr);评价(“基地”'theta = theta - 1;');结尾disp ('完成创建参数数据文件。'
创建RTP数据文件已完成创建参数数据文件。

步骤4。使用新参数集运行10个RSim模拟并绘制结果

数字为了我= 1:10%bang out并使用新的参数数据运行模拟runstr = ['。'filesep,“rtwdemo_rsimtf - p参数”,num2str(i),“.mat”“v”];[状态,结果] =系统(RUNSTR);如果状态~= 0,错误(结果);结尾将负载仿真数据装入MATLAB进行绘图。加载RTWDEMO_RSIMTF.MAT.;轴([0 1 0 2]);绘图(RT_TOUT,RT_YOUT)保持结尾

图中显示了10个模拟,每个都使用了不同的阻尼因子。

步骤5.设置时间向量和初始频率矢量

当我们想对仿真结果进行加窗和频谱分析时,时间矢量有4096个点。

dt = .001;nn = [0:1:4095];t = dt * nn;[m,n] =尺寸(t);wlo = 1;whi = 4;欧米茄= [WLO :((whi-wlo)/ n):whi  - (whi-wlo)/ n];

步骤6.在MAT文件中创建5组信号数据

使用chirp数据创建.mat文件。

disp (这个例子的这一部分展示了一个由5个情节组成的序列。每一个的) disp (图显示了一个特定频率范围的输入啁啾信号。为了我= 1:5 wlo = whi;whi = 3 * whi;%不断增加频率欧米茄= [WLO :((whi-wlo)/ n):whi  - (whi-wlo)/ n];%在真实应用程序中,我们建议使用啁啾使用开窗函数(汉明或汉宁窗等)%此示例不使用窗口函数。u =罪(ω。* t);tudata = (t, u);%每次通过时,将一组tudata保存到下一组% .mat文件。savestr = strcat(“保存扫描”,num2str(i),'.mat tudata');eval (savestr);%显示每个啁啾。请注意,这只是输入数据。%模拟尚未运行。plotstr = strcat(“次要情节(5 1”,num2str(i),”),“);eval (plotstr);情节(t, u)暂停(0.3)结尾
示例的这一部分演示了一个由5个图组成的序列。每个图都显示了一个特定频率范围的输入啁啾信号。

步骤7.使用新的信号数据运行RSIM编译的仿真

用文件sweep1替换原始信号数据(rsim_tfdata.mat)。垫,sweep2。席子,等等。

disp ('开始批量模拟。'为了我= 1:5%bang out并使用rsim运行下一组数据runstr = ['。'filesep,“rtwdemo_rsimtf - f rsim_tfdata.mat =扫描”......num2str(i),'.Mat -v -tf 4.096'];[状态,结果] =系统(RUNSTR);如果状态~= 0,错误(结果);结尾将数据加载到MATLAB中并绘制结果。加载RTWDEMO_RSIMTF.MAT.plotstr = strcat(“次要情节(5 1”,num2str(i),”),“);eval (plotstr);情节(rt_tout rt_yout);轴([0 4.1 -3 3]);结尾变焦% 清理评价(“基地”'清除wθ') disp (这个例子的这一部分展示了一个由5个情节组成的序列。每个情节') disp (显示下一个频率范围的仿真结果。使用') disp (鼠标,放大每个信号观察信号振幅) close_system (mdlName, 0);
起始批量模拟。示例的这一部分演示了一个由5个图组成的序列。每个绘图显示下一个频率范围的仿真结果。使用鼠标,放大每个信号以观察信号幅度。