Simulink - 以编程方式指定外部输入

时间:2011-12-21 22:11:28

标签: matlab simulink

我想以编程方式调整一些Simulink参数,即指定外部输入和初始状态。 Mathworks在Data Import/Export上的帮助文档显示了如何以可视方式和编程方式执行此操作。显然,对于外部输入,我需要指定LoadExternalInputs'on';我想通过ExternalInput覆盖默认外部输入到[myTimeVar, myInputVar],如该链接中所述。

尝试运行命令

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', [myTimeVar, myInputVar]);

产生以下错误消息:

  

参数'ExternalInput'

的block_diagram'mySim'中的设置无效

如果我不打算在sim()电话中指定我的外部输入,我该去哪里做?我对如何指定输入和状态感到很困惑。

3 个答案:

答案 0 :(得分:5)

ExternalInput参数必须是字符串,请尝试:

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', '[myTimeVar, myInputVar]');

答案 1 :(得分:2)

正如@MikeT所指出的,sim命令以参数名称 - 值方式工作,因此参数名称和值都必须是字符串。命令应该是:

sim('mySim','LoadExternalInput', 'on', 'ExternalInput', [myTimeVar, myInputVar]);

我认为参数'LoadExternalInput'不是必需的,但无论如何,它都是'LoadExternalInput'而不是'LoadExternalInputs'。我用get_param('modelName','ObjectParameters')

检查了它

一些重要的评论:

备注#1:

使用sim时,Simulink会自动将工作区切换到模型,因此如果在MATLAB函数或unitTest中执行sim,可能会出错。

备注#2

'ExternalInput','Inputs'对中,'Inputs'应包含所有列向量输入的逐列串联,从时间向量开始:'[myTimeVar, myInputVar1, myInputVar2, ..., myInputVarN]',所有列向量。< / p>

答案 2 :(得分:0)

MATLAB中的

help sim向我展示了与您正在使用的命令格式不同的命令格式:

[t,x,y] = sim(model,timespan,options,ut);

我想也许这就是你想要的?

sim('mySim', myTimeSpan, [], [myTimeVar, myInputVar]);

(其中myTimeSpan是模拟的时间跨度)