3.0 Simulink建模规范

目录

1 Matlab-Simulink建模规范简介

2 Matlab-Simulink建模规范

2.1 整体性规则-颜色

2.2 模型架构

2.2.1 顶层(Top Layer)

2.2.2 触发层(Trigger Layer)

2.2.3 结构层(Structured Layer)

2.2.4 数据流层(Data Flow Layer)

2.4 数据类型

2.5 命名规范


  希望大家能够点点赞,点点关注,会结合自身学习逐步地更新相应的知识体系,也希望能够得到大家的指点。共同学习共同进步。

        同时欢迎大家跳转到,整个知识树的目录页进行跳转性查看,点击下方链接或点击上方水管家进入文章,查看左侧专栏“0 技术管理_基于项目的开发管理流程”即可进入知识目录。

0 技术管理_基于项目的开发管理流程_技术开发项目管理流程_水管家的博客-CSDN博客整体的技术管理流程,自己学习过程中的问题和感悟汇总。_技术开发项目管理流程https://blog.csdn.net/STROLL1/article/details/125701942?spm=1001.2014.3001.5502

1 Matlab-Simulink建模规范简介

建模规范主要参考《J-MAAB_SimulinkStyleGuide_Eng》以及《mab-control-algorithm-modeling-guidelines-using-matlab-simulink-and-stateflow-v5》。

建模指南的总体目的是允许建模者对控制系统模型进行一个简单的、共同的理解。指南的主要目标是,

-可读性

              .提高图形的可理解性;

              .提高功能分析的可读性;

.防止连接错误,等。

    -仿真和验证

              .仿真的设定;

              .可测试性。

    -代码生成

              .提高代码的生成效率;

              .确保生成代码的鲁棒性。

2 Matlab-Simulink建模规范

Matlab版本需求:Matlab2020b。

一份合格的Matlab交付文件应当包含有一份用于变量定义的.m文件和相应的Matlab-Simulink主模块。Simulink主模块中右键最外层模块,选中Properties,选择CallBack,InitFcn链接上用于变量定义的m文件中,运行过程中可以直接调用.m文件生成数据空间中的变量。

此时.m文件的命名不能与.slx文件重名,导致.m文件被遮蔽。

图2.0 交付物包含内容

注:所有具有物理含义的变量不可直接使用定值。如门限亦或是滤波值的上下限。

整体的规范按照,整体性规则,模型架构,线的连接方式,数据类型,命名规范等几大部分展开。

2.1 整体性规则-颜色

整体的颜色应当按照如下的规范进行设置:

-白色作为整个幕布的颜色;

-白色作为模块的背景色;

-黑色作为模块的前景色。

图2.1 整体工作区间颜色及字体

2.2 模型架构

控制模型应当按照如下的分层体系进行结构设计。

所有的子模块设置应当按照从上往下,从左往右的优先级进行布置。   

  

图2.2.0 模型概要

2.2.1 顶层(Top Layer

该层主要用来放置模型的输入输出,应当包含有输入,输出,注释,模块名称。

图2.2.1 顶层

2.2.2 触发层(Trigger Layer

 Trigger or function(假装有图片)

图2.2.2 触发层

触发层并非一定存在的层级,该层使用触发条件进行激活模块选择。

注意enable放置在左上角,同时需要注意,Trigger的输出应当选择hold:保留,亦或是Reset:重新计算。

2.2.3 结构层(Structured Layer

描述每个功能(部件)的控制逻辑结构。可以跨多个层次结构进行描述。

图2.2.3 结构层

2.2.4 数据流层(Data Flow Layer

图2.2.4 数据流层

模型数据运算应当满足阅读者尽量少打开阅读的原则进行模型设置。数据流的运算判定关系应清晰的表达出来,

<1> 使用compare而非compare constant。同时所参与比较的Constant变量应当设置为变量,而非数值。

<2> Switch也应当维持原则,体现清楚,且条件仅为不等于0。

<3> 状态机中也要注意,其判定条件的运算不应该在Stateflow中进行比较。

<4> 信号无连接用Terminator,信号源无连接如果是默认0使用Ground。

2.3 线的连接方式

应当按照直线原则,且尽量少使用Goto-From;

禁止使用代数环,图下图所示,代数环是无解的,因为x=1,同时x=2*x。

图2.3 无解代数环

禁止进行十字交叉形式的线连接;

2.4 数据类型

变量的数据类型,初始设置的过程中就需要进行设置。

表2.1 Simulink支持的Matlab的数据类型

序号

名称

描述

备注

此列无数据,用以显示齐全左侧

1

double

双精度浮点

2

single

单精度浮点

3

int8

有符号 8 位整数

4

uint8

无符号 8 位整数

5

int16

有符号 16 位整数

6

uint16

无符号 16 位整数

7

int32

有符号 32 位整数

8

uint32

无符号 32 位整数

9

int64

有符号 64 位整数

10

uint64

无符号 64 位整数

11

fixdt(0,16,0)

固定点数据类型,表示无符号,16位,0个小数点位

(有无符号,位数,小数点数)

数据类型中存在Simulink中的DataType进行数据确定,也可以在输出模块内选择确定的数据类型,整体的数据流应确保设计人员了解数据运算。

同时进行运算以及比较的数据应当确保相同的数据类型。

2.5 命名规范

Matlab官方支持的命名规范如下:通识性原则,除去Matlab本身已有的,所有的模型,变量,块,输入输出应当满足如下:

-可以使用大小写字母及数字(a-z,A-Z以及0-9)作为命名元素;

-可以使用“_”,英文状态下的_线作为连接线;

-上述允许元素仍有部分注意事项:

      .禁止使用“_”作为开头结尾的变量,例如禁止“_a”以及“a_”;

      .禁止使用“数字”作为开头,例如禁止“0a”;

      .禁止使用“__”,两个“_”作为变量名称的一部分;

-禁止使用上述之外的其余元素;

-禁止使用以存在的名称,如ans等;

-如果多个名称相同的文件,在同一路径下,则会加载路径上较高的文件,所以会导致可读性受损。

-模型文件名长度最多应为63个字符(不包括点和扩展名)。

-数据字典(sldd)应仅定义模拟流或状态流模型中使用的数据。

-模型工作区应仅定义模拟流模型或状态流模型中使用的数据。

-保留的C变量名不能在MATLAB代码中作为变量名使用。例如,避免在MATLAB代码中使用const、TRUE、FALSE、无穷大、nil、双个、单个或枚举。

除此之外,还有一部分的可以使用但尽量不要使用的,例如

-在变量名称中使用数据类型。例如:“g_ABS_WhlSpd_u16”,如果进行数据类型变更后,还需要对变量名称进行更改,较为复杂。

基于上述的命名规范,暂时使用如下,进行命名。

g_ABS_p_WheelSpd_ms:以下划线为分界线,分为四大部分或是五大部分。(加个单位)

表2.2 命名规范

序号

名称

描述

备注

此列无数据,用以显示齐全左侧

1

g/l

符合规范加的变量_用以区分c中的全局/局部

规范中提及最好用小写字母开头

2.1

ABS

模块名称

2.2

ABSTx

从ABS模块外发的信号

2.3

RxABS

从ABS接收的模块

3.1

p

模型内部的变量-Parameters

小写

3.2

s

观测量-Scope

3.3

c

标定量-Calibration

3.4

md

宏定义-Macro defined

3.5

i

输入-input

3.6

o

输出-output

4

Whlspd

具体的变量

5

ms

单位

注意不能使用其余符号,如/

欢迎各位关注我家的公众号。

如果有需要电子书Simulink教程的也可以点击下方链接,前往购买。看个人需求,网站也会一直更新最新学习记录。

https://item.taobao.com/item.htm?ft=t&id=734232991688https://item.taobao.com/item.htm?ft=t&id=734232991688

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水管家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值