我是靠谱客的博主 开心芹菜,最近开发中收集的这篇文章主要介绍MAB建模规范-Matlab建模规范MATLAB词汇表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

规则ID:db、jm、hd、ar被用于Ver 1.0的规范。na和jc用于从版本2.0到现在创建的规范
NA-MAAB代表北美和欧洲。J-MAAB代表日本
Matlab建模规范主要和matlab function相关

文章目录

  • MATLAB
    • MATLAB外观
      • na_0018: 嵌套的if/else和case语句数
        • 规则:
        • 原因:
      • na_0025:MATLAB函数头
        • 规则:
        • 原因:
    • MATLAB 数据和操作
      • na_0024:MATLAB函数中的共享数据
        • 规则:
        • 原因
      • na_0031:默认枚举值的定义
        • 规则:
        • 原因
      • na_0034:MATLAB Function块输入输出设置
        • 规则:
        • 原因
    • MATLAB使用
      • na_0016:MATALAB Functions的文件长度
        • 规则:
        • 原因
      • na_0017:调用的函数级别数
        • 规则:
        • 原因
      • na_0021:MATLAB函数中的字符串
        • 规则:
        • 原因
      • na_0022:Switch/Case语句的推荐用法
        • 规则:
        • 原因
      • jc_0801:禁止使用 /* 和 * / 注释符号
        • 原因
  • 词汇表

MATLAB

MATLAB外观

na_0018: 嵌套的if/else和case语句数

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a:嵌套if /else和case语句的级别数应受到限制,通常为三个级别

原因:

a:提高可读性 可能无法生成代码。

na_0025:MATLAB函数头

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a:[MATLAB Functions]]应具有描述性标题。标题中的信息可以包括但不限于:
•函数名称•功能描述•假设和限制•与以前版本的更改描述•输入和输出列表

原因:

a:提高可读性、模型仿真、可测试性和工作流 可能无法生成代码。

MATLAB 数据和操作

na_0024:MATLAB函数中的共享数据

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a:信号线应用于连接MATLAB Functions之间共享的数据。 不建议使用data store

function ErrorFlag = 
EngineFaultEvaluation(EngineData,ErrorFlag_In) 
%#codegen 
    RPM_HIGH = 10000; 
    RPM_LOW = 10; 
    HIGHRPMFAULT = 2^1; 
    LOWRPMFAULT = 2^2; 
    ErrorFlag = ErrorFlag_In; 
    if EngineData > RPM_HIGH 
        ErrorFlag = bitor(ErrorFlag,HIGHRPMFAULT); 
    end 
    if EngineData < RPM_LOW 
        ErrorFlag = bitor(ErrorFlag,LOWRPMFAULT); 
    end 
end   
function ErrorFlag = WheelFaultEvaluation(WheelData,ErrorFlag_In) 
%#codegen 
    SLIP_HIGH = 1000; 
    WHEELSLIP = 2^3; 
    ErrorFlag = ErrorFlag_In; 
    if WheelData > SLIP_HIGH 
        ErrorFlag = bitor(ErrorFlag,WHEELSLIP); 
    end 
end 

【不正确】应用规则时不能使用此类型的图案。

function EngineFaultEvaluation(EngineData) 
%#codegen 
    global ErrorFlag_DataStore 
    RPM_HIGH = 10000; 
    RPM_LOW = 10; 
    HIGHRPMFAULT = 2^1; 
    LOWRPMFAULT = 2^2; 
    if EngineData > RPM_HIGH 
        ErrorFlag_DataStore = 
bitor(ErrorFlag_DataStore,HIGHRPMFAULT); 
    end 
    if EngineData < RPM_LOW 
        ErrorFlag_DataStore = 
bitor(ErrorFlag_DataStore,LOWRPMFAULT); 
function WheelFaultEvaluation(WheelData) 
%#codegen 
    global ErrorFlag_DataStore 
    SLIP_HIGH = 1000; 
    WHEELSLIP = 2^3; 
    if WheelData > SLIP_HIGH 
        ErrorFlag_DataStore = 
bitor(ErrorFlag_DataStore,WHEELSLIP); 
    end 

原因

a:使用data store时,数据流的可读性会降低,并可能导致更新引用计时出错。

na_0031:默认枚举值的定义

规则建议:

NA-MAAB: a

JMAAB: a

Matlab版本:all

规则:

a:方法getDefaultValue应用于显式定义枚举的默认值。


也就是说需要定义枚举时需要定义一个getDefaultValue函数来获取默认值

原因

a:当枚举类型没有明确定义的默认值时,所描述的第一个枚举字符串将被定义为默认值,这可能与预期不同。

na_0034:MATLAB Function块输入输出设置

规则建议:

NA-MAAB: a

JMAAB: a

Matlab版本:all

规则:

a:应为[MATLAB Function]的所有输入和输出在model explorer中定义数据类型。

原因

a:为[MATLAB Function]的所有输入和输出定义数据类型有助于防止仿真错误和意外行为。

MATLAB使用

na_0016:MATALAB Functions的文件长度

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a:应限制MATLAB Functions的长度。此限制适用于位于Simulink方框图中的MATLAB Functions和外部MATLAB的.m文件。
建议限制为60行代码。子功能可能会使用额外的60行代码。

原因

a:提高可读性和工作流 可能无法生成代码。

na_0017:调用的函数级别数

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a: 子功能级别的数量应受到限制,通常为三个级别
位于Simulink方框图级别的MATLAB功能块将被视为第一级,除非它只是一个外部MATLABm文件。
这包括在MATLAB块中定义的函数和在单独的m文件定义的函数。
标准实用程序函数(如sqrt或log等内置函数)不包含在级别数中。同样,常用的自定义实用程序函数也可以从级别数中排除。

原因

a: 提高可读性和可测试性

na_0021:MATLAB函数中的字符串

规则建议:

NA-MAAB: a

JMAAB: a

Matlab版本:all

规则:

a:MATLAB函数中不得使用字符串赋值语句。

【错误】MATLAB函数中正在使用字符串赋值语句。

原因

a: MATLAB函数将字符串存储为字符数组。因此,在同一变量中存储不同长度的字符串不支持动态内存分配,这会阻止存储字符串。(在[Switch Case]中使用字符串时,请考虑使用枚举类型)

na_0022:Switch/Case语句的推荐用法

规则建议:

NA-MAAB: a

JMAAB: 不支持

Matlab版本:all

规则:

a: Switch/Case语句应为“Case”参数使用常量值。“Case”参数中不得使用输入变量。

正确:

原因

a:提高了模型仿真和可测试性。 可能无法生成代码。

jc_0801:禁止使用 /* 和 * / 注释符号

由于注释符号/* 和 * / 在生成的代码中自动分配,因此符号不得用于: cgt文件 mpt信号描述 mpt参数说明

原因

a:注释会自动生成,重复注释可能导致生成代码异常

词汇表

本节对指南中使用的术语进行了阐明。

术语定义
Parameters当尚未进行修改时,此术语指的是在基本工作区/模型工作区中定义的常量。
Built-in MATLAB functionsMATLAB函数和脚本
Block所有模块(类型=模块),包括:•子系统•模型•图表(除非另有说明)。标准Simulink库块分为两类:•基本块•结构子系统
Basic Blocks标准Simulink库中的内置块。具有未定义内部处理的块(如子系统)不被视为基本块。基本块可以包括:
Structural subsystem[Subsystems], [models], [charts], and [MATLAB functions] 是用于定义结构的框架,具有用户定义的内部处理的块。
Subsystem子系统,由一个或多个模块组成
Conditional subsystem具有条件输入端口的子系统。
Atomic subsystem一种{BlockType},它是一个“子系统”,将结构子系统作为单个单元执行。Conditional subsystem、 [Chart], and [MATLAB Function]被视为原子子系统。
Port label name结构子系统的输入/输出端口标签。默认情况下,[输入端口]和[输出端口]块的名称放置在子系统中。默认情况下,将显示Stateflow输入/输出数据的名称。屏蔽子系统时,可以更改显示选项
Conditional input blockIncludes [Trigger], [Enable], [Function Call], and [Reset].
Delay block两层含义:1。放置在循环路由中的上一个值参考块,用于消除代数环。使用 [Unit Delay] and [Memory]. 。(稍后从R201b开始)[延迟]块也可以使用
2。保留过去值的块。使用[Unit Delay], [Memory], [Delay], and [Tapped Delay]
Calculation block执行加法和减法运算的具有“Sum”{BlockType}的块。包括[Sum], [Add], [Subtract], and [Sum of Elements].
Multiplication and division block具有执行除法和乘法运算的““Product””{BlockType}的块。包括 [Product], [Divide] and [Product of Elements].
Stateflow blockIncludes [Chart], [State Transition Table], and [Truth Table].
Flow chartstateflow中的信号跳转流
State action type基本状态动作类型和组合状态动作类型。Basic state action types and combined state action types.
Basic state action typeTypes include entry(en), during(du), and exit(ex).
Combined state action type两种或两种以上的基本状态动作类型的组合
• entry(en), during(du)
• during(du), exit(ex)
• entry(en), exit(ex)
• entry(en), during(du), exit(ex)
Statestateflow中的状态。

最后

以上就是开心芹菜为你收集整理的MAB建模规范-Matlab建模规范MATLAB词汇表的全部内容,希望文章能够帮你解决MAB建模规范-Matlab建模规范MATLAB词汇表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部