MATLAB/Simulink-以编程方式提供多个外部输入
我有以下Simulink模型: 我想从外部提供输入MATLAB/Simulink-以编程方式提供多个外部输入,matlab,simulink,Matlab,Simulink,我有以下Simulink模型: 我想从外部提供输入u[k]和y[k],即,我将通过MATLAB命令行运行仿真。我希望可以设置[LoadExternalInput和ExternalInput][3]选项,它们默认为向量[tu] 但是我的u[k]和y[k]是向量,看起来ExternalInput只能指定一个向量。因此,[tu]的每一行是时间t时整个向量u的值 在我的模型中,u[k]和y[k]的大小不一定提前知道。有没有一种方法可以传递这些向量(可能是结构体)?从我发现我可以这样做 sim('myM
u[k]
和y[k]
,即,我将通过MATLAB命令行运行仿真。我希望可以设置[LoadExternalInput和ExternalInput][3]选项,它们默认为向量[tu]
但是我的u[k]
和y[k]
是向量,看起来ExternalInput
只能指定一个向量。因此,[tu]
的每一行是时间t
时整个向量u
的值
在我的模型中,u[k]
和y[k]
的大小不一定提前知道。有没有一种方法可以传递这些向量(可能是结构体)?从我发现我可以这样做
sim('myModel', 'LoadExternalInput', 'on', 'ExternalInput', 'u, y');
其中u
和y
是具有字段时间
,信号.值
,和信号.尺寸
的结构;每行信号。值
是对应于时间
的n个元素的向量<代码>信号。维度是信号的维度。值
。我必须手动设置In1端口,以期望与u.signals.values
相同的尺寸(当然,我可以在手动之前通过编程完成):
注意必须将输入端口或触发器块的端口维度参数设置为与相应输入结构的维度
字段相同的值。如果值不同,则尝试模拟模型时会显示错误消息
(来自)
如果我必须手动设置In1块上的尺寸,那么设置signals.dimensions
有什么意义?无论如何,这可能就是我要做的:只需在运行模拟之前检查u
和y
,然后设置Inblock属性(当然是以编程方式)以期望该长度的向量
我仍然希望有一个更优雅的解决方案