基于MWORKS.Sysplorer的电子控制器应用案例——永磁同步电机FOC算法建模

news2024/12/26 11:49:48

1  前言

MWORKS是面向数字工程的新一代科学计算与系统建模仿真平台,可提供机械、电子、液压、控制、热、信息等多领域统一建模仿真环境。经过同元持续攻关,全新推出的MWORKS.Sysplorer嵌入式代码生成器,现已支持面向电子控制器的产品级的嵌入式代码生成功能,其仿真与代码生成支持多种范式建模并且运行效率高,同时兼容多操作系统以及封装硬件底层驱动,并且在机器人控制、工业控制、白色家电、汽车电子以及航空航天行业中有切实的落地案例。

MWORKS.Sysplorer嵌入式代码生成器具有以下特点:

  • SysplorerEmbeddedCoder模型库提供图形化建模便于统一规范设计,团队分工并行开发,提高整体开发效率;

  • 图形化建模更利于保存逻辑思维,方便修改;

  • 模型仿真提供变量监测,早期验证设计结果,不需要编译运行;

  • 代码生成与模型一致性强,有效避免人为编码引入的bug;

  • 代码生成兼容性高,支持多操作系统以及封装硬件底层驱动。

文章《基于MWORKS.Sysplorer的电子控制器应用案例》分为上中下篇,内容包括建模工具、模型仿真、数据字典绑定以及嵌入式C代码生成并集成到电子控制器实际运行过程。本文为上篇,主要围绕基于MWORKS.Sysplorer搭建的永磁同步电机控制模型展开讲述,模型如下图所示:

△ 永磁同步电机(FOC)可视化模型

2  背景介绍

本篇使用MWORKS.Sysplorer嵌入式代码生成工具中的SysplorerEmbeddedCoder模型库,基于矢量控制(FOC)原理建立了永磁同步电机(PMSM)的控制器模型,其中包括克拉克变换(Clarke)、帕克变换(pake)、帕克反变换、基于正交锁相环的滑膜观测器、电流PI控制和空间矢量脉宽调制(SVPWM)等模块,以及将控制器模型与MWORKS.Sysplorer电机模型库中的永磁同步电机(PMSM)模型相连,进行控制算法模型在环(MIL)仿真验证。

△ 控制器设计流程

3  状态机

MWORKS.Sysplorer支持状态机模型建模,SysplorerEmbeddedCoder模型库中提供的状态机模块支持用户为控制器搭建状态转移模型,搭建状态逻辑方式比传统编程语言中的嵌套条件分支语句更加高效。图形化界面可帮助用户轻松了解其中的逻辑关系,也方便设计的交接,便于新人后期对于逻辑的修改。

在状态机中,用户不仅能够设置默认状态,还能够在转移连线上设置转移条件来实现状态之间的切换。

△ 状态机模块建模

除此之外,状态机还提供了用户自定义输入输出端口。在完成状态机建模之后,用户可以为所需要的状态变量设置输入输出、数据类型以及初始值等,并且会在状态机外观形成对应端口。

△ 状态变量设置

MWORKS.Sysplorer提供模型仿真、信号观测等功能,用户可在仿真结果中监测不同的状态变量。

△ 仿真结果监测

小到LED开关,大到百万级的复杂系统状态切换,状态机在其中都起着至关重要的作用。利用可视化模型能够很大程度上减少传统代码设计系统的人工与时间成本,从而提高建模与设计效率。

4  FOC控制

矢量控制(FOC)的基本思想是模仿直流电机的磁场定向方式。其原理为:以转子磁链方向作为旋转坐标系的参考方向,依据该坐标系,将定子电流分解为与转子磁链同方向的定子电流励磁分量和与磁链方向正交的定子电流转矩分量。其中克拉克变换(Clarke)、帕克变换(Park)、帕克反变换、基于正交锁相环的滑膜观测器、电流PI控制以及空间矢量脉宽调制算法(SVPWM)等都包含在整个FOC的控制器模型中。

△ FOC整体模型

其中,所有的算法都可以拆分成为基础的数学表达式。SysplorerEmbeddedCoder模型库中包含MathOperation库,它可提供大量的基础数学计算包括三角函数等模块来满足用户对于控制器算法功能的需求,目前已支持150个各类型模块。

△  ECG数学计算库

克拉克变换(Clarke):

三相系统中的电压、电流等状态变量存在不同程度的耦合,通过三相坐标变换可以将耦合的对称三相系统解耦为可以独立控制的两相系统,从而降低控制器设计的复杂程度。

△ 克拉克变换公式

了解理论之后,根据推断出来的矩阵公式可以得知:最终克拉克变换所使用到的数学操作只有加减法与乘法。基于MWORKS.Sysplorer中的模块,构建控制器模型,用户只需将其从模型浏览器中拖进编辑窗口进行连线与设置参数即可。

△ 克拉克变换模型

其仿真数据可以通过MWORKS.Sysplorer中的仿真界面来查看,最终的仿真结果能够达到预期。

△ 克拉克变换仿真结果

帕克变换(Park):

由于PID控制器对直流参考信号的跟踪效果更好,因此在克拉克变换之后需要将静止的α,β坐标系转换为旋转的d,q坐标系。

△ 帕克变换

得知理论,同理寻找SysplorerEmbeddedCoder模型库中的对应模块搭建算法模型:

△ 帕克变换模型

得到预期仿真结果:

△ 帕克变换仿真结果

空间矢量脉宽调制(SVPWM):

SVPWM的主要思想是以三相对称正弦波电源电压的矢量和所形成的标准矢量圆为参考,通过控制三相逆变器的IGBT开关不同导通顺序及时间,所形成的PWM波形,通过电压的时间积所形成的电压矢量来追踪标准的矢量圆。通过互差120度大小随着时间按正弦规律变化的3个分矢量,来合成一个大小不变旋转的总矢量。它们将360度的电压空间均分为6个扇区,可以合成任何方向上的空间矢量,使直流母线电压的利用率有了很大提高,且更易于实现数字化。

△ 恒定旋转磁场

由于逆变器三相桥臂共有6个开关管,为了计算各相上下桥臂不同开关组合时逆变器输出的空间电压矢量,又将电压矢量分为6个扇区,每个扇区对应不同算法,所有模块都是由SysplorerEmbeddedCoder模型库搭建完成。

△ SVPWM

经过处理后的仿真结果符合预期,而SVPWM作为算法中的最后一个模块,也使得最终电机的输出结果如同预期一样稳定。

△ SVPWM仿真结果

5  自动化脚本建模

此外,MWORKS还支持自动化脚本建模,这一功能对于有建模标准化需求的用户至关重要。自动化脚本建模不仅支持用户添加模块、添加连线、设置参数等,还能够做到批量绑定模型一键替换,减少因手动替换模型而造成的不必要误差。

△ 自动化脚本建模

6  结语

MWORKS.Sysplorer的嵌入式代码生成工具中的SysplorerEmbeddedCoder模型库为用户提供了基本的视图化建模能力,其中状态机提供了一种逻辑思维转图形化的建模功能,其余模块则为用户提供了基本视图化的算法建模能力,仿真结果监测的功能更是方便了用户对于模型的检查与调试,自动化脚本建模提高了用户建模的规范性、提供复用性和模型可读性。MWORKS.Sysplorer的灵活性适用于市场上所有主流控制器,从而帮助工程人员提升设计效率,支持实际航空航天、汽车、工业控制、智能家居、机器人等各行业工程应用。

由于篇幅限制,对于用户感兴趣的“在模型中变量如何处理”问题我们将在下期《基于MWORKS.Sysplorer的电子控制器应用案例——模型数据管理》为大家详细解答,并重点讲述数据字典绑定相关功能。后续还有“代码生成以及代码烧录运行功能”文章详解,敬请期待!

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

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

相关文章

循环神经网络的简洁实现

参考8.6. 循环神经网络的简洁实现 — 动手学深度学习 2.0.0 documentation 本节将展示如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 pip install mxnet1.7.0.post1 pip install d2l0.15.0 from mxnet import n…

ubuntu18.04下用Fiddler抓取curl库网络数据包总结

本人在ubuntu18.04下进行开发,需要使用http和服务端进行通信,为了确认自己发送给服务端和服务端返回数据字段,所以需要进行抓包分析参数。本文就说明一下如何在ubuntu18.04使用fidder对自己编写的应用程序进行http协议数据包抓取。 目录 1.…

无线网络渗透测试清单

©网络研究院 无线渗透测试积极检查 WiFi 网络中的信息安全措施的过程,并分析弱点、技术流程和关键无线漏洞。 我们应该关注的最重要的对策是威胁评估、数据盗窃检测、安全控制审计、风险预防和检测、信息系统管理和升级基础设施,并且应该准备一份…

13-14-15-RabbitMq工作模式深度剖析与Spring整合MQ以及RabbitMq高级特性

RabbitMQ消息传递流程 连接( Connection) 在RabbitMQ中,生产者和消费者与RabbitMQ的通信就是基于TCP连接的。不过呢我们知道TCP连接的创建和销毁在高并发场景下对于操作系统来说都是特别昂贵的开销,所以RabbitMQ又引入了信道的概念 信道(Chan…

云原生之使用Docker部署轻量级web服务器lighthttpd

云原生之使用Docker部署轻量级web服务器lighthttpd一、Lighthttpd介绍二、检查系统版本三、检查docker状态四、下载lighthttpd镜像五、部署lighthttpd1.创建数据目录2.创建lighthttpd容器3.查看容器状态六、访问lighthttpd服务七、编辑index.html1.编辑index.html文件2.重新访问…

Hadoop大数据存算分离方案:计算层无缝对接存储系统

Hadoop的诞生改变了企业对数据的存储、处理和分析的过程,加速了大数据的发展。随着大数据系统建设的深入,企业的数据基础设施易出现计算资源浪费、存储性能低、管理成本过高等挑战。相比存算一体架构,存算分离架构具有性能与成本最优、兼具灵…

3D地图app

3D三维地图APP 发布时间:2018-07-19 版权: 3D地图依据高程数据等对地表进行渲染,实现地表的起伏,模拟出真实的三维场景,让你有如身临其境般的感觉。 (注:Bigemap 3D地图是一个三维地图浏览功能…

项目沟通怎么才能不像在吵架?

项目沟通并非吵架,看起来却总是剑拔弩张。有效沟通才能真正解决问题,笔者给出了一些实用的建议,从对象到场景,再到方法与技巧,应该在沟通中有针对性地注意这些问题。 沟通是个老话题,在项目管理中有专门讲沟…

draw.io使用教程

大部分的绘图应用都离不开三个基本的元素,图形,链接,文本。每个元素都有基本的操作和样式,元素与元素之间又可以进行组合,“三生万物”,生成各种各样的图表。 如果没有这款绘图的 可以点击获取 : drawio文…

企业项目管理的不同与好处

大型企业组织通常同时运行多个复杂项目。尽管这些项目看起来不一定相互关联,但它们都会影响同一个企业组织。企业项目管理(EPM)是指在公司范围内管理项目的实践。它通常涉及实施战略和流程,以大规模简化和提高项目管理的有效性。根据项目管理协会(PMI)的…

burpsuite靶场——XXE

文章目录什么是XML?什么是XML实体?什么是文档类型定义(DTD)?什么是XML自定义实体?什么是XML外部实体?使用外部实体利用 XXE 来检索文件利用 XXE 执行 SSRF 攻击盲XXE漏洞带外交互的盲 XXE过 XML 参数实体进行带外交互的…

【AJAX】AJAX的跨域问题

AJAX的跨域问题跨域的概述区别同源与不同源同源策略有什么用?AJAX跨域解决方案方案一、设置响应头方案二、jsonp方案三、代理机制(httpclient)跨域的概述 跨域是指从一个域名的网页去请求另一个域名的资源。比如从百度(https://ba…

WPF控件模板、数据模板、容器样式选择器

WPF控件模板 利用Tag来绑定控件模板内容 <!--模板定义--> <Style x:Key"ButtonStyle1" TargetType"{x:Type Button}"><Setter Property"Template"><Setter.Value><ControlTemplate TargetType"{x:Type Button…

声音事件检测metric:PSDS

论文&#xff1b;A FRAMEWORK FOR THE ROBUST EVALUATION OF SOUND EVENT DETECTION Abstract 这项工作为多声道声音事件检测&#xff08;SED&#xff09;系统的性能评估定义了一个新的框架&#xff0c;它克服了传统的collar-based事件决定、事件F-cores和事件错误率的限制。…

【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )

文章目录一、Flow 流组合1、Flow#zip 组合多个流2、新组合流的元素收集间隔与被组合流元素发射间隔的联系一、Flow 流组合 1、Flow#zip 组合多个流 调用 Flow#zip 函数 , 可以将两个 Flow 流合并为一个流 ; Flow#zip 函数原型 : /*** 将来自当前流( this )的值压缩到[其他]流&…

第二十六章 数论——欧拉函数(详解与证明)

第二十六章 数论——欧拉函数&#xff08;详解与证明&#xff09;欧拉函数1、互质2、欧拉函数的定义3、欧拉函数的公式4、欧拉函数的证明5、欧拉函数的使用&#xff08;1&#xff09;问题一&#xff1a;思路代码&#xff08;2&#xff09;问题二&#xff1a;思路case1case1case…

2022/12/17 MySQL索引失效的底层原理

1 复合索引-最左前缀原理 where子句中使用最频繁的一列放在最左边&#xff1b;我们在&#xff08;a,b,c&#xff09;字段上建了一个联合索引&#xff0c;所以这个索引是先按a 再按b 再按c进行排列的&#xff0c;所以&#xff1a;以下的查询方式都可以用到索引 select * from …

emacs下安装eaf

emacs下安装eaf插件 原因 eaf插件一开始还有点排斥&#xff0c;觉得emacs终端下操作多好多流畅。想要浏览器&#xff0c;终端和pdf再快速切换就可以了&#xff0c;毕竟我用i3wm/yabai窗口管理器。 但是想到当初也是vim用的多学得多&#xff0c;emacs就不愿意去接触学习&#…

Linux系统下的压缩和解压指令

Linux系统下的压缩和解压指令 gzip/gunzip指令 gzip&#xff1a;用于压缩文件&#xff1b;gunzip&#xff1a;用于解压的 语法&#xff1a;gzip file 以及 gunzip file.gz (压缩文件&#xff0c;只能将文件压缩为*.gz文件) gzip /home/hello.txt: gzip压缩&#xff0c;将/home下…

Android设计模式详解之观察者模式

前言 观察者常用于订阅-发布系统&#xff0c;能够将观察者和被观察者进行解耦&#xff0c;降低两者之间的依赖&#xff1b; 定义&#xff1a;定义对象间一种一对多的依赖关系&#xff0c;使得每当一个对象改变状态时&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新…