设置从工作区块功能

1视图(30天)
亚历克·里德
亚历克·里德 2019年2月25日
回答: 拉胡尔·库马尔 2019年4月27日
我试图从一个函数设置模型对象值创建并行的代码。万博1manbetx我的简单的模型是一个“从工作区”块范围:
我可以轻松地发送一个矩形的思块下面的代码:
sim_in = 万博1manbetxSimulink.SimulationInput (“my_model”);
思敏。时间= [0 1 2 3];
simin.signals。值= (0 0 1 0)';
out_data = sim (sim_in)
但是我想这个规模,发送100个不同的矩形脉冲,我难以设置思。时间和simin.signals。在一个函数值。
的目标代码会看起来像这样:
mdl =“my_model”;
N = 100;
sim_in (1: N) 万博1manbetx= Simulink.SimulationInput (mdl);
i = 1: N
sim_in (i) = sim_in (i) .setPreSimFcn (@ (x) set_values (x,我));
结束
out_data = sim (sim_in);
函数set_values (sim_in t)
思敏。时间= [0 t t + 1 + 2);
simin.signals。值= (0 0 1 0)';
结束
我怎么设置思敏从内部块set_values函数?最终目标是取代sim (sim_in) parsim (sim_in)。
谢谢!

答案(1)

拉胡尔·库马尔
拉胡尔·库马尔 2019年4月27日
嗨,亚历克,
您可以使用setVariable SimulationInput对象上的方法为变量指定一个新值
这是你修改脚本(我也降低了模拟数到10,这样您就可以暂停set_values函数和见变化范围)
mdl =“my_model”;
N = 10;
sim_in (1: N) 万博1manbetx= Simulink.SimulationInput (mdl);
i = 1: N
sim_in (i) = sim_in (i) .setPreSimFcn (@ (x) set_values (x,我));
结束
out_data = sim (sim_in);
函数sim_in = set_values (sim_in, t)
思敏。时间= [0 t t + 1 + 2);
simin.signals。值= (0 0 1 0)';
sim_in = sim_in.setVariable (“思”思敏);
结束
请尝试一下,让我知道如果你有任何更多的问题。
——拉胡尔

类别

找到更多的在基于组件的建模帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!