#定义在模型库文件预处理语句金宝app

8视图(30天)
读完mathworks支持的这篇文章,我想把这个应用到一组金宝app模型库:金宝app
//www.tatmou.com/matlabcentral/answers/184184-how-do-i-make-sure-金宝appsimulink-constants-are-coded-as-define
然而,似乎库没有选项,本文指出(至少我没有找到)。有没有一种方法在模型浏览器中定义一个自定义类型创建一个# define语句和一个常数,用预处理器# define语句生成C代码?
4评论
DKalale
DKalale 2018年2月15日
你是正确的,你的链接是非常有用的。当我去直属Model Explorer和看我的图书馆”仿真软件根“我可以添加数据,然后我可以设置为常量。金宝app然而,我不能添加“数据”子系统块在我的图书馆(所以我不能添加一个常数)
然而,我有一个与各种子系统,我使用函数库,我想添加预处理器定义常量(即像根号2——我叫它kRootTwo)。现在当我在图书馆的定义一个常数模型浏览器内容的观点中,我创建了kRootTwo数据,但当我去打电话给我在另一个仿真软件功能模型(项目)中定义的kRootTwo变量没有出现该仿真软件的内容模型。金宝app所以我得到一个错误。
你知道任何方式让我定义的常数库和模型库函数吗?我想这意味着我需要在本地定义的常数的函数库。

登录置评。

答案(1)

Chetna耆那教徒的
Chetna耆那教徒的 2018年2月16日
你好,
尝试使用“asignin”方法来获取所需的功能。
InitFcn 回调的图书馆使用“assignin (ws,“var”, val)”。
这种分配价值val工作区中的变量var ws(在这里,ws =“基地”)
这将使模型使用从图书馆查看数据子系统。
如果常量参数特定于某个子系统在你的图书馆,你可以用“assignin”功能
Susbsystem InitFcn回调。
在这种情况下,而不是将var模型的工作区中,把它放在子系统InitFnc回调。
例如,子系统InitFcn会看起来像:
kRootTwo = 金宝appSimulink.Parameter
kRootTwo。值= 1.414
assignin (“基地”,“kRootTwo”,kRootTwo);
要理解“assignin”功能,下面提到的链接:
希望这可以帮助!
1评论
DKalale
DKalale 2018年2月17日
这几乎完全是我所需要的东西。我最终把Init调下面的代码:
kRootTwo = mpt.Parameter;
kRootTwo。值= 1.4142135623730950488016887242097;
kRootTwo。数据类型=“单一”;
kRootTwo.RTWInfo。StorageClass =“自定义”;
kRootTwo.RTWInfo。别名=;
kRootTwo.RTWInfo。CustomStorageClass =“定义”;
assignin (“基地”,“kRootTwo”,kRootTwo);
所以我父母“模型”,我把这段代码在Init调孩子的“模型”(这就是我想要的# define语句)。使用上面的代码如下:
正确使用常数C代码的子模型 * . c文件:
并将# define语句在父的模型 * . h文件。
现在,这是好的,因为自动生成代码自动包含了“父。h”头文件。然而,有一个办法常数定义的”孩子。h”C头文件或文件?

登录置评。

类别

找到更多的在子系统帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!