字典添加数据_MATLAB自动化——EXCEL与数据字典管理(一)

e018f29b81ac3dfc82b23a9312308c92.png

以下平台同步更新,欢迎喜欢的朋友收藏、分享

知乎专栏:汽车电控杂谈微信公众号:AutoGeeker

33263fdd9128e50dccbd2ee2464f83d5.png

在从EXCEL自动生成Signal和Parameter到Workspace中一文中,我们将所有设计数据都定义在基础工作区。

将设计数据存储位置设置在基础工作区,可以方便对参数数值进行修改,特别适合在开发初期仿真或快速原型阶段,临时存储设计数据。

14f207ac80891e001f9c582ab04b29c7.png

而开发过程中需要长久性的存储设计数据时一般会使用数据字典的形式来进行存储,使用数据字典代替基础工作区来分区数据、跟踪更改、控制访问和共享数据。

b2e1cc3f1e3ab12d17983ab98051fddf.png

当然,如果从模型最终的产物代码来说,不管是用基础工作区还是用数据字典,生成的代码都是一样的。

什么是数据字典?

在Simulink中,数据字典用于存储定义参数和信号的设计数据,也包括模型设置相关的数据。

065b6f9ff769310d216fbc85943c0862.png

以MATLAB2016b中的数据字典为例,数据字典使用sldd文件格式,可在Model Explorer中打开,数据字典中包括三个部分:

  • Design Data:包含定义参数、信号以及决定模型行为的设计数据的变量和数据类型。在字典中创建或导入的设计数据存储在此分区中。
  • Configurations:包含决定如何在仿真过程中配置模型的配置集,如采样时间和仿真开始时间。
  • Other Data:包含与模型有关但在仿真过程中模型不使用的信息,例如描述模型所表示的物理设备和过程的数据。

在较新版本的MATLAB中另外还有Embedded Coder Dictionary:包含用于 Embedded Coder 的代码生成定义。

使用EXCEL管理数据

我们在对模型设计数据的管理时,可以直接使用数据字典进行管理,包括编辑、添加、删除参数或信号等操作。而实际项目共享设计数据时,对方可能未使用或者安装有MATLAB,此时使用EXCEL来进行设计数据管理,并共享是一种比较方便可行的方式。

例如我们可以设计一个设计数据EXCEL模板,模板中尽可能多的涵盖参数或信号的相关信息

信号数据:

2e342c0ecc4f668ca3fdb72bb5c3dc34.png

参数数据:

f7b70d48e0591e8c497c6c2169dc335c.png

EXCEL导入数据字典

实现思路:

  1. 读取EXCEL生成m文件
  2. 新建数据字典sldd文件
  3. 数据字典导入m文件

Step1.读取EXCEL生成m文件

这里偷个懒,代码可参见从EXCEL自动生成Signal和Parameter到Workspace中一文。可以根据实际需要,修改或添加代码,对EXCEL中的信息是否完全提取或者选择部分进行提取。

生成m文件格式大致如下,主要包含有参数、信号的定义。

57572758c1927eec5a825e97c422afb6.png

信号、参数使用Signal和Parameter进行定义,向刚接触Simulink的同学推荐一本教程

京东链接如下:


Step2.新建数据字典sldd文件

见Step3代码


Step3.数据字典导入m文件

主要涉及以下几个功能函数:

  • Simulink.data.dictionary.create 新建数据字典
  • Simulink.data.dictionary.open 打开数据字典
  • getSection 获取数据字典分区,设计数据需要导入到Design Data分区
  • importFromFile 从文件导入数据
  • saveChanges 保存数据字典修改
clear;clc;% save data dictionary file name
[DataDictName,~,~] = uiputfile('*.sldd','Save as a data dictionary file');if DataDictName ~= 0exist_flag = exist(DataDictName,'file');if exist_flag == 0% creat new sldd file in current working folder.NewDictObj = Simulink.data.dictionary.create(DataDictName);
else% open existing sldd file .NewDictObj= Simulink.data.dictionary.open(DataDictName);end% import matlab file to data dictionary [FileName,~,~] = uigetfile('*.m','Import from Matlab file');
if FileName ~= 0DataSectObj = getSection(NewDictObj,'Design Data');% import matlab fileImportedVars = importFromFile(DataSectObj,FileName,'existingVarsAction','overwrite');% save changes
saveChanges(NewDictObj);% msgbox
msgbox('New sldd file has been created.');end
end

实现效果

运行代码,弹窗设置保存sldd文件名

25a3fe04c6fd106a16c863b36f3fa5a9.png

弹窗选择需要导入的m文件

b68b330c819e0356f2d0359fe0caac82.png

导入成功

fc4f5ef7fbf0a9e159b1cecb995bce95.png

可用ModelExplorer打开生成的sldd文件

255b93d3ec948a7492a7360772b43bbb.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】微服务架构SpringCloud和Dubbo的区别?

现在做技术开发都在转型微服务化架构、目前主要的选择就是Dubbo和SpringCloud、 Dubbo dubbo启动流程图 先说说Dubbo吧!Dubbo是基于Tcp协议、是阿里巴巴开源的分布式服务治理框架,出现的时间比Spring Cloud早,并且当时国内在这方面并未成熟&…

ddmmyy日期格式是多少_解锁9个日期时间计算套路,效率提高3.2%

小伙伴们好啊,今天老祝和大家学习一组日期时间计算的套路,让工作效率再高一点点。1、日期时间合并如下图,需要将A列日期和B列的时间合并到一起,变成既有日期又带有时间的数据。C2公式为:A2B22、日期时间拆分如下图&…

基于Java+SpringBoot+vue+element实现婚纱摄影网系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取源码联系🍅 精彩专栏推荐👇&a…

【云原生】SpringCloud-Spring Boot Starter使用测试

目录 Spring Boot Starter是什么? 以前传统的做法 使用 Spring Boot Starter 之后 starter 的理念: starter 的实现: 创建Spring Boot Starter步骤 在idea新建一个starter项目、直接执行下一步即可生成项目。 在xml中加入如下配置文件&…

otn系统中常用的电层_自动化系统中常用的液位计

1、磁致伸缩液位计磁致伸缩液位计由探测杆、电路单元和浮子组成。首先,由电路单元提供电流脉冲,接着脉冲按照磁致伸缩线向下方向传输,构成环形磁场。浮子将会沿着探测杆并随液位的变化而往复移动。同时,浮子内的永磁铁产生一个磁场…

【云原生】微服务SpringCloud-eureka(server)集群搭建

目录 工作原理: eureka 高可用集群 项目创建: Maven 依赖 本地hosts文件修改 启动服务测试 工作原理: Spring Cloud框架下的服务发现Eureka包含两个组件 分别是: Eureka Server与Eureka Client Eureka Server,也称为服务注册中心。各个…

log解析工具 px4_console.log(console.log) = ?

在开始今天的内容之前,先想一下 console.log(console.log) 的结果是啥。前面有一篇文章 别担心把 console 带到线上 介绍了关于 console 在线上不打印的操作,今天我给大家普及另外一种技巧:通过 url 参数控制。比如线上访问地址是&#xff1a…

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取源码联系🍅 精彩专栏推荐👇&#x1…

【云原生】开源数据分析 SPL 轻松应对 T+0

T0问题 T0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据。在数据量不大时,T0很容易完成,直接基于生产数据库查询就可以了。但是,当数据量积累到一定程度时,在生产库中进行大数据量的查询会消耗过多的数…

这款国产API神器工具也太强了吧...让我放弃了postman

今天我发现了一款国产化的API工具,去官网看了下它的中文页面,觉得很干净、倍感亲切,我感觉Eolink结合了postman 和 swagger 的优点。摒弃了不足、甚至发生了公开踩踏事件,最近国产API管理工具越来越卷,但最后还是要回归…

快收藏!最适合计算机大学生的Java毕业设计项目--音乐视频网站系统!

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取源码联系🍅 精彩专栏推荐👇&#x1…

基于Java+SpringBoot+mybatis+vue+element实现旅游管理系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取联系🍅 精彩专栏推荐👇&#…

基于Java+SpringBoot+vue+elementui社区疫情防控系统详细设计实现

博主介绍:✌公司项目主程、全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取联系🍅 精彩专栏推荐&…

基于Java+SpringBoot+vue+elementui药品商城采购系统详细设计实现

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计项目实战✌ 🍅文末获取联系🍅 精彩专栏推荐👇&a…

嵌套页面h5怎么调起手机文件_让微信公众号文章排版像网页h5一样高大上

做过微信公众号文章排版的同学都知道,微信自己的排版工具只能排些简单的图文混合。遇到这种同况时,很多同学会考虑用第三方编辑器或直接用他们的模板,然后稍微改改便直接发布。 没有我想要的排版样式怎么办,可以自己设计吗&#x…

基于JavaSpringMVC+vue实现协同过滤电影推荐系统详细设计

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计项目实战✌ 🍅文末获取联系🍅 精彩专栏推荐👇&a…

Java开源专业计算引擎:跑批真的这么难吗?

业务系统产生的明细数据通常要经过加工处理,按照一定逻辑计算成需要的结果,用以支持企业的经营活动。这类数据加工任务一般会有很多个,需要批量完成计算,在银行和保险行业常常被称为跑批,其它像石油、电力等行业也经常…

8a 中断 传感器采集_加速度传感器的安装,你get了吗

加速度传感器的安装方法不同,对频响曲线的影响也有差异。加速度传感器的固有频率是否发生变化,取决于使用的安装方法(手持、磁铁、胶水、螺栓等)。从表1可知,用螺栓安装在打磨良好的干净平面上时,频响最高,胶水和磁铁的…

基于Java+SpringBoot+vue+elementui农产品物流系统详细设计实现

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计项目实战✌ 🍅文末获取联系🍅 精彩专栏推荐👇&a…

评估指标_机器学习评估方法与评估指标总结

离线评估方法离线评估的基本原理是在离线环境中,将数据集划分为“训练集”和“测试集”,用“训练集”训练模型,用“测试集”评估模型,根据数据集划分方法的不同,离线评估可以分为以下3种。Holdout检验Holdout检验是基础…