我正在从Simulink R2010a→R2017b移植一个大型Simulink模型。
主要模型基本上是许多交织reference models的胶层。我的目标是使用Coder从此主要模型中生成独立的可执行文件。
在此情况下的参数可调性是通过模型配置参数对话框的优化选项卡上的信号和参数部分来完成的(在标准情况下,单独的模型),而是通过在基本工作空间中构造Simulink.Parameter
对象,并在各自引用的模型或各自的模型工作空间中引用这些对象。 现在,AFAIK,在R2010a中已足够设置
new_parameter.RTWInfo.StorageClass = 'Auto';
new_parameter.RTWInfo.CustomStorageClass = 'Define';
使参数不可调整,并在生成的代码中将其转换为为#define
。在R2017b中,不再允许这样做;如果设置了非空的StorageClass
,则'Custom'
必须
CustomStorageClass
:new_parameter.CoderInfo.StorageClass = 'Custom'; % <- can't be 'Auto'
new_parameter.CoderInfo.CustomStorageClass = 'Define';
但是显然,这不会使参数不可调整:
警告:'[...] / Rate Transition1'的参数'OutPortSampleTime'是不可调整的,但指向可调变量(Simulation_compiletimeConstant(基本工作空间))我在R2017b文档中找不到以编程方式使参数不可调整的任何内容;我只能通过对话框找到如何在独立模型中执行此操作,但这不是我想要的。
有人能指出我正确的方向吗?
NOTE
:过去,Simulink Coder被称为Real-Time Workshop(嗯,Real-time Workshop分为Coder和其他几项内容),因此区别在于[C0 ]与RTWInfo
。请注意,CoderInfo
在R2017b中仍然有效,但是会发出警告并自动转换为RTWInfo
。 我正在从Simulink R2010a→R2017b移植一个大型Simulink模型。对于许多交织的参考模型,主要模型基本上是胶层。我的目标是生成一个独立的可执行文件...