我有以下Simulink模型:
我想在外部提供输入 u[k]
和 y[k]
,即我将通过MATLAB命令行运行模拟 . 我可以设置[LoadExternalInput和ExternalInput] [3]选项,它们默认为向量 [t u]
.
但我的 u[k]
和 y[k]
是向量,看起来 ExternalInput
只能指定一个向量 . 所以 [t u]
的每一行都是 t
时的整个向量 u
的值 .
我的模型中的 u[k]
和 y[k]
的大小不一定是提前知道的 . 有没有办法传递这些向量(也许是结构)?
1 回答
从Importing Data to Root-Level Input Ports我发现我可以做类似的事情
其中
u
和y
是具有字段time
,signals.values
和signals.dimensions
的结构;signals.values
的每一行是对应于time
的n个元素的向量 .signals.dimensions
是signals.values
的维度 . 我必须手动设置In1端口以期望与u.signals.values
相同的维度(好吧,我当然可以在编程之前以编程方式进行...):(来自"Importing Data Structures to a Root-Level Input Port")
如果我必须手动设置In1块上的尺寸,那么设置
signals.dimensions
有什么意义呢?无论如何,可能必须如何做到这一点:在运行模拟之前检查u
和y
,然后设置Inblock属性(当然是以编程方式)以期望该长度的向量 .我仍然希望有一个更优雅的解决方案 .