人在仿真软件金宝app

金宝app仿真软件和基于模型的设计

使用数学表达式指定变量的值:生成的代码

一段时间前,我发表了一篇我描述的地方 如何使用数学表达式指定变量的值呢 使用 slexpr 函数。这引发了很多的问题对生成的代码从一个模型使用的影响 嵌入式编码器 ™。
为了帮助回答这些问题,我很高兴欢迎回来客人博客 大卫Balbuena

默认的行为

我的第一个想法当我读到人的 最近的帖子 slexpr “代码生成呢? !”
今天,我将向您展示如何使用 嵌入式编码器 ™保存参数表达式生成的代码。
让我们看的人的模型,使用变量 区域 (我将解释为什么我离开以后斜边):
area_model.png
在哪里 区域 创建使用这段代码:
一个= 金宝appSimulink.Parameter (3);
b = 金宝appSimulink.Parameter (4);
面积= Sim金宝appulink.Parameter (slexpr (“(a *) * 0.5”));
如果您生成代码使用的默认设置 金宝appSimulink.Parameter 对象,评估价值 区域 被内联:
nontunable_code.png

指定存储类保存表达式

可以为嵌入式编码保存生成的代码的数学表达式通过两个变化:
  1. 一个b改变存储类定义
  2. 区域,设置存储类ExportedGlobal
我喜欢使用 代码映射编辑器 (ctrl + shift + C),因为我可以批量编辑代码生成与ctrl +单击设置:
tempgif.gif
在代码中, 区域 会显示为一个可调参数:
tunable_code.png
和的定义 区域 包含了数学表达式:
area_definition.png
因为我使用了 定义 存储类 一个 b ,这些显示为宏模型中的头文件:
expression_params_definition.png
这些都不是唯一的存储类可以使用。总的原则是:
在我的例子中,我遗漏了斜边( √b ^ ^ 2 + 2) 参数支持因为只有特定的数学表达式,并计算斜边有两个支持部分:金宝app sqrt () 函数和 ^ 操作符
你可以阅读更多的细节和局限性 文档

现在轮到你了

我们知道这个功能有很多 限制 ,只支持金宝app 有限的操作 。我们正在考虑添加支持更多的操作和删除其中的一些局限性金宝app。如果你有兴趣通过这一功能,但受限制,在下面的评论中让我们知道帮助我们优先考虑。
|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。