Matlab模型开发之——Model Reference引用模型笔记

目录

从头开始创建引用模型

准备工作:

架构设计:(更适用从下至上的开发模式)

软件开发tips:

优点:

缺点:

对于已有集成模型转换为引用模型:

Tips:

后言:


从头开始创建引用模型

准备工作:

1、新建文件夹ref专门存放需引用的模型,可根据功能分为子文件夹

2、在MATLAB中添加ref文件夹及子文件夹路径

架构设计:(更适用从上至下的开发模式)

1、根据通讯协议,通讯组件建模(可通过m脚本自动导入)

2、根据需求搭建功能组件框架,其中仅接口

3、从LIB拖取新Model reference模块,直接填功能组件的名称(MATLAB会根据名称在路径中自动引用该模型)

4、根据引入的模型接口,创建集成模型的from goto接口(可通过m脚本自动创建)(所有功能模型的交互均通过from goto)

软件开发tips:

1、保证模型配置与集成模型统一。可通过在集成模型的配置中进行配置传播设置,使引用模型配置与集成模型保持一致。

优点:

1、功能组件模型与集成模型相互独立。各功能组件可以分别版本管理,方便功能模型成熟时多项目开发引用

2、功能组件模型与集成模型保持一致性。若一边改动,另一边会同步自动更新,避免集成模型上变更但组件模型不会迭代更新

3、数据字典可以跟随各功能模型,集成时也是引用的状态

4、方便功能模型测试,避免一个集成模型只有一个大的数据字典,单独功能测试时都需加载很多数据

缺点:

1、一般模型生成代码会在xx_ert_rtw文件中,但使用引用模型后,最外层主模型生成的代码在xx_ert_rtw文件中,内部的引用模型slprj-ert中按照引用模型名称再各个引用模型文件夹中。虽然在代码层面也将引用模型像原子系统一样独立出来,但是代码集成太多较为麻烦。建议通过脚本汇总代码文件方便集成

2、生成代码时会给每个引用模型单独生成缓存文件.slxc,默认生成在当前模型路径下。建议通过matlab-simulink配置自动汇总缓存文件到单独的文件夹中方便管理。

3、每次生成代码时,没有变动的部分会读取缓存文件,引用模型一个个执行生成代码,时间较长;若数据字典中有定义改变,与缓存文件中不同,会导致报错,需要删去MATLAB模型路径,然后删去缓存文件,最好统一删去所有缓存文件及xx_ert_rtw   slprj代码文件,然后重新加载模型路径,重新生成代码,由于没有缓存文件,执行生成代码的时间会更长。

4、项目使用中,偶尔会出现生成代码没有识别到数据字典中几个数据变动,仍根据缓存文件生成代码。

对于已有集成模型转换为引用模型:

方式1:转换为引用模型

1、右键功能模型如下选择

保持默认选项,进行转换的静态扫描

2、会自动在当前模型路径中生成功能模型,集成模型中也已转换为模型引用 

3、生成代码无影响

Tips:

静态扫描时经常报错导致转换不太方便。

方式2:转换为引用子系统

1、右键模型可直接转换

或通过菜单栏转换:

 2、在当前matlab路径下生成同名引用模型

3、若将ref model转移到单独的文件夹管理,记得将ref路径重新选择

 

后言:

        刚开始为了多功能模型团队协同开发,所以考虑使用引用模型的方式,优缺点就像上文中提到的那样,由于每次迭代代码的时间更长还有生成代码时的诸多麻烦,所以后面放弃了这种形式。可能在平台化功能模型定型后想做成库的时候再采用model ref更好,开发过程中使用优势并不明显。

        刚好提到了模型库,至于模型库与引用模型的区别,个人观点,在生成代码上我认为是一样的,模型库更适用于基础功能模块,方便功能建模,适用所有项目软件开发共同使用;而引用模型更适用于功能模型,适用平台项目引用成熟功能模块快速集成。

        另,介绍说model ref可以用于保护模型的功能,可以给模型可读、仿真、生成代码分别设置密码。有待后面有机会再研究。        

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值