如何运行一个模型在仿真软件MATLAB函数我模型金宝app参数中定义这个函数呢?

499(30天)
我想模拟一个模型使用“sim”命令从一个MATLAB函数。我的模型有面具参数函数中定义的变量,“fcn_name.m”。我知道仿真软件使用的变量金宝app存储在工作区底部。
有没有一种方法来模拟模型在我没有基础的工作区中创建变量函数?

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2023年4月16日
有几种方法可以使仿真软件使用变量,您指定一个函数里面没有把他们金宝app的基本工作空间。下面列出了其中一些。
1。使用“仿真软件金宝app。SimulationInput”对象
命令“sim”接受“Simulink.SimulationInput”类型的对象。金宝app您可以使用一个SimulationInput对象临时改变你的模型并指定参数,变量,初始状态等。
设置一个变量,使用功能“setVariable”。例如,模拟模型与变量“测试版”作为“f14”100:
modelname =“f14”;
思敏= Simu金宝applink.SimulationInput (modelname);
思敏= setVariable(思敏,“β”,100);
sim(思);
如果你有大量的变量改变在你的模型,你会特别喜欢“loadVariablesFromMATFile”功能,顾名思义,从垫子上加载变量文件。或者,您可以循环调用setVariable的好像都是用“assignin”在未来的选择。
仿真软件的对象”。金宝appSimulationInput”记载://www.tatmou.com/help/simulink/slref/sim金宝appulink.simulationinput-class.html
这里描述的函数“setVariable”是://www.tatmou.com/help/simulink/slref/simulink.s金宝appimulationinput.setvariable.html
这里描述的函数“loadVariablesFromMATFile”是://www.tatmou.com/help/simulink/slref/simulink.s金宝appimulationinput.loadvariablesfrommatfile.html
2。工作空间更改模型
每个仿真软金宝app件模型提供自己的工作区存储变量的值,并且优先于基本工作空间。你可以改变从你的函数模型的工作区,或改变模型的数据源的MAT-file工作区。
这个代码显示了如何以编程方式添加函数的变量模型工作区:
探测= get_param (modelname,“modelworkspace”);
%这里可以定义尽可能多的参数
= 5;
列表=谁;%在函数定义的变量列表
N =长度(列表);
%分配模型中所有的工作区
i = 1: N
hws.assignin(列表(我). name, eval(列表(i) . name));
结束
你可以在这里找到更多的信息://www.tatmou.com/help/simulink/ug/using-mode金宝appl-workspaces.html
3所示。使用仿真软件数据字典金宝app
您的模型可以使用变量从一个模型数据字典。金宝app与模型空间,您可以以编程方式更改数据词典使用的仿真软件模型,或者创建一个新的数据字典来取代一个旧。金宝app
更多信息以编程方式使用数据字典是://www.tatmou.com/help/simulink/ug/store-data-in-dictionary-programmatically.html金宝app
4所示。使用“SrcWorkspace”
这个选项不推荐后释放R2009b。
名称选择“SrcWorkspace”可以改变模型所使用的工作区。使用
simOut = sim (modelname,“SrcWorkspace”,“当前”)
或者把它作为一个选项“simset”:
选择= simset (“SrcWorkspace”,“当前”);
sim卡(“modelname”[]选项)
如何创建变量信息的基础工作空间从一个函数中,访问网址:
10评论

登录置评。

更多的答案(0)

类别

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

下载188bet金宝搏


释放

没有释放进入。

社区寻宝

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

开始狩猎!