I有一个简单的Simulink模型,该模型将常数变量传递给工作空间。
我使用simulinkcoder(以Grt.tlc作为目标系统文件)将simulink模型转换为exe-file。但是,我正在努力地改变常数myConstantValue的值,并将其发送到可执行文件。我不想每次都想更改值时进行编译。 我尝试了几个选项,例如将新的myConstantValue保存在.mat文件中,并使用System('mymodel.exe -p myconstantvalue.mat')在matlab中调用它,或将myConstantValue = 100写给.txt文件并使用一个.txt文件,并使用它来调用。不幸的是,这些方法都不起作用 - 可执行文件始终使用初始数据。 我还尝试在Simulink的代码生成设置中更改各种设置,例如将默认参数行为设置为“可调”,但这并没有任何区别。
您可以帮助我找出如何更改恒定值并将其传递给可执行文件?将常数块的值放置为参数不会将其暴露于外部访问,因为当代码生成时,它将被埋葬在具有本地范围可访问性的地方。 您需要使用
simulink.parameter
对象。为此,将模型保持原样,并在工作区中创建,其对象的名称与您传递给常数的变量相同:
ExportedGlobal
属性是通过使参数成为生成代码中的全局变量来公开参数到外部访问的属性。您可以将其他属性设置为默认值,数据类型,单元,... 您现在应该能够使用SET_PARAM或使用System
命令来传递它,