持续完善中。。。。。
参考
- simulink 帮助
- 嵌入式开发书籍
Simulink仿真及代码生成技术入门到精通
基于模型的设计及其嵌入式实现- MAAB建模规范
varible | meanings | varible | meanings | ||
---|---|---|---|---|---|
matlabroot | 安装目录 | gcs | 当前模型系统 | ||
bdroot | 当前模型 top path | gcb | 当前选中的模块 | ||
gcbh | 当前选中模块handle |
simulink labrary :slblock.m
simulink memu: sl_customiztion.m
matlab 启动:matlabrc.m ,run control
custom storage class:csc_registration.m
帮助了查询Common Block Properties关键词
属性 | 含义 | 范围 |
---|---|---|
filepath | bdroot | |
Name | ||
showname | ||
handle | ||
AttributesFormatString | 自定义显示的内容 | |
BlockType | block | |
Type | line block | |
Position | [50 250 125 275] 四个点坐标 | |
PortConnectivity | 与之连接的模块handle | |
LinkStatus | block |
cscdesigner:custom storage class
structure
graph RL
csc(custom storrage class)
C(package)
C-->csc
C-->Sec(section)
subgraph custom storrage class
csc-->D(data)
csc-->Ini(初始化)
Ini-->Macro
Ini-->I(初始值)
Ini-->Dyn(动态)
end
subgraph section
D-->Sec
Sec-->Post(Post-memory-section pragma)
Sec-->Pre(Pre-memory-section pragma)
Sec-->Com(注释:/* */)
Sec-->Q(修饰词:const volite static)
end
ctrl + M :快速封装
ctrl + U:快速打开
port :
port_label('output', 1, 'xy')
port_label('input',1,'num1')
文字显示:disp
多功能文本:
text(5,10, 'Reena')
多边形:
patch([0 10 20 30 30 0], [10 30 20 25 10 10],[1 0 0])
线段:
plot([10 20 30 40], [10 20 10 15])
字体颜色:
color('red')
传递函数:droots([-1], [-2 -3], 4)
parameter
initialize
建立library 的模型
模块封装
实现本地改动,link设置为none
%copyFcn
slblock.m
内容如下
function blkStruct = slblocks
% This function specifies that the library should appear
% in the Library Browser
% and be cached in the browser repository
Browser.Library = 'mytest';
% 'mylib' is the name of the library
Browser.Name = 'pyb';
% 'My Library' is the library name that appears in the Library Browser
blkStruct.Browser = Browser;
s函数的使用,动态库,tlc文件支持代码生成
常用的语法,流控制,记录添加,函数的定义
类似Json数据格式的一致结构化存储方式
rtwbuild 函数
模型生成:
rtwbuild(model)
子系统的代码生成:
rtwbuild(‘ObsrVehMtn_M/ObsrVehMtn’,‘Mode’,‘ExportFunctionCalls’)
```
GUI
user-defined module is system function for
主要的方法
legacy_code('help')
specs = legacy_code('initialize')
legacy_code('sfcn_cmex_generate', specs)
legacy_code('compile', specs, compilerOptions)
legacy_code('generate_for_sim', specs, modelname)
legacy_code('slblock_generate', specs, modelname)
legacy_code('sfcn_tlc_generate', specs)
legacy_code('rtwmakecfg_generate', specs)
legacy_code('backward_compatibility')
% legacy_code('initialize') 返回值的结构
SFunctionName: ''
InitializeConditionsFcnSpec: ''
OutputFcnSpec: ''
StartFcnSpec: ''
TerminateFcnSpec: ''
HeaderFiles: {}
SourceFiles: {}
HostLibFiles: {}
TargetLibFiles: {}
IncPaths: {}
SrcPaths: {}
LibPaths: {}
SampleTime: 'inherited'
Options: [1x1 struct]
mytest.h
和 mytest.c
在matlab的setpath 目录下,包含mytest(uint8 u1, uint8 u2) def = legacy_code('initialize');
def.SFunctionName = 'test_SF';
def.OutputFcnSpec = 'uint8 y1 = mytest(uint8 u1, uint8 u2)';
def.HeaderFiles = {'mytest.h'};
def.SourceFiles = {'mytest.c'};
legacy_code('sfcn_cmex_generate', def);% 生成c 代码的s-function
legacy_code('compile', def); % 编译c 代码为 Mex(matlab execu)
legacy_code('slblock_generate', def);
生成tlc文件用于代码生成
基本的控制文件
a2l的原理和API
dsdd_export_a2l_file('Application', [CodegenFunction '_Tmp'],... % 模型名字
'StyleSheet', A2lStylesheetName,... % A2L的格式
'TargetConfig', TargetConfig,...
'File','sample.a2l'],... % 文件的名字
'ProjectFrame', 'on',... % a2l的 project 项目
'OverwriteCalProperties', 'on',...
'MergeA2lModules', 'on',...
'UseLookupStructures', 'off');
SW-C的命名规则
变量名的命名规则
缩写库:首字母,辅音缩写
场景或模块,部件,数据类型,物理含义,具体描述
一般而言,SW-C的名字代表使用场景或功能;数据类型可以直接跟物理含义挂钩,每一种物理量固定一种数据类型。
VmcBMS_UAtcHi
Top layer / root level
SW-C
Trigger layer
simulink的 triger,enable等
Structure layer
功能进行分割:如滤波
Data flow layer
block注释
模块的参数需要显示出来
模块 | 标注内容 | |
---|---|---|
saturation | up down的限值 | |
SW-C的功能注释