Matlab编程技巧:通过脚本创建/修改Simulink数据字典

2024-09-03 11:38

本文主要是介绍Matlab编程技巧:通过脚本创建/修改Simulink数据字典,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Simulink数据字典中的配置影响了模型生成的代码。本文举例说明如何通过Matlab脚本创建或修改Simulink数据字典。

文章目录

  • 1 数据字典的概念
  • 2 手动创建/修改数据字典
  • 3 通过脚本创建/修改数据字典

1 数据字典的概念

数据字典中存储了Simulink模型中的数据信息和模型配置信息。在生成代码的时候,模型和数据字典一般是配套的。
数据字典通常分为两个分区,Design Data和Configurations,分别存储了数据信息和配置信息。
对于模型中的输入输出接口、观测量和标定量一般会在Design Data中定义好。模型的相关配置和生成代码的配置信息一般在Configurations中定义好,而不采用模型自身的配置。

2 手动创建/修改数据字典

1.首先在matlab命令行输入’daexplr’,打开Model Explorer
2.点击File–New–Data Dictionary,在弹出的窗口中新建数据字典
在这里插入图片描述
3.在左侧的视图栏会出现刚刚建立的数据字典,选中Design Data分区
在这里插入图片描述
4.在上方的工具栏可以新建参数、信号等,并配置属性
在这里插入图片描述

3 通过脚本创建/修改数据字典

假设有一模型demo.slx,
在这里插入图片描述
通过脚本根据Outport端口名称建立数据字典,Signal属性如下:

NameSignal1
Data Typesingle
Initial Value0
Storage ClassExportToFile
Header FileGlobal.h
Destination FileGlobal.c
OwnerJackson

需要通过Simulink.data.dictionary类的方法完成数据字典的建立和修改,脚本如下:

function CreateSldd()
%创建Signal1的Simulink.Signal对象Signal1Obj = Simulink.Signal;Signal1Obj.DataType = 'single'; %类型Signal1Obj.InitialValue = '0'; %初始值Signal1Obj.StorageClass = 'ExportToFile (Custom)'; %存储方式Signal1Obj.CoderInfo.CustomAttributes.HeaderFile = 'Global.h'; %头文件Signal1Obj.CoderInfo.CustomAttributes.DefinitionFile = 'Global.c'; %源文件Signal1Obj.CoderInfo.CustomAttributes.Owner = 'Jackson'; %Owner
%创建数据字典并加入Signal1对象dictionaryObj = Simulink.data.dictionary.create('demo.sldd');sectionObj = getSection(dictionaryObj,'Design Data');addEntry(sectionObj,'Signal1',Signal1Obj);
end

运行脚本,会在Matlab当前路径创建demo.sldd的数据字典文件,里面包含了名为“Signal1”的信号对象,属性如图所示
在这里插入图片描述
如果已有数据字典文件,则脚本改用Simulink.data.dictionary.open()即可添加数据字典内容。

>>返回个人博客总目录

这篇关于Matlab编程技巧:通过脚本创建/修改Simulink数据字典的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S