目前,我正在研究Simulink模型,并希望获得其C代码(批处理/.exe文件),以便在不进行进一步编译的情况下使用它。我已经生成了代码(使用RSIM),当我使用不同的输入(与创建批处理时使用的输入具有相同的长度)运行生成的.exe文件时,一切运行正常。但是,当我更改输入的长度(从加载.mat文件的“从文件”块读取多个可变长度的输入)时,模拟崩溃。因此,我的问题是:
是否有任何方法可以在生成的代码或MATLAB / Simulink中指定(在编译之前),每当我要运行批处理时,我都希望修改输入的长度,以便可以根据以下内容设置所有变量的长度输入?类似于声明一个变量,该变量指定其余变量的长度
为轻松说明我的问题,假设我将可变输入长度连接到多端口交换机的输入端口(它接收具有不同长度的不同.mat文件)。因此,当我运行批处理时,将输入长度与生成批处理时的长度进行比较,就会出现此错误:
Simulink无法将可变大小模式从“ MANUAL / Drive Cycle / Cycle Speed(预期)/ Subsystem / caicycle2”的输出端口1传播到该端口的输入端口2 “手动/驱动循环/循环速度(预期)/子系统/多端口开关”。该输入端口需要固定大小的模式。可变大小模式源自 “手动/驱动循环/循环速度(预期)/子系统/ caicycle2 / MATLAB功能”。检查“手动/驱动循环/循环速度”的配置 (预期)/子系统/多端口交换机”用于以下情况之一:1)该模块不支持可变大小的信号; 2)该模块支持可变大小的信号,但 需要为其配置。
是的,我已经加粗了开关提供的选项“允许不同的输入大小(导致可变大小的输出信号)”。这个问题不仅发生在开关上,而且还会阻塞信号流。有人可以给我提示我如何解决这个问题吗?预先感谢!