使用数学表达式指定变量的值:生成的代码
默认的行为
让我们看的人的模型,使用变量
区域
(我将解释为什么我离开以后斜边):
![area_model.png](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_1.png)
在哪里
区域
创建使用这段代码:
一个= 金宝appSimulink.Parameter (3);
b = 金宝appSimulink.Parameter (4);
面积= Sim金宝appulink.Parameter (slexpr (“(a *) * 0.5”));
![nontunable_code.png](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_2.png)
指定存储类保存表达式
可以为嵌入式编码保存生成的代码的数学表达式通过两个变化:
- 为一个和b改变存储类来定义
- 为区域,设置存储类ExportedGlobal
![tempgif.gif](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_3.gif)
在代码中,
区域
会显示为一个可调参数:
![tunable_code.png](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_4.png)
和的定义
区域
包含了数学表达式:
![area_definition.png](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_5.png)
因为我使用了
定义
存储类
一个
和
b
,这些显示为宏模型中的头文件:
![expression_params_definition.png](http://www.tatmou.com/blogs/simulink/files/slexpr_codegen_6.png)
这些都不是唯一的存储类可以使用。总的原则是:
- 表达式中使用的参数(一个和b),存储类生成一个宏,等定义和ImportedDefine
- 派生参数(区域),必须非自动存储类(例如ExportedGlobal或ExportToFile)
在我的例子中,我遗漏了斜边(
√b ^ ^ 2 + 2)
参数支持因为只有特定的数学表达式,并计算斜边有两个支持部分:金宝app
sqrt ()
函数和
^
操作符
评论
要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。