MAB规范(1):概览介绍

2024-06-01 17:36
文章标签 介绍 概览 规范 mab

本文主要是介绍MAB规范(1):概览介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

MATLAB的MAAB(MathWorks Automotive Advisory Board)建模规范是一套由MathWorks主导的建模指南,旨在提高基于Simulink和Stateflow进行建模的代码质量、可读性、可维护性和可重用性。这些规范最初是由汽车行业的主要厂商共同制定的,但其适用范围已经扩展到其他行业。

在这里插入图片描述

本专栏将基于Version 5.0版本进行主要内容的翻译和对其中内容做一些补充解释,如有不全和不恰的地方,也请多批评指正,欢迎一起交流!

1 主要内容

MAB的5.0版本,各章节的主要内容如下:

第1章 - 这些指南的目的以及指南模板的概述。
第2章至第5章 - 指南规则
第6章 - 术语表
第7章 - 评估和实施指南的项目流程
第8章 - 高级用户所需的模型架构和操作。
第9章 - 有关Simulink/Stateflow功能的额外解释和建模信息,包括建模模式。

主要涉及到关键点有:

1. 模型组织和结构

  • 分层建模:使用层次结构对模型进行组织,以便于理解和管理。建议使用子系统(Subsystem)和参考模型(Model Reference)来分离不同的功能模块。
  • 命名规范:建议使用有意义且一致的命名规则,包括模型文件、子系统、信号和参数的命名,以提高可读性。

2. 信号和总线

  • 信号命名:信号名称应描述信号的意义和单位,避免使用默认名称(如"Out1"或"In1")。
  • 信号路由:应避免信号线交叉,保持模型清晰。建议使用Goto和From标签来简化信号连接。
  • 总线使用:总线(Bus)可以有效地管理多个信号,但应确保总线信号的定义和使用的一致性。

3. 参数和数据管理

  • 使用参数:尽量使用参数而非硬编码数值,以提高模型的灵活性和可维护性。可以通过MATLAB变量、Simulink参数对象(Simulink.Parameter)等来实现。
  • 数据类型:应明确指定信号和参数的数据类型,避免使用默认的双精度浮点类型,除非确有必要。

4. 状态机设计

  • Stateflow命名规范:状态、事件和数据的命名应遵循一致的规则,避免使用默认名称。
  • 状态层次结构:使用层次结构组织状态,确保状态图清晰易读。复杂的状态逻辑应拆分成多个子图。
  • 动作语言:建议使用MATLAB作为Stateflow的动作语言,以便与MATLAB代码无缝集成。

5. 建模风格和可读性

  • 注释和文档:充分使用注释来解释模型中的关键部分和复杂逻辑,以提高模型的可读性和可维护性。
  • 图形布局:保持模型的图形布局整洁,避免不必要的线条交叉和重叠。

6. 仿真和验证

  • 模型验证:在模型开发的各个阶段进行充分的验证,包括单元测试、集成测试和系统测试。可以使用Simulink Test等工具进行自动化测试。
  • 仿真设置:合理设置仿真参数,确保仿真结果的准确性和稳定性。例如,选择合适的仿真步长和求解器。

7. 代码生成

  • 代码生成选项:为模型设计代码生成参数,以优化生成代码的性能和可读性。使用Embedded Coder等工具进行嵌入式代码生成时,确保配置正确的代码生成选项。
  • 代码可读性:生成的代码应尽量保持可读性和可维护性,必要时可以使用自定义代码模板。

MAAB建模规范通过提供这些详细的指导,帮助开发人员创建高质量的Simulink和Stateflow模型,进而提高整个开发过程的效率和可靠性。更多详细信息和最新的规范,可以参考MathWorks官方网站上的相关文档和指南。

2 目录导览

版本说明:

Control Algorithm Modeling Guidelines Using MATLAB®, Simulink®, and Stateflow®
Version 5.0
MathWorks Advisory Board (MAB)

在这里插入图片描述

Chapter1 Introduction:MAB规范(2):Introduction 介绍

Chapter2-5 Guideline rules:

Chapter6 Glossary:

Chapter7 Determining Guideline Operation Rules:

Chapter8 Model Architecture Explanation:

Chapter9 Appendices:

这篇关于MAB规范(1):概览介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1021668

相关文章

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系