关键词不能为空

当前您在: 主页 > 英语 >

从MatlabSimulink生成易读可重用代码

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-02 11:26
tags:

-

2021年2月2日发(作者:差不多英文)


实用文档




Matlab Simulink


生成易读可重用代码



by:


吴少风


MATLAB


提供从


MATLAB


代码或


simulink


模型生成


C/ C++


代码的功能。从


MATLAB 2011b


版开始,


MATLAB


将代码生成

< br>Coder


作为单独模块发布。


MATLAB

< p>
每年更新两次,经过不断完


善,新版本的


Code r


功能更强大。用


MATLAB


生成< /p>


C/C++


代码具有


MATLAB Coder



Simulink


Coder



Embedded Coder


三个功能模块,


MATLAB Coder



MATLAB


代码生成代码,


Simulink


C oder



Simulink


模型生成 代码,


Embedded


Coder


结合


MATLAB


Coder



Simulink


Coder



生成嵌入式代码。利用代码生 成功能,可以快速从模型生成可靠的代码,应用越来越广泛。



要生成易于阅读、重用性好的代码,


必须进行详细设置。


文中内 容以易读、


可重用为目


标,建立嵌入式代码生成的演示模型,了 解


Simulink


代码生成相关工具,介绍详细设置步


骤,最终生成容易阅读、


可重用代码,供单处理器单任务实时嵌入式系 统应用。文中的方法


为严格控制生成代码的个人总结。


以文档呈 现,


方便自己今后查看,


也希望能为其他人提供


一些方便。




1.


简单示例



本部分搭建一个简单的


PI


控制器模型,示范模型建立、设置 、生成代码的详细步骤。



1)



新建嵌入式代码生成模型,


MATLAB->simulink



New / Embedded Coder / Code


Generation System


。不选择一般

< p>
simulink


模板,可减少模型配置参数的设置。


2)



搭建如

< br>错误!未找到引用源。


所示简易模型,保存文档,设置文件名。

< br>




1.


一个简单示例模型



3)



点击工具栏图标



,设置模型配置参数 ,应用并保存。对嵌入式应用,固定步


长,离散,可调参数,


E RT


目标,


C


语言,设置基本固定,未 设置的地方保持默认。



?



solver options: type -- Fixed step. solver -- Discrete.


?



optimization->signals and parameters:


?



Default parameter behavior -- tunable.


?



Pass


reusable


subsystem


outputs


as


--


输出较多选用


structure


reference.


文案大全



实用文档



?



hardware


implementation:


按实际设


hardware


board,


device,


device


details.


?



code generation:


?



System target file -- , Language -- C, generate code only. code


generation objectives.


?



comments: include comments,


默认全选,可按需要选择。



?



symbols:


命名规则设置,按各自代码规范设置。



?



interface:


设置整个模型生成代码的接口。



?



code interface package


,可选择可重用,


Pass root level I/O as


,模型


输入输出参数一般较多,一般 选择结构体,


structure reference


,模型 数


据、


输入、


输出通过各自独立结构体 传入参数;


part


of


model


data


struct ure



一个结构体传入参数。也可选择不可重用。

< p>


?



configure


model


f unctions



点击进入,


设置模 型具体的


C


原型。


get


default


configuration


,可修改模型默认


initialize/step


函 数名,及参数,各输


入输出单独作为函数参数,这与结构体传参是矛盾的,不能同时设置 。



?



code style:


设置代码风格。



?



Parentheses


括号,


-- Nominal(readability)


,按可读性优化。



?



Casting mode


强制转换方式,


Nominal.


?



Code indentation


代码缩进,


size -- 4.


?



Code


placement:


代码放置,


可 设置变量定义或声明在单独文件还是和源代码放


一起,头文件包含是

< head.h >


还是





?



Data type replacement:


数据类型替换。



4)



设置模型中每一个基本模块的属性。



包括名称、值、数据类型、采样时间等。子模块或者引用模型等这类自定义模块,除了


内 部基本模块的属性外,还要设置各自的模块属性。模块中参数等值,必须按照设计配置;


如果想使用可调参数,


则将参数设置为变量,


再设置变量值。< /p>


生成代码模型中的模块名设置,


最好遵循目标语言的命名规则,< /p>


因为生成代码中的一些名称可以从模块名继承。


嵌入式应用


大多无浮点单元,定点数据的设置在模块属性的代码生成栏。



将图


1


中各模块可按如下方式设置:



?



inport

,点击模块下方名称,设置模块名,将其设置为


In


;双击 模块进入模块属


性设置,


main


栏设 置编号,


编号会体现在子系统或引用模型上;


signal < /p>


attributes


设置数据类型为定点数,

< br>16b


字长


10b


小数部分


fixdt(1,16,10)



其它模块 设置方


法类似。



?



view->model data


,弹出


model data


窗口。


simulink


提供的


mod el data


窗口,


用于显示当前层级下的所有输入输出、信 号、


状态、


参数,


并将对应属性罗列成 表


格,而且表格可编辑部分属性。



文案大全



实用文档



?



Kp


增益模块,


双击模块,

< p>
输出数据类型设置为同输入,


参数数据类型设置为从


Gain


继承,


Gain


设置为


Kp




?




model


data


窗口,


参数栏,


Kp


模块,


值变为


Kp



其后出现


create...


链接字样。


点击弹出


create new data


窗口,值选择


ter


,位置选择


Base


Workspace


,创建,弹出


ter: Kp< /p>


属性窗口,设置值为


10


,数据


类型为定点数


fixdt(1,16,10)


, 存储类型选择


ExportedGlobal


,确定。



?



Ki

< p>
增益模块,使用设置


Kp


的方法将


simulink


参数属性值设为


1

< br>。



?



File->Model


properties


,弹出模型属性窗口,选择数据栏,将数据定义到数据字


典,


选择或新建一个数据字典文件,


应用。


建立在基本工作 区的数据迁移到数据字


典保存。


后面该模型新建参数等数据,< /p>


基本工作区的位置将被数据字典代替。


保存


在基本工作区的数据,


关闭


MATLAB

不会自动保存,


因此一些模型也采用脚本配置。


位置也可选 择模型工作区,


但保存到模型工作区的参数,


有效的存储类型会 受到限


制。



?



unit delay

< p>
单位延时,初始条件设为


0


,状态名称按实际意义 设置。



?



Outport


,数据类型可选自动。




信号名称,可到


model dat a


窗口统一设置,该窗口中选中信号,模型区会用颜色标记


对应 标记。没有设置名称的信号,按照内部规则生成代码。



模型相 关设置,


simulink


还提供


mo del explorer


图形界面统一管理。点击图标


打开。




5)


< /p>


设置完成后,启用


Advisor


检查模 型设置。选择检查项目,


运行检查,修改不符合


的项目。



analysis -> model advisor

< p>
,针对模型,可选项目包括


MISRA



ISO26262


等。选中


by


task


,右侧点击


run selected checks




analysis -> data type design -> fixed point tool


,进入设置后,左侧选择项目,


右侧运行 检查。



code -> C/C++ code -> code generation advisor


,针对生成代码,可选项目有空间< /p>


效率、执行效率、可追踪性、安全预警、


MISRA C: 2012 guidelines


等。



检查项目可能会弹出一些警告,


是之前手动设置的,


这时选择 忽略。


比如内联参数有效


率,但想要用可调参数,就只能忽略检 查时的警告。



6)



点击图标




文案大全




,编译模型生成代码。完成后可查看报告。



实用文档



算法代码如下:




数据定义如下:





文案大全



实用文档



nk


生成代码相关工具



在“


1


简单示例”一节,介绍了代码生成的详细过程 。其中一些常用的工具及菜单,现


罗列于表


1


中。




1.


常用工具及菜单



图标



名称



最方便的位置



功能



Library



Browser


工具栏图标



基本模块库,搭建模型的基本元素所在库。



Model


Configuration


工具栏图标




Parameters



Mode Data


Model



Explorer


模型配置参数,模型仿真、生成代码所依赖 的


全局规则。





View----


列表显示当前层级模型的信号、


参数、


状态等,


-Mode Data


可以在此处集中编辑。



工具栏图标



树状结构的模型管理器, 包括数据、配置、子


模块等。从树状结构可以看出,每一个模型都


单独包含数据数据、配置等元素。



根据选定项,针对模型设 计,进行检查,提供


建议。用户根据建议修改自己的模型。


< /p>


根据选定项,针对代码生成设置,进行检查,


提供建议。用户根据 建议修改自己的模型。




Model Advisor


工具栏图标



Model


Advisor----




下拉



Code


Generation



Advisor



Fixed- Point


Tool




Analysis


---- - data Type


针对定点数设计,进行检验,提供建议。用户


Design



-


可以根据建议修改自己的模型。



Fixed-Point


Tool


工具栏图标



根据配置,编译模型生成 代码。图标下拉栏还


有:编译备选子系统,嵌入式代码快速向导。


快速向导按步骤生成新配置,


并依次生成代码。



模型仿真运行。一般首先会用仿真验证模型。




Build Model



Run


工具栏图标






文案大全



实用文档





保留的默认名称


在“


1


简单示例”一节,生成的代码中出现了一些固定的名 称,这些是代码生成器保留


的默认名称,


用户不能改变。


为方便理解生成的代码,


将这些默认名称及含义列于表


1


中。




2.


生成代码中的默认名称



默认名称



U


Y


B


P


DW


DefaultP


Ext


含义



整个模型的输入模块



整个模型的输出模块



模块输出信号



模块参数



离散模块状态



默认参数



全局类型加的前缀



默认名称



local


rt


rtb


_T


step


含义



局部变量加的前缀



全局变量的前缀,可设置



局部模块输出的前缀,可设置



默认类型后缀,可替换



模型入口,可设置



initialize


模型初始化,可设置






4.


代码重用



该部分将搭建一个稍微复杂模型,封装参数,生成可重用代码。



1)



建立如


错误!未找到引用源。


模型。





2. PID


模型



文案大全


-


-


-


-


-


-


-


-



本文更新与2021-02-02 11:26,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/599343.html

从MatlabSimulink生成易读可重用代码的相关文章