MWORKS.Sysplorer基于数据字典管理模型参数应用案例

news2024/9/28 7:25:54

1  引言

在面向微控制器的建模过程中,控制算法是可以复用到不同型号的同类产品中的。为了提高控制算法的可移植性,需要将模型与数据分开管理。如果不将模型与数据分开管理,直接将数据保存到模型中,即使在非批产的工程化应用或者小型项目中,也需要逐个点击模块进行修改,效率低且易出错。例如在上篇《基于MWORKS.Sysplorer的电子控制器应用案例-永磁同步电机FOC算法建模》中提到构建FOC算法模型后,需要给模型设置不同参数,就可使用数据字典统一管理算法模型中的数据,实现算法与数据分离。

最新MWORKS.Sysplorer中的数据字典功能具有以下特点:

  • 模型与数据分离;

  • 数据字典独立存储,可重复使用;

  • 统一管理模型不同层级的参数信息;

  • 生成代码的可读性增强。

此外,由于用户既存的Excel格式的数据字典,其列顺序各有不同,手动转换耗时且易出错,MWORKS.Sysplorer增加了脚本命令,用于异构数据字典转化生成MWORKS.Sysplorer的modd数据字典文件,提高了兼容性。

本篇将继续以永磁同步电机FOC为例,介绍如何使用MWORKS.Sysplorer数据字典,实现对FOC模型的数据管理。

2  什么是数据字典

2.1 数据字典概念

数据字典是由多个数据对象组成,以数据对象形式存储模型中的参数、信号的详细信息的持久性数据库。数据字典与模型是多对多关系,以文件形式独立于模型存储,后缀为modd。简单来说,数据字典就是存储模型数据的容器。

数据字典中的每条字典记录为一个数据对象。数据对象具体内容如下:

  • 标识符:参数/信号的别名(必填项)。

  • 描述:参数/信号的描述。

  • 值/初始值:模型中参数/信号的值/初始值(必填项)。

  • 维度:参数/信号的维度([]表示标量)。

  • 最小值:参数/信号的最小值。

  • 最大值:参数/信号的最大值。

  • 单位:参数/信号的单位。

  • 数据类型:参数/信号的数据类型,可选int、float、bool三种类型。

  • 存储类型:可选Auto、ExportedGlobal、ImportedExtern、ImportedExternPointe四种类型。ExportedGlobal表示生成内部定义的全局变量,ImportedExtern表示导入外部定义的全局变量,ImportedExternPointer表示导入指向外部定义的全局变量的指针,默认为Auto类型。

  • 文件名:将该变量生成代码时指定到该文件中。

图2‑1 数据字典表头

2.2数据字典作用

数据字典具有管理模型参数的作用。例如,在MWORKS.Sysplorer中新建一个模型,其中有三个Constant模块,他们参数相同,都是1。

图2‑2 示例模型(一)

如果要将其中的1改成5,就必须修改每个模块。如果Constant模块在模型的不同层级,还需要进入不同层级修改,改动重复且不可持续。

图2‑3 示例模型(二)

因此可在数据字典中新建一个数据对象,让不同层级的Constant模块与其绑定,并在模型仿真时应用数据字典内容,到达模型数据统一管理。

图2‑4 绑定数据对象

3  如何使用数据字典

MWORKS.Sysplorer数据字典入口位置以及数据字典界面功能如下所示:

图3‑1 数据字典面板界面

启动后的数据字典默认是独立非模态窗口,用户可以根据使用习惯选择将其停靠在右下角,如上图所示。

接下来,将基于永磁同步电机FOC模型,介绍如何通过MWORKS.Sysplorer的数据字典功能,实现对模型数据的管理。

3.1 新建数据字典

加载永磁同步电机FOC模型,点击新建字典按钮,确定后完成新建字典并自动与FOC模型绑定,面板其它功能开启。

图3‑2 新建字典

3.2 关联数据字典

加载永磁同步电机FOC模型后,还可以通过数据字典面板的关联字典功能,选择已存在的数据字典文件进入预览,预览确定后即可关联,数据字典面板其它功能也会开启。

图3‑3 关联数据字典文件预览

3.3添加数据对象

永磁同步电机FOC模型新建或关联数据字典后,将模型参数信息保存到数据字典中一般采用以下两种方式:一是通过模块参数设置界面自动添加到数据字典;二是在数据字典面板手动添加后,在参数设置界面使用。下图是将FOC模型中的HSMO系统中QPLL子系统下的PID模块中的比例环节的比例环节系数和积分环节的积分系数绑定数据对象,应用于数据字典中。

图3‑4 添加数据对象

3.4 导入/导出数据

模型绑定数据字典后,可以通过数据字典的导入/导出功能,快速导入其它modd数据字典文件内容至当前数据字典或将当前数据字典内容导出另存为modd数据字典文件。还支持导入/导出Excel格式数据字典文件,用户需要将既存的Excel数据字典修改成MWORKS.Sysplorer支持的Excel格式,即可导入。

下图是FOC模型导入其它数据字典文件界面,确定后勾选变量导入FOC模型的数据字典中。

图3‑5 导入数据字典

4  数据字典应用结果

永磁同步电机FOC模型中,将Clarke模块的输入上下限参数添加到数据字典中,设置参数。

图4‑1 Clarke输入限定初始设置

设置完成后进行仿真,结果如下所示:

图4‑2 Clarke输入限定初始设置仿真结果

在数据字典中调整上下限参数:

图4‑3 Clarke输入限定修改

修改后仿真,结果如下所示:

图4‑4 Clarke输入限定修改后仿真结果

添加所有数据字典的变量后,对FOC模型进行仿真。电机的输出结果如下所示,与预期一致。

图4‑5 FOC模型仿真结果

5  数据字典脚本

此外,考虑到很多用户有大量的既有数据字典资产,通常都以Excel格式保存,MWORKS.Sysplorer中还提供了基于Python的API提供给用户脚本编程能力,让用户将既有资产软件中FOC模型Excel格式的数据字典转换生成数据字典文件。

5.1 构建脚本

MWORKS.Sysplorer数据字典支持导入/导出Excel格式的数据字典,但需要用户手动将Excle格式修改成MWORKS.Sysplorer支持的格式,耗时且易出错。因此,用户可以借助MWORKS.Sysplorer提供的API进行脚本编程,将既有的Excel数据转化成内置的数据字典文件。脚本构建步骤主要分为以下六步:

1)创建自定义函数,读取文件

图5‑1 自定义函数

图5‑2 自定义函数

2)获取表格文件中的信息

图5‑3 读取数据

3)创建数据字典对象

图5‑4 创建数据字典对象

4)添加数据字典记录

图5‑5 添加数据字典记录

5)保存数据字典文件

图5‑6 保存数据字典文件

6)调用自定义函数

图5‑7 调用自定义函数

5.2执行脚本

运行MWORKS.Sysplorer,点击工具-运行脚本,启动Python编辑器,在编辑器中编辑脚本或打开已存在脚本文件,编辑完成后执行脚本。

图5‑8 Python编辑器

执行脚本后生成数据字典文件。

图5‑9 生成结果

5.3 验证脚本

使用数据字典-关联字典由脚本生成的数据字典文件,结果如下所示:

图5‑10 结果展示

6  总结

本文简述了数据字典的概念和用途。基于永磁同步电机FOC模型,介绍如何为模型新建或关联数据字典,在建模过程中如何向数据字典中添加变量,快速导入其它数据字典内容,并展示了模型应用数据字典后的仿真结果。还介绍了如何通过脚本命令,将其它软件中Excel格式的数据字典转换成 MWORKS.Sysplorer 的数据字典文件。

数据字典作用除了本文所述外,对生成的嵌入式代码的表现形式,可读性等也有相应用途。我们将在下期《基于MWORKS.Sysplorer的电子控制器应用案例-永磁同步电机实机控制》中为您讲解,敬请期待!

了解更多MWORKS信息,欢迎关注1月8日同元软控MWORKS 2023产品发布会!

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

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

相关文章

11.前端笔记-Bootstrap前端框架

1.Bootstrap简介 框架: 就是一台架构,有较为完整的网页功能解决方案,而且控制权在框架本身,有预制样式库、组件和插件。使用者要按照框架规定的规范进行开发 参考: 中文官网:http://www.bootcss.com 官…

Spring中实用的11个扩展点

我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程)。 没错,它们是spring的基石,得益于它们的优秀设计,使得spring能够从众多优秀框架中脱颖而出。 除此之外,我们在使用spring的过程中,有没有发现它的扩展能力非常强。由于这个优势的存在,让…

【Vue2+Element ui通用后台】面包屑和tag功能

文章目录面包屑tag面包屑 Element ui 面包屑:显示当前页面的路径,快速返回之前的任意页面,完成效果如下: 我们之前把头部的代码封装到了 CommonHeader.vue 中,面包屑部分直接写死了一个首页,我们可以把官…

C++:STL:常用算法(下):拷贝,算术,集合算法

一:常用拷贝和替换算法 学习目标:掌握常用的拷贝和替换算法 算法简介: copy // 容器内指定范围的元素拷贝到另一容器中 replace // 将容器内指定范围的旧元素修改为新元素 replace_if // 容器内指定范围满足条件的元素替换为新元素…

2023-01-04 Echarts学习笔记(三) Echarts的实际应用场景:在网页中插入Echarts的折线图,饼图和柱状图

文章目录零.准备和说明1.最终页面效果2.资源地址一.网页布局1.网页结构分析2.其他准备3.完整代码index.htmlcss/index.scss4.效果5.知识点(待补充)contentzoomz-index&::afterkeyframe二.插入Echarts图表零.准备和说明 1.最终页面效果 主要分为两个部分,一是先进行常规页面…

BeautifulSoup深入学习

BeautifulSoup深入学习 简介 BeautifulSoup是python的一个库,其提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可…

使用Hog特征进行字母和数字的分类

目的:使用字母数字的二值图像,进行识别: 整体思路: 1)对图像进行预处理; 对收集的单个字符进行二值化,进行数据均衡,并且将所有的字符图片直接resize为20*20(有过进行…

Docker镜像如何上传阿里云

目录 1.前期准备 2.push(推)镜像 3.pull(拉)镜像 1.前期准备 1.注册阿里云账户 阿里云官方网站链接:https://dev.aliyun.com 2.登陆账户 3.配置Docker加速器 注:搜索“容器镜像服务” 4.创建镜像仓库的命名空间 例如:xnx 5.创建镜像仓库(创…

77、【字符串】leetcode ——151. 反转字符串中的单词(C++版本)

题目描述 原题链接:151. 反转字符串中的单词 解题思路 先预处理头部空格和中间多余空格;再将整体进行逆转。例如:the sky is blue —> eulb si yks eht;最后,分别对每个单词进行逆转,即可完成反转字符…

生产制造业订单管理软件如何做好订单变更管理?

生产制造企业,由于客户需求具有多样性和不确定性,客户订单的内容便会存在出现各种变更的可能,如数量、交期、更改具体参数等,提出变更订单,是很常见的现象。生产制造企业常见的订单变更需求1、PMC已经下完制令后&#…

户外运动耳机怎么选、五款最适合户外运动的耳机分享

对于运动爱好者来说,很多人都比较喜欢边听音乐边运动,音乐能够让运动起来更有激情,提升运动锻炼效果。那么到底什么耳机更适合户外运动呢?目前运动耳机在市面上有很多,但不是每一款都适合户外运动,自己找的…

7.Express模块基础用法

Express是做web服务器的,是一个第三方的包,官网 Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档 | Express 中文网 Express的部分用法与http模块类似 在我看来Express是一个轻量级的框架,如果用于做一些较复杂的业务会…

亚马逊、阿里国际、Shopee、Temu等跨境电商平台测评自养号经验分享

对于亚马逊、temu、阿里国际等平台商家来说,流量非常重要。商家需要想办法提高流量。卖家店铺没有流量怎么办? 获取流量的第一点:自然搜索 自然搜索流量的来源实际上是通过站点的优化来提高排名的效果。站点优化有很多维度,如选择合适的关键…

嵌入式工程师招聘要求有哪些?

现在有非常多的朋友会问嵌入式软件工程师在实际的招聘中都是什么样的标准与要求呢,对于这个问题空口无凭,我今天从招聘网站上找了一些典型的招聘案例。 一、嵌入式软件工程师 职位描述: 1、对需求进行分析评审,并输出开发计划&a…

基于Vue和SpringBoot的进销存管理系统的设计和实现

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

【阶段二】Python数据分析Pandas工具使用08篇:探索性数据分析:数据的描述:数据的分散趋势与数据的分布形态

本篇的思维导图: 数据的分散趋势 数据的分散趋势是用来刻画数值型变量偏离中心的程度,最为常用的分散趋势指标有标准差、极差、四分位差等。通过这些指标可以反映样本之间的差异大小,如果指标值越大,说明样本之间差异越明显,反之差异越小。 方差与标准差 …

阿里云产品专家陶炳哲:Java应用最佳实验

2022 年 9 月 28 日,阿里云用户组(AUG)第 11 期活动在深圳举办。活动现场,阿里云产品专家陶炳哲向参会企业分享了《Java 应用最佳实验》。本文根据演讲内容整理而成。 大家好,我是陶炳哲,是阿里云产品专家。…

React(coderwhy)- 02(函数组件)

React的组件化开发 组件化是一种分而治之的思想: 如果我们将一个页面中所有的处理逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。 但如果,我们讲一个页面拆分成一个个小的功能块,每个功能…

191:vue+openlayers 选择feature,固定按钮删除selected feature

第191个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中使用select来选择feature元素,通过按键来删除selected的feature。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共95行)相关API参考专栏目标…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的ROS(Robot Operating System)算法模型

给我推荐20个比较流行的ros算法模型 很好,下面是20个比较流行的ROS(Robot Operating System)算法模型: 便携式机器人操作系统(PR2) 全向轮操作系统(TurtleBot) 机器人操作系统(ROS)用于机器人操作 基于空间相对导航的机器人操作系统(SLAM) 自适应机器人…