• 建模规范:环境设置


    本文描述MAAB建模规范的意义,同时研究一下环境设置规范。

    1 建模规范

    Mathworks公司针对汽车行业提出了MAAB建模规范,通过遵守建模规范,可以提高模型的可读性、提高代码生成质量。模型工程师应该在开发过程中遵守建模规范。

    建模规范分为很多章节,包括命名规范、架构规范、模块规范、Stateflow规范等。注意,博主后续文章中不会逐条分析MAAB建模规范,而是研究其中比较重要的部分,并且结合工作经验谈谈实际应用中是如何实现的以及为什么要这么做。

    本文先描述最简单的环境搭建规范。

    2 环境设置

    2.1 Matlab版本

    项目开发团队中,要保证所有人都用的相同版本的Matlab。Matlab软件本身每年都会发两版更新,不同版本之间有着细微的差异。例如,对于相同的模型,2015b版本和2020a版本生成的代码会有少许差异。两个人进行同样的生成代码的流程,但是结果却不一样,这是有极高风险的。所以统一版本是首当其冲的。

    在Matlab中,输入以下指令可以查看版本以及工具箱信息:

    >> ver
    
    • 1

    回车以后会出现如下结果:
    在这里插入图片描述

    2.2 内置编译器

    团队需要在Matlab中安装相同的编译器,用于Simulink的S-Function或者调用外部C函数时的编译。

    在Matlab中,输入以下指令可以查看编译器信息:

    >> mex -setup
    
    • 1

    回车以后会出现如下结果:
    在这里插入图片描述
    从中可以看出安装的编译器是MinGW64

    2.3 模型配置

    另外,项目团队成员一定要使用同样的模型配置,以确保在不同人的电脑上都能获得相同的仿真结果或生成相同的代码。

    点击Simulink界面的小齿轮,就可以打开如下配置窗口。相同的配置指的是这里的每一个选项都要一样。
    在这里插入图片描述
    为了实现每台安装Matlab的电脑在建模时都有同样的配置,可以使用以下两种方法。

    2.3.1 引用数据字典中的配置

    在模型同目录中可以建立一个数据字典sldd文件,其中除了数据以外,还能存放模型配置信息。
    在这里插入图片描述
    通过模型关联数据字典中,就可以使用其中的配置文件。此时,如果再打开模型中的小齿轮,就会提示配置已经引用数据字典中的了。
    在这里插入图片描述
    该方法的优点在于加载速度快,缺点在于不能直观地查到配置项,却容易出现误篡改的情况。因此,如果团队技术比较稳定,不怎么修改配置项的时候可以考虑使用此方法。

    2.3.2 打开模型时导入配置

    很多公司的做法是通过把所有的配置项放在一个表格中管理,然后打开一个模型时通过脚本配置模型。方法如下:

    1)首先需要制定一个表格模板Config.xlsx,其中记录了配置属性和数值;

    在这里插入图片描述
    2)如果希望模型在启动后就导入配置,可以在Callback的PostLoadFcn中编辑导入脚本;
    在这里插入图片描述
    通过该方案,可以在模型打开后直接将表格中的配置覆盖进去。

    3)如果希望模型在启动后先不导入配置(可能只是看一下模型,不想等待导入的时间),而是由工程师在仿真前手动进行导入,则可以用一个双击子系统的方式;

    在这里插入图片描述
    用这种方式,只要对Config.xlsx表格进行版本管理,那么每个人都拿到最新的表格导入配置,就可以实现每个人的配置相同。即使时临时修改配置用于其他验证,下一次打开模型还是可以按照模板中标准的配置进行导入。

    具体脚本实现的过程可以参照博主其他文章。

    3 总结

    环境设置是建模规范的第一步,在此基础上才可以进行分工搭建模型。

    >>返回个人博客总目录

  • 相关阅读:
    Windows/Ubuntu双系统给Ubuntu磁盘扩容核心步骤
    springboot的@ConditionalOnClass注解
    WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法
    算法刷题介绍
    Shell脚本文本三剑客之awk编辑器
    软件配置 | pip下载第三方库文件及配置pip源的不完全总结
    MCE | 表观遗传:YTHDF蛋白调节 m6A-RNA
    【springBoot】博客系统
    Python字典-dict “ “ ---记一次查缺补漏“ “
    【Promise】Promise 使用 / 回调地狱问题 async-await /宏队列与微队列
  • 原文地址:https://blog.csdn.net/u013288925/article/details/125417925