Simulink代码生成:数据字典的建立、关联模型

2024-09-03 11:32

本文主要是介绍Simulink代码生成:数据字典的建立、关联模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文介绍如何建立Simulink数据字典,并关联模型。

文章目录

  • 1 数据字典的作用
  • 2 数据对象的简单概念
  • 3 数据对象的管理方式
    • 3.1 mat文件或m文件
    • 3.2 Excel表格&m脚本
    • 3.3 Simulink自带的数据字典文件
  • 4 建立和关联Simulink数据字典文件
  • 5 sldd数据字典的一些说明
  • 6 总结

1 数据字典的作用

简单来说,数据字典的作用就是把一个模型用到的所有数据对象都统一放到一个地方管理起来。Simulink中,数据对象包括信号对象、参数对象、枚举量、常量等。也就是说,数据字典是很多个数据对象的集合。

2 数据对象的简单概念

举个最简单的数据对象的例子,新建一个Simulink模型,其中有3个Gain模块,他们的放大参数相同,都是2。
在这里插入图片描述
如果要修改的话,就必须每个模块都打开来,把其中的2改成3,会很麻烦。为了解决修改很麻烦的问题,可以在Matlab工作空间建立一个常量Gain_Const=2,再把Gain模块中的放大参数改成Gain_Const常量,如下图所示。需要修改的时候直接把值改成3就行了。这里的Gain_Const就是一个常量的数据对象
在这里插入图片描述
在这里插入图片描述

3 数据对象的管理方式

上一节例子中Simulink模型在仿真的时候可以关联到Matlab工作空间中的Gain_Const常量。但这么做有一个问题,那就是下次重启Matlab的时候,工作空间里的Gain_Const常量就没了,要重新添加进去,才能仿真Simulinnk模型。

因此,要把这些个数据对象保存到本地,然后仿真的时候要加载进工作空间才行。至于怎么把数据对象本地化,博主见过有3种管理方法。

3.1 mat文件或m文件

右键选中Matlab工作区中的所有数据对象(上面的例子里只有一个),将它们另存到本地的mat文件或m文件中。路径最好在Simulink文件的相同路径下。
在这里插入图片描述
在每次打开demo.slx模型前,都把这个demo.mat文件加载到Matlab工作空间中。
在这里插入图片描述
博主认为这么做会有些弊端。首先,每次加载一下文件会很麻烦,不过这还是可以忍受的。比较关键的是,查找和修改数据对象不方便。在企业级项目中,模型往往都很大,里面包含的数据对象非常多,工作区会有许多数据对象,非常不好找。

因为这些弊端,所以很多项目都不用这种原始的方式管理数据字典。

3.2 Excel表格&m脚本

这种方式是把所有的数据对象都写进一个表格中,包括数据对象的类型(信号对象、枚举量、常量等)、参数(包括维度、初始值、StorageClass等)和数值都按照一定的规范列在表格中。然后通过写一个Matlab脚本,把表格中的数据对象定义写到工作空间中。

这个方法本质还是工作空间中的数据对象,但是因为引入了表格,使得数据对象的搜索和查找变得更容易了。不过依然避免不了手动加载到工作空间这一步骤,改一次表格的内容,就要重新运行一次脚本,也是挺麻烦的,所以博主也不推荐。

3.3 Simulink自带的数据字典文件

通过建立一个Simulink自带的数据字典文件(以sldd为后缀),并将其和Simulink模型关联,就可以实现数据对象的管理。博主强烈推荐,下一章会举例讲解sldd文件的建立和关联。

4 建立和关联Simulink数据字典文件

1.打开模型上方工具栏的Model Explorer
在这里插入图片描述
2.File–>New–>Data Dictionary建立一个数据字典,将其命名为demo.sldd,保存在Sminulink文件同一个路径下。
在这里插入图片描述
在这里插入图片描述
3.选中demo下的Design Data,点击上方的Add Matlab Variable,这时中间的数据字典展示栏会显示一个默认的名为“Var”的常量对象。
在这里插入图片描述
4.将它的Name修改为Gain_Const,Value改为2.
在这里插入图片描述
5.右键demo–>Save Changes
在这里插入图片描述
至此,数据字典文件创建完成,一个常数对象添加到数据字典中。接下来就要把数据字典和模型相关联起来。
1.打开Simulink模型–>Model Properties–>Link to Data Dictionary
在这里插入图片描述
2.在弹出的窗口中选中Data Dictionary–>点击Browse…–>在弹出的路径中选中刚刚建立的demo.sldd
在这里插入图片描述
3.点击Apply,这时会出现一个询问窗口,问我们要不要同时关联Matlab工作空间的数据对象。如果勾上了,就不会同时关联Matlab工作空间的数据对象,取消勾选则会同时关联。
在这里插入图片描述
这里博主比较喜欢同时关联,因为可以方便用工作空间中的东西调试模型。不过如果工作空间和demo.sldd中有着同名对象,仿真模型则会报出冲突的错误。

4.这里就关联好sldd文件了,模型上面会出现一行关联成功的提示。
在这里插入图片描述
至此,关联数据字典也就完成了,接下来可以仿真模型或者生成代码。
在这里插入图片描述

5 sldd数据字典的一些说明

1.首先,建立sldd数据字典并关联模型后,在Model Explorer中关掉它也可以正常仿真Simulink模型和生成代码.这就意味着,仿真模型前不需要加载数据字典文件,比前两种每次都要加载的方法要方便。

2.sldd数据字典中可以方便地筛选或者搜索数据对象,如图所示。在这里插入图片描述
3.sldd数据字典要在Matlab地路径列表中,或者在当前路径下。所以最好把sldd数据字典命名为和模型相同,并和模型放在同一路径下。模型拷贝和传输地时候也带上sldd文件。

6 总结

博主现在地工作中已经淘汰掉Excel关联数据字典地方式,而是全线采用Simulink自带的sldd数据字典。所以十分推荐使用sldd数据字典,以后的博客在讲数据对象配置的时候,也是在sldd数据字典中配置的。

>>返回个人博客总目录

这篇关于Simulink代码生成:数据字典的建立、关联模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加