人在仿真软件金宝app

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

定制从模型生成的代码金宝app

首先,我想给你一个头来,客人的博客 艾琳McGarrity 很快就会回来更多的帖子呢 金宝app仿真软件编码器 嵌入式编码器 。深入代码生成的话题之前,我认为这将是一个好主意重新定制的基础使用嵌入式程序员从仿真软件模型生成的代码。金宝app
它已经将近10年了,自从上次我写了 代码生成的基本介绍 在这个博客上。你可以想象,事情已经改变了很多,所以这个星期我分享2023版本的嵌入式编码的基本介绍。

默认的行为

让我们这个简单的例子使用嵌入式编码器模型并生成代码
默认情况下,“一步”功能为这个模型是这样的:
虽然这段代码是有效的,有多种原因想定制它。
对于这个示例,我必使生成的代码看起来更像一个人会写什么,使用简单的变量 u y 而不是组织结构 modelname_Y。

使用仿真软件定制代码。金宝app参数和仿真软件。金宝app信号对象

如果我不希望被存储在这些变量 modelname_Y , modelname_P modelname_DW 结构,是定义的“经典”方法 金宝appSimulink.Signal 金宝appSimulink.Parameter 对象不同的建模元素和指定一个不同的存储类:
%输入信号
u = 金宝appSimulink.Signal;
u.CoderInfo。StorageClass =“ExportedGlobal”;
%输出信号
y = 金宝appSimulink.Signal;
y.CoderInfo。StorageClass =“ExportedGlobal”;
%单位延迟状态
x = 金宝appSimulink.Signal;
x.CoderInfo。StorageClass =“ExportedGlobal”;
%获得
一个= 金宝appSimulink.Parameter;
a.CoderInfo。StorageClass =“ExportedGlobal”;
一个。值= 0.1;
%获得B
b = 金宝appSimulink.Parameter;
b.CoderInfo。StorageClass =“ExportedGlobal”;
b。值= 0.9;
在模型中,我把这些对象与信号和块属性:
现在生成的代码是这样的:

定制代码使用代码映射

几年前,我们介绍了 代码的映射 面板给你一个中央位置,您可以配置不同的建模元素如何在仿真软件模型映射到C代码。金宝app
开始,你第一次启动 嵌入式编码器的应用 。这可以从仿真软件的应用美术馆将来发布完成,或者使用键盘快捷键金宝app Ctrl + Shift + C 。正如我所描述的 以前的文章 ,我最喜欢的方式推出这种应用是打击 Ctrl +。 启动操作搜索和类型我所需要的东西:
在C代码选项卡中,界面的代码下拉包含映射的代码相关的条目:
我可以尝试的第一件事就是改变默认的存储类,看看是否我能得到我想要的东西。我设置了港口、外港、状态和外部参数默认存储类 ExportedGlobal :
现在我得到的代码是:
数据不再存储在结构和参数出现 一个 b ,但我仍然需要做一个额外的步骤的信号和状态。
代码映射适用联手 属性检查器 。输入、输出信号和状态,属性检查器允许我指定的标识符。
一旦标识符指定港口和国家,我可以生成代码并确认它的行为就像我期望:
请注意,这两个技术(参数/信号对象和代码映射)并不是相互排斥的。可以指定代码生成的属性使用信号和参数对象的映射代码。这是有用的,如果你想要一个细粒度的规范和/或如果你喜欢把那些规范之外的模型文件。

现在轮到你了

我建议参观 代码的映射 文档阅读更多关于这个主题。
读完这一基本介绍,其他代码生成主题你希望看到在未来的文章吗?在下面的评论中让我们知道。
|
  • 打印

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그인하거나계정을새로만드십시오。